@bigbinary/neetoui 6.7.4 → 6.8.0
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.
- package/dist/Accordion.js +5 -6
- package/dist/Accordion.js.map +1 -1
- package/dist/ActionDropdown.js +16 -11
- package/dist/ActionDropdown.js.map +1 -1
- package/dist/Alert.js +23 -13
- package/dist/Alert.js.map +1 -1
- package/dist/Avatar.js +6 -6
- package/dist/Button.js +7 -8
- package/dist/Button.js.map +1 -1
- package/dist/Callout.js +4 -5
- package/dist/Callout.js.map +1 -1
- package/dist/Checkbox.js +22 -13
- package/dist/Checkbox.js.map +1 -1
- package/dist/ColorPicker.js +20 -14
- package/dist/ColorPicker.js.map +1 -1
- package/dist/DatePicker.js +21 -12
- package/dist/DatePicker.js.map +1 -1
- package/dist/DateTimePicker.js +27 -17
- package/dist/DateTimePicker.js.map +1 -1
- package/dist/Dropdown.js +18 -13
- package/dist/Dropdown.js.map +1 -1
- package/dist/Input.js +21 -12
- package/dist/Input.js.map +1 -1
- package/dist/Kbd.js +6 -6
- package/dist/Label.js +54 -18
- package/dist/Label.js.map +1 -1
- package/dist/Modal.js +23 -13
- package/dist/Modal.js.map +1 -1
- package/dist/MultiEmailInput.js +41 -16
- package/dist/MultiEmailInput.js.map +1 -1
- package/dist/NoData.js +7 -8
- package/dist/NoData.js.map +1 -1
- package/dist/Pagination.js +15 -10
- package/dist/Pagination.js.map +1 -1
- package/dist/Pane.js +23 -13
- package/dist/Pane.js.map +1 -1
- package/dist/Popover.js +7 -8
- package/dist/Popover.js.map +1 -1
- package/dist/ProgressBar.js +1 -1
- package/dist/Radio.js +22 -13
- package/dist/Radio.js.map +1 -1
- package/dist/Select.js +42 -14
- package/dist/Select.js.map +1 -1
- package/dist/Sidebar.js +16 -11
- package/dist/Sidebar.js.map +1 -1
- package/dist/Slider.js +22 -13
- package/dist/Slider.js.map +1 -1
- package/dist/Spinner.js +1 -1
- package/dist/Stepper.js +1 -1
- package/dist/Switch.js +22 -13
- package/dist/Switch.js.map +1 -1
- package/dist/Tab.js +4 -5
- package/dist/Tab.js.map +1 -1
- package/dist/Table.js +19 -14
- package/dist/Table.js.map +1 -1
- package/dist/Tag.js +3 -3
- package/dist/Textarea.js +22 -13
- package/dist/Textarea.js.map +1 -1
- package/dist/TimePicker.js +22 -13
- package/dist/TimePicker.js.map +1 -1
- package/dist/TimePickerInput.js +258 -21
- package/dist/TimePickerInput.js.map +1 -1
- package/dist/Toastr.js +15 -126
- package/dist/Toastr.js.map +1 -1
- package/dist/Tooltip.js +73 -7
- package/dist/Tooltip.js.map +1 -1
- package/dist/Tree.js +13 -8
- package/dist/Tree.js.map +1 -1
- package/dist/TreeSelect.js +21 -11
- package/dist/TreeSelect.js.map +1 -1
- package/dist/Typography.js +4 -5
- package/dist/Typography.js.map +1 -1
- package/dist/cjs/Accordion.js +25 -21
- package/dist/cjs/Accordion.js.map +1 -1
- package/dist/cjs/ActionDropdown.js +24 -16
- package/dist/cjs/ActionDropdown.js.map +1 -1
- package/dist/cjs/Alert.js +25 -14
- package/dist/cjs/Alert.js.map +1 -1
- package/dist/cjs/Avatar.js +17 -13
- package/dist/cjs/Avatar.js.map +1 -1
- package/dist/cjs/Button.js +17 -14
- package/dist/cjs/Button.js.map +1 -1
- package/dist/cjs/Callout.js +11 -8
- package/dist/cjs/Callout.js.map +1 -1
- package/dist/cjs/Checkbox.js +32 -20
- package/dist/cjs/Checkbox.js.map +1 -1
- package/dist/cjs/ColorPicker.js +33 -22
- package/dist/cjs/ColorPicker.js.map +1 -1
- package/dist/cjs/DatePicker.js +35 -21
- package/dist/cjs/DatePicker.js.map +1 -1
- package/dist/cjs/DateTimePicker.js +45 -29
- package/dist/cjs/DateTimePicker.js.map +1 -1
- package/dist/cjs/Dropdown.js +50 -39
- package/dist/cjs/Dropdown.js.map +1 -1
- package/dist/cjs/Input.js +39 -25
- package/dist/cjs/Input.js.map +1 -1
- package/dist/cjs/Kbd.js +13 -10
- package/dist/cjs/Kbd.js.map +1 -1
- package/dist/cjs/Label.js +61 -21
- package/dist/cjs/Label.js.map +1 -1
- package/dist/cjs/Modal.js +36 -21
- package/dist/cjs/Modal.js.map +1 -1
- package/dist/cjs/MultiEmailInput.js +71 -39
- package/dist/cjs/MultiEmailInput.js.map +1 -1
- package/dist/cjs/NoData.js +15 -13
- package/dist/cjs/NoData.js.map +1 -1
- package/dist/cjs/Pagination.js +24 -17
- package/dist/cjs/Pagination.js.map +1 -1
- package/dist/cjs/Pane.js +36 -21
- package/dist/cjs/Pane.js.map +1 -1
- package/dist/cjs/Popover.js +14 -12
- package/dist/cjs/Popover.js.map +1 -1
- package/dist/cjs/ProgressBar.js +3 -2
- package/dist/cjs/ProgressBar.js.map +1 -1
- package/dist/cjs/Radio.js +39 -25
- package/dist/cjs/Radio.js.map +1 -1
- package/dist/cjs/Select.js +91 -54
- package/dist/cjs/Select.js.map +1 -1
- package/dist/cjs/Sidebar.js +38 -28
- package/dist/cjs/Sidebar.js.map +1 -1
- package/dist/cjs/Slider.js +29 -17
- package/dist/cjs/Slider.js.map +1 -1
- package/dist/cjs/Spinner.js +3 -2
- package/dist/cjs/Spinner.js.map +1 -1
- package/dist/cjs/Stepper.js +7 -6
- package/dist/cjs/Stepper.js.map +1 -1
- package/dist/cjs/Switch.js +35 -23
- package/dist/cjs/Switch.js.map +1 -1
- package/dist/cjs/Tab.js +15 -12
- package/dist/cjs/Tab.js.map +1 -1
- package/dist/cjs/Table.js +55 -44
- package/dist/cjs/Table.js.map +1 -1
- package/dist/cjs/Tag.js +10 -7
- package/dist/cjs/Tag.js.map +1 -1
- package/dist/cjs/Textarea.js +38 -24
- package/dist/cjs/Textarea.js.map +1 -1
- package/dist/cjs/TimePicker.js +31 -18
- package/dist/cjs/TimePicker.js.map +1 -1
- package/dist/cjs/TimePickerInput.js +268 -22
- package/dist/cjs/TimePickerInput.js.map +1 -1
- package/dist/cjs/Toastr.js +32 -155
- package/dist/cjs/Toastr.js.map +1 -1
- package/dist/cjs/Tooltip.js +78 -8
- package/dist/cjs/Tooltip.js.map +1 -1
- package/dist/cjs/Tree.js +20 -12
- package/dist/cjs/Tree.js.map +1 -1
- package/dist/cjs/TreeSelect.js +30 -16
- package/dist/cjs/TreeSelect.js.map +1 -1
- package/dist/cjs/Typography.js +11 -8
- package/dist/cjs/Typography.js.map +1 -1
- package/dist/cjs/formik/ActionBlock.js +12 -11
- package/dist/cjs/formik/ActionBlock.js.map +1 -1
- package/dist/cjs/formik/BlockNavigation.js +29 -16
- package/dist/cjs/formik/BlockNavigation.js.map +1 -1
- package/dist/cjs/formik/Button.js +11 -10
- package/dist/cjs/formik/Button.js.map +1 -1
- package/dist/cjs/formik/Checkbox.js +28 -16
- package/dist/cjs/formik/Checkbox.js.map +1 -1
- package/dist/cjs/formik/Form.js +29 -24
- package/dist/cjs/formik/Form.js.map +1 -1
- package/dist/cjs/formik/Input.js +27 -15
- package/dist/cjs/formik/Input.js.map +1 -1
- package/dist/cjs/formik/MultiEmailInput.js +47 -15
- package/dist/cjs/formik/MultiEmailInput.js.map +1 -1
- package/dist/cjs/formik/Radio.js +31 -18
- package/dist/cjs/formik/Radio.js.map +1 -1
- package/dist/cjs/formik/Select.js +48 -16
- package/dist/cjs/formik/Select.js.map +1 -1
- package/dist/cjs/formik/Slider.js +31 -18
- package/dist/cjs/formik/Slider.js.map +1 -1
- package/dist/cjs/formik/Switch.js +28 -16
- package/dist/cjs/formik/Switch.js.map +1 -1
- package/dist/cjs/formik/Textarea.js +28 -16
- package/dist/cjs/formik/Textarea.js.map +1 -1
- package/dist/cjs/formik/TreeSelect.js +27 -14
- package/dist/cjs/formik/TreeSelect.js.map +1 -1
- package/dist/cjs/formik/index.js +45 -16
- package/dist/cjs/formik/index.js.map +1 -1
- package/dist/cjs/index-f2e36d91.js +167 -0
- package/dist/cjs/index-f2e36d91.js.map +1 -0
- package/dist/cjs/index.css +1 -1
- package/dist/cjs/index.js +49 -20
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/layouts.js +16 -11
- package/dist/cjs/layouts.js.map +1 -1
- package/dist/cjs/managers.js +2 -2
- package/dist/cjs/overlayManager.js +9 -4
- package/dist/cjs/overlayManager.js.map +1 -1
- package/dist/cjs/{react-select-creatable.esm-b39742a3.js → react-select-creatable.esm-23eddf9f.js} +130 -367
- package/dist/cjs/react-select-creatable.esm-23eddf9f.js.map +1 -0
- package/dist/cjs/{useOverlayManager-359ed795.js → useOverlayManager-1de0435e.js} +37 -75
- package/dist/cjs/useOverlayManager-1de0435e.js.map +1 -0
- package/dist/cjs/{useQueryParams-14f054b3.js → useQueryParams-a8ee2f76.js} +9 -5
- package/dist/cjs/useQueryParams-a8ee2f76.js.map +1 -0
- package/dist/formik/ActionBlock.js +7 -8
- package/dist/formik/ActionBlock.js.map +1 -1
- package/dist/formik/BlockNavigation.js +23 -13
- package/dist/formik/BlockNavigation.js.map +1 -1
- package/dist/formik/Button.js +7 -8
- package/dist/formik/Button.js.map +1 -1
- package/dist/formik/Checkbox.js +22 -13
- package/dist/formik/Checkbox.js.map +1 -1
- package/dist/formik/Form.js +13 -14
- package/dist/formik/Form.js.map +1 -1
- package/dist/formik/Input.js +21 -12
- package/dist/formik/Input.js.map +1 -1
- package/dist/formik/MultiEmailInput.js +41 -12
- package/dist/formik/MultiEmailInput.js.map +1 -1
- package/dist/formik/Radio.js +23 -14
- package/dist/formik/Radio.js.map +1 -1
- package/dist/formik/Select.js +40 -12
- package/dist/formik/Select.js.map +1 -1
- package/dist/formik/Slider.js +23 -14
- package/dist/formik/Slider.js.map +1 -1
- package/dist/formik/Switch.js +22 -13
- package/dist/formik/Switch.js.map +1 -1
- package/dist/formik/Textarea.js +22 -13
- package/dist/formik/Textarea.js.map +1 -1
- package/dist/formik/TreeSelect.js +21 -11
- package/dist/formik/TreeSelect.js.map +1 -1
- package/dist/formik/index.js +45 -16
- package/dist/formik/index.js.map +1 -1
- package/dist/index-9d5142b4.js +145 -0
- package/dist/index-9d5142b4.js.map +1 -0
- package/dist/index.css +1 -1
- package/dist/index.js +47 -18
- package/dist/index.js.map +1 -1
- package/dist/layouts.js +16 -11
- package/dist/layouts.js.map +1 -1
- package/dist/managers.js +2 -2
- package/dist/overlayManager.js +2 -2
- package/dist/{react-select-creatable.esm-93affeca.js → react-select-creatable.esm-ad71b0c0.js} +43 -289
- package/dist/react-select-creatable.esm-ad71b0c0.js.map +1 -0
- package/dist/{useOverlayManager-95a474d5.js → useOverlayManager-9d385819.js} +9 -54
- package/dist/useOverlayManager-9d385819.js.map +1 -0
- package/dist/{useQueryParams-4e7ddcf8.js → useQueryParams-dcb34865.js} +4 -4
- package/dist/{useQueryParams-4e7ddcf8.js.map → useQueryParams-dcb34865.js.map} +1 -1
- package/package.json +13 -6
- package/types/Label.d.ts +7 -0
- package/dist/cjs/createClass-80e17c6a.js +0 -31
- package/dist/cjs/createClass-80e17c6a.js.map +0 -1
- package/dist/cjs/defineProperty-ee86604b.js +0 -21
- package/dist/cjs/defineProperty-ee86604b.js.map +0 -1
- package/dist/cjs/extends-1b35a664.js +0 -19
- package/dist/cjs/extends-1b35a664.js.map +0 -1
- package/dist/cjs/index-302c3d37.js +0 -58
- package/dist/cjs/index-302c3d37.js.map +0 -1
- package/dist/cjs/index-5d74cfeb.js +0 -375
- package/dist/cjs/index-5d74cfeb.js.map +0 -1
- package/dist/cjs/index-6e09c7bc.js +0 -2211
- package/dist/cjs/index-6e09c7bc.js.map +0 -1
- package/dist/cjs/index-773961dd.js +0 -453
- package/dist/cjs/index-773961dd.js.map +0 -1
- package/dist/cjs/index-a8cc581e.js +0 -2383
- package/dist/cjs/index-a8cc581e.js.map +0 -1
- package/dist/cjs/index-becc6543.js +0 -262
- package/dist/cjs/index-becc6543.js.map +0 -1
- package/dist/cjs/objectWithoutProperties-2fed2d7d.js +0 -33
- package/dist/cjs/objectWithoutProperties-2fed2d7d.js.map +0 -1
- package/dist/cjs/react-select-creatable.esm-b39742a3.js.map +0 -1
- package/dist/cjs/slicedToArray-732a2048.js +0 -63
- package/dist/cjs/slicedToArray-732a2048.js.map +0 -1
- package/dist/cjs/toConsumableArray-418424fc.js +0 -23
- package/dist/cjs/toConsumableArray-418424fc.js.map +0 -1
- package/dist/cjs/toPropertyKey-bfa2e465.js +0 -31
- package/dist/cjs/toPropertyKey-bfa2e465.js.map +0 -1
- package/dist/cjs/useOverlayManager-359ed795.js.map +0 -1
- package/dist/cjs/useQueryParams-14f054b3.js.map +0 -1
- package/dist/createClass-601a36b2.js +0 -28
- package/dist/createClass-601a36b2.js.map +0 -1
- package/dist/defineProperty-e5245270.js +0 -19
- package/dist/defineProperty-e5245270.js.map +0 -1
- package/dist/extends-093996c9.js +0 -17
- package/dist/extends-093996c9.js.map +0 -1
- package/dist/index-34956d66.js +0 -372
- package/dist/index-34956d66.js.map +0 -1
- package/dist/index-3659771d.js +0 -56
- package/dist/index-3659771d.js.map +0 -1
- package/dist/index-661b9fd6.js +0 -253
- package/dist/index-661b9fd6.js.map +0 -1
- package/dist/index-7fae3611.js +0 -2381
- package/dist/index-7fae3611.js.map +0 -1
- package/dist/index-c442518b.js +0 -445
- package/dist/index-c442518b.js.map +0 -1
- package/dist/index-c8d9113c.js +0 -2193
- package/dist/index-c8d9113c.js.map +0 -1
- package/dist/objectWithoutProperties-a0edb288.js +0 -31
- package/dist/objectWithoutProperties-a0edb288.js.map +0 -1
- package/dist/react-select-creatable.esm-93affeca.js.map +0 -1
- package/dist/slicedToArray-45fa766e.js +0 -57
- package/dist/slicedToArray-45fa766e.js.map +0 -1
- package/dist/toConsumableArray-1186e144.js +0 -20
- package/dist/toConsumableArray-1186e144.js.map +0 -1
- package/dist/toPropertyKey-bdc24cb9.js +0 -28
- package/dist/toPropertyKey-bdc24cb9.js.map +0 -1
- package/dist/useOverlayManager-95a474d5.js.map +0 -1
package/dist/Textarea.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Textarea.js","sources":["../src/components/Textarea.jsx"],"sourcesContent":["import React, { useState, useEffect, forwardRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nimport { useSyncedRef, useId } from \"hooks\";\nimport { hyphenize } from \"utils\";\n\nimport Label from \"./Label\";\n\nconst SIZES = { small: \"small\", medium: \"medium\", large: \"large\" };\n\nconst ROWS = { small: 1, medium: 3, large: 4 };\n\nconst RESIZE = { vertical: \"vertical\", none: \"none\" };\n\nconst Textarea = forwardRef(\n (\n {\n size = SIZES.medium,\n resize = RESIZE.vertical,\n suffix = null,\n prefix = null,\n disabled = false,\n required = false,\n nakedTextarea = false,\n helpText = \"\",\n error = \"\",\n label = \"\",\n className = \"\",\n maxLength,\n unlimitedChars = false,\n labelProps,\n onBlur,\n disableTrimOnBlur = false,\n ...otherProps\n },\n ref\n ) => {\n const [valueInternal, setValueInternal] = useState(\"\");\n\n const value = otherProps.value ?? valueInternal ?? \"\";\n\n const id = useId(otherProps.id);\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n const textareaRef = useSyncedRef(ref);\n\n const valueLength = value?.toString().length || 0;\n const isCharacterLimitVisible = valueLength >= maxLength * 0.85;\n const maxLengthError = unlimitedChars && valueLength > maxLength;\n\n const onChangeInternal = e => setValueInternal(e.target.value);\n const onChange = otherProps.onChange ?? onChangeInternal;\n const isMaxLengthPresent = !!maxLength || maxLength === 0;\n\n useEffect(() => {\n textareaRef.current.style.minHeight = \"22px\";\n textareaRef.current.style.height = \"auto\";\n const scrollHeight = textareaRef.current.scrollHeight;\n textareaRef.current.style.height = `${scrollHeight + 1}px`;\n }, [value]);\n\n const handleTrimmedChangeOnBlur = e => {\n if (disableTrimOnBlur || typeof value !== \"string\") return;\n\n const trimmedValue = value.trim();\n if (value === trimmedValue) return;\n\n e.target.value = trimmedValue;\n onChange(e);\n };\n\n const handleOnBlur = e => {\n handleTrimmedChangeOnBlur(e);\n onBlur?.(e);\n };\n\n return (\n <div className={classnames([\"neeto-ui-input__wrapper\", className])}>\n <div className=\"neeto-ui-input__label-wrapper\">\n {label && (\n <Label\n {...{ required }}\n data-cy={`${hyphenize(label)}-label`}\n htmlFor={id}\n {...labelProps}\n >\n {label}\n </Label>\n )}\n {isCharacterLimitVisible && (\n <p\n className={classnames(\"neeto-ui-input__max-length\", {\n \"neeto-ui-input__max-length--error\": maxLengthError,\n })}\n >\n {valueLength}/{maxLength}\n </p>\n )}\n </div>\n <div\n data-cy={`${hyphenize(label)}-text-input`}\n className={classnames(\"neeto-ui-input\", \"neeto-ui-input--textarea\", {\n \"neeto-ui-input--error\": !!error,\n \"neeto-ui-input--disabled\": !!disabled,\n \"neeto-ui-input--naked\": !!nakedTextarea,\n \"neeto-ui-input--small\": size === SIZES.small,\n \"neeto-ui-input--medium\": size === SIZES.medium,\n \"neeto-ui-input--large\": size === SIZES.large,\n \"neeto-ui-input--resize--vertical\": resize === RESIZE.vertical,\n \"neeto-ui-input--resize--none\": resize === RESIZE.none,\n })}\n >\n {prefix && <div className=\"neeto-ui-input__prefix\">{prefix}</div>}\n <textarea\n ref={textareaRef}\n rows={ROWS[size]}\n {...{\n disabled,\n ...(isMaxLengthPresent && !unlimitedChars && { maxLength }),\n ...otherProps,\n onChange,\n value,\n }}\n onBlur={handleOnBlur}\n />\n {suffix && <div className=\"neeto-ui-input__suffix\">{suffix}</div>}\n </div>\n {!!error && (\n <p\n className=\"neeto-ui-input__error\"\n data-cy={`${hyphenize(label)}-input-error`}\n id={errorId}\n >\n {error}\n </p>\n )}\n {helpText && (\n <p className=\"neeto-ui-input__help-text\" id={helpTextId}>\n {helpText}\n </p>\n )}\n </div>\n );\n }\n);\n\nTextarea.displayName = \"Textarea\";\n\nTextarea.propTypes = {\n /**\n * To specify the row height of the Textarea.\n */\n rows: PropTypes.number,\n /**\n * To specify the size of Textarea.\n */\n size: PropTypes.oneOf(Object.values(SIZES)),\n /**\n * To specify the label shown above the Textarea.\n */\n label: PropTypes.string,\n /**\n * To specify the label props to be passed to the Label component.\n */\n labelProps: PropTypes.object,\n /**\n * To provide the value of the Textarea.\n */\n value: PropTypes.string,\n /**\n * To provide the error message shown below the Textarea.\n */\n error: PropTypes.string,\n /**\n * To provide the placeholder text for the Textarea.\n */\n placeholder: PropTypes.string,\n /**\n * To specify whether the Textarea is required.\n */\n required: PropTypes.bool,\n /**\n * To specify whether the Textarea is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * To provide additional classnames to the Textarea container.\n */\n className: PropTypes.string,\n /**\n * The resize property sets whether the Textarea is resizable.\n */\n resize: PropTypes.oneOf(Object.values(RESIZE)),\n /**\n * To specify the text that appears below the Textarea.\n */\n helpText: PropTypes.string,\n /**\n * To create a Textarea without any borders.\n */\n nakedTextarea: PropTypes.bool,\n /**\n * To specify a maximum character limit to the Textarea. Charater limit is visible only if the Textarea value is greater than or equal to 85% of the maximum character limit.\n */\n maxLength: PropTypes.number,\n /**\n * To be used along with maxLength prop. When set to true the character limit will not be enforced and character count will be shown in error state if the character limit is exceeded.\n */\n unlimitedChars: PropTypes.bool,\n /**\n * To specify the content to be added at the end of the Textarea.\n */\n suffix: PropTypes.node,\n /**\n * To specify the content to be added at the beginning of the Textarea.\n */\n prefix: PropTypes.node,\n /**\n * To disable leading and trailing white spaces onBlur.\n */\n disableTrimOnBlur: PropTypes.bool,\n};\n\nexport default Textarea;\n"],"names":["SIZES","small","medium","large","ROWS","RESIZE","vertical","none","Textarea","forwardRef","_ref","ref","_ref2","_otherProps$value","_otherProps$onChange","_ref$size","size","_ref$resize","resize","_ref$suffix","suffix","_ref$prefix","prefix","_ref$disabled","disabled","_ref$required","required","_ref$nakedTextarea","nakedTextarea","_ref$helpText","helpText","_ref$error","error","_ref$label","label","_ref$className","className","maxLength","_ref$unlimitedChars","unlimitedChars","labelProps","onBlur","_ref$disableTrimOnBlu","disableTrimOnBlur","otherProps","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","valueInternal","setValueInternal","value","id","useId","errorId","concat","helpTextId","textareaRef","useSyncedRef","valueLength","toString","length","isCharacterLimitVisible","maxLengthError","onChangeInternal","e","target","onChange","isMaxLengthPresent","useEffect","current","style","minHeight","height","scrollHeight","handleTrimmedChangeOnBlur","trimmedValue","trim","handleOnBlur","React","createElement","classnames","Label","_extends","hyphenize","htmlFor","rows","_objectSpread","displayName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Textarea.js","sources":["../src/components/Textarea.jsx"],"sourcesContent":["import React, { useState, useEffect, forwardRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nimport { useSyncedRef, useId } from \"hooks\";\nimport { hyphenize } from \"utils\";\n\nimport Label from \"./Label\";\n\nconst SIZES = { small: \"small\", medium: \"medium\", large: \"large\" };\n\nconst ROWS = { small: 1, medium: 3, large: 4 };\n\nconst RESIZE = { vertical: \"vertical\", none: \"none\" };\n\nconst Textarea = forwardRef(\n (\n {\n size = SIZES.medium,\n resize = RESIZE.vertical,\n suffix = null,\n prefix = null,\n disabled = false,\n required = false,\n nakedTextarea = false,\n helpText = \"\",\n error = \"\",\n label = \"\",\n className = \"\",\n maxLength,\n unlimitedChars = false,\n labelProps,\n onBlur,\n disableTrimOnBlur = false,\n ...otherProps\n },\n ref\n ) => {\n const [valueInternal, setValueInternal] = useState(\"\");\n\n const value = otherProps.value ?? valueInternal ?? \"\";\n\n const id = useId(otherProps.id);\n const errorId = `error_${id}`;\n const helpTextId = `helpText_${id}`;\n const textareaRef = useSyncedRef(ref);\n\n const valueLength = value?.toString().length || 0;\n const isCharacterLimitVisible = valueLength >= maxLength * 0.85;\n const maxLengthError = unlimitedChars && valueLength > maxLength;\n\n const onChangeInternal = e => setValueInternal(e.target.value);\n const onChange = otherProps.onChange ?? onChangeInternal;\n const isMaxLengthPresent = !!maxLength || maxLength === 0;\n\n useEffect(() => {\n textareaRef.current.style.minHeight = \"22px\";\n textareaRef.current.style.height = \"auto\";\n const scrollHeight = textareaRef.current.scrollHeight;\n textareaRef.current.style.height = `${scrollHeight + 1}px`;\n }, [value]);\n\n const handleTrimmedChangeOnBlur = e => {\n if (disableTrimOnBlur || typeof value !== \"string\") return;\n\n const trimmedValue = value.trim();\n if (value === trimmedValue) return;\n\n e.target.value = trimmedValue;\n onChange(e);\n };\n\n const handleOnBlur = e => {\n handleTrimmedChangeOnBlur(e);\n onBlur?.(e);\n };\n\n return (\n <div className={classnames([\"neeto-ui-input__wrapper\", className])}>\n <div className=\"neeto-ui-input__label-wrapper\">\n {label && (\n <Label\n {...{ required }}\n data-cy={`${hyphenize(label)}-label`}\n htmlFor={id}\n {...labelProps}\n >\n {label}\n </Label>\n )}\n {isCharacterLimitVisible && (\n <p\n className={classnames(\"neeto-ui-input__max-length\", {\n \"neeto-ui-input__max-length--error\": maxLengthError,\n })}\n >\n {valueLength}/{maxLength}\n </p>\n )}\n </div>\n <div\n data-cy={`${hyphenize(label)}-text-input`}\n className={classnames(\"neeto-ui-input\", \"neeto-ui-input--textarea\", {\n \"neeto-ui-input--error\": !!error,\n \"neeto-ui-input--disabled\": !!disabled,\n \"neeto-ui-input--naked\": !!nakedTextarea,\n \"neeto-ui-input--small\": size === SIZES.small,\n \"neeto-ui-input--medium\": size === SIZES.medium,\n \"neeto-ui-input--large\": size === SIZES.large,\n \"neeto-ui-input--resize--vertical\": resize === RESIZE.vertical,\n \"neeto-ui-input--resize--none\": resize === RESIZE.none,\n })}\n >\n {prefix && <div className=\"neeto-ui-input__prefix\">{prefix}</div>}\n <textarea\n ref={textareaRef}\n rows={ROWS[size]}\n {...{\n disabled,\n ...(isMaxLengthPresent && !unlimitedChars && { maxLength }),\n ...otherProps,\n onChange,\n value,\n }}\n onBlur={handleOnBlur}\n />\n {suffix && <div className=\"neeto-ui-input__suffix\">{suffix}</div>}\n </div>\n {!!error && (\n <p\n className=\"neeto-ui-input__error\"\n data-cy={`${hyphenize(label)}-input-error`}\n id={errorId}\n >\n {error}\n </p>\n )}\n {helpText && (\n <p className=\"neeto-ui-input__help-text\" id={helpTextId}>\n {helpText}\n </p>\n )}\n </div>\n );\n }\n);\n\nTextarea.displayName = \"Textarea\";\n\nTextarea.propTypes = {\n /**\n * To specify the row height of the Textarea.\n */\n rows: PropTypes.number,\n /**\n * To specify the size of Textarea.\n */\n size: PropTypes.oneOf(Object.values(SIZES)),\n /**\n * To specify the label shown above the Textarea.\n */\n label: PropTypes.string,\n /**\n * To specify the label props to be passed to the Label component.\n */\n labelProps: PropTypes.object,\n /**\n * To provide the value of the Textarea.\n */\n value: PropTypes.string,\n /**\n * To provide the error message shown below the Textarea.\n */\n error: PropTypes.string,\n /**\n * To provide the placeholder text for the Textarea.\n */\n placeholder: PropTypes.string,\n /**\n * To specify whether the Textarea is required.\n */\n required: PropTypes.bool,\n /**\n * To specify whether the Textarea is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * To provide additional classnames to the Textarea container.\n */\n className: PropTypes.string,\n /**\n * The resize property sets whether the Textarea is resizable.\n */\n resize: PropTypes.oneOf(Object.values(RESIZE)),\n /**\n * To specify the text that appears below the Textarea.\n */\n helpText: PropTypes.string,\n /**\n * To create a Textarea without any borders.\n */\n nakedTextarea: PropTypes.bool,\n /**\n * To specify a maximum character limit to the Textarea. Charater limit is visible only if the Textarea value is greater than or equal to 85% of the maximum character limit.\n */\n maxLength: PropTypes.number,\n /**\n * To be used along with maxLength prop. When set to true the character limit will not be enforced and character count will be shown in error state if the character limit is exceeded.\n */\n unlimitedChars: PropTypes.bool,\n /**\n * To specify the content to be added at the end of the Textarea.\n */\n suffix: PropTypes.node,\n /**\n * To specify the content to be added at the beginning of the Textarea.\n */\n prefix: PropTypes.node,\n /**\n * To disable leading and trailing white spaces onBlur.\n */\n disableTrimOnBlur: PropTypes.bool,\n};\n\nexport default Textarea;\n"],"names":["SIZES","small","medium","large","ROWS","RESIZE","vertical","none","Textarea","forwardRef","_ref","ref","_ref2","_otherProps$value","_otherProps$onChange","_ref$size","size","_ref$resize","resize","_ref$suffix","suffix","_ref$prefix","prefix","_ref$disabled","disabled","_ref$required","required","_ref$nakedTextarea","nakedTextarea","_ref$helpText","helpText","_ref$error","error","_ref$label","label","_ref$className","className","maxLength","_ref$unlimitedChars","unlimitedChars","labelProps","onBlur","_ref$disableTrimOnBlu","disableTrimOnBlur","otherProps","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","valueInternal","setValueInternal","value","id","useId","errorId","concat","helpTextId","textareaRef","useSyncedRef","valueLength","toString","length","isCharacterLimitVisible","maxLengthError","onChangeInternal","e","target","onChange","isMaxLengthPresent","useEffect","current","style","minHeight","height","scrollHeight","handleTrimmedChangeOnBlur","trimmedValue","trim","handleOnBlur","React","createElement","classnames","Label","_extends","hyphenize","htmlFor","rows","_objectSpread","displayName"],"mappings":"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"}
|
package/dist/TimePicker.js
CHANGED
|
@@ -1,27 +1,36 @@
|
|
|
1
1
|
import _ConfigProvider from 'antd/lib/config-provider';
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
2
|
+
import _extends from '@babel/runtime/helpers/extends';
|
|
3
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
4
|
+
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
5
5
|
import React__default, { forwardRef } from 'react';
|
|
6
|
-
import
|
|
6
|
+
import classnames from 'classnames';
|
|
7
7
|
import { Clock } from '@bigbinary/neeto-icons';
|
|
8
8
|
import Label from './Label.js';
|
|
9
9
|
import { u as useId } from './useId-c1d20bba.js';
|
|
10
|
+
import '@babel/runtime/helpers/slicedToArray';
|
|
10
11
|
import 'react-router-dom';
|
|
11
|
-
import '
|
|
12
|
+
import '@bigbinary/neeto-hotkeys';
|
|
12
13
|
import './overlayManager.js';
|
|
13
|
-
import { c as convertToDayjsObjects, h as hyphenize, A as ANT_DESIGN_GLOBAL_TOKEN_OVERRIDES, n as noop } from './index-
|
|
14
|
+
import { c as convertToDayjsObjects, h as hyphenize, A as ANT_DESIGN_GLOBAL_TOKEN_OVERRIDES, n as noop } from './index-9d5142b4.js';
|
|
15
|
+
import 'qs';
|
|
14
16
|
import { u as useSyncedRef } from './useSyncedRef-226a3dbc.js';
|
|
15
17
|
import _DatePicker from 'antd/lib/date-picker';
|
|
16
|
-
import './
|
|
17
|
-
import './
|
|
18
|
-
import './
|
|
18
|
+
import './Button.js';
|
|
19
|
+
import './motion-087daf52.js';
|
|
20
|
+
import './Tooltip.js';
|
|
21
|
+
import '@tippyjs/react';
|
|
19
22
|
import 'tippy.js';
|
|
20
|
-
import '
|
|
21
|
-
import '
|
|
22
|
-
import '
|
|
23
|
+
import './Popover.js';
|
|
24
|
+
import './Typography.js';
|
|
25
|
+
import '@babel/runtime/helpers/classCallCheck';
|
|
26
|
+
import '@babel/runtime/helpers/createClass';
|
|
27
|
+
import 'dayjs';
|
|
28
|
+
import 'dayjs/plugin/localeData';
|
|
29
|
+
import 'dayjs/plugin/utc';
|
|
30
|
+
import 'dayjs/plugin/weekday';
|
|
31
|
+
import 'dayjs/plugin/weekOfYear';
|
|
23
32
|
import '@bigbinary/neeto-cist';
|
|
24
|
-
import '
|
|
33
|
+
import 'ramda';
|
|
25
34
|
|
|
26
35
|
var RangePicker = _DatePicker.RangePicker;
|
|
27
36
|
var TIME_PICKER_TYPES = {
|
package/dist/TimePicker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimePicker.js","sources":["../src/components/TimePicker/constants.js","../src/components/TimePicker/index.jsx"],"sourcesContent":["import { DatePicker as AntTimePicker } from \"antd\";\n\nconst { RangePicker } = AntTimePicker;\n\nexport const TIME_PICKER_TYPES = {\n range: RangePicker,\n time: AntTimePicker,\n};\n","import React, { forwardRef } from \"react\";\n\nimport { ConfigProvider } from \"antd\";\nimport classnames from \"classnames\";\nimport { Clock } from \"neetoicons\";\nimport PropTypes from \"prop-types\";\n\nimport Label from \"components/Label\";\nimport { useSyncedRef, useId } from \"hooks\";\nimport {\n convertToDayjsObjects,\n noop,\n hyphenize,\n ANT_DESIGN_GLOBAL_TOKEN_OVERRIDES,\n} from \"utils\";\n\nimport { TIME_PICKER_TYPES } from \"./constants\";\n\nconst INPUT_SIZES = { small: \"small\", medium: \"medium\", large: \"large\" };\n\nconst TIME_PICKER_INTERVAL = {\n hourStep: 1,\n minuteStep: 1,\n secondStep: 1,\n};\n\nconst TimePicker = forwardRef(\n (\n {\n className = \"\",\n label = \"\",\n size = INPUT_SIZES.medium,\n dropdownClassName = \"\",\n popupClassName = \"\",\n format = \"HH:mm:ss\",\n interval = TIME_PICKER_INTERVAL,\n onChange = noop,\n type = \"time\",\n nakedInput = false,\n disabled = false,\n error = \"\",\n defaultValue,\n value,\n labelProps,\n required = false,\n ...otherProps\n },\n ref\n ) => {\n const id = useId(otherProps.id);\n const timePickerRef = useSyncedRef(ref);\n\n const Component = TIME_PICKER_TYPES[type.toLowerCase()];\n\n const errorId = `error_${id}`;\n\n const showTimeLabels = {};\n if (format.includes(\"s\")) {\n showTimeLabels.second = true;\n }\n\n if (format.includes(\"m\")) {\n showTimeLabels.minute = true;\n }\n\n if (format.includes(\"H\") || format.includes(\"h\")) {\n showTimeLabels.hour = true;\n }\n\n const handleOnChange = (time, timeString) => {\n type === \"range\" && !time\n ? onChange([], timeString)\n : onChange(time, timeString);\n };\n\n const panelRender = originalPanel => (\n <div className=\"neeto-ui-date-input-custom-panel\">\n <div className=\"neeto-ui-date-input-custom-panel__header\">\n <ul className=\"neeto-ui-date-input-custom-panel__header-cols\">\n {showTimeLabels.hour && (\n <li className=\"neeto-ui-date-input-custom-panel__header-col\">\n Hour\n </li>\n )}\n {showTimeLabels.minute && (\n <li className=\"neeto-ui-date-input-custom-panel__header-col\">\n Minutes\n </li>\n )}\n {showTimeLabels.second && (\n <li className=\"neeto-ui-date-input-custom-panel__header-col\">\n Seconds\n </li>\n )}\n </ul>\n </div>\n <div className=\"neeto-ui-date-input-custom-panel__body\">\n {originalPanel}\n </div>\n </div>\n );\n\n return (\n <ConfigProvider\n theme={{\n token: { ...ANT_DESIGN_GLOBAL_TOKEN_OVERRIDES },\n components: {\n DatePicker: {\n // Global overrides\n colorBgElevated: \"rgb(var(--neeto-ui-white))\",\n colorPrimary: \"rgb(var(--neeto-ui-primary-500))\",\n colorPrimaryHover: \"rgb(var(--neeto-ui-primary-600))\",\n colorBorder: \"rgb(var(--neeto-ui-gray-300))\",\n colorLink: \"rgb(var(--neeto-ui-primary-500))\",\n colorLinkHover: \"rgb(var(--neeto-ui-primary-600))\",\n colorText: \"rgb(var(--neeto-ui-gray-800))\",\n colorTextDisabled: \"rgb(var(--neeto-ui-gray-500))\",\n colorTextPlaceholder: \"rgb(var(--neeto-ui-gray-400))\",\n controlItemBgActive: \"rgb(var(--neeto-ui-primary-800))\",\n controlItemBgHover: \"rgb(var(--neeto-ui-gray-100))\",\n controlOutline: \"rgb(var(--neeto-ui-gray-300))\",\n },\n },\n }}\n >\n <div className=\"neeto-ui-input__wrapper\">\n {label && <Label {...{ required, ...labelProps }}>{label}</Label>}\n <Component\n hourStep={interval.hourStep}\n minuteStep={interval.minuteStep}\n ref={timePickerRef}\n secondStep={interval.secondStep}\n className={classnames(\"neeto-ui-time-input\", [className], {\n \"neeto-ui-time-input--small\": size === \"small\",\n \"neeto-ui-time-input--medium\": size === \"medium\",\n \"neeto-ui-time-input--large\": size === \"large\",\n \"neeto-ui-time-input--disabled\": disabled,\n \"neeto-ui-time-input--naked\": nakedInput,\n \"neeto-ui-time-input--error\": error,\n })}\n popupClassName={classnames(\"neeto-ui-date-time-dropdown\", [\n dropdownClassName, // Will be removed in the next major version\n popupClassName,\n ])}\n onChange={handleOnChange}\n {...{ disabled, format, ...otherProps, panelRender }}\n defaultValue={convertToDayjsObjects(defaultValue)}\n mode={undefined}\n picker=\"time\"\n suffixIcon={<Clock size={16} />}\n value={convertToDayjsObjects(value)}\n />\n {!!error && (\n <p\n className=\"neeto-ui-input__error\"\n data-cy={`${hyphenize(label)}-input-error`}\n id={errorId}\n >\n {error}\n </p>\n )}\n </div>\n </ConfigProvider>\n );\n }\n);\n\nTimePicker.displayName = \"TimePicker\";\n\nTimePicker.propTypes = {\n /**\n * To provide external classnames to TimePicker component.\n */\n className: PropTypes.string,\n /**\n * To set the text to be displayed above the TimePicker.\n */\n label: PropTypes.string,\n /**\n * To specify the label props to be passed to the Label component.\n */\n labelProps: PropTypes.object,\n /**\n * To set the size of the TimePicker.\n */\n size: PropTypes.oneOf(Object.values(INPUT_SIZES)),\n /**\n * To set the TimePicker as naked Input field.\n */\n nakedInput: PropTypes.bool,\n /**\n * To specify the error message to be shown in the TimePicker.\n */\n error: PropTypes.string,\n /**\n * To specify the time format.\n */\n format: PropTypes.string,\n /**\n * To specify the time interval.\n */\n interval: PropTypes.object,\n /**\n * For `TimeInput`,(time, timeString) => {} <br />\n * For `TimeRange`, (time, [startTime, endTime]) => {}\n */\n onChange: PropTypes.func,\n /**\n * To specify the type of the TimePicker.\n */\n type: PropTypes.oneOf([\"time\", \"range\"]),\n /**\n * To set TimePicker as disabled.\n */\n disabled: PropTypes.bool,\n /**\n * To specify the values to be displayed inside the TimePicker.\n */\n value: PropTypes.oneOfType([PropTypes.array, PropTypes.object]),\n /**\n * To specify custom classnames to be applied to the TimePicker dropdown.\n */\n dropdownClassName: PropTypes.string,\n /**\n * To specify the default values to be displayed inside the TimePicker.\n */\n defaultValue: PropTypes.oneOfType([PropTypes.array, PropTypes.object]),\n /**\n * To specify whether the Time picker is required or not.\n */\n required: PropTypes.bool,\n};\n\nexport default TimePicker;\n"],"names":["RangePicker","_DatePicker","TIME_PICKER_TYPES","range","time","INPUT_SIZES","small","medium","large","TIME_PICKER_INTERVAL","hourStep","minuteStep","secondStep","TimePicker","forwardRef","_ref","ref","_ref$className","className","_ref$label","label","_ref$size","size","_ref$dropdownClassNam","dropdownClassName","_ref$popupClassName","popupClassName","_ref$format","format","_ref$interval","interval","_ref$onChange","onChange","noop","_ref$type","type","_ref$nakedInput","nakedInput","_ref$disabled","disabled","_ref$error","error","defaultValue","value","labelProps","_ref$required","required","otherProps","_objectWithoutProperties","_excluded","id","useId","timePickerRef","useSyncedRef","Component","toLowerCase","errorId","concat","showTimeLabels","includes","second","minute","hour","handleOnChange","timeString","panelRender","originalPanel","React","createElement","_ConfigProvider","theme","token","_objectSpread","ANT_DESIGN_GLOBAL_TOKEN_OVERRIDES","components","DatePicker","colorBgElevated","colorPrimary","colorPrimaryHover","colorBorder","colorLink","colorLinkHover","colorText","colorTextDisabled","colorTextPlaceholder","controlItemBgActive","controlItemBgHover","controlOutline","Label","_extends","classnames","convertToDayjsObjects","mode","undefined","picker","suffixIcon","Clock","hyphenize","displayName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TimePicker.js","sources":["../src/components/TimePicker/constants.js","../src/components/TimePicker/index.jsx"],"sourcesContent":["import { DatePicker as AntTimePicker } from \"antd\";\n\nconst { RangePicker } = AntTimePicker;\n\nexport const TIME_PICKER_TYPES = {\n range: RangePicker,\n time: AntTimePicker,\n};\n","import React, { forwardRef } from \"react\";\n\nimport { ConfigProvider } from \"antd\";\nimport classnames from \"classnames\";\nimport { Clock } from \"neetoicons\";\nimport PropTypes from \"prop-types\";\n\nimport Label from \"components/Label\";\nimport { useSyncedRef, useId } from \"hooks\";\nimport {\n convertToDayjsObjects,\n noop,\n hyphenize,\n ANT_DESIGN_GLOBAL_TOKEN_OVERRIDES,\n} from \"utils\";\n\nimport { TIME_PICKER_TYPES } from \"./constants\";\n\nconst INPUT_SIZES = { small: \"small\", medium: \"medium\", large: \"large\" };\n\nconst TIME_PICKER_INTERVAL = {\n hourStep: 1,\n minuteStep: 1,\n secondStep: 1,\n};\n\nconst TimePicker = forwardRef(\n (\n {\n className = \"\",\n label = \"\",\n size = INPUT_SIZES.medium,\n dropdownClassName = \"\",\n popupClassName = \"\",\n format = \"HH:mm:ss\",\n interval = TIME_PICKER_INTERVAL,\n onChange = noop,\n type = \"time\",\n nakedInput = false,\n disabled = false,\n error = \"\",\n defaultValue,\n value,\n labelProps,\n required = false,\n ...otherProps\n },\n ref\n ) => {\n const id = useId(otherProps.id);\n const timePickerRef = useSyncedRef(ref);\n\n const Component = TIME_PICKER_TYPES[type.toLowerCase()];\n\n const errorId = `error_${id}`;\n\n const showTimeLabels = {};\n if (format.includes(\"s\")) {\n showTimeLabels.second = true;\n }\n\n if (format.includes(\"m\")) {\n showTimeLabels.minute = true;\n }\n\n if (format.includes(\"H\") || format.includes(\"h\")) {\n showTimeLabels.hour = true;\n }\n\n const handleOnChange = (time, timeString) => {\n type === \"range\" && !time\n ? onChange([], timeString)\n : onChange(time, timeString);\n };\n\n const panelRender = originalPanel => (\n <div className=\"neeto-ui-date-input-custom-panel\">\n <div className=\"neeto-ui-date-input-custom-panel__header\">\n <ul className=\"neeto-ui-date-input-custom-panel__header-cols\">\n {showTimeLabels.hour && (\n <li className=\"neeto-ui-date-input-custom-panel__header-col\">\n Hour\n </li>\n )}\n {showTimeLabels.minute && (\n <li className=\"neeto-ui-date-input-custom-panel__header-col\">\n Minutes\n </li>\n )}\n {showTimeLabels.second && (\n <li className=\"neeto-ui-date-input-custom-panel__header-col\">\n Seconds\n </li>\n )}\n </ul>\n </div>\n <div className=\"neeto-ui-date-input-custom-panel__body\">\n {originalPanel}\n </div>\n </div>\n );\n\n return (\n <ConfigProvider\n theme={{\n token: { ...ANT_DESIGN_GLOBAL_TOKEN_OVERRIDES },\n components: {\n DatePicker: {\n // Global overrides\n colorBgElevated: \"rgb(var(--neeto-ui-white))\",\n colorPrimary: \"rgb(var(--neeto-ui-primary-500))\",\n colorPrimaryHover: \"rgb(var(--neeto-ui-primary-600))\",\n colorBorder: \"rgb(var(--neeto-ui-gray-300))\",\n colorLink: \"rgb(var(--neeto-ui-primary-500))\",\n colorLinkHover: \"rgb(var(--neeto-ui-primary-600))\",\n colorText: \"rgb(var(--neeto-ui-gray-800))\",\n colorTextDisabled: \"rgb(var(--neeto-ui-gray-500))\",\n colorTextPlaceholder: \"rgb(var(--neeto-ui-gray-400))\",\n controlItemBgActive: \"rgb(var(--neeto-ui-primary-800))\",\n controlItemBgHover: \"rgb(var(--neeto-ui-gray-100))\",\n controlOutline: \"rgb(var(--neeto-ui-gray-300))\",\n },\n },\n }}\n >\n <div className=\"neeto-ui-input__wrapper\">\n {label && <Label {...{ required, ...labelProps }}>{label}</Label>}\n <Component\n hourStep={interval.hourStep}\n minuteStep={interval.minuteStep}\n ref={timePickerRef}\n secondStep={interval.secondStep}\n className={classnames(\"neeto-ui-time-input\", [className], {\n \"neeto-ui-time-input--small\": size === \"small\",\n \"neeto-ui-time-input--medium\": size === \"medium\",\n \"neeto-ui-time-input--large\": size === \"large\",\n \"neeto-ui-time-input--disabled\": disabled,\n \"neeto-ui-time-input--naked\": nakedInput,\n \"neeto-ui-time-input--error\": error,\n })}\n popupClassName={classnames(\"neeto-ui-date-time-dropdown\", [\n dropdownClassName, // Will be removed in the next major version\n popupClassName,\n ])}\n onChange={handleOnChange}\n {...{ disabled, format, ...otherProps, panelRender }}\n defaultValue={convertToDayjsObjects(defaultValue)}\n mode={undefined}\n picker=\"time\"\n suffixIcon={<Clock size={16} />}\n value={convertToDayjsObjects(value)}\n />\n {!!error && (\n <p\n className=\"neeto-ui-input__error\"\n data-cy={`${hyphenize(label)}-input-error`}\n id={errorId}\n >\n {error}\n </p>\n )}\n </div>\n </ConfigProvider>\n );\n }\n);\n\nTimePicker.displayName = \"TimePicker\";\n\nTimePicker.propTypes = {\n /**\n * To provide external classnames to TimePicker component.\n */\n className: PropTypes.string,\n /**\n * To set the text to be displayed above the TimePicker.\n */\n label: PropTypes.string,\n /**\n * To specify the label props to be passed to the Label component.\n */\n labelProps: PropTypes.object,\n /**\n * To set the size of the TimePicker.\n */\n size: PropTypes.oneOf(Object.values(INPUT_SIZES)),\n /**\n * To set the TimePicker as naked Input field.\n */\n nakedInput: PropTypes.bool,\n /**\n * To specify the error message to be shown in the TimePicker.\n */\n error: PropTypes.string,\n /**\n * To specify the time format.\n */\n format: PropTypes.string,\n /**\n * To specify the time interval.\n */\n interval: PropTypes.object,\n /**\n * For `TimeInput`,(time, timeString) => {} <br />\n * For `TimeRange`, (time, [startTime, endTime]) => {}\n */\n onChange: PropTypes.func,\n /**\n * To specify the type of the TimePicker.\n */\n type: PropTypes.oneOf([\"time\", \"range\"]),\n /**\n * To set TimePicker as disabled.\n */\n disabled: PropTypes.bool,\n /**\n * To specify the values to be displayed inside the TimePicker.\n */\n value: PropTypes.oneOfType([PropTypes.array, PropTypes.object]),\n /**\n * To specify custom classnames to be applied to the TimePicker dropdown.\n */\n dropdownClassName: PropTypes.string,\n /**\n * To specify the default values to be displayed inside the TimePicker.\n */\n defaultValue: PropTypes.oneOfType([PropTypes.array, PropTypes.object]),\n /**\n * To specify whether the Time picker is required or not.\n */\n required: PropTypes.bool,\n};\n\nexport default TimePicker;\n"],"names":["RangePicker","_DatePicker","TIME_PICKER_TYPES","range","time","INPUT_SIZES","small","medium","large","TIME_PICKER_INTERVAL","hourStep","minuteStep","secondStep","TimePicker","forwardRef","_ref","ref","_ref$className","className","_ref$label","label","_ref$size","size","_ref$dropdownClassNam","dropdownClassName","_ref$popupClassName","popupClassName","_ref$format","format","_ref$interval","interval","_ref$onChange","onChange","noop","_ref$type","type","_ref$nakedInput","nakedInput","_ref$disabled","disabled","_ref$error","error","defaultValue","value","labelProps","_ref$required","required","otherProps","_objectWithoutProperties","_excluded","id","useId","timePickerRef","useSyncedRef","Component","toLowerCase","errorId","concat","showTimeLabels","includes","second","minute","hour","handleOnChange","timeString","panelRender","originalPanel","React","createElement","_ConfigProvider","theme","token","_objectSpread","ANT_DESIGN_GLOBAL_TOKEN_OVERRIDES","components","DatePicker","colorBgElevated","colorPrimary","colorPrimaryHover","colorBorder","colorLink","colorLinkHover","colorText","colorTextDisabled","colorTextPlaceholder","controlItemBgActive","controlItemBgHover","controlOutline","Label","_extends","classnames","convertToDayjsObjects","mode","undefined","picker","suffixIcon","Clock","hyphenize","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAQA,WAAW,GAAAC,WAAA,CAAXD,WAAW,CAAA;AAEZ,IAAME,iBAAiB,GAAG;AAC/BC,EAAAA,KAAK,EAAEH,WAAW;AAClBI,EAAAA,IAAI,EAAAH,WAAAA;AACN,CAAC;;;;;ACWD,IAAMI,WAAW,GAAG;AAAEC,EAAAA,KAAK,EAAE,OAAO;AAAEC,EAAAA,MAAM,EAAE,QAAQ;AAAEC,EAAAA,KAAK,EAAE,OAAA;AAAQ,CAAC,CAAA;AAExE,IAAMC,oBAAoB,GAAG;AAC3BC,EAAAA,QAAQ,EAAE,CAAC;AACXC,EAAAA,UAAU,EAAE,CAAC;AACbC,EAAAA,UAAU,EAAE,CAAA;AACd,CAAC,CAAA;AAEKC,IAAAA,UAAU,gBAAGC,UAAU,CAC3B,UAAAC,IAAA,EAoBEC,GAAG,EACA;AAAA,EAAA,IAAAC,cAAA,GAAAF,IAAA,CAnBDG,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,cAAA;IAAAE,UAAA,GAAAJ,IAAA,CACdK,KAAK;AAALA,IAAAA,KAAK,GAAAD,UAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,UAAA;IAAAE,SAAA,GAAAN,IAAA,CACVO,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAA,KAAA,CAAA,GAAGhB,WAAW,CAACE,MAAM,GAAAc,SAAA;IAAAE,qBAAA,GAAAR,IAAA,CACzBS,iBAAiB;AAAjBA,IAAAA,iBAAiB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,qBAAA;IAAAE,mBAAA,GAAAV,IAAA,CACtBW,cAAc;AAAdA,IAAAA,cAAc,GAAAD,mBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,mBAAA;IAAAE,WAAA,GAAAZ,IAAA,CACnBa,MAAM;AAANA,IAAAA,MAAM,GAAAD,WAAA,KAAG,KAAA,CAAA,GAAA,UAAU,GAAAA,WAAA;IAAAE,aAAA,GAAAd,IAAA,CACnBe,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,aAAA,KAAGpB,KAAAA,CAAAA,GAAAA,oBAAoB,GAAAoB,aAAA;IAAAE,aAAA,GAAAhB,IAAA,CAC/BiB,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,aAAA,KAAGE,KAAAA,CAAAA,GAAAA,IAAI,GAAAF,aAAA;IAAAG,SAAA,GAAAnB,IAAA,CACfoB,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAG,KAAA,CAAA,GAAA,MAAM,GAAAA,SAAA;IAAAE,eAAA,GAAArB,IAAA,CACbsB,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,eAAA;IAAAE,aAAA,GAAAvB,IAAA,CAClBwB,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,aAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,aAAA;IAAAE,UAAA,GAAAzB,IAAA,CAChB0B,KAAK;AAALA,IAAAA,KAAK,GAAAD,UAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,UAAA;IACVE,YAAY,GAAA3B,IAAA,CAAZ2B,YAAY;IACZC,KAAK,GAAA5B,IAAA,CAAL4B,KAAK;IACLC,UAAU,GAAA7B,IAAA,CAAV6B,UAAU;IAAAC,aAAA,GAAA9B,IAAA,CACV+B,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,aAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,aAAA;AACbE,IAAAA,UAAU,GAAAC,wBAAA,CAAAjC,IAAA,EAAAkC,SAAA,CAAA,CAAA;AAIf,EAAA,IAAMC,EAAE,GAAGC,KAAK,CAACJ,UAAU,CAACG,EAAE,CAAC,CAAA;AAC/B,EAAA,IAAME,aAAa,GAAGC,YAAY,CAACrC,GAAG,CAAC,CAAA;EAEvC,IAAMsC,SAAS,GAAGpD,iBAAiB,CAACiC,IAAI,CAACoB,WAAW,EAAE,CAAC,CAAA;AAEvD,EAAA,IAAMC,OAAO,GAAA,QAAA,CAAAC,MAAA,CAAYP,EAAE,CAAE,CAAA;EAE7B,IAAMQ,cAAc,GAAG,EAAE,CAAA;AACzB,EAAA,IAAI9B,MAAM,CAAC+B,QAAQ,CAAC,GAAG,CAAC,EAAE;IACxBD,cAAc,CAACE,MAAM,GAAG,IAAI,CAAA;AAC9B,GAAA;AAEA,EAAA,IAAIhC,MAAM,CAAC+B,QAAQ,CAAC,GAAG,CAAC,EAAE;IACxBD,cAAc,CAACG,MAAM,GAAG,IAAI,CAAA;AAC9B,GAAA;AAEA,EAAA,IAAIjC,MAAM,CAAC+B,QAAQ,CAAC,GAAG,CAAC,IAAI/B,MAAM,CAAC+B,QAAQ,CAAC,GAAG,CAAC,EAAE;IAChDD,cAAc,CAACI,IAAI,GAAG,IAAI,CAAA;AAC5B,GAAA;EAEA,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAI3D,IAAI,EAAE4D,UAAU,EAAK;AAC3C7B,IAAAA,IAAI,KAAK,OAAO,IAAI,CAAC/B,IAAI,GACrB4B,QAAQ,CAAC,EAAE,EAAEgC,UAAU,CAAC,GACxBhC,QAAQ,CAAC5B,IAAI,EAAE4D,UAAU,CAAC,CAAA;GAC/B,CAAA;AAED,EAAA,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAGC,aAAa,EAAA;IAAA,oBAC/BC,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKlD,MAAAA,SAAS,EAAC,kCAAA;KACbiD,eAAAA,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKlD,MAAAA,SAAS,EAAC,0CAAA;KACbiD,eAAAA,cAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;AAAIlD,MAAAA,SAAS,EAAC,+CAAA;AAA+C,KAAA,EAC1DwC,cAAc,CAACI,IAAI,iBAClBK,cAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;AAAIlD,MAAAA,SAAS,EAAC,8CAAA;KAA+C,EAAA,MAE7D,CACD,EACAwC,cAAc,CAACG,MAAM,iBACpBM,cAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;AAAIlD,MAAAA,SAAS,EAAC,8CAAA;KAA+C,EAAA,SAE7D,CACD,EACAwC,cAAc,CAACE,MAAM,iBACpBO,cAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;AAAIlD,MAAAA,SAAS,EAAC,8CAAA;AAA8C,KAAA,EAAC,SAE7D,CACD,CACE,CACD,eACNiD,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKlD,MAAAA,SAAS,EAAC,wCAAA;KACZgD,EAAAA,aAAa,CACV,CACF,CAAA;GACP,CAAA;AAED,EAAA,oBACEC,cAAA,CAAAC,aAAA,CAAAC,eAAA,EAAA;AACEC,IAAAA,KAAK,EAAE;AACLC,MAAAA,KAAK,EAAAC,aAAA,CAAOC,EAAAA,EAAAA,iCAAiC,CAAE;AAC/CC,MAAAA,UAAU,EAAE;AACVC,QAAAA,UAAU,EAAE;AACV;AACAC,UAAAA,eAAe,EAAE,4BAA4B;AAC7CC,UAAAA,YAAY,EAAE,kCAAkC;AAChDC,UAAAA,iBAAiB,EAAE,kCAAkC;AACrDC,UAAAA,WAAW,EAAE,+BAA+B;AAC5CC,UAAAA,SAAS,EAAE,kCAAkC;AAC7CC,UAAAA,cAAc,EAAE,kCAAkC;AAClDC,UAAAA,SAAS,EAAE,+BAA+B;AAC1CC,UAAAA,iBAAiB,EAAE,+BAA+B;AAClDC,UAAAA,oBAAoB,EAAE,+BAA+B;AACrDC,UAAAA,mBAAmB,EAAE,kCAAkC;AACvDC,UAAAA,kBAAkB,EAAE,+BAA+B;AACnDC,UAAAA,cAAc,EAAE,+BAAA;AAClB,SAAA;AACF,OAAA;AACF,KAAA;GAEApB,eAAAA,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKlD,IAAAA,SAAS,EAAC,yBAAA;GACZE,EAAAA,KAAK,iBAAI+C,cAAA,CAAAC,aAAA,CAACoB,KAAK,EAAAhB,aAAA,CAAA;AAAO1B,IAAAA,QAAQ,EAARA,QAAAA;GAAaF,EAAAA,UAAU,CAAKxB,EAAAA,KAAK,CAAS,eACjE+C,cAAA,CAAAC,aAAA,CAACd,SAAS,EAAAmC,QAAA,CAAA;IACR/E,QAAQ,EAAEoB,QAAQ,CAACpB,QAAS;IAC5BC,UAAU,EAAEmB,QAAQ,CAACnB,UAAW;AAChCK,IAAAA,GAAG,EAAEoC,aAAc;IACnBxC,UAAU,EAAEkB,QAAQ,CAAClB,UAAW;IAChCM,SAAS,EAAEwE,UAAU,CAAC,qBAAqB,EAAE,CAACxE,SAAS,CAAC,EAAE;MACxD,4BAA4B,EAAEI,IAAI,KAAK,OAAO;MAC9C,6BAA6B,EAAEA,IAAI,KAAK,QAAQ;MAChD,4BAA4B,EAAEA,IAAI,KAAK,OAAO;AAC9C,MAAA,+BAA+B,EAAEiB,QAAQ;AACzC,MAAA,4BAA4B,EAAEF,UAAU;AACxC,MAAA,4BAA4B,EAAEI,KAAAA;AAChC,KAAC,CAAE;AACHf,IAAAA,cAAc,EAAEgE,UAAU,CAAC,6BAA6B,EAAE,CACxDlE,iBAAiB;AAAE;AACnBE,IAAAA,cAAc,CACf,CAAE;AACHM,IAAAA,QAAQ,EAAE+B,cAAAA;GAAeS,EAAAA,aAAA,CAAAA,aAAA,CAAA;AACnBjC,IAAAA,QAAQ,EAARA,QAAQ;AAAEX,IAAAA,MAAM,EAANA,MAAAA;AAAM,GAAA,EAAKmB,UAAU,CAAA,EAAA,EAAA,EAAA;AAAEkB,IAAAA,WAAW,EAAXA,WAAAA;AAAW,GAAA,CAAA,EAAA;AAClDvB,IAAAA,YAAY,EAAEiD,qBAAqB,CAACjD,YAAY,CAAE;AAClDkD,IAAAA,IAAI,EAAEC,SAAU;AAChBC,IAAAA,MAAM,EAAC,MAAM;AACbC,IAAAA,UAAU,eAAE5B,cAAA,CAAAC,aAAA,CAAC4B,KAAK,EAAA;AAAC1E,MAAAA,IAAI,EAAE,EAAA;KAAO,CAAA;IAChCqB,KAAK,EAAEgD,qBAAqB,CAAChD,KAAK,CAAA;AAAE,GAAA,CAAA,CACpC,EACD,CAAC,CAACF,KAAK,iBACN0B,cAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;AACElD,IAAAA,SAAS,EAAC,uBAAuB;AACjC,IAAA,SAAA,EAAA,EAAA,CAAAuC,MAAA,CAAYwC,SAAS,CAAC7E,KAAK,CAAC,EAAe,cAAA,CAAA;AAC3C8B,IAAAA,EAAE,EAAEM,OAAAA;GAEHf,EAAAA,KAAK,CAET,CACG,CACS,CAAA;AAErB,CAAC,EACF;AAED5B,UAAU,CAACqF,WAAW,GAAG,YAAY;;;;"}
|
package/dist/TimePickerInput.js
CHANGED
|
@@ -1,25 +1,262 @@
|
|
|
1
|
-
import '
|
|
2
|
-
import '
|
|
3
|
-
import '
|
|
4
|
-
import '
|
|
5
|
-
import 'react';
|
|
6
|
-
import '@wojtekmaj/react-timerange-picker';
|
|
7
|
-
import '
|
|
8
|
-
import '
|
|
9
|
-
|
|
10
|
-
import '@bigbinary/neeto-cist';
|
|
11
|
-
import 'react-time-picker';
|
|
12
|
-
import './Label.js';
|
|
13
|
-
import './useId-c1d20bba.js';
|
|
1
|
+
import _extends from '@babel/runtime/helpers/extends';
|
|
2
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
3
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
4
|
+
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
5
|
+
import React__default, { useState, useRef, forwardRef, useEffect } from 'react';
|
|
6
|
+
import TimeRangePicker from '@wojtekmaj/react-timerange-picker';
|
|
7
|
+
import classnames from 'classnames';
|
|
8
|
+
import dayjs from 'dayjs';
|
|
9
|
+
import customParseFormat from 'dayjs/plugin/customParseFormat';
|
|
10
|
+
import { isPresent, isNotPresent } from '@bigbinary/neeto-cist';
|
|
11
|
+
import TimePicker from 'react-time-picker';
|
|
12
|
+
import Label from './Label.js';
|
|
13
|
+
import { u as useId } from './useId-c1d20bba.js';
|
|
14
14
|
import 'react-router-dom';
|
|
15
|
-
import '
|
|
15
|
+
import '@bigbinary/neeto-hotkeys';
|
|
16
16
|
import './overlayManager.js';
|
|
17
|
-
import './
|
|
18
|
-
import '
|
|
19
|
-
import '
|
|
20
|
-
import '
|
|
21
|
-
import '
|
|
22
|
-
import './
|
|
17
|
+
import { h as hyphenize, n as noop } from './index-9d5142b4.js';
|
|
18
|
+
import 'qs';
|
|
19
|
+
import { Close, Clock } from '@bigbinary/neeto-icons';
|
|
20
|
+
import './Button.js';
|
|
21
|
+
import './motion-087daf52.js';
|
|
22
|
+
import './Tooltip.js';
|
|
23
|
+
import '@tippyjs/react';
|
|
23
24
|
import 'tippy.js';
|
|
24
|
-
import '
|
|
25
|
+
import './Popover.js';
|
|
26
|
+
import './Typography.js';
|
|
27
|
+
import '@babel/runtime/helpers/classCallCheck';
|
|
28
|
+
import '@babel/runtime/helpers/createClass';
|
|
29
|
+
import 'dayjs/plugin/localeData';
|
|
30
|
+
import 'dayjs/plugin/utc';
|
|
31
|
+
import 'dayjs/plugin/weekday';
|
|
32
|
+
import 'dayjs/plugin/weekOfYear';
|
|
33
|
+
import 'ramda';
|
|
34
|
+
|
|
35
|
+
var HoverIcon = function HoverIcon(_ref) {
|
|
36
|
+
var _ref$time = _ref.time,
|
|
37
|
+
time = _ref$time === void 0 ? false : _ref$time;
|
|
38
|
+
var _useState = useState(false),
|
|
39
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
40
|
+
hovered = _useState2[0],
|
|
41
|
+
setHovered = _useState2[1];
|
|
42
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
43
|
+
onMouseLeave: function onMouseLeave() {
|
|
44
|
+
return setHovered(false);
|
|
45
|
+
},
|
|
46
|
+
onMouseOver: function onMouseOver() {
|
|
47
|
+
return setHovered(true);
|
|
48
|
+
}
|
|
49
|
+
}, hovered && time ? /*#__PURE__*/React__default.createElement(Close, {
|
|
50
|
+
size: 16
|
|
51
|
+
}) : /*#__PURE__*/React__default.createElement(Clock, {
|
|
52
|
+
size: 16
|
|
53
|
+
}));
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
// A wrapper hook around useState, that updates a ref as well, useful when dealing directly with dom event listeners.
|
|
57
|
+
var useRefState = function useRefState(val) {
|
|
58
|
+
// eslint-disable-next-line react/hook-use-state
|
|
59
|
+
var _useState = useState(val),
|
|
60
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
61
|
+
value = _useState2[0],
|
|
62
|
+
_setValue = _useState2[1];
|
|
63
|
+
var valueRef = useRef(value);
|
|
64
|
+
var setValue = function setValue(val) {
|
|
65
|
+
valueRef.current = val;
|
|
66
|
+
_setValue(val);
|
|
67
|
+
};
|
|
68
|
+
return [value, valueRef, setValue];
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
var FORMAT = "HH:mm";
|
|
72
|
+
var getFormattedTime = function getFormattedTime(value) {
|
|
73
|
+
if (dayjs.isDayjs(value)) {
|
|
74
|
+
return value.toDate();
|
|
75
|
+
} else if (value instanceof Date || dayjs(value, FORMAT).isValid()) {
|
|
76
|
+
return value;
|
|
77
|
+
}
|
|
78
|
+
return null;
|
|
79
|
+
};
|
|
80
|
+
var getFormattedRange = function getFormattedRange(value) {
|
|
81
|
+
if (!Array.isArray(value)) return null;
|
|
82
|
+
return value.map(function (item) {
|
|
83
|
+
return getFormattedTime(item);
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
var toDayJs = function toDayJs(value) {
|
|
87
|
+
if (Array.isArray(value)) return value.map(function (item) {
|
|
88
|
+
return dayjs(item, FORMAT);
|
|
89
|
+
});
|
|
90
|
+
return dayjs(value, FORMAT);
|
|
91
|
+
};
|
|
92
|
+
var isValidTime = function isValidTime(minTime, maxTime, value) {
|
|
93
|
+
if (isPresent(minTime) && toDayJs(value).isBefore(toDayJs(minTime))) {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
return !(isPresent(maxTime) && toDayJs(value).isAfter(toDayJs(maxTime)));
|
|
97
|
+
};
|
|
98
|
+
var isValidRange = function isValidRange(minTime, maxTime, value) {
|
|
99
|
+
return value.every(function (item) {
|
|
100
|
+
return isValid(minTime, maxTime, item);
|
|
101
|
+
});
|
|
102
|
+
};
|
|
103
|
+
var isValid = function isValid(minTime, maxTime, value) {
|
|
104
|
+
return (Array.isArray(value) ? isValidRange : isValidTime)(minTime, maxTime, value);
|
|
105
|
+
};
|
|
106
|
+
var getValidTime = function getValidTime(minTime, maxTime, value) {
|
|
107
|
+
if (isPresent(minTime) && toDayJs(value).isBefore(toDayJs(minTime))) {
|
|
108
|
+
return minTime;
|
|
109
|
+
}
|
|
110
|
+
if (isPresent(maxTime) && toDayJs(value).isAfter(toDayJs(maxTime))) {
|
|
111
|
+
return maxTime;
|
|
112
|
+
}
|
|
113
|
+
return value;
|
|
114
|
+
};
|
|
115
|
+
var getValidRange = function getValidRange(minTime, maxTime, value) {
|
|
116
|
+
return value.map(function (item) {
|
|
117
|
+
return getValidTime(minTime, maxTime, item);
|
|
118
|
+
});
|
|
119
|
+
};
|
|
120
|
+
var getValid = function getValid(minTime, maxTime, value) {
|
|
121
|
+
return (Array.isArray(value) ? getValidRange : getValidTime)(minTime, maxTime, value);
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
var _excluded = ["type", "className", "label", "labelProps", "size", "nakedInput", "required", "value", "defaultValue", "onChange", "error", "onBlur", "minTime", "maxTime"];
|
|
125
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
126
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
127
|
+
dayjs.extend(customParseFormat);
|
|
128
|
+
var INPUT_SIZES = {
|
|
129
|
+
small: "small",
|
|
130
|
+
medium: "medium",
|
|
131
|
+
large: "large"
|
|
132
|
+
};
|
|
133
|
+
var timeComponents = {
|
|
134
|
+
range: TimeRangePicker,
|
|
135
|
+
time: TimePicker
|
|
136
|
+
};
|
|
137
|
+
var TimePickerInput = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
138
|
+
var _ref$type = _ref.type,
|
|
139
|
+
type = _ref$type === void 0 ? "time" : _ref$type,
|
|
140
|
+
_ref$className = _ref.className,
|
|
141
|
+
className = _ref$className === void 0 ? "" : _ref$className,
|
|
142
|
+
label = _ref.label,
|
|
143
|
+
labelProps = _ref.labelProps,
|
|
144
|
+
_ref$size = _ref.size,
|
|
145
|
+
size = _ref$size === void 0 ? INPUT_SIZES.medium : _ref$size,
|
|
146
|
+
_ref$nakedInput = _ref.nakedInput,
|
|
147
|
+
nakedInput = _ref$nakedInput === void 0 ? false : _ref$nakedInput,
|
|
148
|
+
_ref$required = _ref.required,
|
|
149
|
+
required = _ref$required === void 0 ? false : _ref$required,
|
|
150
|
+
inputValue = _ref.value,
|
|
151
|
+
defaultValue = _ref.defaultValue,
|
|
152
|
+
_ref$onChange = _ref.onChange,
|
|
153
|
+
onChange = _ref$onChange === void 0 ? noop : _ref$onChange,
|
|
154
|
+
_ref$error = _ref.error,
|
|
155
|
+
error = _ref$error === void 0 ? "" : _ref$error,
|
|
156
|
+
_ref$onBlur = _ref.onBlur,
|
|
157
|
+
onBlur = _ref$onBlur === void 0 ? noop : _ref$onBlur,
|
|
158
|
+
minTime = _ref.minTime,
|
|
159
|
+
maxTime = _ref.maxTime,
|
|
160
|
+
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
161
|
+
var _useRefState = useRefState(null),
|
|
162
|
+
_useRefState2 = _slicedToArray(_useRefState, 3),
|
|
163
|
+
value = _useRefState2[0],
|
|
164
|
+
valueRef = _useRefState2[1],
|
|
165
|
+
setValue = _useRefState2[2];
|
|
166
|
+
var componentRef = useRef(null);
|
|
167
|
+
var id = useId(otherProps.id);
|
|
168
|
+
var errorId = "error_".concat(id);
|
|
169
|
+
useEffect(function () {
|
|
170
|
+
var value = inputValue || defaultValue;
|
|
171
|
+
if (isNotPresent(value)) {
|
|
172
|
+
setValue(null);
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
setValue((type === "range" ? getFormattedRange : getFormattedTime)(value));
|
|
176
|
+
}, [type, inputValue, defaultValue]);
|
|
177
|
+
var handleChange = function handleChange(newValue) {
|
|
178
|
+
setValue(newValue);
|
|
179
|
+
if (isValid(minTime, maxTime, newValue)) {
|
|
180
|
+
onChange(toDayJs(newValue), newValue);
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
var onBlurHandle = function onBlurHandle() {
|
|
184
|
+
if (isValid(minTime, maxTime, value)) {
|
|
185
|
+
onBlur(toDayJs(value), value);
|
|
186
|
+
} else {
|
|
187
|
+
var validValue = getValid(minTime, maxTime, value);
|
|
188
|
+
setValue(validValue);
|
|
189
|
+
onChange(toDayJs(validValue), validValue);
|
|
190
|
+
onBlur(toDayJs(validValue), validValue);
|
|
191
|
+
}
|
|
192
|
+
return true;
|
|
193
|
+
};
|
|
194
|
+
var onAmPmChange = function onAmPmChange() {
|
|
195
|
+
var value = valueRef.current;
|
|
196
|
+
if (!isValid(minTime, maxTime, value)) {
|
|
197
|
+
var validValue = getValid(minTime, maxTime, value);
|
|
198
|
+
setValue(validValue);
|
|
199
|
+
onChange(toDayJs(validValue), validValue);
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
|
|
203
|
+
// If you just make amPm select change, onBlurHandle is not triggering. A work around
|
|
204
|
+
useEffect(function () {
|
|
205
|
+
var _document$getElementB;
|
|
206
|
+
var amPmChange = function amPmChange() {
|
|
207
|
+
return setTimeout(onAmPmChange);
|
|
208
|
+
};
|
|
209
|
+
var selectElements = (_document$getElementB = document.getElementById(id)) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.querySelectorAll("[name='amPm']");
|
|
210
|
+
selectElements === null || selectElements === void 0 || selectElements.forEach(function (element) {
|
|
211
|
+
return element.addEventListener("change", amPmChange);
|
|
212
|
+
});
|
|
213
|
+
return function () {
|
|
214
|
+
selectElements === null || selectElements === void 0 || selectElements.forEach(function (element) {
|
|
215
|
+
return element.removeEventListener("change", amPmChange);
|
|
216
|
+
});
|
|
217
|
+
};
|
|
218
|
+
}, [value]);
|
|
219
|
+
var handleKeyDown = function handleKeyDown(_ref2) {
|
|
220
|
+
var code = _ref2.code;
|
|
221
|
+
if (code !== "Enter") return;
|
|
222
|
+
onBlurHandle();
|
|
223
|
+
};
|
|
224
|
+
var Component = timeComponents[type];
|
|
225
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
226
|
+
ref: ref,
|
|
227
|
+
className: "neeto-ui-input__wrapper"
|
|
228
|
+
}, label && /*#__PURE__*/React__default.createElement(Label, _objectSpread({
|
|
229
|
+
required: required
|
|
230
|
+
}, labelProps), label), /*#__PURE__*/React__default.createElement(Component, _extends({
|
|
231
|
+
id: id,
|
|
232
|
+
value: value,
|
|
233
|
+
disableClock: true,
|
|
234
|
+
clearIcon: /*#__PURE__*/React__default.createElement(HoverIcon, {
|
|
235
|
+
time: !!value
|
|
236
|
+
}),
|
|
237
|
+
format: "hh:mm a",
|
|
238
|
+
hourPlaceholder: "HH",
|
|
239
|
+
minutePlaceholder: "mm",
|
|
240
|
+
ref: componentRef,
|
|
241
|
+
secondAriaLabel: "ss",
|
|
242
|
+
shouldCloseClock: onBlurHandle,
|
|
243
|
+
className: classnames("neeto-ui-time-picker", [className], {
|
|
244
|
+
"neeto-ui-time-picker--small": size === "small",
|
|
245
|
+
"neeto-ui-time-picker--medium": size === "medium",
|
|
246
|
+
"neeto-ui-time-picker--large": size === "large",
|
|
247
|
+
"neeto-ui-time-picker--disabled": otherProps.disabled,
|
|
248
|
+
"neeto-ui-time-picker--naked": nakedInput,
|
|
249
|
+
"neeto-ui-time-picker--error": !!error
|
|
250
|
+
}),
|
|
251
|
+
onChange: handleChange,
|
|
252
|
+
onKeyDown: handleKeyDown
|
|
253
|
+
}, otherProps)), !!error && typeof error === "string" && /*#__PURE__*/React__default.createElement("p", {
|
|
254
|
+
className: "neeto-ui-input__error",
|
|
255
|
+
"data-cy": "".concat(hyphenize(label), "-input-error"),
|
|
256
|
+
id: errorId
|
|
257
|
+
}, error));
|
|
258
|
+
});
|
|
259
|
+
TimePickerInput.displayName = "TimePicker";
|
|
260
|
+
|
|
261
|
+
export { TimePickerInput as default };
|
|
25
262
|
//# sourceMappingURL=TimePickerInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimePickerInput.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"TimePickerInput.js","sources":["../src/components/TimePickerInput/HoverIcon.jsx","../src/components/TimePickerInput/useRefState.js","../src/components/TimePickerInput/utils.js","../src/components/TimePickerInput/index.jsx"],"sourcesContent":["import React, { useState } from \"react\";\n\nimport { Clock, Close } from \"neetoicons\";\nimport PropTypes from \"prop-types\";\n\nconst HoverIcon = ({ time = false }) => {\n const [hovered, setHovered] = useState(false);\n\n return (\n <div\n onMouseLeave={() => setHovered(false)}\n onMouseOver={() => setHovered(true)}\n >\n {hovered && time ? <Close size={16} /> : <Clock size={16} />}\n </div>\n );\n};\n\n/**\n * time prop is required to find the feild is filled or not\n */\nHoverIcon.propTypes = { time: PropTypes.bool.isRequired };\n\nexport default HoverIcon;\n","import { useState, useRef } from \"react\";\n\n// A wrapper hook around useState, that updates a ref as well, useful when dealing directly with dom event listeners.\nconst useRefState = val => {\n // eslint-disable-next-line react/hook-use-state\n const [value, _setValue] = useState(val);\n const valueRef = useRef(value);\n\n const setValue = val => {\n valueRef.current = val;\n _setValue(val);\n };\n\n return [value, valueRef, setValue];\n};\n\nexport default useRefState;\n","import dayjs from \"dayjs\";\nimport { isPresent } from \"neetocist\";\n\nconst FORMAT = \"HH:mm\";\n\nconst getFormattedTime = value => {\n if (dayjs.isDayjs(value)) {\n return value.toDate();\n } else if (value instanceof Date || dayjs(value, FORMAT).isValid()) {\n return value;\n }\n\n return null;\n};\n\nconst getFormattedRange = value => {\n if (!Array.isArray(value)) return null;\n\n return value.map(item => getFormattedTime(item));\n};\n\nconst toDayJs = value => {\n if (Array.isArray(value)) return value.map(item => dayjs(item, FORMAT));\n\n return dayjs(value, FORMAT);\n};\n\nconst isValidTime = (minTime, maxTime, value) => {\n if (isPresent(minTime) && toDayJs(value).isBefore(toDayJs(minTime))) {\n return false;\n }\n\n return !(isPresent(maxTime) && toDayJs(value).isAfter(toDayJs(maxTime)));\n};\n\nconst isValidRange = (minTime, maxTime, value) =>\n value.every(item => isValid(minTime, maxTime, item));\n\nconst isValid = (minTime, maxTime, value) =>\n (Array.isArray(value) ? isValidRange : isValidTime)(minTime, maxTime, value);\n\nconst getValidTime = (minTime, maxTime, value) => {\n if (isPresent(minTime) && toDayJs(value).isBefore(toDayJs(minTime))) {\n return minTime;\n }\n\n if (isPresent(maxTime) && toDayJs(value).isAfter(toDayJs(maxTime))) {\n return maxTime;\n }\n\n return value;\n};\n\nconst getValidRange = (minTime, maxTime, value) =>\n value.map(item => getValidTime(minTime, maxTime, item));\n\nconst getValid = (minTime, maxTime, value) =>\n (Array.isArray(value) ? getValidRange : getValidTime)(\n minTime,\n maxTime,\n value\n );\n\nexport {\n getValid,\n isValid,\n toDayJs,\n getFormattedRange,\n getFormattedTime,\n FORMAT,\n};\n","import React, { forwardRef, useRef, useEffect } from \"react\";\n\nimport TimeRangePicker from \"@wojtekmaj/react-timerange-picker\";\nimport classnames from \"classnames\";\nimport dayjs from \"dayjs\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat\";\nimport { isNotPresent } from \"neetocist\";\nimport PropTypes from \"prop-types\";\nimport TimePicker from \"react-time-picker\";\n\nimport Label from \"components/Label\";\nimport { useId } from \"hooks\";\nimport { hyphenize, noop } from \"utils\";\n\nimport HoverIcon from \"./HoverIcon\";\nimport useRefState from \"./useRefState\";\nimport {\n getFormattedTime,\n getFormattedRange,\n toDayJs,\n isValid,\n getValid,\n} from \"./utils\";\n\ndayjs.extend(customParseFormat);\n\nconst INPUT_SIZES = { small: \"small\", medium: \"medium\", large: \"large\" };\n\nconst timeComponents = { range: TimeRangePicker, time: TimePicker };\n\nconst TimePickerInput = forwardRef(\n (\n {\n type = \"time\",\n className = \"\",\n label,\n labelProps,\n size = INPUT_SIZES.medium,\n nakedInput = false,\n required = false,\n value: inputValue,\n defaultValue,\n onChange = noop,\n error = \"\",\n onBlur = noop,\n minTime,\n maxTime,\n ...otherProps\n },\n ref\n ) => {\n const [value, valueRef, setValue] = useRefState(null);\n const componentRef = useRef(null);\n const id = useId(otherProps.id);\n const errorId = `error_${id}`;\n\n useEffect(() => {\n const value = inputValue || defaultValue;\n if (isNotPresent(value)) {\n setValue(null);\n\n return;\n }\n\n setValue(\n (type === \"range\" ? getFormattedRange : getFormattedTime)(value)\n );\n }, [type, inputValue, defaultValue]);\n\n const handleChange = newValue => {\n setValue(newValue);\n if (isValid(minTime, maxTime, newValue)) {\n onChange(toDayJs(newValue), newValue);\n }\n };\n\n const onBlurHandle = () => {\n if (isValid(minTime, maxTime, value)) {\n onBlur(toDayJs(value), value);\n } else {\n const validValue = getValid(minTime, maxTime, value);\n setValue(validValue);\n onChange(toDayJs(validValue), validValue);\n onBlur(toDayJs(validValue), validValue);\n }\n\n return true;\n };\n\n const onAmPmChange = () => {\n const value = valueRef.current;\n if (!isValid(minTime, maxTime, value)) {\n const validValue = getValid(minTime, maxTime, value);\n setValue(validValue);\n onChange(toDayJs(validValue), validValue);\n }\n };\n\n // If you just make amPm select change, onBlurHandle is not triggering. A work around\n useEffect(() => {\n const amPmChange = () => setTimeout(onAmPmChange);\n const selectElements = document\n .getElementById(id)\n ?.querySelectorAll(\"[name='amPm']\");\n\n selectElements?.forEach(element =>\n element.addEventListener(\"change\", amPmChange)\n );\n\n return () => {\n selectElements?.forEach(element =>\n element.removeEventListener(\"change\", amPmChange)\n );\n };\n }, [value]);\n\n const handleKeyDown = ({ code }) => {\n if (code !== \"Enter\") return;\n onBlurHandle();\n };\n\n const Component = timeComponents[type];\n\n return (\n <div {...{ ref }} className=\"neeto-ui-input__wrapper\">\n {label && <Label {...{ required, ...labelProps }}>{label}</Label>}\n <Component\n {...{ id, value }}\n disableClock\n clearIcon={<HoverIcon time={!!value} />}\n format=\"hh:mm a\"\n hourPlaceholder=\"HH\"\n minutePlaceholder=\"mm\"\n ref={componentRef}\n secondAriaLabel=\"ss\"\n shouldCloseClock={onBlurHandle}\n className={classnames(\"neeto-ui-time-picker\", [className], {\n \"neeto-ui-time-picker--small\": size === \"small\",\n \"neeto-ui-time-picker--medium\": size === \"medium\",\n \"neeto-ui-time-picker--large\": size === \"large\",\n \"neeto-ui-time-picker--disabled\": otherProps.disabled,\n \"neeto-ui-time-picker--naked\": nakedInput,\n \"neeto-ui-time-picker--error\": !!error,\n })}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n {...otherProps}\n />\n {!!error && typeof error === \"string\" && (\n <p\n className=\"neeto-ui-input__error\"\n data-cy={`${hyphenize(label)}-input-error`}\n id={errorId}\n >\n {error}\n </p>\n )}\n </div>\n );\n }\n);\n\nTimePickerInput.displayName = \"TimePicker\";\n\nTimePickerInput.propTypes = {\n /**\n * To set the text to be displayed above the TimePicker.\n */\n label: PropTypes.string,\n /**\n * To specify the label props to be passed to the Label component.\n */\n labelProps: PropTypes.object,\n /**\n * To set the size of the DatePicker.\n */\n size: PropTypes.oneOf(Object.values(INPUT_SIZES)),\n /**\n * To set the DatePicker as naked Input field.\n */\n nakedInput: PropTypes.bool,\n /**\n * To specify the values to be displayed inside the TimePicker.\n */\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n /**\n * To specify the values to be displayed inside the TimePicker.\n */\n defaultValue: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n /**\n * The callback function that will be triggered when value changes.\n */\n onChange: PropTypes.func,\n /**\n * To provide external classnames to TimePicker target wrapper.\n */\n className: PropTypes.string,\n /**\n * To set the clear icon to be shown in the input.\n */\n clearIcon: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.element,\n ]),\n /**\n * To specify whether the TimePicker is disabled or not.\n */\n disabled: PropTypes.bool,\n /**\n * To specify the error message to be shown in the TimePicker.\n */\n error: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n /**\n * To specify whether the Date picker is required or not.\n */\n required: PropTypes.bool,\n /**\n * The callback function that will be triggered when time picker loses focus.\n */\n onBlur: PropTypes.func,\n /**\n * To specify the type of the TimePickerInput.\n */\n type: PropTypes.oneOf(Object.keys(timeComponents)),\n /**\n * To specify the minimum time of the TimePickerInput.\n */\n minTime: PropTypes.string,\n /**\n * To specify the maximum time of the TimePickerInput.\n */\n maxTime: PropTypes.string,\n};\n\nexport default TimePickerInput;\n"],"names":["HoverIcon","_ref","_ref$time","time","_useState","useState","_useState2","_slicedToArray","hovered","setHovered","React","createElement","onMouseLeave","onMouseOver","Close","size","Clock","useRefState","val","value","_setValue","valueRef","useRef","setValue","current","FORMAT","getFormattedTime","dayjs","isDayjs","toDate","Date","isValid","getFormattedRange","Array","isArray","map","item","toDayJs","isValidTime","minTime","maxTime","isPresent","isBefore","isAfter","isValidRange","every","getValidTime","getValidRange","getValid","extend","customParseFormat","INPUT_SIZES","small","medium","large","timeComponents","range","TimeRangePicker","TimePicker","TimePickerInput","forwardRef","ref","_ref$type","type","_ref$className","className","label","labelProps","_ref$size","_ref$nakedInput","nakedInput","_ref$required","required","inputValue","defaultValue","_ref$onChange","onChange","noop","_ref$error","error","_ref$onBlur","onBlur","otherProps","_objectWithoutProperties","_excluded","_useRefState","_useRefState2","componentRef","id","useId","errorId","concat","useEffect","isNotPresent","handleChange","newValue","onBlurHandle","validValue","onAmPmChange","_document$getElementB","amPmChange","setTimeout","selectElements","document","getElementById","querySelectorAll","forEach","element","addEventListener","removeEventListener","handleKeyDown","_ref2","code","Component","Label","_objectSpread","_extends","disableClock","clearIcon","format","hourPlaceholder","minutePlaceholder","secondAriaLabel","shouldCloseClock","classnames","disabled","onKeyDown","hyphenize","displayName"],"mappings":"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"}
|