Marek Piasecki
2 years ago
9 changed files with 152 additions and 10 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,29 @@ |
|||
@font-face { |
|||
font-family: 'Blogger'; |
|||
src: url('./assets/Blogger_Sans.woff') format('woff'); |
|||
font-weight: 400; |
|||
font-stretch: 75% 125%; |
|||
font-style: normal; |
|||
} |
|||
@font-face { |
|||
font-family: 'BloggerMedium'; |
|||
src: url('./assets/Blogger_Sans-Medium.woff') format('woff'); |
|||
font-weight: 500; |
|||
font-stretch: 75% 125%; |
|||
font-style: normal; |
|||
} |
|||
@font-face { |
|||
font-family: 'BloggerBold'; |
|||
src: url('./assets/Blogger_Sans-Bold.woff') format('woff'); |
|||
font-weight: 600 700; |
|||
font-stretch: 75% 125%; |
|||
font-style: normal; |
|||
} |
|||
|
|||
body { font-family: 'Blogger'; height: 100%; margin: 0; display: flex; flex-direction: column; } |
|||
html { height: 100%; margin: 0} |
|||
|
|||
strong { |
|||
font-family: 'BloggerBold'; |
|||
font-weight: normal; |
|||
} |
@ -0,0 +1,3 @@ |
|||
tag action-button |
|||
css p:13px 5px mx: 5px bgc:violet5 c:white fw:bold d:inline-block bxs:sm |
|||
<self.clickable.bordered><slot> |
@ -0,0 +1,47 @@ |
|||
import './plus-minus.imba' |
|||
|
|||
let h = |
|||
today: do new Date |
|||
|
|||
modify: do |what, n, date=R.param('date')| |
|||
date["set{what}"]( date["get{what}"]() + n ) |
|||
date |
|||
|
|||
change: do |what, n, date=R.param('date')| |
|||
h.save h.modify(*arguments) |
|||
|
|||
save: do |date| |
|||
R.write 'date', date |
|||
|
|||
incr_day: do h.change "Date", 1 |
|||
decr_day: do h.change "Date", -1 |
|||
incr_month: do h.change "Month", 1 |
|||
decr_month: do h.change "Month", -1 |
|||
incr_year: do h.change "FullYear", 1 |
|||
decr_year: do h.change "FullYear", -1 |
|||
|
|||
no_time: do |date| |
|||
date.setHours(0,0,0,0) |
|||
date |
|||
|
|||
valid: do |date| |
|||
( date || R.param('date') ) > h.no_time! h.today! |
|||
|
|||
format: do |n| |
|||
"{if n < 10 then 0 else ''}{n}" |
|||
|
|||
export default h |
|||
|
|||
R.setters.date = do |v| "{v.getFullYear!}-{h.format(v.getMonth!+1)}-{h.format(v.getDate!)}" if h.valid(v) |
|||
R.getters.date = do |v| |
|||
if v |
|||
let date = new Date(v) |
|||
return date if h.valid(date) |
|||
h.today! |
|||
|
|||
tag date-input |
|||
<self[d:hflex jac:center]> |
|||
<plus-minus value=R.param('date').getFullYear! decr=h.decr_year incr=h.incr_year> |
|||
<plus-minus value=R.param('date').getMonth!+1 decorate=h.format decr=h.decr_month incr=h.incr_month> |
|||
<plus-minus value=R.param('date').getDate! decorate=h.format decr=h.decr_day incr=h.incr_day> |
|||
|
@ -0,0 +1,22 @@ |
|||
tag plus-minus |
|||
prop value |
|||
prop decorate |
|||
prop incr |
|||
prop decr |
|||
|
|||
css m: 10px |
|||
> miw:50px h:50px p:19px 5px 0 ta:center fs:180% |
|||
|
|||
<self.bordered-complex @wheel=(e.deltaY < 0 ? incr! : decr!)> |
|||
<plus-minus-plus.first incr=incr> |
|||
if value |
|||
<div> decorate ? decorate(value) : value |
|||
<plus-minus-minus.last decr=decr> |
|||
|
|||
tag plus-minus-plus |
|||
prop incr |
|||
<self.clickable@click=incr> '+' |
|||
|
|||
tag plus-minus-minus |
|||
prop decr |
|||
<self.clickable@click=decr> '-' |
@ -0,0 +1,24 @@ |
|||
import dh from "../ui/date-input.imba" |
|||
import "../ui/action-button.imba" |
|||
|
|||
let h = |
|||
tomorrow: do dh.modify "Date", 1, dh.today! |
|||
in_a_week: do dh.modify "Date", 7, dh.today! |
|||
day_word: do /^\w*/.exec(R.param('date').toString!)[0] |
|||
|
|||
tag view-day-select |
|||
<self> |
|||
<h1> "Which day?" |
|||
<DayHint day=dh.today!> "Today" |
|||
<DayHint day=h.tomorrow!> "Tomorrow" |
|||
<DayHint day=h.in_a_week!> "In a week" |
|||
<date-input> |
|||
<pro-ref view="choose-slot"> |
|||
<action-button[w:230px fs:larger]> "Check slots for {h.day_word!}" |
|||
|
|||
tag DayHint < action-button |
|||
prop day |
|||
<self.clickable.bordered.active=compare_days @click=dh.save(day)><slot> |
|||
|
|||
get compare_days |
|||
R.setters.date(R.param('date')) == R.setters.date(day) |
Loading…
Reference in new issue