@mantine/dates
Version:
Calendars, date and time pickers based on Mantine components
1 lines • 4.55 kB
Source Map (JSON)
{"version":3,"file":"AmPmInput.mjs","names":[],"sources":["../../../../src/components/TimePicker/AmPmInput/AmPmInput.tsx"],"sourcesContent":["import { useTimePickerContext } from '../TimePicker.context';\n\ninterface AmPmInputProps extends Omit<React.ComponentProps<'select'>, 'value' | 'onChange'> {\n labels: { am: string; pm: string };\n value: string | null;\n inputType: 'select' | 'input';\n onChange: (value: string | null) => void;\n readOnly?: boolean;\n onPreviousInput?: () => void;\n}\n\nexport function AmPmInput({\n labels,\n value,\n onChange,\n className,\n style,\n onPreviousInput,\n readOnly,\n onMouseDown,\n onTouchStart,\n inputType,\n ...others\n}: AmPmInputProps) {\n const ctx = useTimePickerContext();\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLSelectElement>) => {\n if (readOnly) {\n return;\n }\n\n if (event.key === 'Home') {\n event.preventDefault();\n onChange(labels.am);\n }\n\n if (event.key === 'End') {\n event.preventDefault();\n onChange(labels.pm);\n }\n\n if (event.key === 'Backspace' || event.key === 'Delete') {\n event.preventDefault();\n if (value === null) {\n onPreviousInput?.();\n } else {\n onChange(null);\n }\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n onPreviousInput?.();\n }\n\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n event.preventDefault();\n onChange(value === labels.am ? labels.pm : labels.am);\n }\n\n if (event.code === 'KeyA') {\n event.preventDefault();\n onChange(labels.am);\n }\n\n if (event.code === 'KeyP') {\n event.preventDefault();\n onChange(labels.pm);\n }\n };\n\n if (inputType === 'input') {\n const displayValue = value || '--';\n const inputSize = displayValue.length + 1;\n\n return (\n <input\n {...ctx.getStyles('field', { className, style })}\n value={displayValue}\n size={inputSize}\n onChange={(event) => !readOnly && onChange(event.target.value || null)}\n onClick={((event: any) => event.stopPropagation()) as any}\n onKeyDown={handleKeyDown as any}\n onMouseDown={(event) => {\n event.stopPropagation();\n onMouseDown?.(event as any);\n }}\n data-am-pm\n {...(others as any)}\n />\n );\n }\n\n return (\n <select\n {...ctx.getStyles('field', { className, style })}\n value={value || ''}\n onChange={(event) => !readOnly && onChange(event.target.value || null)}\n onClick={(event) => event.stopPropagation()}\n onKeyDown={handleKeyDown}\n onMouseDown={(event) => {\n event.stopPropagation();\n onMouseDown?.(event);\n }}\n data-am-pm\n {...others}\n >\n <option value=\"\">--</option>\n <option value={labels.am}>{labels.am}</option>\n <option value={labels.pm}>{labels.pm}</option>\n </select>\n );\n}\n\nAmPmInput.displayName = '@mantine/dates/AmPmInput';\n"],"mappings":";;;;AAWA,SAAgB,UAAU,EACxB,QACA,OACA,UACA,WACA,OACA,iBACA,UACA,aACA,cACA,WACA,GAAG,UACc;CACjB,MAAM,MAAM,qBAAqB;CAEjC,MAAM,iBAAiB,UAAkD;EACvE,IAAI,UACF;EAGF,IAAI,MAAM,QAAQ,QAAQ;GACxB,MAAM,eAAe;GACrB,SAAS,OAAO,EAAE;EACpB;EAEA,IAAI,MAAM,QAAQ,OAAO;GACvB,MAAM,eAAe;GACrB,SAAS,OAAO,EAAE;EACpB;EAEA,IAAI,MAAM,QAAQ,eAAe,MAAM,QAAQ,UAAU;GACvD,MAAM,eAAe;GACrB,IAAI,UAAU,MACZ,kBAAkB;QAElB,SAAS,IAAI;EAEjB;EAEA,IAAI,MAAM,QAAQ,aAAa;GAC7B,MAAM,eAAe;GACrB,kBAAkB;EACpB;EAEA,IAAI,MAAM,QAAQ,aAAa,MAAM,QAAQ,aAAa;GACxD,MAAM,eAAe;GACrB,SAAS,UAAU,OAAO,KAAK,OAAO,KAAK,OAAO,EAAE;EACtD;EAEA,IAAI,MAAM,SAAS,QAAQ;GACzB,MAAM,eAAe;GACrB,SAAS,OAAO,EAAE;EACpB;EAEA,IAAI,MAAM,SAAS,QAAQ;GACzB,MAAM,eAAe;GACrB,SAAS,OAAO,EAAE;EACpB;CACF;CAEA,IAAI,cAAc,SAAS;EACzB,MAAM,eAAe,SAAS;EAC9B,MAAM,YAAY,aAAa,SAAS;EAExC,OACE,oBAAC,SAAD;GACE,GAAI,IAAI,UAAU,SAAS;IAAE;IAAW;GAAM,CAAC;GAC/C,OAAO;GACP,MAAM;GACN,WAAW,UAAU,CAAC,YAAY,SAAS,MAAM,OAAO,SAAS,IAAI;GACrE,WAAW,UAAe,MAAM,gBAAgB;GAChD,WAAW;GACX,cAAc,UAAU;IACtB,MAAM,gBAAgB;IACtB,cAAc,KAAY;GAC5B;GACA,cAAA;GACA,GAAK;EACN,CAAA;CAEL;CAEA,OACE,qBAAC,UAAD;EACE,GAAI,IAAI,UAAU,SAAS;GAAE;GAAW;EAAM,CAAC;EAC/C,OAAO,SAAS;EAChB,WAAW,UAAU,CAAC,YAAY,SAAS,MAAM,OAAO,SAAS,IAAI;EACrE,UAAU,UAAU,MAAM,gBAAgB;EAC1C,WAAW;EACX,cAAc,UAAU;GACtB,MAAM,gBAAgB;GACtB,cAAc,KAAK;EACrB;EACA,cAAA;EACA,GAAI;YAXN;GAaE,oBAAC,UAAD;IAAQ,OAAM;cAAG;GAAU,CAAA;GAC3B,oBAAC,UAAD;IAAQ,OAAO,OAAO;cAAK,OAAO;GAAW,CAAA;GAC7C,oBAAC,UAAD;IAAQ,OAAO,OAAO;cAAK,OAAO;GAAW,CAAA;EACvC;;AAEZ;AAEA,UAAU,cAAc"}