wonder-image 1.2.0

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 (223) hide show
  1. package/DOCS.md +12 -0
  2. package/LICENSE +21 -0
  3. package/README.md +1 -0
  4. package/babel.config.json +3 -0
  5. package/demo/backend/body-end.php +10 -0
  6. package/demo/backend/head.php +93 -0
  7. package/demo/frontend/body-end.php +19 -0
  8. package/demo/frontend/head.php +244 -0
  9. package/demo/wonder-image.php +41 -0
  10. package/dist/0d01fa889dc2b0202b98.png +0 -0
  11. package/dist/203d1199e7aef04c0a34.gif +0 -0
  12. package/dist/26d6ed3fa1c815e4c78f.png +0 -0
  13. package/dist/39795c0b4513de014cf8.woff +0 -0
  14. package/dist/40b30ca122107c2852be.png +0 -0
  15. package/dist/4a7b4107b62ef059ba65.png +0 -0
  16. package/dist/4dce7f71b08755f19759.png +0 -0
  17. package/dist/60af14fddca897f348bb.png +0 -0
  18. package/dist/67172a36bcdeaca8592a.png +0 -0
  19. package/dist/a85c6dc53638f894de38.png +0 -0
  20. package/dist/b7bcc075b395c14ce8c2.woff2 +0 -0
  21. package/dist/backend/body-end.js +3 -0
  22. package/dist/backend/body-end.js.LICENSE.txt +44 -0
  23. package/dist/backend/body-end.js.map +1 -0
  24. package/dist/backend/head.css +2 -0
  25. package/dist/backend/head.css.map +1 -0
  26. package/dist/backend/head.js +3 -0
  27. package/dist/backend/head.js.LICENSE.txt +46 -0
  28. package/dist/backend/head.js.map +1 -0
  29. package/dist/backend/lib.js +2 -0
  30. package/dist/backend/lib.js.LICENSE.txt +1 -0
  31. package/dist/frontend/body-end.js +3 -0
  32. package/dist/frontend/body-end.js.LICENSE.txt +46 -0
  33. package/dist/frontend/body-end.js.map +1 -0
  34. package/dist/frontend/head.css +2 -0
  35. package/dist/frontend/head.css.map +1 -0
  36. package/dist/frontend/head.js +3 -0
  37. package/dist/frontend/head.js.LICENSE.txt +46 -0
  38. package/dist/frontend/head.js.map +1 -0
  39. package/dist/frontend/lib.css +2 -0
  40. package/dist/frontend/lib.css.map +1 -0
  41. package/dist/frontend/lib.js +3 -0
  42. package/dist/frontend/lib.js.LICENSE.txt +151 -0
  43. package/dist/frontend/lib.js.map +1 -0
  44. package/dist/lib/autonumeric/autonumeric.js +3 -0
  45. package/dist/lib/autonumeric/autonumeric.js.LICENSE.txt +47 -0
  46. package/dist/lib/autonumeric/autonumeric.js.map +1 -0
  47. package/dist/lib/bootstrap/bootstrap-datepicker.css +2 -0
  48. package/dist/lib/bootstrap/bootstrap-datepicker.css.map +1 -0
  49. package/dist/lib/bootstrap/bootstrap-datepicker.js +3 -0
  50. package/dist/lib/bootstrap/bootstrap-datepicker.js.LICENSE.txt +42 -0
  51. package/dist/lib/bootstrap/bootstrap-datepicker.js.map +1 -0
  52. package/dist/lib/bootstrap/bootstrap-icons.css +2 -0
  53. package/dist/lib/bootstrap/bootstrap-icons.css.map +1 -0
  54. package/dist/lib/bootstrap/bootstrap-icons.js +3 -0
  55. package/dist/lib/bootstrap/bootstrap-icons.js.LICENSE.txt +13 -0
  56. package/dist/lib/bootstrap/bootstrap-icons.js.map +1 -0
  57. package/dist/lib/bootstrap/bootstrap.css +2 -0
  58. package/dist/lib/bootstrap/bootstrap.css.map +1 -0
  59. package/dist/lib/bootstrap/bootstrap.js +3 -0
  60. package/dist/lib/bootstrap/bootstrap.js.LICENSE.txt +44 -0
  61. package/dist/lib/bootstrap/bootstrap.js.map +1 -0
  62. package/dist/lib/chartjs/chart.js +3 -0
  63. package/dist/lib/chartjs/chart.js.LICENSE.txt +1467 -0
  64. package/dist/lib/chartjs/chart.js.map +1 -0
  65. package/dist/lib/datatables/datatables.css +2 -0
  66. package/dist/lib/datatables/datatables.css.map +1 -0
  67. package/dist/lib/datatables/datatables.js +3 -0
  68. package/dist/lib/datatables/datatables.js.LICENSE.txt +8988 -0
  69. package/dist/lib/datatables/datatables.js.map +1 -0
  70. package/dist/lib/editorjs/editor.js +3 -0
  71. package/dist/lib/editorjs/editor.js.LICENSE.txt +5812 -0
  72. package/dist/lib/editorjs/editor.js.map +1 -0
  73. package/dist/lib/fancyapps/fancyapps.css +2 -0
  74. package/dist/lib/fancyapps/fancyapps.css.map +1 -0
  75. package/dist/lib/fancyapps/fancyapps.js +3 -0
  76. package/dist/lib/fancyapps/fancyapps.js.LICENSE.txt +19 -0
  77. package/dist/lib/fancyapps/fancyapps.js.map +1 -0
  78. package/dist/lib/filepond/filepond.css +2 -0
  79. package/dist/lib/filepond/filepond.css.map +1 -0
  80. package/dist/lib/filepond/filepond.js +3 -0
  81. package/dist/lib/filepond/filepond.js.LICENSE.txt +2797 -0
  82. package/dist/lib/filepond/filepond.js.map +1 -0
  83. package/dist/lib/fullcalendar/fullcalendar.js +3 -0
  84. package/dist/lib/fullcalendar/fullcalendar.js.LICENSE.txt +3787 -0
  85. package/dist/lib/fullcalendar/fullcalendar.js.map +1 -0
  86. package/dist/lib/jquery/jquery-plugin.css +2 -0
  87. package/dist/lib/jquery/jquery-plugin.css.map +1 -0
  88. package/dist/lib/jquery/jquery-plugin.js +3 -0
  89. package/dist/lib/jquery/jquery-plugin.js.LICENSE.txt +60 -0
  90. package/dist/lib/jquery/jquery-plugin.js.map +1 -0
  91. package/dist/lib/jquery/jquery.js +3 -0
  92. package/dist/lib/jquery/jquery.js.LICENSE.txt +3240 -0
  93. package/dist/lib/jquery/jquery.js.map +1 -0
  94. package/dist/lib/jstree/jstree.css +2 -0
  95. package/dist/lib/jstree/jstree.css.map +1 -0
  96. package/dist/lib/jstree/jstree.js +3 -0
  97. package/dist/lib/jstree/jstree.js.LICENSE.txt +42 -0
  98. package/dist/lib/jstree/jstree.js.map +1 -0
  99. package/dist/lib/moment/moment.js +3 -0
  100. package/dist/lib/moment/moment.js.LICENSE.txt +772 -0
  101. package/dist/lib/moment/moment.js.map +1 -0
  102. package/dist/lib/quilljs/quill.css +2 -0
  103. package/dist/lib/quilljs/quill.css.map +1 -0
  104. package/dist/lib/quilljs/quill.js +3 -0
  105. package/dist/lib/quilljs/quill.js.LICENSE.txt +3038 -0
  106. package/dist/lib/quilljs/quill.js.map +1 -0
  107. package/dist/lib/swiperjs/swiper-plugin.css +2 -0
  108. package/dist/lib/swiperjs/swiper-plugin.css.map +1 -0
  109. package/dist/lib/swiperjs/swiper-plugin.js +3 -0
  110. package/dist/lib/swiperjs/swiper-plugin.js.LICENSE.txt +1113 -0
  111. package/dist/lib/swiperjs/swiper-plugin.js.map +1 -0
  112. package/dist/lib/swiperjs/swiper.css +2 -0
  113. package/dist/lib/swiperjs/swiper.css.map +1 -0
  114. package/dist/lib/swiperjs/swiper.js +3 -0
  115. package/dist/lib/swiperjs/swiper.js.LICENSE.txt +651 -0
  116. package/dist/lib/swiperjs/swiper.js.map +1 -0
  117. package/dist/lib/videojs/video.css +2 -0
  118. package/dist/lib/videojs/video.css.map +1 -0
  119. package/dist/lib/videojs/video.js +3 -0
  120. package/dist/lib/videojs/video.js.LICENSE.txt +23391 -0
  121. package/dist/lib/videojs/video.js.map +1 -0
  122. package/package.json +95 -0
  123. package/src/build/backend/css/header.css +252 -0
  124. package/src/build/backend/css/input.css +295 -0
  125. package/src/build/backend/css/list.css +57 -0
  126. package/src/build/backend/css/order.css +99 -0
  127. package/src/build/backend/js/ajax.js +96 -0
  128. package/src/build/backend/js/alert.js +78 -0
  129. package/src/build/backend/js/bootstrap.js +52 -0
  130. package/src/build/backend/js/form/editor.js +293 -0
  131. package/src/build/backend/js/form/file.js +142 -0
  132. package/src/build/backend/js/form/filepond.js +11 -0
  133. package/src/build/backend/js/form/input.js +313 -0
  134. package/src/build/backend/js/form/inputRow.js +164 -0
  135. package/src/build/backend/js/form/send.js +14 -0
  136. package/src/build/backend/js/form/set.js +314 -0
  137. package/src/build/backend/js/jquery.js +15 -0
  138. package/src/build/backend/js/list.js +19 -0
  139. package/src/build/backend/js/modal.js +31 -0
  140. package/src/build/backend/js/pageSetUp.js +125 -0
  141. package/src/build/backend/js/utility.js +38 -0
  142. package/src/build/frontend/css/class/dimension.css +3376 -0
  143. package/src/build/frontend/css/class/function.css +316 -0
  144. package/src/build/frontend/css/class/grid.css +240 -0
  145. package/src/build/frontend/css/class/margin.css +823 -0
  146. package/src/build/frontend/css/class/padding.css +760 -0
  147. package/src/build/frontend/css/class/position.css +351 -0
  148. package/src/build/frontend/css/class/resize.css +24 -0
  149. package/src/build/frontend/css/class/section.css +41 -0
  150. package/src/build/frontend/css/class/text.css +244 -0
  151. package/src/build/frontend/css/components/alert.css +42 -0
  152. package/src/build/frontend/css/components/button.css +107 -0
  153. package/src/build/frontend/css/components/dropdown.css +118 -0
  154. package/src/build/frontend/css/components/form/address.css +26 -0
  155. package/src/build/frontend/css/components/form/checkbox.css +65 -0
  156. package/src/build/frontend/css/components/form/date.css +133 -0
  157. package/src/build/frontend/css/components/form/input.css +176 -0
  158. package/src/build/frontend/css/components/form/select.css +69 -0
  159. package/src/build/frontend/css/components/header/hamburger/hamburger-1.css +56 -0
  160. package/src/build/frontend/css/components/header/hamburger/hamburger.css +58 -0
  161. package/src/build/frontend/css/components/header/header.css +57 -0
  162. package/src/build/frontend/css/components/header/mobile-nav.css +79 -0
  163. package/src/build/frontend/css/components/modal.css +76 -0
  164. package/src/build/frontend/css/components/spinner.css +37 -0
  165. package/src/build/frontend/css/generator/dimension.php +93 -0
  166. package/src/build/frontend/css/generator/margin.php +48 -0
  167. package/src/build/frontend/css/generator/padding.php +48 -0
  168. package/src/build/frontend/css/lib.css +3 -0
  169. package/src/build/frontend/css/main.css +37 -0
  170. package/src/build/frontend/js/alert.js +64 -0
  171. package/src/build/frontend/js/aos.js +9 -0
  172. package/src/build/frontend/js/dropdown.js +73 -0
  173. package/src/build/frontend/js/form/input.js +211 -0
  174. package/src/build/frontend/js/form/list.js +155 -0
  175. package/src/build/frontend/js/form/select.js +108 -0
  176. package/src/build/frontend/js/form/send.js +137 -0
  177. package/src/build/frontend/js/header.js +12 -0
  178. package/src/build/frontend/js/modal.js +26 -0
  179. package/src/build/frontend/js/pageSetUp.js +35 -0
  180. package/src/build/frontend/js/scroll.js +70 -0
  181. package/src/build/frontend/js/utility.js +21 -0
  182. package/src/build/global/js/canvas.js +82 -0
  183. package/src/build/global/js/fetch.js +47 -0
  184. package/src/build/global/js/form/autonumeric.js +136 -0
  185. package/src/build/global/js/form/phone.js +19 -0
  186. package/src/build/global/js/utility.js +88 -0
  187. package/src/build/global/js/video.js +7 -0
  188. package/src/build/lib/editorjs/gallery.js +39 -0
  189. package/src/build/lib/editorjs/hyperlink.js +170 -0
  190. package/src/build/lib/editorjs/video.js +61 -0
  191. package/src/build/lib/swiperjs/effect-carousel.css +24 -0
  192. package/src/build/lib/swiperjs/effect-carousel.esm.js +102 -0
  193. package/src/build/lib/swiperjs/effect-shutters.css +33 -0
  194. package/src/build/lib/swiperjs/effect-shutters.esm.js +114 -0
  195. package/src/build/lib/swiperjs/effect-slicer.css +39 -0
  196. package/src/build/lib/swiperjs/effect-slicer.esm.js +198 -0
  197. package/src/build/lib/swiperjs/swiper-gl.css +44 -0
  198. package/src/build/lib/swiperjs/swiper-gl.esm.js +6063 -0
  199. package/src/export/backend/body-end.js +4 -0
  200. package/src/export/backend/head.js +25 -0
  201. package/src/export/backend/lib.js +0 -0
  202. package/src/export/frontend/body-end.js +9 -0
  203. package/src/export/frontend/head.js +42 -0
  204. package/src/export/frontend/lib.js +17 -0
  205. package/src/export/lib/autonumeric/autonumeric.js +3 -0
  206. package/src/export/lib/bootstrap/bootstrap-datepicker.js +4 -0
  207. package/src/export/lib/bootstrap/bootstrap-icons.js +2 -0
  208. package/src/export/lib/bootstrap/bootstrap.js +3 -0
  209. package/src/export/lib/chartjs/chart.js +4 -0
  210. package/src/export/lib/datatables/datatables.js +6 -0
  211. package/src/export/lib/editorjs/editor.js +48 -0
  212. package/src/export/lib/fancyapps/fancyapps.js +7 -0
  213. package/src/export/lib/filepond/filepond.js +51 -0
  214. package/src/export/lib/fullcalendar/fullcalendar.js +29 -0
  215. package/src/export/lib/jquery/jquery-plugin.js +14 -0
  216. package/src/export/lib/jquery/jquery.js +4 -0
  217. package/src/export/lib/jstree/jstree.js +2 -0
  218. package/src/export/lib/moment/moment.js +12 -0
  219. package/src/export/lib/quilljs/quill.js +4 -0
  220. package/src/export/lib/swiperjs/swiper-plugin.js +20 -0
  221. package/src/export/lib/swiperjs/swiper.js +4 -0
  222. package/src/export/lib/videojs/video.js +3 -0
  223. package/webpack.config.js +79 -0
