{"version":3,"file":"Decades.cjs","sources":["../../../../src/components/Datepicker/Views/Decades.tsx"],"sourcesContent":["\"use client\";\n\nimport { twMerge } from \"../../../helpers/tailwind-merge\";\nimport { useDatePickerContext } from \"../DatepickerContext\";\nimport { addYears, isDateInDecade, isDateInRange, startOfYearPeriod, Views } from \"../helpers\";\n\nexport interface DatepickerViewsDecadesTheme {\n  items: {\n    base: string;\n    item: {\n      base: string;\n      selected: string;\n      disabled: string;\n    };\n  };\n}\n\nexport function DatepickerViewsDecades() {\n  const {\n    theme: rootTheme,\n    viewDate,\n    selectedDate,\n    minDate,\n    maxDate,\n    filterDate,\n    setViewDate,\n    setView,\n  } = useDatePickerContext();\n\n  const theme = rootTheme.views.decades;\n  const first = startOfYearPeriod(viewDate, 100);\n\n  return (\n    <div className={theme.items.base}>\n      {[...Array(12)].map((_year, index) => {\n        const year = first - 10 + index * 10;\n        const newDate = new Date(viewDate.getTime());\n        newDate.setFullYear(year + (viewDate.getFullYear() % 10));\n        const firstDate = new Date(year, 0, 1);\n        const lastDate = addYears(firstDate, 9);\n\n        const isSelected = selectedDate && isDateInDecade(selectedDate, year);\n        const isDisabled =\n          (!isDateInRange(firstDate, minDate, maxDate) && !isDateInRange(lastDate, minDate, maxDate)) ||\n          (filterDate && !filterDate(newDate, Views.Decades));\n\n        return (\n          <button\n            disabled={isDisabled}\n            key={index}\n            type=\"button\"\n            className={twMerge(\n              theme.items.item.base,\n              isSelected && theme.items.item.selected,\n              isDisabled && theme.items.item.disabled,\n            )}\n            onClick={() => {\n              if (isDisabled) return;\n\n              selectedDate && setViewDate(addYears(viewDate, year - selectedDate.getFullYear()));\n              setView(Views.Years);\n            }}\n          >\n            {year}\n          </button>\n        );\n      })}\n    </div>\n  );\n}\n\nDatepickerViewsDecades.displayName = \"DatepickerViewsDecades\";\n"],"names":["useDatePickerContext","startOfYearPeriod","jsx","addYears","isDateInDecade","isDateInRange","Views","twMerge"],"mappings":";;;;;;;AAMO,SAAS,sBAAsB,GAAG;AACzC,EAAE,MAAM;AACR,IAAI,KAAK,EAAE,SAAS;AACpB,IAAI,QAAQ;AACZ,IAAI,YAAY;AAChB,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,UAAU;AACd,IAAI,WAAW;AACf,IAAI;AACJ,GAAG,GAAGA,sCAAoB,EAAE;AAC5B,EAAE,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO;AACvC,EAAE,MAAM,KAAK,GAAGC,yBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC;AAChD,EAAE,uBAAuBC,cAAG,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK;AAClH,IAAI,MAAM,IAAI,GAAG,KAAK,GAAG,EAAE,GAAG,KAAK,GAAG,EAAE;AACxC,IAAI,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;AAChD,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,GAAG,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC;AAC3D,IAAI,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AAC1C,IAAI,MAAM,QAAQ,GAAGC,gBAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;AAC3C,IAAI,MAAM,UAAU,GAAG,YAAY,IAAIC,sBAAc,CAAC,YAAY,EAAE,IAAI,CAAC;AACzE,IAAI,MAAM,UAAU,GAAG,CAACC,qBAAa,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAACA,qBAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,OAAO,EAAEC,aAAK,CAAC,OAAO,CAAC;AACrK,IAAI,uBAAuBJ,cAAG;AAC9B,MAAM,QAAQ;AACd,MAAM;AACN,QAAQ,QAAQ,EAAE,UAAU;AAC5B,QAAQ,IAAI,EAAE,QAAQ;AACtB,QAAQ,SAAS,EAAEK,qBAAO;AAC1B,UAAU,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI;AAC/B,UAAU,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ;AACjD,UAAU,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;AACzC,SAAS;AACT,QAAQ,OAAO,EAAE,MAAM;AACvB,UAAU,IAAI,UAAU,EAAE;AAC1B,UAAU,YAAY,IAAI,WAAW,CAACJ,gBAAQ,CAAC,QAAQ,EAAE,IAAI,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;AAC5F,UAAU,OAAO,CAACG,aAAK,CAAC,KAAK,CAAC;AAC9B,QAAQ,CAAC;AACT,QAAQ,QAAQ,EAAE;AAClB,OAAO;AACP,MAAM;AACN,KAAK;AACL,EAAE,CAAC,CAAC,EAAE,CAAC;AACP;AACA,sBAAsB,CAAC,WAAW,GAAG,wBAAwB;;;;"}