@react-stately/calendar 3.0.0-nightly.1438 → 3.0.0-nightly.1446

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.
package/dist/main.js CHANGED
@@ -250,13 +250,13 @@ function $6adad0c8536fc209$export$6d095e787d2b5e1f(props) {
250
250
  return $4301262d71f567b9$export$eac50920cf2fd59a(date, minValue, maxValue);
251
251
  },
252
252
  isSelected (date) {
253
- return calendarDateValue != null && $hEzMm$internationalizeddate.isSameDay(date, calendarDateValue);
253
+ return calendarDateValue != null && $hEzMm$internationalizeddate.isSameDay(date, calendarDateValue) && !this.isCellDisabled(date);
254
254
  },
255
255
  isCellFocused (date) {
256
256
  return isFocused && focusedDate && $hEzMm$internationalizeddate.isSameDay(date, focusedDate);
257
257
  },
258
258
  isCellDisabled (date) {
259
- return props.isDisabled || date.compare(startDate) < 0 || date.compare(endDate) > 0 || $4301262d71f567b9$export$eac50920cf2fd59a(date, minValue, maxValue);
259
+ return props.isDisabled || date.compare(startDate) < 0 || date.compare(endDate) > 0 || $4301262d71f567b9$export$eac50920cf2fd59a(date, minValue, maxValue) || props.isDateDisabled && props.isDateDisabled(date);
260
260
  },