@@ -0,0 +1,3787 @@
1
+ /*
2
+ NOTE: BYWEEKDAY is a special case.
3
+ RRule() deconstructs the rule.options.byweekday array
4
+ into an array of Weekday arguments.
5
+ On the other hand, rule.origOptions is an array of Weekdays.
6
+ We need to handle both cases here.
7
+ It might be worth change RRule to keep the Weekdays.
8
+
9
+ Also, BYWEEKDAY (used by RRule) vs. BYDAY (RFC)
10
+
11
+ */
12
+
13
+ /*
14
+ known bug: events that are force to be list-item but span multiple days still take up space in later columns
15
+ todo: in print view, for multi-day events, don't display title within non-start/end segs
16
+ */
17
+
18
+ /*
19
+ TODO: better way to know about whether there was a selection with the pointer
20
+ */
21
+
22
+ /*
23
+ ghetto debounce. don't race with ScrollGrid's resizing delay. solves #6140
24
+ */
25
+
26
+ /*
27
+ "complete" seg means it has component and eventRange
28
+ */
29
+
30
+ /*
31
+ DUMB: the omitTime arg is dumb. if we omit the time, we want to omit the timezone offset. and if we do that,
32
+ might as well use buildIsoString or some other util directly
33
+ */
34
+
35
+ /*
36
+ Does NOT add what hit the `barrier` into hiddenEntries. Should already be done.
37
+ */
38
+
39
+ /*
40
+ TODO: make event struct more responsible for this
41
+ */
42
+
43
+ /*
44
+ console.log('label interval =', timelineView.labelInterval.humanize())
45
+ console.log('slot duration =', timelineView.slotDuration.humanize())
46
+ console.log('header formats =', timelineView.headerFormats)
47
+ console.log('isTimeScale', timelineView.isTimeScale)
48
+ console.log('largeUnit', timelineView.largeUnit)
49
+ */
50
+
51
+ /*
52
+ does not care about limits
53
+ */
54
+
55
+ /*
56
+ for ColProps with spans, it would have been great to make a single <col span="">
57
+ HOWEVER, Chrome was getting messing up distributing the width to <td>/<th> elements with colspans.
58
+ SOLUTION: making individual <col> elements makes Chrome behave.
59
+ */
60
+
61
+ /*
62
+ renders INSIDE of an outer div
63
+ */
64
+
65
+ /*
66
+ this is really inefficient!
67
+ TODO: make EventApi::resourceIds a hash or keep an index in the Calendar's state
68
+ */
69
+
70
+ /*
71
+ will normalize the scrollLeft value
72
+ */
73
+
74
+ /*
75
+ ALSO, with the ability to disable touch
76
+ */
77
+
78
+ /*
79
+ An abstraction for a dragging interaction originating on an event.
80
+ Does higher-level things than PointerDragger, such as possibly:
81
+ - a "mirror" that moves with the pointer
82
+ - a minimum number of pixels or other criteria for a true drag to begin
83
+
84
+ subclasses must emit:
85
+ - pointerdown
86
+ - dragstart
87
+ - dragmove
88
+ - pointerup
89
+ - dragend
90
+ */
91
+
92
+ /*
93
+ An effect in which an element follows the movement of a pointer across the screen.
94
+ The moving element is a clone of some other element.
95
+ Must call start + handleMove + stop.
96
+ */
97
+
98
+ /*
99
+ An object for getting/setting scroll-related information for an element.
100
+ Internally, this is done very differently for window versus DOM element,
101
+ so this object serves as a common interface.
102
+ */
103
+
104
+ /*
105
+ At the time of instantiation, this object does not know which cmd-formatting system it will use.
106
+ It receives this at the time of formatting, as a setting.
107
+ */
108
+
109
+ /*
110
+ BAD: querying icons and text here. should be done at render time
111
+ */
112
+
113
+ /*
114
+ BUG: if `event` was supplied, all previously-given `eventSources` will be wiped out
115
+ */
116
+
117
+ /*
118
+ Detects when the user clicks on an event within a DateComponent
119
+ */
120
+
121
+ /*
122
+ Does UI-framework provide custom way of rendering that does not use Preact VDOM
123
+ AND does the calendar's options define custom rendering?
124
+ AKA. Should we NOT render the default content?
125
+ */
126
+
127
+ /*
128
+ Event MUST have a recurringDef
129
+ */
130
+
131
+ /*
132
+ For a pointer interaction, automatically scrolls certain scroll containers when the pointer
133
+ approaches the edge.
134
+
135
+ The caller must call start + handleMove + stop.
136
+ */
137
+
138
+ /*
139
+ Goes beyond mere position:sticky, allows horizontal centering
140
+
141
+ REQUIREMENT: fc-sticky elements, if the fc-sticky className is taken away, should NOT have relative or absolute positioning.
142
+ This is because we attach the coords with JS, and the VDOM might take away the fc-sticky class but doesn't know kill the positioning.
143
+
144
+ TODO: don't query text-align:center. isn't compatible with flexbox centering. instead, check natural X coord within parent container
145
+ */
146
+
147
+ /*
148
+ HACK
149
+ TODO: use EventUi system instead of this
150
+ */
151
+
152
+ /*
153
+ Information about what will happen when an external element is dragged-and-dropped
154
+ onto a calendar. Contains information for creating an event.
155
+ */
156
+
157
+ /*
158
+ Is a cache for a given element's scroll information (all the info that ScrollController stores)
159
+ in addition the "client rectangle" of the element.. the area within the scrollbars.
160
+
161
+ The cache can be in one of two modes:
162
+ - doesListening:false - ignores when the container is scrolled by someone else
163
+ - doesListening:true - watch for scrolling and update the cache
164
+ */
165
+
166
+ /*
167
+ Monitors dragging on an element. Has a number of high-level features:
168
+ - minimum distance required before dragging
169
+ - minimum wait time ("delay") before dragging
170
+ - a mirror element that follows the pointer
171
+ */
172
+
173
+ /*
174
+ Monitors when the user clicks on a specific date/time of a component.
175
+ A pointerdown+pointerup on the same "hit" constitutes a click.
176
+ */
177
+
178
+ /*
179
+ NOTE: this can be a public API, especially createElement for hooks.
180
+ See examples/typescript-scheduler/src/index.ts
181
+ */
182
+
183
+ /*
184
+ Records offset information for a set of elements, relative to an origin element.
185
+ Can record the left/right OR the top/bottom OR both.
186
+ Provides methods for querying the cache by position.
187
+ */
188
+
189
+ /*
190
+ Renders the DOM responsible for the subrow expander area,
191
+ as well as the space before it (used to align expanders of similar depths)
192
+ */
193
+
194
+ /*
195
+ Specifying nextDayThreshold signals that all-day ranges should be sliced.
196
+ */
197
+
198
+ /*
199
+ TODO: all this would be much easier if we were using a hash!
200
+ */
201
+
202
+ /*
203
+ TODO: discourage meta tag and instead put nonce attribute on placeholder <style> tag
204
+ */
205
+
206
+ /*
207
+ TODO: fix the terminology of "formatter" vs "formatting func"
208
+ */
209
+
210
+ /*
211
+ TODO: make <ScrollGridSection> subcomponent
212
+ NOTE: doesn't support collapsibleWidth (which is sortof a hack anyway)
213
+ */
214
+
215
+ /*
216
+ TODO: pass around as EventDefHash!!!
217
+ */
218
+
219
+ /*
220
+ TODO: somehow combine with parseRange?
221
+ Will return null if the start/end props were present but parsed invalidly.
222
+ */
223
+
224
+ /*
225
+ TODO: somehow infer OtherArgs from masterCallback?
226
+ TODO: infer RefType from masterCallback if provided
227
+ */
228
+
229
+ /*
230
+ TODO: use this in more places
231
+ */
232
+
233
+ /*
234
+ This decryption is not meant to be bulletproof. Just a way to remind about an upgrade.
235
+ */
236
+
237
+ /*
238
+ Tracks movement over multiple droppable areas (aka "hits")
239
+ that exist in one or more DateComponents.
240
+ Relies on an existing draggable.
241
+
242
+ emits:
243
+ - pointerdown
244
+ - dragstart
245
+ - hitchange - fires initially, even if not over a hit
246
+ - pointerup
247
+ - (hitchange - again, to null, if ended over a hit)
248
+ - dragend
249
+ */
250
+
251
+ /*
252
+ Tracks when the user selects a portion of time of a component,
253
+ constituted by a drag over date cells, with a possible delay at the beginning of the drag.
254
+ */
255
+
256
+ /*
257
+ Triggers events and adds/removes core classNames when the user's pointer
258
+ enters/leaves event-elements of a component.
259
+ */
260
+
261
+ /*
262
+ Uses a "pointer" abstraction, which monitors UI events for both mouse and touch.
263
+ Tracks when the pointer "drags" on a certain element, meaning down+move+up.
264
+
265
+ Also, tracks if there was touch-scrolling.
266
+ Also, can prevent touch-scrolling from happening.
267
+ Also, can fire pointermove events when scrolling happens underneath, even when no real pointer movement.
268
+
269
+ emits:
270
+ - pointerdown
271
+ - pointermove
272
+ - pointerup
273
+ */
274
+
275
+ /*
276
+ When this class is instantiated, it records the offset of an element (relative to the document topleft),
277
+ and continues to monitor scrolling, updating the cached coordinates if it needs to.
278
+ Does not access the DOM after instantiation, so highly performant.
279
+
280
+ Also keeps track of all scrolling/overflow:hidden containers that are parents of the given element
281
+ and an determine if a given point is inside the combined clipping rectangle.
282
+ */
283
+
284
+ /*
285
+ Will NOT populate extendedProps with the leftover properties.
286
+ Will NOT populate date-related props.
287
+ */
288
+
289
+ /*
290
+ an INTERACTABLE date component
291
+
292
+ PURPOSES:
293
+ - hook up to fg, fill, and mirror renderers
294
+ - interface for dragging and hits
295
+ */
296
+
297
+ /*
298
+ assumed "true" equality for handler names like "onReceiveSomething"
299
+ */
300
+
301
+ /*
302
+ for incorporating slotMinTime/slotMaxTime if appropriate
303
+ TODO: should be part of DateProfile!
304
+ TimelineDateProfile already does this btw
305
+ */
306
+
307
+ /*
308
+ for making sure events that have editable resources are always draggable in resource views
309
+ */
310
+
311
+ /*
312
+ for the horizontal "slats" that run width-wise. Has a time axis on a side. Depends on RTL.
313
+ */
314
+
315
+ /*
316
+ given a function that resolves a result asynchronously.
317
+ the function can either call passed-in success and failure callbacks,
318
+ or it can return a promise.
319
+ if you need to pass additional params to func, bind them first.
320
+ */
321
+
322
+ /*
323
+ mark resources as having events if any of their ancestors have them
324
+ NOTE: resourceStore might not have all the resources that hasEvents{} has keyed
325
+ */
326
+
327
+ /*
328
+ needs a full store so that it can populate children too
329
+ */
330
+
331
+ /*
332
+ parallels the SpreadsheetGroupRow
333
+ */
334
+
335
+ /*
336
+ snaps to appropriate unit
337
+ */
338
+
339
+ /*
340
+ splits things BASED OFF OF which resources they are associated with.
341
+ creates a '' entry which is when something has NO resource.
342
+ */
343
+
344
+ /*
345
+ this array is exposed on the root namespace so that UMD plugins can add to it.
346
+ see the rollup-bundles script.
347
+ */
348
+
349
+ /* !
350
+ * rrule.js - Library for working with recurrence rules for calendar dates.
351
+ * https://github.com/jakubroztocil/rrule
352
+ *
353
+ * Copyright 2010, Jakub Roztocil and Lars Schoning
354
+ * Licenced under the BSD licence.
355
+ * https://github.com/jakubroztocil/rrule/blob/master/LICENCE
356
+ *
357
+ */
358
+
359
+ /* "e" for "event" */
360
+
361
+ /* "m" for "more" */
362
+
363
+ /* A component that renders one or more columns of vertical time slots
364
+ ----------------------------------------------------------------------------------------------------------------------*/
365
+
366
+ /* An abstract class for the daygrid views, as well as month view. Renders one or more rows of day cells.
367
+ ----------------------------------------------------------------------------------------------------------------------*/
368
+
369
+ /* Context Menu
370
+ ----------------------------------------------------------------------------------------------------------------------*/
371
+
372
+ /* Date Range Computation
373
+ ------------------------------------------------------------------------------------------------------------------*/
374
+
375
+ /* Date stuff that doesn't belong in datelib core
376
+ ----------------------------------------------------------------------------------------------------------------------*/
377
+
378
+ /* Dimensions
379
+ ------------------------------------------------------------------------------------------------------------------*/
380
+
381
+ /* FC-specific DOM dimension stuff
382
+ ----------------------------------------------------------------------------------------------------------------------*/
383
+
384
+ /* FF <td> problem, but okay to use for left/right. TODO: rename prop */
385
+
386
+ /* FullCalendar-specific DOM Utilities
387
+ ----------------------------------------------------------------------------------------------------------------------*/
388
+
389
+ /* Header Render Methods
390
+ ------------------------------------------------------------------------------------------------------------------*/
391
+
392
+ /* Hidden Days
393
+ ------------------------------------------------------------------------------------------------------------------*/
394
+
395
+ /* Number Utilities
396
+ ----------------------------------------------------------------------------------------------------------------------*/
397
+
398
+ /* Selection
399
+ ----------------------------------------------------------------------------------------------------------------------*/
400
+
401
+ /* String Utilities
402
+ ----------------------------------------------------------------------------------------------------------------------*/
403
+
404
+ /* TODO: bad for mirror? */
405
+
406
+ /* TODO: make optional? */
407
+
408
+ /* TODO: make these time-based when not whole-day? */
409
+
410
+ /* Table Component Render Methods
411
+ ------------------------------------------------------------------------------------------------------------------*/
412
+
413
+ /* axis depends on the colgroup's shrinking */
414
+
415
+ /* bad new empty array? */
416
+
417
+ /* best? or put key on cell? or use diff formatter? */
418
+
419
+ /* contains children */
420
+
421
+ /* eslint max-classes-per-file: "off" */
422
+
423
+ /* eslint max-classes-per-file: off */
424
+
425
+ /* even displaying weeknum for row, not necessarily day */
426
+
427
+ /* global Reflect, Promise, SuppressedError, Symbol */
428
+
429
+ /* hack */
430
+
431
+ /* hacky */
432
+
433
+ /* harmony default export */
434
+
435
+ /* includes children */
436
+
437
+ /* includes elRef */
438
+
439
+ /* module decorator */
440
+
441
+ /* natural height? */
442
+
443
+ /* relies on there only being a single <col> for the axis */
444
+
445
+ /* webpack/runtime/hasOwnProperty shorthand */
446
+
447
+ /* why 4? if we do 0, it will kill any border, which are needed for computeSmallestCellWidth
448
+ 4 accounts for 2 2-pixel borders. TODO: better solution? */
449
+
450
+ /*#__PURE__*/
451
+
452
+ /**
453
+ *
454
+ * @param {Boolean?} noCache
455
+ * The same stratagy as RRule on cache, default to false
456
+ * @constructor
457
+ */
458
+
459
+ /**
460
+ *
461
+ * @param {Date} date that is part of the result.
462
+ * @return {Boolean} whether we are interested in more values.
463
+ */
464
+
465
+ /**
466
+ * 'before' and 'after' return only one date, whereas 'all'
467
+ * and 'between' an array.
468
+ *
469
+ * @return {Date,Array?}
470
+ */
471
+
472
+ /**
473
+ * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.
474
+ */
475
+
476
+ /**
477
+ * @param {Function} iterator - optional function that will be called
478
+ * on each date that is added. It can return false
479
+ * to stop the iteration.
480
+ * @return Array containing all recurrences.
481
+ */
482
+
483
+ /**
484
+ * @param {String} what - all/before/after/between
485
+ * @param {Array,Date} value - an array of dates, one date, or null
486
+ * @param {Object?} args - _iter arguments
487
+ */
488
+
489
+ /**
490
+ * @return a RRule instance with the same freq and options
491
+ * as this one (cache is not cloned)
492
+ */
493
+
494
+ /**
495
+ * @return false - not in the cache
496
+ * @return null - cached, but zero occurrences (before/after)
497
+ * @return Date - cached (before/after)
498
+ * @return [] - cached, but zero occurrences (all/between)
499
+ * @return [Date1, DateN] - cached (all/between)
500
+ */
501
+
502
+ /**
503
+ * Adds an EXDATE to the set
504
+ *
505
+ * @param {Date}
506
+ */
507
+
508
+ /**
509
+ * Adds an EXRULE to the set
510
+ *
511
+ * @param {RRule}
512
+ */
513
+
514
+ /**
515
+ * Adds an RDate to the set
516
+ *
517
+ * @param {Date}
518
+ */
519
+
520
+ /**
521
+ * Adds an RRule to the set
522
+ *
523
+ * @param {RRule}
524
+ */
525
+
526
+ /**
527
+ * Converts the rrule into its string representation
528
+ *
529
+ * @see <http://www.ietf.org/rfc/rfc2445.txt>
530
+ * @return String
531
+ */
532
+
533
+ /**
534
+ * Create a new RRuleSet Object completely base on current instance
535
+ */
536
+
537
+ /**
538
+ * Get list of excluded rrules in this recurrence set.
539
+ *
540
+ * @return List of exrules
541
+ */
542
+
543
+ /**
544
+ * Get list of included datetimes in this recurrence set.
545
+ *
546
+ * @return List of exdates
547
+ */
548
+
549
+ /**
550
+ * Get list of included datetimes in this recurrence set.
551
+ *
552
+ * @return List of rdates
553
+ */
554
+
555
+ /**
556
+ * Get list of included rrules in this recurrence set.
557
+ *
558
+ * @return List of rrules
559
+ */
560
+
561
+ /**
562
+ * Perform the conversion. Only some of the frequencies are supported.
563
+ * If some of the rrule's options aren't supported, they'll
564
+ * be omitted from the output an "(~ approximate)" will be appended.
565
+ *
566
+ * @return {*}
567
+ */
568
+
569
+ /**
570
+ * Possibly adds a date into the result.
571
+ *
572
+ * @param {Date} date - the date isn't necessarly added to the result
573
+ * list (if it is too late/too early)
574
+ * @return {Boolean} true if it makes sense to continue the iteration
575
+ * false if we're done.
576
+ */
577
+
578
+ /**
579
+ * Return a human readable representation of a moment that can
580
+ * also be evaluated to get a new moment which is the same
581
+ *
582
+ * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects
583
+ */
584
+
585
+ /**
586
+ * Returns all the occurrences of the rrule between after and before.
587
+ * The inc keyword defines what happens if after and/or before are
588
+ * themselves occurrences. With inc == True, they will be included in the
589
+ * list, if they are found in the recurrence set.
590
+ *
591
+ * @return Array
592
+ */
593
+
594
+ /**
595
+ * Returns the first recurrence after the given datetime instance.
596
+ * The inc keyword defines what happens if dt is an occurrence.
597
+ * With inc == True, if dt itself is an occurrence, it will be returned.
598
+ *
599
+ * @return Date or null
600
+ */
601
+
602
+ /**
603
+ * Returns the last recurrence before the given datetime instance.
604
+ * The inc keyword defines what happens if dt is an occurrence.
605
+ * With inc == True, if dt itself is an occurrence, it will be returned.
606
+ *
607
+ * @return Date or null
608
+ */
609
+
610
+ /**
611
+ * Returns the number of recurrences in this set. It will have go trough
612
+ * the whole recurrence, if this hasn't been done before.
613
+ */
614
+
615
+ /**
616
+ * Returns true if the word before the given number loses the '-n' ending.
617
+ * e.g. 'an 10 Deeg' but 'a 5 Deeg'
618
+ *
619
+ * @param number {integer}
620
+ * @returns {boolean}
621
+ */
622
+
623
+ /**
624
+ * Test whether the rrule can be fully converted to text.
625
+ *
626
+ * @param {RRule} rrule
627
+ * @return {Boolean}
628
+ */
629
+
630
+ /**
631
+ * Will convert all rules described in nlp:ToText
632
+ * to text.
633
+ */
634
+
635
+ /**
636
+ * to generate recurrence field such as:
637
+ * DTSTART:19970902T010000Z
638
+ * RRULE:FREQ=YEARLY;COUNT=2;BYDAY=TU
639
+ * RRULE:FREQ=YEARLY;COUNT=1;BYDAY=TH
640
+ */
641
+
642
+ /**
643
+ *
644
+ * Implementation of RRule.fromText() and RRule::toText().
645
+ *
646
+ *
647
+ * On the client side, this file needs to be included
648
+ * when those functions are used.
649
+ *
650
+ */
651
+
652
+ /**
653
+ * Python like split
654
+ */
655
+
656
+ /**
657
+ * RRuleStr
658
+ * To parse a set of rrule strings
659
+ */
660
+
661
+ /**
662
+ * Return true if a value is in an array
663
+ */
664
+
665
+ /**
666
+ * Will be able to convert some of the below described rules from
667
+ * text format to a rule object.
668
+ *
669
+ *
670
+ * RULES
671
+ *
672
+ * Every ([n])
673
+ * day(s)
674
+ * | [weekday], ..., (and) [weekday]
675
+ * | weekday(s)
676
+ * | week(s)
677
+ * | month(s)
678
+ * | [month], ..., (and) [month]
679
+ * | year(s)
680
+ *
681
+ *
682
+ * Plus 0, 1, or multiple of these:
683
+ *
684
+ * on [weekday], ..., (or) [weekday] the [monthday], [monthday], ... (or) [monthday]
685
+ *
686
+ * on [weekday], ..., (and) [weekday]
687
+ *
688
+ * on the [monthday], [monthday], ... (and) [monthday] (day of the month)
689
+ *
690
+ * on the [nth-weekday], ..., (and) [nth-weekday] (of the month/year)
691
+ *
692
+ *
693
+ * Plus 0 or 1 of these:
694
+ *
695
+ * for [n] time(s)
696
+ *
697
+ * until [date]
698
+ *
699
+ * Plus (.)
700
+ *
701
+ *
702
+ * Definitely no supported for parsing:
703
+ *
704
+ * (for year):
705
+ * in week(s) [n], ..., (and) [n]
706
+ *
707
+ * on the [yearday], ..., (and) [n] day of the year
708
+ * on day [yearday], ..., (and) [n]
709
+ *
710
+ *
711
+ * NON-TERMINALS
712
+ *
713
+ * [n]: 1, 2 ..., one, two, three ..
714
+ * [month]: January, February, March, April, May, ... December
715
+ * [weekday]: Monday, ... Sunday
716
+ * [nth-weekday]: first [weekday], 2nd [weekday], ... last [weekday], ...
717
+ * [monthday]: first, 1., 2., 1st, 2nd, second, ... 31st, last day, 2nd last day, ..
718
+ * [date]:
719
+ * - [month] (0-31(,) ([year])),
720
+ * - (the) 0-31.(1-12.([year])),
721
+ * - (the) 0-31/(1-12/([year])),
722
+ * - [weekday]
723
+ *
724
+ * [year]: 0000, 0001, ... 01, 02, ..
725
+ *
726
+ * Definitely not supported for parsing:
727
+ *
728
+ * [yearday]: first, 1., 2., 1st, 2nd, second, ... 366th, last day, 2nd last day, ..
729
+ *
730
+ * @param {String} text
731
+ * @return {Object, Boolean} the rule, or null.
732
+ */
733
+
734
+ /**
735
+ * closure/goog/math/math.js:modulo
736
+ * Copyright 2006 The Closure Library Authors.
737
+ * The % operator in JavaScript returns the remainder of a / b, but differs from
738
+ * some other languages in that the result will have the same sign as the
739
+ * dividend. For example, -1 % 8 == -1, whereas in some other languages
740
+ * (such as Python) the result would be 7. This function emulates the more
741
+ * correct modulo behavior, which is useful for certain applications such as
742
+ * calculating an offset index in a circular list.
743
+ *
744
+ * @param {number} a The dividend.
745
+ * @param {number} b The divisor.
746
+ * @return {number} a % b where the result is between 0 and b (either 0 <= x < b
747
+ * or b < x <= 0, depending on the sign of b).
748
+ */
749
+
750
+ /** @class */
751
+
752
+ /************************************
753
+ Country object
754
+ ************************************/
755
+
756
+ /************************************
757
+ Current Timezone
758
+ ************************************/
759
+
760
+ /************************************
761
+ Global Methods
762
+ ************************************/
763
+
764
+ /************************************
765
+ Interface with Moment.js
766
+ ************************************/
767
+
768
+ /************************************
769
+ Unpacking
770
+ ************************************/
771
+
772
+ /************************************
773
+ Zone object
774
+ ************************************/
775
+
776
+ /************************************
777
+ moment.tz namespace
778
+ ************************************/
779
+
780
+ /******************************************************************************
781
+ Copyright (c) Microsoft Corporation.
782
+
783
+ Permission to use, copy, modify, and/or distribute this software for any
784
+ purpose with or without fee is hereby granted.
785
+
786
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
787
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
788
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
789
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
790
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
791
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
792
+ PERFORMANCE OF THIS SOFTWARE.
793
+ ***************************************************************************** */
794
+
795
+ /************************************************************************/
796
+
797
+ /******/
798
+
799
+ /***/
800
+
801
+ /*global define*/
802
+
803
+ /*jshint -W100*/
804
+
805
+ //
806
+
807
+ // logError('Moment Timezone ' + moment.tz.version + ' was already loaded ' + (moment.tz.dataVersion ? 'with data from ' : 'without any data') + moment.tz.dataVersion);
808
+
809
+ // return moment;
810
+
811
+ // : (num > 10 && num % 10 == 0 ? 'î' : 'an');
812
+
813
+ // 0-99
814
+
815
+ // 1-99
816
+
817
+ // num = parseInt(num);
818
+
819
+ // num = parseInt(num.split(':')[0]);
820
+
821
+ // 0 - 9
822
+
823
+ // 0 - 99
824
+
825
+ // 0 - 999
826
+
827
+ // 0 - 9999
828
+
829
+ // 0 - inf
830
+
831
+ // 00 - 99
832
+
833
+ // 000 - 999
834
+
835
+ // 999 - 9999
836
+
837
+ // else
838
+
839
+ // if(num.includes(':'))
840
+
841
+ // return num == 0 || num % 10 == 1 ? 'ê'
842
+
843
+ // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));
844
+
845
+ // -inf - inf
846
+
847
+ // 0000 - 9999
848
+
849
+ // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));
850
+
851
+ // 99999 - 999999
852
+
853
+ // * days do not bubble at all
854
+
855
+ // * milliseconds bubble up until they become hours
856
+
857
+ // * months bubble up until they become years
858
+
859
+ // "
860
+
861
+ // "Rough" because they are based on average-case Gregorian months/years
862
+
863
+ // # of milliseconds into `endDay`
864
+
865
+ // '+10:00' > ['10', '00']
866
+
867
+ // '-1530' > ['-15', '30']
868
+
869
+ // '2015'
870
+
871
+ // '2023-02-07 10:41:36'
872
+
873
+ // '8:30 PM'
874
+
875
+ // '8:30:45 PM'
876
+
877
+ // 'Jan'
878
+
879
+ // 'Su 9'
880
+
881
+ // 'Wk4'
882
+
883
+ // 'what' method with the same 'args'
884
+
885
+ // ()
886
+
887
+ // (5)
888
+
889
+ // (If it's past the end, make it one millisecond before the end).
890
+
891
+ // (can't be part of plugin system b/c must be provided at runtime)
892
+
893
+ // (fmt)
894
+
895
+ // (fmt, 5)
896
+
897
+ // (same)
898
+
899
+ // (think of clock changes)
900
+
901
+ // (true)
902
+
903
+ // (true, 5)
904
+
905
+ // (true, fmt)
906
+
907
+ // (true, fmt, 5)
908
+
909
+ // * if day of month is given, default month and year
910
+
911
+ // * if month is given, default only year
912
+
913
+ // * if no year, month, day of month are given, default to today
914
+
915
+ // * if year is given, don't default anything
916
+
917
+ // +00 -00 +00:00 -00:00 +0000 -0000 or Z
918
+
919
+ // +00:00 -00:00 +0000 -0000 or Z
920
+
921
+ // +0200, so we adjust the time as needed, to be valid.
922
+
923
+ // - compare the actual date instead?
924
+
925
+ // ------------
926
+
927
+ // ---------------------
928
+
929
+ // ------------------------------------------------------------------------------------------
930
+
931
+ // ----------------------------------------------------------------------------------------------
932
+
933
+ // -------------------------------------------------------------------------------------------------
934
+
935
+ // ----------------------------------------------------------------------------------------------------
936
+
937
+ // ----------------------------------------------------------------------------------------------------------------
938
+
939
+ // -----------------------------------------------------------------------------------------------------------------
940
+
941
+ // ------------------------------------------------------------------------------------------------------------------
942
+
943
+ // ---------------------------------------------------------------------------------------------------------------------
944
+
945
+ // ------------------------------------------------------------------------------------------------------------------------
946
+
947
+ // -1 means no max
948
+
949
+ // -1, 0, 1
950
+
951
+ // -1MO, +3FR, 1SO, 13TU ...
952
+
953
+ // -999999 - 999999
954
+
955
+ // .stop() is ALWAYS asynchronous, which we NEED because we want all pointerup events
956
+
957
+ // 0 = exactly the same
958
+
959
+ // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)
960
+
961
+ // 1 = different by time
962
+
963
+ // 1, 2, 3, .., -5, -4, -3, ..
964
+
965
+ // 1000
966
+
967
+ // 1000 * 60
968
+
969
+ // 1000 * 60 * 60
970
+
971
+ // 1000 * 60 * 60 * 24 * 7, negate dst
972
+
973
+ // 1000 * 60 * 60 * 24, negate dst
974
+
975
+ // 12 months -> 1 year
976
+
977
+ // 123456789 123456789.123
978
+
979
+ // 17:56:31 CST
980
+
981
+ // 17:56:31 GMT+0800 (台北標準時間)
982
+
983
+ // 17:56:31 GMT-0600 (CST)
984
+
985
+ // 17:56:31 GMT-0600 (Central Standard Time)
986
+
987
+ // 1af to 10fed
988
+
989
+ // 2 digits
990
+
991
+ // 3 or 4 digits --> recursively check first digit
992
+
993
+ // 3600 seconds -> 60 minutes -> 1 hour
994
+
995
+ // 400 years have 12 months === 4800
996
+
997
+ // 400 years have 146097 days (taking into account leap year rules)
998
+
999
+ // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset
1000
+
1001
+ // 9 days / in 9 days / 9 days ago
1002
+
1003
+ // 9 hours / in 9 hours / 9 hours ago
1004
+
1005
+ // 9 minutes / in 9 minutes / 9 minutes ago
1006
+
1007
+ // 9 months / in 9 months / 9 months ago
1008
+
1009
+ // 9 seconds / in 9 seconds / 9 seconds ago
1010
+
1011
+ // 9 years / in 9 years / 9 years ago
1012
+
1013
+ // :(
1014
+
1015
+ // <input type="date" />
1016
+
1017
+ // <input type="datetime-local" />
1018
+
1019
+ // <input type="datetime-local" step="0.001" />
1020
+
1021
+ // <input type="datetime-local" step="1" />
1022
+
1023
+ // <input type="time" />
1024
+
1025
+ // <input type="time" step="0.001" />
1026
+
1027
+ // <input type="time" step="1" />
1028
+
1029
+ // <input type="week" />
1030
+
1031
+ // <table> elements work best with integers. round up to ensure contents fits
1032
+
1033
+ // <weekday>
1034
+
1035
+ // =============================================================================
1036
+
1037
+ // @ts-ignore
1038
+
1039
+ // A `startOfDayDate` must be given for avoiding ambiguity over how to treat midnight.
1040
+
1041
+ // ALIASES
1042
+
1043
+ // ARIA TODO: not really a columnheader
1044
+
1045
+ // ARIA workarounds
1046
+
1047
+ // ASP.NET json date format regex
1048
+
1049
+ // Accessors
1050
+
1051
+ // According to the spelling rules defined by the work group of Weqfa Mezopotamyayê (Mesopotamia Foundation)
1052
+
1053
+ // Adding
1054
+
1055
+ // Adding / Subtracting
1056
+
1057
+ // Adding is smart enough around DST
1058
+
1059
+ // Advanced Math
1060
+
1061
+ // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.
1062
+
1063
+ // Animation
1064
+
1065
+ // Anything larger than 4 digits: recursively check first n-3 digits
1066
+
1067
+ // Apply timezone offset from input. The actual utcOffset can be changed
1068
+
1069
+ // Array Conversion
1070
+
1071
+ // Attempts to compute the most appropriate format if not explicitly specified with `titleFormat`.
1072
+
1073
+ // BAD name for this class now. used in the Header
1074
+
1075
+ // BAD: mutates a user-supplied option
1076
+
1077
+ // BETTER: don't start rendering ANYTHING yet until we know container width
1078
+
1079
+ // BY GROUP
1080
+
1081
+ // Because of dateAddRemove treats 24 hours as different from a
1082
+
1083
+ // Builds a normalized range object for the "visible" range,
1084
+
1085
+ // Builds a structure holding dates/ranges for rendering around the given date.
1086
+
1087
+ // Builds a structure with info about the "current" range, the range that is
1088
+
1089
+ // Builds a structure with info about what the dates/ranges will be for the "next" view.
1090
+
1091
+ // Builds a structure with info about what the dates/ranges will be for the "prev" view.
1092
+
1093
+ // Builds an object with optional start/end properties.
1094
+
1095
+ // Builds the "current" range when a dayCount is specified.
1096
+
1097
+ // Builds the "current" range when it is specified as an explicit duration.
1098
+
1099
+ // But the names below are more well known and handy
1100
+
1101
+ // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753
1102
+
1103
+ // CONCATENATED MODULE: ./node_modules/@fullcalendar/bootstrap5/index.js
1104
+
1105
+ // CONCATENATED MODULE: ./node_modules/@fullcalendar/bootstrap5/internal.js
1106
+
1107
+ // CONCATENATED MODULE: ./node_modules/@fullcalendar/core/index.js
1108
+
1109
+ // CONCATENATED MODULE: ./node_modules/@fullcalendar/core/internal-common.js
1110
+
1111
+ // CONCATENATED MODULE: ./node_modules/@fullcalendar/daygrid/internal.js
1112
+
1113
+ // CONCATENATED MODULE: ./node_modules/@fullcalendar/interaction/index.js
1114
+
1115
+ // CONCATENATED MODULE: ./node_modules/@fullcalendar/moment-timezone/index.js
1116
+
1117
+ // CONCATENATED MODULE: ./node_modules/@fullcalendar/premium-common/index.js
1118
+
1119
+ // CONCATENATED MODULE: ./node_modules/@fullcalendar/resource-timeline/index.js
1120
+
1121
+ // CONCATENATED MODULE: ./node_modules/@fullcalendar/resource-timeline/internal.js
1122
+
1123
+ // CONCATENATED MODULE: ./node_modules/@fullcalendar/resource/index.js
1124
+
1125
+ // CONCATENATED MODULE: ./node_modules/@fullcalendar/resource/internal-common.js
1126
+
1127
+ // CONCATENATED MODULE: ./node_modules/@fullcalendar/scrollgrid/internal.js
1128
+
1129
+ // CONCATENATED MODULE: ./node_modules/@fullcalendar/timegrid/internal.js
1130
+
1131
+ // CONCATENATED MODULE: ./node_modules/@fullcalendar/timeline/index.js
1132
+
1133
+ // CONCATENATED MODULE: ./node_modules/@fullcalendar/timeline/internal.js
1134
+
1135
+ // CONCATENATED MODULE: ./node_modules/preact/compat/dist/compat.module.js
1136
+
1137
+ // CONCATENATED MODULE: ./node_modules/preact/dist/preact.module.js
1138
+
1139
+ // CONCATENATED MODULE: ./node_modules/preact/hooks/dist/hooks.module.js
1140
+
1141
+ // CONCATENATED MODULE: ./node_modules/rrule/dist/esm/cache.js
1142
+
1143
+ // CONCATENATED MODULE: ./node_modules/rrule/dist/esm/datewithzone.js
1144
+
1145
+ // CONCATENATED MODULE: ./node_modules/rrule/dist/esm/iter/index.js
1146
+
1147
+ // CONCATENATED MODULE: ./node_modules/rrule/dist/esm/iter/poslist.js
1148
+
1149
+ // CONCATENATED MODULE: ./node_modules/rrule/dist/esm/iterinfo/easter.js
1150
+
1151
+ // CONCATENATED MODULE: ./node_modules/rrule/dist/esm/iterinfo/index.js
1152
+
1153
+ // CONCATENATED MODULE: ./node_modules/rrule/dist/esm/iterinfo/monthinfo.js
1154
+
1155
+ // CONCATENATED MODULE: ./node_modules/rrule/dist/esm/iterinfo/yearinfo.js
1156
+
1157
+ // CONCATENATED MODULE: ./node_modules/rrule/dist/esm/iterset.js
1158
+
1159
+ // CONCATENATED MODULE: ./node_modules/rrule/dist/esm/nlp/index.js
1160
+
1161
+ // CONCATENATED MODULE: ./node_modules/rrule/dist/esm/nlp/parsetext.js
1162
+
1163
+ // CONCATENATED MODULE: ./node_modules/rrule/dist/esm/nlp/totext.js
1164
+
1165
+ // CONCATENATED MODULE: ./node_modules/rrule/dist/esm/optionstostring.js
1166
+
1167
+ // CONCATENATED MODULE: ./node_modules/rrule/dist/esm/parseoptions.js
1168
+
1169
+ // CONCATENATED MODULE: ./node_modules/rrule/dist/esm/parsestring.js
1170
+
1171
+ // CONCATENATED MODULE: ./node_modules/rrule/dist/esm/rrule.js
1172
+
1173
+ // CONCATENATED MODULE: ./node_modules/rrule/dist/esm/rruleset.js
1174
+
1175
+ // CONCATENATED MODULE: ./node_modules/rrule/dist/esm/rrulestr.js
1176
+
1177
+ // CONCATENATED MODULE: ./node_modules/tslib/tslib.es6.mjs
1178
+
1179
+ // CONCATENATED MODULE: ./src/export/lib/fullcalendar/fullcalendar.js
1180
+
1181
+ // Check for 24:00:00.000
1182
+
1183
+ // Check if module is in cache
1184
+
1185
+ // Check last week number of last year as
1186
+
1187
+ // Check week number 1 of next year as well
1188
+
1189
+ // Cloning a moment should include the _z property.
1190
+
1191
+ // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
1192
+
1193
+ // Component Registration
1194
+
1195
+ // Compute the duration value that should be added/substracted to the current date
1196
+
1197
+ // Compute the number of the give units in the "current" range.
1198
+
1199
+ // Computes a default column header formatting string if `colFormat` is not explicitly defined
1200
+
1201
+ // Computes an automatic value for slotLabelInterval
1202
+
1203
+ // Computes the date range that will be rendered
1204
+
1205
+ // Computes the range that will represent the element/cells for *rendering*,
1206
+
1207
+ // Computes the top coordinate, relative to the bounds of the grid, of the given date.
1208
+
1209
+ // Computes the top coordinate, relative to the bounds of the grid, of the given time (a Duration).
1210
+
1211
+ // Computes what the title at the top of the calendarApi should be for this view
1212
+
1213
+ // Constraint Utils
1214
+
1215
+ // Conversion
1216
+
1217
+ // Conversions
1218
+
1219
+ // Create OffsetAt here to avoid unnecessary abbr parsing before checking offsets
1220
+
1221
+ // Create a new module (and put it into the cache)
1222
+
1223
+ // Creating / Parsing
1224
+
1225
+ // Current Date
1226
+
1227
+ // DAILY on weekdays is not a valid rule
1228
+
1229
+ // DOES NOT CONSIDER validRange!
1230
+
1231
+ // DON'T use the filtered
1232
+
1233
+ // Date Formatting Utils
1234
+
1235
+ // Date Selection / Event Selection / DayClick
1236
+
1237
+ // Date Selection Validation
1238
+
1239
+ // Date constructor can only reliably parse dates in ISO8601 format
1240
+
1241
+ // Date.UTC remaps years 0-99 to 1900-1999
1242
+
1243
+ // Default to current date.
1244
+
1245
+ // Default to current week.
1246
+
1247
+ // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule
1248
+
1249
+ // Diffing (all return floats)
1250
+
1251
+ // Diffing Whole Units
1252
+
1253
+ // Do not load moment-timezone a second time.
1254
+
1255
+ // Duration object that denotes the exclusive visible end time of any given day
1256
+
1257
+ // Duration object that denotes the first visible time of any given day
1258
+
1259
+ // ESM COMPAT FLAG
1260
+
1261
+ // EXTERNAL MODULE: ./node_modules/moment-timezone/index.js
1262
+
1263
+ // EXTERNAL MODULE: ./node_modules/moment/moment.js
1264
+
1265
+ // Ensure name is available and function returns boolean
1266
+
1267
+ // Equality
1268
+
1269
+ // Essentially, once you compute an element's height, never null-out.
1270
+
1271
+ // Event Delegation
1272
+
1273
+ // Event Handling
1274
+
1275
+ // Event Normalization
1276
+
1277
+ // Eventually allow computation with arbirary slat dates.
1278
+
1279
+ // Execute the module function
1280
+
1281
+ // Export
1282
+
1283
+ // FIXME Note: every 2 weekdays != every two weeks on weekdays.
1284
+
1285
+ // FORMATTING
1286
+
1287
+ // Fallback
1288
+
1289
+ // Final attempt, use Input Fallback
1290
+
1291
+ // Flag the module as loaded
1292
+
1293
+ // Forces navigation to a view for the given date.
1294
+
1295
+ // Fragment scopes the keys
1296
+
1297
+ // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
1298
+
1299
+ // Generates the format string that should be used to generate the title for the current date range.
1300
+
1301
+ // Gets the height of the element at the given index
1302
+
1303
+ // Gets the width of the element at the given index
1304
+
1305
+ // Getting start-of-today depends on whether we're local/utc/offset or not.
1306
+
1307
+ // Given a date, returns its chronolocial cell-index from the first cell of the grid.
1308
+
1309
+ // Given a duration singular unit, like "week" or "day", finds a matching view spec.
1310
+
1311
+ // Given a left offset (from document left), returns the index of the el that it horizontally intersects.
1312
+
1313
+ // Given a top offset (from document top), returns the index of the el that it vertically intersects.
1314
+
1315
+ // Given an event's allDay status and start date, return what its fallback end date should be.
1316
+
1317
+ // Go head to http://www.ietf.org/rfc/rfc2445.txt
1318
+
1319
+ // Guaranteed to have `range` and `unit` properties. `duration` is optional.
1320
+
1321
+ // Gujarati notation for meridiems are quite fuzzy in practice. While there exists
1322
+
1323
+ // HACK
1324
+
1325
+ // HACK for freakin' React StrictMode
1326
+
1327
+ // HACK to prevent oscillations of events being shown/hidden from max-event-rows
1328
+
1329
+ // HACK: constrain to render-range so `currentDate` is more useful to view rendering
1330
+
1331
+ // HACK: need a daygrid wrapper parent to do positioning
1332
+
1333
+ // HACK: simulate a pointer-up to end the current drag
1334
+
1335
+ // HACK: the eventDrag props is used for ALL interactions
1336
+
1337
+ // HELPERS
1338
+
1339
+ // HIGHLY SUGGESTED to set this to sidestep ShadowDOM issues
1340
+
1341
+ // HOOKS
1342
+
1343
+ // Handle frequency and interval
1344
+
1345
+ // Handlers
1346
+
1347
+ // Helper functions
1348
+
1349
+ // Hindi notation for meridiems are quite fuzzy in practice. While there exists
1350
+
1351
+ // Hit System
1352
+
1353
+ // Horizontal Scroll System Detection
1354
+
1355
+ // I know
1356
+
1357
+ // IE11 doesn't include UTC/GMT in the original string, so append to end
1358
+
1359
+ // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays
1360
+
1361
+ // IE8 will treat undefined and null as object if it wasn't for
1362
+
1363
+ // INJECT DATA
1364
+
1365
+ // If after the last offset, returns an offset past the last cell offset.
1366
+
1367
+ // If available we are using native "performance" API instead of "Date"
1368
+
1369
+ // If before the first offset, returns a negative number.
1370
+
1371
+ // If end is within `startDay` but not past nextDayThreshold, assign the default duration of one day.
1372
+
1373
+ // If no intersection is made, returns undefined.
1374
+
1375
+ // If passed a locale key, it will set the locale for this
1376
+
1377
+ // If r and b differ in sign, add b to wrap the result to the correct sign.
1378
+
1379
+ // If the date lies between cells (because of hiddenDays), returns a floating-point value between offsets.
1380
+
1381
+ // If the end time is actually inclusively part of the next day and is equal to or
1382
+
1383
+ // If the given date is not within the given range, move it inside.
1384
+
1385
+ // If the initial value of `date` is not a hidden day, don't do anything.
1386
+
1387
+ // If the whole range is trimmed off, returns null
1388
+
1389
+ // If week starts in next year, we
1390
+
1391
+ // Ignoring fake mouse events generated by touch
1392
+
1393
+ // Includes things we don't want other locales to inherit,
1394
+
1395
+ // Incrementing the current day until it is no longer a hidden day, returning a copy.
1396
+
1397
+ // Indicates the minimum/maximum dates to display.
1398
+
1399
+ // Initializes internal variables related to calculating hidden days-of-week
1400
+
1401
+ // Internal Utils
1402
+
1403
+ // Intl unavailable, fall back to manual guessing.
1404
+
1405
+ // Is the current day hidden?
1406
+
1407
+ // It is a manager for a Table subcomponent, which does most of the heavy lifting.
1408
+
1409
+ // It is impossible to translate months into days without knowing
1410
+
1411
+ // It is intended to keep the offset in sync with the timezone.
1412
+
1413
+ // It is responsible for managing width/height.
1414
+
1415
+ // Iterinfo
1416
+
1417
+ // Jump to one iteration before next day
1418
+
1419
+ // Just in case
1420
+
1421
+ // Keeping the time actually adds/subtracts (one hour)
1422
+
1423
+ // LOCALES
1424
+
1425
+ // Lenient ordinal parsing accepts just a number in addition to
1426
+
1427
+ // Let's see whether we've already called the
1428
+
1429
+ // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason
1430
+
1431
+ // MERGE
1432
+
1433
+ // MO, TU, ...
1434
+
1435
+ // MOMENTS
1436
+
1437
+ // Maandag is die eerste dag van die week.
1438
+
1439
+ // Make the mouse cursor express that an event is not allowed in the current area
1440
+
1441
+ // Math.floor prevents floating point math errors here
1442
+
1443
+ // Merges an array of objects into a single object.
1444
+
1445
+ // Moment prototype object
1446
+
1447
+ // Moment.js version check
1448
+
1449
+ // Monday - Friday
1450
+
1451
+ // Monday is the first day of the week.
1452
+
1453
+ // More info about 'unfold' option
1454
+
1455
+ // Mouse
1456
+
1457
+ // Moving Event Validation
1458
+
1459
+ // NOT DRY
1460
+
1461
+ // NOT OPTIMAL! TODO: look at debounce
1462
+
1463
+ // NOT on a resizer
1464
+
1465
+ // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.
1466
+
1467
+ // NOTE: a callback Ref for the resizer was firing multiple times with same elements (Preact)
1468
+
1469
+ // NOTE: a daygrid resource view w/o resources can have zero cells
1470
+
1471
+ // NOTE: the hiddenGroup's spanStart/spanEnd are already computed by rangeToCoords. computed during input.
1472
+
1473
+ // NOTE: this method has become less valuable now that we are encouraged to map order by some other index
1474
+
1475
+ // NOTE: user can't modify these because Object.freeze was called in event-def parsing
1476
+
1477
+ // NOTE: weekNumber computation function wont work
1478
+
1479
+ // NOTE: why not always use paddingBottom? Causes height oscillation (issue 5606)
1480
+
1481
+ // Negative Number --> always true
1482
+
1483
+ // No op
1484
+
1485
+ // Nominativ
1486
+
1487
+ // Not in the cache, but we already know all the occurrences,
1488
+
1489
+ // Number of days in the year, minus the days we
1490
+
1491
+ // Number of days in the year, plus the days we got
1492
+
1493
+ // OR if trying to validate an incoming external event that has no dates assigned
1494
+
1495
+ // On Firefox.24 Date#getTimezoneOffset returns a floating point.
1496
+
1497
+ // Only 1 digit
1498
+
1499
+ // Only works for *start* dates of cells. Will not work for exclusive end dates for cells.
1500
+
1501
+ // Optional direction param indicates whether the date is being incremented/decremented
1502
+
1503
+ // Options
1504
+
1505
+ // Other Utils
1506
+
1507
+ // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.
1508
+
1509
+ // Otherwise, leaving it as inclusive will cause it to exclude `endDay`.
1510
+
1511
+ // PARSING
1512
+
1513
+ // Parser
1514
+
1515
+ // Parsing and Creation
1516
+
1517
+ // Pass `isExclusive` as `true` if you are dealing with an end date.
1518
+
1519
+ // Pass getZone to prevent recursion more than 1 level deep
1520
+
1521
+ // Pick a moment m from moments so that m[fn](other) is true for all
1522
+
1523
+ // Pick the first defined of two or three arguments.
1524
+
1525
+ // Plugin
1526
+
1527
+ // Plugins that add properties should also add the key here (null value),
1528
+
1529
+ // Pointer Interaction Utils
1530
+
1531
+ // Populates the left/right internal coordinate arrays
1532
+
1533
+ // Populates the top/bottom internal coordinate arrays
1534
+
1535
+ // Preference is given to views that have corresponding buttons.
1536
+
1537
+ // Prevent infinite loop in case updateOffset creates new moment
1538
+
1539
+ // Prevent names that look like filesystem paths, i.e contain '/' or '\'
1540
+
1541
+ // Public Event Sources API
1542
+
1543
+ // Public Events API
1544
+
1545
+ // Punjabi notation for meridiems are quite fuzzy in practice. While there exists
1546
+
1547
+ // QUESTION: why do we need it on the resizable???
1548
+
1549
+ // QUESTION: why not just return instances? do a general object-property-exclusion util
1550
+
1551
+ // Querying
1552
+
1553
+ // RENAME?
1554
+
1555
+ // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3
1556
+
1557
+ // RFC string
1558
+
1559
+ // RRule
1560
+
1561
+ // RRule class 'constants'
1562
+
1563
+ // Range / Duration
1564
+
1565
+ // Range Formatting Utils
1566
+
1567
+ // Read more about it on MDN:
1568
+
1569
+ // Remove comments and folding whitespace and replace multiple-spaces with a single space
1570
+
1571
+ // Remove days from the beginning and end of the range that are computed as hidden.
1572
+
1573
+ // Resizing
1574
+
1575
+ // Resolves es6 module loading issue
1576
+
1577
+ // Resource Area Resizing
1578
+
1579
+ // Resource INDIVIDUAL-Column Area Resizing
1580
+
1581
+ // Return a moment from input, that is local/utc/zone equivalent to model.
1582
+
1583
+ // Return the exports of the module
1584
+
1585
+ // Returns a boolean whether this was a left mouse click and no ctrl key (which means right click on Mac)
1586
+
1587
+ // Returns a new activeRange to have time values (un-ambiguate)
1588
+
1589
+ // Returns a new point that will have been moved to reside within the given rectangle
1590
+
1591
+ // Returns a new rectangle that is the intersection of the two rectangles. If they don't intersect, returns false
1592
+
1593
+ // Returns a point that is the center of the given rectangle
1594
+
1595
+ // Returns the mouse cursor to its original look
1596
+
1597
+ // SIDE-EFFECT: will mutate ranges.
1598
+
1599
+ // Saturday is the first day of the week.
1600
+
1601
+ // Scroll
1602
+
1603
+ // Scrolling
1604
+
1605
+ // Scrolling that simulates pointermoves
1606
+
1607
+ // See below ...
1608
+
1609
+ // See build() for a description of `direction`.
1610
+
1611
+ // See https://github.com/moment/moment/issues/3375
1612
+
1613
+ // Set abbr so it will have a name (getters return
1614
+
1615
+ // Setting the hour should keep the time, because the user explicitly
1616
+
1617
+ // Shallow copy for options and origOptions and check for invalid
1618
+
1619
+ // Side effect imports
1620
+
1621
+ // Simple Math
1622
+
1623
+ // Sorting makes sure if one month (or abbr) is a prefix of another
1624
+
1625
+ // Sorting makes sure if one month (or abbr) is a prefix of another it
1626
+
1627
+ // Sorting makes sure if one weekday (or abbr) is a prefix of another it
1628
+
1629
+ // Start / Stop
1630
+
1631
+ // Start-Of
1632
+
1633
+ // Stops a mouse/touch event from doing it's native browser action
1634
+
1635
+ // Style
1636
+
1637
+ // Subtracts point2's coordinates from point1's coordinates, returning a delta
1638
+
1639
+ // Sunday is the first day of the week
1640
+
1641
+ // Sunday is the first day of the week.
1642
+
1643
+ // Support for single parameter, formats only overload to the calendar function
1644
+
1645
+ // TODO
1646
+
1647
+ // TODO check for duplicates
1648
+
1649
+ // TODO: Another silent failure?
1650
+
1651
+ // TODO: Find a better way to register and load all the locales in Node
1652
+
1653
+ // TODO: Move this to another part of the creation flow to prevent circular deps
1654
+
1655
+ // TODO: ONLY use `arg`. force out internal function to use same API
1656
+
1657
+ // TODO: Remove "ordinalParse" fallback in next major release.
1658
+
1659
+ // TODO: Return 'e' when day of month > 1. Move this case inside
1660
+
1661
+ // TODO: Use [].sort instead?
1662
+
1663
+ // TODO: View should be responsible.
1664
+
1665
+ // TODO: We need to take the current isoWeekYear, but that depends on
1666
+
1667
+ // TODO: accept the document
1668
+
1669
+ // TODO: add sorting
1670
+
1671
+ // TODO: allow the content to specify this. have general-purpose 'content' with obj with keys
1672
+
1673
+ // TODO: always display all events, as visibility:hidden?
1674
+
1675
+ // TODO: assume the el has no borders?
1676
+
1677
+ // TODO: bad. always expand events as a second step
1678
+
1679
+ // TODO: bad. not guaranteed
1680
+
1681
+ // TODO: best place to normalize these options?
1682
+
1683
+ // TODO: better called "EventSettings" or "EventConfig"
1684
+
1685
+ // TODO: better type
1686
+
1687
+ // TODO: better way to make sure not hovering over more+ link or its wrapper
1688
+
1689
+ // TODO: better way to re-orient rectangle
1690
+
1691
+ // TODO: blacklist options that are handled by optionChangeHandlers
1692
+
1693
+ // TODO: cache this at first render?
1694
+
1695
+ // TODO: can do a really simple print-view. dont need to join rows
1696
+
1697
+ // TODO: can use greatestWholeUnit
1698
+
1699
+ // TODO: check callers that don't care about order. should use getAll instead
1700
+
1701
+ // TODO: choke on timeZoneName: long
1702
+
1703
+ // TODO: converge on one setting name
1704
+
1705
+ // TODO: could eliminate this if rowCoords lived in state
1706
+
1707
+ // TODO: different API for removal?
1708
+
1709
+ // TODO: easier way to add new hooks? need to update a million things
1710
+
1711
+ // TODO: error otherwise?
1712
+
1713
+ // TODO: exrule is deprecated. what to do? (https://icalendar.org/iCalendar-RFC-5545/a-3-deprecated-features.html)
1714
+
1715
+ // TODO: find a TypeScript-compatible way to do this at scale
1716
+
1717
+ // TODO: fire 'dragend' directly and stop interaction. discourage use of pointerup event (b/c might not fire)
1718
+
1719
+ // TODO: fire this before computing processFirstCoord, so listeners can cancel. this gets fired by almost every handler :(
1720
+
1721
+ // TODO: fully pre-parse
1722
+
1723
+ // TODO: get rid of this in favor of options system,
1724
+
1725
+ // TODO: give interactionSegs?
1726
+
1727
+ // TODO: give nextDayThreshold a default arg
1728
+
1729
+ // TODO: how do we track all actions that affect dateProfile :(
1730
+
1731
+ // TODO: if we set it here, can we avoid giving to inner tables?
1732
+
1733
+ // TODO: include startEditable/durationEditable/constraint/overlap/allow
1734
+
1735
+ // TODO: instead of these date-math gymnastics (for multimonth view),
1736
+
1737
+ // TODO: just make this logic execute top-level, immediately, instead of doing lazily
1738
+
1739
+ // TODO: lookbehinds for escape characters
1740
+
1741
+ // TODO: make DRY
1742
+
1743
+ // TODO: make TS-friendly
1744
+
1745
+ // TODO: make part of tDateProfile?
1746
+
1747
+ // TODO: make proper aliasing system?
1748
+
1749
+ // TODO: make reusable hook. used in list view too
1750
+
1751
+ // TODO: make this a plugin-able parser
1752
+
1753
+ // TODO: make this now-indicator arrow more DRY with TimeColsContent
1754
+
1755
+ // TODO: make this public?
1756
+
1757
+ // TODO: memoize event positioning
1758
+
1759
+ // TODO: memoize event-placement?
1760
+
1761
+ // TODO: memoize this?
1762
+
1763
+ // TODO: messy way to compute this
1764
+
1765
+ // TODO: more DRY with generateSegUid
1766
+
1767
+ // TODO: more convenient
1768
+
1769
+ // TODO: move this file into structs
1770
+
1771
+ // TODO: move this logic into DateProfileGenerator
1772
+
1773
+ // TODO: move to event-store file?
1774
+
1775
+ // TODO: move to general util
1776
+
1777
+ // TODO: move to geom file?
1778
+
1779
+ // TODO: need `undefined` or else INFINITE LOOP for some reason
1780
+
1781
+ // TODO: need better solution when state contains non-sizing things
1782
+
1783
+ // TODO: new util arrayify?
1784
+
1785
+ // TODO: not DRY
1786
+
1787
+ // TODO: not optimal
1788
+
1789
+ // TODO: not sure how this could ever be null. weirdness with the reducer
1790
+
1791
+ // TODO: not used for Spreadsheet. START USING. difficult because of col-specific rendering props
1792
+
1793
+ // TODO: optimize
1794
+
1795
+ // TODO: pass in ResourceApi?
1796
+
1797
+ // TODO: pass in isRtl instead?
1798
+
1799
+ // TODO: pass in isRtl?
1800
+
1801
+ // TODO: prevent against problems with <2 args!
1802
+
1803
+ // TODO: provide ONE array-export function, buildArray, which fails on non-numeric indexes. caller can manipulate and "collect"
1804
+
1805
+ // TODO: reassess browser support
1806
+
1807
+ // TODO: remove 'name' arg after deprecation is removed
1808
+
1809
+ // TODO: remove content/classNames/didMount/etc from options?
1810
+
1811
+ // TODO: rename to cellContent so don't need to define <tr>?
1812
+
1813
+ // TODO: rename to computeDefaultEventEnd
1814
+
1815
+ // TODO: rename to resizingSeg? subjectSeg?
1816
+
1817
+ // TODO: rename. omit "string"
1818
+
1819
+ // TODO: repeat code
1820
+
1821
+ // TODO: sanitization
1822
+
1823
+ // TODO: separate constraint/overlap/allow, because selection uses only that, not other props
1824
+
1825
+ // TODO: so slot classnames for week/month/bigger. see note above about rowUnit
1826
+
1827
+ // TODO: somehow consolidate with event json feed
1828
+
1829
+ // TODO: somehow merge with buildIsoString and stripZeroTime
1830
+
1831
+ // TODO: somehow short-circuit if there are no new height changes
1832
+
1833
+ // TODO: sort rects by levelCoord to be consistent with toRects?
1834
+
1835
+ // TODO: success/failure
1836
+
1837
+ // TODO: test
1838
+
1839
+ // TODO: test for this
1840
+
1841
+ // TODO: test this in IE11
1842
+
1843
+ // TODO: use Date::toISOString and use everything after the T?
1844
+
1845
+ // TODO: use NowTimer????
1846
+
1847
+ // TODO: use a hash?!!! (for other reasons too)
1848
+
1849
+ // TODO: use an internal function
1850
+
1851
+ // TODO: use const
1852
+
1853
+ // TODO: use control characters instead?
1854
+
1855
+ // TODO: use plugin system
1856
+
1857
+ // TODO: use preact/compat instead?
1858
+
1859
+ // TODO: use propSetHandlers in plugin system
1860
+
1861
+ // TODO: very repetitive
1862
+
1863
+ // TODO: wait til dispatch completes somehow
1864
+
1865
+ // TODO: warning if parsed bad
1866
+
1867
+ // TODO: weird way to get this. need harness b/c doesn't include table borders
1868
+
1869
+ // TODO: what about hour12? no severity
1870
+
1871
+ // TODO: what about number timestamps?
1872
+
1873
+ // TODO: what about recurring-event properties???
1874
+
1875
+ // TODO: what if dispatch didn't complete synchronously?
1876
+
1877
+ // TODO: why not use normalizeRange!?
1878
+
1879
+ // TODO: why not use ranges?
1880
+
1881
+ // TODO: wish we could somehow wait for dispatch to guarantee render
1882
+
1883
+ // TODO: wish we could use eventTupleToStore or something like it
1884
+
1885
+ // TODO: would move this further down hierarchy, but sliceNowDate needs it
1886
+
1887
+ // TODO: write test for this
1888
+
1889
+ // Thanks to Joris Röling : https://github.com/jjupiter
1890
+
1891
+ // The following code bubbles up values, see the tests for
1892
+
1893
+ // The module cache
1894
+
1895
+ // The require function
1896
+
1897
+ // The second argument allows for an array of property names who's object values will be merged together.
1898
+
1899
+ // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.
1900
+
1901
+ // This array is used to make a Date, either with `new Date` or `Date.UTC`
1902
+
1903
+ // This entry need to be wrapped in an IIFE because it need to be in strict mode.
1904
+
1905
+ // This function allows you to set a threshold for relative time strings
1906
+
1907
+ // This function allows you to set the rounding function for relative time strings
1908
+
1909
+ // This function will be called whenever a moment is mutated.
1910
+
1911
+ // This function will load locale and then set the global locale. If
1912
+
1913
+ // This is a makeshify way to compute the time-top. Assumes all slatMetas dates are uniform.
1914
+
1915
+ // This is because there is no context-free conversion between hours and days
1916
+
1917
+ // This is currently too difficult (maybe even impossible) to add.
1918
+
1919
+ // This is done to register the method called with moment()
1920
+
1921
+ // TimeZone
1922
+
1923
+ // Touch
1924
+
1925
+ // Trigger
1926
+
1927
+ // Triggered when the user clicks *anywhere* in the document, for the autoHide feature
1928
+
1929
+ // Unique ID for DOM attribute
1930
+
1931
+ // Update existing child locale in-place to avoid memory-leaks
1932
+
1933
+ // Use low-level api, because this fn is low-level api.
1934
+
1935
+ // Using charAt should be more compatible.
1936
+
1937
+ // Util
1938
+
1939
+ // Utils
1940
+
1941
+ // View
1942
+
1943
+ // WARNING: will include border
1944
+
1945
+ // WHY?: people were using `component` property for `content`
1946
+
1947
+ // We need to deep clone this object.
1948
+
1949
+ // We need to handle cross-year weeks here.
1950
+
1951
+ // We want to compare the start of today, vs this.
1952
+
1953
+ // We'd normally use ~~inp for this, but unfortunately it also
1954
+
1955
+ // Week Computation
1956
+
1957
+ // Week Number
1958
+
1959
+ // Weekly frequency won't get here, so we may not
1960
+
1961
+ // Will return `0` if there's not a clean whole interval.
1962
+
1963
+ // Will return a new array result.
1964
+
1965
+ // Won't go more precise than days.
1966
+
1967
+ // Words with feminine grammatical gender: semaine
1968
+
1969
+ // Words with masculine grammatical gender: mois, trimestre, jour
1970
+
1971
+ // XXX: can this ever be in the array?
1972
+
1973
+ // Zero out whatever was not defaulted, including time
1974
+
1975
+ // [year, month, day , hour, minute, second, millisecond]
1976
+
1977
+ // ^ do anything that might create adjacent spaces before this point,
1978
+
1979
+ // ^ for the title="" attribute, for accessibility
1980
+
1981
+ // __call__ - Cannot call the object directly, do it through
1982
+
1983
+ // __eq__
1984
+
1985
+ // __repr__
1986
+
1987
+ // _changeInProgress == true case, then we have to adjust, because
1988
+
1989
+ // `colSpec` is for the group. a GroupSpec :(
1990
+
1991
+ // `day` is a day-of-week index (0-6), or a Date (used for UTC)
1992
+
1993
+ // `inc` defaults to `1` (increment one day forward each time)
1994
+
1995
+ // `settings` is for formatter AND isEndExclusive
1996
+
1997
+ // `unit` is the already-computed greatestDurationDenominator unit of duration.
1998
+
1999
+ // `viewType` can be a specific view name or a generic one like "week" or "day".
2000
+
2001
+ // a calendarApi method
2002
+
2003
+ // a child, *maybe* but probably not
2004
+
2005
+ // a day / in a day / a day ago
2006
+
2007
+ // a few seconds / in a few seconds / a few seconds ago
2008
+
2009
+ // a few seconds to seconds
2010
+
2011
+ // a fractional value, meaning the date is not visible
2012
+
2013
+ // a grouped cell. no data that is specific to this specific resource
2014
+
2015
+ // a minute / in a minute / a minute ago
2016
+
2017
+ // a month / in a month / a month ago
2018
+
2019
+ // a month-start that's within the current range?
2020
+
2021
+ // a more-link
2022
+
2023
+ // a new timezone) makes sense. Adding/subtracting hours does not follow
2024
+
2025
+ // a now version of current config (take local/utc/offset flags, and
2026
+
2027
+ // a populated clientWidth means sizing has stabilized
2028
+
2029
+ // a range
2030
+
2031
+ // a real pointer move? (not one simulated by scrolling)
2032
+
2033
+ // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.
2034
+
2035
+ // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.
2036
+
2037
+ // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.
2038
+
2039
+ // a second time. In case it wants us to change the offset again
2040
+
2041
+ // a view name
2042
+
2043
+ // a year / in a year / a year ago
2044
+
2045
+ // a/p
2046
+
2047
+ // accepts multiple subject els
2048
+
2049
+ // according to web standards (and Safari), a month index is required.
2050
+
2051
+ // accumulate the highest possible stackCnt of the trackingEntries that butt up
2052
+
2053
+ // actions related to initiating dragstart+dragmove+dragend...
2054
+
2055
+ // actions we know we want to render immediately
2056
+
2057
+ // actual modulo - handles negative numbers (for dates before 1970):
2058
+
2059
+ // add 1 ms, protect against null range
2060
+
2061
+ // add more-links into the hierarchy, but don't limit
2062
+
2063
+ // add padding to the edge so that forward stacked events don't cover the resizer's icon
2064
+
2065
+ // add remaining unparsed input length to the string
2066
+
2067
+ // add segs with unknown heights
2068
+
2069
+ // add the hidden entries
2070
+
2071
+ // add the original
2072
+
2073
+ // add the span of time after the last event (if there is any)
2074
+
2075
+ // add the span of time before the event (if there is any)
2076
+
2077
+ // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->
2078
+
2079
+ // after last item
2080
+
2081
+ // all days were hidden? bad.
2082
+
2083
+ // allow (a function)
2084
+
2085
+ // allows 4-days to have a :30 slot duration
2086
+
2087
+ // allows us to keep hidden entries in the hierarchy so they take up space
2088
+
2089
+ // along edge
2090
+
2091
+ // along last row
2092
+
2093
+ // already parsed
2094
+
2095
+ // already parsed and expanded
2096
+
2097
+ // already parsed, but not expanded
2098
+
2099
+ // also prevents selection in older browsers (maybe?).
2100
+
2101
+ // also, whatever is happening in constructor, have it happen in action queue too
2102
+
2103
+ // always async
2104
+
2105
+ // always called from behind a memoizer
2106
+
2107
+ // always cancel outdated in-progress fetches
2108
+
2109
+ // always represents the current view. otherwise, it'd need to change value every time date changes
2110
+
2111
+ // always round up in this case. works for start AND end dates in a range.
2112
+
2113
+ // am/pm
2114
+
2115
+ // amount of space from right edge, a fraction of the total width
2116
+
2117
+ // amount of space since bottom of previous seg
2118
+
2119
+ // an ID. accepts a number too
2120
+
2121
+ // an existing date selection?
2122
+
2123
+ // an existing event selected?
2124
+
2125
+ // an exotic object for handleCustomRendering
2126
+
2127
+ // an external change?
2128
+
2129
+ // an hour / in an hour / an hour ago
2130
+
2131
+ // an integer index of the furthest whole slat
2132
+
2133
+ // an object with optional start and end properties.
2134
+
2135
+ // and also not between days and months (28-31 days per month)
2136
+
2137
+ // and bigger
2138
+
2139
+ // and further modified to allow for strings containing both week and day
2140
+
2141
+ // and guard against a promise AND callback being used together.
2142
+
2143
+ // and thus, we need to mark the event as having a real end
2144
+
2145
+ // and want to see originating element (the 'target'), use this util instead
2146
+
2147
+ // any word (or two) characters or numbers including two/three word month in arabic.
2148
+
2149
+ // applies the mutation to ALL defs/instances within the event store
2150
+
2151
+ // apply sign while we're at it
2152
+
2153
+ // apply slotMinTime/slotMaxTime
2154
+
2155
+ // are the view-specific options
2156
+
2157
+ // are there any props that span0 has that span1 DOESN'T have?
2158
+
2159
+ // array of day-of-week indices that are hidden
2160
+
2161
+ // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)
2162
+
2163
+ // as a setter, sunday should belong to the previous week.
2164
+
2165
+ // assign states based on new hit
2166
+
2167
+ // assumed already sorted
2168
+
2169
+ // attach a handler to get called when ANY scroll action happens on the page.
2170
+
2171
+ // b is in (anchor - 1 month, anchor + 1 month)
2172
+
2173
+ // backwards compat for now: also set the locale
2174
+
2175
+ // bad. just normalize the type earlier
2176
+
2177
+ // base options
2178
+
2179
+ // because FF would give bad ev.pageX ev.pageY
2180
+
2181
+ // because MERIDIEM_RE likes to eat up loading spaces
2182
+
2183
+ // because apparently removal of the element resets the scroll for some reasons (issue #5351).
2184
+
2185
+ // because autoscrolling might have happened
2186
+
2187
+ // because gets weird with auto-scrolling time area
2188
+
2189
+ // because will cause lots of unnecessary scrollbars within scrollgrid.
2190
+
2191
+ // before the slotMaxTime?
2192
+
2193
+ // behaves the same as moment#day except
2194
+
2195
+ // best?
2196
+
2197
+ // better to deal with integers, for rounding, for PureComponent
2198
+
2199
+ // better to give the current local date vals than UTC
2200
+
2201
+ // better util for this?
2202
+
2203
+ // beyond the next day threshold, adjust the end to be the exclusive end of `endDay`.
2204
+
2205
+ // block for masculine words below.
2206
+
2207
+ // both have range/allDay, so no need to special-case.
2208
+
2209
+ // builds cellRows and slotCells
2210
+
2211
+ // but DayGrid still needs to have classNames on inner elements in order to measure.
2212
+
2213
+ // but are not draggable
2214
+
2215
+ // but date0 needs to be converted
2216
+
2217
+ // but if these values were to change, the inner components would be unmounted/remounted because of the parent change.
2218
+
2219
+ // but not past the whole entry list
2220
+
2221
+ // but not past the whole seg list
2222
+
2223
+ // but which may have voided days/times.
2224
+
2225
+ // but whose start time is aligned with the start of the day.
2226
+
2227
+ // butts up against top of candidate? (will happen if just intersected as well)
2228
+
2229
+ // byhour
2230
+
2231
+ // byminute
2232
+
2233
+ // bymonth
2234
+
2235
+ // bymonthday
2236
+
2237
+ // bysecond
2238
+
2239
+ // byweekday / bynweekday
2240
+
2241
+ // byweekno
2242
+
2243
+ // byyearday
2244
+
2245
+ // call last so that pointerup has access to props
2246
+
2247
+ // callback: function () { this.month() + 1 }
2248
+
2249
+ // can be called before start
2250
+
2251
+ // can be called by user of this class, to cancel touch-based scrolling for the current drag
2252
+
2253
+ // can be null
2254
+
2255
+ // can potentially set mirrorNeedsRevert
2256
+
2257
+ // can't be multi-day
2258
+
2259
+ // can't just apply() to create a date:
2260
+
2261
+ // can't rely on defKeys because event data is mutated
2262
+
2263
+ // care about cross-year weekly periods.
2264
+
2265
+ // case 'Day': // Not real
2266
+
2267
+ // case 'Month': // Not used because we need to pass two variables
2268
+
2269
+ // cell els in first row
2270
+
2271
+ // certain clipping containers should never constrain interactions, like <html> and <body>
2272
+
2273
+ // check for mismatching day of week
2274
+
2275
+ // check for props that were omitted in the new
2276
+
2277
+ // check: https://github.com/moment/moment/issues/2166
2278
+
2279
+ // checks for null or undefined
2280
+
2281
+ // chunk, row
2282
+
2283
+ // clear _12h flag if hour is <= 12
2284
+
2285
+ // cloneChildren=true
2286
+
2287
+ // collect the trailing object values, stopping when a non-object is discovered
2288
+
2289
+ // compare millisecond time (skip any ambig logic)
2290
+
2291
+ // compare two arrays, return the number of differences
2292
+
2293
+ // completely open-ended
2294
+
2295
+ // completely within the rect?
2296
+
2297
+ // computable props that all access the def
2298
+
2299
+ // compute a floating-point number for how many slats should be progressed through.
2300
+
2301
+ // compute all static segs in singlePlacements
2302
+
2303
+ // compute based off the label interval
2304
+
2305
+ // compute based off the slot duration
2306
+
2307
+ // compute based off the view's duration
2308
+
2309
+ // compute dateprofiles of all months, then use start of first and end of last.
2310
+
2311
+ // compute diff off of the all-day values the way event-mutation does.
2312
+
2313
+ // compute mixed static/absolute segs in multiPlacements
2314
+
2315
+ // compute the initial ambig-timezone date
2316
+
2317
+ // compute what the alignment should be
2318
+
2319
+ // config
2320
+
2321
+ // consider the other event's overlap. only do this if the subject event is a "real" event
2322
+
2323
+ // constant that refers to the ISO standard
2324
+
2325
+ // constant that refers to the RFC 2822 form
2326
+
2327
+ // constrain
2328
+
2329
+ // constrained because slotMinTime/slotMaxTime might be customized.
2330
+
2331
+ // constraint
2332
+
2333
+ // constraint for where prev/next operations can go and where events can be dragged/resized to.
2334
+
2335
+ // constructor-specified buttonText lookup hash takes precedence
2336
+
2337
+ // convert an array to a date.
2338
+
2339
+ // convert days to months
2340
+
2341
+ // convert to 'reverse'. fall through...
2342
+
2343
+ // converts floats to ints.
2344
+
2345
+ // convery to arrays. TODO: general util?
2346
+
2347
+ // copy
2348
+
2349
+ // copy values into the destination, going from last to first
2350
+
2351
+ // copy, because we're gonna pop
2352
+
2353
+ // could be 'auto'
2354
+
2355
+ // could be 1.0 if slatCoverage is covering *all* the slots
2356
+
2357
+ // count columns until the day-of-week repeats
2358
+
2359
+ // create a new level
2360
+
2361
+ // create now).
2362
+
2363
+ // create segInputs only for segs with known heights
2364
+
2365
+ // created, so we won't end up with the child locale set.
2366
+
2367
+ // cross-browser way to determine when the transition finishes
2368
+
2369
+ // current segment is not the non-resource one, and there IS a non-resource one
2370
+
2371
+ // currently HTML5 input type only supports 24-hour formats
2372
+
2373
+ // date and time from ref 2822 format
2374
+
2375
+ // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict
2376
+
2377
+ // date from iso format
2378
+
2379
+ // date from string and array of format strings
2380
+
2381
+ // date from string and format string
2382
+
2383
+ // date range with a rendered skeleton
2384
+
2385
+ // dates that display events and accept drag-n-drop
2386
+
2387
+ // day is default zoom
2388
+
2389
+ // day of month
2390
+
2391
+ // day when working around DST, we need to store them separately
2392
+
2393
+ // days from last year's last week number in
2394
+
2395
+ // days than the end month.
2396
+
2397
+ // days to month/week
2398
+
2399
+ // days. 1 week leeway, for tz shift reasons too
2400
+
2401
+ // deal with a browser inconsistency where formatting the timezone
2402
+
2403
+ // deal with in-between indices
2404
+
2405
+ // deal with leftover margins
2406
+
2407
+ // dealing with current
2408
+
2409
+ // default to beginning of week
2410
+
2411
+ // defaults to true
2412
+
2413
+ // defaults+overrides, then refined
2414
+
2415
+ // define __esModule on exports
2416
+
2417
+ // definitely bigger than scrollbars
2418
+
2419
+ // delete
2420
+
2421
+ // deprecated in 0.1.0
2422
+
2423
+ // determine if the time is within slotMinTime/slotMaxTime, which may have wacky values
2424
+
2425
+ // difference in months
2426
+
2427
+ // different ID than the one already added
2428
+
2429
+ // disable dragging for elements that are resizable (ie, selectable)
2430
+
2431
+ // do NOT give a type here. need `typeof BASE_OPTION_DEFAULTS` to give real results.
2432
+
2433
+ // do last in case it needs cached values
2434
+
2435
+ // do nothing
2436
+
2437
+ // do the cushion too? no
2438
+
2439
+ // do this first so cancelTouchScroll will work
2440
+
2441
+ // do this in pointerdown (not dragend) because DOM might be mutated by the time dragend is fired
2442
+
2443
+ // does not memoize
2444
+
2445
+ // does not return window
2446
+
2447
+ // does the initial calendar need to be cleared?
2448
+
2449
+ // does the previous calendar need to be cleared?
2450
+
2451
+ // does the section do liquid-height? (need to have whole scrollgrid liquid-height as well)
2452
+
2453
+ // doesn't hold non-scrolling els used just for padding
2454
+
2455
+ // doesn't let it do businessHours tho
2456
+
2457
+ // doesn't represent a more-link
2458
+
2459
+ // don't bother to watch expensive moves if component won't do selection
2460
+
2461
+ // don't care about it.
2462
+
2463
+ // don't force any date-profiles to valid date profiles (the `false`) so that we can tell if it's invalid
2464
+
2465
+ // don't parse if it's not a known token
2466
+
2467
+ // don't throw a warning, might be settings for a single-unit view
2468
+
2469
+ // don't use custom classNames if disabled
2470
+
2471
+ // don't want this part of the options
2472
+
2473
+ // done to guard against touchend followed by touchcancel
2474
+
2475
+ // double the width, but don't go beyond the maximum forward coordinate (1.0)
2476
+
2477
+ // dropped within same calendar
2478
+
2479
+ // e.g. RRule.TH.nth(-1) instead,
2480
+
2481
+ // earlier ranges go first
2482
+
2483
+ // else, warn about invalid input?
2484
+
2485
+ // empty array will result in unnecessary rerenders?
2486
+
2487
+ // end-of-month calculations work correct when the start month has more
2488
+
2489
+ // ensure 6 weeks
2490
+
2491
+ // ensure no longer than a day
2492
+
2493
+ // equal!
2494
+
2495
+ // eslint-disable-line prefer-rest-params
2496
+
2497
+ // eslint-disable-line react/no-this-in-sfc
2498
+
2499
+ // eslint-disable-next-line
2500
+
2501
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
2502
+
2503
+ // eslint-disable-next-line no-console
2504
+
2505
+ // eslint-disable-next-line no-empty-function
2506
+
2507
+ // eslint-disable-next-line react/jsx-key
2508
+
2509
+ // eslint-disable-next-line react/no-array-index-key
2510
+
2511
+ // event ui computation
2512
+
2513
+ // event-ui
2514
+
2515
+ // every [n]
2516
+
2517
+ // everything else is considered default
2518
+
2519
+ // examples of what that means.
2520
+
2521
+ // exclude the subject events. TODO: exclude defs too?
2522
+
2523
+ // excludes "shrink"
2524
+
2525
+ // exclusive
2526
+
2527
+ // expand active range if slotMaxTime is beyond one day (why not when negative?)
2528
+
2529
+ // expand active range if slotMinTime is negative (why not when positive?)
2530
+
2531
+ // external thing changed?
2532
+
2533
+ // extremely tedious to make this aria-compliant,
2534
+
2535
+ // fall back
2536
+
2537
+ // falls through
2538
+
2539
+ // false = don't listen to user-generated scrolls
2540
+
2541
+ // fill in the implementations...
2542
+
2543
+ // find an existing group that matches, or determine the position for a new group
2544
+
2545
+ // find the largest label interval that yields the minimum number of labels
2546
+
2547
+ // find the largest label interval with an acceptable slots-per-label
2548
+
2549
+ // find the largest slot duration that is different from labelInterval, but still acceptable
2550
+
2551
+ // find the smallest stock label interval that results in more than one slots-per-label
2552
+
2553
+ // firefox bug: when setting height on table and there is a thead or tfoot,
2554
+
2555
+ // first cell el in each row. TODO: not optimal
2556
+
2557
+ // first date in current view?
2558
+
2559
+ // first element is an array of moment objects.
2560
+
2561
+ // first resource takes precedence, which fights with the ordering of combineEventUis, thus the unshifts
2562
+
2563
+ // first-week day -- which january is always in the first week (4 for iso, 1 for other)
2564
+
2565
+ // first-week day local weekday -- which local weekday is fwd
2566
+
2567
+ // for Components
2568
+
2569
+ // for HORIZONTAL cell grouping, in spreadsheet area
2570
+
2571
+ // for ISO strings we do not use the normal bubbling rules:
2572
+
2573
+ // for SSR, because this function is call immediately at top-level
2574
+
2575
+ // for VERTICAL cell grouping, in spreadsheet area
2576
+
2577
+ // for any network-related sources
2578
+
2579
+ // for array. TODO: move to resource-array
2580
+
2581
+ // for backwards compatibility
2582
+
2583
+ // for bug... ACTUALLY: can probably do away with this now that callers don't share numeric indices anymore
2584
+
2585
+ // for connectors
2586
+
2587
+ // for creating correct amount of space (see issue #7162)
2588
+
2589
+ // for example, a month view might have 1st-31st, excluding padded dates
2590
+
2591
+ // for expanding a recurring constraint, or expanding business hours
2592
+
2593
+ // for if constraint is 'businessHours'
2594
+
2595
+ // for if constraint is an even group ID
2596
+
2597
+ // for if started with zero cells
2598
+
2599
+ // for json feed. TODO: move to resource-json-feed
2600
+
2601
+ // for memoizers...
2602
+
2603
+ // for purecomponents. TODO: keep elsewhere
2604
+
2605
+ // for row-height-syncing
2606
+
2607
+ // for simulating an eventMouseLeave when the event el is destroyed while mouse is over it
2608
+
2609
+ // for simulating pointermove on scroll
2610
+
2611
+ // for the harness
2612
+
2613
+ // for the inner divs within the slats
2614
+
2615
+ // for use by subclasses
2616
+
2617
+ // for views that span a large unit of time, show the proper interval, ignoring stray days before and after
2618
+
2619
+ // for when non-resource view should be given EventUi info (for event coloring/constraints based off of resource data)
2620
+
2621
+ // force = fire even if initially null
2622
+
2623
+ // format date using native date object
2624
+
2625
+ // formats the date, but with no time part
2626
+
2627
+ // from 0 to number of slats (inclusive)
2628
+
2629
+ // from 0 to number slats (*exclusive*, so len-1)
2630
+
2631
+ // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html
2632
+
2633
+ // from https://developer.mozilla.org/en-US/docs/Web/API/Element/closest
2634
+
2635
+ // from its previous value. decremented = -1, incremented = 1 (default).
2636
+
2637
+ // from largest to smallest
2638
+
2639
+ // from last year.
2640
+
2641
+ // from milliseconds
2642
+
2643
+ // from the actual represented time. That is why we call updateOffset
2644
+
2645
+ // from the top of the scroller
2646
+
2647
+ // fromText
2648
+
2649
+ // front-end framework tells us about new container els
2650
+
2651
+ // function obliqueNumSuffix(num) {
2652
+
2653
+ // general util
2654
+
2655
+ // get events/instances with same group
2656
+
2657
+ // get the max height amongst instance segs
2658
+
2659
+ // give it the first row of cells
2660
+
2661
+ // give the OLD state, for old value
2662
+
2663
+ // given a timed range, computes an all-day range based on how for the end date bleeds into the next day
2664
+
2665
+ // given a timed range, computes an all-day range that has the same exact duration,
2666
+
2667
+ // global state
2668
+
2669
+ // got days from last year, so there are no
2670
+
2671
+ // goude merenn | a-raok merenn
2672
+
2673
+ // grab before trigger fired in case trigger trashes DOM thru rerendering
2674
+
2675
+ // guard against calendar with no resource functionality
2676
+
2677
+ // guard against success/failure callbacks being called more than once
2678
+
2679
+ // hack
2680
+
2681
+ // hack to get memoization working
2682
+
2683
+ // hack to make multi-day events that are being force-displayed as list-items to take up only one day
2684
+
2685
+ // hack to overcome the left borders of non-first slat
2686
+
2687
+ // handle digits after the decimal
2688
+
2689
+ // handle digits before the decimal
2690
+
2691
+ // handle era
2692
+
2693
+ // handle invalid durations
2694
+
2695
+ // handle meridiem
2696
+
2697
+ // handle milliseconds separately because of floating point math errors (issue #1867)
2698
+
2699
+ // handle negative numbers
2700
+
2701
+ // has hours/minutes/seconds
2702
+
2703
+ // has the side effect of grooming rowInnerMaxHeightMap
2704
+
2705
+ // hasEnd
2706
+
2707
+ // height will now be bottom of current seg
2708
+
2709
+ // help out EventImpl from having user modify props
2710
+
2711
+ // help out ResourceApi from having user modify props
2712
+
2713
+ // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize
2714
+
2715
+ // high-level segmenting-aware tester functions
2716
+
2717
+ // highlighted as being the current month for example.
2718
+
2719
+ // hooks is actually the exported moment object
2720
+
2721
+ // horizontal
2722
+
2723
+ // hours
2724
+
2725
+ // hours to day
2726
+
2727
+ // how far the current date will move for a prev/next operation
2728
+
2729
+ // how much further through the slatIndex slat (from 0.0-1.0) must be covered in addition.
2730
+
2731
+ // how we interpret now (local, utc, fixed offset). So create
2732
+
2733
+ // http://new.gramota.ru/spravka/rules/139-prop : § 103
2734
+
2735
+ // http://stackoverflow.com/a/32954565/96342
2736
+
2737
+ // https://caniuse.com/?search=object.values
2738
+
2739
+ // https://developer.mozilla.org/en-US/docs/Web/API/Performance
2740
+
2741
+ // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
2742
+
2743
+ // https://github.com/fullcalendar/fullcalendar/issues/3615
2744
+
2745
+ // https://github.com/moment/moment/issues/1423
2746
+
2747
+ // https://github.com/moment/moment/pull/1871
2748
+
2749
+ // https://stackoverflow.com/a/45760014
2750
+
2751
+ // https://stackoverflow.com/q/181348
2752
+
2753
+ // https://www.w3.org/WAI/tutorials/tables/multi-level/
2754
+
2755
+ // i.e. not a Document/ShadowRoot
2756
+
2757
+ // if (moment.tz !== undefined) {
2758
+
2759
+ // if 0, transition won't work
2760
+
2761
+ // if a different falsy value, do nothing
2762
+
2763
+ // if adding to an existing level, find where to insert
2764
+
2765
+ // if already assigned by previous props or complex props, don't reassign
2766
+
2767
+ // if any of the events define constraints to resources that are NOT this resource,
2768
+
2769
+ // if date is partially through the interval, or is in the same interval as the start,
2770
+
2771
+ // if doesn't start out on a hit, won't emit any events
2772
+
2773
+ // if duration will change, there's no way the default duration will persist,
2774
+
2775
+ // if everyday, or this particular day-of-week
2776
+
2777
+ // if exact match (which doesn't collide), go to next one
2778
+
2779
+ // if hasEnd has not been specified, guess a good value based on deltas.
2780
+
2781
+ // if intercepting bubbled events at the document/window/body level,
2782
+
2783
+ // if its possible for the height to max out, we might need scrollbars
2784
+
2785
+ // if more than one week row, or if there are a lot of columns with not much space,
2786
+
2787
+ // if no thickness known, assume 1 (if 0, so small it always fits)
2788
+
2789
+ // if not already present
2790
+
2791
+ // if not mirror, needs to be sorted
2792
+
2793
+ // if now using mouse, but was previous touch interaction, clear selected event
2794
+
2795
+ // if range is completely enveloped by hidden days, go past the hidden days
2796
+
2797
+ // if reacting to self-change of sectionRowMaxHeightsChanged, or not stable, don't do anything
2798
+
2799
+ // if requesting to display seconds, MUST display minutes
2800
+
2801
+ // if rows can't expand to fill fixed height, can't do balanced-height event limit
2802
+
2803
+ // if so, don't clear all the way. we still need to to hide the affectedEvents
2804
+
2805
+ // if so, use a simpler dom structure, jam everything into a lone tbody.
2806
+
2807
+ // if strictOrder, keep finding more lateral intersections.
2808
+
2809
+ // if the current level is past the placed entry, we have found a good empty space and can stop.
2810
+
2811
+ // if the section is liquid height, it might condense enough to require scrollbars
2812
+
2813
+ // if the trailing values were objects, use the merged value
2814
+
2815
+ // if the user ended their touch, and the scroll area wasn't moving,
2816
+
2817
+ // if the view displays a single day or smaller
2818
+
2819
+ // if there is any input that was not parsed add a penalty for that format
2820
+
2821
+ // if there were no objects, this value will be used
2822
+
2823
+ // if touch coords available, prefer,
2824
+
2825
+ // if touch, need to be working with a selected event
2826
+
2827
+ // if touch, require user to hold down
2828
+
2829
+ // if touching, the scrolling will end later, on touchend.
2830
+
2831
+ // if we can't compute the current date val for a timezone,
2832
+
2833
+ // if we didn't find a month name, mark the date as invalid.
2834
+
2835
+ // if we didn't get a weekday name, mark the date as invalid
2836
+
2837
+ // if we have a mix of positive and negative values, bubble down first
2838
+
2839
+ // implies that it's object-mergeable
2840
+
2841
+ // important NOT to do liquid-height. dont want to shrink height smaller than content
2842
+
2843
+ // important for start-of-month
2844
+
2845
+ // important to grab the newly modified def
2846
+
2847
+ // important to normalize for IE, which does "GMT"
2848
+
2849
+ // in case event was all-day but the supplied deltas were not
2850
+
2851
+ // in future refactor, do the redux-style function(state=initial) for initial-state
2852
+
2853
+ // in one col
2854
+
2855
+ // in-between ends round to prev cell
2856
+
2857
+ // in-between starts round to next cell
2858
+
2859
+ // includes not-active days that need some sort of DOM
2860
+
2861
+ // includes scottish gaelic two word and hyphenated months
2862
+
2863
+ // inclusive first index
2864
+
2865
+ // index of the diff :(
2866
+
2867
+ // indexed by "instanceId:firstCol"
2868
+
2869
+ // inefficient!!!
2870
+
2871
+ // inner-child margins and absolute positioning
2872
+
2873
+ // inp may be undefined, so careful calling replace on it.
2874
+
2875
+ // input != null
2876
+
2877
+ // insert into existing level
2878
+
2879
+ // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js
2880
+
2881
+ // instance will be null if expressing a recurring event that has no current instances,
2882
+
2883
+ // instance. Otherwise, it will return the locale configuration
2884
+
2885
+ // interaction started on an event?
2886
+
2887
+ // internal
2888
+
2889
+ // internal state
2890
+
2891
+ // internal states
2892
+
2893
+ // internal storage for locale config files
2894
+
2895
+ // intersect the footprint's range with the grid's range
2896
+
2897
+ // intersect! evaluate
2898
+
2899
+ // intersects into the top of the candidate?
2900
+
2901
+ // inverse-background events don't have specific instances. TODO: better solution
2902
+
2903
+ // is always one behind
2904
+
2905
+ // is auto?
2906
+
2907
+ // is it INTENTFULLY dragging? lasts until after revert animation
2908
+
2909
+ // is sizing stable?
2910
+
2911
+ // is the scrollbar on the left side?
2912
+
2913
+ // is the user validly moving the pointer? lasts until pointerup
2914
+
2915
+ // isHorizontal
2916
+
2917
+ // iso 8601 regex
2918
+
2919
+ // iso time formats and regexes
2920
+
2921
+ // it *could* be possible to reduce DOM wrappers by only doing a ClippedScroller when allowXScrolling or allowYScrolling,
2922
+
2923
+ // it separately.
2924
+
2925
+ // it's invalid if the originally requested date is not contained,
2926
+
2927
+ // keep going, in case new tasks were added in the drained handler
2928
+
2929
+ // keep wasTouchScroll around for later access
2930
+
2931
+ // keepLocalTime = true means only change the timezone, without
2932
+
2933
+ // key doesn't matter. will only ever be one
2934
+
2935
+ // later-added plugins take precedence
2936
+
2937
+ // left in last year.
2938
+
2939
+ // left/top are relative to document topleft
2940
+
2941
+ // like "September 2014"
2942
+
2943
+ // listen to the next mouseleave, and then unattach
2944
+
2945
+ // local weekday -- counting starts from beginning of week
2946
+
2947
+ // locale key.
2948
+
2949
+ // look at other places for this problem
2950
+
2951
+ // loop each day from start to end
2952
+
2953
+ // loop through entries that horizontally intersect
2954
+
2955
+ // main
2956
+
2957
+ // make end-of-week if not already
2958
+
2959
+ // make negative values wrap to 24hr clock
2960
+
2961
+ // make sure changes to properties don't modify parent config
2962
+
2963
+ // make sure labelInterval doesn't exceed the max number of cells
2964
+
2965
+ // make sure labelInterval is a multiple of slotDuration
2966
+
2967
+ // make sure slotDuration doesn't exceed the maximum number of cells
2968
+
2969
+ // make sure the hit is within activeRange, meaning it's not a dead cell
2970
+
2971
+ // make sure we set the locale AFTER all child locales have been
2972
+
2973
+ // make the exclusive end be the *next* interval
2974
+
2975
+ // make the regex if we don't have it already
2976
+
2977
+ // mark as not found to avoid repeating expensive file require call causing high CPU
2978
+
2979
+ // massage if only given a year.
2980
+
2981
+ // massage resources -> resourceIds
2982
+
2983
+ // match[2] should be 'T' or space
2984
+
2985
+ // matching against regexp is expensive, do it on demand
2986
+
2987
+ // means "clear the end"
2988
+
2989
+ // means date1 is already start-of-day,
2990
+
2991
+ // merge in event data from the non-resource segment
2992
+
2993
+ // might be an "extra" prop
2994
+
2995
+ // might be the <div> surrounding the more link
2996
+
2997
+ // might not have for every more-link
2998
+
2999
+ // might not have for every seg
3000
+
3001
+ // might return null
3002
+
3003
+ // might return void
3004
+
3005
+ // milliseconds since slotMinTime
3006
+
3007
+ // minutes
3008
+
3009
+ // minutes to hour
3010
+
3011
+ // minutes to milliseconds
3012
+
3013
+ // mock what happens in EventClicking
3014
+
3015
+ // moment 2.7.0
3016
+
3017
+ // moment 2.8.1+
3018
+
3019
+ // moment.duration._locale = moment._locale = data;
3020
+
3021
+ // moments should either be an array of moment objects or an array, whose
3022
+
3023
+ // more than `12` months but less that `24` hours
3024
+
3025
+ // more...
3026
+
3027
+ // much more reliable to see if children are taller than the scroller, even tho doesn't account for
3028
+
3029
+ // multi-day range. shorter, like "Sep 9 - 10 2014"
3030
+
3031
+ // must be explicitly enabled
3032
+
3033
+ // must be within the element's bounds
3034
+
3035
+ // must first be modified by applyMutationToEventDef
3036
+
3037
+ // must happen after revert animation
3038
+
3039
+ // must happen on first pointer down
3040
+
3041
+ // must have already been created
3042
+
3043
+ // name of largest unit being displayed, like "month" or "week"
3044
+
3045
+ // native implementation is ~50x faster, use it when we can
3046
+
3047
+ // necessary?
3048
+
3049
+ // need empty inner div for abs positioning for resizer
3050
+
3051
+ // need global-to-calendar, not local to component (splittable)state
3052
+
3053
+ // need this check?
3054
+
3055
+ // need to have a container regardless of whether the current view has a visible now indicator
3056
+
3057
+ // need to select a different event?
3058
+
3059
+ // needed for Hit creation :(
3060
+
3061
+ // needed. but why?
3062
+
3063
+ // needed?
3064
+
3065
+ // needs to be after setThisContext
3066
+
3067
+ // needs to change
3068
+
3069
+ // needs to divide by something but can't!
3070
+
3071
+ // needs to happen before updateElPosition
3072
+
3073
+ // new Date(NaN).toJSON() === null
3074
+
3075
+ // new ones
3076
+
3077
+ // no arguments are passed in, it will simply return the current global
3078
+
3079
+ // no items OR before first item
3080
+
3081
+ // no need to groom. always self-cancels
3082
+
3083
+ // non-null
3084
+
3085
+ // non-null object
3086
+
3087
+ // nonce
3088
+
3089
+ // not DRY
3090
+
3091
+ // not a date part prop (like timeZone)
3092
+
3093
+ // not a group
3094
+
3095
+ // not already in there
3096
+
3097
+ // not already present? don't want to add an old snapshot
3098
+
3099
+ // not already removed
3100
+
3101
+ // not an in-between value
3102
+
3103
+ // not array? or not same length?
3104
+
3105
+ // not destroyed via pointerdown handler
3106
+
3107
+ // not explicitly excluded
3108
+
3109
+ // not hidden by css
3110
+
3111
+ // not meant for public use
3112
+
3113
+ // not necessary for touch, besides, browser would complain about passiveness.
3114
+
3115
+ // not null
3116
+
3117
+ // not optimal :(
3118
+
3119
+ // not responsible for group-based rows. VRowGroup is
3120
+
3121
+ // not responsible for trimming hidden days.
3122
+
3123
+ // not sorted in any particular order
3124
+
3125
+ // not the '' key
3126
+
3127
+ // note: all values past the year are optional and will default to the lowest possible value.
3128
+
3129
+ // nth <weekday> | <weekday>
3130
+
3131
+ // null if section disappeared. bad, b/c won't null-set the elRef
3132
+
3133
+ // null means not found
3134
+
3135
+ // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.
3136
+
3137
+ // object construction must be done this way.
3138
+
3139
+ // objects.
3140
+
3141
+ // occupy the space) but mark it forced-hidden
3142
+
3143
+ // of `ev.target` because it goes within web-component boundaries.
3144
+
3145
+ // of all columns
3146
+
3147
+ // okay to expose?
3148
+
3149
+ // okay to keep eventInstance around. useful to set it in handlePointerDown
3150
+
3151
+ // on both fg and bg events
3152
+
3153
+ // one day. longer, like "September 9 2014"
3154
+
3155
+ // one of the old sets no longer exists
3156
+
3157
+ // only a one-way height sync. we don't send the axis inner-content height to the DayGrid,
3158
+
3159
+ // only allow non-integers for smallest unit
3160
+
3161
+ // only allow the value if it won't exceed the view's # of slots limit
3162
+
3163
+ // only do a touch delay if touch and this event hasn't been selected yet
3164
+
3165
+ // only end the scroll if not currently touching.
3166
+
3167
+ // only ever elements
3168
+
3169
+ // only hide the popover if the click happened outside the popover
3170
+
3171
+ // only queries direct child elements // TODO: rename to findDirectChildren!
3172
+
3173
+ // only support short timezone names
3174
+
3175
+ // only unselect if moved away while dragging
3176
+
3177
+ // only used by list-view, but languages define the value, so we need it in base options
3178
+
3179
+ // optional
3180
+
3181
+ // optional if subclass doesn't want to support a mirror
3182
+
3183
+ // options that can be directly assigned by caller
3184
+
3185
+ // options that can be directly set by caller
3186
+
3187
+ // options that can be set by caller
3188
+
3189
+ // options that can be set directly by caller
3190
+
3191
+ // or if the range is completely outside of the valid range.
3192
+
3193
+ // or they are the same as the instance.
3194
+
3195
+ // ordered
3196
+
3197
+ // ordinal: 'Mo'
3198
+
3199
+ // orig
3200
+
3201
+ // orig-TODO : Check -numweeks for next year.
3202
+
3203
+ // other meridiem transformers already converted to lowercase
3204
+
3205
+ // other. This relies on the function fn to be transitive.
3206
+
3207
+ // our way to simulate a link click for elements that can't be <a> tags
3208
+
3209
+ // overlap
3210
+
3211
+ // overrides only!, unrefined :(
3212
+
3213
+ // padded: ['MM', 2]
3214
+
3215
+ // parallel with levelCoords
3216
+
3217
+ // parsed
3218
+
3219
+ // pass null for config to unupdate, useful for tests
3220
+
3221
+ // pick the locale from the array
3222
+
3223
+ // pixels
3224
+
3225
+ // pixels from bottom edge
3226
+
3227
+ // pixels per second
3228
+
3229
+ // position relative to viewport
3230
+
3231
+ // potential nice values for slot-duration and interval-duration
3232
+
3233
+ // potential nice values for the slot-duration and interval-duration
3234
+
3235
+ // preserve leap years using a full 400 year cycle, then reset
3236
+
3237
+ // preserve original result
3238
+
3239
+ // prevent links from being visited if there's an eventual drag.
3240
+
3241
+ // prevents drag from starting and blocks scrolling during drag
3242
+
3243
+ // promote children
3244
+
3245
+ // protect against outerContent
3246
+
3247
+ // protect against the initial pointerdown being too close to an edge and starting the scroll
3248
+
3249
+ // protect against when the span is entirely in an invalid date region
3250
+
3251
+ // protects against recursive calls to _handleAction
3252
+
3253
+ // put just the day numbers will be in each cell
3254
+
3255
+ // quadratic
3256
+
3257
+ // range the view is formally responsible for.
3258
+
3259
+ // ranges need to be in order. required for our date-walking algorithm
3260
+
3261
+ // raw
3262
+
3263
+ // raw values.
3264
+
3265
+ // really bad fallback for IE
3266
+
3267
+ // really?
3268
+
3269
+ // rects ordered by top coord, then left
3270
+
3271
+ // refer http://ta.wikipedia.org/s/1er1
3272
+
3273
+ // reinsert the area that turned into a "more" link (so no other entries try to
3274
+
3275
+ // relative to viewport top-left
3276
+
3277
+ // remove
3278
+
3279
+ // remove excess
3280
+
3281
+ // remove existing recurring instances
3282
+
3283
+ // remove left-to-right control chars. do first. good for other regexes
3284
+
3285
+ // remove the forced-hidden segs
3286
+
3287
+ // render a drag state on the next receivingCalendar
3288
+
3289
+ // render the mirror if no already-rendered mirror
3290
+
3291
+ // rendering
3292
+
3293
+ // representation for dateAddRemove
3294
+
3295
+ // requires that the hour/minute be present.
3296
+
3297
+ // reset all internal state
3298
+
3299
+ // reset. caller must set-visible
3300
+
3301
+ // results range from negative width of area to 0
3302
+
3303
+ // retrieve any outbound GET/POST data from the options
3304
+
3305
+ // retrieves events that have the same groupId as the instance specified by `instanceId`
3306
+
3307
+ // returned value is between 0 and the number of snaps
3308
+
3309
+ // returns a object with all primitive props that can be compared
3310
+
3311
+ // returns a real array. good for methods like forEach
3312
+
3313
+ // returns groups with entries sorted by input order
3314
+
3315
+ // returns locale data
3316
+
3317
+ // rrule lib will treat as UTC-zoned
3318
+
3319
+ // screen coords relative to viewport
3320
+
3321
+ // scrollLeft is distance between scrollframe's right edge scrollcanvas's right edge
3322
+
3323
+ // scrollgrid will ignore resize requests if there are too many :|
3324
+
3325
+ // seconds
3326
+
3327
+ // seconds and ms were already considered in sanitizeSettings
3328
+
3329
+ // seconds to minute
3330
+
3331
+ // see NOTE in SimpleScrollGrid
3332
+
3333
+ // see https://github.com/facebook/react/issues/13029
3334
+
3335
+ // see sorting in computeMonthsParse
3336
+
3337
+ // segInputs assumed sorted
3338
+
3339
+ // segs without coords
3340
+
3341
+ // selection is already rendered, so just need to report selection
3342
+
3343
+ // sets coordAdjust
3344
+
3345
+ // sets initialHit
3346
+
3347
+ // settings
3348
+
3349
+ // should not be a purecomponent
3350
+
3351
+ // should window resizes be considered "forced" ?
3352
+
3353
+ // skip outer content
3354
+
3355
+ // skip past levels that are too high up
3356
+
3357
+ // slightly inefficient. already done up the call stack
3358
+
3359
+ // slotMinTime or slotMaxTime causes the range to expand.
3360
+
3361
+ // snapshot
3362
+
3363
+ // so new drag doesn't happen while revert animation is going
3364
+
3365
+ // so we can find the correct dates from the cached ones.
3366
+
3367
+ // so we can properly clone ourselves.
3368
+
3369
+ // so we get same `cols` props every time
3370
+
3371
+ // so we need to sanitize ourselves
3372
+
3373
+ // something else changed, probably external
3374
+
3375
+ // sometimes true if SSR system simulates DOM
3376
+
3377
+ // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere
3378
+
3379
+ // somewhat similar to what TimeGrid does. consolidate?
3380
+
3381
+ // sorted by levelCoord (lowest to highest)
3382
+
3383
+ // sourceId
3384
+
3385
+ // spans from one day into another?
3386
+
3387
+ // spans more than one month?
3388
+
3389
+ // special case for zero
3390
+
3391
+ // specified which hour they want. So trying to maintain the same hour (in
3392
+
3393
+ // split up the touchingEntry, reinsert it
3394
+
3395
+ // start-of-first-week - start-of-year
3396
+
3397
+ // started on week start, or week number 1
3398
+
3399
+ // still event
3400
+
3401
+ // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root
3402
+
3403
+ // sufficiently large number of different minute cells?
3404
+
3405
+ // sufficiently large number of different second cells?
3406
+
3407
+ // supplied as a function that returns a key/value object
3408
+
3409
+ // supports only 2.0-style add(1, 's') or add(duration)
3410
+
3411
+ // supports only 2.0-style subtract(1, 's') or subtract(duration)
3412
+
3413
+ // test the regex
3414
+
3415
+ // testing scrollHeight>clientHeight is unreliable cross-browser when pixel heights aren't integers.
3416
+
3417
+ // testing scrollWidth>clientWidth is unreliable cross-browser when pixel heights aren't integers.
3418
+
3419
+ // that come from the document to fire beforehand. much more convenient this way.
3420
+
3421
+ // that's why we use spreadsheetResizerElRef instead
3422
+
3423
+ // the <td>
3424
+
3425
+ // the Date.UTC function remaps years 0-99 to 1900-1999
3426
+
3427
+ // the NON-DATE-RELATED props
3428
+
3429
+ // the array should mirror the parameters below
3430
+
3431
+ // the beginning of the day the range starts
3432
+
3433
+ // the caller can also set the PointerDragging's options as well
3434
+
3435
+ // the cell padding+border
3436
+
3437
+ // the closer to the edge, the faster we scroll
3438
+
3439
+ // the date constructor remaps years 0-99 to 1900-1999
3440
+
3441
+ // the destination level will be after touchingEntry's level. find it
3442
+
3443
+ // the entry that the new insertion is touching must be hidden
3444
+
3445
+ // the events being dragged
3446
+
3447
+ // the fc-daygrid-day-events
3448
+
3449
+ // the fc-daygrid-day-frame
3450
+
3451
+ // the groups are unordered
3452
+
3453
+ // the initial calendar might have an dummy drag state from displayDrag
3454
+
3455
+ // the necessary height:100% on the liquid-height body section forces the *whole* table to be taller. (bug #5524)
3456
+
3457
+ // the only allowed military tz is Z
3458
+
3459
+ // the recurrence plugins don't guarantee that all-day events are start-of-day, so we have to
3460
+
3461
+ // the reverse of daysToMonths
3462
+
3463
+ // the seg being selected/dragged
3464
+
3465
+ // the two dates are different in a way that's larger scale than time
3466
+
3467
+ // the window is the only scroll object that changes it's rectangle relative
3468
+
3469
+ // then this resource is unconditionally prohibited, which is what a `false` value does.
3470
+
3471
+ // there is a max setTimeout ms value (https://stackoverflow.com/a/3468650/96342)
3472
+
3473
+ // there is no such time in the given timezone.
3474
+
3475
+ // these DON'T return zoned-dates. only UTC start-of dates
3476
+
3477
+ // these props are important to give this wrapper correct dimensions for interactions
3478
+
3479
+ // things that derive from other translatable strings.
3480
+
3481
+ // this is not used
3482
+
3483
+ // this is useful for scrolling prev/next dates while resource is scrolled down
3484
+
3485
+ // this issue doesn't happen for the timeline body however (
3486
+
3487
+ // this rule.
3488
+
3489
+ // this should be abstract
3490
+
3491
+ // this should be: 'Kanûna Paşîn_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Çirîya Pêşîn_Çirîya Paşîn_Kanûna Pêşîn'
3492
+
3493
+ // this was impossible to do with normal on/off because 'scroll' doesn't bubble.
3494
+
3495
+ // this year.
3496
+
3497
+ // this.add(gettext('DAY'))
3498
+
3499
+ // tho it's really easy to access this globally rather than pass thru options.
3500
+
3501
+ // throw parse error otherwise?
3502
+
3503
+ // time formats are the same as en-gb
3504
+
3505
+ // time part wasn't stripped, can add timezone info
3506
+
3507
+ // timeZoneOffset is in minutes
3508
+
3509
+ // timezone chunker
3510
+
3511
+ // to assign multiple headers to each cell
3512
+
3513
+ // to the document's topleft as it scrolls
3514
+
3515
+ // token: 'M'
3516
+
3517
+ // touch-scrolling should never unfocus any type of selection
3518
+
3519
+ // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh
3520
+
3521
+ // treat it as a touch end
3522
+
3523
+ // triggered only when the next single subsequent transition finishes
3524
+
3525
+ // true. part of the first event source
3526
+
3527
+ // truncate time
3528
+
3529
+ // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each
3530
+
3531
+ // try from previous state
3532
+
3533
+ // ttr.nextSymbol()
3534
+
3535
+ // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined
3536
+
3537
+ // undefined otherwise).
3538
+
3539
+ // unlike mouse, need to attach to target, not document
3540
+
3541
+ // unselect *date* selection
3542
+
3543
+ // unselect previous selections
3544
+
3545
+ // updateLocale is called for creating a new locale
3546
+
3547
+ // use Intl API when available and returning valid time zone
3548
+
3549
+ // use getCanVGrowWithinCell as a way to detect table-stupid firefox.
3550
+
3551
+ // use in vdom
3552
+
3553
+ // use other one
3554
+
3555
+ // use pythagorean theorem
3556
+
3557
+ // use same key as text
3558
+
3559
+ // use the label interval as a last resort
3560
+
3561
+ // use the slot duration as a last resort
3562
+
3563
+ // useCaptured=true
3564
+
3565
+ // used at all?
3566
+
3567
+ // used by toString()
3568
+
3569
+ // used for event rendering and scrollTime, to disregard slat border
3570
+
3571
+ // useful for testing
3572
+
3573
+ // user currently has finger down?
3574
+
3575
+ // util funcs
3576
+
3577
+ // valid?
3578
+
3579
+ // validate after computed grid duration
3580
+
3581
+ // variables for this instance.
3582
+
3583
+ // view-name = buttonName
3584
+
3585
+ // view-specific options
3586
+
3587
+ // was previously in the calendar
3588
+
3589
+ // wasn't cancelled between animation calls
3590
+
3591
+ // wasn't destroyed mid-drag
3592
+
3593
+ // wday instanceof Weekday
3594
+
3595
+ // we DO want to watch pointer moves because otherwise finalHit won't get populated
3596
+
3597
+ // we are dealing with an EventStore
3598
+
3599
+ // we are not relying on the element to normalize out-of-bounds scroll values
3600
+
3601
+ // we consider this to be the end of the scroll.
3602
+
3603
+ // we don't want long taps or any mouse interaction causing selection/menus.
3604
+
3605
+ // we leverage the only guaranteed timeZone for our UTC markers
3606
+
3607
+ // webpackBootstrap
3608
+
3609
+ // weekday -- low day numbers are considered next week
3610
+
3611
+ // weeks to month
3612
+
3613
+ // weird way to call this!!!
3614
+
3615
+ // weird way to determine if content
3616
+
3617
+ // well. If no1wkst is 0, either the year
3618
+
3619
+ // went 1 past. insert at i
3620
+
3621
+ // what if parsed bad!?
3622
+
3623
+ // when a prev/next operation happens.
3624
+
3625
+ // when computing the diff for an event being converted to all-day,
3626
+
3627
+ // when trying to find en-US, en_US, en-us for every format call
3628
+
3629
+ // when we don't know dims
3630
+
3631
+ // which is a way to define the currentRange and activeRange at the same time.
3632
+
3633
+ // which months you are are talking about, so we have to store
3634
+
3635
+ // while waiting to know availableWidth, we can't set height to *zero*
3636
+
3637
+ // why might instanceId not be in the store? an event from another calendar?
3638
+
3639
+ // why no type?
3640
+
3641
+ // will already have eventMinHeight applied because segInputs already had it
3642
+
3643
+ // will be `null` if no dates accept events
3644
+
3645
+ // will cause subjectEl in all emitted events to be this element
3646
+
3647
+ // will compute if necessary
3648
+
3649
+ // will convert to array
3650
+
3651
+ // will disregard undefined for sparse arrays
3652
+
3653
+ // will fire *before* the scroll event is fired (might not cause a scroll)
3654
+
3655
+ // will match the longer piece.
3656
+
3657
+ // will stop animation
3658
+
3659
+ // will stop when gets to document or null
3660
+
3661
+ // will try to reslice...
3662
+
3663
+ // will work fine for divs that have overflow:hidden
3664
+
3665
+ // wire things up
3666
+
3667
+ // wish we could use a selector to detect date selection, but uses hit system
3668
+
3669
+ // wish we didn't have to pass in the rest of the args...
3670
+
3671
+ // wish we didn't need to pass in the rest of these args...
3672
+
3673
+ // with parseZone.
3674
+
3675
+ // without creating circular dependencies.
3676
+
3677
+ // won't even fire if moving was ignored
3678
+
3679
+ // won't ever be populated if shouldIgnoreMove
3680
+
3681
+ // worth making a PureComponent? (because of innerHeight)
3682
+
3683
+ // would use preventSelection(), but that prevents selectstart, causing problems.
3684
+
3685
+ // would want to use own <tr> ref, but not guaranteed to be ready when this fires
3686
+
3687
+ // wtf
3688
+
3689
+ // year and month views should be aligned with weeks. this is already done for week
3690
+
3691
+ // yes, three characters difference
3692
+
3693
+ // yuck
3694
+
3695
+ // yucky to memoize VNodes, but much more efficient for consumers
3696
+
3697
+ // zero-indexed
3698
+
3699
+ // zoom can give weird floating-point values. rather scroll a little bit further
3700
+
3701
+ // }
3702
+
3703
+ // Выражение, которое соответствует только сокращённым формам
3704
+
3705
+ // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637
3706
+
3707
+ // копия предыдущего
3708
+
3709
+ // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку?
3710
+
3711
+ // полные названия с падежами
3712
+
3713
+ // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки
3714
+
3715
+ //! Copyright (c) JS Foundation and other contributors
3716
+
3717
+ //! github.com/moment/moment-timezone
3718
+
3719
+ //! license : MIT
3720
+
3721
+ //! moment-timezone.js
3722
+
3723
+ //! moment.js
3724
+
3725
+ //! moment.js locale configuration
3726
+
3727
+ //! version : 0.5.45
3728
+
3729
+ //# sourceMappingURL=cache.js.map
3730
+
3731
+ //# sourceMappingURL=callbackiterresult.js.map
3732
+
3733
+ //# sourceMappingURL=datewithzone.js.map
3734
+
3735
+ //# sourceMappingURL=easter.js.map
3736
+
3737
+ //# sourceMappingURL=i18n.js.map
3738
+
3739
+ //# sourceMappingURL=index.js.map
3740
+
3741
+ //# sourceMappingURL=iterresult.js.map
3742
+
3743
+ //# sourceMappingURL=iterset.js.map
3744
+
3745
+ //# sourceMappingURL=monthinfo.js.map
3746
+
3747
+ //# sourceMappingURL=optionstostring.js.map
3748
+
3749
+ //# sourceMappingURL=parseoptions.js.map
3750
+
3751
+ //# sourceMappingURL=parsestring.js.map
3752
+
3753
+ //# sourceMappingURL=parsetext.js.map
3754
+
3755
+ //# sourceMappingURL=poslist.js.map
3756
+
3757
+ //# sourceMappingURL=rruleset.js.map
3758
+
3759
+ //# sourceMappingURL=rrulestr.js.map
3760
+
3761
+ //# sourceMappingURL=totext.js.map
3762
+
3763
+ //# sourceMappingURL=types.js.map
3764
+
3765
+ //# sourceMappingURL=yearinfo.js.map
3766
+
3767
+ //Different grammatical cases
3768
+
3769
+ //check for negative zero, return zero if negative zero
3770
+
3771
+ //compute day of the year from weeks and weekdays
3772
+
3773
+ //if the day of the year is set, figure out what it is
3774
+
3775
+ //invert the arguments, but complain about it
3776
+
3777
+ //ne 'diurno', ĉar estas uzita por proksimumo
3778
+
3779
+ //or tokens
3780
+
3781
+ //short-circuit everything else
3782
+
3783
+ //the next array item is better than a shallower substring of this one
3784
+
3785
+ //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978
3786
+
3787
+ //warn user if arguments are passed but the locale could not be set