@cloudscape-design/components 3.0.882 → 3.0.883
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/internal/environment.js +1 -1
- package/internal/environment.json +1 -1
- package/internal/manifest.json +1 -1
- package/internal/utils/date-time/calendar.d.ts.map +1 -1
- package/internal/utils/date-time/calendar.js +1 -6
- package/internal/utils/date-time/calendar.js.map +1 -1
- package/package.json +1 -1
package/internal/environment.js
CHANGED
package/internal/manifest.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/calendar.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/calendar.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,CAKpD;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,qBAAa,aAAa;IACxB,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAER,EACV,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,SAAS,GACV,EAAE;QACD,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC;QAC7B,QAAQ,EAAE,IAAI,CAAC;QACf,WAAW,EAAE,QAAQ,CAAC;QACtB,SAAS,EAAE,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAChC;CAwEF;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,IAAI,EACV,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE;IAAE,WAAW,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAA;CAAE,YAQnF"}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
import addMonths from 'date-fns
|
|
4
|
-
import isAfter from 'date-fns/isAfter';
|
|
5
|
-
import isBefore from 'date-fns/isBefore';
|
|
6
|
-
import isSameDay from 'date-fns/isSameDay';
|
|
7
|
-
import isSameMonth from 'date-fns/isSameMonth';
|
|
8
|
-
import subMonths from 'date-fns/subMonths';
|
|
3
|
+
import { addMonths, isAfter, isBefore, isSameDay, isSameMonth, subMonths } from 'date-fns';
|
|
9
4
|
import { getCalendarMonth } from 'mnth';
|
|
10
5
|
// Returns a 3-by-4 matrix with dates corresponding to the initial date-time of each month of the year for a given date.
|
|
11
6
|
export function getCalendarYear(date) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/calendar.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport addMonths from 'date-fns/addMonths';\nimport isAfter from 'date-fns/isAfter';\nimport isBefore from 'date-fns/isBefore';\nimport isSameDay from 'date-fns/isSameDay';\nimport isSameMonth from 'date-fns/isSameMonth';\nimport subMonths from 'date-fns/subMonths';\nimport { getCalendarMonth } from 'mnth';\n\nimport { DayIndex } from '../locale';\n\n// Returns a 3-by-4 matrix with dates corresponding to the initial date-time of each month of the year for a given date.\nexport function getCalendarYear(date: Date): Date[][] {\n const year = date.getFullYear();\n return new Array(4)\n .fill(0)\n .map((_, i: number) => new Array(3).fill(0).map((_, j: number) => new Date(year, i * 3 + j)));\n}\n\ninterface CalendarWeek {\n days: CalendarDate[];\n testIndex?: number;\n}\n\ninterface CalendarDate {\n date: Date;\n isVisible: boolean;\n isSelected: boolean;\n isInRange: boolean;\n isSelectionTop: boolean;\n isSelectionBottom: boolean;\n isSelectionLeft: boolean;\n isSelectionRight: boolean;\n}\n\nexport class MonthCalendar {\n padDates: 'before' | 'after';\n weekdays: number[];\n weeks: CalendarWeek[];\n range: [Date, Date];\n\n constructor({\n padDates,\n baseDate,\n startOfWeek,\n selection,\n }: {\n padDates: 'before' | 'after';\n baseDate: Date;\n startOfWeek: DayIndex;\n selection: null | [Date, Date];\n }) {\n this.padDates = padDates;\n this.weeks = [];\n this.range = [baseDate, baseDate];\n\n const allCalendarDates = getCalendarMonthWithSixRows(baseDate, { startOfWeek, padDates });\n this.weekdays = allCalendarDates[0].map(date => date.getDay());\n\n const isDateVisible = (weekIndex: number, dayIndex: number) => {\n const week = allCalendarDates[weekIndex];\n const date = week?.[dayIndex];\n if (!date) {\n return false;\n }\n switch (padDates) {\n case 'before':\n return isSameMonth(date, baseDate) || isBefore(date, baseDate);\n case 'after':\n return isSameMonth(date, baseDate) || isAfter(date, baseDate);\n }\n };\n\n const isDateInRange = (weekIndex: number, dayIndex: number) => {\n const week = allCalendarDates[weekIndex];\n const date = week?.[dayIndex];\n return !!(date && selection && checkIsInRange(date, selection[0], selection[1]));\n };\n\n // The test index is only set for weeks that have at least one day that belongs to the current month.\n // It starts from the first such week and counts from 1.\n const getWeekTestIndex = (weekIndex: number): undefined | number => {\n const week = allCalendarDates[weekIndex];\n if (!week) {\n return undefined;\n }\n if (!isSameMonth(week[0], baseDate) && !isSameMonth(week[week.length - 1], baseDate)) {\n return undefined;\n }\n return (getWeekTestIndex(weekIndex - 1) ?? 0) + 1;\n };\n\n for (let weekIndex = 0; weekIndex < allCalendarDates.length; weekIndex++) {\n const daysOfWeek = allCalendarDates[weekIndex];\n const week: CalendarWeek = { days: [], testIndex: getWeekTestIndex(weekIndex) };\n\n for (let dayIndex = 0; dayIndex < daysOfWeek.length; dayIndex++) {\n const date = daysOfWeek[dayIndex];\n const isVisible = isDateVisible(weekIndex, dayIndex);\n const isSelected = !!(selection && (isSameDay(date, selection[0]) || isSameDay(date, selection[1])));\n const isInRange = isDateInRange(weekIndex, dayIndex);\n const isTop = isVisible && !isDateVisible(weekIndex - 1, dayIndex);\n const isBottom = isVisible && !isDateVisible(weekIndex + 1, dayIndex);\n const isLeft = isVisible && !isDateVisible(weekIndex, dayIndex - 1);\n const isRight = isVisible && !isDateVisible(weekIndex, dayIndex + 1);\n const isRangeTop = isInRange && !isDateInRange(weekIndex - 1, dayIndex);\n const isRangeBottom = isInRange && !isDateInRange(weekIndex + 1, dayIndex);\n const isRangeLeft = isInRange && !isDateInRange(weekIndex, dayIndex - 1);\n const isRangeRight = isInRange && !isDateInRange(weekIndex, dayIndex + 1);\n week.days.push({\n date,\n isVisible,\n isSelected,\n isInRange,\n isSelectionTop: isTop || isRangeTop,\n isSelectionBottom: isBottom || isRangeBottom,\n isSelectionLeft: isLeft || isRangeLeft,\n isSelectionRight: isRight || isRangeRight,\n });\n }\n this.weeks.push(week);\n }\n }\n}\n\nexport function getCalendarMonthWithSixRows(\n date: Date,\n { startOfWeek, padDates }: { startOfWeek: DayIndex; padDates: 'before' | 'after' }\n) {\n switch (padDates) {\n case 'before':\n return [...getPrevMonthRows(date, startOfWeek), ...getCurrentMonthRows(date, startOfWeek)].slice(-6);\n case 'after':\n return [...getCurrentMonthRows(date, startOfWeek), ...getNextMonthRows(date, startOfWeek)].slice(0, 6);\n }\n}\n\nfunction checkIsInRange(date: Date, dateOne: Date | null, dateTwo: Date | null) {\n if (!dateOne || !dateTwo || isSameDay(dateOne, dateTwo)) {\n return false;\n }\n\n const inRange =\n (isAfter(date, dateOne) && isBefore(date, dateTwo)) || (isAfter(date, dateTwo) && isBefore(date, dateOne));\n\n return inRange || isSameDay(date, dateOne) || isSameDay(date, dateTwo);\n}\n\nfunction getCurrentMonthRows(date: Date, firstDayOfWeek: DayIndex) {\n return getCalendarMonth(date, { firstDayOfWeek });\n}\n\nfunction getPrevMonthRows(date: Date, firstDayOfWeek: DayIndex) {\n const rows = getCalendarMonth(subMonths(date, 1), { firstDayOfWeek });\n const lastDay = rows[rows.length - 1][rows[rows.length - 1].length - 1];\n return !isSameMonth(date, lastDay) ? rows : rows.slice(0, -1);\n}\n\nfunction getNextMonthRows(date: Date, firstDayOfWeek: DayIndex) {\n const rows = getCalendarMonth(addMonths(date, 1), { firstDayOfWeek });\n const firstDay = rows[0][0];\n return !isSameMonth(date, firstDay) ? rows : rows.slice(1);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"calendar.js","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/calendar.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { addMonths, isAfter, isBefore, isSameDay, isSameMonth, subMonths } from 'date-fns';\nimport { getCalendarMonth } from 'mnth';\n\nimport { DayIndex } from '../locale';\n\n// Returns a 3-by-4 matrix with dates corresponding to the initial date-time of each month of the year for a given date.\nexport function getCalendarYear(date: Date): Date[][] {\n const year = date.getFullYear();\n return new Array(4)\n .fill(0)\n .map((_, i: number) => new Array(3).fill(0).map((_, j: number) => new Date(year, i * 3 + j)));\n}\n\ninterface CalendarWeek {\n days: CalendarDate[];\n testIndex?: number;\n}\n\ninterface CalendarDate {\n date: Date;\n isVisible: boolean;\n isSelected: boolean;\n isInRange: boolean;\n isSelectionTop: boolean;\n isSelectionBottom: boolean;\n isSelectionLeft: boolean;\n isSelectionRight: boolean;\n}\n\nexport class MonthCalendar {\n padDates: 'before' | 'after';\n weekdays: number[];\n weeks: CalendarWeek[];\n range: [Date, Date];\n\n constructor({\n padDates,\n baseDate,\n startOfWeek,\n selection,\n }: {\n padDates: 'before' | 'after';\n baseDate: Date;\n startOfWeek: DayIndex;\n selection: null | [Date, Date];\n }) {\n this.padDates = padDates;\n this.weeks = [];\n this.range = [baseDate, baseDate];\n\n const allCalendarDates = getCalendarMonthWithSixRows(baseDate, { startOfWeek, padDates });\n this.weekdays = allCalendarDates[0].map(date => date.getDay());\n\n const isDateVisible = (weekIndex: number, dayIndex: number) => {\n const week = allCalendarDates[weekIndex];\n const date = week?.[dayIndex];\n if (!date) {\n return false;\n }\n switch (padDates) {\n case 'before':\n return isSameMonth(date, baseDate) || isBefore(date, baseDate);\n case 'after':\n return isSameMonth(date, baseDate) || isAfter(date, baseDate);\n }\n };\n\n const isDateInRange = (weekIndex: number, dayIndex: number) => {\n const week = allCalendarDates[weekIndex];\n const date = week?.[dayIndex];\n return !!(date && selection && checkIsInRange(date, selection[0], selection[1]));\n };\n\n // The test index is only set for weeks that have at least one day that belongs to the current month.\n // It starts from the first such week and counts from 1.\n const getWeekTestIndex = (weekIndex: number): undefined | number => {\n const week = allCalendarDates[weekIndex];\n if (!week) {\n return undefined;\n }\n if (!isSameMonth(week[0], baseDate) && !isSameMonth(week[week.length - 1], baseDate)) {\n return undefined;\n }\n return (getWeekTestIndex(weekIndex - 1) ?? 0) + 1;\n };\n\n for (let weekIndex = 0; weekIndex < allCalendarDates.length; weekIndex++) {\n const daysOfWeek = allCalendarDates[weekIndex];\n const week: CalendarWeek = { days: [], testIndex: getWeekTestIndex(weekIndex) };\n\n for (let dayIndex = 0; dayIndex < daysOfWeek.length; dayIndex++) {\n const date = daysOfWeek[dayIndex];\n const isVisible = isDateVisible(weekIndex, dayIndex);\n const isSelected = !!(selection && (isSameDay(date, selection[0]) || isSameDay(date, selection[1])));\n const isInRange = isDateInRange(weekIndex, dayIndex);\n const isTop = isVisible && !isDateVisible(weekIndex - 1, dayIndex);\n const isBottom = isVisible && !isDateVisible(weekIndex + 1, dayIndex);\n const isLeft = isVisible && !isDateVisible(weekIndex, dayIndex - 1);\n const isRight = isVisible && !isDateVisible(weekIndex, dayIndex + 1);\n const isRangeTop = isInRange && !isDateInRange(weekIndex - 1, dayIndex);\n const isRangeBottom = isInRange && !isDateInRange(weekIndex + 1, dayIndex);\n const isRangeLeft = isInRange && !isDateInRange(weekIndex, dayIndex - 1);\n const isRangeRight = isInRange && !isDateInRange(weekIndex, dayIndex + 1);\n week.days.push({\n date,\n isVisible,\n isSelected,\n isInRange,\n isSelectionTop: isTop || isRangeTop,\n isSelectionBottom: isBottom || isRangeBottom,\n isSelectionLeft: isLeft || isRangeLeft,\n isSelectionRight: isRight || isRangeRight,\n });\n }\n this.weeks.push(week);\n }\n }\n}\n\nexport function getCalendarMonthWithSixRows(\n date: Date,\n { startOfWeek, padDates }: { startOfWeek: DayIndex; padDates: 'before' | 'after' }\n) {\n switch (padDates) {\n case 'before':\n return [...getPrevMonthRows(date, startOfWeek), ...getCurrentMonthRows(date, startOfWeek)].slice(-6);\n case 'after':\n return [...getCurrentMonthRows(date, startOfWeek), ...getNextMonthRows(date, startOfWeek)].slice(0, 6);\n }\n}\n\nfunction checkIsInRange(date: Date, dateOne: Date | null, dateTwo: Date | null) {\n if (!dateOne || !dateTwo || isSameDay(dateOne, dateTwo)) {\n return false;\n }\n\n const inRange =\n (isAfter(date, dateOne) && isBefore(date, dateTwo)) || (isAfter(date, dateTwo) && isBefore(date, dateOne));\n\n return inRange || isSameDay(date, dateOne) || isSameDay(date, dateTwo);\n}\n\nfunction getCurrentMonthRows(date: Date, firstDayOfWeek: DayIndex) {\n return getCalendarMonth(date, { firstDayOfWeek });\n}\n\nfunction getPrevMonthRows(date: Date, firstDayOfWeek: DayIndex) {\n const rows = getCalendarMonth(subMonths(date, 1), { firstDayOfWeek });\n const lastDay = rows[rows.length - 1][rows[rows.length - 1].length - 1];\n return !isSameMonth(date, lastDay) ? rows : rows.slice(0, -1);\n}\n\nfunction getNextMonthRows(date: Date, firstDayOfWeek: DayIndex) {\n const rows = getCalendarMonth(addMonths(date, 1), { firstDayOfWeek });\n const firstDay = rows[0][0];\n return !isSameMonth(date, firstDay) ? rows : rows.slice(1);\n}\n"]}
|
package/package.json
CHANGED