æ¥ä»ãéžæããããã®å°çšã³ã³ããŒãã³ããè¿œå ããŸãã ngãããªã¢ã«ã®æ¥ä»ããã«ãŒã³ã³ããŒãã³ããšåæ§ïŒ https ïŒ
ã³ã³ããŒãã³ãã¯æ¬¡ã®å±æ§ããµããŒãããå¿ èŠããããŸãã
ãŸããåºæ¬ããŒãžã§ã³ãæäŸããã ãã§ååã§ãã次ã«ãã¿ã³ã®ããå ¥åãã£ãŒã«ããå®è¡ããŠãæ¥ä»ã»ã¬ã¯ã¿ãŒãªãŒããŒã¬ã€ãéããŸãïŒæ·»ä»ã®ã¹ã¯ãªãŒã³ã·ã§ãããåç §ïŒã
ãããªã¢ã«æ¥ä»ããã«ãŒã®ã¹ã¯ãªãŒã³ã·ã§ããïŒ
@gsellthoãã®æ©èœãªã¯ãšã¹ããéããŠããã ããããããšãããããŸãã
ãã®ãããã¯ã«ã€ããŠã¯ã@ dynatrace-oss / ux-coreããŒã ãšã®ç·å¯ãªã³ã©ãã¬ãŒã·ã§ã³ãå¿
èŠã ãšæããŸãã ãã¶ãã圌ãã¯ãã®ãããã¯ã®ããã«ãã§ã«ããã€ãã®ã¢ãã¯ãäœæããŠããããç§ãã¡ã«ããã€ãã®æŽå¯ãæäŸããããšãã§ããŸãã
圌ãããã§ã«ããã€ãã®ã¢ãã¯ããã¶ã€ã³ãæã£ãŠããå Žåããã®åé¡ã¯ãã¹ãŠã®å¿ èŠãªæ å ±ãšAPIææ¡ãåéããããã®è¯ãåºçºç¹ã«ãªããŸãã
æ¥ä»ããã«ãŒãã©ã®ç®çã«å¿
èŠãã¯ããããŸããããArkadiusz Lipiarzã¯ãã°ããŒãã«ã¿ã€ã ãã¬ãŒã ã»ã¬ã¯ã¿ãŒãšããŠäœ¿çšãããæ¥ä»ããã«ãŒã«ã€ããŠã圌ã®ããŒã ãšé·ãéååããŠããŸãã
ãã¢ç°å¢ã«ã¯ãã§ã«å®è£
ãããŠããŸãã ãã®å Žåã圌ãšè©±ãã®ãæåã ãšæããŸãã
éå»ã«è©±ãåããããã@ ursula-wieshoferã補åã®è©äŸ¡ãè¡ããåèšã§1ã€ã2ã€ã®æ¥ä»ããã«ãŒããããŸãã ããã¯ããããåªå é äœãªã¹ãã§é«ããªãã£ãããšãæå³ããŸããã
@gsellthoããã«ã€ããŠããã«è°è«ããã©ã€ãã©ãªãžã®è¿œå ãã¿ãŒã²ããã«ããããšã¯ããªã£ãŠãããšæããŸãã
@ angular / componentsããå€ãã®ããšãåŠã³ãç°¡ç¥åãããããŒãžã§ã³ãäœæã§ãããšæããŸãã
ãã詳现ãªAPIããããŒã¶ã«ãäœæã§ããŸããïŒ
ããã«ã¡ã¯ïŒ
ãããã£ãŠãç§ã®ããŒã ãäœæããæ©èœã¯ã @ gsellthoã«ãªã¹ããããŠãããŠãŒã¹ã±ãŒã¹ãªã©ã«é©åããããã§ãã åœãµã€ãã®ãããã«å ããŠãããã·ã¥ããŒãããŒã ã«ãã£ãŠããŒã«ã«ã³ã³ããŒãã³ããšããŠã䜿çšãããŠããŸãã AngularãšGWTã®äž¡æ¹ã§æºåããŸããã èå³ãããã°ãSlackã«ã€ããŠç§ã«é£çµ¡ããŠãã ããã
ããã...ã©ã€ã¢ã³ãšåœŒã®ããŒã ã¯ãããªããå ±æãããã®ãšéåžžã«ãã䌌ããœãªã¥ãŒã·ã§ã³ãæºåããŠããããã§ãã å€èŠ³ã¯æ¬¡ã®ãšããã§ãã
ã³ãŒãã®ææè ã¯@areknowã§ããã圌ã¯ããªãã«è©³çŽ°ãæäŸããããšãã§ããŸãã
ããã«ã¡ã¯ã¿ããªãç§ã¯æ¬¡ã«äœãããããªãã RyansããŒã ã®ã³ã³ããŒãã³ãã¯ãåºæ¬çã«è§åŒµã£ãçŽ æã§ãããç§ãå¿ èŠãšããŠãããã®ãæ£ç¢ºã«è¡šããŠããŸãã ããããããã¯éåžžã«åºæ¬çãªã³ã³ããŒãã³ãã§ããããããã®ããŒã ã¯ããªã¹ã¿ã³ã³ããŒãã³ãã§ããå¿ èŠããããèŠããšãããããå€ãã®ããŒã ãããã䜿çšã§ãããšæããŸãã
@ ffriedl89 ïŒãã¡ããããã詳现ãªAPIã®èª¬æãäœæã§ããŸãã å°ãªããšããæåã®å®è£ ã®éãããæ©èœã»ããã«ã€ããŠã¯ã æ°æ¥äžã«ããã«æçš¿ããŸã
ããã«ã¡ã¯@gselltho ãç§ã¯spine-xãªããžããªã«ããæ¥ä»ããã«ãŒå ±æã³ã³ããŒãã³ãã®éçºè ã§ãã ããªã¹ã¿ã³ã³ããŒãã³ãã©ã€ãã©ãªãžã®è»¢éã«ã€ããŠã¯ãã§ã«ããªã¹ã¿ããŒã ãšè©±ããŸããããæ®å¿µãªãããããŒã ããããžã§ã¯ãã«è¿œå ããããªãããã€ãã®ãããªã¢ã«ããã±ãŒãžã«åŒ·ãäŸåããŠããŸãã
Angular CDKã«ã¯æ¥ä»ããã«ãŒãå«ãŸããŠããªãããããã®ã³ã³ããŒãã³ãã¯ãŒãããäœæããå¿ èŠããããŸãã
ã¢ããªããžããªã®æ¥ä»ããã«ãŒå ±æã³ã³ããŒãã³ãã®äœ¿çšã«åé¡ã¯ãããŸããïŒ
也æ¯
ããã«ã¡ã¯@areknow ãããªãã®ã³ã³ããŒãã³ãã¯çŽ æŽãããã§ãïŒ Angulars Reactive Formæ©èœïŒControlValueAccessorïŒãæããã®ã§ãBaristaããã³AngularReactiveãã©ãŒã å ã§ã·ãŒã ã¬ã¹ã«äœ¿çšããã«ã¯DtFormFieldControlã§ããå¿ èŠãããããã§ãã
@gsellthoããäžåºŠãåãåããããã ãããããšãããããŸãã @areknowã®æŠèŠãšãŸã£ããåãã§ãã 圌ã®ã³ã³ããŒãã³ãã¯ãè§åºŠ/ã³ã³ããŒãã³ããªããžããªãããããªã¢ã«ããã³ä»ã®utilã©ã€ãã©ãªãžã®äŸåé¢ä¿ãå°å
¥ããã¹ã¿ã€ã«å€æŽããããããªã¢ã«ã³ã³ããŒãã³ãã§ãã ãŸããmoment.jsãžã®åŒ·ãäŸåé¢ä¿ããããŸããããã¯å·šå€§ã§ãããªãŒãæºãããããšã¯ã§ããŸããã
æ®å¿µãªãããCDKã«ã¯ãŸã æ¥ä»ããã«ãŒãä»å±ããŠããŸããã
ãããŸã§ã補åã«ã¯ã°ããŒãã«ã¿ã€ã ãã¬ãŒã ã»ã¬ã¯ã¿ãŒä»¥å€ã®æ¥ä»ããã«ãŒããªããããæ¥ä»ããã«ãŒã¯å€ãã®ããŒã ãå¿
èŠãšããã³ã³ããŒãã³ãã§ã¯ãããŸããã§ããã
ã³ã³ããŒãã³ããå¿
èŠãªå Žåã¯ãã³ã³ããŒãã³ããã©ã€ãã©ãªã«æäŸããããã«ååã§ããã°çŽ æŽããããšæããŸãã ãã®ããã»ã¹ã¯ããã®å·ã§APIããããŒã¶ã«ãäœæããããšããå§ãŸããŸã:)
ãããå®äºãããšãç§ãã¡ã¯ããªããå§ããŠéçºããã»ã¹ãæ¡å
ããã®ãæäŒãããšãã§ãããã®éçšã§ããªããæäŒããŸãã
çŸåšãããªã¹ã¿ããŒã ã¯ããã®ã³ã³ããŒãã³ããã©ã€ãã©ãªã«è¿œå ããããã«ãå¯çš¿è
ã®æ¯æŽãå¿
èŠãšããŠããŸãã
ããã§ã®å©ãã¯å€§æè¿ã§ã
ãããèšå®VCTã«ãæ¥ä»/ã¿ã€ã ããã«ãŒãå¿ èŠãªã®ã§ããããåŠçããŸãã 以äžã®ã³ã¡ã³ãã§ã¯ããã¹ãŠã®èŠä»¶ãåéããŠããAPIãææ¡ããŸãã
ãŸã ãªã¹ããããŠããªããããã«ããã¹ãæ©èœ/èŠä»¶ãããå Žåã¯ãç§ã«ç¥ãããŠãã ããã
cc @areknow
Date
ãªããžã§ã¯ã/ã¯ã©ã¹ïŒã³ã³ã·ã¥ãŒããŒåãAPIå
šäœãå«ãïŒã§è¡šãå¿
èŠããããŸãã ããã€ãã®æœè±¡çãªã«ã¹ã¿ã å®è£
ã«ãããã®ã§ã¯ãããŸããã è¿œå ã®ãŠãŒãã£ãªãã£é¢æ°/ãµãŒãã¹ïŒ DateAdapter
ïŒãå¿
èŠã«ãªãå ŽåããããŸãã_ WIPïŒæéã®çµéãšãšãã«é©å¿ãããŸãã
Datepickerã¯ãè€æ°ã®ã³ã³ããŒãã³ãã§æ§æãããŠããå¿ èŠããããŸãã
dt-datepicker
ïŒããŒãããã«ãŒèªäœã ãã®ã³ã³ããŒãã³ãã¯ãä»ã®ãã¹ãŠã®ã³ã³ããŒãã³ãã1ã€ã®useabe datepickerã«çµåããŸãïŒèŠä»¶ãåç §ïŒã
| åå| ã¿ã€ã| ããã©ã«ãå€| 説æ|
| ---------- | ----------- | ------------- | ------------ |
| å€| D \| null
| null
| éžæããæ¥ä»ã |
| startAt | D \| null
| null
| ã«ã¬ã³ããŒãæåã«éãæ¥ä»ã selected
ãèšå®ãããŠããå Žåã¯ç¡èŠãããŸãã ããã©ã«ãã¯ã衚瀺ã®ã¿ã®ããã«å
éšçã«ä»æ¥ã®æ¥ä»ã«ãªããŸãã |
| å| D \| null
| null
| æå°æå¹æ¥ã |
| æ倧| D \| null
| null
| æ倧æå¹æ¥ã |
| ç¡å¹| boolean
| false
| æ¥ä»ããã«ãŒãç¡å¹ã«ãªã£ãŠãããã©ããã |
| isTimeEnabled | boolean
| false
| æéã¢ãŒããæå¹ãã©ããã |
| isRangeEnabled | boolean
| false
| ã¬ã³ãžã¢ãŒããæå¹ãã©ããã |
dt-calendar
ïŒã«ã¬ã³ããŒãã¥ãŒã§æ¥ä»ãéžæããããã®ã³ã³ããŒãã³ãïŒ calendar-body
ã³ã³ããŒãã³ãïŒã ã«ã¬ã³ããŒãã¥ãŒïŒæïŒãšãç°ãªãæãšå¹Žã®éã移åããããã«å¿
èŠãªã³ã³ãããŒã«ãå«ãŸããŠããŸãã
| åå| ã¿ã€ã| ããã©ã«ãå€| 説æ|
| ---------- | ----------- | ------------- | ------------ |
| éžææžã¿| D \| null
| null
| çŸåšéžæãããŠããæ¥ä»ã |
| startAt | D \| null
| null
| ã«ã¬ã³ããŒãéå§ããæéïŒæãŸãã¯å¹ŽïŒãè¡šãæ¥ä»ã
| minDate | D \| null
| null
| éžæå¯èœãªæå°ã®æ¥ä»ã |
| maxDate | D \| null
| null
| éžæå¯èœãªæ倧æ¥ä»ã |
| åå| ã¿ã€ã| 説æ|
| ---------------- | ----------- | ------------ |
| selectedChange | D
| çŸåšéžæãããŠããæ¥ä»ãå€æŽããããšçºçããŸãã |
dt-calendar-body
ïŒ1ãæéã«ã¬ã³ããŒã°ãªããã®ã¿ããã¹ãããŸãã
| åå| ã¿ã€ã| ããã©ã«ãå€| 説æ|
| ------------ | ----------- | ------------- | ------------ |
| activeDate | D
| ä»æ¥| ä»æãã¥ãŒã«è¡šç€ºããæ¥ä»ïŒæãšå¹Žä»¥å€ã¯ãã¹ãŠç¡èŠãããŸãïŒã |
| éžææžã¿| D \| null
| null
| çŸåšéžæãããŠããæ¥ä»ã |
| minDate | D \| null
| null
| éžæå¯èœãªæå°ã®æ¥ä»ã |
| maxDate | D \| null
| null
| éžæå¯èœãªæ倧æ¥ä»ã |
| dateFilter | (date: D) => boolean
| -| æ¥ä»ãéžæå¯èœãã©ããããã£ã«ã¿ãªã³ã°ããããã«äœ¿çšãããé¢æ°ã |
| åå| ã¿ã€ã| 説æ|
| ------------------ | ----------- | ------------ |
| selectedChange | EventEmitter<D>
| æ°ããå€ãéžæããããšãã«çºçããŸãã |
| activeDateChange | EventEmitter<D>
| ããããã®æ¥ä»ãã¢ã¯ãã£ãã«ãªããšçºçããŸãã |
æéå ¥åïŒæéãšåã®å ¥åãå«ãïŒãå«ãã¿ã€ã ããã«ãŒããã¹ãããŸãã
| åå| ã¿ã€ã| ããã©ã«ãå€| 説æ|
| ------------ | ----------- | ------------- | ------------ |
| valueLabel | æåå| '' | ç¯å²ã¢ãŒãã§æ¥ä»ã衚瀺ããããã«äœ¿çšãããã©ãã«ã
| æé| çªå·\ | null | null | ã¿ã€ã ããã«ãŒã«è¡šç€ºããæéã
| å| çªå·\ | null | null | ã¿ã€ã ããã«ãŒã«è¡šç€ºããåã
| ç¡å¹| ããŒã«å€| false | ã¿ã€ã ããã«ãŒãšãã®å
¥åã®ç¡å¹ç¶æ
ã
| isTimeRangeEnabled | ããŒã«å€| false | æéç¯å²ã¢ãŒããæå¹ãã©ããã
| åå| ã¿ã€ã| 説æ|
| ------------------ | ----------- | ------------ |
| timeChange | EventEmitter
æéãšåã®å ¥åãå«ãtimeinputããã¹ãããŸãã
| åå| ã¿ã€ã| ããã©ã«ãå€| 説æ|
| ------------ | ----------- | ------------- | ------------ |
| æé| çªå·\ | null | null | æéå
¥åã«è¡šç€ºããæéã
| å| çªå·\ | null | null | æéå
¥åã«è¡šç€ºããåã
| ç¡å¹| ããŒã«å€| false | å
¥åã®ç¡å¹ç¶æ
ã
| åå| ã¿ã€ã| 説æ|
| ------------------ | ----------- | ------------ |
| timeChange | EventEmitter
æ¥ä»ããã«ãŒãæäŸããå¿ èŠã®ããèŠä»¶/æ©èœã以äžã«æçš¿ããŠãã ããã åã®ã³ã¡ã³ãã®ãªã¹ãã«è¿œå ããŸãã
@thomaspinkãããäžè©±ããŠãããŠããããšãð
èŠä»¶ã®èª¬æã«ã¯ãç§ãå¿
èŠãšãããã¹ãŠã®ãã®ããã§ã«å«ãŸããŠããŸãã ç§ã¯ãã 質åããããŸãïŒ
Selecting a time: In addition to selecting a date the user must also be able to select an additional time.
æéã¯ãªãã·ã§ã³ã§ãããïŒ æ¥ä»ã®ã¿ãæéã®ã¿ããŸãã¯ãã®äž¡æ¹ã®çµã¿åããã§ãéžæå¯èœãªãã®ãéžæã§ããŸããïŒ
@gsellthoãã£ãŒãããã¯ãããããšãð
ã¢ã€ãã¢ã¯ãããã©ã«ããšããŠæ¥ä»ãšæå»ã䜿çšããããšã§ããããæééšåãç¡å¹ã«ããŠæ¥ä»ã®ã¿ã«ãããããŸãã¯ãã®éã«ããããšãã§ããŸãã æåã®æ¹æ³ãããããªãïŒããå€ãã®æ¶è²»è ãæ¥ä»ã»ã¬ã¯ã¿ãŒãŸãã¯æ¥ä»/æå»ã»ã¬ã¯ã¿ãŒã®ã¿ãå¿ èŠãšãããïŒã
ã¿ã€ã ãŸãŒã³ãå¶åŸ¡ã§ãããšäŸ¿å©ã§ãã ã¹ãã€ã³Xã®ãŠãŒã¹ã±ãŒã¹ã®äžéšã§ã¯ãç¹å®ã®ã¬ã¬ã·ãŒAPIãšããåãããããã«UTCãå¿ èŠã§ãã
ãŸãã @ gsellthoãèšã£ãããã«ãæ¥ä»ã ããæã€ãªãã·ã§ã³ããããšäŸ¿å©ã§ãã
ãã®ãããžã§ã¯ããããããšãïŒ
ããã«ã¯ãäºåå®çŸ©ãããçžå¯Ÿçãªæ¥ä»ãå«ãŸããŸããïŒ ãä»ããã2é±éåããªã©ã®ããã«ïŒ
ãã1ã€ã®èŠä»¶ïŒãGTSïŒïŒ
ãã£ãæ¹ãããïŒ
@toddbaertã°ããŒãã«ã¿ã€ã ãã¬ãŒã ã»ã¬ã¯ã¿ãŒãšã¯å¥ã«ãããã¯ãã®äžè¬çãªæ¥ä»ããã«ãŒã®ãŠãŒã¹ã±ãŒã¹ã§ããããŸããïŒ
@ pieniazek @ areknowããªã¹ãã«è¿œå ãããŸãã
@thomaspinkäžè²«æ§ã®çç±ãšããŠãŒã¶ãŒãæ¥ä»ããã«ãŒãç°¡åã«åŠçã§ããããã«ããããã«ãã«ã¬ã³ããŒãå«ãŸããã°ããŒãã«ã¿ã€ã ãã¬ãŒã ã»ã¬ã¯ã¿ãŒã®éšåã«åºå·ããå¿
èŠããããšæããŸãã åºæ¬çãªæ©èœãšåãæ±ãã¯ãã¹ã¿ã€ã«ãšåãã§ããå¿
èŠããããŸãã
ããã¯ããŠãŒã¶ãŒããã§ã«æ©èœã«æ
£ããŠããããããŠãŒã¶ãŒããããæ±ããšãã«ãµããŒãããŸãã
@thomaspinkã¯ãŠãŒã¶ãŒã«ãšã£ãŠå€§ããªåé¡ã«ã¯ãªããŸããããäºåå®çŸ©ãããçžå¯Ÿçãªæ¥ä»ã圹ç«ã€å¯èœæ§ã®ããUIãéããªãå ¬éããŸãã
@toddbaertãµããŒããããŠããå€ã®ãªã¹ãã¯ãããŸããïŒ ãããããã°ããªã¹ãã«è¿œå ããŸã
æ¥ä»ããã«ãŒã®å Žåãæ©èœãšæ å ±ãæäŸããäœããã®ãµãŒãã¹ïŒAngular Materials Data-Adapterãšåæ§ïŒãå¿ èŠã«ãªããŸããããã«ãããæ¥ä»ãšæ£ããååïŒå¹³æ¥ã®ååãå«ãïŒã衚瀺ããŠèšç®ã§ããŸããäžæ¹ããã€ãã£ãã®æ¥ä»ã䜿çšããŸãã ãã®ããµãŒãã¹ãã¯ãæ¶è²»è ãåãããã«æ¥ä»ãæäœã§ããããã«ãããã®æ©èœãå ±æã§ããããã«ããå¿ èŠããããŸãã
ãã®ããã«ãå°ãªããšã2ã€ã®ãªãã·ã§ã³ããããŸãïŒããå€ãã®ã¢ã€ãã¢ãããå Žåã¯ã以äžã«æçš¿ããŠããã ããã°å¹žãã§ãïŒïŒ
Intl
ã Date
ïŒãšãŠãŒãã£ãªãã£é¢æ°ïŒ addCalendarDays
ïŒãçµã¿åãããNativeDateAdapterãäœæããŸãã ãã®ã¢ããã¿ã¯ãè§åºŠãããªã¢ã«ã«éåžžã«äŒŒãŠããŸãNativeDateAdapter ã ãã ãããµããŒããããŠãããã¹ãŠã®ãã©ãŠã¶ã«ã¯ãã§ã«Intl' built in. We would also not need the possibility to have DateAdapter for different libraries as we only work with the native
Date` APIãããããããŠãŒã¹ã±ãŒã¹ã§ã¯Intl
ãå©çšã§ããªãå Žåã®ãã©ãŒã«ããã¯ã¯å¿
èŠãããŸãããdate-fns
ãªã©ã®å€éšã©ã€ãã©ãªã䜿çšããŠãããããµãŒãã¹ïŒDateAdapterïŒã«ã©ãããã顧客ã«æäŸããŸããä»ã®ãšãããè¿œå ã®ã©ã€ãã©ãªãå¿ èŠãšããã«ãã€ãã£ãAPIãå€çšããããããªãã·ã§ã³1ã䜿çšããåŸåããããŸãããã¢ã€ãã¢ã調æ»çµæãã³ã¡ã³ããæçš¿ããŠãã ãã:)
@thomaspinkãã®ãããªã¢ããã¿ãµãŒãã¹ãäœæããå¿
èŠãããããšã«åæããŸãã 以åã«è¿°ã¹ãããã«ãããã«ã¯Intl
ãšDate
ãã€ãã£ãã䜿çšãããã®ã§ããã Intl.DateFormat
ã®ãµããŒããå確èªããŸããããããã§ã¯ãããŸãããããã«ã€ããŠãšãŠã幞ãã§ãã ç¹ã«éšåçã«æ¬ èœããŠããç¯å²ãã©ãŒãããã¯å°ãæ²ããã§ãã
date-fns
ã¯ããªãŒã·ã§ã€ã¯å¯èœã§ãããäžè¬ã«å€§ããªã©ã€ãã©ãªã§ã¯ãªãããã«èŠããã®ã§ã date-fns
ã䜿çšããããšã«ããŸãã
ããã«ãã¯ã©ã€ã¢ã³ãã®ã¿ã€ã ãŸãŒã³ãªã©ãåŠçãããšãã«å€ãã®ãã€ãã£ããµããŒããããå Žåã§ããæ¥ä»ãšæå»ã®èšç®ã¯éåžžã«é£ããå ŽåããããŸã...
ã芧ã®ãšãããæ¥ä»ããã«ãŒã®PRãã©ããã¯ãã§ã«äœæãããŠããŸãã ã³ã³ããŒãã³ãã«é¢ããŠãææ¡ã§ããAPIã¯ãã§ã«ãããŸããïŒ
Intl.DateFormat
ã«ã€ããŠïŒç§ãä»å¶ç¶èŠã€ãããŠãŒã¹ã±ãŒã¹ã§ã¯ããã©ãŒã«ããã¯ã¯ç°¡åã«éæã§ããŸãããã«ã¹ã¿ã ã®æ¥ä»/æå»ã®èšç®ã¯é£ããå Žåãããããšã«åæããŸãã
ãã®PRã¯ä»æåã§ãããç§ã¯ãŸã ãã®ãããªãµãŒãã¹ãå¿ èŠãšããã¿ã¹ã¯ã«åãçµãã§ããŸããã§ããã ãã®ãµãŒãã¹ã«å¿ èŠãªæ©èœã¯ãŸã ããããŸããããåºæ¬çãªæ©èœããå§ããŠãéäžã§æ¡åŒµããŠãããŸãã
æè¿ããã®èŠä»¶ãåé€ããŸããã UXã®èŠ³ç¹ãããŠãŒã¶ãŒã«èª¬æããã®ãé£ãããèæ ®ãã¹ãå°ãããªãããè€éãªè©³çŽ°ããããããããŸãã
date-fnsã¯ã addMonth
ã getDaysInMonth
ã isToday
ã startOfTheWeek
ãªã©ã®ã¿ã€ã ã·ããæäœã«æââé©ãªAPIã§ããããªãŒã·ã§ã€ã¯æ©èœã«ããã軜éãªäœ¿çšãå¯èœã«ãªããŸãã ã ãããããã¢ããã¿ãŒã®æœè±¡åãšåããããã®éã¿ãããããŸãã
äžæ¹ãå³æžé€šã®æ¶è²»è
ã¯ãã¢ãŒã¡ã³ããã«ã¯ãœã³ããããšãã«date-fns
ãå«ããå¿
èŠãããå Žåãè€éãªææ
ãæ±ãã§ããã->ããã§ã¢ããã¿ãŒã圹ç«ã¡ãŸãã éãè¯ããã°date-fns
ã䜿çšã§ããã®ã§ãåé¡ã«ã¯ãªããŸããã
ã¿ã€ã ãŸãŒã³ã«é¢ãã泚æïŒ date-fns
ã¯ããã«ã¿ã€ã ãŸãŒã³ã®ãµããŒããå®è£
ããå Žåã«ã¯é©ããŠããŸããïŒãã©ãŒããã/解æã®åé¡ã®ã¿ã解決ããæ¥ä»æäœã®ã·ããªãªã¯è§£æ±ºããªãdate-fns-tz
ã䜿çšããå Žåã§ãïŒ ïŒã æè¿ãå°ãªããšãäžæçãªä»æ§ãå®æããŠãã©ãŠã¶ã«æ¡çšããããŸã§ã¯ããã®ç®çã§luxon
ã䜿çšããããšãæ€èšããŸããã
Intl.DateFormat
ããã®ç¯å²ãã©ãŒãããã®æ¬ èœïŒãããããç¬èªã®ãã©ãŒã«ããã¯ãå®è£
ããããpolyfilã䜿çšã§ããŸããïŒ è£œåã«ã¯ãã§ã«äœãããããŸããããããšã@piotrl
ç§ãç解ããŠããéããDatePipeã¯æçµçã«éžæãããæ¥ä»ã衚瀺ããå Žåã«ã®ã¿åœ¹ç«ã¡ãŸããã次ã®ãããªãã®ãèšç®/衚瀺ããå Žåã«ã¯åœ¹ç«ã¡ãŸãããç¹å®ã®æã®ãã¹ãŠã®æ¥ã
ãã¹ãŠã®ã³ã¡ã³ããèªãã ãšããã¢ããã¿ãŒã®æŠå¿µãé²ãã¹ãéã§ããããšã«åæã§ãããšæããŸãã 次ã«ãåæãããœãªã¥ãŒã·ã§ã³ã«å¿ããŠããã€ãã£ãã date-fns
ããŸãã¯luxon
çšã®ã¢ããã¿ãŒãäœæã§ããŸãã @piotrlãè¿°ã¹ãããã«ãããã¯ãã³ã³ã·ã¥ãŒããŒãç¬èªã®æ¥ä»ã©ã€ãã©ãªãæã£ãŠããå Žåãæ°ããã¢ããã¿ãŒãç°¡åã«å®è£
ã§ãããšããåé¡ã解決ããŸãã
@ ffriedl89 @tomhellerããªãã®èãã¯ïŒ
@piotrl ïŒæ¥ä»ã¢ããã¿ãŒãå®è£
ããå Žåãã¯ã©ã¹ã¿ãŒã¯ãããäžå€®ã®æ¥ä»ãšã³ããªãã€ã³ããšããŠã䜿çšããŸããïŒ ãŸãããã®ãããã¯ã«é¢ããå°éç¥èãããããããã®ã§ãç§ããµããŒãããŠããã ããã°å¹žãã§ãã
ãã1ã€ã®ãã©ã¹ã®å¯äœçšã¯ããããªã¢ã«ã®æ¥ä»ã¢ããã¿ãŒã®APIã«å³å¯ã«åºå·ãããããcdkã«ç§»åããå Žåãç°¡åã«é©å¿ããŠå€æŽã§ããããšã§ãã
@ç¥ã£ãŠããŸã
ã¿ã€ã ãŸãŒã³ãå¶åŸ¡ã§ãããšäŸ¿å©ã§ãã ã¹ãã€ã³Xã®ãŠãŒã¹ã±ãŒã¹ã®äžéšã§ã¯ãç¹å®ã®ã¬ã¬ã·ãŒAPIãšããåãããããã«UTCãå¿ èŠã§ãã
æ¥ä»ã¢ããã¿ãŒã䜿çšãããšããã®èŠä»¶ã解決ãããŸããããã¯ãæ¥ä»ããã«ãŒãæ¥ä»ãã¢ããã¿ãŒãæäŸããæ±çšãªããžã§ã¯ããšããŠæ±ãããã§ãã ããã¯ããã€ãã£ãã®æ¥ä»ãã¢ãŒã¡ã³ãã©ãããŒããŸãã¯åžžã«ç¹å®ã®ã¿ã€ã ãŸãŒã³ãæã€æ¥ä»ã«ããããšãã§ããŸãã
æ¥ä»ã¢ããã¿ãŒãå®è£ ããå Žåãã¯ã©ã¹ã¿ãŒã¯ãããäžå€®ã®æ¥ä»ãšã³ããªãã€ã³ããšããŠã䜿çšããŸããïŒ
ç§ã¯ãããæ€èšããããšãéããŠããŸãã ç§ã®æåã®èãïŒRaw Dateãªããžã§ã¯ãã¯ãã§ã«600以äžã®å Žæã§äœ¿çšãããŠããŸãïŒæ瀺çã«ãæé»ã®äœ¿çšãã«ãŠã³ãããããšã¯ã§ããŸããïŒã
ã»ãšãã©ã®äœ¿çšæ³ã¯ããšã«ããã«ã¬ã³ããŒã«æ¥ç¶ãããŠããªãããã«ã¬ã³ããŒã«è¿ããã®ã§ã¯ãããŸããã 䜿çšæ³ãæ¢ããšããéåžžãæ¥ä»ã¯ããã¯ãšã³ãããååŸããããã©ãŒãããã®ç®çã§ãããã«åŠçãããŸãã ã«ã¬ã³ããŒãšã®æŽåæ§ã®ããã ãã«ãããã®ãŠãŒã¹ã±ãŒã¹ã«ã¢ããã¿ãŒã䜿çšããããšã¯ãå§åãããå¯èœæ§ããããŸãã ãããã£ãŠãã«ã¬ã³ããŒã䜿çšãããšãã¯ãã€ã§ãããã€ãã£ãã®æ¥ä»ããã¢ããã¿ãŒãžã®å°ããªå€æãæ€èšããŸãïŒã¢ããã¿ãŒã@Input
ãšããŠå¿
èŠãªå ŽåïŒã
ãããã£ãŠãã¢ããã¿ãŒã䜿çšããããšã«ããå Žåã§ãã2ã€ã®æ¹æ³ããããŸãã
2çªç®ã®ãªãã·ã§ã³ã¯ãèãããŠãŒã¹ã±ãŒã¹ã®ç¹ã§ãã䟵襲çã§ãããã¢ããã¿ãŒã®ããèããããAPIãå¿
èŠã§ãã
æåã®ãªãã·ã§ã³ã¯éå§ãç°¡åã§ãå¿
èŠã«å¿ããŠ2çªç®ã«é²åããå¯èœæ§ããããŸãã
APM-266081ã«ç§»å
æãåèã«ãªãã³ã¡ã³ã
Intl.DateFormat
ã«ã€ããŠïŒç§ãä»å¶ç¶èŠã€ãããŠãŒã¹ã±ãŒã¹ã§ã¯ããã©ãŒã«ããã¯ã¯ç°¡åã«éæã§ããŸãããã«ã¹ã¿ã ã®æ¥ä»/æå»ã®èšç®ã¯é£ããå Žåãããããšã«åæããŸãããã®PRã¯ä»æåã§ãããç§ã¯ãŸã ãã®ãããªãµãŒãã¹ãå¿ èŠãšããã¿ã¹ã¯ã«åãçµãã§ããŸããã§ããã ãã®ãµãŒãã¹ã«å¿ èŠãªæ©èœã¯ãŸã ããããŸããããåºæ¬çãªæ©èœããå§ããŠãéäžã§æ¡åŒµããŠãããŸãã