diff --git a/packages/ui/src/components/calendar/DateInputBox.svelte b/packages/ui/src/components/calendar/DateInputBox.svelte index 792e40d800..47a30ae11c 100644 --- a/packages/ui/src/components/calendar/DateInputBox.svelte +++ b/packages/ui/src/components/calendar/DateInputBox.svelte @@ -22,6 +22,7 @@ export let currentDate: Date | null export let withTime: boolean = false + export let kind: 'default' | 'plain' = 'default' type TEdits = 'day' | 'month' | 'year' | 'hour' | 'min' interface IEdits { @@ -200,8 +201,9 @@ }) -
+
+ {/if} . + {/if} . + {#if withTime}
+ {/if} : + {#if currentDate} + +
{ selected = 'day' startTyping = true @@ -293,15 +301,9 @@ align-items: center; flex-shrink: 0; margin: 0; - padding: 0.75rem; height: 3rem; font-family: inherit; - font-size: 1rem; color: var(--theme-content-color); - background-color: var(--theme-bg-color); - border: 1px solid var(--theme-button-border); - border-radius: 0.25rem; - transition: border-color 0.15s ease; &:hover { border-color: var(--theme-button-default); @@ -332,9 +334,6 @@ .digit { position: relative; - padding: 0 0.125rem; - height: 1.5rem; - line-height: 1.5rem; color: var(--theme-caption-color); outline: none; border-radius: 0.125rem; @@ -355,14 +354,47 @@ } .time-divider { flex-shrink: 0; - margin: 0 0.25rem; width: 1px; min-width: 1px; - height: 0.75rem; background-color: var(--theme-button-border); } - .separator { - margin: 0 0.1rem; + + &.plain:not(.default) { + padding: 0.5rem 0; + font-size: 1.25rem; + + .digit { + padding: 0.5rem 0.125rem; + line-height: 1.25rem; + } + .separator { + margin: 0; + } + .time-divider { + margin: 0 0.375rem; + height: 1.5rem; + } + } + &.default:not(.plain) { + padding: 0.75rem; + font-size: 1rem; + background-color: var(--theme-bg-color); + border: 1px solid var(--theme-button-border); + border-radius: 0.25rem; + transition: border-color 0.15s ease; + + .digit { + padding: 0 0.125rem; + height: 1.5rem; + line-height: 1.5rem; + } + .separator { + margin: 0 0.1rem; + } + .time-divider { + margin: 0 0.25rem; + height: 0.75rem; + } } } diff --git a/packages/ui/src/components/calendar/DatePopup.svelte b/packages/ui/src/components/calendar/DatePopup.svelte index 08a6613024..2e080314a8 100644 --- a/packages/ui/src/components/calendar/DatePopup.svelte +++ b/packages/ui/src/components/calendar/DatePopup.svelte @@ -16,15 +16,19 @@ import { DateRangeMode } from '@hcengineering/core' import { IntlString } from '@hcengineering/platform' import { createEventDispatcher } from 'svelte' + import { + ActionIcon, + Button, + Scroller, + deviceOptionsStore as deviceInfo, + checkAdaptiveMatching, + Label, + IconClose + } from '../..' import ui from '../../plugin' - import ActionIcon from '../ActionIcon.svelte' - import Button from '../Button.svelte' - import Label from '../Label.svelte' - import IconClose from '../icons/Close.svelte' import DateInputBox from './DateInputBox.svelte' import MonthSquare from './MonthSquare.svelte' import Shifts from './Shifts.svelte' - import { Scroller, deviceOptionsStore as deviceInfo } from '../..' export let currentDate: Date | null export let withTime: boolean = false @@ -36,7 +40,12 @@ const dispatch = createEventDispatcher() const today: Date = new Date(Date.now()) + $: devSize = $deviceInfo.size + $: oneMonth = checkAdaptiveMatching(devSize, 'sm') + $: docHeight = $deviceInfo.docHeight + const rem = (n: number, fs: number): number => n * fs + $: scrolled = docHeight < rem(39, $deviceInfo.fontSize) let viewDate: Date = currentDate ?? today let viewDateSec: Date @@ -93,51 +102,74 @@ />
- -
- - {#if detail} - - -
- - closeDP(withTime)} - on:save={() => saveDate(withTime)} - /> + {#if detail} +
+ {/if} + closeDP(withTime)} + on:save={() => saveDate(withTime)} + /> +
+ {#if scrolled} + +
+
+ updateDate(result.detail)} + /> + {#if !oneMonth} +
+ updateDate(result.detail)} + on:navigation={(result) => navigateMonth(result.detail)} + /> + {/if} +
+ + {:else}
updateDate(result.detail)} /> - updateDate(result.detail)} - on:navigation={(result) => navigateMonth(result.detail)} - /> + {#if !oneMonth} +
+ updateDate(result.detail)} + on:navigation={(result) => navigateMonth(result.detail)} + /> + {/if}
- + {/if}