|
1 | 1 | import isVisible from 'rc-util/lib/Dom/isVisible'; |
2 | 2 | import KeyCode from 'rc-util/lib/KeyCode'; |
3 | 3 | import raf from 'rc-util/lib/raf'; |
4 | | -import type { CustomFormat, PanelMode, PickerMode } from '../interface'; |
| 4 | +import type { CustomFormat, PickerMode } from '../interface'; |
5 | 5 |
|
6 | 6 | const scrollIds = new Map<HTMLElement, number>(); |
7 | 7 |
|
@@ -180,82 +180,7 @@ export function getDefaultFormat<DateType>( |
180 | 180 | return mergedFormat; |
181 | 181 | } |
182 | 182 |
|
183 | | -// ===================== Window ===================== |
184 | | -type ClickEventHandler = (event: MouseEvent) => void; |
185 | | -let globalClickFunc: ClickEventHandler | null = null; |
186 | | -const clickCallbacks = new Set<ClickEventHandler>(); |
187 | | - |
188 | | -export function addGlobalMouseDownEvent(callback: ClickEventHandler) { |
189 | | - if (!globalClickFunc && typeof window !== 'undefined' && window.addEventListener) { |
190 | | - globalClickFunc = (e: MouseEvent) => { |
191 | | - // Clone a new list to avoid repeat trigger events |
192 | | - [...clickCallbacks].forEach((queueFunc) => { |
193 | | - queueFunc(e); |
194 | | - }); |
195 | | - }; |
196 | | - window.addEventListener('mousedown', globalClickFunc); |
197 | | - } |
198 | | - |
199 | | - clickCallbacks.add(callback); |
200 | | - |
201 | | - return () => { |
202 | | - clickCallbacks.delete(callback); |
203 | | - if (clickCallbacks.size === 0) { |
204 | | - window.removeEventListener('mousedown', globalClickFunc!); |
205 | | - globalClickFunc = null; |
206 | | - } |
207 | | - }; |
208 | | -} |
209 | | - |
210 | | -export function getTargetFromEvent(e: Event) { |
211 | | - const target = e.target as HTMLElement; |
212 | | - |
213 | | - // get target if in shadow dom |
214 | | - if (e.composed && target.shadowRoot) { |
215 | | - return (e.composedPath?.()[0] || target) as HTMLElement; |
216 | | - } |
217 | | - |
218 | | - return target; |
219 | | -} |
220 | | - |
221 | 183 | // ====================== Mode ====================== |
222 | | -const getYearNextMode = (next: PanelMode): PanelMode => { |
223 | | - if (next === 'month' || next === 'date') { |
224 | | - return 'year'; |
225 | | - } |
226 | | - return next; |
227 | | -}; |
228 | | - |
229 | | -const getMonthNextMode = (next: PanelMode): PanelMode => { |
230 | | - if (next === 'date') { |
231 | | - return 'month'; |
232 | | - } |
233 | | - return next; |
234 | | -}; |
235 | | - |
236 | | -const getQuarterNextMode = (next: PanelMode): PanelMode => { |
237 | | - if (next === 'month' || next === 'date') { |
238 | | - return 'quarter'; |
239 | | - } |
240 | | - return next; |
241 | | -}; |
242 | | - |
243 | | -const getWeekNextMode = (next: PanelMode): PanelMode => { |
244 | | - if (next === 'date') { |
245 | | - return 'week'; |
246 | | - } |
247 | | - return next; |
248 | | -}; |
249 | | - |
250 | | -export const PickerModeMap: Record<PickerMode, ((next: PanelMode) => PanelMode) | null> = { |
251 | | - year: getYearNextMode, |
252 | | - month: getMonthNextMode, |
253 | | - quarter: getQuarterNextMode, |
254 | | - week: getWeekNextMode, |
255 | | - time: null, |
256 | | - date: null, |
257 | | -}; |
258 | | - |
259 | 184 | export function elementsContains( |
260 | 185 | elements: (HTMLElement | undefined | null)[], |
261 | 186 | target: HTMLElement, |
|
0 commit comments