{"version":3,"file":"DatePicker.cjs","sources":["../../../../../src/components/DateTimePickers/DatePicker/DatePicker.tsx"],"sourcesContent":["import { css } from '@emotion/css';\nimport { memo } from 'react';\nimport Calendar from 'react-calendar';\n\nimport { GrafanaTheme2 } from '@grafana/data';\n\nimport { useStyles2 } from '../../../themes/ThemeContext';\nimport { ClickOutsideWrapper } from '../../ClickOutsideWrapper/ClickOutsideWrapper';\nimport { Icon } from '../../Icon/Icon';\nimport { getBodyStyles } from '../TimeRangePicker/CalendarBody';\n\n/** @public */\nexport interface DatePickerProps {\n  isOpen?: boolean;\n  onClose: () => void;\n  onChange: (value: Date) => void;\n  value?: Date;\n  minDate?: Date;\n  maxDate?: Date;\n}\n\n/**\n * A component with a calendar view for selecting a date.\n *\n * https://developers.grafana.com/ui/latest/index.html?path=/docs/date-time-pickers-datepicker--docs\n * @public\n * */\nexport const DatePicker = memo<DatePickerProps>((props) => {\n  const styles = useStyles2(getStyles);\n  const { isOpen, onClose } = props;\n\n  if (!isOpen) {\n    return null;\n  }\n\n  return (\n    <ClickOutsideWrapper useCapture={true} includeButtonPress={false} onClick={onClose}>\n      <div className={styles.modal} data-testid=\"date-picker\">\n        <Body {...props} />\n      </div>\n    </ClickOutsideWrapper>\n  );\n});\n\nDatePicker.displayName = 'DatePicker';\n\nconst Body = memo<DatePickerProps>(({ value, minDate, maxDate, onChange }) => {\n  const styles = useStyles2(getBodyStyles);\n\n  return (\n    <Calendar\n      className={styles.body}\n      tileClassName={styles.title}\n      value={value || new Date()}\n      minDate={minDate}\n      maxDate={maxDate}\n      nextLabel={<Icon name=\"angle-right\" />}\n      prevLabel={<Icon name=\"angle-left\" />}\n      onChange={(ev) => {\n        if (ev && !Array.isArray(ev)) {\n          onChange(ev);\n        }\n      }}\n      locale=\"en\"\n    />\n  );\n});\n\nBody.displayName = 'Body';\n\nexport const getStyles = (theme: GrafanaTheme2) => {\n  return {\n    modal: css({\n      zIndex: theme.zIndex.modal,\n      boxShadow: theme.shadows.z3,\n      backgroundColor: theme.colors.background.primary,\n      border: `1px solid ${theme.colors.border.weak}`,\n      borderTopLeftRadius: theme.shape.radius.default,\n      borderBottomLeftRadius: theme.shape.radius.default,\n\n      'button:disabled': {\n        color: theme.colors.text.disabled,\n      },\n    }),\n  };\n};\n"],"names":["memo","useStyles2","jsx","ClickOutsideWrapper","getBodyStyles","Calendar","Icon","css"],"mappings":";;;;;;;;;;;;;;;;;;AA2BO,MAAM,UAAA,GAAaA,UAAA,CAAsB,CAAC,KAAA,KAAU;AACzD,EAAA,MAAM,MAAA,GAASC,wBAAW,SAAS,CAAA;AACnC,EAAA,MAAM,EAAE,MAAA,EAAQ,OAAA,EAAQ,GAAI,KAAA;AAE5B,EAAA,IAAI,CAAC,MAAA,EAAQ;AACX,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uBACEC,cAAA,CAACC,2CAAoB,UAAA,EAAY,IAAA,EAAM,oBAAoB,KAAA,EAAO,OAAA,EAAS,SACzE,QAAA,kBAAAD,cAAA,CAAC,KAAA,EAAA,EAAI,WAAW,MAAA,CAAO,KAAA,EAAO,eAAY,aAAA,EACxC,QAAA,kBAAAA,cAAA,CAAC,QAAM,GAAG,KAAA,EAAO,GACnB,CAAA,EACF,CAAA;AAEJ,CAAC;AAED,UAAA,CAAW,WAAA,GAAc,YAAA;AAEzB,MAAM,IAAA,GAAOF,WAAsB,CAAC,EAAE,OAAO,OAAA,EAAS,OAAA,EAAS,UAAS,KAAM;AAC5E,EAAA,MAAM,MAAA,GAASC,wBAAWG,0BAAa,CAAA;AAEvC,EAAA,uBACEF,cAAA;AAAA,IAACG,yBAAA;AAAA,IAAA;AAAA,MACC,WAAW,MAAA,CAAO,IAAA;AAAA,MAClB,eAAe,MAAA,CAAO,KAAA;AAAA,MACtB,KAAA,EAAO,KAAA,oBAAS,IAAI,IAAA,EAAK;AAAA,MACzB,OAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAA,kBAAWH,cAAA,CAACI,SAAA,EAAA,EAAK,IAAA,EAAK,aAAA,EAAc,CAAA;AAAA,MACpC,SAAA,kBAAWJ,cAAA,CAACI,SAAA,EAAA,EAAK,IAAA,EAAK,YAAA,EAAa,CAAA;AAAA,MACnC,QAAA,EAAU,CAAC,EAAA,KAAO;AAChB,QAAA,IAAI,EAAA,IAAM,CAAC,KAAA,CAAM,OAAA,CAAQ,EAAE,CAAA,EAAG;AAC5B,UAAA,QAAA,CAAS,EAAE,CAAA;AAAA,QACb;AAAA,MACF,CAAA;AAAA,MACA,MAAA,EAAO;AAAA;AAAA,GACT;AAEJ,CAAC,CAAA;AAED,IAAA,CAAK,WAAA,GAAc,MAAA;AAEZ,MAAM,SAAA,GAAY,CAAC,KAAA,KAAyB;AACjD,EAAA,OAAO;AAAA,IACL,OAAOC,OAAA,CAAI;AAAA,MACT,MAAA,EAAQ,MAAM,MAAA,CAAO,KAAA;AAAA,MACrB,SAAA,EAAW,MAAM,OAAA,CAAQ,EAAA;AAAA,MACzB,eAAA,EAAiB,KAAA,CAAM,MAAA,CAAO,UAAA,CAAW,OAAA;AAAA,MACzC,MAAA,EAAQ,CAAA,UAAA,EAAa,KAAA,CAAM,MAAA,CAAO,OAAO,IAAI,CAAA,CAAA;AAAA,MAC7C,mBAAA,EAAqB,KAAA,CAAM,KAAA,CAAM,MAAA,CAAO,OAAA;AAAA,MACxC,sBAAA,EAAwB,KAAA,CAAM,KAAA,CAAM,MAAA,CAAO,OAAA;AAAA,MAE3C,iBAAA,EAAmB;AAAA,QACjB,KAAA,EAAO,KAAA,CAAM,MAAA,CAAO,IAAA,CAAK;AAAA;AAC3B,KACD;AAAA,GACH;AACF;;;;;"}