@grafana/ui
Version:
Grafana Components Library
1 lines • 4.31 kB
Source Map (JSON)
{"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 { type 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\nconst 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;AAEnB,MAAM,SAAA,GAAY,CAAC,KAAA,KAAyB;AAC1C,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,CAAA;;;;"}