261
261
  isPreviousVisibleRangeInvalid () {
262
262
  return $4301262d71f567b9$export$eac50920cf2fd59a(startDate.subtract({
@@ -333,7 +333,7 @@ function $e49f7b861e5e8049$export$9a987164d97ecc90(props) {
333
333
  if (anchorDate) calendar.setFocusedDate(date);
334
334
  },
335
335
  isSelected (date) {
336
- return highlightedRange && date.compare(highlightedRange.start) >= 0 && date.compare(highlightedRange.end) <= 0;
336
+ return highlightedRange && date.compare(highlightedRange.start) >= 0 && date.compare(highlightedRange.end) <= 0 && !calendar.isCellDisabled(date);
337
337
  },
338
338
  isDragging: isDragging,
339
339
  setDragging: setDragging
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SGuBgB,yCAAS,CAAC,IAAkB,EAAE,QAAmB,EAAE,QAAmB,EAAE,CAAC;IACvF,MAAM,CAAE,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,IACnD,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC;AACnD,CAAC;SAEe,yCAAW,CAAC,IAAkB,EAAE,QAAkB,EAAE,MAAc,EAAE,QAAoB,EAAE,QAAoB,EAAE,CAAC;IAC/H,GAAG,CAAC,YAAY,GAAa,CAAC;IAAA,CAAC;IAC/B,GAAG,CAAE,GAAG,CAAC,GAAG,IAAI,QAAQ,CAAE,CAAC;QACzB,YAAY,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;QAChD,EAAE,EAAE,YAAY,CAAC,GAAG,IAAI,CAAC,IAAI,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAClD,YAAY,CAAC,GAAG;IAEpB,CAAC;IAED,GAAG,CAAC,OAAO,GAAG,wCAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,YAAY;IACtE,MAAM,CAAC,yCAAc,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;AAC3E,CAAC;SAEe,wCAAU,CAAC,IAAkB,EAAE,QAAkB,EAAE,MAAc,EAAE,QAAoB,EAAE,QAAoB,EAAE,CAAC;IAC9H,EAAyC,AAAzC,uCAAyC;IACzC,GAAG,CAAC,OAAO,GAAG,IAAI;IAClB,EAAE,EAAE,QAAQ,CAAC,KAAK,EAChB,OAAO,GAAG,wCAAW,CAAC,IAAI;SACrB,EAAE,EAAE,QAAQ,CAAC,MAAM,EACxB,OAAO,GAAG,yCAAY,CAAC,IAAI;SACtB,EAAE,EAAE,QAAQ,CAAC,KAAK,EACvB,OAAO,GAAG,wCAAW,CAAC,IAAI,EAAE,MAAM;IAGpC,MAAM,CAAC,yCAAc,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;AAC3E,CAAC;SAEe,yCAAQ,CAAC,IAAkB,EAAE,QAAkB,EAAE,MAAc,EAAE,QAAoB,EAAE,QAAoB,EAAE,CAAC;IAC5H,GAAG,CAAC,CAAC,GAAG,CAAC;WAAG,QAAQ;IAAA,CAAC;IACrB,EAAoC,AAApC,kCAAoC;IACpC,EAAE,EAAE,QAAQ,CAAC,IAAI,EACf,CAAC,CAAC,IAAI;SACD,EAAE,EAAE,QAAQ,CAAC,KAAK,EACvB,CAAC,CAAC,KAAK;SACF,EAAE,EAAE,QAAQ,CAAC,MAAM,EACxB,CAAC,CAAC,MAAM;SACH,EAAE,EAAE,QAAQ,CAAC,KAAK,EACvB,CAAC,CAAC,KAAK;IAGT,GAAG,CAAC,OAAO,GAAG,wCAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3D,MAAM,CAAC,yCAAc,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;AAC3E,CAAC;SAEe,yCAAc,CAC5B,IAAkB,EAClB,OAAqB,EACrB,QAAkB,EAClB,MAAc,EACd,QAAmB,EACnB,QAAmB,EAAE,CAAC;IACtB,EAAE,EAAE,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,CAAC,EACzC,OAAO,GAAG,oCAAO,CACf,OAAO,EACP,wCAAU,CAAC,2CAAc,CAAC,QAAQ,GAAG,QAAQ,EAAE,MAAM;IAIzD,EAAE,EAAE,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,CAAC,EACzC,OAAO,GAAG,oCAAO,CACf,OAAO,EACP,yCAAQ,CAAC,2CAAc,CAAC,QAAQ,GAAG,QAAQ,EAAE,MAAM;IAIvD,MAAM,CAAC,OAAO;AAChB,CAAC;SAEe,yCAAc,CAAC,IAAkB,EAAE,QAAmB,EAAE,QAAmB,EAAE,CAAC;IAC5F,EAAE,EAAE,QAAQ,EACV,IAAI,GAAG,oCAAO,CAAC,IAAI,EAAE,2CAAc,CAAC,QAAQ;IAG9C,EAAE,EAAE,QAAQ,EACV,IAAI,GAAG,oCAAO,CAAC,IAAI,EAAE,2CAAc,CAAC,QAAQ;IAG9C,MAAM,CAAC,IAAI;AACb,CAAC;;;;;;;SDtEe,yCAAgB,CAAsB,KAA8B,EAAiB,CAAC;IACpG,GAAG,CAAC,gBAAgB,GAAG,qCAAgB;IACvC,GAAG,CAAC,eAAe,GAAG,oBAAO,KAAO,gBAAgB,CAAC,eAAe;MAAI,CAAC;QAAA,gBAAgB;IAAA,CAAC;IAC1F,GAAG,CAAC,CAAC,SACH,MAAM,mBACN,cAAc,oBACd,eAAe,GAAG,CAAC;QAAA,MAAM,EAAE,CAAC;IAAA,CAAC,aAC7B,QAAQ,aACR,QAAQ,uBACR,kBAAkB,EACpB,CAAC,GAAG,KAAK;IAET,GAAG,CAAC,QAAQ,GAAG,oBAAO,KAAO,cAAc,CAAC,eAAe,CAAC,QAAQ;MAAG,CAAC;QAAA,cAAc;QAAE,eAAe,CAAC,QAAQ;IAAA,CAAC;IAEjH,GAAG,EAAE,KAAK,EAAE,kBAAkB,IAAI,2CAAkB,CAAY,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,QAAQ;IAC/G,GAAG,CAAC,iBAAiB,GAAG,oBAAO,KAAO,KAAK,GAAG,uCAAU,CAAC,2CAAc,CAAC,KAAK,GAAG,QAAQ,IAAI,IAAI;MAAE,CAAC;QAAA,KAAK;QAAE,QAAQ;IAAA,CAAC;IACnH,GAAG,CAAC,QAAQ,GAAG,oBAAO,KAAO,KAAK,IAAI,CAAU,aAAI,KAAK,GAAG,KAAK,CAAC,QAAQ,GAAG,eAAe,CAAC,QAAQ;MAAE,CAAC;QAAA,KAAK;QAAE,eAAe,CAAC,QAAQ;IAAA,CAAC;IACxI,GAAG,CAAC,WAAW,GAAG,oBAAO,KAAO,iBAAiB,IAAI,yCAAc,CAAC,uCAAU,CAAC,kCAAK,CAAC,QAAQ,GAAG,QAAQ,GAAG,QAAQ,EAAE,QAAQ;MAAG,CAAC;QAAA,iBAAiB;QAAE,QAAQ;QAAE,QAAQ;QAAE,QAAQ;QAAE,QAAQ;IAAA,CAAC;IAC3L,GAAG,EAAE,SAAS,EAAE,YAAY,IAAI,qBAAQ,KAAO,CAAC;QAC9C,MAAM,CAAE,kBAAkB;YACxB,IAAI,CAAC,CAAO;gBACV,MAAM,CAAC,wCAAU,CAAC,WAAW,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;YAC5E,IAAI,CAAC,CAAK;gBACR,MAAM,CAAC,yCAAQ,CAAC,WAAW,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;YAC1E,IAAI,CAAC,CAAQ;;gBAEX,MAAM,CAAC,yCAAW,CAAC,WAAW,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;;IAEjF,CAAC;IACD,GAAG,EAAE,WAAW,EAAE,cAAc,IAAI,qBAAQ,CAAC,WAAW;IACxD,GAAG,EAAE,SAAS,EAAE,UAAU,IAAI,qBAAQ,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK;IAE/D,GAAG,CAAC,OAAO,GAAG,oBAAO,KAAO,SAAS,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;YAAA,IAAI,EAAE,CAAC;QAAA,CAAC;MAAG,CAAC;QAAA,SAAS;QAAE,eAAe;IAAA,CAAC;IAE5G,EAA8D,AAA9D,4DAA8D;IAC9D,GAAG,CAAC,sBAAsB,GAAG,mBAAM,CAAC,QAAQ,CAAC,UAAU;IACvD,sBAAS,KAAO,CAAC;QACf,EAAE,EAAE,QAAQ,CAAC,UAAU,KAAK,sBAAsB,CAAC,OAAO,EAAE,CAAC;YAC3D,GAAG,CAAC,cAAc,GAAG,uCAAU,CAAC,WAAW,EAAE,QAAQ;YACrD,YAAY,CAAC,yCAAW,CAAC,cAAc,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;YACpF,cAAc,CAAC,cAAc;YAC7B,sBAAsB,CAAC,OAAO,GAAG,QAAQ,CAAC,UAAU;QACtD,CAAC;IACH,CAAC,EAAE,CAAC;QAAA,QAAQ;QAAE,WAAW;QAAE,eAAe;QAAE,MAAM;QAAE,QAAQ;QAAE,QAAQ;IAAA,CAAC;IAEvE,EAAqC,AAArC,mCAAqC;aAC5B,SAAS,CAAC,IAAkB,EAAE,CAAC;QACtC,EAAoF,AAApF,kFAAoF;QACpF,IAAI,GAAG,yCAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ;QAE9C,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,eAAe;QACxC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,EAC7B,YAAY,CAAC,yCAAQ,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;aAClE,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAChC,YAAY,CAAC,wCAAU,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;QAG3E,cAAc,CAAC,IAAI;IACrB,CAAC;aAEQ,QAAQ,CAAC,QAAsB,EAAE,CAAC;QACzC,EAAE,GAAG,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,EAAE,CAAC;YAC3C,EAAwE,AAAxE,sEAAwE;YACxE,EAAsF,AAAtF,oFAAsF;YACtF,QAAQ,GAAG,uCAAU,CAAC,QAAQ,GAAE,KAAK,aAAL,KAAK,KAAL,IAAI,CAAJ,CAAe,GAAf,IAAI,CAAJ,CAAe,GAAf,KAAK,CAAE,QAAQ,KAAI,GAAG,CAAC,8CAAiB;YAExE,EAA4C,AAA5C,0CAA4C;YAC5C,EAAE,EAAE,KAAK,IAAI,CAAM,SAAI,KAAK,EAC1B,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ;iBAErC,kBAAkB,CAAC,QAAQ;QAE/B,CAAC;IACH,CAAC;IAED,MAAM,CAAC,CAAC;QACN,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,KAAK,EAAE,iBAAiB;kBACxB,QAAQ;QACR,YAAY,EAAE,CAAC;YACb,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,OAAO;QACd,CAAC;qBACD,WAAW;kBACX,QAAQ;QACR,cAAc,EAAC,IAAI,EAAE,CAAC;YACpB,cAAc,CAAC,IAAI;YACnB,UAAU,CAAC,IAAI;QACjB,CAAC;QACD,YAAY,IAAG,CAAC;YACd,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBAAA,IAAI,EAAE,CAAC;YAAA,CAAC;QACrC,CAAC;QACD,gBAAgB,IAAG,CAAC;YAClB,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAAA,IAAI,EAAE,CAAC;YAAA,CAAC;QAC1C,CAAC;QACD,YAAY,IAAG,CAAC;YACd,EAAE,EAAE,eAAe,CAAC,IAAI,EACtB,IAAI,CAAC,aAAa;iBACb,EAAE,EAAE,eAAe,CAAC,KAAK,IAAI,eAAe,CAAC,MAAM,IAAI,eAAe,CAAC,KAAK,EACjF,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBAAA,KAAK,EAAE,CAAC;YAAA,CAAC;QAExC,CAAC;QACD,gBAAgB,IAAG,CAAC;YAClB,EAAE,EAAE,eAAe,CAAC,IAAI,EACtB,IAAI,CAAC,iBAAiB;iBACjB,EAAE,EAAE,eAAe,CAAC,KAAK,IAAI,eAAe,CAAC,MAAM,IAAI,eAAe,CAAC,KAAK,EACjF,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAAA,KAAK,EAAE,CAAC;YAAA,CAAC;QAE7C,CAAC;QACD,aAAa,IAAG,CAAC;YACf,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,eAAe;YACzC,YAAY,CAAC,yCAAc,CAAC,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;YAC3F,cAAc,CAAC,yCAAc,CAAC,WAAW,CAAC,GAAG,CAAC,eAAe,GAAG,QAAQ,EAAE,QAAQ;QACpF,CAAC;QACD,iBAAiB,IAAG,CAAC;YACnB,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,eAAe;YAC9C,YAAY,CAAC,yCAAc,CAAC,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;YAC3F,cAAc,CAAC,yCAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,eAAe,GAAG,QAAQ,EAAE,QAAQ;QACzF,CAAC;QACD,cAAc,IAAG,CAAC;YAChB,SAAS,CAAC,SAAS;QACrB,CAAC;QACD,YAAY,IAAG,CAAC;YACd,SAAS,CAAC,OAAO;QACnB,CAAC;QACD,gBAAgB,IAAG,CAAC;YAClB,EAAE,EAAE,eAAe,CAAC,IAAI,EACtB,IAAI,CAAC,aAAa;iBACb,EAAE,EAAE,eAAe,CAAC,KAAK,EAC9B,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBAAA,MAAM,EAAE,CAAC;YAAA,CAAC;iBAChC,EAAE,EAAE,eAAe,CAAC,MAAM,IAAI,eAAe,CAAC,KAAK,EACxD,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBAAA,KAAK,EAAE,CAAC;YAAA,CAAC;QAExC,CAAC;QACD,oBAAoB,IAAG,CAAC;YACtB,EAAE,EAAE,eAAe,CAAC,IAAI,EACtB,IAAI,CAAC,iBAAiB;iBACjB,EAAE,EAAE,eAAe,CAAC,KAAK,EAC9B,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAAA,MAAM,EAAE,CAAC;YAAA,CAAC;iBACrC,EAAE,EAAE,eAAe,CAAC,MAAM,IAAI,eAAe,CAAC,KAAK,EACxD,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAAA,KAAK,EAAE,CAAC;YAAA,CAAC;QAE7C,CAAC;QACD,iBAAiB,IAAG,CAAC;YACnB,QAAQ,CAAC,WAAW;QACtB,CAAC;QACD,UAAU,EAAC,IAAI,EAAE,CAAC;YAChB,QAAQ,CAAC,IAAI;QACf,CAAC;mBACD,SAAS;oBACT,UAAU;QACV,SAAS,EAAC,IAAI,EAAE,CAAC;YACf,MAAM,CAAC,yCAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ;QAC3C,CAAC;QACD,UAAU,EAAC,IAAI,EAAE,CAAC;YAChB,MAAM,CAAC,iBAAiB,IAAI,IAAI,IAAI,sCAAS,CAAC,IAAI,EAAE,iBAAiB;QACvE,CAAC;QACD,aAAa,EAAC,IAAI,EAAE,CAAC;YACnB,MAAM,CAAC,SAAS,IAAI,WAAW,IAAI,sCAAS,CAAC,IAAI,EAAE,WAAW;QAChE,CAAC;QACD,cAAc,EAAC,IAAI,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,IAAI,yCAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ;QAC3H,CAAC;QACD,6BAA6B,IAAG,CAAC;YAC/B,MAAM,CAAC,yCAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAAA,IAAI,EAAE,CAAC;YAAA,CAAC,GAAG,QAAQ,EAAE,QAAQ;QACpE,CAAC;QACD,yBAAyB,IAAG,CAAC;YAC3B,MAAM,CAAC,yCAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAAA,IAAI,EAAE,CAAC;YAAA,CAAC,GAAG,QAAQ,EAAE,QAAQ;QAC7D,CAAC;IACH,CAAC;AACH,CAAC;;;;;;;;;;;SEnLe,yCAAqB,CAAsB,KAAmC,EAAsB,CAAC;IACnH,GAAG,CAAC,CAAC,CAAA,KAAK,EAAE,SAAS,iBAAE,YAAY,aAAE,QAAQ,mBAAE,cAAc,WAAE,MAAM,oBAAE,eAAe,GAAG,CAAC;QAAA,MAAM,EAAE,CAAC;IAAA,CAAC,aAAE,QAAQ,aAAE,QAAQ,MAAK,aAAa,CAAA,CAAC,GAAG,KAAK;IACnJ,GAAG,EAAE,KAAK,EAAE,QAAQ,IAAI,2CAAkB,CACxC,SAAS,EACT,YAAY,EACZ,QAAQ;IAGV,GAAG,EAAE,UAAU,EAAE,aAAa,IAAI,qBAAQ,CAAC,IAAI;IAC/C,GAAG,CAAC,SAAS,GAAuB,CAAQ;IAC5C,EAAE,EAAE,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;QACtC,GAAG,CAAC,KAAK,GAAG,yCAAW,CAAC,2CAAc,CAAC,KAAK,CAAC,KAAK,GAAG,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;QAChG,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;YAAA,IAAI,EAAE,CAAC;QAAA,CAAC;QAEvD,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,EAC5B,SAAS,GAAG,CAAO;IAEvB,CAAC;IAED,GAAG,CAAC,QAAQ,GAAG,yCAAgB,CAAC,CAAC;WAC5B,aAAa;QAChB,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC,KAAK;wBAC3B,cAAc;gBACd,MAAM;yBACN,eAAe;kBACf,QAAQ;kBACR,QAAQ;QACR,kBAAkB,EAAE,SAAS;IAC/B,CAAC;IAED,GAAG,CAAC,gBAAgB,GAAG,UAAU,GAAG,+BAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,WAAW,IAAI,KAAK,IAAI,+BAAS,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG;IAC3H,GAAG,CAAC,UAAU,IAAI,IAAkB,GAAK,CAAC;QACxC,EAAE,EAAE,KAAK,CAAC,UAAU,EAClB,MAAM;QAGR,EAAE,GAAG,UAAU,EACb,aAAa,CAAC,IAAI;aACb,CAAC;YACN,GAAG,CAAC,KAAK,GAAG,+BAAS,CAAC,UAAU,EAAE,IAAI;YACtC,QAAQ,CAAC,CAAC;gBACR,KAAK,EAAE,kCAAY,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,aAAL,KAAK,KAAL,IAAI,CAAJ,CAAY,GAAZ,IAAI,CAAJ,CAAY,GAAZ,KAAK,CAAE,KAAK;gBAC7C,GAAG,EAAE,kCAAY,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,aAAL,KAAK,KAAL,IAAI,CAAJ,CAAU,GAAV,IAAI,CAAJ,CAAU,GAAV,KAAK,CAAE,GAAG;YACzC,CAAC;YACD,aAAa,CAAC,IAAI;QACpB,CAAC;IACH,CAAC;IAED,GAAG,EAAE,UAAU,EAAE,WAAW,IAAI,qBAAQ,CAAC,KAAK;IAE9C,MAAM,CAAC,CAAC;WACH,QAAQ;eACX,KAAK;kBACL,QAAQ;oBACR,UAAU;uBACV,aAAa;0BACb,gBAAgB;QAChB,iBAAiB,IAAG,CAAC;YACnB,UAAU,CAAC,QAAQ,CAAC,WAAW;QACjC,CAAC;oBACD,UAAU;QACV,aAAa,EAAC,IAAI,EAAE,CAAC;YACnB,EAAE,EAAE,UAAU,EACZ,QAAQ,CAAC,cAAc,CAAC,IAAI;QAEhC,CAAC;QACD,UAAU,EAAC,IAAI,EAAE,CAAC;YAChB,MAAM,CAAC,gBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC;QACjH,CAAC;oBACD,UAAU;qBACV,WAAW;IACb,CAAC;AACH,CAAC;SAEQ,+BAAS,CAAC,KAAgB,EAAE,GAAc,EAA4B,CAAC;IAC9E,EAAE,GAAG,KAAK,KAAK,GAAG,EAChB,MAAM,CAAC,IAAI;IAGb,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,GACvB,KAAK,EAAE,GAAG,IAAI,CAAC;QAAA,GAAG;QAAE,KAAK;IAAA,CAAC;IAG7B,MAAM,CAAC,CAAC;QAAA,KAAK,EAAE,2CAAc,CAAC,KAAK;QAAG,GAAG,EAAE,2CAAc,CAAC,GAAG;IAAC,CAAC;AACjE,CAAC;SAEQ,kCAAY,CAAC,QAAsB,EAAE,QAAmB,EAAE,CAAC;IAClE,EAAwE,AAAxE,sEAAwE;IACxE,EAAsF,AAAtF,oFAAsF;IACtF,QAAQ,GAAG,uCAAU,CAAC,QAAQ,GAAE,QAAQ,aAAR,QAAQ,KAAR,IAAI,CAAJ,CAAkB,GAAlB,IAAI,CAAJ,CAAkB,GAAlB,QAAQ,CAAE,QAAQ,KAAI,GAAG,CAAC,8CAAiB;IAE3E,EAA4C,AAA5C,0CAA4C;IAC5C,EAAE,EAAE,QAAQ,IAAI,CAAM,SAAI,QAAQ,EAChC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ;IAG9B,MAAM,CAAC,QAAQ;AACjB,CAAC;;","sources":["packages/@react-stately/calendar/src/index.ts","packages/@react-stately/calendar/src/types.ts","packages/@react-stately/calendar/src/useCalendarState.ts","packages/@react-stately/calendar/src/utils.ts","packages/@react-stately/calendar/src/useRangeCalendarState.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport * from './types';\nexport * from './useCalendarState';\nexport * from './useRangeCalendarState';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CalendarDate} from '@internationalized/date';\nimport {DateValue} from '@react-types/calendar';\nimport {RangeValue} from '@react-types/shared';\n\nexport interface CalendarStateBase {\n isDisabled: boolean,\n isReadOnly: boolean,\n visibleRange: RangeValue<CalendarDate>,\n timeZone: string,\n focusedDate: CalendarDate,\n setFocusedDate(value: CalendarDate): void,\n focusNextDay(): void,\n focusPreviousDay(): void,\n focusNextRow(): void,\n focusPreviousRow(): void,\n focusNextPage(): void,\n focusPreviousPage(): void,\n focusPageStart(): void,\n focusPageEnd(): void,\n focusNextSection(): void,\n focusPreviousSection(): void,\n focusNextPage(): void,\n focusPreviousPage(): void,\n selectFocusedDate(): void,\n selectDate(date: CalendarDate): void,\n isFocused: boolean,\n setFocused(value: boolean): void,\n isInvalid(date: CalendarDate): boolean,\n isSelected(date: CalendarDate): boolean,\n isCellFocused(date: CalendarDate): boolean,\n isCellDisabled(date: CalendarDate): boolean,\n isPreviousVisibleRangeInvalid(): boolean,\n isNextVisibleRangeInvalid(): boolean\n}\n\nexport interface CalendarState extends CalendarStateBase {\n value: CalendarDate,\n setValue(value: CalendarDate): void\n}\n\nexport interface RangeCalendarState extends CalendarStateBase {\n value: RangeValue<DateValue>,\n setValue(value: RangeValue<DateValue>): void,\n highlightDate(date: CalendarDate): void,\n anchorDate: CalendarDate | null,\n setAnchorDate(date: CalendarDate | null): void,\n highlightedRange: RangeValue<CalendarDate>,\n isDragging: boolean,\n setDragging(isDragging: boolean): void\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {alignCenter, alignEnd, alignStart, constrainStart, constrainValue, isInvalid} from './utils';\nimport {\n Calendar,\n CalendarDate,\n Duration,\n GregorianCalendar,\n isSameDay,\n toCalendar,\n toCalendarDate,\n today\n} from '@internationalized/date';\nimport {CalendarProps, DateValue} from '@react-types/calendar';\nimport {CalendarState} from './types';\nimport {useControlledState} from '@react-stately/utils';\nimport {useDateFormatter} from '@react-aria/i18n';\nimport {useEffect, useMemo, useRef, useState} from 'react';\n\ninterface CalendarStateOptions<T extends DateValue> extends CalendarProps<T> {\n locale: string,\n createCalendar: (name: string) => Calendar,\n visibleDuration?: Duration,\n selectionAlignment?: 'start' | 'center' | 'end'\n}\n\nexport function useCalendarState<T extends DateValue>(props: CalendarStateOptions<T>): CalendarState {\n let defaultFormatter = useDateFormatter();\n let resolvedOptions = useMemo(() => defaultFormatter.resolvedOptions(), [defaultFormatter]);\n let {\n locale,\n createCalendar,\n visibleDuration = {months: 1},\n minValue,\n maxValue,\n selectionAlignment\n } = props;\n\n let calendar = useMemo(() => createCalendar(resolvedOptions.calendar), [createCalendar, resolvedOptions.calendar]);\n\n let [value, setControlledValue] = useControlledState<DateValue>(props.value, props.defaultValue, props.onChange);\n let calendarDateValue = useMemo(() => value ? toCalendar(toCalendarDate(value), calendar) : null, [value, calendar]);\n let timeZone = useMemo(() => value && 'timeZone' in value ? value.timeZone : resolvedOptions.timeZone, [value, resolvedOptions.timeZone]);\n let defaultDate = useMemo(() => calendarDateValue || constrainValue(toCalendar(today(timeZone), calendar), minValue, maxValue), [calendarDateValue, timeZone, calendar, minValue, maxValue]);\n let [startDate, setStartDate] = useState(() => {\n switch (selectionAlignment) {\n case 'start':\n return alignStart(defaultDate, visibleDuration, locale, minValue, maxValue);\n case 'end':\n return alignEnd(defaultDate, visibleDuration, locale, minValue, maxValue);\n case 'center':\n default:\n return alignCenter(defaultDate, visibleDuration, locale, minValue, maxValue);\n }\n });\n let [focusedDate, setFocusedDate] = useState(defaultDate);\n let [isFocused, setFocused] = useState(props.autoFocus || false);\n\n let endDate = useMemo(() => startDate.add(visibleDuration).subtract({days: 1}), [startDate, visibleDuration]);\n\n // Reset focused date and visible range when calendar changes.\n let lastCalendarIdentifier = useRef(calendar.identifier);\n useEffect(() => {\n if (calendar.identifier !== lastCalendarIdentifier.current) {\n let newFocusedDate = toCalendar(focusedDate, calendar);\n setStartDate(alignCenter(newFocusedDate, visibleDuration, locale, minValue, maxValue));\n setFocusedDate(newFocusedDate);\n lastCalendarIdentifier.current = calendar.identifier;\n }\n }, [calendar, focusedDate, visibleDuration, locale, minValue, maxValue]);\n\n // Sets focus to a specific cell date\n function focusCell(date: CalendarDate) {\n // date = constrain(focusedDate, date, visibleDuration, locale, minValue, maxValue);\n date = constrainValue(date, minValue, maxValue);\n\n let next = startDate.add(visibleDuration);\n if (date.compare(startDate) < 0) {\n setStartDate(alignEnd(date, visibleDuration, locale, minValue, maxValue));\n } else if (date.compare(next) >= 0) {\n setStartDate(alignStart(date, visibleDuration, locale, minValue, maxValue));\n }\n\n setFocusedDate(date);\n }\n\n function setValue(newValue: CalendarDate) {\n if (!props.isDisabled && !props.isReadOnly) {\n // The display calendar should not have any effect on the emitted value.\n // Emit dates in the same calendar as the original value, if any, otherwise gregorian.\n newValue = toCalendar(newValue, value?.calendar || new GregorianCalendar());\n\n // Preserve time if the input value had one.\n if (value && 'hour' in value) {\n setControlledValue(value.set(newValue));\n } else {\n setControlledValue(newValue);\n }\n }\n }\n\n return {\n isDisabled: props.isDisabled,\n isReadOnly: props.isReadOnly,\n value: calendarDateValue,\n setValue,\n visibleRange: {\n start: startDate,\n end: endDate\n },\n focusedDate,\n timeZone,\n setFocusedDate(date) {\n setFocusedDate(date);\n setFocused(true);\n },\n focusNextDay() {\n focusCell(focusedDate.add({days: 1}));\n },\n focusPreviousDay() {\n focusCell(focusedDate.subtract({days: 1}));\n },\n focusNextRow() {\n if (visibleDuration.days) {\n this.focusNextPage();\n } else if (visibleDuration.weeks || visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.add({weeks: 1}));\n }\n },\n focusPreviousRow() {\n if (visibleDuration.days) {\n this.focusPreviousPage();\n } else if (visibleDuration.weeks || visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.subtract({weeks: 1}));\n }\n },\n focusNextPage() {\n let start = startDate.add(visibleDuration);\n setStartDate(constrainStart(focusedDate, start, visibleDuration, locale, minValue, maxValue));\n setFocusedDate(constrainValue(focusedDate.add(visibleDuration), minValue, maxValue));\n },\n focusPreviousPage() {\n let start = startDate.subtract(visibleDuration);\n setStartDate(constrainStart(focusedDate, start, visibleDuration, locale, minValue, maxValue));\n setFocusedDate(constrainValue(focusedDate.subtract(visibleDuration), minValue, maxValue));\n },\n focusPageStart() {\n focusCell(startDate);\n },\n focusPageEnd() {\n focusCell(endDate);\n },\n focusNextSection() {\n if (visibleDuration.days) {\n this.focusNextPage();\n } else if (visibleDuration.weeks) {\n focusCell(focusedDate.add({months: 1}));\n } else if (visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.add({years: 1}));\n }\n },\n focusPreviousSection() {\n if (visibleDuration.days) {\n this.focusPreviousPage();\n } else if (visibleDuration.weeks) {\n focusCell(focusedDate.subtract({months: 1}));\n } else if (visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.subtract({years: 1}));\n }\n },\n selectFocusedDate() {\n setValue(focusedDate);\n },\n selectDate(date) {\n setValue(date);\n },\n isFocused,\n setFocused,\n isInvalid(date) {\n return isInvalid(date, minValue, maxValue);\n },\n isSelected(date) {\n return calendarDateValue != null && isSameDay(date, calendarDateValue);\n },\n isCellFocused(date) {\n return isFocused && focusedDate && isSameDay(date, focusedDate);\n },\n isCellDisabled(date) {\n return props.isDisabled || date.compare(startDate) < 0 || date.compare(endDate) > 0 || isInvalid(date, minValue, maxValue);\n },\n isPreviousVisibleRangeInvalid() {\n return isInvalid(startDate.subtract({days: 1}), minValue, maxValue);\n },\n isNextVisibleRangeInvalid() {\n return isInvalid(endDate.add({days: 1}), minValue, maxValue);\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {\n CalendarDate,\n Duration,\n maxDate,\n minDate,\n startOfMonth,\n startOfWeek,\n startOfYear,\n toCalendarDate\n} from '@internationalized/date';\nimport {DateValue} from '@react-types/calendar';\n\nexport function isInvalid(date: CalendarDate, minValue: DateValue, maxValue: DateValue) {\n return (minValue != null && date.compare(minValue) < 0) ||\n (maxValue != null && date.compare(maxValue) > 0);\n}\n\nexport function alignCenter(date: CalendarDate, duration: Duration, locale: string, minValue?: DateValue, maxValue?: DateValue) {\n let halfDuration: Duration = {};\n for (let key in duration) {\n halfDuration[key] = Math.floor(duration[key] / 2);\n if (halfDuration[key] > 0 && duration[key] % 2 === 0) {\n halfDuration[key]--;\n }\n }\n\n let aligned = alignStart(date, duration, locale).subtract(halfDuration);\n return constrainStart(date, aligned, duration, locale, minValue, maxValue);\n}\n\nexport function alignStart(date: CalendarDate, duration: Duration, locale: string, minValue?: DateValue, maxValue?: DateValue) {\n // align to the start of the largest unit\n let aligned = date;\n if (duration.years) {\n aligned = startOfYear(date);\n } else if (duration.months) {\n aligned = startOfMonth(date);\n } else if (duration.weeks) {\n aligned = startOfWeek(date, locale);\n }\n\n return constrainStart(date, aligned, duration, locale, minValue, maxValue);\n}\n\nexport function alignEnd(date: CalendarDate, duration: Duration, locale: string, minValue?: DateValue, maxValue?: DateValue) {\n let d = {...duration};\n // subtract 1 from the smallest unit\n if (duration.days) {\n d.days--;\n } else if (duration.weeks) {\n d.weeks--;\n } else if (duration.months) {\n d.months--;\n } else if (duration.years) {\n d.years--;\n }\n\n let aligned = alignStart(date, duration, locale).subtract(d);\n return constrainStart(date, aligned, duration, locale, minValue, maxValue);\n}\n\nexport function constrainStart(\n date: CalendarDate,\n aligned: CalendarDate,\n duration: Duration,\n locale: string,\n minValue: DateValue,\n maxValue: DateValue) {\n if (minValue && date.compare(minValue) >= 0) {\n aligned = maxDate(\n aligned,\n alignStart(toCalendarDate(minValue), duration, locale)\n );\n }\n\n if (maxValue && date.compare(maxValue) <= 0) {\n aligned = minDate(\n aligned,\n alignEnd(toCalendarDate(maxValue), duration, locale)\n );\n }\n\n return aligned;\n}\n\nexport function constrainValue(date: CalendarDate, minValue: DateValue, maxValue: DateValue) {\n if (minValue) {\n date = maxDate(date, toCalendarDate(minValue));\n }\n\n if (maxValue) {\n date = minDate(date, toCalendarDate(maxValue));\n }\n\n return date;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {alignCenter} from './utils';\nimport {Calendar, CalendarDate, Duration, GregorianCalendar, toCalendar, toCalendarDate} from '@internationalized/date';\nimport {DateRange, DateValue} from '@react-types/calendar';\nimport {RangeCalendarProps} from '@react-types/calendar';\nimport {RangeCalendarState} from './types';\nimport {RangeValue} from '@react-types/shared';\nimport {useCalendarState} from './useCalendarState';\nimport {useControlledState} from '@react-stately/utils';\nimport {useState} from 'react';\n\ninterface RangeCalendarStateOptions<T extends DateValue> extends RangeCalendarProps<T> {\n locale: string,\n createCalendar: (name: string) => Calendar,\n visibleDuration?: Duration\n}\n\nexport function useRangeCalendarState<T extends DateValue>(props: RangeCalendarStateOptions<T>): RangeCalendarState {\n let {value: valueProp, defaultValue, onChange, createCalendar, locale, visibleDuration = {months: 1}, minValue, maxValue, ...calendarProps} = props;\n let [value, setValue] = useControlledState<DateRange>(\n valueProp,\n defaultValue,\n onChange\n );\n\n let [anchorDate, setAnchorDate] = useState(null);\n let alignment: 'center' | 'start' = 'center';\n if (value && value.start && value.end) {\n let start = alignCenter(toCalendarDate(value.start), visibleDuration, locale, minValue, maxValue);\n let end = start.add(visibleDuration).subtract({days: 1});\n\n if (value.end.compare(end) > 0) {\n alignment = 'start';\n }\n }\n\n let calendar = useCalendarState({\n ...calendarProps,\n value: value && value.start,\n createCalendar,\n locale,\n visibleDuration,\n minValue,\n maxValue,\n selectionAlignment: alignment\n });\n\n let highlightedRange = anchorDate ? makeRange(anchorDate, calendar.focusedDate) : value && makeRange(value.start, value.end);\n let selectDate = (date: CalendarDate) => {\n if (props.isReadOnly) {\n return;\n }\n\n if (!anchorDate) {\n setAnchorDate(date);\n } else {\n let range = makeRange(anchorDate, date);\n setValue({\n start: convertValue(range.start, value?.start),\n end: convertValue(range.end, value?.end)\n });\n setAnchorDate(null);\n }\n };\n\n let [isDragging, setDragging] = useState(false);\n\n return {\n ...calendar,\n value,\n setValue,\n anchorDate,\n setAnchorDate,\n highlightedRange,\n selectFocusedDate() {\n selectDate(calendar.focusedDate);\n },\n selectDate,\n highlightDate(date) {\n if (anchorDate) {\n calendar.setFocusedDate(date);\n }\n },\n isSelected(date) {\n return highlightedRange && date.compare(highlightedRange.start) >= 0 && date.compare(highlightedRange.end) <= 0;\n },\n isDragging,\n setDragging\n };\n}\n\nfunction makeRange(start: DateValue, end: DateValue): RangeValue<CalendarDate> {\n if (!start || !end) {\n return null;\n }\n\n if (end.compare(start) < 0) {\n [start, end] = [end, start];\n }\n\n return {start: toCalendarDate(start), end: toCalendarDate(end)};\n}\n\nfunction convertValue(newValue: CalendarDate, oldValue: DateValue) {\n // The display calendar should not have any effect on the emitted value.\n // Emit dates in the same calendar as the original value, if any, otherwise gregorian.\n newValue = toCalendar(newValue, oldValue?.calendar || new GregorianCalendar());\n\n // Preserve time if the input value had one.\n if (oldValue && 'hour' in oldValue) {\n return oldValue.set(newValue);\n }\n\n return newValue;\n}\n"],"names":[],"version":3,"file":"main.js.map"}
1
+ {"mappings":"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","sources":["packages/@react-stately/calendar/src/index.ts","packages/@react-stately/calendar/src/types.ts","packages/@react-stately/calendar/src/useCalendarState.ts","packages/@react-stately/calendar/src/utils.ts","packages/@react-stately/calendar/src/useRangeCalendarState.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport * from './types';\nexport * from './useCalendarState';\nexport * from './useRangeCalendarState';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CalendarDate} from '@internationalized/date';\nimport {DateValue} from '@react-types/calendar';\nimport {RangeValue} from '@react-types/shared';\n\nexport interface CalendarStateBase {\n isDisabled: boolean,\n isReadOnly: boolean,\n visibleRange: RangeValue<CalendarDate>,\n timeZone: string,\n focusedDate: CalendarDate,\n setFocusedDate(value: CalendarDate): void,\n focusNextDay(): void,\n focusPreviousDay(): void,\n focusNextRow(): void,\n focusPreviousRow(): void,\n focusNextPage(): void,\n focusPreviousPage(): void,\n focusPageStart(): void,\n focusPageEnd(): void,\n focusNextSection(): void,\n focusPreviousSection(): void,\n focusNextPage(): void,\n focusPreviousPage(): void,\n selectFocusedDate(): void,\n selectDate(date: CalendarDate): void,\n isFocused: boolean,\n setFocused(value: boolean): void,\n isInvalid(date: CalendarDate): boolean,\n isSelected(date: CalendarDate): boolean,\n isCellFocused(date: CalendarDate): boolean,\n isCellDisabled(date: CalendarDate): boolean,\n isPreviousVisibleRangeInvalid(): boolean,\n isNextVisibleRangeInvalid(): boolean\n}\n\nexport interface CalendarState extends CalendarStateBase {\n value: CalendarDate,\n setValue(value: CalendarDate): void\n}\n\nexport interface RangeCalendarState extends CalendarStateBase {\n value: RangeValue<DateValue>,\n setValue(value: RangeValue<DateValue>): void,\n highlightDate(date: CalendarDate): void,\n anchorDate: CalendarDate | null,\n setAnchorDate(date: CalendarDate | null): void,\n highlightedRange: RangeValue<CalendarDate>,\n isDragging: boolean,\n setDragging(isDragging: boolean): void\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {alignCenter, alignEnd, alignStart, constrainStart, constrainValue, isInvalid} from './utils';\nimport {\n Calendar,\n CalendarDate,\n DateDuration,\n GregorianCalendar,\n isSameDay,\n toCalendar,\n toCalendarDate,\n today\n} from '@internationalized/date';\nimport {CalendarProps, DateValue} from '@react-types/calendar';\nimport {CalendarState} from './types';\nimport {useControlledState} from '@react-stately/utils';\nimport {useDateFormatter} from '@react-aria/i18n';\nimport {useEffect, useMemo, useRef, useState} from 'react';\n\ninterface CalendarStateOptions<T extends DateValue> extends CalendarProps<T> {\n locale: string,\n createCalendar: (name: string) => Calendar,\n visibleDuration?: DateDuration,\n selectionAlignment?: 'start' | 'center' | 'end'\n}\n\nexport function useCalendarState<T extends DateValue>(props: CalendarStateOptions<T>): CalendarState {\n let defaultFormatter = useDateFormatter();\n let resolvedOptions = useMemo(() => defaultFormatter.resolvedOptions(), [defaultFormatter]);\n let {\n locale,\n createCalendar,\n visibleDuration = {months: 1},\n minValue,\n maxValue,\n selectionAlignment\n } = props;\n\n let calendar = useMemo(() => createCalendar(resolvedOptions.calendar), [createCalendar, resolvedOptions.calendar]);\n\n let [value, setControlledValue] = useControlledState<DateValue>(props.value, props.defaultValue, props.onChange);\n let calendarDateValue = useMemo(() => value ? toCalendar(toCalendarDate(value), calendar) : null, [value, calendar]);\n let timeZone = useMemo(() => value && 'timeZone' in value ? value.timeZone : resolvedOptions.timeZone, [value, resolvedOptions.timeZone]);\n let defaultDate = useMemo(() => calendarDateValue || constrainValue(toCalendar(today(timeZone), calendar), minValue, maxValue), [calendarDateValue, timeZone, calendar, minValue, maxValue]);\n let [startDate, setStartDate] = useState(() => {\n switch (selectionAlignment) {\n case 'start':\n return alignStart(defaultDate, visibleDuration, locale, minValue, maxValue);\n case 'end':\n return alignEnd(defaultDate, visibleDuration, locale, minValue, maxValue);\n case 'center':\n default:\n return alignCenter(defaultDate, visibleDuration, locale, minValue, maxValue);\n }\n });\n let [focusedDate, setFocusedDate] = useState(defaultDate);\n let [isFocused, setFocused] = useState(props.autoFocus || false);\n\n let endDate = useMemo(() => startDate.add(visibleDuration).subtract({days: 1}), [startDate, visibleDuration]);\n\n // Reset focused date and visible range when calendar changes.\n let lastCalendarIdentifier = useRef(calendar.identifier);\n useEffect(() => {\n if (calendar.identifier !== lastCalendarIdentifier.current) {\n let newFocusedDate = toCalendar(focusedDate, calendar);\n setStartDate(alignCenter(newFocusedDate, visibleDuration, locale, minValue, maxValue));\n setFocusedDate(newFocusedDate);\n lastCalendarIdentifier.current = calendar.identifier;\n }\n }, [calendar, focusedDate, visibleDuration, locale, minValue, maxValue]);\n\n // Sets focus to a specific cell date\n function focusCell(date: CalendarDate) {\n // date = constrain(focusedDate, date, visibleDuration, locale, minValue, maxValue);\n date = constrainValue(date, minValue, maxValue);\n\n let next = startDate.add(visibleDuration);\n if (date.compare(startDate) < 0) {\n setStartDate(alignEnd(date, visibleDuration, locale, minValue, maxValue));\n } else if (date.compare(next) >= 0) {\n setStartDate(alignStart(date, visibleDuration, locale, minValue, maxValue));\n }\n\n setFocusedDate(date);\n }\n\n function setValue(newValue: CalendarDate) {\n if (!props.isDisabled && !props.isReadOnly) {\n // The display calendar should not have any effect on the emitted value.\n // Emit dates in the same calendar as the original value, if any, otherwise gregorian.\n newValue = toCalendar(newValue, value?.calendar || new GregorianCalendar());\n\n // Preserve time if the input value had one.\n if (value && 'hour' in value) {\n setControlledValue(value.set(newValue));\n } else {\n setControlledValue(newValue);\n }\n }\n }\n\n return {\n isDisabled: props.isDisabled,\n isReadOnly: props.isReadOnly,\n value: calendarDateValue,\n setValue,\n visibleRange: {\n start: startDate,\n end: endDate\n },\n focusedDate,\n timeZone,\n setFocusedDate(date) {\n setFocusedDate(date);\n setFocused(true);\n },\n focusNextDay() {\n focusCell(focusedDate.add({days: 1}));\n },\n focusPreviousDay() {\n focusCell(focusedDate.subtract({days: 1}));\n },\n focusNextRow() {\n if (visibleDuration.days) {\n this.focusNextPage();\n } else if (visibleDuration.weeks || visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.add({weeks: 1}));\n }\n },\n focusPreviousRow() {\n if (visibleDuration.days) {\n this.focusPreviousPage();\n } else if (visibleDuration.weeks || visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.subtract({weeks: 1}));\n }\n },\n focusNextPage() {\n let start = startDate.add(visibleDuration);\n setStartDate(constrainStart(focusedDate, start, visibleDuration, locale, minValue, maxValue));\n setFocusedDate(constrainValue(focusedDate.add(visibleDuration), minValue, maxValue));\n },\n focusPreviousPage() {\n let start = startDate.subtract(visibleDuration);\n setStartDate(constrainStart(focusedDate, start, visibleDuration, locale, minValue, maxValue));\n setFocusedDate(constrainValue(focusedDate.subtract(visibleDuration), minValue, maxValue));\n },\n focusPageStart() {\n focusCell(startDate);\n },\n focusPageEnd() {\n focusCell(endDate);\n },\n focusNextSection() {\n if (visibleDuration.days) {\n this.focusNextPage();\n } else if (visibleDuration.weeks) {\n focusCell(focusedDate.add({months: 1}));\n } else if (visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.add({years: 1}));\n }\n },\n focusPreviousSection() {\n if (visibleDuration.days) {\n this.focusPreviousPage();\n } else if (visibleDuration.weeks) {\n focusCell(focusedDate.subtract({months: 1}));\n } else if (visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.subtract({years: 1}));\n }\n },\n selectFocusedDate() {\n setValue(focusedDate);\n },\n selectDate(date) {\n setValue(date);\n },\n isFocused,\n setFocused,\n isInvalid(date) {\n return isInvalid(date, minValue, maxValue);\n },\n isSelected(date) {\n return calendarDateValue != null && isSameDay(date, calendarDateValue) && !this.isCellDisabled(date);\n },\n isCellFocused(date) {\n return isFocused && focusedDate && isSameDay(date, focusedDate);\n },\n isCellDisabled(date) {\n return props.isDisabled || date.compare(startDate) < 0 || date.compare(endDate) > 0 || isInvalid(date, minValue, maxValue) || (props.isDateDisabled && props.isDateDisabled(date));\n },\n isPreviousVisibleRangeInvalid() {\n return isInvalid(startDate.subtract({days: 1}), minValue, maxValue);\n },\n isNextVisibleRangeInvalid() {\n return isInvalid(endDate.add({days: 1}), minValue, maxValue);\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {\n CalendarDate,\n DateDuration,\n maxDate,\n minDate,\n startOfMonth,\n startOfWeek,\n startOfYear,\n toCalendarDate\n} from '@internationalized/date';\nimport {DateValue} from '@react-types/calendar';\n\nexport function isInvalid(date: CalendarDate, minValue: DateValue, maxValue: DateValue) {\n return (minValue != null && date.compare(minValue) < 0) ||\n (maxValue != null && date.compare(maxValue) > 0);\n}\n\nexport function alignCenter(date: CalendarDate, duration: DateDuration, locale: string, minValue?: DateValue, maxValue?: DateValue) {\n let halfDuration: DateDuration = {};\n for (let key in duration) {\n halfDuration[key] = Math.floor(duration[key] / 2);\n if (halfDuration[key] > 0 && duration[key] % 2 === 0) {\n halfDuration[key]--;\n }\n }\n\n let aligned = alignStart(date, duration, locale).subtract(halfDuration);\n return constrainStart(date, aligned, duration, locale, minValue, maxValue);\n}\n\nexport function alignStart(date: CalendarDate, duration: DateDuration, locale: string, minValue?: DateValue, maxValue?: DateValue) {\n // align to the start of the largest unit\n let aligned = date;\n if (duration.years) {\n aligned = startOfYear(date);\n } else if (duration.months) {\n aligned = startOfMonth(date);\n } else if (duration.weeks) {\n aligned = startOfWeek(date, locale);\n }\n\n return constrainStart(date, aligned, duration, locale, minValue, maxValue);\n}\n\nexport function alignEnd(date: CalendarDate, duration: DateDuration, locale: string, minValue?: DateValue, maxValue?: DateValue) {\n let d = {...duration};\n // subtract 1 from the smallest unit\n if (duration.days) {\n d.days--;\n } else if (duration.weeks) {\n d.weeks--;\n } else if (duration.months) {\n d.months--;\n } else if (duration.years) {\n d.years--;\n }\n\n let aligned = alignStart(date, duration, locale).subtract(d);\n return constrainStart(date, aligned, duration, locale, minValue, maxValue);\n}\n\nexport function constrainStart(\n date: CalendarDate,\n aligned: CalendarDate,\n duration: DateDuration,\n locale: string,\n minValue: DateValue,\n maxValue: DateValue) {\n if (minValue && date.compare(minValue) >= 0) {\n aligned = maxDate(\n aligned,\n alignStart(toCalendarDate(minValue), duration, locale)\n );\n }\n\n if (maxValue && date.compare(maxValue) <= 0) {\n aligned = minDate(\n aligned,\n alignEnd(toCalendarDate(maxValue), duration, locale)\n );\n }\n\n return aligned;\n}\n\nexport function constrainValue(date: CalendarDate, minValue: DateValue, maxValue: DateValue) {\n if (minValue) {\n date = maxDate(date, toCalendarDate(minValue));\n }\n\n if (maxValue) {\n date = minDate(date, toCalendarDate(maxValue));\n }\n\n return date;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {alignCenter} from './utils';\nimport {Calendar, CalendarDate, DateDuration, GregorianCalendar, toCalendar, toCalendarDate} from '@internationalized/date';\nimport {DateRange, DateValue} from '@react-types/calendar';\nimport {RangeCalendarProps} from '@react-types/calendar';\nimport {RangeCalendarState} from './types';\nimport {RangeValue} from '@react-types/shared';\nimport {useCalendarState} from './useCalendarState';\nimport {useControlledState} from '@react-stately/utils';\nimport {useState} from 'react';\n\ninterface RangeCalendarStateOptions<T extends DateValue> extends RangeCalendarProps<T> {\n locale: string,\n createCalendar: (name: string) => Calendar,\n visibleDuration?: DateDuration\n}\n\nexport function useRangeCalendarState<T extends DateValue>(props: RangeCalendarStateOptions<T>): RangeCalendarState {\n let {value: valueProp, defaultValue, onChange, createCalendar, locale, visibleDuration = {months: 1}, minValue, maxValue, ...calendarProps} = props;\n let [value, setValue] = useControlledState<DateRange>(\n valueProp,\n defaultValue,\n onChange\n );\n\n let [anchorDate, setAnchorDate] = useState(null);\n let alignment: 'center' | 'start' = 'center';\n if (value && value.start && value.end) {\n let start = alignCenter(toCalendarDate(value.start), visibleDuration, locale, minValue, maxValue);\n let end = start.add(visibleDuration).subtract({days: 1});\n\n if (value.end.compare(end) > 0) {\n alignment = 'start';\n }\n }\n\n let calendar = useCalendarState({\n ...calendarProps,\n value: value && value.start,\n createCalendar,\n locale,\n visibleDuration,\n minValue,\n maxValue,\n selectionAlignment: alignment\n });\n\n let highlightedRange = anchorDate ? makeRange(anchorDate, calendar.focusedDate) : value && makeRange(value.start, value.end);\n let selectDate = (date: CalendarDate) => {\n if (props.isReadOnly) {\n return;\n }\n\n if (!anchorDate) {\n setAnchorDate(date);\n } else {\n let range = makeRange(anchorDate, date);\n setValue({\n start: convertValue(range.start, value?.start),\n end: convertValue(range.end, value?.end)\n });\n setAnchorDate(null);\n }\n };\n\n let [isDragging, setDragging] = useState(false);\n\n return {\n ...calendar,\n value,\n setValue,\n anchorDate,\n setAnchorDate,\n highlightedRange,\n selectFocusedDate() {\n selectDate(calendar.focusedDate);\n },\n selectDate,\n highlightDate(date) {\n if (anchorDate) {\n calendar.setFocusedDate(date);\n }\n },\n isSelected(date) {\n return highlightedRange && date.compare(highlightedRange.start) >= 0 && date.compare(highlightedRange.end) <= 0 && !calendar.isCellDisabled(date);\n },\n isDragging,\n setDragging\n };\n}\n\nfunction makeRange(start: DateValue, end: DateValue): RangeValue<CalendarDate> {\n if (!start || !end) {\n return null;\n }\n\n if (end.compare(start) < 0) {\n [start, end] = [end, start];\n }\n\n return {start: toCalendarDate(start), end: toCalendarDate(end)};\n}\n\nfunction convertValue(newValue: CalendarDate, oldValue: DateValue) {\n // The display calendar should not have any effect on the emitted value.\n // Emit dates in the same calendar as the original value, if any, otherwise gregorian.\n newValue = toCalendar(newValue, oldValue?.calendar || new GregorianCalendar());\n\n // Preserve time if the input value had one.\n if (oldValue && 'hour' in oldValue) {\n return oldValue.set(newValue);\n }\n\n return newValue;\n}\n"],"names":[],"version":3,"file":"main.js.map"}
package/dist/module.js CHANGED
@@ -234,13 +234,13 @@ function $131cf43a05231e1e$export$6d095e787d2b5e1f(props) {
234
234
  return $f62d864046160412$export$eac50920cf2fd59a(date, minValue, maxValue);
235
235
  },
236
236
  isSelected (date) {
237
- return calendarDateValue != null && $keQhS$isSameDay(date, calendarDateValue);
237
+ return calendarDateValue != null && $keQhS$isSameDay(date, calendarDateValue) && !this.isCellDisabled(date);
238
238
  },
239
239
  isCellFocused (date) {
240
240
  return isFocused && focusedDate && $keQhS$isSameDay(date, focusedDate);
241
241
  },
242
242
  isCellDisabled (date) {
243
- return props.isDisabled || date.compare(startDate) < 0 || date.compare(endDate) > 0 || $f62d864046160412$export$eac50920cf2fd59a(date, minValue, maxValue);
243
+ return props.isDisabled || date.compare(startDate) < 0 || date.compare(endDate) > 0 || $f62d864046160412$export$eac50920cf2fd59a(date, minValue, maxValue) || props.isDateDisabled && props.isDateDisabled(date);
244
244
  },
245
245
  isPreviousVisibleRangeInvalid () {
246
246
  return $f62d864046160412$export$eac50920cf2fd59a(startDate.subtract({
@@ -317,7 +317,7 @@ function $9a36b6ba2fb1a7c5$export$9a987164d97ecc90(props) {
317
317
  if (anchorDate) calendar.setFocusedDate(date);
318
318
  },
319
319
  isSelected (date) {
320
- return highlightedRange && date.compare(highlightedRange.start) >= 0 && date.compare(highlightedRange.end) <= 0;
320
+ return highlightedRange && date.compare(highlightedRange.start) >= 0 && date.compare(highlightedRange.end) <= 0 && !calendar.isCellDisabled(date);
321
321
  },
322
322
  isDragging: isDragging,
323
323
  setDragging: setDragging
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/@react-stately/calendar/src/index.ts","packages/@react-stately/calendar/src/types.ts","packages/@react-stately/calendar/src/useCalendarState.ts","packages/@react-stately/calendar/src/utils.ts","packages/@react-stately/calendar/src/useRangeCalendarState.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport * from './types';\nexport * from './useCalendarState';\nexport * from './useRangeCalendarState';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CalendarDate} from '@internationalized/date';\nimport {DateValue} from '@react-types/calendar';\nimport {RangeValue} from '@react-types/shared';\n\nexport interface CalendarStateBase {\n isDisabled: boolean,\n isReadOnly: boolean,\n visibleRange: RangeValue<CalendarDate>,\n timeZone: string,\n focusedDate: CalendarDate,\n setFocusedDate(value: CalendarDate): void,\n focusNextDay(): void,\n focusPreviousDay(): void,\n focusNextRow(): void,\n focusPreviousRow(): void,\n focusNextPage(): void,\n focusPreviousPage(): void,\n focusPageStart(): void,\n focusPageEnd(): void,\n focusNextSection(): void,\n focusPreviousSection(): void,\n focusNextPage(): void,\n focusPreviousPage(): void,\n selectFocusedDate(): void,\n selectDate(date: CalendarDate): void,\n isFocused: boolean,\n setFocused(value: boolean): void,\n isInvalid(date: CalendarDate): boolean,\n isSelected(date: CalendarDate): boolean,\n isCellFocused(date: CalendarDate): boolean,\n isCellDisabled(date: CalendarDate): boolean,\n isPreviousVisibleRangeInvalid(): boolean,\n isNextVisibleRangeInvalid(): boolean\n}\n\nexport interface CalendarState extends CalendarStateBase {\n value: CalendarDate,\n setValue(value: CalendarDate): void\n}\n\nexport interface RangeCalendarState extends CalendarStateBase {\n value: RangeValue<DateValue>,\n setValue(value: RangeValue<DateValue>): void,\n highlightDate(date: CalendarDate): void,\n anchorDate: CalendarDate | null,\n setAnchorDate(date: CalendarDate | null): void,\n highlightedRange: RangeValue<CalendarDate>,\n isDragging: boolean,\n setDragging(isDragging: boolean): void\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {alignCenter, alignEnd, alignStart, constrainStart, constrainValue, isInvalid} from './utils';\nimport {\n Calendar,\n CalendarDate,\n Duration,\n GregorianCalendar,\n isSameDay,\n toCalendar,\n toCalendarDate,\n today\n} from '@internationalized/date';\nimport {CalendarProps, DateValue} from '@react-types/calendar';\nimport {CalendarState} from './types';\nimport {useControlledState} from '@react-stately/utils';\nimport {useDateFormatter} from '@react-aria/i18n';\nimport {useEffect, useMemo, useRef, useState} from 'react';\n\ninterface CalendarStateOptions<T extends DateValue> extends CalendarProps<T> {\n locale: string,\n createCalendar: (name: string) => Calendar,\n visibleDuration?: Duration,\n selectionAlignment?: 'start' | 'center' | 'end'\n}\n\nexport function useCalendarState<T extends DateValue>(props: CalendarStateOptions<T>): CalendarState {\n let defaultFormatter = useDateFormatter();\n let resolvedOptions = useMemo(() => defaultFormatter.resolvedOptions(), [defaultFormatter]);\n let {\n locale,\n createCalendar,\n visibleDuration = {months: 1},\n minValue,\n maxValue,\n selectionAlignment\n } = props;\n\n let calendar = useMemo(() => createCalendar(resolvedOptions.calendar), [createCalendar, resolvedOptions.calendar]);\n\n let [value, setControlledValue] = useControlledState<DateValue>(props.value, props.defaultValue, props.onChange);\n let calendarDateValue = useMemo(() => value ? toCalendar(toCalendarDate(value), calendar) : null, [value, calendar]);\n let timeZone = useMemo(() => value && 'timeZone' in value ? value.timeZone : resolvedOptions.timeZone, [value, resolvedOptions.timeZone]);\n let defaultDate = useMemo(() => calendarDateValue || constrainValue(toCalendar(today(timeZone), calendar), minValue, maxValue), [calendarDateValue, timeZone, calendar, minValue, maxValue]);\n let [startDate, setStartDate] = useState(() => {\n switch (selectionAlignment) {\n case 'start':\n return alignStart(defaultDate, visibleDuration, locale, minValue, maxValue);\n case 'end':\n return alignEnd(defaultDate, visibleDuration, locale, minValue, maxValue);\n case 'center':\n default:\n return alignCenter(defaultDate, visibleDuration, locale, minValue, maxValue);\n }\n });\n let [focusedDate, setFocusedDate] = useState(defaultDate);\n let [isFocused, setFocused] = useState(props.autoFocus || false);\n\n let endDate = useMemo(() => startDate.add(visibleDuration).subtract({days: 1}), [startDate, visibleDuration]);\n\n // Reset focused date and visible range when calendar changes.\n let lastCalendarIdentifier = useRef(calendar.identifier);\n useEffect(() => {\n if (calendar.identifier !== lastCalendarIdentifier.current) {\n let newFocusedDate = toCalendar(focusedDate, calendar);\n setStartDate(alignCenter(newFocusedDate, visibleDuration, locale, minValue, maxValue));\n setFocusedDate(newFocusedDate);\n lastCalendarIdentifier.current = calendar.identifier;\n }\n }, [calendar, focusedDate, visibleDuration, locale, minValue, maxValue]);\n\n // Sets focus to a specific cell date\n function focusCell(date: CalendarDate) {\n // date = constrain(focusedDate, date, visibleDuration, locale, minValue, maxValue);\n date = constrainValue(date, minValue, maxValue);\n\n let next = startDate.add(visibleDuration);\n if (date.compare(startDate) < 0) {\n setStartDate(alignEnd(date, visibleDuration, locale, minValue, maxValue));\n } else if (date.compare(next) >= 0) {\n setStartDate(alignStart(date, visibleDuration, locale, minValue, maxValue));\n }\n\n setFocusedDate(date);\n }\n\n function setValue(newValue: CalendarDate) {\n if (!props.isDisabled && !props.isReadOnly) {\n // The display calendar should not have any effect on the emitted value.\n // Emit dates in the same calendar as the original value, if any, otherwise gregorian.\n newValue = toCalendar(newValue, value?.calendar || new GregorianCalendar());\n\n // Preserve time if the input value had one.\n if (value && 'hour' in value) {\n setControlledValue(value.set(newValue));\n } else {\n setControlledValue(newValue);\n }\n }\n }\n\n return {\n isDisabled: props.isDisabled,\n isReadOnly: props.isReadOnly,\n value: calendarDateValue,\n setValue,\n visibleRange: {\n start: startDate,\n end: endDate\n },\n focusedDate,\n timeZone,\n setFocusedDate(date) {\n setFocusedDate(date);\n setFocused(true);\n },\n focusNextDay() {\n focusCell(focusedDate.add({days: 1}));\n },\n focusPreviousDay() {\n focusCell(focusedDate.subtract({days: 1}));\n },\n focusNextRow() {\n if (visibleDuration.days) {\n this.focusNextPage();\n } else if (visibleDuration.weeks || visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.add({weeks: 1}));\n }\n },\n focusPreviousRow() {\n if (visibleDuration.days) {\n this.focusPreviousPage();\n } else if (visibleDuration.weeks || visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.subtract({weeks: 1}));\n }\n },\n focusNextPage() {\n let start = startDate.add(visibleDuration);\n setStartDate(constrainStart(focusedDate, start, visibleDuration, locale, minValue, maxValue));\n setFocusedDate(constrainValue(focusedDate.add(visibleDuration), minValue, maxValue));\n },\n focusPreviousPage() {\n let start = startDate.subtract(visibleDuration);\n setStartDate(constrainStart(focusedDate, start, visibleDuration, locale, minValue, maxValue));\n setFocusedDate(constrainValue(focusedDate.subtract(visibleDuration), minValue, maxValue));\n },\n focusPageStart() {\n focusCell(startDate);\n },\n focusPageEnd() {\n focusCell(endDate);\n },\n focusNextSection() {\n if (visibleDuration.days) {\n this.focusNextPage();\n } else if (visibleDuration.weeks) {\n focusCell(focusedDate.add({months: 1}));\n } else if (visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.add({years: 1}));\n }\n },\n focusPreviousSection() {\n if (visibleDuration.days) {\n this.focusPreviousPage();\n } else if (visibleDuration.weeks) {\n focusCell(focusedDate.subtract({months: 1}));\n } else if (visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.subtract({years: 1}));\n }\n },\n selectFocusedDate() {\n setValue(focusedDate);\n },\n selectDate(date) {\n setValue(date);\n },\n isFocused,\n setFocused,\n isInvalid(date) {\n return isInvalid(date, minValue, maxValue);\n },\n isSelected(date) {\n return calendarDateValue != null && isSameDay(date, calendarDateValue);\n },\n isCellFocused(date) {\n return isFocused && focusedDate && isSameDay(date, focusedDate);\n },\n isCellDisabled(date) {\n return props.isDisabled || date.compare(startDate) < 0 || date.compare(endDate) > 0 || isInvalid(date, minValue, maxValue);\n },\n isPreviousVisibleRangeInvalid() {\n return isInvalid(startDate.subtract({days: 1}), minValue, maxValue);\n },\n isNextVisibleRangeInvalid() {\n return isInvalid(endDate.add({days: 1}), minValue, maxValue);\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {\n CalendarDate,\n Duration,\n maxDate,\n minDate,\n startOfMonth,\n startOfWeek,\n startOfYear,\n toCalendarDate\n} from '@internationalized/date';\nimport {DateValue} from '@react-types/calendar';\n\nexport function isInvalid(date: CalendarDate, minValue: DateValue, maxValue: DateValue) {\n return (minValue != null && date.compare(minValue) < 0) ||\n (maxValue != null && date.compare(maxValue) > 0);\n}\n\nexport function alignCenter(date: CalendarDate, duration: Duration, locale: string, minValue?: DateValue, maxValue?: DateValue) {\n let halfDuration: Duration = {};\n for (let key in duration) {\n halfDuration[key] = Math.floor(duration[key] / 2);\n if (halfDuration[key] > 0 && duration[key] % 2 === 0) {\n halfDuration[key]--;\n }\n }\n\n let aligned = alignStart(date, duration, locale).subtract(halfDuration);\n return constrainStart(date, aligned, duration, locale, minValue, maxValue);\n}\n\nexport function alignStart(date: CalendarDate, duration: Duration, locale: string, minValue?: DateValue, maxValue?: DateValue) {\n // align to the start of the largest unit\n let aligned = date;\n if (duration.years) {\n aligned = startOfYear(date);\n } else if (duration.months) {\n aligned = startOfMonth(date);\n } else if (duration.weeks) {\n aligned = startOfWeek(date, locale);\n }\n\n return constrainStart(date, aligned, duration, locale, minValue, maxValue);\n}\n\nexport function alignEnd(date: CalendarDate, duration: Duration, locale: string, minValue?: DateValue, maxValue?: DateValue) {\n let d = {...duration};\n // subtract 1 from the smallest unit\n if (duration.days) {\n d.days--;\n } else if (duration.weeks) {\n d.weeks--;\n } else if (duration.months) {\n d.months--;\n } else if (duration.years) {\n d.years--;\n }\n\n let aligned = alignStart(date, duration, locale).subtract(d);\n return constrainStart(date, aligned, duration, locale, minValue, maxValue);\n}\n\nexport function constrainStart(\n date: CalendarDate,\n aligned: CalendarDate,\n duration: Duration,\n locale: string,\n minValue: DateValue,\n maxValue: DateValue) {\n if (minValue && date.compare(minValue) >= 0) {\n aligned = maxDate(\n aligned,\n alignStart(toCalendarDate(minValue), duration, locale)\n );\n }\n\n if (maxValue && date.compare(maxValue) <= 0) {\n aligned = minDate(\n aligned,\n alignEnd(toCalendarDate(maxValue), duration, locale)\n );\n }\n\n return aligned;\n}\n\nexport function constrainValue(date: CalendarDate, minValue: DateValue, maxValue: DateValue) {\n if (minValue) {\n date = maxDate(date, toCalendarDate(minValue));\n }\n\n if (maxValue) {\n date = minDate(date, toCalendarDate(maxValue));\n }\n\n return date;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {alignCenter} from './utils';\nimport {Calendar, CalendarDate, Duration, GregorianCalendar, toCalendar, toCalendarDate} from '@internationalized/date';\nimport {DateRange, DateValue} from '@react-types/calendar';\nimport {RangeCalendarProps} from '@react-types/calendar';\nimport {RangeCalendarState} from './types';\nimport {RangeValue} from '@react-types/shared';\nimport {useCalendarState} from './useCalendarState';\nimport {useControlledState} from '@react-stately/utils';\nimport {useState} from 'react';\n\ninterface RangeCalendarStateOptions<T extends DateValue> extends RangeCalendarProps<T> {\n locale: string,\n createCalendar: (name: string) => Calendar,\n visibleDuration?: Duration\n}\n\nexport function useRangeCalendarState<T extends DateValue>(props: RangeCalendarStateOptions<T>): RangeCalendarState {\n let {value: valueProp, defaultValue, onChange, createCalendar, locale, visibleDuration = {months: 1}, minValue, maxValue, ...calendarProps} = props;\n let [value, setValue] = useControlledState<DateRange>(\n valueProp,\n defaultValue,\n onChange\n );\n\n let [anchorDate, setAnchorDate] = useState(null);\n let alignment: 'center' | 'start' = 'center';\n if (value && value.start && value.end) {\n let start = alignCenter(toCalendarDate(value.start), visibleDuration, locale, minValue, maxValue);\n let end = start.add(visibleDuration).subtract({days: 1});\n\n if (value.end.compare(end) > 0) {\n alignment = 'start';\n }\n }\n\n let calendar = useCalendarState({\n ...calendarProps,\n value: value && value.start,\n createCalendar,\n locale,\n visibleDuration,\n minValue,\n maxValue,\n selectionAlignment: alignment\n });\n\n let highlightedRange = anchorDate ? makeRange(anchorDate, calendar.focusedDate) : value && makeRange(value.start, value.end);\n let selectDate = (date: CalendarDate) => {\n if (props.isReadOnly) {\n return;\n }\n\n if (!anchorDate) {\n setAnchorDate(date);\n } else {\n let range = makeRange(anchorDate, date);\n setValue({\n start: convertValue(range.start, value?.start),\n end: convertValue(range.end, value?.end)\n });\n setAnchorDate(null);\n }\n };\n\n let [isDragging, setDragging] = useState(false);\n\n return {\n ...calendar,\n value,\n setValue,\n anchorDate,\n setAnchorDate,\n highlightedRange,\n selectFocusedDate() {\n selectDate(calendar.focusedDate);\n },\n selectDate,\n highlightDate(date) {\n if (anchorDate) {\n calendar.setFocusedDate(date);\n }\n },\n isSelected(date) {\n return highlightedRange && date.compare(highlightedRange.start) >= 0 && date.compare(highlightedRange.end) <= 0;\n },\n isDragging,\n setDragging\n };\n}\n\nfunction makeRange(start: DateValue, end: DateValue): RangeValue<CalendarDate> {\n if (!start || !end) {\n return null;\n }\n\n if (end.compare(start) < 0) {\n [start, end] = [end, start];\n }\n\n return {start: toCalendarDate(start), end: toCalendarDate(end)};\n}\n\nfunction convertValue(newValue: CalendarDate, oldValue: DateValue) {\n // The display calendar should not have any effect on the emitted value.\n // Emit dates in the same calendar as the original value, if any, otherwise gregorian.\n newValue = toCalendar(newValue, oldValue?.calendar || new GregorianCalendar());\n\n // Preserve time if the input value had one.\n if (oldValue && 'hour' in oldValue) {\n return oldValue.set(newValue);\n }\n\n return newValue;\n}\n"],"names":[],"version":3,"file":"module.js.map"}
1
+ {"mappings":"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","sources":["packages/@react-stately/calendar/src/index.ts","packages/@react-stately/calendar/src/types.ts","packages/@react-stately/calendar/src/useCalendarState.ts","packages/@react-stately/calendar/src/utils.ts","packages/@react-stately/calendar/src/useRangeCalendarState.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport * from './types';\nexport * from './useCalendarState';\nexport * from './useRangeCalendarState';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {CalendarDate} from '@internationalized/date';\nimport {DateValue} from '@react-types/calendar';\nimport {RangeValue} from '@react-types/shared';\n\nexport interface CalendarStateBase {\n isDisabled: boolean,\n isReadOnly: boolean,\n visibleRange: RangeValue<CalendarDate>,\n timeZone: string,\n focusedDate: CalendarDate,\n setFocusedDate(value: CalendarDate): void,\n focusNextDay(): void,\n focusPreviousDay(): void,\n focusNextRow(): void,\n focusPreviousRow(): void,\n focusNextPage(): void,\n focusPreviousPage(): void,\n focusPageStart(): void,\n focusPageEnd(): void,\n focusNextSection(): void,\n focusPreviousSection(): void,\n focusNextPage(): void,\n focusPreviousPage(): void,\n selectFocusedDate(): void,\n selectDate(date: CalendarDate): void,\n isFocused: boolean,\n setFocused(value: boolean): void,\n isInvalid(date: CalendarDate): boolean,\n isSelected(date: CalendarDate): boolean,\n isCellFocused(date: CalendarDate): boolean,\n isCellDisabled(date: CalendarDate): boolean,\n isPreviousVisibleRangeInvalid(): boolean,\n isNextVisibleRangeInvalid(): boolean\n}\n\nexport interface CalendarState extends CalendarStateBase {\n value: CalendarDate,\n setValue(value: CalendarDate): void\n}\n\nexport interface RangeCalendarState extends CalendarStateBase {\n value: RangeValue<DateValue>,\n setValue(value: RangeValue<DateValue>): void,\n highlightDate(date: CalendarDate): void,\n anchorDate: CalendarDate | null,\n setAnchorDate(date: CalendarDate | null): void,\n highlightedRange: RangeValue<CalendarDate>,\n isDragging: boolean,\n setDragging(isDragging: boolean): void\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {alignCenter, alignEnd, alignStart, constrainStart, constrainValue, isInvalid} from './utils';\nimport {\n Calendar,\n CalendarDate,\n DateDuration,\n GregorianCalendar,\n isSameDay,\n toCalendar,\n toCalendarDate,\n today\n} from '@internationalized/date';\nimport {CalendarProps, DateValue} from '@react-types/calendar';\nimport {CalendarState} from './types';\nimport {useControlledState} from '@react-stately/utils';\nimport {useDateFormatter} from '@react-aria/i18n';\nimport {useEffect, useMemo, useRef, useState} from 'react';\n\ninterface CalendarStateOptions<T extends DateValue> extends CalendarProps<T> {\n locale: string,\n createCalendar: (name: string) => Calendar,\n visibleDuration?: DateDuration,\n selectionAlignment?: 'start' | 'center' | 'end'\n}\n\nexport function useCalendarState<T extends DateValue>(props: CalendarStateOptions<T>): CalendarState {\n let defaultFormatter = useDateFormatter();\n let resolvedOptions = useMemo(() => defaultFormatter.resolvedOptions(), [defaultFormatter]);\n let {\n locale,\n createCalendar,\n visibleDuration = {months: 1},\n minValue,\n maxValue,\n selectionAlignment\n } = props;\n\n let calendar = useMemo(() => createCalendar(resolvedOptions.calendar), [createCalendar, resolvedOptions.calendar]);\n\n let [value, setControlledValue] = useControlledState<DateValue>(props.value, props.defaultValue, props.onChange);\n let calendarDateValue = useMemo(() => value ? toCalendar(toCalendarDate(value), calendar) : null, [value, calendar]);\n let timeZone = useMemo(() => value && 'timeZone' in value ? value.timeZone : resolvedOptions.timeZone, [value, resolvedOptions.timeZone]);\n let defaultDate = useMemo(() => calendarDateValue || constrainValue(toCalendar(today(timeZone), calendar), minValue, maxValue), [calendarDateValue, timeZone, calendar, minValue, maxValue]);\n let [startDate, setStartDate] = useState(() => {\n switch (selectionAlignment) {\n case 'start':\n return alignStart(defaultDate, visibleDuration, locale, minValue, maxValue);\n case 'end':\n return alignEnd(defaultDate, visibleDuration, locale, minValue, maxValue);\n case 'center':\n default:\n return alignCenter(defaultDate, visibleDuration, locale, minValue, maxValue);\n }\n });\n let [focusedDate, setFocusedDate] = useState(defaultDate);\n let [isFocused, setFocused] = useState(props.autoFocus || false);\n\n let endDate = useMemo(() => startDate.add(visibleDuration).subtract({days: 1}), [startDate, visibleDuration]);\n\n // Reset focused date and visible range when calendar changes.\n let lastCalendarIdentifier = useRef(calendar.identifier);\n useEffect(() => {\n if (calendar.identifier !== lastCalendarIdentifier.current) {\n let newFocusedDate = toCalendar(focusedDate, calendar);\n setStartDate(alignCenter(newFocusedDate, visibleDuration, locale, minValue, maxValue));\n setFocusedDate(newFocusedDate);\n lastCalendarIdentifier.current = calendar.identifier;\n }\n }, [calendar, focusedDate, visibleDuration, locale, minValue, maxValue]);\n\n // Sets focus to a specific cell date\n function focusCell(date: CalendarDate) {\n // date = constrain(focusedDate, date, visibleDuration, locale, minValue, maxValue);\n date = constrainValue(date, minValue, maxValue);\n\n let next = startDate.add(visibleDuration);\n if (date.compare(startDate) < 0) {\n setStartDate(alignEnd(date, visibleDuration, locale, minValue, maxValue));\n } else if (date.compare(next) >= 0) {\n setStartDate(alignStart(date, visibleDuration, locale, minValue, maxValue));\n }\n\n setFocusedDate(date);\n }\n\n function setValue(newValue: CalendarDate) {\n if (!props.isDisabled && !props.isReadOnly) {\n // The display calendar should not have any effect on the emitted value.\n // Emit dates in the same calendar as the original value, if any, otherwise gregorian.\n newValue = toCalendar(newValue, value?.calendar || new GregorianCalendar());\n\n // Preserve time if the input value had one.\n if (value && 'hour' in value) {\n setControlledValue(value.set(newValue));\n } else {\n setControlledValue(newValue);\n }\n }\n }\n\n return {\n isDisabled: props.isDisabled,\n isReadOnly: props.isReadOnly,\n value: calendarDateValue,\n setValue,\n visibleRange: {\n start: startDate,\n end: endDate\n },\n focusedDate,\n timeZone,\n setFocusedDate(date) {\n setFocusedDate(date);\n setFocused(true);\n },\n focusNextDay() {\n focusCell(focusedDate.add({days: 1}));\n },\n focusPreviousDay() {\n focusCell(focusedDate.subtract({days: 1}));\n },\n focusNextRow() {\n if (visibleDuration.days) {\n this.focusNextPage();\n } else if (visibleDuration.weeks || visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.add({weeks: 1}));\n }\n },\n focusPreviousRow() {\n if (visibleDuration.days) {\n this.focusPreviousPage();\n } else if (visibleDuration.weeks || visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.subtract({weeks: 1}));\n }\n },\n focusNextPage() {\n let start = startDate.add(visibleDuration);\n setStartDate(constrainStart(focusedDate, start, visibleDuration, locale, minValue, maxValue));\n setFocusedDate(constrainValue(focusedDate.add(visibleDuration), minValue, maxValue));\n },\n focusPreviousPage() {\n let start = startDate.subtract(visibleDuration);\n setStartDate(constrainStart(focusedDate, start, visibleDuration, locale, minValue, maxValue));\n setFocusedDate(constrainValue(focusedDate.subtract(visibleDuration), minValue, maxValue));\n },\n focusPageStart() {\n focusCell(startDate);\n },\n focusPageEnd() {\n focusCell(endDate);\n },\n focusNextSection() {\n if (visibleDuration.days) {\n this.focusNextPage();\n } else if (visibleDuration.weeks) {\n focusCell(focusedDate.add({months: 1}));\n } else if (visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.add({years: 1}));\n }\n },\n focusPreviousSection() {\n if (visibleDuration.days) {\n this.focusPreviousPage();\n } else if (visibleDuration.weeks) {\n focusCell(focusedDate.subtract({months: 1}));\n } else if (visibleDuration.months || visibleDuration.years) {\n focusCell(focusedDate.subtract({years: 1}));\n }\n },\n selectFocusedDate() {\n setValue(focusedDate);\n },\n selectDate(date) {\n setValue(date);\n },\n isFocused,\n setFocused,\n isInvalid(date) {\n return isInvalid(date, minValue, maxValue);\n },\n isSelected(date) {\n return calendarDateValue != null && isSameDay(date, calendarDateValue) && !this.isCellDisabled(date);\n },\n isCellFocused(date) {\n return isFocused && focusedDate && isSameDay(date, focusedDate);\n },\n isCellDisabled(date) {\n return props.isDisabled || date.compare(startDate) < 0 || date.compare(endDate) > 0 || isInvalid(date, minValue, maxValue) || (props.isDateDisabled && props.isDateDisabled(date));\n },\n isPreviousVisibleRangeInvalid() {\n return isInvalid(startDate.subtract({days: 1}), minValue, maxValue);\n },\n isNextVisibleRangeInvalid() {\n return isInvalid(endDate.add({days: 1}), minValue, maxValue);\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {\n CalendarDate,\n DateDuration,\n maxDate,\n minDate,\n startOfMonth,\n startOfWeek,\n startOfYear,\n toCalendarDate\n} from '@internationalized/date';\nimport {DateValue} from '@react-types/calendar';\n\nexport function isInvalid(date: CalendarDate, minValue: DateValue, maxValue: DateValue) {\n return (minValue != null && date.compare(minValue) < 0) ||\n (maxValue != null && date.compare(maxValue) > 0);\n}\n\nexport function alignCenter(date: CalendarDate, duration: DateDuration, locale: string, minValue?: DateValue, maxValue?: DateValue) {\n let halfDuration: DateDuration = {};\n for (let key in duration) {\n halfDuration[key] = Math.floor(duration[key] / 2);\n if (halfDuration[key] > 0 && duration[key] % 2 === 0) {\n halfDuration[key]--;\n }\n }\n\n let aligned = alignStart(date, duration, locale).subtract(halfDuration);\n return constrainStart(date, aligned, duration, locale, minValue, maxValue);\n}\n\nexport function alignStart(date: CalendarDate, duration: DateDuration, locale: string, minValue?: DateValue, maxValue?: DateValue) {\n // align to the start of the largest unit\n let aligned = date;\n if (duration.years) {\n aligned = startOfYear(date);\n } else if (duration.months) {\n aligned = startOfMonth(date);\n } else if (duration.weeks) {\n aligned = startOfWeek(date, locale);\n }\n\n return constrainStart(date, aligned, duration, locale, minValue, maxValue);\n}\n\nexport function alignEnd(date: CalendarDate, duration: DateDuration, locale: string, minValue?: DateValue, maxValue?: DateValue) {\n let d = {...duration};\n // subtract 1 from the smallest unit\n if (duration.days) {\n d.days--;\n } else if (duration.weeks) {\n d.weeks--;\n } else if (duration.months) {\n d.months--;\n } else if (duration.years) {\n d.years--;\n }\n\n let aligned = alignStart(date, duration, locale).subtract(d);\n return constrainStart(date, aligned, duration, locale, minValue, maxValue);\n}\n\nexport function constrainStart(\n date: CalendarDate,\n aligned: CalendarDate,\n duration: DateDuration,\n locale: string,\n minValue: DateValue,\n maxValue: DateValue) {\n if (minValue && date.compare(minValue) >= 0) {\n aligned = maxDate(\n aligned,\n alignStart(toCalendarDate(minValue), duration, locale)\n );\n }\n\n if (maxValue && date.compare(maxValue) <= 0) {\n aligned = minDate(\n aligned,\n alignEnd(toCalendarDate(maxValue), duration, locale)\n );\n }\n\n return aligned;\n}\n\nexport function constrainValue(date: CalendarDate, minValue: DateValue, maxValue: DateValue) {\n if (minValue) {\n date = maxDate(date, toCalendarDate(minValue));\n }\n\n if (maxValue) {\n date = minDate(date, toCalendarDate(maxValue));\n }\n\n return date;\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {alignCenter} from './utils';\nimport {Calendar, CalendarDate, DateDuration, GregorianCalendar, toCalendar, toCalendarDate} from '@internationalized/date';\nimport {DateRange, DateValue} from '@react-types/calendar';\nimport {RangeCalendarProps} from '@react-types/calendar';\nimport {RangeCalendarState} from './types';\nimport {RangeValue} from '@react-types/shared';\nimport {useCalendarState} from './useCalendarState';\nimport {useControlledState} from '@react-stately/utils';\nimport {useState} from 'react';\n\ninterface RangeCalendarStateOptions<T extends DateValue> extends RangeCalendarProps<T> {\n locale: string,\n createCalendar: (name: string) => Calendar,\n visibleDuration?: DateDuration\n}\n\nexport function useRangeCalendarState<T extends DateValue>(props: RangeCalendarStateOptions<T>): RangeCalendarState {\n let {value: valueProp, defaultValue, onChange, createCalendar, locale, visibleDuration = {months: 1}, minValue, maxValue, ...calendarProps} = props;\n let [value, setValue] = useControlledState<DateRange>(\n valueProp,\n defaultValue,\n onChange\n );\n\n let [anchorDate, setAnchorDate] = useState(null);\n let alignment: 'center' | 'start' = 'center';\n if (value && value.start && value.end) {\n let start = alignCenter(toCalendarDate(value.start), visibleDuration, locale, minValue, maxValue);\n let end = start.add(visibleDuration).subtract({days: 1});\n\n if (value.end.compare(end) > 0) {\n alignment = 'start';\n }\n }\n\n let calendar = useCalendarState({\n ...calendarProps,\n value: value && value.start,\n createCalendar,\n locale,\n visibleDuration,\n minValue,\n maxValue,\n selectionAlignment: alignment\n });\n\n let highlightedRange = anchorDate ? makeRange(anchorDate, calendar.focusedDate) : value && makeRange(value.start, value.end);\n let selectDate = (date: CalendarDate) => {\n if (props.isReadOnly) {\n return;\n }\n\n if (!anchorDate) {\n setAnchorDate(date);\n } else {\n let range = makeRange(anchorDate, date);\n setValue({\n start: convertValue(range.start, value?.start),\n end: convertValue(range.end, value?.end)\n });\n setAnchorDate(null);\n }\n };\n\n let [isDragging, setDragging] = useState(false);\n\n return {\n ...calendar,\n value,\n setValue,\n anchorDate,\n setAnchorDate,\n highlightedRange,\n selectFocusedDate() {\n selectDate(calendar.focusedDate);\n },\n selectDate,\n highlightDate(date) {\n if (anchorDate) {\n calendar.setFocusedDate(date);\n }\n },\n isSelected(date) {\n return highlightedRange && date.compare(highlightedRange.start) >= 0 && date.compare(highlightedRange.end) <= 0 && !calendar.isCellDisabled(date);\n },\n isDragging,\n setDragging\n };\n}\n\nfunction makeRange(start: DateValue, end: DateValue): RangeValue<CalendarDate> {\n if (!start || !end) {\n return null;\n }\n\n if (end.compare(start) < 0) {\n [start, end] = [end, start];\n }\n\n return {start: toCalendarDate(start), end: toCalendarDate(end)};\n}\n\nfunction convertValue(newValue: CalendarDate, oldValue: DateValue) {\n // The display calendar should not have any effect on the emitted value.\n // Emit dates in the same calendar as the original value, if any, otherwise gregorian.\n newValue = toCalendar(newValue, oldValue?.calendar || new GregorianCalendar());\n\n // Preserve time if the input value had one.\n if (oldValue && 'hour' in oldValue) {\n return oldValue.set(newValue);\n }\n\n return newValue;\n}\n"],"names":[],"version":3,"file":"module.js.map"}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { CalendarDate, Calendar, Duration } from "@internationalized/date";
1
+ import { CalendarDate, Calendar, DateDuration } from "@internationalized/date";
2
2
  import { DateValue, CalendarProps, RangeCalendarProps } from "@react-types/calendar";
3
3
  import { RangeValue } from "@react-types/shared";
4
4
  export interface CalendarStateBase {
@@ -48,14 +48,14 @@ export interface RangeCalendarState extends CalendarStateBase {
48
48
  interface CalendarStateOptions<T extends DateValue> extends CalendarProps<T> {
49
49
  locale: string;
50
50
  createCalendar: (name: string) => Calendar;
51
- visibleDuration?: Duration;
51
+ visibleDuration?: DateDuration;
52
52
  selectionAlignment?: 'start' | 'center' | 'end';
53
53
  }
54
54
  export function useCalendarState<T extends DateValue>(props: CalendarStateOptions<T>): CalendarState;
55
55
  interface RangeCalendarStateOptions<T extends DateValue> extends RangeCalendarProps<T> {
56
56
  locale: string;
57
57
  createCalendar: (name: string) => Calendar;
58
- visibleDuration?: Duration;
58
+ visibleDuration?: DateDuration;
59
59
  }
60
60
  export function useRangeCalendarState<T extends DateValue>(props: RangeCalendarStateOptions<T>): RangeCalendarState;
61
61
 
@@ -1 +1 @@
1
- {"mappings":";;;AAgBA;IACE,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,WAAW,YAAY,CAAC,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,YAAY,CAAC;IAC1B,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAC1C,YAAY,IAAI,IAAI,CAAC;IACrB,gBAAgB,IAAI,IAAI,CAAC;IACzB,YAAY,IAAI,IAAI,CAAC;IACrB,gBAAgB,IAAI,IAAI,CAAC;IACzB,aAAa,IAAI,IAAI,CAAC;IACtB,iBAAiB,IAAI,IAAI,CAAC;IAC1B,cAAc,IAAI,IAAI,CAAC;IACvB,YAAY,IAAI,IAAI,CAAC;IACrB,gBAAgB,IAAI,IAAI,CAAC;IACzB,oBAAoB,IAAI,IAAI,CAAC;IAC7B,aAAa,IAAI,IAAI,CAAC;IACtB,iBAAiB,IAAI,IAAI,CAAC;IAC1B,iBAAiB,IAAI,IAAI,CAAC;IAC1B,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC;IACvC,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC;IACxC,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC;IAC3C,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC;IAC5C,6BAA6B,IAAI,OAAO,CAAC;IACzC,yBAAyB,IAAI,OAAO,CAAA;CACrC;AAED,8BAA+B,SAAQ,iBAAiB;IACtD,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAA;CACpC;AAED,mCAAoC,SAAQ,iBAAiB;IAC3D,KAAK,EAAE,WAAW,SAAS,CAAC,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,WAAW,SAAS,CAAC,GAAG,IAAI,CAAC;IAC7C,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;IACxC,UAAU,EAAE,YAAY,GAAG,IAAI,CAAC;IAChC,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC;IAC/C,gBAAgB,EAAE,WAAW,YAAY,CAAC,CAAC;IAC3C,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI,CAAA;CACvC;AEhCD,+BAA+B,CAAC,SAAS,SAAS,CAAE,SAAQ,cAAc,CAAC,CAAC;IAC1E,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,QAAQ,CAAC;IAC3C,eAAe,CAAC,EAAE,QAAQ,CAAC;IAC3B,kBAAkB,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAA;CAChD;AAED,iCAAiC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC,GAAG,aAAa,CA2KnG;ACzLD,oCAAoC,CAAC,SAAS,SAAS,CAAE,SAAQ,mBAAmB,CAAC,CAAC;IACpF,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,QAAQ,CAAC;IAC3C,eAAe,CAAC,EAAE,QAAQ,CAAA;CAC3B;AAED,sCAAsC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,0BAA0B,CAAC,CAAC,GAAG,kBAAkB,CAwElH","sources":["packages/@react-stately/calendar/src/packages/@react-stately/calendar/src/types.ts","packages/@react-stately/calendar/src/packages/@react-stately/calendar/src/utils.ts","packages/@react-stately/calendar/src/packages/@react-stately/calendar/src/useCalendarState.ts","packages/@react-stately/calendar/src/packages/@react-stately/calendar/src/useRangeCalendarState.ts","packages/@react-stately/calendar/src/packages/@react-stately/calendar/src/index.ts","packages/@react-stately/calendar/src/index.ts"],"sourcesContent":[null,null,null,null,null,"/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport * from './types';\nexport * from './useCalendarState';\nexport * from './useRangeCalendarState';\n"],"names":[],"version":3,"file":"types.d.ts.map"}
1
+ {"mappings":";;;AAgBA;IACE,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,WAAW,YAAY,CAAC,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,YAAY,CAAC;IAC1B,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAC1C,YAAY,IAAI,IAAI,CAAC;IACrB,gBAAgB,IAAI,IAAI,CAAC;IACzB,YAAY,IAAI,IAAI,CAAC;IACrB,gBAAgB,IAAI,IAAI,CAAC;IACzB,aAAa,IAAI,IAAI,CAAC;IACtB,iBAAiB,IAAI,IAAI,CAAC;IAC1B,cAAc,IAAI,IAAI,CAAC;IACvB,YAAY,IAAI,IAAI,CAAC;IACrB,gBAAgB,IAAI,IAAI,CAAC;IACzB,oBAAoB,IAAI,IAAI,CAAC;IAC7B,aAAa,IAAI,IAAI,CAAC;IACtB,iBAAiB,IAAI,IAAI,CAAC;IAC1B,iBAAiB,IAAI,IAAI,CAAC;IAC1B,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC;IACvC,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC;IACxC,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC;IAC3C,cAAc,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC;IAC5C,6BAA6B,IAAI,OAAO,CAAC;IACzC,yBAAyB,IAAI,OAAO,CAAA;CACrC;AAED,8BAA+B,SAAQ,iBAAiB;IACtD,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAA;CACpC;AAED,mCAAoC,SAAQ,iBAAiB;IAC3D,KAAK,EAAE,WAAW,SAAS,CAAC,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,WAAW,SAAS,CAAC,GAAG,IAAI,CAAC;IAC7C,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;IACxC,UAAU,EAAE,YAAY,GAAG,IAAI,CAAC;IAChC,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI,CAAC;IAC/C,gBAAgB,EAAE,WAAW,YAAY,CAAC,CAAC;IAC3C,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI,CAAA;CACvC;AEhCD,+BAA+B,CAAC,SAAS,SAAS,CAAE,SAAQ,cAAc,CAAC,CAAC;IAC1E,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,QAAQ,CAAC;IAC3C,eAAe,CAAC,EAAE,YAAY,CAAC;IAC/B,kBAAkB,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAA;CAChD;AAED,iCAAiC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC,GAAG,aAAa,CA2KnG;ACzLD,oCAAoC,CAAC,SAAS,SAAS,CAAE,SAAQ,mBAAmB,CAAC,CAAC;IACpF,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,QAAQ,CAAC;IAC3C,eAAe,CAAC,EAAE,YAAY,CAAA;CAC/B;AAED,sCAAsC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,0BAA0B,CAAC,CAAC,GAAG,kBAAkB,CAwElH","sources":["packages/@react-stately/calendar/src/packages/@react-stately/calendar/src/types.ts","packages/@react-stately/calendar/src/packages/@react-stately/calendar/src/utils.ts","packages/@react-stately/calendar/src/packages/@react-stately/calendar/src/useCalendarState.ts","packages/@react-stately/calendar/src/packages/@react-stately/calendar/src/useRangeCalendarState.ts","packages/@react-stately/calendar/src/packages/@react-stately/calendar/src/index.ts","packages/@react-stately/calendar/src/index.ts"],"sourcesContent":[null,null,null,null,null,"/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport * from './types';\nexport * from './useCalendarState';\nexport * from './useRangeCalendarState';\n"],"names":[],"version":3,"file":"types.d.ts.map"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-stately/calendar",
3
- "version": "3.0.0-nightly.1438+6fa5706ef",
3
+ "version": "3.0.0-nightly.1446+51ff50c6f",
4
4
  "description": "Spectrum UI components in React",
5
5
  "license": "Apache-2.0",
6
6
  "main": "dist/main.js",
@@ -18,12 +18,12 @@
18
18
  },
19
19
  "dependencies": {
20
20
  "@babel/runtime": "^7.6.2",
21
- "@internationalized/date": "3.0.0-nightly.3134+6fa5706ef",
22
- "@react-aria/i18n": "3.0.0-nightly.1438+6fa5706ef",
23
- "@react-stately/utils": "3.0.0-nightly.1438+6fa5706ef",
24
- "@react-types/calendar": "3.0.0-nightly.3134+6fa5706ef",
25
- "@react-types/datepicker": "3.0.0-nightly.3134+6fa5706ef",
26
- "@react-types/shared": "3.0.0-nightly.1438+6fa5706ef",
21
+ "@internationalized/date": "3.0.0-nightly.3142+51ff50c6f",
22
+ "@react-aria/i18n": "3.0.0-nightly.1446+51ff50c6f",
23
+ "@react-stately/utils": "3.0.0-nightly.1446+51ff50c6f",
24
+ "@react-types/calendar": "3.0.0-nightly.3142+51ff50c6f",
25
+ "@react-types/datepicker": "3.0.0-nightly.3142+51ff50c6f",
26
+ "@react-types/shared": "3.0.0-nightly.1446+51ff50c6f",
27
27
  "date-fns": "^1.30.1"
28
28
  },
29
29
  "peerDependencies": {
@@ -32,5 +32,5 @@
32
32
  "publishConfig": {
33
33
  "access": "public"
34
34
  },
35
- "gitHead": "6fa5706efb7bb7d8c322b8f756c451378ca962ce"
35
+ "gitHead": "51ff50c6fed6df76c22467622b17b2af2d9380e0"
36
36
  }
@@ -14,7 +14,7 @@ import {alignCenter, alignEnd, alignStart, constrainStart, constrainValue, isInv
14
14
  import {
15
15
  Calendar,
16
16
  CalendarDate,
17
- Duration,
17
+ DateDuration,
18
18
  GregorianCalendar,
19
19
  isSameDay,
20
20
  toCalendar,
@@ -30,7 +30,7 @@ import {useEffect, useMemo, useRef, useState} from 'react';
30
30
  interface CalendarStateOptions<T extends DateValue> extends CalendarProps<T> {
31
31
  locale: string,
32
32
  createCalendar: (name: string) => Calendar,
33
- visibleDuration?: Duration,
33
+ visibleDuration?: DateDuration,
34
34
  selectionAlignment?: 'start' | 'center' | 'end'
35
35
  }
36
36
 
@@ -190,13 +190,13 @@ export function useCalendarState<T extends DateValue>(props: CalendarStateOption
190
190
  return isInvalid(date, minValue, maxValue);
191
191
  },
192
192
  isSelected(date) {
193
- return calendarDateValue != null && isSameDay(date, calendarDateValue);
193
+ return calendarDateValue != null && isSameDay(date, calendarDateValue) && !this.isCellDisabled(date);
194
194
  },
195
195
  isCellFocused(date) {
196
196
  return isFocused && focusedDate && isSameDay(date, focusedDate);
197
197
  },
198
198
  isCellDisabled(date) {
199
- return props.isDisabled || date.compare(startDate) < 0 || date.compare(endDate) > 0 || isInvalid(date, minValue, maxValue);
199
+ return props.isDisabled || date.compare(startDate) < 0 || date.compare(endDate) > 0 || isInvalid(date, minValue, maxValue) || (props.isDateDisabled && props.isDateDisabled(date));
200
200
  },
201
201
  isPreviousVisibleRangeInvalid() {
202
202
  return isInvalid(startDate.subtract({days: 1}), minValue, maxValue);
@@ -11,7 +11,7 @@
11
11
  */
12
12
 
13
13
  import {alignCenter} from './utils';
14
- import {Calendar, CalendarDate, Duration, GregorianCalendar, toCalendar, toCalendarDate} from '@internationalized/date';
14
+ import {Calendar, CalendarDate, DateDuration, GregorianCalendar, toCalendar, toCalendarDate} from '@internationalized/date';
15
15
  import {DateRange, DateValue} from '@react-types/calendar';
16
16
  import {RangeCalendarProps} from '@react-types/calendar';
17
17
  import {RangeCalendarState} from './types';
@@ -23,7 +23,7 @@ import {useState} from 'react';
23
23
  interface RangeCalendarStateOptions<T extends DateValue> extends RangeCalendarProps<T> {
24
24
  locale: string,
25
25
  createCalendar: (name: string) => Calendar,
26
- visibleDuration?: Duration
26
+ visibleDuration?: DateDuration
27
27
  }
28
28
 
29
29
  export function useRangeCalendarState<T extends DateValue>(props: RangeCalendarStateOptions<T>): RangeCalendarState {
@@ -93,7 +93,7 @@ export function useRangeCalendarState<T extends DateValue>(props: RangeCalendarS
93
93
  }
94
94
  },
95
95
  isSelected(date) {
96
- return highlightedRange && date.compare(highlightedRange.start) >= 0 && date.compare(highlightedRange.end) <= 0;
96
+ return highlightedRange && date.compare(highlightedRange.start) >= 0 && date.compare(highlightedRange.end) <= 0 && !calendar.isCellDisabled(date);
97
97
  },
98
98
  isDragging,
99
99
  setDragging
package/src/utils.ts CHANGED
@@ -11,7 +11,7 @@
11
11
  */
12
12
  import {
13
13
  CalendarDate,
14
- Duration,
14
+ DateDuration,
15
15
  maxDate,
16
16
  minDate,
17
17
  startOfMonth,
@@ -26,8 +26,8 @@ export function isInvalid(date: CalendarDate, minValue: DateValue, maxValue: Dat
26
26
  (maxValue != null && date.compare(maxValue) > 0);
27
27
  }
28
28
 
29
- export function alignCenter(date: CalendarDate, duration: Duration, locale: string, minValue?: DateValue, maxValue?: DateValue) {
30
- let halfDuration: Duration = {};
29
+ export function alignCenter(date: CalendarDate, duration: DateDuration, locale: string, minValue?: DateValue, maxValue?: DateValue) {
30
+ let halfDuration: DateDuration = {};
31
31
  for (let key in duration) {
32
32
  halfDuration[key] = Math.floor(duration[key] / 2);
33
33
  if (halfDuration[key] > 0 && duration[key] % 2 === 0) {
@@ -39,7 +39,7 @@ export function alignCenter(date: CalendarDate, duration: Duration, locale: stri
39
39
  return constrainStart(date, aligned, duration, locale, minValue, maxValue);
40
40
  }
41
41
 
42
- export function alignStart(date: CalendarDate, duration: Duration, locale: string, minValue?: DateValue, maxValue?: DateValue) {
42
+ export function alignStart(date: CalendarDate, duration: DateDuration, locale: string, minValue?: DateValue, maxValue?: DateValue) {
43
43
  // align to the start of the largest unit
44
44
  let aligned = date;
45
45
  if (duration.years) {
@@ -53,7 +53,7 @@ export function alignStart(date: CalendarDate, duration: Duration, locale: strin
53
53
  return constrainStart(date, aligned, duration, locale, minValue, maxValue);
54
54
  }
55
55
 
56
- export function alignEnd(date: CalendarDate, duration: Duration, locale: string, minValue?: DateValue, maxValue?: DateValue) {
56
+ export function alignEnd(date: CalendarDate, duration: DateDuration, locale: string, minValue?: DateValue, maxValue?: DateValue) {
57
57
  let d = {...duration};
58
58
  // subtract 1 from the smallest unit
59
59
  if (duration.days) {
@@ -73,7 +73,7 @@ export function alignEnd(date: CalendarDate, duration: Duration, locale: string,
73
73
  export function constrainStart(
74
74
  date: CalendarDate,
75
75
  aligned: CalendarDate,
76
- duration: Duration,
76
+ duration: DateDuration,
77
77
  locale: string,
78
78
  minValue: DateValue,
79
79
  maxValue: DateValue) {