@bigbinary/neetoui 8.3.54 → 8.3.55
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/CHANGELOG.md +21 -21
- package/dist/ActionDropdown.js +0 -1
- package/dist/ActionDropdown.js.map +1 -1
- package/dist/Alert.js +6 -6
- package/dist/Alert.js.map +1 -1
- package/dist/Avatar.js +6 -10
- package/dist/Avatar.js.map +1 -1
- package/dist/Checkbox.js +4 -4
- package/dist/Checkbox.js.map +1 -1
- package/dist/ColorPicker.js +3 -4
- package/dist/ColorPicker.js.map +1 -1
- package/dist/DatePicker.js +3 -3
- package/dist/Dropdown.js +2 -2
- package/dist/Dropdown.js.map +1 -1
- package/dist/Input.js +10 -10
- package/dist/Input.js.map +1 -1
- package/dist/Label.js +1 -4
- package/dist/Label.js.map +1 -1
- package/dist/Modal.js +9 -10
- package/dist/Modal.js.map +1 -1
- package/dist/MultiEmailInput.js +11 -11
- package/dist/MultiEmailInput.js.map +1 -1
- package/dist/NoData.js +5 -7
- package/dist/NoData.js.map +1 -1
- package/dist/Pane.js +5 -6
- package/dist/Pane.js.map +1 -1
- package/dist/ProgressBar.js +1 -1
- package/dist/ProgressBar.js.map +1 -1
- package/dist/Radio.js +6 -6
- package/dist/Radio.js.map +1 -1
- package/dist/Select.js +19 -24
- package/dist/Select.js.map +1 -1
- package/dist/Sidebar.js +10 -11
- package/dist/Sidebar.js.map +1 -1
- package/dist/Slider.js +3 -3
- package/dist/Slider.js.map +1 -1
- package/dist/Spinner.js +1 -2
- package/dist/Spinner.js.map +1 -1
- package/dist/Stepper.js +1 -1
- package/dist/Stepper.js.map +1 -1
- package/dist/Switch.js +5 -7
- package/dist/Switch.js.map +1 -1
- package/dist/Tab.js +3 -4
- package/dist/Tab.js.map +1 -1
- package/dist/Table.js +4 -4
- package/dist/Table.js.map +1 -1
- package/dist/Tag.js +1 -3
- package/dist/Tag.js.map +1 -1
- package/dist/{Textarea-CEwODEM3.js → Textarea-DucQtmjX.js} +6 -6
- package/dist/Textarea-DucQtmjX.js.map +1 -0
- package/dist/Textarea.js +1 -1
- package/dist/TimePicker.js +3 -3
- package/dist/Toastr.js +3 -8
- package/dist/Toastr.js.map +1 -1
- package/dist/Tooltip.js +1 -1
- package/dist/Tooltip.js.map +1 -1
- package/dist/TreeSelect.js +1 -1
- package/dist/TreeSelect.js.map +1 -1
- package/dist/cjs/ActionDropdown.js +0 -1
- package/dist/cjs/ActionDropdown.js.map +1 -1
- package/dist/cjs/Alert.js +6 -6
- package/dist/cjs/Alert.js.map +1 -1
- package/dist/cjs/Avatar.js +5 -9
- package/dist/cjs/Avatar.js.map +1 -1
- package/dist/cjs/Checkbox.js +4 -4
- package/dist/cjs/Checkbox.js.map +1 -1
- package/dist/cjs/ColorPicker.js +3 -4
- package/dist/cjs/ColorPicker.js.map +1 -1
- package/dist/cjs/DatePicker.js +3 -3
- package/dist/cjs/Dropdown.js +2 -2
- package/dist/cjs/Dropdown.js.map +1 -1
- package/dist/cjs/Input.js +10 -10
- package/dist/cjs/Input.js.map +1 -1
- package/dist/cjs/Label.js +1 -4
- package/dist/cjs/Label.js.map +1 -1
- package/dist/cjs/Modal.js +9 -10
- package/dist/cjs/Modal.js.map +1 -1
- package/dist/cjs/MultiEmailInput.js +11 -11
- package/dist/cjs/MultiEmailInput.js.map +1 -1
- package/dist/cjs/NoData.js +5 -7
- package/dist/cjs/NoData.js.map +1 -1
- package/dist/cjs/Pane.js +5 -6
- package/dist/cjs/Pane.js.map +1 -1
- package/dist/cjs/ProgressBar.js +1 -1
- package/dist/cjs/ProgressBar.js.map +1 -1
- package/dist/cjs/Radio.js +6 -6
- package/dist/cjs/Radio.js.map +1 -1
- package/dist/cjs/Select.js +19 -24
- package/dist/cjs/Select.js.map +1 -1
- package/dist/cjs/Sidebar.js +10 -11
- package/dist/cjs/Sidebar.js.map +1 -1
- package/dist/cjs/Slider.js +3 -3
- package/dist/cjs/Slider.js.map +1 -1
- package/dist/cjs/Spinner.js +1 -2
- package/dist/cjs/Spinner.js.map +1 -1
- package/dist/cjs/Stepper.js +1 -1
- package/dist/cjs/Stepper.js.map +1 -1
- package/dist/cjs/Switch.js +5 -7
- package/dist/cjs/Switch.js.map +1 -1
- package/dist/cjs/Tab.js +3 -4
- package/dist/cjs/Tab.js.map +1 -1
- package/dist/cjs/Table.js +4 -4
- package/dist/cjs/Table.js.map +1 -1
- package/dist/cjs/Tag.js +1 -3
- package/dist/cjs/Tag.js.map +1 -1
- package/dist/cjs/{Textarea-CdPvAT3A.js → Textarea-BxE7T1u3.js} +6 -6
- package/dist/cjs/Textarea-BxE7T1u3.js.map +1 -0
- package/dist/cjs/Textarea.js +1 -1
- package/dist/cjs/TimePicker.js +3 -3
- package/dist/cjs/Toastr.js +3 -8
- package/dist/cjs/Toastr.js.map +1 -1
- package/dist/cjs/Tooltip.js +1 -1
- package/dist/cjs/Tooltip.js.map +1 -1
- package/dist/cjs/TreeSelect.js +1 -1
- package/dist/cjs/TreeSelect.js.map +1 -1
- package/dist/cjs/formik/ActionBlock.js +2 -4
- package/dist/cjs/formik/ActionBlock.js.map +1 -1
- package/dist/cjs/formik/BlockNavigation.js +6 -6
- package/dist/cjs/formik/BlockNavigation.js.map +1 -1
- package/dist/cjs/formik/Textarea.js +1 -1
- package/dist/cjs/formik/index.js +2 -2
- package/dist/cjs/{index-ouVGQMJ2.js → index-BGsAR8rN.js} +14 -15
- package/dist/cjs/index-BGsAR8rN.js.map +1 -0
- package/dist/cjs/index.js +3 -3
- package/dist/cjs/{useOverlayManager-BWAg7Jhg.js → useOverlayManager-BMNCjew1.js} +3 -4
- package/dist/cjs/{useOverlayManager-BWAg7Jhg.js.map → useOverlayManager-BMNCjew1.js.map} +1 -1
- package/dist/formik/ActionBlock.js +2 -4
- package/dist/formik/ActionBlock.js.map +1 -1
- package/dist/formik/BlockNavigation.js +6 -6
- package/dist/formik/BlockNavigation.js.map +1 -1
- package/dist/formik/Textarea.js +1 -1
- package/dist/formik/index.js +2 -2
- package/dist/{index-Ui8-igXs.js → index-Dlo3HdFv.js} +14 -15
- package/dist/index-Dlo3HdFv.js.map +1 -0
- package/dist/index.js +3 -3
- package/dist/{useOverlayManager-DGTN4LZe.js → useOverlayManager-Bn2Stdmg.js} +3 -4
- package/dist/{useOverlayManager-DGTN4LZe.js.map → useOverlayManager-Bn2Stdmg.js.map} +1 -1
- package/package.json +1 -1
- package/dist/Textarea-CEwODEM3.js.map +0 -1
- package/dist/cjs/Textarea-CdPvAT3A.js.map +0 -1
- package/dist/cjs/index-ouVGQMJ2.js.map +0 -1
- package/dist/index-Ui8-igXs.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiEmailInput.js","sources":["../../src/components/MultiEmailInput/constants.jsx","../../src/components/MultiEmailInput/utils.js","../../src/components/MultiEmailInput/index.jsx"],"sourcesContent":["import React, { useEffect, useRef } from \"react\";\n\nimport { Close } from \"neetoicons\";\nimport { assoc } from \"ramda\";\nimport { components } from \"react-select\";\n\nimport Tag from \"components/Tag\";\nimport { hyphenize } from \"utils\";\n\nconst STYLES = {\n border: {\n default: \"1px solid rgb(var(--neeto-ui-gray-400))\",\n error: \"1px solid rgb(var(--neeto-ui-error-800)) !important\",\n },\n color: {\n default: \"rgb(var(--neeto-ui-gray-800))\",\n error: \"rgb(var(--neeto-ui-error-800)) !important\",\n },\n};\n\nconst CustomControl = ({ children, ...props }) => {\n const { getValue } = props;\n const { isFocused, prefix } = props.selectProps;\n\n const prevValue = useRef([]);\n const controlRef = useRef(null);\n\n const value = getValue();\n\n const scrollToBottom = () => {\n const scrollContainer = controlRef.current;\n if (!scrollContainer) return;\n\n const { scrollHeight, clientHeight } = scrollContainer;\n\n scrollContainer.scrollTo({ top: scrollHeight - clientHeight });\n };\n\n useEffect(() => {\n const isItemAdded = value.length > prevValue.current.length;\n const isItemDeleted = value.length < prevValue.current.length;\n\n if ((isFocused && !isItemDeleted) || isItemAdded) scrollToBottom();\n\n prevValue.current = value;\n }, [isFocused, value]);\n\n return (\n <components.Control\n {...props}\n innerProps={{ ...props.innerProps, ref: controlRef }}\n >\n {prefix && <div className=\"neeto-ui-email-input__prefix\">{prefix}</div>}\n {children}\n </components.Control>\n );\n};\n\nconst CustomDropdownIndicator = props => {\n const { suffix } = props.selectProps;\n\n return suffix ? (\n <components.DropdownIndicator {...props}>\n <div className=\"neeto-ui-email-input__suffix\">{suffix}</div>\n </components.DropdownIndicator>\n ) : null;\n};\n\nconst MultiValueRemove = props => (\n <components.MultiValueRemove\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-cy\"]: `${hyphenize(props.data.label)}-remove-icon`,\n }}\n >\n <Close size={16} />\n </components.MultiValueRemove>\n);\n\nconst CustomValueContainer = ({ children, ...props }) => {\n const {\n getValue,\n selectProps: { isFocused, visibleEmailsCount, isAlwaysExpanded },\n } = props;\n const value = getValue();\n const [firstChild, ...rest] = children;\n\n const shouldCollapse =\n !isAlwaysExpanded && !isFocused && value.length > visibleEmailsCount;\n\n return (\n <components.ValueContainer\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-cy\"]: \"multi-email-input-container\",\n }}\n >\n {shouldCollapse ? firstChild.slice(0, visibleEmailsCount) : firstChild}\n {shouldCollapse && (\n <Tag\n label={`${value.length - visibleEmailsCount} more`}\n style=\"secondary\"\n />\n )}\n {rest}\n </components.ValueContainer>\n );\n};\n\nconst CustomClearIndicator = props => (\n <components.ClearIndicator\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-cy\"]: \"clear-all-button\",\n }}\n >\n <Close className=\"cursor-pointer\" size={16} />\n </components.ClearIndicator>\n);\n\nconst SelectContainer = props => (\n <components.SelectContainer\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-cy\"]: \"multi-email-select-container\",\n }}\n />\n);\n\nconst Input = props => {\n const handlePaste = event => {\n const { handleEmailChange } = props.selectProps;\n\n const text = event.clipboardData.getData(\"Text\");\n if (!EMAIL_REGEX.test(text)) return;\n\n event?.preventDefault();\n setTimeout(() => handleEmailChange(text));\n };\n\n return (\n <components.Input\n {...props}\n data-cy=\"email-select-input-field\"\n onPaste={handlePaste}\n />\n );\n};\n\nexport const EMAIL_REGEX = new RegExp(\n \"^[A-Z0-9._%+-]+@[A-Z0-9-]+(?:\\\\.[A-Z0-9-]+)*\\\\.[A-Z]{2,}$\",\n \"i\"\n);\n\nexport const UNSTRICT_EMAIL_REGEX =\n /(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))/g;\n\nexport const EMAIL_SEPARATION_REGEX = /[^\\s,]+/g;\n\nexport const CUSTOM_STYLES = {\n input: assoc(\"overflow\", \"hidden\"),\n multiValue: (styles, { data: { valid } }) => ({\n ...styles,\n border: valid ? STYLES.border.default : STYLES.border.error,\n color: valid ? STYLES.color.default : STYLES.color.error,\n }),\n};\n\nexport const CUSTOM_COMPONENTS = {\n DropdownIndicator: CustomDropdownIndicator,\n Control: CustomControl,\n MultiValueRemove,\n ValueContainer: CustomValueContainer,\n ClearIndicator: CustomClearIndicator,\n SelectContainer,\n Input,\n};\n","import { isPresent } from \"neetocist\";\nimport { pluck } from \"ramda\";\n\nimport { EMAIL_REGEX } from \"./constants\";\n\nconst getEmailsMap = (inputEmails = [], options = []) => {\n const emails = [...inputEmails, ...options];\n const emailsMap = new Map();\n\n emails.forEach(option => {\n const hasPersistedEntry = isPresent(emailsMap.get(option.value)?.id);\n if (!hasPersistedEntry) emailsMap.set(option.value, option);\n });\n\n return emailsMap;\n};\n\nconst processEmailOptions = (inputEmails = [], options = []) => {\n const emailsMap = getEmailsMap(inputEmails, options);\n\n return email => {\n const emailDetails = emailsMap.get(email) || { value: email };\n\n return formatEmailInputOption(emailDetails);\n };\n};\n\nexport const formatEmailInputOption = ({ label, value, ...otherDetails }) => ({\n label: label ?? value,\n value,\n ...otherDetails,\n valid: EMAIL_REGEX.test(value),\n});\n\nexport const pruneDuplicates = (inputValues, options) => {\n const emailProcessor = processEmailOptions(inputValues, options);\n const emails = pluck(\"value\", inputValues);\n const uniqueValuesSet = new Set();\n const duplicates = [];\n\n emails.forEach(pristineEmail => {\n const email = pristineEmail.toLowerCase();\n if (uniqueValuesSet.has(email)) duplicates.push(pristineEmail);\n\n uniqueValuesSet.add(email);\n });\n\n const uniqueValues = Array.from(uniqueValuesSet);\n const uniqueEmails = uniqueValues.map(emailProcessor);\n\n return { uniqueEmails, duplicates };\n};\n\nexport const renderValidEmails = values =>\n values.filter(email => email.valid && email);\n\nexport const getValidEmailsCount = values => renderValidEmails(values).length;\n\nexport const renderDefaultText = count => (count === 1 ? \"email\" : \"emails\");\n\nexport const renderDuplicateEmailsWarningMessage = duplicateEmails => {\n const count = duplicateEmails.length;\n\n return `Removed ${count} duplicate ${renderDefaultText(\n count\n )} from the list: ${duplicateEmails.join(\", \")}`;\n};\n","import React, { useState, forwardRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport { mergeLeft, isEmpty } from \"ramda\";\nimport CreatableSelect from \"react-select/creatable\";\n\nimport { noop, hyphenize } from \"utils\";\n\nimport {\n EMAIL_SEPARATION_REGEX,\n CUSTOM_STYLES,\n UNSTRICT_EMAIL_REGEX,\n CUSTOM_COMPONENTS,\n} from \"./constants\";\nimport {\n pruneDuplicates,\n renderValidEmails,\n renderDefaultText,\n getValidEmailsCount,\n renderDuplicateEmailsWarningMessage,\n} from \"./utils\";\n\nimport Label from \"../Label\";\n\nconst MultiEmailInput = forwardRef(\n (\n {\n label = \"Email(s)\",\n placeholder = \"\",\n helpText = \"\",\n value = [],\n onChange = noop,\n error = \"\",\n onBlur = noop,\n filterInvalidEmails,\n counter,\n disabled = false,\n maxHeight = 200,\n required = false,\n labelProps,\n visibleEmailsCount = 3,\n isCreateable = true,\n isAlwaysExpanded = false,\n ...otherProps\n },\n ref\n ) => {\n const [inputValue, setInputValue] = useState(\"\");\n const [isFocused, setIsFocused] = useState(false);\n const [duplicateEmails, setDuplicateEmails] = useState([]);\n const [isMenuOpen, setIsMenuOpen] = useState(false);\n\n const isCounterVisible =\n !!counter &&\n (!counter.startsFrom || getValidEmailsCount(value) >= counter.startsFrom);\n\n const isOptionsPresent = !!otherProps.options;\n\n const handleFilterEmails = () => onChange(renderValidEmails(value));\n\n const handleEmailChange = inputValue => {\n if (!isCreateable) return;\n\n const inputValues = inputValue.match(EMAIL_SEPARATION_REGEX);\n const emailMatches =\n inputValue.match(UNSTRICT_EMAIL_REGEX) || inputValues || [];\n\n const emails = emailMatches.map(email => ({ value: email }));\n\n const { uniqueEmails, duplicates } = pruneDuplicates(\n [...value, ...emails],\n otherProps.options\n );\n onChange(uniqueEmails);\n setDuplicateEmails(duplicates);\n setInputValue(\"\");\n setIsMenuOpen(false);\n };\n\n const handleKeyDown = event => {\n if (!inputValue) return;\n\n switch (event.key) {\n case \"Enter\": {\n handleEmailChange(inputValue);\n !isOptionsPresent && event.preventDefault();\n event.stopPropagation();\n\n return;\n }\n case \"Tab\":\n case \",\":\n case \" \": {\n handleEmailChange(inputValue);\n event.preventDefault();\n event.stopPropagation();\n }\n }\n };\n\n const onCreateOption = input => {\n const { uniqueEmails, duplicates } = pruneDuplicates(\n [...value, { value: input }],\n otherProps.options\n );\n onChange(uniqueEmails);\n setDuplicateEmails(duplicates);\n otherProps?.onCreateOption?.(input);\n };\n\n const handleBlur = event => {\n inputValue ? handleEmailChange(inputValue) : onBlur(event);\n setIsFocused(false);\n setDuplicateEmails([]);\n };\n\n let overrideProps = {};\n\n if (isOptionsPresent) {\n const isValidNewOption = (inputValue, _, selectOptions) => {\n if (!isCreateable) return false;\n\n const isInputEmpty = isEmpty(inputValue.trim());\n const doesInputContainSeparator =\n inputValue.includes(\",\") || inputValue.includes(\" \");\n\n const isInputPresentInOptions = selectOptions.find(\n option => option.value === inputValue.toLowerCase()\n );\n\n return !(\n isInputEmpty ||\n doesInputContainSeparator ||\n isInputPresentInOptions\n );\n };\n overrideProps = { onCreateOption, isValidNewOption };\n }\n\n const isFilterEmailsLinkVisible =\n !!filterInvalidEmails && value.length > getValidEmailsCount(value);\n\n return (\n <div\n className=\"neeto-ui-input__wrapper neeto-ui-email-input__wrapper\"\n data-cy=\"email-input-wrapper\"\n >\n <div className=\"neeto-ui-email-input__label-wrapper\">\n {label && (\n <Label\n {...{ required }}\n className=\"neeto-ui-email-input__label\"\n data-cy={`${hyphenize(label)}-input-label`}\n {...labelProps}\n >\n {label}\n </Label>\n )}\n {isCounterVisible && (\n <p\n className=\"neeto-ui-email-input__counter\"\n data-cy={`${hyphenize(label)}-email-counter`}\n >\n {getValidEmailsCount(value)}{\" \"}\n {counter.label\n ? counter.label\n : renderDefaultText(getValidEmailsCount(value))}\n </p>\n )}\n </div>\n <CreatableSelect\n isMulti\n required\n blurInputOnSelect={false}\n classNamePrefix=\"neeto-ui-react-select\"\n components={CUSTOM_COMPONENTS}\n isDisabled={disabled}\n menuIsOpen={isMenuOpen}\n className={classnames(\n \"neeto-ui-react-select__container neeto-ui-react-select__container--medium neeto-ui-email-input__select\",\n { \"neeto-ui-react-select__container--error\": !!error }\n )}\n styles={{\n ...CUSTOM_STYLES,\n control: mergeLeft({\n maxHeight: `${maxHeight}px`,\n overflowY: \"auto\",\n }),\n }}\n onBlur={handleBlur}\n onFocus={() => setIsFocused(true)}\n onKeyDown={handleKeyDown}\n onInputChange={inputValue => {\n setIsMenuOpen(Boolean(inputValue));\n setInputValue(inputValue);\n }}\n {...{\n handleEmailChange,\n inputValue,\n isAlwaysExpanded,\n isFocused,\n onChange,\n placeholder,\n ref,\n value,\n visibleEmailsCount,\n ...(!isOptionsPresent && { menuIsOpen: false }),\n ...otherProps,\n ...overrideProps,\n }}\n />\n {!!error && (\n <p\n className=\"neeto-ui-input__error\"\n data-cy={`${hyphenize(label)}-input-error`}\n >\n {error}\n {isFilterEmailsLinkVisible && (\n <span\n className=\"neeto-ui-font-semibold cursor-pointer\"\n onClick={handleFilterEmails}\n >\n \n {filterInvalidEmails.label\n ? filterInvalidEmails.label\n : \"Click here to remove invalid emails.\"}\n </span>\n )}\n </p>\n )}\n {!!helpText && (\n <p\n className=\"neeto-ui-input__help-text\"\n data-cy={`${hyphenize(label)}-input-help`}\n >\n {helpText}\n </p>\n )}\n {!!duplicateEmails.length && (\n <p\n className=\"neeto-ui-input__error\"\n data-cy={`${hyphenize(label)}-duplicate-emails-warning`}\n >\n {renderDuplicateEmailsWarningMessage(duplicateEmails)}\n </p>\n )}\n </div>\n );\n }\n);\n\nMultiEmailInput.displayName = \"MultiEmailInput\";\n\nMultiEmailInput.propTypes = {\n /**\n * To specify the text to be displayed above the Input field.\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 specify the text to be displayed inside the Input field.\n */\n placeholder: PropTypes.string,\n /**\n * To specify the helper text message to be displayed below the Input field.\n */\n helpText: PropTypes.string,\n /**\n * To specify the value to be displayed inside the Input field.\n */\n value: PropTypes.array,\n /**\n * To specify the error message to be shown below the Input field.\n */\n error: PropTypes.string,\n /**\n * To specify whether the Input field is disabled or not.\n */\n disabled: PropTypes.bool,\n /**\n * To specify whether the Input field is required or not.\n */\n required: PropTypes.bool,\n /**\n * To specify the message to be shown besides the error message to filter out the invalid emails.\n */\n filterInvalidEmails: PropTypes.shape({ label: PropTypes.string }),\n /**\n * To add an email counter next to the label.\n */\n counter: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.string,\n startsFrom: PropTypes.number,\n }),\n ]),\n /**\n * To specify the action to be triggered on modifying the Input field.\n */\n onChange: PropTypes.func,\n /**\n * To specify the action to be triggered on changing focus from the Input field.\n */\n onBlur: PropTypes.func,\n /**\n * To specify the maximum height (in pixels) of the container before it becomes scrollable.\n */\n maxHeight: PropTypes.number,\n /**\n * To specify the content to be added at the end of the Input field.\n */\n suffix: PropTypes.node,\n /**\n * To specify the content to be added at the beginning of the Input field.\n */\n prefix: PropTypes.node,\n /**\n * To specify the number of email to be displayed in the input field when not in focus.\n */\n visibleEmailsCount: PropTypes.number,\n /**\n * To specify whether a new email option can be created or not.\n */\n isCreateable: PropTypes.bool,\n /**\n * To specify whether the input field should always be shown in an expanded state or not.\n */\n isAlwaysExpanded: PropTypes.bool,\n};\n\nexport default MultiEmailInput;\n"],"names":["STYLES","border","error","color","CustomControl","_ref","children","props","_objectWithoutProperties","_excluded","getValue","_props$selectProps","selectProps","isFocused","prefix","prevValue","useRef","controlRef","value","scrollToBottom","scrollContainer","current","scrollHeight","clientHeight","scrollTo","top","useEffect","isItemAdded","length","isItemDeleted","_jsxs","components","Control","_objectSpread","innerProps","ref","_jsx","className","CustomDropdownIndicator","suffix","DropdownIndicator","MultiValueRemove","_defineProperty","concat","hyphenize","data","label","Close","size","CustomValueContainer","_ref2","_excluded2","_props$selectProps2","visibleEmailsCount","isAlwaysExpanded","_children","_toArray","firstChild","rest","slice","shouldCollapse","ValueContainer","Tag","style","CustomClearIndicator","ClearIndicator","SelectContainer","Input","handlePaste","event","handleEmailChange","text","clipboardData","getData","EMAIL_REGEX","test","preventDefault","setTimeout","onPaste","RegExp","UNSTRICT_EMAIL_REGEX","EMAIL_SEPARATION_REGEX","CUSTOM_STYLES","input","assoc","multiValue","styles","_ref3","valid","CUSTOM_COMPONENTS","getEmailsMap","inputEmails","arguments","undefined","options","emails","_toConsumableArray","emailsMap","Map","forEach","option","_emailsMap$get","hasPersistedEntry","isPresent","get","id","set","processEmailOptions","email","emailDetails","formatEmailInputOption","otherDetails","pruneDuplicates","inputValues","emailProcessor","pluck","uniqueValuesSet","Set","duplicates","pristineEmail","toLowerCase","has","push","add","uniqueValues","Array","from","uniqueEmails","map","renderValidEmails","values","filter","getValidEmailsCount","renderDefaultText","count","renderDuplicateEmailsWarningMessage","duplicateEmails","join","MultiEmailInput","forwardRef","_ref$label","_ref$placeholder","placeholder","_ref$helpText","helpText","_ref$value","_ref$onChange","onChange","noop","_ref$error","_ref$onBlur","onBlur","filterInvalidEmails","counter","_ref$disabled","disabled","_ref$maxHeight","maxHeight","_ref$required","required","labelProps","_ref$visibleEmailsCou","_ref$isCreateable","isCreateable","_ref$isAlwaysExpanded","otherProps","_useState","useState","_useState2","_slicedToArray","inputValue","setInputValue","_useState3","_useState4","setIsFocused","_useState5","_useState6","setDuplicateEmails","_useState7","_useState8","isMenuOpen","setIsMenuOpen","isCounterVisible","startsFrom","isOptionsPresent","handleFilterEmails","match","emailMatches","_pruneDuplicates","handleKeyDown","key","stopPropagation","onCreateOption","_otherProps$onCreateO","_pruneDuplicates2","call","handleBlur","overrideProps","isValidNewOption","_","selectOptions","isInputEmpty","isEmpty","trim","doesInputContainSeparator","includes","isInputPresentInOptions","find","isFilterEmailsLinkVisible","Label","CreatableSelect","isMulti","blurInputOnSelect","classNamePrefix","isDisabled","menuIsOpen","classnames","control","mergeLeft","overflowY","onFocus","onKeyDown","onInputChange","Boolean","onClick","displayName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MultiEmailInput.js","sources":["../../src/components/MultiEmailInput/constants.jsx","../../src/components/MultiEmailInput/utils.js","../../src/components/MultiEmailInput/index.jsx"],"sourcesContent":["import React, { useEffect, useRef } from \"react\";\n\nimport { Close } from \"neetoicons\";\nimport { assoc } from \"ramda\";\nimport { components } from \"react-select\";\n\nimport Tag from \"components/Tag\";\nimport { hyphenize } from \"utils\";\n\nconst STYLES = {\n border: {\n default: \"1px solid rgb(var(--neeto-ui-gray-400))\",\n error: \"1px solid rgb(var(--neeto-ui-error-800)) !important\",\n },\n color: {\n default: \"rgb(var(--neeto-ui-gray-800))\",\n error: \"rgb(var(--neeto-ui-error-800)) !important\",\n },\n};\n\nconst CustomControl = ({ children, ...props }) => {\n const { getValue } = props;\n const { isFocused, prefix } = props.selectProps;\n\n const prevValue = useRef([]);\n const controlRef = useRef(null);\n\n const value = getValue();\n\n const scrollToBottom = () => {\n const scrollContainer = controlRef.current;\n if (!scrollContainer) return;\n\n const { scrollHeight, clientHeight } = scrollContainer;\n\n scrollContainer.scrollTo({ top: scrollHeight - clientHeight });\n };\n\n useEffect(() => {\n const isItemAdded = value.length > prevValue.current.length;\n const isItemDeleted = value.length < prevValue.current.length;\n\n if ((isFocused && !isItemDeleted) || isItemAdded) scrollToBottom();\n\n prevValue.current = value;\n }, [isFocused, value]);\n\n return (\n <components.Control\n {...props}\n innerProps={{ ...props.innerProps, ref: controlRef }}\n >\n {prefix && <div className=\"neeto-ui-email-input__prefix\">{prefix}</div>}\n {children}\n </components.Control>\n );\n};\n\nconst CustomDropdownIndicator = props => {\n const { suffix } = props.selectProps;\n\n return suffix ? (\n <components.DropdownIndicator {...props}>\n <div className=\"neeto-ui-email-input__suffix\">{suffix}</div>\n </components.DropdownIndicator>\n ) : null;\n};\n\nconst MultiValueRemove = props => (\n <components.MultiValueRemove\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-testid\"]: `${hyphenize(props.data.label)}-remove-icon`,\n }}\n >\n <Close size={16} />\n </components.MultiValueRemove>\n);\n\nconst CustomValueContainer = ({ children, ...props }) => {\n const {\n getValue,\n selectProps: { isFocused, visibleEmailsCount, isAlwaysExpanded },\n } = props;\n const value = getValue();\n const [firstChild, ...rest] = children;\n\n const shouldCollapse =\n !isAlwaysExpanded && !isFocused && value.length > visibleEmailsCount;\n\n return (\n <components.ValueContainer\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-testid\"]: \"multi-email-input-container\",\n }}\n >\n {shouldCollapse ? firstChild.slice(0, visibleEmailsCount) : firstChild}\n {shouldCollapse && (\n <Tag\n label={`${value.length - visibleEmailsCount} more`}\n style=\"secondary\"\n />\n )}\n {rest}\n </components.ValueContainer>\n );\n};\n\nconst CustomClearIndicator = props => (\n <components.ClearIndicator\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-testid\"]: \"clear-all-button\",\n }}\n >\n <Close className=\"cursor-pointer\" size={16} />\n </components.ClearIndicator>\n);\n\nconst SelectContainer = props => (\n <components.SelectContainer\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-testid\"]: \"multi-email-select-container\",\n }}\n />\n);\n\nconst Input = props => {\n const handlePaste = event => {\n const { handleEmailChange } = props.selectProps;\n\n const text = event.clipboardData.getData(\"Text\");\n if (!EMAIL_REGEX.test(text)) return;\n\n event?.preventDefault();\n setTimeout(() => handleEmailChange(text));\n };\n\n return (\n <components.Input\n {...props}\n data-testid=\"email-select-input-field\"\n onPaste={handlePaste}\n />\n );\n};\n\nexport const EMAIL_REGEX = new RegExp(\n \"^[A-Z0-9._%+-]+@[A-Z0-9-]+(?:\\\\.[A-Z0-9-]+)*\\\\.[A-Z]{2,}$\",\n \"i\"\n);\n\nexport const UNSTRICT_EMAIL_REGEX =\n /(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))/g;\n\nexport const EMAIL_SEPARATION_REGEX = /[^\\s,]+/g;\n\nexport const CUSTOM_STYLES = {\n input: assoc(\"overflow\", \"hidden\"),\n multiValue: (styles, { data: { valid } }) => ({\n ...styles,\n border: valid ? STYLES.border.default : STYLES.border.error,\n color: valid ? STYLES.color.default : STYLES.color.error,\n }),\n};\n\nexport const CUSTOM_COMPONENTS = {\n DropdownIndicator: CustomDropdownIndicator,\n Control: CustomControl,\n MultiValueRemove,\n ValueContainer: CustomValueContainer,\n ClearIndicator: CustomClearIndicator,\n SelectContainer,\n Input,\n};\n","import { isPresent } from \"neetocist\";\nimport { pluck } from \"ramda\";\n\nimport { EMAIL_REGEX } from \"./constants\";\n\nconst getEmailsMap = (inputEmails = [], options = []) => {\n const emails = [...inputEmails, ...options];\n const emailsMap = new Map();\n\n emails.forEach(option => {\n const hasPersistedEntry = isPresent(emailsMap.get(option.value)?.id);\n if (!hasPersistedEntry) emailsMap.set(option.value, option);\n });\n\n return emailsMap;\n};\n\nconst processEmailOptions = (inputEmails = [], options = []) => {\n const emailsMap = getEmailsMap(inputEmails, options);\n\n return email => {\n const emailDetails = emailsMap.get(email) || { value: email };\n\n return formatEmailInputOption(emailDetails);\n };\n};\n\nexport const formatEmailInputOption = ({ label, value, ...otherDetails }) => ({\n label: label ?? value,\n value,\n ...otherDetails,\n valid: EMAIL_REGEX.test(value),\n});\n\nexport const pruneDuplicates = (inputValues, options) => {\n const emailProcessor = processEmailOptions(inputValues, options);\n const emails = pluck(\"value\", inputValues);\n const uniqueValuesSet = new Set();\n const duplicates = [];\n\n emails.forEach(pristineEmail => {\n const email = pristineEmail.toLowerCase();\n if (uniqueValuesSet.has(email)) duplicates.push(pristineEmail);\n\n uniqueValuesSet.add(email);\n });\n\n const uniqueValues = Array.from(uniqueValuesSet);\n const uniqueEmails = uniqueValues.map(emailProcessor);\n\n return { uniqueEmails, duplicates };\n};\n\nexport const renderValidEmails = values =>\n values.filter(email => email.valid && email);\n\nexport const getValidEmailsCount = values => renderValidEmails(values).length;\n\nexport const renderDefaultText = count => (count === 1 ? \"email\" : \"emails\");\n\nexport const renderDuplicateEmailsWarningMessage = duplicateEmails => {\n const count = duplicateEmails.length;\n\n return `Removed ${count} duplicate ${renderDefaultText(\n count\n )} from the list: ${duplicateEmails.join(\", \")}`;\n};\n","import React, { useState, forwardRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport { mergeLeft, isEmpty } from \"ramda\";\nimport CreatableSelect from \"react-select/creatable\";\n\nimport { noop, hyphenize } from \"utils\";\n\nimport {\n EMAIL_SEPARATION_REGEX,\n CUSTOM_STYLES,\n UNSTRICT_EMAIL_REGEX,\n CUSTOM_COMPONENTS,\n} from \"./constants\";\nimport {\n pruneDuplicates,\n renderValidEmails,\n renderDefaultText,\n getValidEmailsCount,\n renderDuplicateEmailsWarningMessage,\n} from \"./utils\";\n\nimport Label from \"../Label\";\n\nconst MultiEmailInput = forwardRef(\n (\n {\n label = \"Email(s)\",\n placeholder = \"\",\n helpText = \"\",\n value = [],\n onChange = noop,\n error = \"\",\n onBlur = noop,\n filterInvalidEmails,\n counter,\n disabled = false,\n maxHeight = 200,\n required = false,\n labelProps,\n visibleEmailsCount = 3,\n isCreateable = true,\n isAlwaysExpanded = false,\n ...otherProps\n },\n ref\n ) => {\n const [inputValue, setInputValue] = useState(\"\");\n const [isFocused, setIsFocused] = useState(false);\n const [duplicateEmails, setDuplicateEmails] = useState([]);\n const [isMenuOpen, setIsMenuOpen] = useState(false);\n\n const isCounterVisible =\n !!counter &&\n (!counter.startsFrom || getValidEmailsCount(value) >= counter.startsFrom);\n\n const isOptionsPresent = !!otherProps.options;\n\n const handleFilterEmails = () => onChange(renderValidEmails(value));\n\n const handleEmailChange = inputValue => {\n if (!isCreateable) return;\n\n const inputValues = inputValue.match(EMAIL_SEPARATION_REGEX);\n const emailMatches =\n inputValue.match(UNSTRICT_EMAIL_REGEX) || inputValues || [];\n\n const emails = emailMatches.map(email => ({ value: email }));\n\n const { uniqueEmails, duplicates } = pruneDuplicates(\n [...value, ...emails],\n otherProps.options\n );\n onChange(uniqueEmails);\n setDuplicateEmails(duplicates);\n setInputValue(\"\");\n setIsMenuOpen(false);\n };\n\n const handleKeyDown = event => {\n if (!inputValue) return;\n\n switch (event.key) {\n case \"Enter\": {\n handleEmailChange(inputValue);\n !isOptionsPresent && event.preventDefault();\n event.stopPropagation();\n\n return;\n }\n case \"Tab\":\n case \",\":\n case \" \": {\n handleEmailChange(inputValue);\n event.preventDefault();\n event.stopPropagation();\n }\n }\n };\n\n const onCreateOption = input => {\n const { uniqueEmails, duplicates } = pruneDuplicates(\n [...value, { value: input }],\n otherProps.options\n );\n onChange(uniqueEmails);\n setDuplicateEmails(duplicates);\n otherProps?.onCreateOption?.(input);\n };\n\n const handleBlur = event => {\n inputValue ? handleEmailChange(inputValue) : onBlur(event);\n setIsFocused(false);\n setDuplicateEmails([]);\n };\n\n let overrideProps = {};\n\n if (isOptionsPresent) {\n const isValidNewOption = (inputValue, _, selectOptions) => {\n if (!isCreateable) return false;\n\n const isInputEmpty = isEmpty(inputValue.trim());\n const doesInputContainSeparator =\n inputValue.includes(\",\") || inputValue.includes(\" \");\n\n const isInputPresentInOptions = selectOptions.find(\n option => option.value === inputValue.toLowerCase()\n );\n\n return !(\n isInputEmpty ||\n doesInputContainSeparator ||\n isInputPresentInOptions\n );\n };\n overrideProps = { onCreateOption, isValidNewOption };\n }\n\n const isFilterEmailsLinkVisible =\n !!filterInvalidEmails && value.length > getValidEmailsCount(value);\n\n return (\n <div\n className=\"neeto-ui-input__wrapper neeto-ui-email-input__wrapper\"\n data-testid=\"email-input-wrapper\"\n >\n <div className=\"neeto-ui-email-input__label-wrapper\">\n {label && (\n <Label\n {...{ required }}\n className=\"neeto-ui-email-input__label\"\n data-testid={`${hyphenize(label)}-input-label`}\n {...labelProps}\n >\n {label}\n </Label>\n )}\n {isCounterVisible && (\n <p\n className=\"neeto-ui-email-input__counter\"\n data-testid={`${hyphenize(label)}-email-counter`}\n >\n {getValidEmailsCount(value)}{\" \"}\n {counter.label\n ? counter.label\n : renderDefaultText(getValidEmailsCount(value))}\n </p>\n )}\n </div>\n <CreatableSelect\n isMulti\n required\n blurInputOnSelect={false}\n classNamePrefix=\"neeto-ui-react-select\"\n components={CUSTOM_COMPONENTS}\n isDisabled={disabled}\n menuIsOpen={isMenuOpen}\n className={classnames(\n \"neeto-ui-react-select__container neeto-ui-react-select__container--medium neeto-ui-email-input__select\",\n { \"neeto-ui-react-select__container--error\": !!error }\n )}\n styles={{\n ...CUSTOM_STYLES,\n control: mergeLeft({\n maxHeight: `${maxHeight}px`,\n overflowY: \"auto\",\n }),\n }}\n onBlur={handleBlur}\n onFocus={() => setIsFocused(true)}\n onKeyDown={handleKeyDown}\n onInputChange={inputValue => {\n setIsMenuOpen(Boolean(inputValue));\n setInputValue(inputValue);\n }}\n {...{\n handleEmailChange,\n inputValue,\n isAlwaysExpanded,\n isFocused,\n onChange,\n placeholder,\n ref,\n value,\n visibleEmailsCount,\n ...(!isOptionsPresent && { menuIsOpen: false }),\n ...otherProps,\n ...overrideProps,\n }}\n />\n {!!error && (\n <p\n className=\"neeto-ui-input__error\"\n data-testid={`${hyphenize(label)}-input-error`}\n >\n {error}\n {isFilterEmailsLinkVisible && (\n <span\n className=\"neeto-ui-font-semibold cursor-pointer\"\n onClick={handleFilterEmails}\n >\n \n {filterInvalidEmails.label\n ? filterInvalidEmails.label\n : \"Click here to remove invalid emails.\"}\n </span>\n )}\n </p>\n )}\n {!!helpText && (\n <p\n className=\"neeto-ui-input__help-text\"\n data-testid={`${hyphenize(label)}-input-help`}\n >\n {helpText}\n </p>\n )}\n {!!duplicateEmails.length && (\n <p\n className=\"neeto-ui-input__error\"\n data-testid={`${hyphenize(label)}-duplicate-emails-warning`}\n >\n {renderDuplicateEmailsWarningMessage(duplicateEmails)}\n </p>\n )}\n </div>\n );\n }\n);\n\nMultiEmailInput.displayName = \"MultiEmailInput\";\n\nMultiEmailInput.propTypes = {\n /**\n * To specify the text to be displayed above the Input field.\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 specify the text to be displayed inside the Input field.\n */\n placeholder: PropTypes.string,\n /**\n * To specify the helper text message to be displayed below the Input field.\n */\n helpText: PropTypes.string,\n /**\n * To specify the value to be displayed inside the Input field.\n */\n value: PropTypes.array,\n /**\n * To specify the error message to be shown below the Input field.\n */\n error: PropTypes.string,\n /**\n * To specify whether the Input field is disabled or not.\n */\n disabled: PropTypes.bool,\n /**\n * To specify whether the Input field is required or not.\n */\n required: PropTypes.bool,\n /**\n * To specify the message to be shown besides the error message to filter out the invalid emails.\n */\n filterInvalidEmails: PropTypes.shape({ label: PropTypes.string }),\n /**\n * To add an email counter next to the label.\n */\n counter: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.string,\n startsFrom: PropTypes.number,\n }),\n ]),\n /**\n * To specify the action to be triggered on modifying the Input field.\n */\n onChange: PropTypes.func,\n /**\n * To specify the action to be triggered on changing focus from the Input field.\n */\n onBlur: PropTypes.func,\n /**\n * To specify the maximum height (in pixels) of the container before it becomes scrollable.\n */\n maxHeight: PropTypes.number,\n /**\n * To specify the content to be added at the end of the Input field.\n */\n suffix: PropTypes.node,\n /**\n * To specify the content to be added at the beginning of the Input field.\n */\n prefix: PropTypes.node,\n /**\n * To specify the number of email to be displayed in the input field when not in focus.\n */\n visibleEmailsCount: PropTypes.number,\n /**\n * To specify whether a new email option can be created or not.\n */\n isCreateable: PropTypes.bool,\n /**\n * To specify whether the input field should always be shown in an expanded state or not.\n */\n isAlwaysExpanded: PropTypes.bool,\n};\n\nexport default MultiEmailInput;\n"],"names":["STYLES","border","error","color","CustomControl","_ref","children","props","_objectWithoutProperties","_excluded","getValue","_props$selectProps","selectProps","isFocused","prefix","prevValue","useRef","controlRef","value","scrollToBottom","scrollContainer","current","scrollHeight","clientHeight","scrollTo","top","useEffect","isItemAdded","length","isItemDeleted","_jsxs","components","Control","_objectSpread","innerProps","ref","_jsx","className","CustomDropdownIndicator","suffix","DropdownIndicator","MultiValueRemove","_defineProperty","concat","hyphenize","data","label","Close","size","CustomValueContainer","_ref2","_excluded2","_props$selectProps2","visibleEmailsCount","isAlwaysExpanded","_children","_toArray","firstChild","rest","slice","shouldCollapse","ValueContainer","Tag","style","CustomClearIndicator","ClearIndicator","SelectContainer","Input","handlePaste","event","handleEmailChange","text","clipboardData","getData","EMAIL_REGEX","test","preventDefault","setTimeout","onPaste","RegExp","UNSTRICT_EMAIL_REGEX","EMAIL_SEPARATION_REGEX","CUSTOM_STYLES","input","assoc","multiValue","styles","_ref3","valid","CUSTOM_COMPONENTS","getEmailsMap","inputEmails","arguments","undefined","options","emails","_toConsumableArray","emailsMap","Map","forEach","option","_emailsMap$get","hasPersistedEntry","isPresent","get","id","set","processEmailOptions","email","emailDetails","formatEmailInputOption","otherDetails","pruneDuplicates","inputValues","emailProcessor","pluck","uniqueValuesSet","Set","duplicates","pristineEmail","toLowerCase","has","push","add","uniqueValues","Array","from","uniqueEmails","map","renderValidEmails","values","filter","getValidEmailsCount","renderDefaultText","count","renderDuplicateEmailsWarningMessage","duplicateEmails","join","MultiEmailInput","forwardRef","_ref$label","_ref$placeholder","placeholder","_ref$helpText","helpText","_ref$value","_ref$onChange","onChange","noop","_ref$error","_ref$onBlur","onBlur","filterInvalidEmails","counter","_ref$disabled","disabled","_ref$maxHeight","maxHeight","_ref$required","required","labelProps","_ref$visibleEmailsCou","_ref$isCreateable","isCreateable","_ref$isAlwaysExpanded","otherProps","_useState","useState","_useState2","_slicedToArray","inputValue","setInputValue","_useState3","_useState4","setIsFocused","_useState5","_useState6","setDuplicateEmails","_useState7","_useState8","isMenuOpen","setIsMenuOpen","isCounterVisible","startsFrom","isOptionsPresent","handleFilterEmails","match","emailMatches","_pruneDuplicates","handleKeyDown","key","stopPropagation","onCreateOption","_otherProps$onCreateO","_pruneDuplicates2","call","handleBlur","overrideProps","isValidNewOption","_","selectOptions","isInputEmpty","isEmpty","trim","doesInputContainSeparator","includes","isInputPresentInOptions","find","isFilterEmailsLinkVisible","Label","CreatableSelect","isMulti","blurInputOnSelect","classNamePrefix","isDisabled","menuIsOpen","classnames","control","mergeLeft","overflowY","onFocus","onKeyDown","onInputChange","Boolean","onClick","displayName"],"mappings":"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"}
|
package/dist/cjs/NoData.js
CHANGED
|
@@ -17,7 +17,7 @@ require('tippy.js');
|
|
|
17
17
|
|
|
18
18
|
var renderImage = function renderImage(image) {
|
|
19
19
|
return typeof image === "string" ? /*#__PURE__*/jsxRuntime.jsx("img", {
|
|
20
|
-
"data-
|
|
20
|
+
"data-testid": "no-data-image",
|
|
21
21
|
src: image
|
|
22
22
|
}) : image;
|
|
23
23
|
};
|
|
@@ -51,26 +51,26 @@ var NoData = function NoData(_ref) {
|
|
|
51
51
|
var showButtonSeparator = hasButtonSeparatorText && hasPrimaryButtonProps && hasSecondaryButtonProps;
|
|
52
52
|
return /*#__PURE__*/jsxRuntime.jsxs("div", _objectSpread(_objectSpread({
|
|
53
53
|
className: classnames("neeto-ui-no-data", [className]),
|
|
54
|
-
"data-
|
|
54
|
+
"data-testid": "no-data-container"
|
|
55
55
|
}, otherProps), {}, {
|
|
56
56
|
children: [image ? /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
57
57
|
className: "neeto-ui-no-data__image",
|
|
58
58
|
children: renderImage(image)
|
|
59
59
|
}) : null, title && /*#__PURE__*/jsxRuntime.jsx(Typography, {
|
|
60
60
|
className: "neeto-ui-text-center",
|
|
61
|
-
"data-
|
|
61
|
+
"data-testid": "no-data-title",
|
|
62
62
|
lineHeight: "none",
|
|
63
63
|
style: "h3",
|
|
64
64
|
children: title
|
|
65
65
|
}), description && /*#__PURE__*/jsxRuntime.jsx(Typography, {
|
|
66
66
|
className: "neeto-ui-text-center neeto-ui-no-data__description",
|
|
67
|
-
"data-
|
|
67
|
+
"data-testid": "no-data-description",
|
|
68
68
|
lineHeight: "normal",
|
|
69
69
|
style: "body2",
|
|
70
70
|
children: description
|
|
71
71
|
}), helpText && /*#__PURE__*/jsxRuntime.jsx(Typography, {
|
|
72
72
|
className: "neeto-ui-text-center neeto-ui-no-data__help-text",
|
|
73
|
-
"data-
|
|
73
|
+
"data-testid": "no-data-help-text",
|
|
74
74
|
lineHeight: "normal",
|
|
75
75
|
style: "body2",
|
|
76
76
|
children: helpText
|
|
@@ -80,7 +80,6 @@ var NoData = function NoData(_ref) {
|
|
|
80
80
|
disabled: ramda.isNil(primaryButtonProps === null || primaryButtonProps === void 0 ? void 0 : primaryButtonProps.tooltipProps) || !showTooltipWhenButtonDisabled && (primaryButtonProps === null || primaryButtonProps === void 0 ? void 0 : primaryButtonProps.disabled),
|
|
81
81
|
children: /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
82
82
|
children: /*#__PURE__*/jsxRuntime.jsx(Button, _objectSpread({
|
|
83
|
-
"data-cy": "no-data-primary-button",
|
|
84
83
|
"data-testid": "no-data-primary-button"
|
|
85
84
|
}, ramda.omit(["tooltipProps"], primaryButtonProps)))
|
|
86
85
|
})
|
|
@@ -92,7 +91,6 @@ var NoData = function NoData(_ref) {
|
|
|
92
91
|
disabled: ramda.isNil(secondaryButtonProps === null || secondaryButtonProps === void 0 ? void 0 : secondaryButtonProps.tooltipProps) || !showTooltipWhenButtonDisabled && (secondaryButtonProps === null || secondaryButtonProps === void 0 ? void 0 : secondaryButtonProps.disabled),
|
|
93
92
|
children: /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
94
93
|
children: /*#__PURE__*/jsxRuntime.jsx(Button, _objectSpread({
|
|
95
|
-
"data-cy": "no-data-secondary-button",
|
|
96
94
|
"data-testid": "no-data-secondary-button",
|
|
97
95
|
style: "secondary"
|
|
98
96
|
}, ramda.omit(["tooltipProps"], secondaryButtonProps)))
|
package/dist/cjs/NoData.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NoData.js","sources":["../../src/components/NoData/utils.jsx","../../src/components/NoData/index.jsx"],"sourcesContent":["import React from \"react\";\n\nexport const renderImage = image =>\n typeof image === \"string\" ? (\n <img data-
|
|
1
|
+
{"version":3,"file":"NoData.js","sources":["../../src/components/NoData/utils.jsx","../../src/components/NoData/index.jsx"],"sourcesContent":["import React from \"react\";\n\nexport const renderImage = image =>\n typeof image === \"string\" ? (\n <img data-testid=\"no-data-image\" src={image} />\n ) : (\n image\n );\n","import React from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty, isNil, omit } from \"ramda\";\n\nimport Button from \"components/Button\";\nimport Tooltip from \"components/Tooltip\";\nimport Typography from \"components/Typography\";\n\nimport { renderImage } from \"./utils\";\n\nconst NoData = ({\n image = null,\n title = \"\",\n description = \"\",\n helpText = null,\n className = \"\",\n primaryButtonProps = {},\n secondaryButtonProps = {},\n buttonSeparatorText = \"\",\n showTooltipWhenButtonDisabled = false,\n ...otherProps\n}) => {\n const hasPrimaryButtonProps = !isEmpty(primaryButtonProps);\n const hasSecondaryButtonProps = !isEmpty(secondaryButtonProps);\n const hasButtonSeparatorText = !isEmpty(buttonSeparatorText);\n\n const showButtonSeparator =\n hasButtonSeparatorText && hasPrimaryButtonProps && hasSecondaryButtonProps;\n\n return (\n <div\n className={classnames(\"neeto-ui-no-data\", [className])}\n data-testid=\"no-data-container\"\n {...otherProps}\n >\n {image ? (\n <div className=\"neeto-ui-no-data__image\">{renderImage(image)}</div>\n ) : null}\n {title && (\n <Typography\n className=\"neeto-ui-text-center\"\n data-testid=\"no-data-title\"\n lineHeight=\"none\"\n style=\"h3\"\n >\n {title}\n </Typography>\n )}\n {description && (\n <Typography\n className=\"neeto-ui-text-center neeto-ui-no-data__description\"\n data-testid=\"no-data-description\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {description}\n </Typography>\n )}\n {helpText && (\n <Typography\n className=\"neeto-ui-text-center neeto-ui-no-data__help-text\"\n data-testid=\"no-data-help-text\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {helpText}\n </Typography>\n )}\n {(hasPrimaryButtonProps || hasSecondaryButtonProps) && (\n <div className=\"neeto-ui-no-data__action-block\">\n {hasPrimaryButtonProps && (\n <Tooltip\n {...primaryButtonProps?.tooltipProps}\n disabled={\n isNil(primaryButtonProps?.tooltipProps) ||\n (!showTooltipWhenButtonDisabled && primaryButtonProps?.disabled)\n }\n >\n <div>\n <Button\n data-testid=\"no-data-primary-button\"\n {...omit([\"tooltipProps\"], primaryButtonProps)}\n />\n </div>\n </Tooltip>\n )}\n {showButtonSeparator && (\n <Typography lineHeight=\"normal\" style=\"body2\">\n {buttonSeparatorText}\n </Typography>\n )}\n {hasSecondaryButtonProps && (\n <Tooltip\n {...secondaryButtonProps?.tooltipProps}\n disabled={\n isNil(secondaryButtonProps?.tooltipProps) ||\n (!showTooltipWhenButtonDisabled &&\n secondaryButtonProps?.disabled)\n }\n >\n <div>\n <Button\n data-testid=\"no-data-secondary-button\"\n style=\"secondary\"\n {...omit([\"tooltipProps\"], secondaryButtonProps)}\n />\n </div>\n </Tooltip>\n )}\n </div>\n )}\n </div>\n );\n};\n\nNoData.propTypes = {\n /**\n * To specify the image.\n */\n image: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n /**\n * To specify the title text.\n */\n title: PropTypes.string,\n /**\n * To specify the description text.\n */\n description: PropTypes.node,\n /**\n * To specify the text that appears below the description.\n */\n helpText: PropTypes.node,\n /**\n * Provide external classnames to NoData component.\n */\n className: PropTypes.string,\n /**\n * To specify the props to be passed to the primary button.\n */\n primaryButtonProps: PropTypes.object,\n /**\n * To specify the props to be passed to the secondary button.\n */\n secondaryButtonProps: PropTypes.object,\n /**\n * To specify if the tooltip should be shown when the button is disabled.\n */\n showTooltipWhenButtonDisabled: PropTypes.bool,\n /**\n * To specify the text that appears between the primary and secondary buttons.\n * */\n buttonSeparatorText: PropTypes.string,\n};\n\nexport default NoData;\n"],"names":["renderImage","image","_jsx","src","NoData","_ref","_ref$image","_ref$title","title","_ref$description","description","_ref$helpText","helpText","_ref$className","className","_ref$primaryButtonPro","primaryButtonProps","_ref$secondaryButtonP","secondaryButtonProps","_ref$buttonSeparatorT","buttonSeparatorText","_ref$showTooltipWhenB","showTooltipWhenButtonDisabled","otherProps","_objectWithoutProperties","_excluded","hasPrimaryButtonProps","isEmpty","hasSecondaryButtonProps","hasButtonSeparatorText","showButtonSeparator","_jsxs","_objectSpread","classnames","children","Typography","lineHeight","style","Tooltip","tooltipProps","disabled","isNil","Button","omit"],"mappings":"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"}
|
package/dist/cjs/Pane.js
CHANGED
|
@@ -6,7 +6,7 @@ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProp
|
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var classnames = require('classnames');
|
|
8
8
|
var Close = require('@bigbinary/neeto-icons/Close');
|
|
9
|
-
var useOverlayManager = require('./useOverlayManager-
|
|
9
|
+
var useOverlayManager = require('./useOverlayManager-BMNCjew1.js');
|
|
10
10
|
var Button = require('./Button.js');
|
|
11
11
|
require('react-router-dom');
|
|
12
12
|
require('qs');
|
|
@@ -41,7 +41,7 @@ var Body = function Body(_ref) {
|
|
|
41
41
|
_ref$hasFooter = _ref.hasFooter,
|
|
42
42
|
hasFooter = _ref$hasFooter === void 0 ? true : _ref$hasFooter;
|
|
43
43
|
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
44
|
-
"data-
|
|
44
|
+
"data-testid": "pane-body",
|
|
45
45
|
className: classnames("neeto-ui-pane__body neeto-ui-flex neeto-ui-flex-col neeto-ui-items-start neeto-ui-justify-start", _defineProperty({
|
|
46
46
|
"neeto-ui-pane__body--has-footer": hasFooter
|
|
47
47
|
}, className, className)),
|
|
@@ -63,7 +63,7 @@ var Header = function Header(_ref) {
|
|
|
63
63
|
className = _ref.className;
|
|
64
64
|
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
65
65
|
className: classnames("neeto-ui-pane__header", className),
|
|
66
|
-
"data-
|
|
66
|
+
"data-testid": "pane-header",
|
|
67
67
|
children: children
|
|
68
68
|
});
|
|
69
69
|
};
|
|
@@ -184,7 +184,7 @@ var Pane = function Pane(_ref) {
|
|
|
184
184
|
ref: backdropRef,
|
|
185
185
|
className: classnames("neeto-ui-pane__backdrop neeto-ui-flex neeto-ui-justify-end", backdropClassName),
|
|
186
186
|
children: /*#__PURE__*/jsxRuntime.jsxs("div", _objectSpread(_objectSpread({
|
|
187
|
-
"data-
|
|
187
|
+
"data-testid": "pane-wrapper",
|
|
188
188
|
ref: paneWrapperRef,
|
|
189
189
|
className: classnames("neeto-ui-pane__wrapper", _defineProperty({
|
|
190
190
|
"neeto-ui-pane__wrapper--small": size === SIZES.small,
|
|
@@ -195,8 +195,7 @@ var Pane = function Pane(_ref) {
|
|
|
195
195
|
children: [closeButton && /*#__PURE__*/jsxRuntime.jsx(Button, {
|
|
196
196
|
"aria-label": "Close",
|
|
197
197
|
className: "neeto-ui-pane__close",
|
|
198
|
-
"data-
|
|
199
|
-
"data-testid": "close-button",
|
|
198
|
+
"data-testid": "pane-close-button",
|
|
200
199
|
icon: Close,
|
|
201
200
|
size: "small",
|
|
202
201
|
style: "text",
|
package/dist/cjs/Pane.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pane.js","sources":["../../src/components/Pane/Body.jsx","../../src/components/Pane/Footer.jsx","../../src/components/Pane/Header.jsx","../../src/components/Pane/constants.js","../../src/components/Pane/utils.js","../../src/components/Pane/index.jsx"],"sourcesContent":["import React from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nconst Body = ({ children, className, hasFooter = true }) => (\n <div\n data-cy=\"pane-body\"\n className={classnames(\n \"neeto-ui-pane__body neeto-ui-flex neeto-ui-flex-col neeto-ui-items-start neeto-ui-justify-start\",\n {\n \"neeto-ui-pane__body--has-footer\": hasFooter,\n [className]: className,\n }\n )}\n >\n {children}\n </div>\n);\n\nBody.propTypes = {\n /**\n * To specify if the Pane has a footer.\n * @default true\n */\n hasFooter: PropTypes.bool,\n /**\n * To specify className to be applied to the Pane Body container.\n */\n className: PropTypes.string,\n /**\n * To specify the content to be rendered inside the Pane Body.\n */\n children: PropTypes.node,\n};\n\nexport default Body;\n","import React from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nconst Footer = ({ children, className }) => (\n <div\n className={classnames(\n \"neeto-ui-pane__footer neeto-ui-flex neeto-ui-items-center\",\n className\n )}\n >\n {children}\n </div>\n);\n\nFooter.propTypes = {\n /**\n * To specify className to be applied to the Pane Footer container.\n */\n className: PropTypes.string,\n /**\n * To specify the content to be rendered inside the Pane Footer.\n */\n children: PropTypes.node,\n};\n\nexport default Footer;\n","import React from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nconst Header = ({ children, className }) => (\n <div\n className={classnames(\"neeto-ui-pane__header\", className)}\n data-cy=\"pane-header\"\n >\n {children}\n </div>\n);\n\nHeader.propTypes = {\n /**\n * To specify className to be applied to the Pane Header container.\n */\n className: PropTypes.string,\n /**\n * To specify the content to be rendered inside the Pane Header.\n */\n children: PropTypes.node,\n};\n\nexport default Header;\n","export const DEFAULT_PANE_HEADER_HEIGHT = 78;\n","import { DEFAULT_PANE_HEADER_HEIGHT } from \"./constants\";\n\nexport const getHeader = paneWrapperRef =>\n paneWrapperRef.current?.querySelector(\".neeto-ui-pane__header\");\n\nexport const updateHeaderHeight = (header, paneWrapperRef) => {\n const headerHeight = header?.offsetHeight;\n\n if (headerHeight > DEFAULT_PANE_HEADER_HEIGHT) {\n paneWrapperRef.current?.style.setProperty(\n \"--neeto-ui-pane-header-height\",\n `${headerHeight}px`\n );\n } else {\n paneWrapperRef.current?.style.removeProperty(\n \"--neeto-ui-pane-header-height\"\n );\n }\n};\n","import React, { useRef, useState, useEffect } from \"react\";\n\nimport classnames from \"classnames\";\nimport { Close } from \"neetoicons\";\nimport PropTypes from \"prop-types\";\nimport { CSSTransition } from \"react-transition-group\";\n\nimport Backdrop from \"atoms/Backdrop\";\nimport Portal from \"atoms/Portal\";\nimport Button from \"components/Button\";\nimport { useOverlay, useOverlayManager } from \"hooks\";\n\nimport Body from \"./Body\";\nimport Footer from \"./Footer\";\nimport Header from \"./Header\";\nimport { getHeader, updateHeaderHeight } from \"./utils\";\n\nconst SIZES = { small: \"small\", large: \"large\", extraLarge: \"extraLarge\" };\n\nconst Pane = ({\n size = SIZES.small,\n isOpen = false,\n onClose = () => {},\n children,\n className = \"\",\n closeOnEsc = true,\n closeButton = true,\n backdropClassName = \"\",\n closeOnOutsideClick = true,\n initialFocusRef,\n finalFocusRef,\n ...otherProps\n}) => {\n const [hasTransitionCompleted, setHasTransitionCompleted] = useState(false);\n\n const paneWrapperRef = useRef(null);\n const backdropRef = useRef(null);\n\n const observerRef = useRef(\n new ResizeObserver(([entry]) =>\n updateHeaderHeight(entry.target, paneWrapperRef)\n )\n );\n\n useOverlayManager(paneWrapperRef, isOpen);\n\n const { handleOverlayClose, setFocusField, isTopOverlay } = useOverlay({\n overlayWrapper: paneWrapperRef,\n backdropRef,\n closeOnOutsideClick,\n closeOnEsc,\n onClose,\n isOpen,\n initialFocusRef,\n finalFocusRef,\n hasTransitionCompleted,\n });\n\n useEffect(() => {\n if (!hasTransitionCompleted || !paneWrapperRef.current) return undefined;\n\n const observer = observerRef.current;\n const header = getHeader(paneWrapperRef);\n\n if (header) {\n observer.observe(header);\n\n return () => observer.disconnect();\n }\n\n const mutationObserver = new MutationObserver(() => {\n const header = getHeader(paneWrapperRef);\n if (!header) return;\n\n observer.observe(header);\n mutationObserver.disconnect();\n });\n\n mutationObserver.observe(paneWrapperRef.current, {\n childList: true,\n subtree: true,\n });\n\n return () => {\n mutationObserver.disconnect();\n observer.disconnect();\n };\n }, [hasTransitionCompleted, isTopOverlay]);\n\n return (\n <Portal rootId=\"neeto-ui-portal\">\n <CSSTransition\n unmountOnExit\n appear={isOpen}\n classNames=\"neeto-ui-pane\"\n in={isOpen}\n timeout={230}\n onEntered={() => setHasTransitionCompleted(true)}\n onExited={() => setHasTransitionCompleted(false)}\n >\n <Backdrop\n data-testid=\"backdrop\"\n key=\"pane-backdrop\"\n ref={backdropRef}\n className={classnames(\n \"neeto-ui-pane__backdrop neeto-ui-flex neeto-ui-justify-end\",\n backdropClassName\n )}\n >\n <div\n data-cy=\"pane-wrapper\"\n key=\"pane-wrapper\"\n ref={paneWrapperRef}\n className={classnames(\"neeto-ui-pane__wrapper\", {\n \"neeto-ui-pane__wrapper--small\": size === SIZES.small,\n \"neeto-ui-pane__wrapper--large\": size === SIZES.large,\n \"neeto-ui-pane__wrapper--extralarge\": size === SIZES.extraLarge,\n [className]: className,\n })}\n {...otherProps}\n >\n {closeButton && (\n <Button\n aria-label=\"Close\"\n className=\"neeto-ui-pane__close\"\n data-cy=\"pane-close-button\"\n data-testid=\"close-button\"\n icon={Close}\n size=\"small\"\n style=\"text\"\n onClick={handleOverlayClose}\n />\n )}\n {hasTransitionCompleted && (\n <>\n {typeof children === \"function\"\n ? children({ setFocusField })\n : children}\n </>\n )}\n </div>\n </Backdrop>\n </CSSTransition>\n </Portal>\n );\n};\n\nPane.propTypes = {\n /**\n * To specify the size of the Pane.\n */\n size: PropTypes.oneOf(Object.values(SIZES)),\n /**\n * To specify whether the Pane component is open or not.\n */\n isOpen: PropTypes.bool,\n /**\n * To specify the callback which will be invoked when the close button of Pane is clicked.\n */\n onClose: PropTypes.func,\n /**\n * To specify the content to be rendered inside the Pane component.\n */\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n /**\n * To provide external classname to the Pane component.\n */\n className: PropTypes.string,\n /**\n * To specify whether the Pane component should close on esc key press.\n */\n closeOnEsc: PropTypes.bool,\n /**\n * To specify whether the Pane component should render close button.\n */\n closeButton: PropTypes.bool,\n /**\n * To specify the classname to be applied to the backdrop element.\n */\n backdropClassName: PropTypes.string,\n /**\n * To specify whether the Pane component should close on outside click.\n */\n closeOnOutsideClick: PropTypes.bool,\n\n /**\n * To specify the ref of the element which should be focused when the Pane component is opened.\n * If not specified, the first focusable element inside the Pane component will be focused.\n * If there are no focusable elements, the Pane component itself will be focused.\n */\n initialFocusRef: PropTypes.object,\n\n /**\n * To specify the ref of the element which should be focused when the Pane component is closed.\n * If not specified, the element which was focused when the Pane component was opened will be focused.\n */\n finalFocusRef: PropTypes.object,\n};\n\nPane.Header = Header;\nPane.Body = Body;\nPane.Footer = Footer;\n\nexport default Pane;\n"],"names":["Body","_ref","children","className","_ref$hasFooter","hasFooter","_jsx","classnames","_defineProperty","Footer","Header","DEFAULT_PANE_HEADER_HEIGHT","getHeader","paneWrapperRef","_paneWrapperRef$curre","current","querySelector","updateHeaderHeight","header","headerHeight","offsetHeight","_paneWrapperRef$curre2","style","setProperty","concat","_paneWrapperRef$curre3","removeProperty","SIZES","small","large","extraLarge","Pane","_ref$size","size","_ref$isOpen","isOpen","_ref$onClose","onClose","_ref$className","_ref$closeOnEsc","closeOnEsc","_ref$closeButton","closeButton","_ref$backdropClassNam","backdropClassName","_ref$closeOnOutsideCl","closeOnOutsideClick","initialFocusRef","finalFocusRef","otherProps","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","hasTransitionCompleted","setHasTransitionCompleted","useRef","backdropRef","observerRef","ResizeObserver","_ref2","_ref3","entry","target","useOverlayManager","_useOverlay","useOverlay","overlayWrapper","handleOverlayClose","setFocusField","isTopOverlay","useEffect","undefined","observer","observe","disconnect","mutationObserver","MutationObserver","childList","subtree","Portal","rootId","CSSTransition","unmountOnExit","appear","classNames","timeout","onEntered","onExited","Backdrop","ref","_jsxs","_objectSpread","Button","icon","Close","onClick","_Fragment"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,IAAMA,IAAI,GAAG,SAAPA,IAAIA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAAMC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAEC,SAAS,GAAAF,IAAA,CAATE,SAAS;IAAAC,cAAA,GAAAH,IAAA,CAAEI,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAA,MAAA,GAAG,IAAI,GAAAA,cAAA;AAAA,EAAA,oBACnDE,cAAA,CAAA,KAAA,EAAA;AACE,IAAA,SAAA,EAAQ,WAAW;AACnBH,IAAAA,SAAS,EAAEI,UAAU,CACnB,iGAAiG,EAAAC,eAAA,CAAA;AAE/F,MAAA,iCAAiC,EAAEH;AAAS,KAAA,EAC3CF,SAAS,EAAGA,SAAS,CAE1B,CAAE;AAAAD,IAAAA,QAAA,EAEDA;AAAQ,GACN,CAAC;AAAA,CACP;;ACbD,IAAMO,MAAM,GAAG,SAATA,MAAMA,CAAAR,IAAA,EAAA;AAAA,EAAA,IAAMC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAEC,SAAS,GAAAF,IAAA,CAATE,SAAS;AAAA,EAAA,oBACnCG,cAAA,CAAA,KAAA,EAAA;AACEH,IAAAA,SAAS,EAAEI,UAAU,CACnB,2DAA2D,EAC3DJ,SACF,CAAE;AAAAD,IAAAA,QAAA,EAEDA;AAAQ,GACN,CAAC;AAAA,CACP;;ACTD,IAAMQ,MAAM,GAAG,SAATA,MAAMA,CAAAT,IAAA,EAAA;AAAA,EAAA,IAAMC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAEC,SAAS,GAAAF,IAAA,CAATE,SAAS;AAAA,EAAA,oBACnCG,cAAA,CAAA,KAAA,EAAA;AACEH,IAAAA,SAAS,EAAEI,UAAU,CAAC,uBAAuB,EAAEJ,SAAS,CAAE;AAC1D,IAAA,SAAA,EAAQ,aAAa;AAAAD,IAAAA,QAAA,EAEpBA;AAAQ,GACN,CAAC;AAAA,CACP;;ACZM,IAAMS,0BAA0B,GAAG,EAAE;;ACErC,IAAMC,SAAS,GAAG,SAAZA,SAASA,CAAGC,cAAc,EAAA;AAAA,EAAA,IAAAC,qBAAA;AAAA,EAAA,OAAA,CAAAA,qBAAA,GACrCD,cAAc,CAACE,OAAO,MAAA,IAAA,IAAAD,qBAAA,KAAA,MAAA,GAAA,MAAA,GAAtBA,qBAAA,CAAwBE,aAAa,CAAC,wBAAwB,CAAC;AAAA,CAAA;AAE1D,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIC,MAAM,EAAEL,cAAc,EAAK;EAC5D,IAAMM,YAAY,GAAGD,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,MAAA,GAAA,MAAA,GAANA,MAAM,CAAEE,YAAY;EAEzC,IAAID,YAAY,GAAGR,0BAA0B,EAAE;AAAA,IAAA,IAAAU,sBAAA;IAC7C,CAAAA,sBAAA,GAAAR,cAAc,CAACE,OAAO,MAAA,IAAA,IAAAM,sBAAA,uBAAtBA,sBAAA,CAAwBC,KAAK,CAACC,WAAW,CACvC,+BAA+B,EAAA,EAAA,CAAAC,MAAA,CAC5BL,YAAY,OACjB,CAAC;AACH,EAAA,CAAC,MAAM;AAAA,IAAA,IAAAM,sBAAA;AACL,IAAA,CAAAA,sBAAA,GAAAZ,cAAc,CAACE,OAAO,MAAA,IAAA,IAAAU,sBAAA,KAAA,MAAA,GAAA,MAAA,GAAtBA,sBAAA,CAAwBH,KAAK,CAACI,cAAc,CAC1C,+BACF,CAAC;AACH,EAAA;AACF,CAAC;;;;;ACDD,IAAMC,KAAK,GAAG;AAAEC,EAAAA,KAAK,EAAE,OAAO;AAAEC,EAAAA,KAAK,EAAE,OAAO;AAAEC,EAAAA,UAAU,EAAE;AAAa,CAAC;AAE1E,IAAMC,IAAI,GAAG,SAAPA,IAAIA,CAAA9B,IAAA,EAaJ;AAAA,EAAA,IAAA+B,SAAA,GAAA/B,IAAA,CAZJgC,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAA,MAAA,GAAGL,KAAK,CAACC,KAAK,GAAAI,SAAA;IAAAE,WAAA,GAAAjC,IAAA,CAClBkC,MAAM;AAANA,IAAAA,MAAM,GAAAD,WAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,WAAA;IAAAE,YAAA,GAAAnC,IAAA,CACdoC,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAA,MAAA,GAAG,YAAM,CAAC,CAAC,GAAAA,YAAA;IAClBlC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAAoC,cAAA,GAAArC,IAAA,CACRE,SAAS;AAATA,IAAAA,SAAS,GAAAmC,cAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,cAAA;IAAAC,eAAA,GAAAtC,IAAA,CACduC,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAA,MAAA,GAAG,IAAI,GAAAA,eAAA;IAAAE,gBAAA,GAAAxC,IAAA,CACjByC,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAA,MAAA,GAAG,IAAI,GAAAA,gBAAA;IAAAE,qBAAA,GAAA1C,IAAA,CAClB2C,iBAAiB;AAAjBA,IAAAA,iBAAiB,GAAAD,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;IAAAE,qBAAA,GAAA5C,IAAA,CACtB6C,mBAAmB;AAAnBA,IAAAA,mBAAmB,GAAAD,qBAAA,KAAA,MAAA,GAAG,IAAI,GAAAA,qBAAA;IAC1BE,eAAe,GAAA9C,IAAA,CAAf8C,eAAe;IACfC,aAAa,GAAA/C,IAAA,CAAb+C,aAAa;AACVC,IAAAA,UAAU,GAAAC,wBAAA,CAAAjD,IAAA,EAAAkD,SAAA,CAAA;AAEb,EAAA,IAAAC,SAAA,GAA4DC,cAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAApEI,IAAAA,sBAAsB,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,yBAAyB,GAAAH,UAAA,CAAA,CAAA,CAAA;AAExD,EAAA,IAAMzC,cAAc,GAAG6C,YAAM,CAAC,IAAI,CAAC;AACnC,EAAA,IAAMC,WAAW,GAAGD,YAAM,CAAC,IAAI,CAAC;EAEhC,IAAME,WAAW,GAAGF,YAAM,CACxB,IAAIG,cAAc,CAAC,UAAAC,KAAA,EAAA;AAAA,IAAA,IAAAC,KAAA,GAAAR,cAAA,CAAAO,KAAA,EAAA,CAAA,CAAA;AAAEE,MAAAA,KAAK,GAAAD,KAAA,CAAA,CAAA,CAAA;AAAA,IAAA,OACxB9C,kBAAkB,CAAC+C,KAAK,CAACC,MAAM,EAAEpD,cAAc,CAAC;AAAA,EAAA,CAClD,CACF,CAAC;AAEDqD,EAAAA,mCAAiB,CAACrD,cAAc,EAAEsB,MAAM,CAAC;EAEzC,IAAAgC,WAAA,GAA4DC,4BAAU,CAAC;AACrEC,MAAAA,cAAc,EAAExD,cAAc;AAC9B8C,MAAAA,WAAW,EAAXA,WAAW;AACXb,MAAAA,mBAAmB,EAAnBA,mBAAmB;AACnBN,MAAAA,UAAU,EAAVA,UAAU;AACVH,MAAAA,OAAO,EAAPA,OAAO;AACPF,MAAAA,MAAM,EAANA,MAAM;AACNY,MAAAA,eAAe,EAAfA,eAAe;AACfC,MAAAA,aAAa,EAAbA,aAAa;AACbQ,MAAAA,sBAAsB,EAAtBA;AACF,KAAC,CAAC;IAVMc,kBAAkB,GAAAH,WAAA,CAAlBG,kBAAkB;IAAEC,aAAa,GAAAJ,WAAA,CAAbI,aAAa;IAAEC,YAAY,GAAAL,WAAA,CAAZK,YAAY;AAYvDC,EAAAA,eAAS,CAAC,YAAM;IACd,IAAI,CAACjB,sBAAsB,IAAI,CAAC3C,cAAc,CAACE,OAAO,EAAE,OAAO2D,SAAS;AAExE,IAAA,IAAMC,QAAQ,GAAGf,WAAW,CAAC7C,OAAO;AACpC,IAAA,IAAMG,MAAM,GAAGN,SAAS,CAACC,cAAc,CAAC;AAExC,IAAA,IAAIK,MAAM,EAAE;AACVyD,MAAAA,QAAQ,CAACC,OAAO,CAAC1D,MAAM,CAAC;MAExB,OAAO,YAAA;AAAA,QAAA,OAAMyD,QAAQ,CAACE,UAAU,EAAE;AAAA,MAAA,CAAA;AACpC,IAAA;AAEA,IAAA,IAAMC,gBAAgB,GAAG,IAAIC,gBAAgB,CAAC,YAAM;AAClD,MAAA,IAAM7D,MAAM,GAAGN,SAAS,CAACC,cAAc,CAAC;MACxC,IAAI,CAACK,MAAM,EAAE;AAEbyD,MAAAA,QAAQ,CAACC,OAAO,CAAC1D,MAAM,CAAC;MACxB4D,gBAAgB,CAACD,UAAU,EAAE;AAC/B,IAAA,CAAC,CAAC;AAEFC,IAAAA,gBAAgB,CAACF,OAAO,CAAC/D,cAAc,CAACE,OAAO,EAAE;AAC/CiE,MAAAA,SAAS,EAAE,IAAI;AACfC,MAAAA,OAAO,EAAE;AACX,KAAC,CAAC;AAEF,IAAA,OAAO,YAAM;MACXH,gBAAgB,CAACD,UAAU,EAAE;MAC7BF,QAAQ,CAACE,UAAU,EAAE;IACvB,CAAC;AACH,EAAA,CAAC,EAAE,CAACrB,sBAAsB,EAAEgB,YAAY,CAAC,CAAC;EAE1C,oBACElE,cAAA,CAAC4E,wBAAM,EAAA;AAACC,IAAAA,MAAM,EAAC,iBAAiB;IAAAjF,QAAA,eAC9BI,cAAA,CAAC8E,+BAAa,EAAA;MACZC,aAAa,EAAA,IAAA;AACbC,MAAAA,MAAM,EAAEnD,MAAO;AACfoD,MAAAA,UAAU,EAAC,eAAe;AAC1B,MAAA,IAAA,EAAIpD,MAAO;AACXqD,MAAAA,OAAO,EAAE,GAAI;MACbC,SAAS,EAAE,SAAXA,SAASA,GAAA;QAAA,OAAQhC,yBAAyB,CAAC,IAAI,CAAC;MAAA,CAAC;MACjDiC,QAAQ,EAAE,SAAVA,QAAQA,GAAA;QAAA,OAAQjC,yBAAyB,CAAC,KAAK,CAAC;MAAA,CAAC;MAAAvD,QAAA,eAEjDI,cAAA,CAACqF,0BAAQ,EAAA;AACP,QAAA,aAAA,EAAY,UAAU;AAEtBC,QAAAA,GAAG,EAAEjC,WAAY;AACjBxD,QAAAA,SAAS,EAAEI,UAAU,CACnB,4DAA4D,EAC5DqC,iBACF,CAAE;AAAA1C,QAAAA,QAAA,eAEF2F,eAAA,CAAA,KAAA,EAAAC,aAAA,CAAAA,aAAA,CAAA;AACE,UAAA,SAAA,EAAQ,cAAc;AAEtBF,UAAAA,GAAG,EAAE/E,cAAe;AACpBV,UAAAA,SAAS,EAAEI,UAAU,CAAC,wBAAwB,EAAAC,eAAA,CAAA;AAC5C,YAAA,+BAA+B,EAAEyB,IAAI,KAAKN,KAAK,CAACC,KAAK;AACrD,YAAA,+BAA+B,EAAEK,IAAI,KAAKN,KAAK,CAACE,KAAK;AACrD,YAAA,oCAAoC,EAAEI,IAAI,KAAKN,KAAK,CAACG;WAAU,EAC9D3B,SAAS,EAAGA,SAAS,CACvB;AAAE,SAAA,EACC8C,UAAU,CAAA,EAAA,EAAA,EAAA;AAAA/C,UAAAA,QAAA,EAAA,CAEbwC,WAAW,iBACVpC,cAAA,CAACyF,MAAM,EAAA;AACL,YAAA,YAAA,EAAW,OAAO;AAClB5F,YAAAA,SAAS,EAAC,sBAAsB;AAChC,YAAA,SAAA,EAAQ,mBAAmB;AAC3B,YAAA,aAAA,EAAY,cAAc;AAC1B6F,YAAAA,IAAI,EAAEC,KAAM;AACZhE,YAAAA,IAAI,EAAC,OAAO;AACZX,YAAAA,KAAK,EAAC,MAAM;AACZ4E,YAAAA,OAAO,EAAE5B;AAAmB,WAC7B,CACF,EACAd,sBAAsB,iBACrBlD,cAAA,CAAA6F,mBAAA,EAAA;AAAAjG,YAAAA,QAAA,EACG,OAAOA,QAAQ,KAAK,UAAU,GAC3BA,QAAQ,CAAC;AAAEqE,cAAAA,aAAa,EAAbA;AAAc,aAAC,CAAC,GAC3BrE;AAAQ,WACZ,CACH;AAAA,SAAA,CAAA,EA5BG,cA6BD;AAAC,OAAA,EAtCF,eAuCI;KACG;AAAC,GACV,CAAC;AAEb;AAsDA6B,IAAI,CAACrB,MAAM,GAAGA,MAAM;AACpBqB,IAAI,CAAC/B,IAAI,GAAGA,IAAI;AAChB+B,IAAI,CAACtB,MAAM,GAAGA,MAAM;;;;"}
|
|
1
|
+
{"version":3,"file":"Pane.js","sources":["../../src/components/Pane/Body.jsx","../../src/components/Pane/Footer.jsx","../../src/components/Pane/Header.jsx","../../src/components/Pane/constants.js","../../src/components/Pane/utils.js","../../src/components/Pane/index.jsx"],"sourcesContent":["import React from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nconst Body = ({ children, className, hasFooter = true }) => (\n <div\n data-testid=\"pane-body\"\n className={classnames(\n \"neeto-ui-pane__body neeto-ui-flex neeto-ui-flex-col neeto-ui-items-start neeto-ui-justify-start\",\n {\n \"neeto-ui-pane__body--has-footer\": hasFooter,\n [className]: className,\n }\n )}\n >\n {children}\n </div>\n);\n\nBody.propTypes = {\n /**\n * To specify if the Pane has a footer.\n * @default true\n */\n hasFooter: PropTypes.bool,\n /**\n * To specify className to be applied to the Pane Body container.\n */\n className: PropTypes.string,\n /**\n * To specify the content to be rendered inside the Pane Body.\n */\n children: PropTypes.node,\n};\n\nexport default Body;\n","import React from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nconst Footer = ({ children, className }) => (\n <div\n className={classnames(\n \"neeto-ui-pane__footer neeto-ui-flex neeto-ui-items-center\",\n className\n )}\n >\n {children}\n </div>\n);\n\nFooter.propTypes = {\n /**\n * To specify className to be applied to the Pane Footer container.\n */\n className: PropTypes.string,\n /**\n * To specify the content to be rendered inside the Pane Footer.\n */\n children: PropTypes.node,\n};\n\nexport default Footer;\n","import React from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nconst Header = ({ children, className }) => (\n <div\n className={classnames(\"neeto-ui-pane__header\", className)}\n data-testid=\"pane-header\"\n >\n {children}\n </div>\n);\n\nHeader.propTypes = {\n /**\n * To specify className to be applied to the Pane Header container.\n */\n className: PropTypes.string,\n /**\n * To specify the content to be rendered inside the Pane Header.\n */\n children: PropTypes.node,\n};\n\nexport default Header;\n","export const DEFAULT_PANE_HEADER_HEIGHT = 78;\n","import { DEFAULT_PANE_HEADER_HEIGHT } from \"./constants\";\n\nexport const getHeader = paneWrapperRef =>\n paneWrapperRef.current?.querySelector(\".neeto-ui-pane__header\");\n\nexport const updateHeaderHeight = (header, paneWrapperRef) => {\n const headerHeight = header?.offsetHeight;\n\n if (headerHeight > DEFAULT_PANE_HEADER_HEIGHT) {\n paneWrapperRef.current?.style.setProperty(\n \"--neeto-ui-pane-header-height\",\n `${headerHeight}px`\n );\n } else {\n paneWrapperRef.current?.style.removeProperty(\n \"--neeto-ui-pane-header-height\"\n );\n }\n};\n","import React, { useRef, useState, useEffect } from \"react\";\n\nimport classnames from \"classnames\";\nimport { Close } from \"neetoicons\";\nimport PropTypes from \"prop-types\";\nimport { CSSTransition } from \"react-transition-group\";\n\nimport Backdrop from \"atoms/Backdrop\";\nimport Portal from \"atoms/Portal\";\nimport Button from \"components/Button\";\nimport { useOverlay, useOverlayManager } from \"hooks\";\n\nimport Body from \"./Body\";\nimport Footer from \"./Footer\";\nimport Header from \"./Header\";\nimport { getHeader, updateHeaderHeight } from \"./utils\";\n\nconst SIZES = { small: \"small\", large: \"large\", extraLarge: \"extraLarge\" };\n\nconst Pane = ({\n size = SIZES.small,\n isOpen = false,\n onClose = () => {},\n children,\n className = \"\",\n closeOnEsc = true,\n closeButton = true,\n backdropClassName = \"\",\n closeOnOutsideClick = true,\n initialFocusRef,\n finalFocusRef,\n ...otherProps\n}) => {\n const [hasTransitionCompleted, setHasTransitionCompleted] = useState(false);\n\n const paneWrapperRef = useRef(null);\n const backdropRef = useRef(null);\n\n const observerRef = useRef(\n new ResizeObserver(([entry]) =>\n updateHeaderHeight(entry.target, paneWrapperRef)\n )\n );\n\n useOverlayManager(paneWrapperRef, isOpen);\n\n const { handleOverlayClose, setFocusField, isTopOverlay } = useOverlay({\n overlayWrapper: paneWrapperRef,\n backdropRef,\n closeOnOutsideClick,\n closeOnEsc,\n onClose,\n isOpen,\n initialFocusRef,\n finalFocusRef,\n hasTransitionCompleted,\n });\n\n useEffect(() => {\n if (!hasTransitionCompleted || !paneWrapperRef.current) return undefined;\n\n const observer = observerRef.current;\n const header = getHeader(paneWrapperRef);\n\n if (header) {\n observer.observe(header);\n\n return () => observer.disconnect();\n }\n\n const mutationObserver = new MutationObserver(() => {\n const header = getHeader(paneWrapperRef);\n if (!header) return;\n\n observer.observe(header);\n mutationObserver.disconnect();\n });\n\n mutationObserver.observe(paneWrapperRef.current, {\n childList: true,\n subtree: true,\n });\n\n return () => {\n mutationObserver.disconnect();\n observer.disconnect();\n };\n }, [hasTransitionCompleted, isTopOverlay]);\n\n return (\n <Portal rootId=\"neeto-ui-portal\">\n <CSSTransition\n unmountOnExit\n appear={isOpen}\n classNames=\"neeto-ui-pane\"\n in={isOpen}\n timeout={230}\n onEntered={() => setHasTransitionCompleted(true)}\n onExited={() => setHasTransitionCompleted(false)}\n >\n <Backdrop\n data-testid=\"backdrop\"\n key=\"pane-backdrop\"\n ref={backdropRef}\n className={classnames(\n \"neeto-ui-pane__backdrop neeto-ui-flex neeto-ui-justify-end\",\n backdropClassName\n )}\n >\n <div\n data-testid=\"pane-wrapper\"\n key=\"pane-wrapper\"\n ref={paneWrapperRef}\n className={classnames(\"neeto-ui-pane__wrapper\", {\n \"neeto-ui-pane__wrapper--small\": size === SIZES.small,\n \"neeto-ui-pane__wrapper--large\": size === SIZES.large,\n \"neeto-ui-pane__wrapper--extralarge\": size === SIZES.extraLarge,\n [className]: className,\n })}\n {...otherProps}\n >\n {closeButton && (\n <Button\n aria-label=\"Close\"\n className=\"neeto-ui-pane__close\"\n data-testid=\"pane-close-button\"\n icon={Close}\n size=\"small\"\n style=\"text\"\n onClick={handleOverlayClose}\n />\n )}\n {hasTransitionCompleted && (\n <>\n {typeof children === \"function\"\n ? children({ setFocusField })\n : children}\n </>\n )}\n </div>\n </Backdrop>\n </CSSTransition>\n </Portal>\n );\n};\n\nPane.propTypes = {\n /**\n * To specify the size of the Pane.\n */\n size: PropTypes.oneOf(Object.values(SIZES)),\n /**\n * To specify whether the Pane component is open or not.\n */\n isOpen: PropTypes.bool,\n /**\n * To specify the callback which will be invoked when the close button of Pane is clicked.\n */\n onClose: PropTypes.func,\n /**\n * To specify the content to be rendered inside the Pane component.\n */\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n /**\n * To provide external classname to the Pane component.\n */\n className: PropTypes.string,\n /**\n * To specify whether the Pane component should close on esc key press.\n */\n closeOnEsc: PropTypes.bool,\n /**\n * To specify whether the Pane component should render close button.\n */\n closeButton: PropTypes.bool,\n /**\n * To specify the classname to be applied to the backdrop element.\n */\n backdropClassName: PropTypes.string,\n /**\n * To specify whether the Pane component should close on outside click.\n */\n closeOnOutsideClick: PropTypes.bool,\n\n /**\n * To specify the ref of the element which should be focused when the Pane component is opened.\n * If not specified, the first focusable element inside the Pane component will be focused.\n * If there are no focusable elements, the Pane component itself will be focused.\n */\n initialFocusRef: PropTypes.object,\n\n /**\n * To specify the ref of the element which should be focused when the Pane component is closed.\n * If not specified, the element which was focused when the Pane component was opened will be focused.\n */\n finalFocusRef: PropTypes.object,\n};\n\nPane.Header = Header;\nPane.Body = Body;\nPane.Footer = Footer;\n\nexport default Pane;\n"],"names":["Body","_ref","children","className","_ref$hasFooter","hasFooter","_jsx","classnames","_defineProperty","Footer","Header","DEFAULT_PANE_HEADER_HEIGHT","getHeader","paneWrapperRef","_paneWrapperRef$curre","current","querySelector","updateHeaderHeight","header","headerHeight","offsetHeight","_paneWrapperRef$curre2","style","setProperty","concat","_paneWrapperRef$curre3","removeProperty","SIZES","small","large","extraLarge","Pane","_ref$size","size","_ref$isOpen","isOpen","_ref$onClose","onClose","_ref$className","_ref$closeOnEsc","closeOnEsc","_ref$closeButton","closeButton","_ref$backdropClassNam","backdropClassName","_ref$closeOnOutsideCl","closeOnOutsideClick","initialFocusRef","finalFocusRef","otherProps","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","hasTransitionCompleted","setHasTransitionCompleted","useRef","backdropRef","observerRef","ResizeObserver","_ref2","_ref3","entry","target","useOverlayManager","_useOverlay","useOverlay","overlayWrapper","handleOverlayClose","setFocusField","isTopOverlay","useEffect","undefined","observer","observe","disconnect","mutationObserver","MutationObserver","childList","subtree","Portal","rootId","CSSTransition","unmountOnExit","appear","classNames","timeout","onEntered","onExited","Backdrop","ref","_jsxs","_objectSpread","Button","icon","Close","onClick","_Fragment"],"mappings":"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"}
|
package/dist/cjs/ProgressBar.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProgressBar.js","sources":["../../src/components/ProgressBar.jsx"],"sourcesContent":["import React from \"react\";\n\nimport classNames from \"classnames\";\nimport { motion } from \"framer-motion\";\nimport propTypes from \"prop-types\";\n\nconst ProgressBar = ({ progressPercentage, progressValue, className = \"\" }) => (\n <div\n className={classNames([\n \"neeto-ui-progress-bar__wrapper neeto-ui-rounded-full\",\n className,\n ])}\n >\n <motion.div\n animate={{ width: `${progressPercentage}%` }}\n className=\"neeto-ui-progress-bar neeto-ui-rounded-full\"\n data-
|
|
1
|
+
{"version":3,"file":"ProgressBar.js","sources":["../../src/components/ProgressBar.jsx"],"sourcesContent":["import React from \"react\";\n\nimport classNames from \"classnames\";\nimport { motion } from \"framer-motion\";\nimport propTypes from \"prop-types\";\n\nconst ProgressBar = ({ progressPercentage, progressValue, className = \"\" }) => (\n <div\n className={classNames([\n \"neeto-ui-progress-bar__wrapper neeto-ui-rounded-full\",\n className,\n ])}\n >\n <motion.div\n animate={{ width: `${progressPercentage}%` }}\n className=\"neeto-ui-progress-bar neeto-ui-rounded-full\"\n data-testid=\"progress-bar\"\n initial={{ width: 0 }}\n transition={{ duration: 0.5, ease: \"easeInOut\" }}\n >\n {progressValue ?? `${progressPercentage}%`}\n </motion.div>\n </div>\n);\n\nProgressBar.propTypes = {\n /**\n * To specify the value to be used as the width of the progress bar.\n */\n progressPercentage: propTypes.number,\n /**\n * To specify the progress value to be displayed on the progress bar as text.\n */\n progressValue: propTypes.string,\n /**\n * To specify external classnames as overrides to the ProgressBar component.\n */\n className: propTypes.string,\n};\n\nexport default ProgressBar;\n"],"names":["ProgressBar","_ref","progressPercentage","progressValue","_ref$className","className","_jsx","classNames","children","motion","div","animate","width","concat","initial","transition","duration","ease"],"mappings":";;;;;;;AAMA,IAAMA,WAAW,GAAG,SAAdA,WAAWA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAAMC,kBAAkB,GAAAD,IAAA,CAAlBC,kBAAkB;IAAEC,aAAa,GAAAF,IAAA,CAAbE,aAAa;IAAAC,cAAA,GAAAH,IAAA,CAAEI,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,cAAA;AAAA,EAAA,oBACtEE,cAAA,CAAA,KAAA,EAAA;IACED,SAAS,EAAEE,UAAU,CAAC,CACpB,sDAAsD,EACtDF,SAAS,CACV,CAAE;AAAAG,IAAAA,QAAA,eAEHF,cAAA,CAACG,mBAAM,CAACC,GAAG,EAAA;AACTC,MAAAA,OAAO,EAAE;QAAEC,KAAK,EAAA,EAAA,CAAAC,MAAA,CAAKX,kBAAkB,EAAA,GAAA;OAAM;AAC7CG,MAAAA,SAAS,EAAC,6CAA6C;AACvD,MAAA,aAAA,EAAY,cAAc;AAC1BS,MAAAA,OAAO,EAAE;AAAEF,QAAAA,KAAK,EAAE;OAAI;AACtBG,MAAAA,UAAU,EAAE;AAAEC,QAAAA,QAAQ,EAAE,GAAG;AAAEC,QAAAA,IAAI,EAAE;OAAc;MAAAT,QAAA,EAEhDL,aAAa,KAAA,IAAA,IAAbA,aAAa,cAAbA,aAAa,GAAA,EAAA,CAAAU,MAAA,CAAOX,kBAAkB,EAAA,GAAA;KAC7B;AAAC,GACV,CAAC;AAAA;;;;"}
|
package/dist/cjs/Radio.js
CHANGED
|
@@ -34,7 +34,7 @@ require('dayjs/plugin/weekday');
|
|
|
34
34
|
require('dayjs/plugin/weekOfYear');
|
|
35
35
|
require('i18next');
|
|
36
36
|
|
|
37
|
-
var _excluded$1 = ["name", "label", "className", "labelProps", "
|
|
37
|
+
var _excluded$1 = ["name", "label", "className", "labelProps", "dataTestid"];
|
|
38
38
|
function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
39
39
|
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
40
40
|
var Item = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
@@ -45,8 +45,8 @@ var Item = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
45
45
|
_ref$className = _ref.className,
|
|
46
46
|
className = _ref$className === void 0 ? "" : _ref$className,
|
|
47
47
|
labelProps = _ref.labelProps,
|
|
48
|
-
_ref$
|
|
49
|
-
|
|
48
|
+
_ref$dataTestid = _ref.dataTestid,
|
|
49
|
+
dataTestid = _ref$dataTestid === void 0 ? "" : _ref$dataTestid,
|
|
50
50
|
otherProps = _objectWithoutProperties(_ref, _excluded$1);
|
|
51
51
|
var id = useId.useId(otherProps.id);
|
|
52
52
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
@@ -56,10 +56,10 @@ var Item = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
56
56
|
name: name,
|
|
57
57
|
ref: ref,
|
|
58
58
|
className: "neeto-ui-radio",
|
|
59
|
-
"data-
|
|
59
|
+
"data-testid": dataTestid || "".concat(index.hyphenize(label), "-radio-input"),
|
|
60
60
|
type: "radio"
|
|
61
61
|
}, otherProps)), label && /*#__PURE__*/jsxRuntime.jsx(Label, _objectSpread$1(_objectSpread$1({
|
|
62
|
-
"data-
|
|
62
|
+
"data-testid": dataTestid || "".concat(index.hyphenize(label), "-radio-label"),
|
|
63
63
|
htmlFor: id
|
|
64
64
|
}, labelProps), {}, {
|
|
65
65
|
children: label
|
|
@@ -123,7 +123,7 @@ var Radio = function Radio(_ref) {
|
|
|
123
123
|
})
|
|
124
124
|
}), !!error && /*#__PURE__*/jsxRuntime.jsx("p", {
|
|
125
125
|
className: "neeto-ui-radio-input__error",
|
|
126
|
-
"data-
|
|
126
|
+
"data-testid": "".concat(index.hyphenize(label), "-radio-input-error"),
|
|
127
127
|
id: errorId,
|
|
128
128
|
children: error
|
|
129
129
|
})]
|
package/dist/cjs/Radio.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Radio.js","sources":["../../src/components/Radio/Item.jsx","../../src/components/Radio/index.jsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nimport Label from \"components/Label\";\nimport { useId } from \"hooks\";\nimport { hyphenize } from \"utils\";\n\nconst Item = forwardRef(\n (\n {\n name = \"\",\n label = \"\",\n className = \"\",\n labelProps,\n
|
|
1
|
+
{"version":3,"file":"Radio.js","sources":["../../src/components/Radio/Item.jsx","../../src/components/Radio/index.jsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nimport Label from \"components/Label\";\nimport { useId } from \"hooks\";\nimport { hyphenize } from \"utils\";\n\nconst Item = forwardRef(\n (\n {\n name = \"\",\n label = \"\",\n className = \"\",\n labelProps,\n dataTestid = \"\",\n ...otherProps\n },\n ref\n ) => {\n const id = useId(otherProps.id);\n\n return (\n <div className={classnames([\"neeto-ui-radio__item\", className])}>\n <input\n {...{ id, name, ref }}\n className=\"neeto-ui-radio\"\n data-testid={dataTestid || `${hyphenize(label)}-radio-input`}\n type=\"radio\"\n {...otherProps}\n />\n {label && (\n <Label\n data-testid={dataTestid || `${hyphenize(label)}-radio-label`}\n htmlFor={id}\n {...labelProps}\n >\n {label}\n </Label>\n )}\n </div>\n );\n }\n);\n\nItem.displayName = \"Radio.Item\";\n\nItem.propTypes = {\n /**\n * To specify the name of the radio group.\n */\n name: PropTypes.string,\n /**\n * To specify the label to be displayed for radio item.\n */\n label: PropTypes.node,\n /**\n * To specify external classnames as overrides to the radio item.\n */\n className: PropTypes.string,\n};\n\nexport default Item;\n","import React, { useState, Children, cloneElement } from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nimport Label from \"components/Label\";\nimport { useId } from \"hooks\";\nimport { hyphenize } from \"utils\";\n\nimport Item from \"./Item\";\n\nconst Radio = ({\n label = \"\",\n children,\n stacked = false,\n className = \"\",\n containerClassName = \"\",\n error = \"\",\n onChange,\n labelProps,\n ...props\n}) => {\n const [internalValue, setInternalValue] = useState(\"\");\n\n const id = useId(props.id);\n const errorId = `error_${id}`;\n const labelId = label ? `label_${id}` : undefined;\n const finalLabelId = label ? labelProps?.id || labelId : undefined;\n\n const internalOnChange = e => setInternalValue(e.target.value);\n\n return (\n <div className={classnames([\"neeto-ui-radio__wrapper\", className])}>\n {label && (\n <Label\n className=\"neeto-ui-radio__label\"\n id={finalLabelId}\n {...labelProps}\n >\n {label}\n </Label>\n )}\n <div\n aria-describedby={error ? errorId : undefined}\n aria-invalid={!!error}\n aria-labelledby={finalLabelId}\n role=\"radiogroup\"\n className={classnames([\"neeto-ui-radio__container\"], {\n \"neeto-ui-radio__container--stacked\": stacked,\n \"neeto-ui-radio__container--error\": error,\n [containerClassName]: containerClassName,\n })}\n >\n {Children.map(children, child =>\n cloneElement(child, {\n ...child.props,\n ...props,\n value: child.props.value,\n checked:\n child.props.checked ??\n [internalValue, props.value].includes(child.props.value),\n onChange: child.props.onChange ?? onChange ?? internalOnChange,\n })\n )}\n </div>\n {!!error && (\n <p\n className=\"neeto-ui-radio-input__error\"\n data-testid={`${hyphenize(label)}-radio-input-error`}\n id={errorId}\n >\n {error}\n </p>\n )}\n </div>\n );\n};\n\nRadio.propTypes = {\n /**\n * To specify the label to be displayed for Radio component.\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 specify the content to be rendered inside the Radio component.\n */\n children: PropTypes.node,\n /**\n * To specify whether the Radio items should be stacked vertically or not.\n */\n stacked: PropTypes.bool,\n /**\n * To specify external classnames as overrides to the Radio component.\n */\n className: PropTypes.string,\n /**\n * To specify external classnames for the container of Radio component.\n */\n containerClassName: PropTypes.string,\n /**\n * To specify the error message to be displayed when the Radio input is invalid.\n */\n error: PropTypes.string,\n};\n\nRadio.Item = Item;\n\nexport default Radio;\n"],"names":["Item","forwardRef","_ref","ref","_ref$name","name","_ref$label","label","_ref$className","className","labelProps","_ref$dataTestid","dataTestid","otherProps","_objectWithoutProperties","_excluded","id","useId","_jsxs","classnames","children","_jsx","_objectSpread","concat","hyphenize","type","Label","htmlFor","displayName","Radio","_ref$stacked","stacked","_ref$containerClassNa","containerClassName","_ref$error","error","onChange","props","_useState","useState","_useState2","_slicedToArray","internalValue","setInternalValue","errorId","labelId","undefined","finalLabelId","internalOnChange","e","target","value","role","_defineProperty","Children","map","child","_child$props$checked","_ref2","_child$props$onChange","cloneElement","checked","includes"],"mappings":"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"}
|