@mantine/dates 6.0.4 → 6.0.5

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.
Files changed (33) hide show
  1. package/cjs/components/DecadeLevelGroup/DecadeLevelGroup.js +10 -11
  2. package/cjs/components/DecadeLevelGroup/DecadeLevelGroup.js.map +1 -1
  3. package/cjs/components/Month/Month.js +1 -1
  4. package/cjs/components/Month/Month.js.map +1 -1
  5. package/cjs/components/Month/get-date-in-tab-order/get-date-in-tab-order.js +3 -2
  6. package/cjs/components/Month/get-date-in-tab-order/get-date-in-tab-order.js.map +1 -1
  7. package/cjs/components/MonthLevelGroup/MonthLevelGroup.js +4 -5
  8. package/cjs/components/MonthLevelGroup/MonthLevelGroup.js.map +1 -1
  9. package/cjs/components/YearLevelGroup/YearLevelGroup.js +10 -11
  10. package/cjs/components/YearLevelGroup/YearLevelGroup.js.map +1 -1
  11. package/cjs/utils/handle-control-key-down.js +137 -56
  12. package/cjs/utils/handle-control-key-down.js.map +1 -1
  13. package/esm/components/DecadeLevelGroup/DecadeLevelGroup.js +10 -11
  14. package/esm/components/DecadeLevelGroup/DecadeLevelGroup.js.map +1 -1
  15. package/esm/components/Month/Month.js +1 -1
  16. package/esm/components/Month/Month.js.map +1 -1
  17. package/esm/components/Month/get-date-in-tab-order/get-date-in-tab-order.js +3 -2
  18. package/esm/components/Month/get-date-in-tab-order/get-date-in-tab-order.js.map +1 -1
  19. package/esm/components/MonthLevelGroup/MonthLevelGroup.js +4 -5
  20. package/esm/components/MonthLevelGroup/MonthLevelGroup.js.map +1 -1
  21. package/esm/components/YearLevelGroup/YearLevelGroup.js +10 -11
  22. package/esm/components/YearLevelGroup/YearLevelGroup.js.map +1 -1
  23. package/esm/utils/handle-control-key-down.js +137 -56
  24. package/esm/utils/handle-control-key-down.js.map +1 -1
  25. package/lib/components/DecadeLevelGroup/DecadeLevelGroup.d.ts.map +1 -1
  26. package/lib/components/Month/Month.d.ts.map +1 -1
  27. package/lib/components/Month/get-date-in-tab-order/get-date-in-tab-order.d.ts +1 -1
  28. package/lib/components/Month/get-date-in-tab-order/get-date-in-tab-order.d.ts.map +1 -1
  29. package/lib/components/MonthLevelGroup/MonthLevelGroup.d.ts.map +1 -1
  30. package/lib/components/YearLevelGroup/YearLevelGroup.d.ts.map +1 -1
  31. package/lib/utils/handle-control-key-down.d.ts +5 -7
  32. package/lib/utils/handle-control-key-down.d.ts.map +1 -1
  33. package/package.json +4 -4
@@ -115,7 +115,7 @@ const DecadeLevelGroup = React.forwardRef((props, ref) => {
115
115
  variant,
116
116
  size
117
117
  });
118
- const controlsRefs = React.useRef([]);
118
+ const controlsRef = React.useRef([]);
119
119
  const decades = Array(numberOfColumns).fill(0).map((_, decadeIndex) => {
120
120
  const currentDecade = dayjs__default(decade).add(decadeIndex * 10, "years").toDate();
121
121
  return /* @__PURE__ */ React__default.createElement(DecadeLevel.DecadeLevel, {
@@ -130,21 +130,20 @@ const DecadeLevelGroup = React.forwardRef((props, ref) => {
130
130
  __onControlClick,
131
131
  __onControlMouseEnter,
132
132
  __onControlKeyDown: (event, payload) => handleControlKeyDown.handleControlKeyDown({
133
- index: decadeIndex,
133
+ levelIndex: decadeIndex,
134
+ rowIndex: payload.rowIndex,
135
+ cellIndex: payload.cellIndex,
134
136
  event,
135
- payload,
136
- controlsRef: controlsRefs,
137
- numberOfColumns,
138
- controlsPerRow: [3, 3, 3, 1]
137
+ controlsRef
139
138
  }),
140
139
  __getControlRef: (rowIndex, cellIndex, node) => {
141
- if (!Array.isArray(controlsRefs.current[decadeIndex])) {
142
- controlsRefs.current[decadeIndex] = [];
140
+ if (!Array.isArray(controlsRef.current[decadeIndex])) {
141
+ controlsRef.current[decadeIndex] = [];
143
142
  }
144
- if (!Array.isArray(controlsRefs.current[decadeIndex][rowIndex])) {
145
- controlsRefs.current[decadeIndex][rowIndex] = [];
143
+ if (!Array.isArray(controlsRef.current[decadeIndex][rowIndex])) {
144
+ controlsRef.current[decadeIndex][rowIndex] = [];
146
145
  }
147
- controlsRefs.current[decadeIndex][rowIndex][cellIndex] = node;
146
+ controlsRef.current[decadeIndex][rowIndex][cellIndex] = node;
148
147
  },
149
148
  levelControlAriaLabel: typeof levelControlAriaLabel === "function" ? levelControlAriaLabel(currentDecade) : levelControlAriaLabel,
150
149
  locale,
@@ -1 +1 @@
1
- {"version":3,"file":"DecadeLevelGroup.js","sources":["../../../src/components/DecadeLevelGroup/DecadeLevelGroup.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from 'react';\nimport { DefaultProps, Box, Selectors, useComponentDefaultProps } from '@mantine/core';\nimport dayjs from 'dayjs';\nimport { DecadeLevel, DecadeLevelStylesNames, DecadeLevelSettings } from '../DecadeLevel';\nimport { handleControlKeyDown } from '../../utils';\nimport useStyles from './DecadeLevelGroup.styles';\n\nexport type DecadeLevelGroupStylesNames = Selectors<typeof useStyles> | DecadeLevelStylesNames;\n\nexport interface DecadeLevelGroupProps\n extends DefaultProps<DecadeLevelGroupStylesNames>,\n Omit<\n DecadeLevelSettings,\n 'withPrevious' | 'withNext' | '__onControlKeyDown' | '__getControlRef'\n >,\n React.ComponentPropsWithoutRef<'div'> {\n variant?: string;\n __staticSelector?: string;\n\n /** Number of columns to render next to each other */\n numberOfColumns?: number;\n\n /** Decade that is currently displayed */\n decade: Date;\n\n /** Function that returns level control aria-label based on year date */\n levelControlAriaLabel?: ((decade: Date) => string) | string;\n}\n\nconst defaultProps: Partial<DecadeLevelGroupProps> = {\n numberOfColumns: 1,\n};\n\nexport const DecadeLevelGroup = forwardRef<HTMLDivElement, DecadeLevelGroupProps>((props, ref) => {\n const {\n // DecadeLevel settings\n decade,\n locale,\n minDate,\n maxDate,\n yearsListFormat,\n getYearControlProps,\n __onControlClick,\n __onControlMouseEnter,\n withCellSpacing,\n\n // CalendarHeader settings\n __preventFocus,\n nextIcon,\n previousIcon,\n nextLabel,\n previousLabel,\n onNext,\n onPrevious,\n nextDisabled,\n previousDisabled,\n\n // Other settings\n className,\n classNames,\n styles,\n unstyled,\n __staticSelector,\n __stopPropagation,\n numberOfColumns,\n levelControlAriaLabel,\n decadeLabelFormat,\n variant,\n size,\n ...others\n } = useComponentDefaultProps('DecadeLevelGroup', defaultProps, props);\n\n const { classes, cx } = useStyles(null, {\n name: ['DecadeLevelGroup', __staticSelector],\n styles,\n classNames,\n unstyled,\n variant,\n size,\n });\n\n const controlsRefs = useRef<HTMLButtonElement[][][]>([]);\n\n const decades = Array(numberOfColumns)\n .fill(0)\n .map((_, decadeIndex) => {\n const currentDecade = dayjs(decade)\n .add(decadeIndex * 10, 'years')\n .toDate();\n\n return (\n <DecadeLevel\n key={decadeIndex}\n variant={variant}\n size={size}\n yearsListFormat={yearsListFormat}\n decade={currentDecade}\n withNext={decadeIndex === numberOfColumns - 1}\n withPrevious={decadeIndex === 0}\n decadeLabelFormat={decadeLabelFormat}\n __onControlClick={__onControlClick}\n __onControlMouseEnter={__onControlMouseEnter}\n __onControlKeyDown={(event, payload) =>\n handleControlKeyDown({\n index: decadeIndex,\n event,\n payload,\n controlsRef: controlsRefs,\n numberOfColumns,\n controlsPerRow: [3, 3, 3, 1],\n })\n }\n __getControlRef={(rowIndex, cellIndex, node) => {\n if (!Array.isArray(controlsRefs.current[decadeIndex])) {\n controlsRefs.current[decadeIndex] = [];\n }\n\n if (!Array.isArray(controlsRefs.current[decadeIndex][rowIndex])) {\n controlsRefs.current[decadeIndex][rowIndex] = [];\n }\n\n controlsRefs.current[decadeIndex][rowIndex][cellIndex] = node;\n }}\n levelControlAriaLabel={\n typeof levelControlAriaLabel === 'function'\n ? levelControlAriaLabel(currentDecade)\n : levelControlAriaLabel\n }\n locale={locale}\n minDate={minDate}\n maxDate={maxDate}\n __preventFocus={__preventFocus}\n __stopPropagation={__stopPropagation}\n nextIcon={nextIcon}\n previousIcon={previousIcon}\n nextLabel={nextLabel}\n previousLabel={previousLabel}\n onNext={onNext}\n onPrevious={onPrevious}\n nextDisabled={nextDisabled}\n previousDisabled={previousDisabled}\n getYearControlProps={getYearControlProps}\n __staticSelector={__staticSelector || 'DecadeLevelGroup'}\n classNames={classNames}\n styles={styles}\n unstyled={unstyled}\n withCellSpacing={withCellSpacing}\n />\n );\n });\n\n return (\n <Box className={cx(classes.decadeLevelGroup, className)} ref={ref} {...others}>\n {decades}\n </Box>\n );\n});\n\nDecadeLevelGroup.displayName = '@mantine/dates/DecadeLevelGroup';\n"],"names":["forwardRef","useComponentDefaultProps","useStyles","useRef","dayjs","React","DecadeLevel","handleControlKeyDown","Box"],"mappings":"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"}
1
+ {"version":3,"file":"DecadeLevelGroup.js","sources":["../../../src/components/DecadeLevelGroup/DecadeLevelGroup.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from 'react';\nimport { DefaultProps, Box, Selectors, useComponentDefaultProps } from '@mantine/core';\nimport dayjs from 'dayjs';\nimport { DecadeLevel, DecadeLevelStylesNames, DecadeLevelSettings } from '../DecadeLevel';\nimport { handleControlKeyDown } from '../../utils';\nimport useStyles from './DecadeLevelGroup.styles';\n\nexport type DecadeLevelGroupStylesNames = Selectors<typeof useStyles> | DecadeLevelStylesNames;\n\nexport interface DecadeLevelGroupProps\n extends DefaultProps<DecadeLevelGroupStylesNames>,\n Omit<\n DecadeLevelSettings,\n 'withPrevious' | 'withNext' | '__onControlKeyDown' | '__getControlRef'\n >,\n React.ComponentPropsWithoutRef<'div'> {\n variant?: string;\n __staticSelector?: string;\n\n /** Number of columns to render next to each other */\n numberOfColumns?: number;\n\n /** Decade that is currently displayed */\n decade: Date;\n\n /** Function that returns level control aria-label based on year date */\n levelControlAriaLabel?: ((decade: Date) => string) | string;\n}\n\nconst defaultProps: Partial<DecadeLevelGroupProps> = {\n numberOfColumns: 1,\n};\n\nexport const DecadeLevelGroup = forwardRef<HTMLDivElement, DecadeLevelGroupProps>((props, ref) => {\n const {\n // DecadeLevel settings\n decade,\n locale,\n minDate,\n maxDate,\n yearsListFormat,\n getYearControlProps,\n __onControlClick,\n __onControlMouseEnter,\n withCellSpacing,\n\n // CalendarHeader settings\n __preventFocus,\n nextIcon,\n previousIcon,\n nextLabel,\n previousLabel,\n onNext,\n onPrevious,\n nextDisabled,\n previousDisabled,\n\n // Other settings\n className,\n classNames,\n styles,\n unstyled,\n __staticSelector,\n __stopPropagation,\n numberOfColumns,\n levelControlAriaLabel,\n decadeLabelFormat,\n variant,\n size,\n ...others\n } = useComponentDefaultProps('DecadeLevelGroup', defaultProps, props);\n\n const { classes, cx } = useStyles(null, {\n name: ['DecadeLevelGroup', __staticSelector],\n styles,\n classNames,\n unstyled,\n variant,\n size,\n });\n\n const controlsRef = useRef<HTMLButtonElement[][][]>([]);\n\n const decades = Array(numberOfColumns)\n .fill(0)\n .map((_, decadeIndex) => {\n const currentDecade = dayjs(decade)\n .add(decadeIndex * 10, 'years')\n .toDate();\n\n return (\n <DecadeLevel\n key={decadeIndex}\n variant={variant}\n size={size}\n yearsListFormat={yearsListFormat}\n decade={currentDecade}\n withNext={decadeIndex === numberOfColumns - 1}\n withPrevious={decadeIndex === 0}\n decadeLabelFormat={decadeLabelFormat}\n __onControlClick={__onControlClick}\n __onControlMouseEnter={__onControlMouseEnter}\n __onControlKeyDown={(event, payload) =>\n handleControlKeyDown({\n levelIndex: decadeIndex,\n rowIndex: payload.rowIndex,\n cellIndex: payload.cellIndex,\n event,\n controlsRef,\n })\n }\n __getControlRef={(rowIndex, cellIndex, node) => {\n if (!Array.isArray(controlsRef.current[decadeIndex])) {\n controlsRef.current[decadeIndex] = [];\n }\n\n if (!Array.isArray(controlsRef.current[decadeIndex][rowIndex])) {\n controlsRef.current[decadeIndex][rowIndex] = [];\n }\n\n controlsRef.current[decadeIndex][rowIndex][cellIndex] = node;\n }}\n levelControlAriaLabel={\n typeof levelControlAriaLabel === 'function'\n ? levelControlAriaLabel(currentDecade)\n : levelControlAriaLabel\n }\n locale={locale}\n minDate={minDate}\n maxDate={maxDate}\n __preventFocus={__preventFocus}\n __stopPropagation={__stopPropagation}\n nextIcon={nextIcon}\n previousIcon={previousIcon}\n nextLabel={nextLabel}\n previousLabel={previousLabel}\n onNext={onNext}\n onPrevious={onPrevious}\n nextDisabled={nextDisabled}\n previousDisabled={previousDisabled}\n getYearControlProps={getYearControlProps}\n __staticSelector={__staticSelector || 'DecadeLevelGroup'}\n classNames={classNames}\n styles={styles}\n unstyled={unstyled}\n withCellSpacing={withCellSpacing}\n />\n );\n });\n\n return (\n <Box className={cx(classes.decadeLevelGroup, className)} ref={ref} {...others}>\n {decades}\n </Box>\n );\n});\n\nDecadeLevelGroup.displayName = '@mantine/dates/DecadeLevelGroup';\n"],"names":["forwardRef","useComponentDefaultProps","useStyles","useRef","dayjs","React","DecadeLevel","handleControlKeyDown","Box"],"mappings":";;;;;;;;;;;;;;;;AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,mBAAmB;AACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF,IAAI,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK;AACrC,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;AAClB,EAAE,KAAK,IAAI,IAAI,IAAI,MAAM;AACzB,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AACpE,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAClC,EAAE,IAAI,MAAM,IAAI,IAAI,IAAI,mBAAmB;AAC3C,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE;AAClD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AACtE,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AACpC,KAAK;AACL,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAOF,MAAM,YAAY,GAAG;AACrB,EAAE,eAAe,EAAE,CAAC;AACpB,CAAC,CAAC;AACU,MAAC,gBAAgB,GAAGA,gBAAU,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK;AAC3D,EAAE,MAAM,EAAE,GAAGC,6BAAwB,CAAC,kBAAkB,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE;AAChF,IAAI,MAAM;AACV,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,eAAe;AACnB,IAAI,mBAAmB;AACvB,IAAI,gBAAgB;AACpB,IAAI,qBAAqB;AACzB,IAAI,eAAe;AACnB,IAAI,cAAc;AAClB,IAAI,QAAQ;AACZ,IAAI,YAAY;AAChB,IAAI,SAAS;AACb,IAAI,aAAa;AACjB,IAAI,MAAM;AACV,IAAI,UAAU;AACd,IAAI,YAAY;AAChB,IAAI,gBAAgB;AACpB,IAAI,SAAS;AACb,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,QAAQ;AACZ,IAAI,gBAAgB;AACpB,IAAI,iBAAiB;AACrB,IAAI,eAAe;AACnB,IAAI,qBAAqB;AACzB,IAAI,iBAAiB;AACrB,IAAI,OAAO;AACX,IAAI,IAAI;AACR,GAAG,GAAG,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE;AACjC,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,SAAS;AACb,IAAI,SAAS;AACb,IAAI,iBAAiB;AACrB,IAAI,qBAAqB;AACzB,IAAI,kBAAkB;AACtB,IAAI,uBAAuB;AAC3B,IAAI,iBAAiB;AACrB,IAAI,gBAAgB;AACpB,IAAI,UAAU;AACd,IAAI,cAAc;AAClB,IAAI,WAAW;AACf,IAAI,eAAe;AACnB,IAAI,QAAQ;AACZ,IAAI,YAAY;AAChB,IAAI,cAAc;AAClB,IAAI,kBAAkB;AACtB,IAAI,WAAW;AACf,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,IAAI,UAAU;AACd,IAAI,kBAAkB;AACtB,IAAI,mBAAmB;AACvB,IAAI,iBAAiB;AACrB,IAAI,uBAAuB;AAC3B,IAAI,mBAAmB;AACvB,IAAI,SAAS;AACb,IAAI,MAAM;AACV,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,GAAGC,kCAAS,CAAC,IAAI,EAAE;AAC1C,IAAI,IAAI,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;AAChD,IAAI,MAAM;AACV,IAAI,UAAU;AACd,IAAI,QAAQ;AACZ,IAAI,OAAO;AACX,IAAI,IAAI;AACR,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,WAAW,GAAGC,YAAM,CAAC,EAAE,CAAC,CAAC;AACjC,EAAE,MAAM,OAAO,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,WAAW,KAAK;AACzE,IAAI,MAAM,aAAa,GAAGC,cAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,WAAW,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;AAChF,IAAI,uBAAuBC,cAAK,CAAC,aAAa,CAACC,uBAAW,EAAE;AAC5D,MAAM,GAAG,EAAE,WAAW;AACtB,MAAM,OAAO;AACb,MAAM,IAAI;AACV,MAAM,eAAe;AACrB,MAAM,MAAM,EAAE,aAAa;AAC3B,MAAM,QAAQ,EAAE,WAAW,KAAK,eAAe,GAAG,CAAC;AACnD,MAAM,YAAY,EAAE,WAAW,KAAK,CAAC;AACrC,MAAM,iBAAiB;AACvB,MAAM,gBAAgB;AACtB,MAAM,qBAAqB;AAC3B,MAAM,kBAAkB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAKC,yCAAoB,CAAC;AACnE,QAAQ,UAAU,EAAE,WAAW;AAC/B,QAAQ,QAAQ,EAAE,OAAO,CAAC,QAAQ;AAClC,QAAQ,SAAS,EAAE,OAAO,CAAC,SAAS;AACpC,QAAQ,KAAK;AACb,QAAQ,WAAW;AACnB,OAAO,CAAC;AACR,MAAM,eAAe,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,KAAK;AACtD,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE;AAC9D,UAAU,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;AAChD,SAAS;AACT,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE;AACxE,UAAU,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;AAC1D,SAAS;AACT,QAAQ,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;AACrE,OAAO;AACP,MAAM,qBAAqB,EAAE,OAAO,qBAAqB,KAAK,UAAU,GAAG,qBAAqB,CAAC,aAAa,CAAC,GAAG,qBAAqB;AACvI,MAAM,MAAM;AACZ,MAAM,OAAO;AACb,MAAM,OAAO;AACb,MAAM,cAAc;AACpB,MAAM,iBAAiB;AACvB,MAAM,QAAQ;AACd,MAAM,YAAY;AAClB,MAAM,SAAS;AACf,MAAM,aAAa;AACnB,MAAM,MAAM;AACZ,MAAM,UAAU;AAChB,MAAM,YAAY;AAClB,MAAM,gBAAgB;AACtB,MAAM,mBAAmB;AACzB,MAAM,gBAAgB,EAAE,gBAAgB,IAAI,kBAAkB;AAC9D,MAAM,UAAU;AAChB,MAAM,MAAM;AACZ,MAAM,QAAQ;AACd,MAAM,eAAe;AACrB,KAAK,CAAC,CAAC;AACP,GAAG,CAAC,CAAC;AACL,EAAE,uBAAuBF,cAAK,CAAC,aAAa,CAACG,QAAG,EAAE,cAAc,CAAC;AACjE,IAAI,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,CAAC;AACtD,IAAI,GAAG;AACP,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;AACvB,CAAC,EAAE;AACH,gBAAgB,CAAC,WAAW,GAAG,iCAAiC;;;;"}
@@ -133,7 +133,7 @@ const Month = React.forwardRef((props, ref) => {
133
133
  size
134
134
  };
135
135
  const dates = getMonthDays.getMonthDays(month, ctx.getFirstDayOfWeek(firstDayOfWeek));
136
- const dateInTabOrder = getDateInTabOrder.getDateInTabOrder(dates, minDate, maxDate, getDayProps, excludeDate);
136
+ const dateInTabOrder = getDateInTabOrder.getDateInTabOrder(dates, minDate, maxDate, getDayProps, excludeDate, hideOutsideDates, month);
137
137
  const rows = dates.map((row, rowIndex) => {
138
138
  const cells = row.map((date, cellIndex) => {
139
139
  const outside = !isSameMonth.isSameMonth(date, month);
@@ -1 +1 @@
1
- {"version":3,"file":"Month.js","sources":["../../../src/components/Month/Month.tsx"],"sourcesContent":["/* eslint-disable react/no-unused-prop-types */\nimport dayjs from 'dayjs';\nimport React, { forwardRef } from 'react';\nimport { DefaultProps, Selectors, Box, useComponentDefaultProps, MantineSize } from '@mantine/core';\nimport { useDatesContext } from '../DatesProvider';\nimport { WeekdaysRow, WeekdaysRowStylesNames } from '../WeekdaysRow';\nimport { Day, DayStylesNames, DayProps } from '../Day';\nimport { ControlKeydownPayload, DayOfWeek } from '../../types';\nimport { getMonthDays } from './get-month-days/get-month-days';\nimport { isSameMonth } from './is-same-month/is-same-month';\nimport { isBeforeMaxDate } from './is-before-max-date/is-before-max-date';\nimport { isAfterMinDate } from './is-after-min-date/is-after-min-date';\nimport useStyles from './Month.styles';\nimport { getDateInTabOrder } from './get-date-in-tab-order/get-date-in-tab-order';\n\nexport type MonthStylesNames =\n | Selectors<typeof useStyles>\n | WeekdaysRowStylesNames\n | DayStylesNames;\n\nexport interface MonthSettings {\n /** Determines whether propagation for Escape key should be stopped */\n __stopPropagation?: boolean;\n\n /** Prevents focus shift when buttons are clicked */\n __preventFocus?: boolean;\n\n /** Called when day is clicked with click event and date */\n __onDayClick?(event: React.MouseEvent<HTMLButtonElement>, date: Date): void;\n\n /** Called when mouse enters day */\n __onDayMouseEnter?(event: React.MouseEvent<HTMLButtonElement>, date: Date): void;\n\n /** Called when any keydown event is registered on day, used for arrows navigation */\n __onDayKeyDown?(\n event: React.KeyboardEvent<HTMLButtonElement>,\n payload: ControlKeydownPayload\n ): void;\n\n /** Assigns ref of every day based on its position in the table, used for arrows navigation */\n __getDayRef?(rowIndex: number, cellIndex: number, node: HTMLButtonElement): void;\n\n /** dayjs locale, defaults to value defined in DatesProvider */\n locale?: string;\n\n /** number 0-6, 0 – Sunday, 6 – Saturday, defaults to 1 – Monday */\n firstDayOfWeek?: DayOfWeek;\n\n /** dayjs format for weekdays names, defaults to \"dd\" */\n weekdayFormat?: string;\n\n /** Indices of weekend days, 0-6, where 0 is Sunday and 6 is Saturday, defaults to value defined in DatesProvider */\n weekendDays?: DayOfWeek[];\n\n /** Adds props to Day component based on date */\n getDayProps?(date: Date): Partial<DayProps>;\n\n /** Callback function to determine whether the day should be disabled */\n excludeDate?(date: Date): boolean;\n\n /** Minimum possible date */\n minDate?: Date;\n\n /** Maximum possible date */\n maxDate?: Date;\n\n /** Controls day value rendering */\n renderDay?(date: Date): React.ReactNode;\n\n /** Determines whether outside dates should be hidden, defaults to false */\n hideOutsideDates?: boolean;\n\n /** Determines whether weekdays row should be hidden, defaults to false */\n hideWeekdays?: boolean;\n\n /** Assigns aria-label to days based on date */\n getDayAriaLabel?(date: Date): string;\n\n /** Controls size */\n size?: MantineSize;\n\n /** Determines whether controls should be separated by spacing, true by default */\n withCellSpacing?: boolean;\n}\n\nexport interface MonthProps\n extends DefaultProps<MonthStylesNames>,\n MonthSettings,\n React.ComponentPropsWithoutRef<'table'> {\n variant?: string;\n __staticSelector?: string;\n\n /** Month to display */\n month: Date;\n\n /** Determines whether days should be static, static days can be used to display month if it is not expected that user will interact with the component in any way */\n static?: boolean;\n}\n\nconst defaultProps: Partial<MonthProps> = {\n size: 'sm',\n withCellSpacing: true,\n};\n\nexport const Month = forwardRef<HTMLTableElement, MonthProps>((props, ref) => {\n const {\n className,\n classNames,\n styles,\n unstyled,\n __staticSelector,\n locale,\n firstDayOfWeek,\n weekdayFormat,\n month,\n weekendDays,\n getDayProps,\n excludeDate,\n minDate,\n maxDate,\n renderDay,\n hideOutsideDates,\n hideWeekdays,\n getDayAriaLabel,\n static: isStatic,\n __getDayRef,\n __onDayKeyDown,\n __onDayClick,\n __onDayMouseEnter,\n __preventFocus,\n __stopPropagation,\n withCellSpacing,\n size,\n variant,\n ...others\n } = useComponentDefaultProps('Month', defaultProps, props);\n\n const ctx = useDatesContext();\n\n const { classes, cx } = useStyles(null, {\n name: ['Month', __staticSelector],\n classNames,\n styles,\n unstyled,\n variant,\n size,\n });\n\n const stylesApiProps = {\n __staticSelector: __staticSelector || 'Month',\n classNames,\n styles,\n unstyled,\n variant,\n size,\n };\n\n const dates = getMonthDays(month, ctx.getFirstDayOfWeek(firstDayOfWeek));\n\n const dateInTabOrder = getDateInTabOrder(dates, minDate, maxDate, getDayProps, excludeDate);\n\n const rows = dates.map((row, rowIndex) => {\n const cells = row.map((date, cellIndex) => {\n const outside = !isSameMonth(date, month);\n const ariaLabel =\n getDayAriaLabel?.(date) ||\n dayjs(date)\n .locale(locale || ctx.locale)\n .format('D MMMM YYYY');\n const dayProps = getDayProps?.(date);\n const isDateInTabOrder = dayjs(date).isSame(dateInTabOrder, 'date');\n\n return (\n <td\n key={date.toString()}\n className={classes.monthCell}\n data-with-spacing={withCellSpacing || undefined}\n >\n <Day\n {...stylesApiProps}\n data-mantine-stop-propagation={__stopPropagation || undefined}\n renderDay={renderDay}\n date={date}\n weekend={ctx.getWeekendDays(weekendDays).includes(date.getDay() as DayOfWeek)}\n outside={outside}\n hidden={hideOutsideDates ? outside : false}\n aria-label={ariaLabel}\n static={isStatic}\n disabled={\n excludeDate?.(date) ||\n !isBeforeMaxDate(date, maxDate) ||\n !isAfterMinDate(date, minDate)\n }\n ref={(node) => __getDayRef?.(rowIndex, cellIndex, node)}\n {...dayProps}\n onKeyDown={(event) => {\n dayProps?.onKeyDown?.(event);\n __onDayKeyDown?.(event, { rowIndex, cellIndex, date });\n }}\n onMouseEnter={(event) => {\n dayProps?.onMouseEnter?.(event);\n __onDayMouseEnter?.(event, date);\n }}\n onClick={(event) => {\n dayProps?.onClick?.(event);\n __onDayClick?.(event, date);\n }}\n onMouseDown={(event) => {\n dayProps?.onMouseDown?.(event);\n __preventFocus && event.preventDefault();\n }}\n tabIndex={__preventFocus || !isDateInTabOrder ? -1 : 0}\n />\n </td>\n );\n });\n\n return (\n <tr key={rowIndex} className={classes.monthRow}>\n {cells}\n </tr>\n );\n });\n\n return (\n <Box component=\"table\" className={cx(classes.month, className)} ref={ref} {...others}>\n {!hideWeekdays && (\n <thead className={classes.monthThead}>\n <WeekdaysRow\n {...stylesApiProps}\n locale={locale}\n firstDayOfWeek={firstDayOfWeek}\n weekdayFormat={weekdayFormat}\n />\n </thead>\n )}\n <tbody className={classes.monthTbody}>{rows}</tbody>\n </Box>\n );\n});\n\nMonth.displayName = '@mantine/dates/Month';\n"],"names":["forwardRef","useComponentDefaultProps","useDatesContext","useStyles","getMonthDays","getDateInTabOrder","isSameMonth","dayjs","React","Day","isBeforeMaxDate","isAfterMinDate","Box","WeekdaysRow"],"mappings":"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"}
1
+ {"version":3,"file":"Month.js","sources":["../../../src/components/Month/Month.tsx"],"sourcesContent":["/* eslint-disable react/no-unused-prop-types */\nimport dayjs from 'dayjs';\nimport React, { forwardRef } from 'react';\nimport { DefaultProps, Selectors, Box, useComponentDefaultProps, MantineSize } from '@mantine/core';\nimport { useDatesContext } from '../DatesProvider';\nimport { WeekdaysRow, WeekdaysRowStylesNames } from '../WeekdaysRow';\nimport { Day, DayStylesNames, DayProps } from '../Day';\nimport { ControlKeydownPayload, DayOfWeek } from '../../types';\nimport { getMonthDays } from './get-month-days/get-month-days';\nimport { isSameMonth } from './is-same-month/is-same-month';\nimport { isBeforeMaxDate } from './is-before-max-date/is-before-max-date';\nimport { isAfterMinDate } from './is-after-min-date/is-after-min-date';\nimport useStyles from './Month.styles';\nimport { getDateInTabOrder } from './get-date-in-tab-order/get-date-in-tab-order';\n\nexport type MonthStylesNames =\n | Selectors<typeof useStyles>\n | WeekdaysRowStylesNames\n | DayStylesNames;\n\nexport interface MonthSettings {\n /** Determines whether propagation for Escape key should be stopped */\n __stopPropagation?: boolean;\n\n /** Prevents focus shift when buttons are clicked */\n __preventFocus?: boolean;\n\n /** Called when day is clicked with click event and date */\n __onDayClick?(event: React.MouseEvent<HTMLButtonElement>, date: Date): void;\n\n /** Called when mouse enters day */\n __onDayMouseEnter?(event: React.MouseEvent<HTMLButtonElement>, date: Date): void;\n\n /** Called when any keydown event is registered on day, used for arrows navigation */\n __onDayKeyDown?(\n event: React.KeyboardEvent<HTMLButtonElement>,\n payload: ControlKeydownPayload\n ): void;\n\n /** Assigns ref of every day based on its position in the table, used for arrows navigation */\n __getDayRef?(rowIndex: number, cellIndex: number, node: HTMLButtonElement): void;\n\n /** dayjs locale, defaults to value defined in DatesProvider */\n locale?: string;\n\n /** number 0-6, 0 – Sunday, 6 – Saturday, defaults to 1 – Monday */\n firstDayOfWeek?: DayOfWeek;\n\n /** dayjs format for weekdays names, defaults to \"dd\" */\n weekdayFormat?: string;\n\n /** Indices of weekend days, 0-6, where 0 is Sunday and 6 is Saturday, defaults to value defined in DatesProvider */\n weekendDays?: DayOfWeek[];\n\n /** Adds props to Day component based on date */\n getDayProps?(date: Date): Partial<DayProps>;\n\n /** Callback function to determine whether the day should be disabled */\n excludeDate?(date: Date): boolean;\n\n /** Minimum possible date */\n minDate?: Date;\n\n /** Maximum possible date */\n maxDate?: Date;\n\n /** Controls day value rendering */\n renderDay?(date: Date): React.ReactNode;\n\n /** Determines whether outside dates should be hidden, defaults to false */\n hideOutsideDates?: boolean;\n\n /** Determines whether weekdays row should be hidden, defaults to false */\n hideWeekdays?: boolean;\n\n /** Assigns aria-label to days based on date */\n getDayAriaLabel?(date: Date): string;\n\n /** Controls size */\n size?: MantineSize;\n\n /** Determines whether controls should be separated by spacing, true by default */\n withCellSpacing?: boolean;\n}\n\nexport interface MonthProps\n extends DefaultProps<MonthStylesNames>,\n MonthSettings,\n React.ComponentPropsWithoutRef<'table'> {\n variant?: string;\n __staticSelector?: string;\n\n /** Month to display */\n month: Date;\n\n /** Determines whether days should be static, static days can be used to display month if it is not expected that user will interact with the component in any way */\n static?: boolean;\n}\n\nconst defaultProps: Partial<MonthProps> = {\n size: 'sm',\n withCellSpacing: true,\n};\n\nexport const Month = forwardRef<HTMLTableElement, MonthProps>((props, ref) => {\n const {\n className,\n classNames,\n styles,\n unstyled,\n __staticSelector,\n locale,\n firstDayOfWeek,\n weekdayFormat,\n month,\n weekendDays,\n getDayProps,\n excludeDate,\n minDate,\n maxDate,\n renderDay,\n hideOutsideDates,\n hideWeekdays,\n getDayAriaLabel,\n static: isStatic,\n __getDayRef,\n __onDayKeyDown,\n __onDayClick,\n __onDayMouseEnter,\n __preventFocus,\n __stopPropagation,\n withCellSpacing,\n size,\n variant,\n ...others\n } = useComponentDefaultProps('Month', defaultProps, props);\n\n const ctx = useDatesContext();\n\n const { classes, cx } = useStyles(null, {\n name: ['Month', __staticSelector],\n classNames,\n styles,\n unstyled,\n variant,\n size,\n });\n\n const stylesApiProps = {\n __staticSelector: __staticSelector || 'Month',\n classNames,\n styles,\n unstyled,\n variant,\n size,\n };\n\n const dates = getMonthDays(month, ctx.getFirstDayOfWeek(firstDayOfWeek));\n\n const dateInTabOrder = getDateInTabOrder(\n dates,\n minDate,\n maxDate,\n getDayProps,\n excludeDate,\n hideOutsideDates,\n month\n );\n\n const rows = dates.map((row, rowIndex) => {\n const cells = row.map((date, cellIndex) => {\n const outside = !isSameMonth(date, month);\n const ariaLabel =\n getDayAriaLabel?.(date) ||\n dayjs(date)\n .locale(locale || ctx.locale)\n .format('D MMMM YYYY');\n const dayProps = getDayProps?.(date);\n const isDateInTabOrder = dayjs(date).isSame(dateInTabOrder, 'date');\n\n return (\n <td\n key={date.toString()}\n className={classes.monthCell}\n data-with-spacing={withCellSpacing || undefined}\n >\n <Day\n {...stylesApiProps}\n data-mantine-stop-propagation={__stopPropagation || undefined}\n renderDay={renderDay}\n date={date}\n weekend={ctx.getWeekendDays(weekendDays).includes(date.getDay() as DayOfWeek)}\n outside={outside}\n hidden={hideOutsideDates ? outside : false}\n aria-label={ariaLabel}\n static={isStatic}\n disabled={\n excludeDate?.(date) ||\n !isBeforeMaxDate(date, maxDate) ||\n !isAfterMinDate(date, minDate)\n }\n ref={(node) => __getDayRef?.(rowIndex, cellIndex, node)}\n {...dayProps}\n onKeyDown={(event) => {\n dayProps?.onKeyDown?.(event);\n __onDayKeyDown?.(event, { rowIndex, cellIndex, date });\n }}\n onMouseEnter={(event) => {\n dayProps?.onMouseEnter?.(event);\n __onDayMouseEnter?.(event, date);\n }}\n onClick={(event) => {\n dayProps?.onClick?.(event);\n __onDayClick?.(event, date);\n }}\n onMouseDown={(event) => {\n dayProps?.onMouseDown?.(event);\n __preventFocus && event.preventDefault();\n }}\n tabIndex={__preventFocus || !isDateInTabOrder ? -1 : 0}\n />\n </td>\n );\n });\n\n return (\n <tr key={rowIndex} className={classes.monthRow}>\n {cells}\n </tr>\n );\n });\n\n return (\n <Box component=\"table\" className={cx(classes.month, className)} ref={ref} {...others}>\n {!hideWeekdays && (\n <thead className={classes.monthThead}>\n <WeekdaysRow\n {...stylesApiProps}\n locale={locale}\n firstDayOfWeek={firstDayOfWeek}\n weekdayFormat={weekdayFormat}\n />\n </thead>\n )}\n <tbody className={classes.monthTbody}>{rows}</tbody>\n </Box>\n );\n});\n\nMonth.displayName = '@mantine/dates/Month';\n"],"names":["forwardRef","useComponentDefaultProps","useDatesContext","useStyles","getMonthDays","getDateInTabOrder","isSameMonth","dayjs","React","Day","isBeforeMaxDate","isAfterMinDate","Box","WeekdaysRow"],"mappings":"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"}
@@ -5,15 +5,16 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var dayjs = require('dayjs');
6
6
  var isAfterMinDate = require('../is-after-min-date/is-after-min-date.js');
7
7
  var isBeforeMaxDate = require('../is-before-max-date/is-before-max-date.js');
8
+ var isSameMonth = require('../is-same-month/is-same-month.js');
8
9
 
9
10
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e['default'] : e; }
10
11
 
11
12
  var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
12
13
 
13
- function getDateInTabOrder(dates, minDate, maxDate, getDateControlProps, excludeDate) {
14
+ function getDateInTabOrder(dates, minDate, maxDate, getDateControlProps, excludeDate, hideOutsideDates, month) {
14
15
  const enabledDates = dates.flat().filter((date) => {
15
16
  var _a;
16
- return isBeforeMaxDate.isBeforeMaxDate(date, maxDate) && isAfterMinDate.isAfterMinDate(date, minDate) && !(excludeDate == null ? void 0 : excludeDate(date)) && !((_a = getDateControlProps == null ? void 0 : getDateControlProps(date)) == null ? void 0 : _a.disabled);
17
+ return isBeforeMaxDate.isBeforeMaxDate(date, maxDate) && isAfterMinDate.isAfterMinDate(date, minDate) && !(excludeDate == null ? void 0 : excludeDate(date)) && !((_a = getDateControlProps == null ? void 0 : getDateControlProps(date)) == null ? void 0 : _a.disabled) && (!hideOutsideDates || isSameMonth.isSameMonth(date, month));
17
18
  });
18
19
  const selectedDate = enabledDates.find((date) => {
19
20
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"get-date-in-tab-order.js","sources":["../../../../src/components/Month/get-date-in-tab-order/get-date-in-tab-order.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport { DayProps } from '../../Day';\nimport { isAfterMinDate } from '../is-after-min-date/is-after-min-date';\nimport { isBeforeMaxDate } from '../is-before-max-date/is-before-max-date';\n\nexport function getDateInTabOrder(\n dates: Date[][],\n minDate: Date,\n maxDate: Date,\n getDateControlProps: (date: Date) => Partial<DayProps>,\n excludeDate: (date: Date) => boolean\n) {\n const enabledDates = dates\n .flat()\n .filter(\n (date) =>\n isBeforeMaxDate(date, maxDate) &&\n isAfterMinDate(date, minDate) &&\n !excludeDate?.(date) &&\n !getDateControlProps?.(date)?.disabled\n );\n\n const selectedDate = enabledDates.find((date) => getDateControlProps?.(date)?.selected);\n\n if (selectedDate) {\n return selectedDate;\n }\n\n const currentDate = enabledDates.find((date) => dayjs().isSame(date, 'date'));\n\n if (currentDate) {\n return currentDate;\n }\n\n return enabledDates[0];\n}\n"],"names":["isBeforeMaxDate","isAfterMinDate","dayjs"],"mappings":";;;;;;;;;;;;AAGO,SAAS,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE;AAC7F,EAAE,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK;AACrD,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,OAAOA,+BAAe,CAAC,IAAI,EAAE,OAAO,CAAC,IAAIC,6BAAc,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,mBAAmB,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;AAC/O,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AACnD,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,GAAG,mBAAmB,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC;AAClH,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,YAAY,EAAE;AACpB,IAAI,OAAO,YAAY,CAAC;AACxB,GAAG;AACH,EAAE,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,KAAKC,cAAK,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AAChF,EAAE,IAAI,WAAW,EAAE;AACnB,IAAI,OAAO,WAAW,CAAC;AACvB,GAAG;AACH,EAAE,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;AACzB;;;;"}
1
+ {"version":3,"file":"get-date-in-tab-order.js","sources":["../../../../src/components/Month/get-date-in-tab-order/get-date-in-tab-order.ts"],"sourcesContent":["import dayjs from 'dayjs';\nimport { DayProps } from '../../Day';\nimport { isAfterMinDate } from '../is-after-min-date/is-after-min-date';\nimport { isBeforeMaxDate } from '../is-before-max-date/is-before-max-date';\nimport { isSameMonth } from '../is-same-month/is-same-month';\n\nexport function getDateInTabOrder(\n dates: Date[][],\n minDate: Date,\n maxDate: Date,\n getDateControlProps: (date: Date) => Partial<DayProps>,\n excludeDate: (date: Date) => boolean,\n hideOutsideDates: boolean,\n month: Date\n) {\n const enabledDates = dates\n .flat()\n .filter(\n (date) =>\n isBeforeMaxDate(date, maxDate) &&\n isAfterMinDate(date, minDate) &&\n !excludeDate?.(date) &&\n !getDateControlProps?.(date)?.disabled &&\n (!hideOutsideDates || isSameMonth(date, month))\n );\n\n const selectedDate = enabledDates.find((date) => getDateControlProps?.(date)?.selected);\n\n if (selectedDate) {\n return selectedDate;\n }\n\n const currentDate = enabledDates.find((date) => dayjs().isSame(date, 'date'));\n\n if (currentDate) {\n return currentDate;\n }\n\n return enabledDates[0];\n}\n"],"names":["isBeforeMaxDate","isAfterMinDate","isSameMonth","dayjs"],"mappings":";;;;;;;;;;;;;AAIO,SAAS,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,EAAE;AACtH,EAAE,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK;AACrD,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,OAAOA,+BAAe,CAAC,IAAI,EAAE,OAAO,CAAC,IAAIC,6BAAc,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,mBAAmB,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,IAAIC,uBAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAClS,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AACnD,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,OAAO,CAAC,EAAE,GAAG,mBAAmB,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC;AAClH,GAAG,CAAC,CAAC;AACL,EAAE,IAAI,YAAY,EAAE;AACpB,IAAI,OAAO,YAAY,CAAC;AACxB,GAAG;AACH,EAAE,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,KAAKC,cAAK,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AAChF,EAAE,IAAI,WAAW,EAAE;AACnB,IAAI,OAAO,WAAW,CAAC;AACvB,GAAG;AACH,EAAE,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;AACzB;;;;"}
@@ -148,12 +148,11 @@ const MonthLevelGroup = React.forwardRef((props, ref) => {
148
148
  __onDayClick,
149
149
  __onDayMouseEnter,
150
150
  __onDayKeyDown: (event, payload) => handleControlKeyDown.handleControlKeyDown({
151
- index: monthIndex,
151
+ levelIndex: monthIndex,
152
+ rowIndex: payload.rowIndex,
153
+ cellIndex: payload.cellIndex,
152
154
  event,
153
- payload,
154
- controlsRef: daysRefs,
155
- numberOfColumns,
156
- controlsPerRow: 7
155
+ controlsRef: daysRefs
157
156
  }),
158
157
  __getDayRef: (rowIndex, cellIndex, node) => {
159
158
  if (!Array.isArray(daysRefs.current[monthIndex])) {
@@ -1 +1 @@
1
- {"version":3,"file":"MonthLevelGroup.js","sources":["../../../src/components/MonthLevelGroup/MonthLevelGroup.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from 'react';\nimport { DefaultProps, Box, Selectors, useComponentDefaultProps } from '@mantine/core';\nimport dayjs from 'dayjs';\nimport { MonthLevel, MonthLevelStylesNames, MonthLevelSettings } from '../MonthLevel';\nimport { handleControlKeyDown } from '../../utils';\nimport useStyles from './MonthLevelGroup.styles';\n\nexport type MonthLevelGroupStylesNames = Selectors<typeof useStyles> | MonthLevelStylesNames;\n\nexport interface MonthLevelGroupProps\n extends DefaultProps<MonthLevelGroupStylesNames>,\n Omit<MonthLevelSettings, 'withPrevious' | 'withNext' | '__onDayKeyDown' | '__getDayRef'>,\n React.ComponentPropsWithoutRef<'div'> {\n variant?: string;\n __staticSelector?: string;\n\n /** Number of columns to render next to each other */\n numberOfColumns?: number;\n\n /** Month that is currently displayed */\n month: Date;\n\n /** Function that returns level control aria-label based on month date */\n levelControlAriaLabel?: ((month: Date) => string) | string;\n\n /** Determines whether days should be static, static days can be used to display month if it is not expected that user will interact with the component in any way */\n static?: boolean;\n}\n\nconst defaultProps: Partial<MonthLevelGroupProps> = {\n numberOfColumns: 1,\n};\n\nexport const MonthLevelGroup = forwardRef<HTMLDivElement, MonthLevelGroupProps>((props, ref) => {\n const {\n // Month settings\n month,\n locale,\n firstDayOfWeek,\n weekdayFormat,\n weekendDays,\n getDayProps,\n excludeDate,\n minDate,\n maxDate,\n renderDay,\n hideOutsideDates,\n hideWeekdays,\n getDayAriaLabel,\n __onDayClick,\n __onDayMouseEnter,\n withCellSpacing,\n\n // CalendarHeader settings\n __preventFocus,\n nextIcon,\n previousIcon,\n nextLabel,\n previousLabel,\n onNext,\n onPrevious,\n onLevelClick,\n nextDisabled,\n previousDisabled,\n hasNextLevel,\n\n // Other settings\n className,\n classNames,\n styles,\n unstyled,\n numberOfColumns,\n levelControlAriaLabel,\n monthLabelFormat,\n __staticSelector,\n __stopPropagation,\n size,\n variant,\n static: isStatic,\n ...others\n } = useComponentDefaultProps('MonthLevelGroup', defaultProps, props);\n\n const { classes, cx } = useStyles(null, {\n name: ['MonthLevelGroup', __staticSelector],\n classNames,\n styles,\n unstyled,\n variant,\n size,\n });\n\n const daysRefs = useRef<HTMLButtonElement[][][]>([]);\n\n const months = Array(numberOfColumns)\n .fill(0)\n .map((_, monthIndex) => {\n const currentMonth = dayjs(month).add(monthIndex, 'months').toDate();\n\n return (\n <MonthLevel\n key={monthIndex}\n month={currentMonth}\n withNext={monthIndex === numberOfColumns - 1}\n withPrevious={monthIndex === 0}\n monthLabelFormat={monthLabelFormat}\n __stopPropagation={__stopPropagation}\n __onDayClick={__onDayClick}\n __onDayMouseEnter={__onDayMouseEnter}\n __onDayKeyDown={(event, payload) =>\n handleControlKeyDown({\n index: monthIndex,\n event,\n payload,\n controlsRef: daysRefs,\n numberOfColumns,\n controlsPerRow: 7,\n })\n }\n __getDayRef={(rowIndex, cellIndex, node) => {\n if (!Array.isArray(daysRefs.current[monthIndex])) {\n daysRefs.current[monthIndex] = [];\n }\n\n if (!Array.isArray(daysRefs.current[monthIndex][rowIndex])) {\n daysRefs.current[monthIndex][rowIndex] = [];\n }\n\n daysRefs.current[monthIndex][rowIndex][cellIndex] = node;\n }}\n levelControlAriaLabel={\n typeof levelControlAriaLabel === 'function'\n ? levelControlAriaLabel(currentMonth)\n : levelControlAriaLabel\n }\n locale={locale}\n firstDayOfWeek={firstDayOfWeek}\n weekdayFormat={weekdayFormat}\n weekendDays={weekendDays}\n getDayProps={getDayProps}\n excludeDate={excludeDate}\n minDate={minDate}\n maxDate={maxDate}\n renderDay={renderDay}\n hideOutsideDates={hideOutsideDates}\n hideWeekdays={hideWeekdays}\n getDayAriaLabel={getDayAriaLabel}\n __preventFocus={__preventFocus}\n nextIcon={nextIcon}\n previousIcon={previousIcon}\n nextLabel={nextLabel}\n previousLabel={previousLabel}\n onNext={onNext}\n onPrevious={onPrevious}\n onLevelClick={onLevelClick}\n nextDisabled={nextDisabled}\n previousDisabled={previousDisabled}\n hasNextLevel={hasNextLevel}\n classNames={classNames}\n styles={styles}\n unstyled={unstyled}\n __staticSelector={__staticSelector || 'MonthLevelGroup'}\n size={size}\n variant={variant}\n static={isStatic}\n withCellSpacing={withCellSpacing}\n />\n );\n });\n\n return (\n <Box className={cx(classes.monthLevelGroup, className)} ref={ref} {...others}>\n {months}\n </Box>\n );\n});\n\nMonthLevelGroup.displayName = '@mantine/dates/MonthLevelGroup';\n"],"names":["forwardRef","useComponentDefaultProps","useStyles","useRef","dayjs","React","MonthLevel","handleControlKeyDown","Box"],"mappings":"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"}
1
+ {"version":3,"file":"MonthLevelGroup.js","sources":["../../../src/components/MonthLevelGroup/MonthLevelGroup.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from 'react';\nimport { DefaultProps, Box, Selectors, useComponentDefaultProps } from '@mantine/core';\nimport dayjs from 'dayjs';\nimport { MonthLevel, MonthLevelStylesNames, MonthLevelSettings } from '../MonthLevel';\nimport { handleControlKeyDown } from '../../utils';\nimport useStyles from './MonthLevelGroup.styles';\n\nexport type MonthLevelGroupStylesNames = Selectors<typeof useStyles> | MonthLevelStylesNames;\n\nexport interface MonthLevelGroupProps\n extends DefaultProps<MonthLevelGroupStylesNames>,\n Omit<MonthLevelSettings, 'withPrevious' | 'withNext' | '__onDayKeyDown' | '__getDayRef'>,\n React.ComponentPropsWithoutRef<'div'> {\n variant?: string;\n __staticSelector?: string;\n\n /** Number of columns to render next to each other */\n numberOfColumns?: number;\n\n /** Month that is currently displayed */\n month: Date;\n\n /** Function that returns level control aria-label based on month date */\n levelControlAriaLabel?: ((month: Date) => string) | string;\n\n /** Determines whether days should be static, static days can be used to display month if it is not expected that user will interact with the component in any way */\n static?: boolean;\n}\n\nconst defaultProps: Partial<MonthLevelGroupProps> = {\n numberOfColumns: 1,\n};\n\nexport const MonthLevelGroup = forwardRef<HTMLDivElement, MonthLevelGroupProps>((props, ref) => {\n const {\n // Month settings\n month,\n locale,\n firstDayOfWeek,\n weekdayFormat,\n weekendDays,\n getDayProps,\n excludeDate,\n minDate,\n maxDate,\n renderDay,\n hideOutsideDates,\n hideWeekdays,\n getDayAriaLabel,\n __onDayClick,\n __onDayMouseEnter,\n withCellSpacing,\n\n // CalendarHeader settings\n __preventFocus,\n nextIcon,\n previousIcon,\n nextLabel,\n previousLabel,\n onNext,\n onPrevious,\n onLevelClick,\n nextDisabled,\n previousDisabled,\n hasNextLevel,\n\n // Other settings\n className,\n classNames,\n styles,\n unstyled,\n numberOfColumns,\n levelControlAriaLabel,\n monthLabelFormat,\n __staticSelector,\n __stopPropagation,\n size,\n variant,\n static: isStatic,\n ...others\n } = useComponentDefaultProps('MonthLevelGroup', defaultProps, props);\n\n const { classes, cx } = useStyles(null, {\n name: ['MonthLevelGroup', __staticSelector],\n classNames,\n styles,\n unstyled,\n variant,\n size,\n });\n\n const daysRefs = useRef<HTMLButtonElement[][][]>([]);\n\n const months = Array(numberOfColumns)\n .fill(0)\n .map((_, monthIndex) => {\n const currentMonth = dayjs(month).add(monthIndex, 'months').toDate();\n\n return (\n <MonthLevel\n key={monthIndex}\n month={currentMonth}\n withNext={monthIndex === numberOfColumns - 1}\n withPrevious={monthIndex === 0}\n monthLabelFormat={monthLabelFormat}\n __stopPropagation={__stopPropagation}\n __onDayClick={__onDayClick}\n __onDayMouseEnter={__onDayMouseEnter}\n __onDayKeyDown={(event, payload) =>\n handleControlKeyDown({\n levelIndex: monthIndex,\n rowIndex: payload.rowIndex,\n cellIndex: payload.cellIndex,\n event,\n controlsRef: daysRefs,\n })\n }\n __getDayRef={(rowIndex, cellIndex, node) => {\n if (!Array.isArray(daysRefs.current[monthIndex])) {\n daysRefs.current[monthIndex] = [];\n }\n\n if (!Array.isArray(daysRefs.current[monthIndex][rowIndex])) {\n daysRefs.current[monthIndex][rowIndex] = [];\n }\n\n daysRefs.current[monthIndex][rowIndex][cellIndex] = node;\n }}\n levelControlAriaLabel={\n typeof levelControlAriaLabel === 'function'\n ? levelControlAriaLabel(currentMonth)\n : levelControlAriaLabel\n }\n locale={locale}\n firstDayOfWeek={firstDayOfWeek}\n weekdayFormat={weekdayFormat}\n weekendDays={weekendDays}\n getDayProps={getDayProps}\n excludeDate={excludeDate}\n minDate={minDate}\n maxDate={maxDate}\n renderDay={renderDay}\n hideOutsideDates={hideOutsideDates}\n hideWeekdays={hideWeekdays}\n getDayAriaLabel={getDayAriaLabel}\n __preventFocus={__preventFocus}\n nextIcon={nextIcon}\n previousIcon={previousIcon}\n nextLabel={nextLabel}\n previousLabel={previousLabel}\n onNext={onNext}\n onPrevious={onPrevious}\n onLevelClick={onLevelClick}\n nextDisabled={nextDisabled}\n previousDisabled={previousDisabled}\n hasNextLevel={hasNextLevel}\n classNames={classNames}\n styles={styles}\n unstyled={unstyled}\n __staticSelector={__staticSelector || 'MonthLevelGroup'}\n size={size}\n variant={variant}\n static={isStatic}\n withCellSpacing={withCellSpacing}\n />\n );\n });\n\n return (\n <Box className={cx(classes.monthLevelGroup, className)} ref={ref} {...others}>\n {months}\n </Box>\n );\n});\n\nMonthLevelGroup.displayName = '@mantine/dates/MonthLevelGroup';\n"],"names":["forwardRef","useComponentDefaultProps","useStyles","useRef","dayjs","React","MonthLevel","handleControlKeyDown","Box"],"mappings":"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"}
@@ -120,7 +120,7 @@ const YearLevelGroup = React.forwardRef((props, ref) => {
120
120
  variant,
121
121
  size
122
122
  });
123
- const controlsRefs = React.useRef([]);
123
+ const controlsRef = React.useRef([]);
124
124
  const years = Array(numberOfColumns).fill(0).map((_, yearIndex) => {
125
125
  const currentYear = dayjs__default(year).add(yearIndex, "years").toDate();
126
126
  return /* @__PURE__ */ React__default.createElement(YearLevel.YearLevel, {
@@ -136,21 +136,20 @@ const YearLevelGroup = React.forwardRef((props, ref) => {
136
136
  __onControlClick,
137
137
  __onControlMouseEnter,
138
138
  __onControlKeyDown: (event, payload) => handleControlKeyDown.handleControlKeyDown({
139
- index: yearIndex,
139
+ levelIndex: yearIndex,
140
+ rowIndex: payload.rowIndex,
141
+ cellIndex: payload.cellIndex,
140
142
  event,
141
- payload,
142
- controlsRef: controlsRefs,
143
- numberOfColumns,
144
- controlsPerRow: 3
143
+ controlsRef
145
144
  }),
146
145
  __getControlRef: (rowIndex, cellIndex, node) => {
147
- if (!Array.isArray(controlsRefs.current[yearIndex])) {
148
- controlsRefs.current[yearIndex] = [];
146
+ if (!Array.isArray(controlsRef.current[yearIndex])) {
147
+ controlsRef.current[yearIndex] = [];
149
148
  }
150
- if (!Array.isArray(controlsRefs.current[yearIndex][rowIndex])) {
151
- controlsRefs.current[yearIndex][rowIndex] = [];
149
+ if (!Array.isArray(controlsRef.current[yearIndex][rowIndex])) {
150
+ controlsRef.current[yearIndex][rowIndex] = [];
152
151
  }
153
- controlsRefs.current[yearIndex][rowIndex][cellIndex] = node;
152
+ controlsRef.current[yearIndex][rowIndex][cellIndex] = node;
154
153
  },
155
154
  levelControlAriaLabel: typeof levelControlAriaLabel === "function" ? levelControlAriaLabel(currentYear) : levelControlAriaLabel,
156
155
  locale,
@@ -1 +1 @@
1
- {"version":3,"file":"YearLevelGroup.js","sources":["../../../src/components/YearLevelGroup/YearLevelGroup.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from 'react';\nimport { DefaultProps, Box, Selectors, useComponentDefaultProps } from '@mantine/core';\nimport dayjs from 'dayjs';\nimport { YearLevel, YearLevelStylesNames, YearLevelSettings } from '../YearLevel';\nimport { handleControlKeyDown } from '../../utils';\nimport useStyles from './YearLevelGroup.styles';\n\nexport type YearLevelGroupStylesNames = Selectors<typeof useStyles> | YearLevelStylesNames;\n\nexport interface YearLevelGroupProps\n extends DefaultProps<YearLevelGroupStylesNames>,\n Omit<YearLevelSettings, 'withPrevious' | 'withNext' | '__onControlKeyDown' | '__getControlRef'>,\n React.ComponentPropsWithoutRef<'div'> {\n variant?: string;\n __staticSelector?: string;\n\n /** Number of columns to render next to each other */\n numberOfColumns?: number;\n\n /** Year that is currently displayed */\n year: Date;\n\n /** Function that returns level control aria-label based on year date */\n levelControlAriaLabel?: ((year: Date) => string) | string;\n}\n\nconst defaultProps: Partial<YearLevelGroupProps> = {\n numberOfColumns: 1,\n size: 'sm',\n};\n\nexport const YearLevelGroup = forwardRef<HTMLDivElement, YearLevelGroupProps>((props, ref) => {\n const {\n // YearLevel settings\n year,\n locale,\n minDate,\n maxDate,\n monthsListFormat,\n getMonthControlProps,\n __onControlClick,\n __onControlMouseEnter,\n withCellSpacing,\n\n // CalendarHeader settings\n __preventFocus,\n nextIcon,\n previousIcon,\n nextLabel,\n previousLabel,\n onNext,\n onPrevious,\n onLevelClick,\n nextDisabled,\n previousDisabled,\n hasNextLevel,\n\n // Other settings\n className,\n classNames,\n styles,\n unstyled,\n __staticSelector,\n __stopPropagation,\n numberOfColumns,\n levelControlAriaLabel,\n yearLabelFormat,\n variant,\n size,\n ...others\n } = useComponentDefaultProps('YearLevelGroup', defaultProps, props);\n\n const { classes, cx } = useStyles(null, {\n name: ['YearLevelGroup', __staticSelector],\n styles,\n classNames,\n unstyled,\n variant,\n size,\n });\n\n const controlsRefs = useRef<HTMLButtonElement[][][]>([]);\n\n const years = Array(numberOfColumns)\n .fill(0)\n .map((_, yearIndex) => {\n const currentYear = dayjs(year).add(yearIndex, 'years').toDate();\n\n return (\n <YearLevel\n key={yearIndex}\n variant={variant}\n size={size}\n monthsListFormat={monthsListFormat}\n year={currentYear}\n withNext={yearIndex === numberOfColumns - 1}\n withPrevious={yearIndex === 0}\n yearLabelFormat={yearLabelFormat}\n __stopPropagation={__stopPropagation}\n __onControlClick={__onControlClick}\n __onControlMouseEnter={__onControlMouseEnter}\n __onControlKeyDown={(event, payload) =>\n handleControlKeyDown({\n index: yearIndex,\n event,\n payload,\n controlsRef: controlsRefs,\n numberOfColumns,\n controlsPerRow: 3,\n })\n }\n __getControlRef={(rowIndex, cellIndex, node) => {\n if (!Array.isArray(controlsRefs.current[yearIndex])) {\n controlsRefs.current[yearIndex] = [];\n }\n\n if (!Array.isArray(controlsRefs.current[yearIndex][rowIndex])) {\n controlsRefs.current[yearIndex][rowIndex] = [];\n }\n\n controlsRefs.current[yearIndex][rowIndex][cellIndex] = node;\n }}\n levelControlAriaLabel={\n typeof levelControlAriaLabel === 'function'\n ? levelControlAriaLabel(currentYear)\n : levelControlAriaLabel\n }\n locale={locale}\n minDate={minDate}\n maxDate={maxDate}\n __preventFocus={__preventFocus}\n nextIcon={nextIcon}\n previousIcon={previousIcon}\n nextLabel={nextLabel}\n previousLabel={previousLabel}\n onNext={onNext}\n onPrevious={onPrevious}\n onLevelClick={onLevelClick}\n nextDisabled={nextDisabled}\n previousDisabled={previousDisabled}\n hasNextLevel={hasNextLevel}\n getMonthControlProps={getMonthControlProps}\n classNames={classNames}\n styles={styles}\n unstyled={unstyled}\n __staticSelector={__staticSelector || 'YearLevelGroup'}\n withCellSpacing={withCellSpacing}\n />\n );\n });\n\n return (\n <Box className={cx(classes.yearLevelGroup, className)} ref={ref} {...others}>\n {years}\n </Box>\n );\n});\n\nYearLevelGroup.displayName = '@mantine/dates/YearLevelGroup';\n"],"names":["forwardRef","useComponentDefaultProps","useStyles","useRef","dayjs","React","YearLevel","handleControlKeyDown","Box"],"mappings":"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"}
1
+ {"version":3,"file":"YearLevelGroup.js","sources":["../../../src/components/YearLevelGroup/YearLevelGroup.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from 'react';\nimport { DefaultProps, Box, Selectors, useComponentDefaultProps } from '@mantine/core';\nimport dayjs from 'dayjs';\nimport { YearLevel, YearLevelStylesNames, YearLevelSettings } from '../YearLevel';\nimport { handleControlKeyDown } from '../../utils';\nimport useStyles from './YearLevelGroup.styles';\n\nexport type YearLevelGroupStylesNames = Selectors<typeof useStyles> | YearLevelStylesNames;\n\nexport interface YearLevelGroupProps\n extends DefaultProps<YearLevelGroupStylesNames>,\n Omit<YearLevelSettings, 'withPrevious' | 'withNext' | '__onControlKeyDown' | '__getControlRef'>,\n React.ComponentPropsWithoutRef<'div'> {\n variant?: string;\n __staticSelector?: string;\n\n /** Number of columns to render next to each other */\n numberOfColumns?: number;\n\n /** Year that is currently displayed */\n year: Date;\n\n /** Function that returns level control aria-label based on year date */\n levelControlAriaLabel?: ((year: Date) => string) | string;\n}\n\nconst defaultProps: Partial<YearLevelGroupProps> = {\n numberOfColumns: 1,\n size: 'sm',\n};\n\nexport const YearLevelGroup = forwardRef<HTMLDivElement, YearLevelGroupProps>((props, ref) => {\n const {\n // YearLevel settings\n year,\n locale,\n minDate,\n maxDate,\n monthsListFormat,\n getMonthControlProps,\n __onControlClick,\n __onControlMouseEnter,\n withCellSpacing,\n\n // CalendarHeader settings\n __preventFocus,\n nextIcon,\n previousIcon,\n nextLabel,\n previousLabel,\n onNext,\n onPrevious,\n onLevelClick,\n nextDisabled,\n previousDisabled,\n hasNextLevel,\n\n // Other settings\n className,\n classNames,\n styles,\n unstyled,\n __staticSelector,\n __stopPropagation,\n numberOfColumns,\n levelControlAriaLabel,\n yearLabelFormat,\n variant,\n size,\n ...others\n } = useComponentDefaultProps('YearLevelGroup', defaultProps, props);\n\n const { classes, cx } = useStyles(null, {\n name: ['YearLevelGroup', __staticSelector],\n styles,\n classNames,\n unstyled,\n variant,\n size,\n });\n\n const controlsRef = useRef<HTMLButtonElement[][][]>([]);\n\n const years = Array(numberOfColumns)\n .fill(0)\n .map((_, yearIndex) => {\n const currentYear = dayjs(year).add(yearIndex, 'years').toDate();\n\n return (\n <YearLevel\n key={yearIndex}\n variant={variant}\n size={size}\n monthsListFormat={monthsListFormat}\n year={currentYear}\n withNext={yearIndex === numberOfColumns - 1}\n withPrevious={yearIndex === 0}\n yearLabelFormat={yearLabelFormat}\n __stopPropagation={__stopPropagation}\n __onControlClick={__onControlClick}\n __onControlMouseEnter={__onControlMouseEnter}\n __onControlKeyDown={(event, payload) =>\n handleControlKeyDown({\n levelIndex: yearIndex,\n rowIndex: payload.rowIndex,\n cellIndex: payload.cellIndex,\n event,\n controlsRef,\n })\n }\n __getControlRef={(rowIndex, cellIndex, node) => {\n if (!Array.isArray(controlsRef.current[yearIndex])) {\n controlsRef.current[yearIndex] = [];\n }\n\n if (!Array.isArray(controlsRef.current[yearIndex][rowIndex])) {\n controlsRef.current[yearIndex][rowIndex] = [];\n }\n\n controlsRef.current[yearIndex][rowIndex][cellIndex] = node;\n }}\n levelControlAriaLabel={\n typeof levelControlAriaLabel === 'function'\n ? levelControlAriaLabel(currentYear)\n : levelControlAriaLabel\n }\n locale={locale}\n minDate={minDate}\n maxDate={maxDate}\n __preventFocus={__preventFocus}\n nextIcon={nextIcon}\n previousIcon={previousIcon}\n nextLabel={nextLabel}\n previousLabel={previousLabel}\n onNext={onNext}\n onPrevious={onPrevious}\n onLevelClick={onLevelClick}\n nextDisabled={nextDisabled}\n previousDisabled={previousDisabled}\n hasNextLevel={hasNextLevel}\n getMonthControlProps={getMonthControlProps}\n classNames={classNames}\n styles={styles}\n unstyled={unstyled}\n __staticSelector={__staticSelector || 'YearLevelGroup'}\n withCellSpacing={withCellSpacing}\n />\n );\n });\n\n return (\n <Box className={cx(classes.yearLevelGroup, className)} ref={ref} {...others}>\n {years}\n </Box>\n );\n});\n\nYearLevelGroup.displayName = '@mantine/dates/YearLevelGroup';\n"],"names":["forwardRef","useComponentDefaultProps","useStyles","useRef","dayjs","React","YearLevel","handleControlKeyDown","Box"],"mappings":"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"}
@@ -2,75 +2,156 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ function getNextIndex({ direction, levelIndex, rowIndex, cellIndex, size }) {
6
+ switch (direction) {
7
+ case "up":
8
+ if (levelIndex === 0 && rowIndex === 0) {
9
+ return null;
10
+ }
11
+ if (rowIndex === 0) {
12
+ return {
13
+ levelIndex: levelIndex - 1,
14
+ rowIndex: cellIndex <= size[levelIndex - 1][size[levelIndex - 1].length - 1] - 1 ? size[levelIndex - 1].length - 1 : size[levelIndex - 1].length - 2,
15
+ cellIndex
16
+ };
17
+ }
18
+ return {
19
+ levelIndex,
20
+ rowIndex: rowIndex - 1,
21
+ cellIndex
22
+ };
23
+ case "down":
24
+ if (rowIndex === size[levelIndex].length - 1) {
25
+ return {
26
+ levelIndex: levelIndex + 1,
27
+ rowIndex: 0,
28
+ cellIndex
29
+ };
30
+ }
31
+ if (rowIndex === size[levelIndex].length - 2 && cellIndex >= size[levelIndex][size[levelIndex].length - 1]) {
32
+ return {
33
+ levelIndex: levelIndex + 1,
34
+ rowIndex: 0,
35
+ cellIndex
36
+ };
37
+ }
38
+ return {
39
+ levelIndex,
40
+ rowIndex: rowIndex + 1,
41
+ cellIndex
42
+ };
43
+ case "left":
44
+ if (levelIndex === 0 && rowIndex === 0 && cellIndex === 0) {
45
+ return null;
46
+ }
47
+ if (rowIndex === 0 && cellIndex === 0) {
48
+ return {
49
+ levelIndex: levelIndex - 1,
50
+ rowIndex: size[levelIndex - 1].length - 1,
51
+ cellIndex: size[levelIndex - 1][size[levelIndex - 1].length - 1] - 1
52
+ };
53
+ }
54
+ if (cellIndex === 0) {
55
+ return {
56
+ levelIndex,
57
+ rowIndex: rowIndex - 1,
58
+ cellIndex: size[levelIndex][rowIndex - 1] - 1
59
+ };
60
+ }
61
+ return {
62
+ levelIndex,
63
+ rowIndex,
64
+ cellIndex: cellIndex - 1
65
+ };
66
+ case "right":
67
+ if (rowIndex === size[levelIndex].length - 1 && cellIndex === size[levelIndex][rowIndex] - 1) {
68
+ return {
69
+ levelIndex: levelIndex + 1,
70
+ rowIndex: 0,
71
+ cellIndex: 0
72
+ };
73
+ }
74
+ if (cellIndex === size[levelIndex][rowIndex] - 1) {
75
+ return {
76
+ levelIndex,
77
+ rowIndex: rowIndex + 1,
78
+ cellIndex: 0
79
+ };
80
+ }
81
+ return {
82
+ levelIndex,
83
+ rowIndex,
84
+ cellIndex: cellIndex + 1
85
+ };
86
+ default:
87
+ return { levelIndex, rowIndex, cellIndex };
88
+ }
89
+ }
5
90
  function focusOnNextFocusableControl({
91
+ controlsRef,
6
92
  direction,
7
- index,
8
- payload,
9
- count = 1,
10
- controlsRef
93
+ levelIndex,
94
+ rowIndex,
95
+ cellIndex,
96
+ size
11
97
  }) {
12
- var _a;
13
- const changeRow = ["down", "up"].includes(direction);
14
- const rowIndex = changeRow ? payload.rowIndex + (direction === "down" ? count : -count) : payload.rowIndex;
15
- const cellIndex = changeRow ? payload.cellIndex : payload.cellIndex + (direction === "right" ? count : -count);
16
- const controlToFocus = (_a = controlsRef.current[index][rowIndex]) == null ? void 0 : _a[cellIndex];
98
+ var _a, _b;
99
+ const nextIndex = getNextIndex({ direction, size, rowIndex, cellIndex, levelIndex });
100
+ if (!nextIndex) {
101
+ return;
102
+ }
103
+ const controlToFocus = (_b = (_a = controlsRef.current[nextIndex.levelIndex]) == null ? void 0 : _a[nextIndex.rowIndex]) == null ? void 0 : _b[nextIndex.cellIndex];
17
104
  if (!controlToFocus) {
18
105
  return;
19
106
  }
20
- if (controlToFocus.disabled) {
21
- focusOnNextFocusableControl({ direction, index, payload, controlsRef, count: count + 1 });
107
+ if (controlToFocus.disabled || controlToFocus.getAttribute("data-hidden") || controlToFocus.getAttribute("data-outside")) {
108
+ focusOnNextFocusableControl({
109
+ controlsRef,
110
+ direction,
111
+ levelIndex: nextIndex.levelIndex,
112
+ cellIndex: nextIndex.cellIndex,
113
+ rowIndex: nextIndex.rowIndex,
114
+ size
115
+ });
22
116
  } else {
23
117
  controlToFocus.focus();
24
118
  }
25
119
  }
120
+ function getDirection(key) {
121
+ switch (key) {
122
+ case "ArrowDown":
123
+ return "down";
124
+ case "ArrowUp":
125
+ return "up";
126
+ case "ArrowRight":
127
+ return "right";
128
+ case "ArrowLeft":
129
+ return "left";
130
+ default:
131
+ return null;
132
+ }
133
+ }
134
+ function getControlsSize(controlsRef) {
135
+ return controlsRef.current.map((column) => column.map((row) => row.length));
136
+ }
26
137
  function handleControlKeyDown({
27
138
  controlsRef,
28
- index,
29
- payload,
30
- event,
31
- numberOfColumns,
32
- controlsPerRow
139
+ levelIndex,
140
+ rowIndex,
141
+ cellIndex,
142
+ event
33
143
  }) {
34
- var _a;
35
- const _controlsPerRow = Array.isArray(controlsPerRow) ? controlsPerRow[payload.rowIndex] : controlsPerRow;
36
- switch (event.key) {
37
- case "ArrowDown": {
38
- event.preventDefault();
39
- const hasRowBelow = payload.rowIndex + 1 < controlsRef.current[index].length;
40
- if (hasRowBelow) {
41
- focusOnNextFocusableControl({ direction: "down", index, payload, controlsRef });
42
- }
43
- break;
44
- }
45
- case "ArrowUp": {
46
- event.preventDefault();
47
- const hasRowAbove = payload.rowIndex > 0;
48
- if (hasRowAbove) {
49
- focusOnNextFocusableControl({ direction: "up", index, payload, controlsRef });
50
- }
51
- break;
52
- }
53
- case "ArrowRight": {
54
- event.preventDefault();
55
- if (payload.cellIndex !== _controlsPerRow - 1) {
56
- focusOnNextFocusableControl({ direction: "right", index, payload, controlsRef });
57
- } else if (index + 1 < numberOfColumns) {
58
- if (controlsRef.current[index + 1][payload.rowIndex]) {
59
- (_a = controlsRef.current[index + 1][payload.rowIndex][0]) == null ? void 0 : _a.focus();
60
- }
61
- }
62
- break;
63
- }
64
- case "ArrowLeft": {
65
- event.preventDefault();
66
- if (payload.cellIndex !== 0) {
67
- focusOnNextFocusableControl({ direction: "left", index, payload, controlsRef });
68
- } else if (index > 0) {
69
- if (controlsRef.current[index - 1][payload.rowIndex]) {
70
- controlsRef.current[index - 1][payload.rowIndex][_controlsPerRow - 1].focus();
71
- }
72
- }
73
- }
144
+ const direction = getDirection(event.key);
145
+ if (direction) {
146
+ const size = getControlsSize(controlsRef);
147
+ focusOnNextFocusableControl({
148
+ controlsRef,
149
+ direction,
150
+ levelIndex,
151
+ rowIndex,
152
+ cellIndex,
153
+ size
154
+ });
74
155
  }
75
156
  }
76
157