iguazio.dashboard-react-controls 2.2.25 → 3.0.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/components/Backdrop/Backdrop.d.ts +14 -0
- package/dist/components/Backdrop/Backdrop.d.ts.map +1 -0
- package/dist/components/Backdrop/Backdrop.mjs +29 -0
- package/dist/components/Backdrop/Backdrop.mjs.map +1 -0
- package/dist/components/Button/Button.d.ts +28 -0
- package/dist/components/Button/Button.d.ts.map +1 -0
- package/dist/components/Button/Button.mjs +43 -0
- package/dist/components/Button/Button.mjs.map +1 -0
- package/dist/components/Button/Button.stories.d.ts +14 -0
- package/dist/components/Button/Button.stories.d.ts.map +1 -0
- package/dist/components/ConfirmDialog/ConfirmDialog.d.ts +33 -0
- package/dist/components/ConfirmDialog/ConfirmDialog.d.ts.map +1 -0
- package/dist/components/ConfirmDialog/ConfirmDialog.mjs +83 -0
- package/dist/components/ConfirmDialog/ConfirmDialog.mjs.map +1 -0
- package/dist/components/ConfirmDialog/ConfirmDialog.stories.d.ts +8 -0
- package/dist/components/ConfirmDialog/ConfirmDialog.stories.d.ts.map +1 -0
- package/dist/components/FormCheckBox/FormCheckBox.d.ts +21 -0
- package/dist/components/FormCheckBox/FormCheckBox.d.ts.map +1 -0
- package/dist/components/FormCheckBox/FormCheckBox.mjs +54 -0
- package/dist/components/FormCheckBox/FormCheckBox.mjs.map +1 -0
- package/dist/components/FormCheckBox/FormCheckbox.stories.d.ts +7 -0
- package/dist/components/FormCheckBox/FormCheckbox.stories.d.ts.map +1 -0
- package/dist/components/FormChipCell/FormChip/FormChip.d.ts +45 -0
- package/dist/components/FormChipCell/FormChip/FormChip.d.ts.map +1 -0
- package/dist/components/FormChipCell/FormChip/FormChip.mjs +78 -0
- package/dist/components/FormChipCell/FormChip/FormChip.mjs.map +1 -0
- package/dist/components/FormChipCell/FormChipCell.d.ts +44 -0
- package/dist/components/FormChipCell/FormChipCell.d.ts.map +1 -0
- package/dist/components/FormChipCell/FormChipCell.mjs +239 -0
- package/dist/components/FormChipCell/FormChipCell.mjs.map +1 -0
- package/dist/components/FormChipCell/FormChipCellView.d.ts +56 -0
- package/dist/components/FormChipCell/FormChipCellView.d.ts.map +1 -0
- package/dist/components/FormChipCell/FormChipCellView.mjs +169 -0
- package/dist/components/FormChipCell/FormChipCellView.mjs.map +1 -0
- package/dist/components/FormChipCell/HiddenChipsBlock/HiddenChipsBlock.d.ts +22 -0
- package/dist/components/FormChipCell/HiddenChipsBlock/HiddenChipsBlock.d.ts.map +1 -0
- package/dist/components/FormChipCell/HiddenChipsBlock/HiddenChipsBlock.mjs +72 -0
- package/dist/components/FormChipCell/HiddenChipsBlock/HiddenChipsBlock.mjs.map +1 -0
- package/dist/components/FormChipCell/NewChipForm/NewChipForm.d.ts +35 -0
- package/dist/components/FormChipCell/NewChipForm/NewChipForm.d.ts.map +1 -0
- package/dist/components/FormChipCell/NewChipForm/NewChipForm.mjs +270 -0
- package/dist/components/FormChipCell/NewChipForm/NewChipForm.mjs.map +1 -0
- package/dist/components/FormChipCell/NewChipInput/NewChipInput.d.ts +16 -0
- package/dist/components/FormChipCell/NewChipInput/NewChipInput.d.ts.map +1 -0
- package/dist/components/FormChipCell/NewChipInput/NewChipInput.mjs +36 -0
- package/dist/components/FormChipCell/NewChipInput/NewChipInput.mjs.map +1 -0
- package/dist/components/FormChipCell/formChipCell.util.d.ts +6 -0
- package/dist/components/FormChipCell/formChipCell.util.d.ts.map +1 -0
- package/dist/components/FormChipCell/formChipCell.util.mjs +24 -0
- package/dist/components/FormChipCell/formChipCell.util.mjs.map +1 -0
- package/dist/components/FormCombobox/FormCombobox.d.ts +56 -0
- package/dist/components/FormCombobox/FormCombobox.d.ts.map +1 -0
- package/dist/components/FormCombobox/FormCombobox.mjs +278 -0
- package/dist/components/FormCombobox/FormCombobox.mjs.map +1 -0
- package/dist/components/FormCombobox/FormCombobox.stories.d.ts +12 -0
- package/dist/components/FormCombobox/FormCombobox.stories.d.ts.map +1 -0
- package/dist/components/FormInput/FormInput.d.ts +3 -0
- package/dist/components/FormInput/FormInput.d.ts.map +1 -0
- package/dist/components/FormInput/FormInput.mjs +272 -0
- package/dist/components/FormInput/FormInput.mjs.map +1 -0
- package/dist/components/FormInput/FormInput.stories.d.ts +14 -0
- package/dist/components/FormInput/FormInput.stories.d.ts.map +1 -0
- package/dist/components/FormInput/InputNumberButtons/InputNumberButtons.d.ts +20 -0
- package/dist/components/FormInput/InputNumberButtons/InputNumberButtons.d.ts.map +1 -0
- package/dist/components/FormInput/InputNumberButtons/InputNumberButtons.mjs +61 -0
- package/dist/components/FormInput/InputNumberButtons/InputNumberButtons.mjs.map +1 -0
- package/dist/components/FormKeyValueTable/FormKeyValueTable.d.ts +49 -0
- package/dist/components/FormKeyValueTable/FormKeyValueTable.d.ts.map +1 -0
- package/dist/components/FormKeyValueTable/FormKeyValueTable.mjs +202 -0
- package/dist/components/FormKeyValueTable/FormKeyValueTable.mjs.map +1 -0
- package/dist/components/FormOnChange/FormOnChange.d.ts +12 -0
- package/dist/components/FormOnChange/FormOnChange.d.ts.map +1 -0
- package/dist/components/FormOnChange/FormOnChange.mjs +33 -0
- package/dist/components/FormOnChange/FormOnChange.mjs.map +1 -0
- package/dist/components/FormRadio/FormRadio.d.ts +19 -0
- package/dist/components/FormRadio/FormRadio.d.ts.map +1 -0
- package/dist/components/FormRadio/FormRadio.mjs +57 -0
- package/dist/components/FormRadio/FormRadio.mjs.map +1 -0
- package/dist/components/FormRadio/FormRadio.stories.d.ts +7 -0
- package/dist/components/FormRadio/FormRadio.stories.d.ts.map +1 -0
- package/dist/components/FormSelect/FormSelect.d.ts +43 -0
- package/dist/components/FormSelect/FormSelect.d.ts.map +1 -0
- package/dist/components/FormSelect/FormSelect.mjs +257 -0
- package/dist/components/FormSelect/FormSelect.mjs.map +1 -0
- package/dist/components/FormSelect/FormSelect.stories.d.ts +10 -0
- package/dist/components/FormSelect/FormSelect.stories.d.ts.map +1 -0
- package/dist/components/FormTextarea/FormTextarea.d.ts +40 -0
- package/dist/components/FormTextarea/FormTextarea.d.ts.map +1 -0
- package/dist/components/FormTextarea/FormTextarea.mjs +122 -0
- package/dist/components/FormTextarea/FormTextarea.mjs.map +1 -0
- package/dist/components/FormTextarea/FormTextarea.stories.d.ts +9 -0
- package/dist/components/FormTextarea/FormTextarea.stories.d.ts.map +1 -0
- package/dist/components/FormToggle/FormToggle.d.ts +18 -0
- package/dist/components/FormToggle/FormToggle.d.ts.map +1 -0
- package/dist/components/FormToggle/FormToggle.mjs +48 -0
- package/dist/components/FormToggle/FormToggle.mjs.map +1 -0
- package/dist/components/Modal/Modal.d.ts +29 -0
- package/dist/components/Modal/Modal.d.ts.map +1 -0
- package/dist/components/Modal/Modal.mjs +71 -0
- package/dist/components/Modal/Modal.mjs.map +1 -0
- package/dist/components/PopUpDialog/PopUpDialog.d.ts +28 -0
- package/dist/components/PopUpDialog/PopUpDialog.d.ts.map +1 -0
- package/dist/components/PopUpDialog/PopUpDialog.mjs +90 -0
- package/dist/components/PopUpDialog/PopUpDialog.mjs.map +1 -0
- package/dist/components/RoundedIcon/RoundedIcon.d.ts +23 -0
- package/dist/components/RoundedIcon/RoundedIcon.d.ts.map +1 -0
- package/dist/components/RoundedIcon/RoundedIcon.mjs +40 -0
- package/dist/components/RoundedIcon/RoundedIcon.mjs.map +1 -0
- package/dist/components/RoundedIcon/RoundedIcon.stories.d.ts +9 -0
- package/dist/components/RoundedIcon/RoundedIcon.stories.d.ts.map +1 -0
- package/dist/components/Tip/Tip.d.ts +14 -0
- package/dist/components/Tip/Tip.d.ts.map +1 -0
- package/dist/components/Tip/Tip.mjs +67 -0
- package/dist/components/Tip/Tip.mjs.map +1 -0
- package/dist/components/Tip/Tip.stories.d.ts +7 -0
- package/dist/components/Tip/Tip.stories.d.ts.map +1 -0
- package/dist/components/Tooltip/Tooltip.d.ts +22 -0
- package/dist/components/Tooltip/Tooltip.d.ts.map +1 -0
- package/dist/components/Tooltip/Tooltip.mjs +136 -0
- package/dist/components/Tooltip/Tooltip.mjs.map +1 -0
- package/dist/components/Tooltip/Tooltip.stories.d.ts +8 -0
- package/dist/components/Tooltip/Tooltip.stories.d.ts.map +1 -0
- package/dist/components/TooltipTemplate/ProducerTooltipTemplate.d.ts +12 -0
- package/dist/components/TooltipTemplate/ProducerTooltipTemplate.d.ts.map +1 -0
- package/dist/components/TooltipTemplate/TextTooltipTemplate.d.ts +12 -0
- package/dist/components/TooltipTemplate/TextTooltipTemplate.d.ts.map +1 -0
- package/dist/components/TooltipTemplate/TextTooltipTemplate.mjs +21 -0
- package/dist/components/TooltipTemplate/TextTooltipTemplate.mjs.map +1 -0
- package/dist/components/Wizard/Wizard.d.ts +33 -0
- package/dist/components/Wizard/Wizard.d.ts.map +1 -0
- package/dist/components/Wizard/Wizard.mjs +129 -0
- package/dist/components/Wizard/Wizard.mjs.map +1 -0
- package/dist/components/Wizard/WizardSteps/WizardSteps.d.ts +16 -0
- package/dist/components/Wizard/WizardSteps/WizardSteps.d.ts.map +1 -0
- package/dist/components/Wizard/WizardSteps/WizardSteps.mjs +41 -0
- package/dist/components/Wizard/WizardSteps/WizardSteps.mjs.map +1 -0
- package/dist/components/index.d.ts +21 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.mjs +41 -0
- package/dist/components/index.mjs.map +1 -0
- package/dist/constants.d.ts +114 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.mjs +44 -0
- package/dist/constants.mjs.map +1 -0
- package/dist/elements/FormActionButton/FormActionButton.d.ts +23 -0
- package/dist/elements/FormActionButton/FormActionButton.d.ts.map +1 -0
- package/dist/elements/FormActionButton/FormActionButton.mjs +43 -0
- package/dist/elements/FormActionButton/FormActionButton.mjs.map +1 -0
- package/dist/elements/FormRowActions/FormRowActions.d.ts +27 -0
- package/dist/elements/FormRowActions/FormRowActions.d.ts.map +1 -0
- package/dist/elements/FormRowActions/FormRowActions.mjs +87 -0
- package/dist/elements/FormRowActions/FormRowActions.mjs.map +1 -0
- package/dist/elements/OptionsMenu/OptionsMenu.d.ts +18 -0
- package/dist/elements/OptionsMenu/OptionsMenu.d.ts.map +1 -0
- package/dist/elements/OptionsMenu/OptionsMenu.mjs +47 -0
- package/dist/elements/OptionsMenu/OptionsMenu.mjs.map +1 -0
- package/dist/elements/SelectOption/SelectOption.d.ts +20 -0
- package/dist/elements/SelectOption/SelectOption.d.ts.map +1 -0
- package/dist/elements/SelectOption/SelectOption.mjs +84 -0
- package/dist/elements/SelectOption/SelectOption.mjs.map +1 -0
- package/dist/elements/ValidationTemplate/ValidationTemplate.d.ts +12 -0
- package/dist/elements/ValidationTemplate/ValidationTemplate.d.ts.map +1 -0
- package/dist/elements/ValidationTemplate/ValidationTemplate.mjs +22 -0
- package/dist/elements/ValidationTemplate/ValidationTemplate.mjs.map +1 -0
- package/dist/elements/index.d.ts +7 -0
- package/dist/elements/index.d.ts.map +1 -0
- package/dist/elements/index.mjs +13 -0
- package/dist/elements/index.mjs.map +1 -0
- package/dist/hooks/index.d.ts +6 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.mjs +13 -0
- package/dist/hooks/index.mjs.map +1 -0
- package/dist/hooks/useChipCell.hook.d.ts +13 -0
- package/dist/hooks/useChipCell.hook.d.ts.map +1 -0
- package/dist/hooks/useChipCell.hook.mjs +58 -0
- package/dist/hooks/useChipCell.hook.mjs.map +1 -0
- package/dist/hooks/useDebounce.hook.d.ts +2 -0
- package/dist/hooks/useDebounce.hook.d.ts.map +1 -0
- package/dist/hooks/useDebounce.hook.mjs +19 -0
- package/dist/hooks/useDebounce.hook.mjs.map +1 -0
- package/dist/hooks/useDetectOutsideClick.hook.d.ts +2 -0
- package/dist/hooks/useDetectOutsideClick.hook.d.ts.map +1 -0
- package/dist/hooks/useDetectOutsideClick.hook.mjs +15 -0
- package/dist/hooks/useDetectOutsideClick.hook.mjs.map +1 -0
- package/dist/hooks/useFormTable.hook.d.ts +16 -0
- package/dist/hooks/useFormTable.hook.d.ts.map +1 -0
- package/dist/hooks/useFormTable.hook.mjs +128 -0
- package/dist/hooks/useFormTable.hook.mjs.map +1 -0
- package/dist/hooks/useHiddenChipsBlock.hook.d.ts +4 -0
- package/dist/hooks/useHiddenChipsBlock.hook.d.ts.map +1 -0
- package/dist/hooks/useHiddenChipsBlock.hook.mjs +51 -0
- package/dist/hooks/useHiddenChipsBlock.hook.mjs.map +1 -0
- package/dist/images/add.svg.mjs +6 -0
- package/dist/images/add.svg.mjs.map +1 -0
- package/dist/images/alerts-icon.svg +3 -0
- package/dist/images/arrow.svg.mjs +6 -0
- package/dist/images/arrow.svg.mjs.map +1 -0
- package/dist/images/back-arrow.svg.mjs +6 -0
- package/dist/images/back-arrow.svg.mjs.map +1 -0
- package/dist/images/checkmark.svg.mjs +6 -0
- package/dist/images/checkmark.svg.mjs.map +1 -0
- package/dist/images/checkmark2.svg.mjs +6 -0
- package/dist/images/checkmark2.svg.mjs.map +1 -0
- package/dist/images/close.svg.mjs +6 -0
- package/dist/images/close.svg.mjs.map +1 -0
- package/dist/images/delete.svg.mjs +6 -0
- package/dist/images/delete.svg.mjs.map +1 -0
- package/dist/images/documents-icon.svg +3 -0
- package/dist/images/dropdown.svg.mjs +6 -0
- package/dist/images/dropdown.svg.mjs.map +1 -0
- package/dist/images/edit.svg.mjs +6 -0
- package/dist/images/edit.svg.mjs.map +1 -0
- package/dist/images/exclamation-mark.svg.mjs +6 -0
- package/dist/images/exclamation-mark.svg.mjs.map +1 -0
- package/dist/images/llm-prompt-icon.svg +3 -0
- package/dist/images/mlrun-api-gateways.svg +8 -0
- package/dist/images/mlrun-artifacts.svg +11 -0
- package/dist/images/mlrun-datasets.svg +5 -0
- package/dist/images/mlrun-feature-store.svg +10 -0
- package/dist/images/mlrun-jobs-and-workflows.svg +5 -0
- package/dist/images/mlrun-ml-functions.svg +8 -0
- package/dist/images/mlrun-models.svg +5 -0
- package/dist/images/mlrun-project-home.svg +5 -0
- package/dist/images/mlrun-project-monitoring.svg +9 -0
- package/dist/images/mlrun-project-settings.svg +5 -0
- package/dist/images/mlrun-realtime-functions.svg +8 -0
- package/dist/images/model-monitoring.svg +3 -0
- package/dist/images/plus.svg.mjs +6 -0
- package/dist/images/plus.svg.mjs.map +1 -0
- package/dist/images/popout.svg.mjs +6 -0
- package/dist/images/popout.svg.mjs.map +1 -0
- package/dist/images/question-mark.svg.mjs +6 -0
- package/dist/images/question-mark.svg.mjs.map +1 -0
- package/dist/images/range-arrow-small.svg.mjs +6 -0
- package/dist/images/range-arrow-small.svg.mjs.map +1 -0
- package/dist/images/search.svg.mjs +6 -0
- package/dist/images/search.svg.mjs.map +1 -0
- package/dist/images/success_done.svg.mjs +6 -0
- package/dist/images/success_done.svg.mjs.map +1 -0
- package/dist/images/warning.svg.mjs +6 -0
- package/dist/images/warning.svg.mjs.map +1 -0
- package/dist/index.css +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.mjs +15 -0
- package/dist/index.mjs.map +1 -0
- package/dist/robots.txt +3 -0
- package/dist/scss/borders.scss +22 -22
- package/dist/scss/colors.scss +0 -11
- package/dist/scss/common.scss +48 -33
- package/dist/scss/fonts.scss +6 -0
- package/dist/scss/mixins.scss +117 -106
- package/dist/scss/shadows.scss +12 -12
- package/dist/scss/variables.scss +3 -3
- package/dist/types.d.ts +25 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.mjs +143 -0
- package/dist/types.mjs.map +1 -0
- package/dist/utils/common.util.d.ts +10 -0
- package/dist/utils/common.util.d.ts.map +1 -0
- package/dist/utils/common.util.mjs +60 -0
- package/dist/utils/common.util.mjs.map +1 -0
- package/dist/utils/form.util.d.ts +11 -0
- package/dist/utils/form.util.d.ts.map +1 -0
- package/dist/utils/form.util.mjs +26 -0
- package/dist/utils/form.util.mjs.map +1 -0
- package/dist/utils/generateChipsList.util.d.ts +10 -0
- package/dist/utils/generateChipsList.util.d.ts.map +1 -0
- package/dist/utils/generateChipsList.util.mjs +19 -0
- package/dist/utils/generateChipsList.util.mjs.map +1 -0
- package/dist/utils/getFirstScrollableParent.util.d.ts +2 -0
- package/dist/utils/getFirstScrollableParent.util.d.ts.map +1 -0
- package/dist/utils/getFirstScrollableParent.util.mjs +5 -0
- package/dist/utils/getFirstScrollableParent.util.mjs.map +1 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.mjs +15 -0
- package/dist/utils/index.mjs.map +1 -0
- package/dist/utils/math.util.d.ts +2 -0
- package/dist/utils/math.util.d.ts.map +1 -0
- package/dist/utils/math.util.mjs +18 -0
- package/dist/utils/math.util.mjs.map +1 -0
- package/dist/utils/validation.util.d.ts +6 -0
- package/dist/utils/validation.util.d.ts.map +1 -0
- package/dist/utils/validation.util.mjs +306 -0
- package/dist/utils/validation.util.mjs.map +1 -0
- package/package.json +48 -38
- package/dist/components/Backdrop/Backdrop.js +0 -56
- package/dist/components/Backdrop/Backdrop.scss +0 -32
- package/dist/components/Button/Button.js +0 -73
- package/dist/components/Button/Button.scss +0 -171
- package/dist/components/ConfirmDialog/ConfirmDialog.js +0 -101
- package/dist/components/ConfirmDialog/confirmDialog.scss +0 -23
- package/dist/components/FormCheckBox/FormCheckBox.js +0 -82
- package/dist/components/FormCheckBox/formCheckBox.scss +0 -91
- package/dist/components/FormChipCell/FormChip/FormChip.js +0 -103
- package/dist/components/FormChipCell/FormChip/formChip.scss +0 -68
- package/dist/components/FormChipCell/FormChipCell.js +0 -339
- package/dist/components/FormChipCell/FormChipCellView.js +0 -190
- package/dist/components/FormChipCell/HiddenChipsBlock/HiddenChipsBlock.js +0 -107
- package/dist/components/FormChipCell/NewChipForm/NewChipForm.js +0 -353
- package/dist/components/FormChipCell/NewChipForm/newChipForm.scss +0 -81
- package/dist/components/FormChipCell/NewChipInput/NewChipInput.js +0 -71
- package/dist/components/FormChipCell/formChipCell.scss +0 -64
- package/dist/components/FormChipCell/formChipCell.util.js +0 -52
- package/dist/components/FormCombobox/FormCombobox.js +0 -432
- package/dist/components/FormCombobox/formCombobox.scss +0 -134
- package/dist/components/FormInput/FormInput.js +0 -408
- package/dist/components/FormInput/InputNumberButtons/InputNumberButtons.js +0 -91
- package/dist/components/FormInput/InputNumberButtons/InputNumberButtons.scss +0 -123
- package/dist/components/FormInput/formInput.scss +0 -76
- package/dist/components/FormKeyValueTable/FormKeyValueTable.js +0 -221
- package/dist/components/FormOnChange/FormOnChange.js +0 -69
- package/dist/components/FormRadio/FormRadio.js +0 -85
- package/dist/components/FormRadio/FormRadio.scss +0 -41
- package/dist/components/FormSelect/FormSelect.js +0 -353
- package/dist/components/FormSelect/FormSelect.test.js +0 -138
- package/dist/components/FormSelect/formSelect.scss +0 -97
- package/dist/components/FormTextarea/FormTextarea.js +0 -184
- package/dist/components/FormTextarea/formTextarea.scss +0 -32
- package/dist/components/FormToggle/FormToggle.js +0 -82
- package/dist/components/FormToggle/formToggle.scss +0 -58
- package/dist/components/Modal/Modal.js +0 -116
- package/dist/components/Modal/Modal.scss +0 -149
- package/dist/components/PopUpDialog/PopUpDialog.js +0 -171
- package/dist/components/PopUpDialog/popUpDialog.scss +0 -83
- package/dist/components/RoundedIcon/RoundedIcon.js +0 -72
- package/dist/components/RoundedIcon/roundedIcon.scss +0 -57
- package/dist/components/Tip/Tip.js +0 -116
- package/dist/components/Tip/Tip.test.js +0 -64
- package/dist/components/Tip/tip.scss +0 -94
- package/dist/components/Tooltip/Tooltip.js +0 -180
- package/dist/components/Tooltip/Tooltip.test.js +0 -155
- package/dist/components/Tooltip/tooltip.scss +0 -29
- package/dist/components/TooltipTemplate/ProducerTooltipTemplate.js +0 -53
- package/dist/components/TooltipTemplate/TextTooltipTemplate.js +0 -53
- package/dist/components/TooltipTemplate/producerTooltipTemplate.scss +0 -23
- package/dist/components/TooltipTemplate/textTooltipTemplate.scss +0 -21
- package/dist/components/Wizard/Wizard.js +0 -192
- package/dist/components/Wizard/Wizard.scss +0 -53
- package/dist/components/Wizard/WizardSteps/WizardSteps.js +0 -74
- package/dist/components/Wizard/WizardSteps/WizardSteps.scss +0 -108
- package/dist/components/index.js +0 -139
- package/dist/constants.js +0 -120
- package/dist/elements/FormActionButton/FormActionButton.js +0 -64
- package/dist/elements/FormRowActions/FormRowActions.js +0 -99
- package/dist/elements/OptionsMenu/OptionsMenu.js +0 -75
- package/dist/elements/OptionsMenu/optionsMenu.scss +0 -45
- package/dist/elements/SelectOption/SelectOption.js +0 -107
- package/dist/elements/SelectOption/SelectOption.test.js +0 -98
- package/dist/elements/SelectOption/selectOption.scss +0 -98
- package/dist/elements/ValidationTemplate/ValidationTemplate.js +0 -56
- package/dist/elements/ValidationTemplate/ValidationTemplate.scss +0 -36
- package/dist/elements/index.js +0 -41
- package/dist/hooks/index.js +0 -40
- package/dist/hooks/useChipCell.hook.js +0 -129
- package/dist/hooks/useDebounce.hook.js +0 -52
- package/dist/hooks/useDetectOutsideClick.hook.js +0 -47
- package/dist/hooks/useFormTable.hook.js +0 -224
- package/dist/hooks/useHiddenChipsBlock.hook.js +0 -102
- package/dist/index.js +0 -18
- package/dist/types.js +0 -127
- package/dist/utils/common.util.js +0 -130
- package/dist/utils/form.util.js +0 -70
- package/dist/utils/generateChipsList.util.js +0 -39
- package/dist/utils/getFirstScrollableParent.util.js +0 -49
- package/dist/utils/math.util.js +0 -44
- package/dist/utils/validation.util.js +0 -401
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
import { jsx as i, jsxs as m } from "react/jsx-runtime";
|
|
2
|
+
import { useState as c, useRef as k, useEffect as C, useCallback as K } from "react";
|
|
3
|
+
import { useField as Ee, Field as Oe } from "react-final-form";
|
|
4
|
+
import { isEmpty as q } from "lodash";
|
|
5
|
+
import t from "prop-types";
|
|
6
|
+
import h from "classnames";
|
|
7
|
+
import ke from "../../elements/OptionsMenu/OptionsMenu.mjs";
|
|
8
|
+
import Re from "../../elements/ValidationTemplate/ValidationTemplate.mjs";
|
|
9
|
+
import Q from "../PopUpDialog/PopUpDialog.mjs";
|
|
10
|
+
import Te from "../TooltipTemplate/TextTooltipTemplate.mjs";
|
|
11
|
+
import Fe from "../Tooltip/Tooltip.mjs";
|
|
12
|
+
import { checkPatternsValidity as De } from "../../utils/validation.util.mjs";
|
|
13
|
+
import "../../hooks/index.mjs";
|
|
14
|
+
import { COMBOBOX_SUGGESTION_LIST as Le, COMBOBOX_SELECT_OPTIONS as $e, DENSITY as Ae } from "../../types.mjs";
|
|
15
|
+
import Pe from "../../images/arrow.svg.mjs";
|
|
16
|
+
import je from "../../images/search.svg.mjs";
|
|
17
|
+
import Me from "../../images/warning.svg.mjs";
|
|
18
|
+
import qe from "../../images/exclamation-mark.svg.mjs";
|
|
19
|
+
/* empty css */
|
|
20
|
+
import { useDetectOutsideClick as We } from "../../hooks/useDetectOutsideClick.hook.mjs";
|
|
21
|
+
const Be = ({
|
|
22
|
+
comboboxClassName: Z = "",
|
|
23
|
+
density: ee = "normal",
|
|
24
|
+
disabled: W = !1,
|
|
25
|
+
hideSearchInput: oe = !1,
|
|
26
|
+
inputDefaultValue: ie = "",
|
|
27
|
+
inputPlaceholder: le = "",
|
|
28
|
+
invalidText: B = "Invalid",
|
|
29
|
+
label: G = "",
|
|
30
|
+
maxSuggestedMatches: te = 1,
|
|
31
|
+
name: d,
|
|
32
|
+
onBlur: _ = null,
|
|
33
|
+
onChange: g = null,
|
|
34
|
+
onFocus: N = null,
|
|
35
|
+
required: R = !1,
|
|
36
|
+
rules: H = [],
|
|
37
|
+
selectDefaultValue: re = {
|
|
38
|
+
label: "",
|
|
39
|
+
id: "",
|
|
40
|
+
className: ""
|
|
41
|
+
},
|
|
42
|
+
selectOptions: se,
|
|
43
|
+
selectPlaceholder: J = "",
|
|
44
|
+
suggestionList: S = [],
|
|
45
|
+
validator: U = null,
|
|
46
|
+
withoutBorder: ae = !1
|
|
47
|
+
}) => {
|
|
48
|
+
const { input: a, meta: r } = Ee(d), [T, F] = c(ie), [n, ne] = c(re), [ce, D] = c({
|
|
49
|
+
left: "0px"
|
|
50
|
+
}), [f, u] = c(!1), [L, w] = c(!1), [x, X] = c(S), [v, y] = c(!1), [V, de] = c(!1), [I, me] = c(H), [$, E] = c(!1), p = k(), A = k(), b = k(), P = k();
|
|
51
|
+
We(p, () => E(!1));
|
|
52
|
+
const fe = h("form-field__label", W && "form-field__label-disabled"), ue = h(
|
|
53
|
+
"form-field-combobox__input",
|
|
54
|
+
n.id.length === 0 && "form-field-combobox__input_hidden"
|
|
55
|
+
);
|
|
56
|
+
C(() => {
|
|
57
|
+
me(
|
|
58
|
+
(e) => e.map((o) => ({
|
|
59
|
+
...o,
|
|
60
|
+
isValid: !r.error || !Array.isArray(r.error) ? !0 : !r.error.some((s) => s.name === o.name)
|
|
61
|
+
}))
|
|
62
|
+
);
|
|
63
|
+
}, [r.error]), C(() => {
|
|
64
|
+
v || JSON.stringify(x) !== JSON.stringify(S) && X(S);
|
|
65
|
+
}, [x, S, v]), C(() => {
|
|
66
|
+
de(
|
|
67
|
+
r.invalid && (r.validating || r.modified || r.submitFailed && r.touched)
|
|
68
|
+
);
|
|
69
|
+
}, [r.invalid, r.modified, r.submitFailed, r.touched, r.validating]);
|
|
70
|
+
const j = K(
|
|
71
|
+
(e) => {
|
|
72
|
+
p.current && !p.current.contains(e.target) && P.current && !P.current.contains(e.target) && (y(!1), u(!1), w(!1), a.onBlur(new Event("blur")), _ && _(a.value));
|
|
73
|
+
},
|
|
74
|
+
[a, _]
|
|
75
|
+
), Y = (e) => {
|
|
76
|
+
p.current && p.current.contains(e.target) || !e.target.closest(".pop-up-dialog") && !e.target.classList.contains("form-field-combobox") && (E(!1), u(!1), w(!1), b.current.blur());
|
|
77
|
+
};
|
|
78
|
+
C(() => (window.addEventListener("click", j), () => {
|
|
79
|
+
window.removeEventListener("click", j);
|
|
80
|
+
}), [j]), C(() => (($ || f || L) && window.addEventListener("scroll", Y, !0), () => {
|
|
81
|
+
window.removeEventListener("scroll", Y, !0);
|
|
82
|
+
}), [f, L, $]);
|
|
83
|
+
const pe = () => I.map(({ isValid: e = !1, label: o, name: s }) => /* @__PURE__ */ i(Re, { valid: e, validationMessage: o }, s)), be = (e) => {
|
|
84
|
+
const o = e.target;
|
|
85
|
+
D({
|
|
86
|
+
left: `${o.selectionStart < 30 ? o.selectionStart : 30}ch`
|
|
87
|
+
}), v && y(!1), F(o.value), a.onChange(`${n.id}${o.value}`), g && g(n.id, o.value), x.length > 0 && w(!0);
|
|
88
|
+
}, he = (e) => {
|
|
89
|
+
e.id !== n.id && (ne(e), a.onChange(e.id), F(""), g && g(e.id), u(!1), b.current.disabled = !1, b.current.focus());
|
|
90
|
+
}, _e = (e) => {
|
|
91
|
+
const o = T.split("/"), s = o.length - 1;
|
|
92
|
+
let l = e.customDelimiter ? o[s].replace(new RegExp(`${e.customDelimiter}.*`), "") + e.id : e.id;
|
|
93
|
+
o.length <= te - 1 && (l += "/"), o[s] = l, v && y(!1), o.join("/") !== T && (F(o.join("/")), a.onChange(`${n.id}${o.join("/")}`), g && g(n.id, o.join("/"))), w(!1), b.current.focus(), D({
|
|
94
|
+
left: `${b.current.selectionStart < 30 ? b.current.selectionStart : 30}ch`
|
|
95
|
+
});
|
|
96
|
+
}, ge = () => {
|
|
97
|
+
N && N(), a.onFocus(new Event("focus")), f && u(!1), w(!0);
|
|
98
|
+
}, we = (e) => {
|
|
99
|
+
e.persist(), X(
|
|
100
|
+
() => S.filter((o) => o.id.startsWith(e.target.value))
|
|
101
|
+
);
|
|
102
|
+
}, z = K(() => {
|
|
103
|
+
f ? (u(!1), a.onBlur(new Event("blur")), _ && _(a.value)) : (w(!1), E(!1), D({
|
|
104
|
+
left: "0px"
|
|
105
|
+
}), u(!0), a.onFocus(new Event("focus")), N && N(a.value));
|
|
106
|
+
}, [a, _, N, f]), xe = (e = "", o) => {
|
|
107
|
+
const s = e.startsWith(n.id) ? e.substring(n.id.length) : e ?? "";
|
|
108
|
+
let l = null;
|
|
109
|
+
if (!q(I)) {
|
|
110
|
+
const [M, Ve] = De(H, s), Ie = M.filter((O) => !O.isValid);
|
|
111
|
+
Ve || (l = Ie.map((O) => ({ name: O.name, label: O.label })));
|
|
112
|
+
}
|
|
113
|
+
return q(l) && (s.startsWith(" ") ? l = { name: "empty", label: B } : R && s.trim().length === 0 && (l = { name: "required", label: "This field is required" })), !l && U && (l = U(e, o)), l;
|
|
114
|
+
}, ve = () => {
|
|
115
|
+
E((e) => !e), u(!1);
|
|
116
|
+
}, Ne = h(
|
|
117
|
+
Z,
|
|
118
|
+
"form-field-combobox",
|
|
119
|
+
"form-field",
|
|
120
|
+
V && "form-field-combobox_invalid"
|
|
121
|
+
), Se = h(
|
|
122
|
+
f && "form-field-combobox__icon_open",
|
|
123
|
+
"form-field-combobox__icon"
|
|
124
|
+
), Ce = h(n.className), ye = h(
|
|
125
|
+
"form-field__wrapper",
|
|
126
|
+
`form-field__wrapper-${ee}`,
|
|
127
|
+
W && "form-field__wrapper-disabled",
|
|
128
|
+
V && "form-field__wrapper-invalid",
|
|
129
|
+
ae && "without-border"
|
|
130
|
+
);
|
|
131
|
+
return /* @__PURE__ */ i(Oe, { name: d, validate: xe, children: ({ input: e, meta: o }) => {
|
|
132
|
+
var s;
|
|
133
|
+
return /* @__PURE__ */ m(
|
|
134
|
+
"div",
|
|
135
|
+
{
|
|
136
|
+
className: Ne,
|
|
137
|
+
ref: p,
|
|
138
|
+
"data-testid": d ? `${d}-form-combobox` : "form-combobox",
|
|
139
|
+
children: [
|
|
140
|
+
G && /* @__PURE__ */ i("div", { className: fe, children: /* @__PURE__ */ m("label", { "data-testid": "label", htmlFor: e.name, children: [
|
|
141
|
+
G,
|
|
142
|
+
(R || I.find((l) => l.name === "required")) && /* @__PURE__ */ i("span", { className: "form-field__label-mandatory", children: " *" })
|
|
143
|
+
] }) }),
|
|
144
|
+
/* @__PURE__ */ m("div", { className: ye, children: [
|
|
145
|
+
/* @__PURE__ */ i("div", { className: "form-field__icons", children: /* @__PURE__ */ i(Pe, { className: Se, onClick: z }) }),
|
|
146
|
+
/* @__PURE__ */ m("div", { className: "form-field-combobox__select form-field__control", ref: A, children: [
|
|
147
|
+
/* @__PURE__ */ m("div", { className: "form-field-combobox__select-header", onClick: z, children: [
|
|
148
|
+
/* @__PURE__ */ i("span", { className: Ce, children: n.id }),
|
|
149
|
+
n.id.length === 0 && J && /* @__PURE__ */ i("div", { className: "form-field-combobox__placeholder", children: /* @__PURE__ */ i("label", { children: J }) })
|
|
150
|
+
] }),
|
|
151
|
+
f && /* @__PURE__ */ i(
|
|
152
|
+
Q,
|
|
153
|
+
{
|
|
154
|
+
headerIsHidden: !0,
|
|
155
|
+
customPosition: {
|
|
156
|
+
element: A,
|
|
157
|
+
position: "bottom-right"
|
|
158
|
+
},
|
|
159
|
+
className: "form-field-combobox__dropdown form-field-combobox__dropdown-select",
|
|
160
|
+
children: /* @__PURE__ */ i("ul", { className: "form-field-combobox__dropdown-list", children: se.map((l) => {
|
|
161
|
+
if (!l.hidden) {
|
|
162
|
+
const M = h(
|
|
163
|
+
"form-field-combobox__dropdown-list-option",
|
|
164
|
+
l.className
|
|
165
|
+
);
|
|
166
|
+
return /* @__PURE__ */ i(
|
|
167
|
+
"li",
|
|
168
|
+
{
|
|
169
|
+
className: M,
|
|
170
|
+
onClick: () => he(l),
|
|
171
|
+
children: l.label
|
|
172
|
+
},
|
|
173
|
+
l.id
|
|
174
|
+
);
|
|
175
|
+
}
|
|
176
|
+
}) })
|
|
177
|
+
}
|
|
178
|
+
)
|
|
179
|
+
] }),
|
|
180
|
+
/* @__PURE__ */ i(
|
|
181
|
+
"input",
|
|
182
|
+
{
|
|
183
|
+
className: ue,
|
|
184
|
+
"data-testid": d ? `${d}-form-combobox-input` : "form-combobox-input",
|
|
185
|
+
id: e.name,
|
|
186
|
+
onChange: be,
|
|
187
|
+
onFocus: ge,
|
|
188
|
+
placeholder: le,
|
|
189
|
+
ref: b,
|
|
190
|
+
required: R,
|
|
191
|
+
type: "text",
|
|
192
|
+
value: T
|
|
193
|
+
}
|
|
194
|
+
),
|
|
195
|
+
L && (x.length > 0 || v) && /* @__PURE__ */ i(
|
|
196
|
+
Q,
|
|
197
|
+
{
|
|
198
|
+
headerIsHidden: !0,
|
|
199
|
+
customPosition: {
|
|
200
|
+
element: A,
|
|
201
|
+
position: "bottom-right"
|
|
202
|
+
},
|
|
203
|
+
className: "form-field-combobox__dropdown form-field-combobox__dropdown-suggestions",
|
|
204
|
+
style: {
|
|
205
|
+
...ce
|
|
206
|
+
},
|
|
207
|
+
children: /* @__PURE__ */ m("div", { ref: P, children: [
|
|
208
|
+
!oe && /* @__PURE__ */ m("div", { className: "form-field-combobox__search-wrapper", children: [
|
|
209
|
+
/* @__PURE__ */ i(
|
|
210
|
+
"input",
|
|
211
|
+
{
|
|
212
|
+
"data-testid": d ? `${d}-form-combobox-search` : "form-combobox-search",
|
|
213
|
+
className: "form-field-combobox__search form-field__control",
|
|
214
|
+
onChange: we,
|
|
215
|
+
onFocus: () => y(!0),
|
|
216
|
+
placeholder: "Type to search",
|
|
217
|
+
type: "text"
|
|
218
|
+
}
|
|
219
|
+
),
|
|
220
|
+
/* @__PURE__ */ i(je, {})
|
|
221
|
+
] }),
|
|
222
|
+
/* @__PURE__ */ i("ul", { className: "form-field-combobox__dropdown-list", children: v && x.length === 0 ? /* @__PURE__ */ i("li", { className: "form-field-combobox__dropdown-list-option", children: "No data" }, "no data") : x.map((l) => /* @__PURE__ */ i(
|
|
223
|
+
"li",
|
|
224
|
+
{
|
|
225
|
+
className: "form-field-combobox__dropdown-list-option",
|
|
226
|
+
onClick: () => _e(l),
|
|
227
|
+
children: l.label
|
|
228
|
+
},
|
|
229
|
+
l.id
|
|
230
|
+
)) })
|
|
231
|
+
] })
|
|
232
|
+
}
|
|
233
|
+
),
|
|
234
|
+
/* @__PURE__ */ m("div", { className: "form-field__icons", children: [
|
|
235
|
+
V && !Array.isArray(o.error) && /* @__PURE__ */ i(
|
|
236
|
+
Fe,
|
|
237
|
+
{
|
|
238
|
+
className: "form-field__warning",
|
|
239
|
+
template: /* @__PURE__ */ i(Te, { text: ((s = o.error) == null ? void 0 : s.label) ?? B, warning: !0 }),
|
|
240
|
+
children: /* @__PURE__ */ i(qe, {})
|
|
241
|
+
}
|
|
242
|
+
),
|
|
243
|
+
V && Array.isArray(o.error) && /* @__PURE__ */ i("button", { className: "form-field__warning", onClick: ve, children: /* @__PURE__ */ i(Me, {}) })
|
|
244
|
+
] }),
|
|
245
|
+
!q(I) && /* @__PURE__ */ i(ke, { show: $, ref: p, children: pe() })
|
|
246
|
+
] })
|
|
247
|
+
]
|
|
248
|
+
}
|
|
249
|
+
);
|
|
250
|
+
} });
|
|
251
|
+
};
|
|
252
|
+
Be.propTypes = {
|
|
253
|
+
comboboxClassName: t.string,
|
|
254
|
+
density: Ae,
|
|
255
|
+
disabled: t.bool,
|
|
256
|
+
hideSearchInput: t.bool,
|
|
257
|
+
inputDefaultValue: t.string,
|
|
258
|
+
inputPlaceholder: t.string,
|
|
259
|
+
invalidText: t.string,
|
|
260
|
+
label: t.string,
|
|
261
|
+
maxSuggestedMatches: t.number,
|
|
262
|
+
name: t.string.isRequired,
|
|
263
|
+
onBlur: t.func,
|
|
264
|
+
onChange: t.func,
|
|
265
|
+
onFocus: t.func,
|
|
266
|
+
required: t.bool,
|
|
267
|
+
rules: t.array,
|
|
268
|
+
selectDefaultValue: t.shape({}),
|
|
269
|
+
selectOptions: $e.isRequired,
|
|
270
|
+
selectPlaceholder: t.string,
|
|
271
|
+
suggestionList: Le,
|
|
272
|
+
validator: t.func,
|
|
273
|
+
withoutBorder: t.bool
|
|
274
|
+
};
|
|
275
|
+
export {
|
|
276
|
+
Be as default
|
|
277
|
+
};
|
|
278
|
+
//# sourceMappingURL=FormCombobox.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormCombobox.mjs","sources":["../../../src/lib/components/FormCombobox/FormCombobox.jsx"],"sourcesContent":["/*\nCopyright 2022 Iguazio Systems Ltd.\nLicensed under the Apache License, Version 2.0 (the \"License\") with\nan addition restriction as set forth herein. You may not use this\nfile except in compliance with the License. You may obtain a copy of\nthe License at http://www.apache.org/licenses/LICENSE-2.0.\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\nimplied. See the License for the specific language governing\npermissions and limitations under the License.\nIn addition, you may not use the software for any purposes that are\nillegal under applicable law, and the grant of the foregoing license\nunder the Apache 2.0 license is conditioned upon your compliance with\nsuch restriction.\n*/\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { Field, useField } from 'react-final-form'\nimport { isEmpty } from 'lodash'\nimport PropTypes from 'prop-types'\nimport classnames from 'classnames'\n\nimport OptionsMenu from '../../elements/OptionsMenu/OptionsMenu'\nimport ValidationTemplate from '../../elements/ValidationTemplate/ValidationTemplate'\nimport PopUpDialog from '../PopUpDialog/PopUpDialog'\nimport TextTooltipTemplate from '../TooltipTemplate/TextTooltipTemplate'\nimport Tooltip from '../Tooltip/Tooltip'\n\nimport { checkPatternsValidity } from '../../utils/validation.util'\nimport { useDetectOutsideClick } from '../../hooks'\nimport { COMBOBOX_SELECT_OPTIONS, COMBOBOX_SUGGESTION_LIST, DENSITY } from '../../types'\n\nimport Arrow from '../../images/arrow.svg?react'\nimport SearchIcon from '../../images/search.svg?react'\nimport WarningIcon from '../../images/warning.svg?react'\nimport ExclamationMarkIcon from '../../images/exclamation-mark.svg?react'\n\nimport './formCombobox.scss'\n\nconst FormCombobox = ({\n comboboxClassName = '',\n density = 'normal',\n disabled = false,\n hideSearchInput = false,\n inputDefaultValue = '',\n inputPlaceholder = '',\n invalidText = 'Invalid',\n label = '',\n maxSuggestedMatches = 1,\n name,\n onBlur = null,\n onChange = null,\n onFocus = null,\n required = false,\n rules = [],\n selectDefaultValue = {\n label: '',\n id: '',\n className: ''\n },\n selectOptions,\n selectPlaceholder = '',\n suggestionList = [],\n validator = null,\n withoutBorder = false\n}) => {\n const { input, meta } = useField(name)\n const [inputValue, setInputValue] = useState(inputDefaultValue)\n const [selectValue, setSelectValue] = useState(selectDefaultValue)\n const [dropdownStyle, setDropdownStyle] = useState({\n left: '0px'\n })\n const [showSelectDropdown, setShowSelectDropdown] = useState(false)\n const [showSuggestionList, setShowSuggestionList] = useState(false)\n const [dropdownList, setDropdownList] = useState(suggestionList)\n const [searchIsFocused, setSearchIsFocused] = useState(false)\n const [isInvalid, setIsInvalid] = useState(false)\n const [validationRules, setValidationRules] = useState(rules)\n const [showValidationRules, setShowValidationRules] = useState(false)\n const comboboxRef = useRef()\n const selectRef = useRef()\n const inputRef = useRef()\n const suggestionListRef = useRef()\n useDetectOutsideClick(comboboxRef, () => setShowValidationRules(false))\n\n const labelClassNames = classnames('form-field__label', disabled && 'form-field__label-disabled')\n const inputClassNames = classnames(\n 'form-field-combobox__input',\n selectValue.id.length === 0 && 'form-field-combobox__input_hidden'\n )\n\n useEffect(() => {\n setValidationRules(prevState =>\n prevState.map(rule => ({\n ...rule,\n isValid:\n !meta.error || !Array.isArray(meta.error)\n ? true\n : !meta.error.some(err => err.name === rule.name)\n }))\n )\n }, [meta.error])\n\n useEffect(() => {\n if (!searchIsFocused) {\n if (JSON.stringify(dropdownList) !== JSON.stringify(suggestionList)) {\n setDropdownList(suggestionList)\n }\n }\n }, [dropdownList, suggestionList, searchIsFocused])\n\n useEffect(() => {\n setIsInvalid(\n meta.invalid && (meta.validating || meta.modified || (meta.submitFailed && meta.touched))\n )\n }, [meta.invalid, meta.modified, meta.submitFailed, meta.touched, meta.validating])\n\n const handleOutsideClick = useCallback(\n event => {\n if (\n comboboxRef.current &&\n !comboboxRef.current.contains(event.target) &&\n suggestionListRef.current &&\n !suggestionListRef.current.contains(event.target)\n ) {\n setSearchIsFocused(false)\n setShowSelectDropdown(false)\n setShowSuggestionList(false)\n input.onBlur(new Event('blur'))\n onBlur && onBlur(input.value)\n }\n },\n [input, onBlur]\n )\n\n const handleScroll = event => {\n if (comboboxRef.current && comboboxRef.current.contains(event.target)) return\n\n if (\n !event.target.closest('.pop-up-dialog') &&\n !event.target.classList.contains('form-field-combobox')\n ) {\n setShowValidationRules(false)\n setShowSelectDropdown(false)\n setShowSuggestionList(false)\n inputRef.current.blur()\n }\n }\n\n useEffect(() => {\n window.addEventListener('click', handleOutsideClick)\n\n return () => {\n window.removeEventListener('click', handleOutsideClick)\n }\n }, [handleOutsideClick])\n\n useEffect(() => {\n if (showValidationRules || showSelectDropdown || showSuggestionList) {\n window.addEventListener('scroll', handleScroll, true)\n }\n return () => {\n window.removeEventListener('scroll', handleScroll, true)\n }\n }, [showSelectDropdown, showSuggestionList, showValidationRules])\n\n const getValidationRules = () => {\n return validationRules.map(({ isValid = false, label, name }) => {\n return <ValidationTemplate valid={isValid} validationMessage={label} key={name} />\n })\n }\n\n const handleInputChange = event => {\n const target = event.target\n\n setDropdownStyle({\n left: `${target.selectionStart < 30 ? target.selectionStart : 30}ch`\n })\n\n if (searchIsFocused) {\n setSearchIsFocused(false)\n }\n\n setInputValue(target.value)\n input.onChange(`${selectValue.id}${target.value}`)\n onChange && onChange(selectValue.id, target.value)\n\n if (dropdownList.length > 0) {\n setShowSuggestionList(true)\n }\n }\n\n const handleSelectOptionClick = selectedOption => {\n if (selectedOption.id !== selectValue.id) {\n setSelectValue(selectedOption)\n input.onChange(selectedOption.id)\n setInputValue('')\n onChange && onChange(selectedOption.id)\n setShowSelectDropdown(false)\n inputRef.current.disabled = false\n inputRef.current.focus()\n }\n }\n\n const handleSuggestionListOptionClick = option => {\n const inputValueItems = inputValue.split('/')\n const valueIndex = inputValueItems.length - 1\n let formattedValue = option.customDelimiter\n ? inputValueItems[valueIndex].replace(new RegExp(`${option.customDelimiter}.*`), '') +\n option.id\n : option.id\n\n if (inputValueItems.length <= maxSuggestedMatches - 1) formattedValue += '/'\n\n inputValueItems[valueIndex] = formattedValue\n\n if (searchIsFocused) {\n setSearchIsFocused(false)\n }\n\n if (inputValueItems.join('/') !== inputValue) {\n setInputValue(inputValueItems.join('/'))\n input.onChange(`${selectValue.id}${inputValueItems.join('/')}`)\n onChange && onChange(selectValue.id, inputValueItems.join('/'))\n }\n\n setShowSuggestionList(false)\n inputRef.current.focus()\n setDropdownStyle({\n left: `${inputRef.current.selectionStart < 30 ? inputRef.current.selectionStart : 30}ch`\n })\n }\n\n const inputOnFocus = () => {\n onFocus && onFocus()\n input.onFocus(new Event('focus'))\n\n if (showSelectDropdown) {\n setShowSelectDropdown(false)\n }\n\n setShowSuggestionList(true)\n }\n\n const suggestionListSearchChange = event => {\n event.persist()\n setDropdownList(() =>\n suggestionList.filter(option => {\n return option.id.startsWith(event.target.value)\n })\n )\n }\n\n const toggleSelect = useCallback(() => {\n if (showSelectDropdown) {\n setShowSelectDropdown(false)\n input.onBlur(new Event('blur'))\n onBlur && onBlur(input.value)\n } else {\n setShowSuggestionList(false)\n setShowValidationRules(false)\n setDropdownStyle({\n left: '0px'\n })\n setShowSelectDropdown(true)\n input.onFocus(new Event('focus'))\n onFocus && onFocus(input.value)\n }\n }, [input, onBlur, onFocus, showSelectDropdown])\n\n const validateField = (value = '', allValues) => {\n const valueToValidate = value.startsWith(selectValue.id)\n ? value.substring(selectValue.id.length)\n : (value ?? '')\n let validationError = null\n\n if (!isEmpty(validationRules)) {\n const [newRules, isValidField] = checkPatternsValidity(rules, valueToValidate)\n const invalidRules = newRules.filter(rule => !rule.isValid)\n\n if (!isValidField) {\n validationError = invalidRules.map(rule => ({ name: rule.name, label: rule.label }))\n }\n }\n\n if (isEmpty(validationError)) {\n if (valueToValidate.startsWith(' ')) {\n validationError = { name: 'empty', label: invalidText }\n } else if (required && valueToValidate.trim().length === 0) {\n validationError = { name: 'required', label: 'This field is required' }\n }\n }\n\n if (!validationError && validator) {\n validationError = validator(value, allValues)\n }\n\n return validationError\n }\n\n const warningIconClick = () => {\n setShowValidationRules(state => !state)\n setShowSelectDropdown(false)\n }\n\n const comboboxClassNames = classnames(\n comboboxClassName,\n 'form-field-combobox',\n 'form-field',\n isInvalid && 'form-field-combobox_invalid'\n )\n const iconClassNames = classnames(\n showSelectDropdown && 'form-field-combobox__icon_open',\n 'form-field-combobox__icon'\n )\n const selectValueClassNames = classnames(selectValue.className)\n\n const wrapperClassNames = classnames(\n 'form-field__wrapper',\n `form-field__wrapper-${density}`,\n disabled && 'form-field__wrapper-disabled',\n isInvalid && 'form-field__wrapper-invalid',\n withoutBorder && 'without-border'\n )\n\n return (\n <Field name={name} validate={validateField}>\n {({ input, meta }) => (\n <div\n className={comboboxClassNames}\n ref={comboboxRef}\n data-testid={name ? `${name}-form-combobox` : 'form-combobox'}\n >\n {label && (\n <div className={labelClassNames}>\n <label data-testid=\"label\" htmlFor={input.name}>\n {label}\n {(required || validationRules.find(rule => rule.name === 'required')) && (\n <span className=\"form-field__label-mandatory\"> *</span>\n )}\n </label>\n </div>\n )}\n <div className={wrapperClassNames}>\n <div className=\"form-field__icons\">\n <Arrow className={iconClassNames} onClick={toggleSelect} />\n </div>\n <div className=\"form-field-combobox__select form-field__control\" ref={selectRef}>\n <div className=\"form-field-combobox__select-header\" onClick={toggleSelect}>\n <span className={selectValueClassNames}>{selectValue.id}</span>\n {selectValue.id.length === 0 && selectPlaceholder && (\n <div className=\"form-field-combobox__placeholder\">\n <label>{selectPlaceholder}</label>\n </div>\n )}\n </div>\n {showSelectDropdown && (\n <PopUpDialog\n headerIsHidden\n customPosition={{\n element: selectRef,\n position: 'bottom-right'\n }}\n className=\"form-field-combobox__dropdown form-field-combobox__dropdown-select\"\n >\n <ul className=\"form-field-combobox__dropdown-list\">\n {selectOptions.map(option => {\n if (!option.hidden) {\n const selectOptionClassNames = classnames(\n 'form-field-combobox__dropdown-list-option',\n option.className\n )\n\n return (\n <li\n className={selectOptionClassNames}\n key={option.id}\n onClick={() => handleSelectOptionClick(option)}\n >\n {option.label}\n </li>\n )\n }\n })}\n </ul>\n </PopUpDialog>\n )}\n </div>\n <input\n className={inputClassNames}\n data-testid={name ? `${name}-form-combobox-input` : 'form-combobox-input'}\n id={input.name}\n onChange={handleInputChange}\n onFocus={inputOnFocus}\n placeholder={inputPlaceholder}\n ref={inputRef}\n required={required}\n type=\"text\"\n value={inputValue}\n />\n {showSuggestionList && (dropdownList.length > 0 || searchIsFocused) && (\n <PopUpDialog\n headerIsHidden\n customPosition={{\n element: selectRef,\n position: 'bottom-right'\n }}\n className=\"form-field-combobox__dropdown form-field-combobox__dropdown-suggestions\"\n style={{\n ...dropdownStyle\n }}\n >\n <div ref={suggestionListRef}>\n {!hideSearchInput && (\n <div className=\"form-field-combobox__search-wrapper\">\n <input\n data-testid={name ? `${name}-form-combobox-search` : 'form-combobox-search'}\n className=\"form-field-combobox__search form-field__control\"\n onChange={suggestionListSearchChange}\n onFocus={() => setSearchIsFocused(true)}\n placeholder=\"Type to search\"\n type=\"text\"\n />\n <SearchIcon />\n </div>\n )}\n <ul className=\"form-field-combobox__dropdown-list\">\n {searchIsFocused && dropdownList.length === 0 ? (\n <li className=\"form-field-combobox__dropdown-list-option\" key=\"no data\">\n No data\n </li>\n ) : (\n dropdownList.map(value => (\n <li\n className=\"form-field-combobox__dropdown-list-option\"\n key={value.id}\n onClick={() => handleSuggestionListOptionClick(value)}\n >\n {value.label}\n </li>\n ))\n )}\n </ul>\n </div>\n </PopUpDialog>\n )}\n <div className=\"form-field__icons\">\n {isInvalid && !Array.isArray(meta.error) && (\n <Tooltip\n className=\"form-field__warning\"\n template={<TextTooltipTemplate text={meta.error?.label ?? invalidText} warning />}\n >\n <ExclamationMarkIcon />\n </Tooltip>\n )}\n {isInvalid && Array.isArray(meta.error) && (\n <button className=\"form-field__warning\" onClick={warningIconClick}>\n <WarningIcon />\n </button>\n )}\n </div>\n {!isEmpty(validationRules) && (\n <OptionsMenu show={showValidationRules} ref={comboboxRef}>\n {getValidationRules()}\n </OptionsMenu>\n )}\n </div>\n </div>\n )}\n </Field>\n )\n}\n\nFormCombobox.propTypes = {\n comboboxClassName: PropTypes.string,\n density: DENSITY,\n disabled: PropTypes.bool,\n hideSearchInput: PropTypes.bool,\n inputDefaultValue: PropTypes.string,\n inputPlaceholder: PropTypes.string,\n invalidText: PropTypes.string,\n label: PropTypes.string,\n maxSuggestedMatches: PropTypes.number,\n name: PropTypes.string.isRequired,\n onBlur: PropTypes.func,\n onChange: PropTypes.func,\n onFocus: PropTypes.func,\n required: PropTypes.bool,\n rules: PropTypes.array,\n selectDefaultValue: PropTypes.shape({}),\n selectOptions: COMBOBOX_SELECT_OPTIONS.isRequired,\n selectPlaceholder: PropTypes.string,\n suggestionList: COMBOBOX_SUGGESTION_LIST,\n validator: PropTypes.func,\n withoutBorder: PropTypes.bool\n}\n\nexport default FormCombobox\n"],"names":["FormCombobox","comboboxClassName","density","disabled","hideSearchInput","inputDefaultValue","inputPlaceholder","invalidText","label","maxSuggestedMatches","name","onBlur","onChange","onFocus","required","rules","selectDefaultValue","selectOptions","selectPlaceholder","suggestionList","validator","withoutBorder","input","meta","useField","inputValue","setInputValue","useState","selectValue","setSelectValue","dropdownStyle","setDropdownStyle","showSelectDropdown","setShowSelectDropdown","showSuggestionList","setShowSuggestionList","dropdownList","setDropdownList","searchIsFocused","setSearchIsFocused","isInvalid","setIsInvalid","validationRules","setValidationRules","showValidationRules","setShowValidationRules","comboboxRef","useRef","selectRef","inputRef","suggestionListRef","useDetectOutsideClick","labelClassNames","classnames","inputClassNames","useEffect","prevState","rule","err","handleOutsideClick","useCallback","event","handleScroll","getValidationRules","isValid","ValidationTemplate","handleInputChange","target","handleSelectOptionClick","selectedOption","handleSuggestionListOptionClick","option","inputValueItems","valueIndex","formattedValue","inputOnFocus","suggestionListSearchChange","toggleSelect","validateField","value","allValues","valueToValidate","validationError","isEmpty","newRules","isValidField","checkPatternsValidity","invalidRules","warningIconClick","state","comboboxClassNames","iconClassNames","selectValueClassNames","wrapperClassNames","jsx","Field","jsxs","Arrow","PopUpDialog","selectOptionClassNames","SearchIcon","Tooltip","TextTooltipTemplate","ExclamationMarkIcon","WarningIcon","OptionsMenu","PropTypes","DENSITY","COMBOBOX_SELECT_OPTIONS","COMBOBOX_SUGGESTION_LIST"],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
declare namespace _default {
|
|
2
|
+
export let title: string;
|
|
3
|
+
export { FormCombobox as component };
|
|
4
|
+
}
|
|
5
|
+
export default _default;
|
|
6
|
+
export const Dense: any;
|
|
7
|
+
export const Normal: any;
|
|
8
|
+
export const Medium: any;
|
|
9
|
+
export const Chunky: any;
|
|
10
|
+
export const withDefaultValue: any;
|
|
11
|
+
export const withSuggestions: any;
|
|
12
|
+
//# sourceMappingURL=FormCombobox.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormCombobox.stories.d.ts","sourceRoot":"","sources":["../../../src/lib/components/FormCombobox/FormCombobox.stories.js"],"names":[],"mappings":";;;;;AA4CA,wBAAsC;AAMtC,yBAAuC;AAMvC,yBAAuC;AAMvC,yBAAuC;AAMvC,mCAAiD;AAWjD,kCAAgD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormInput.d.ts","sourceRoot":"","sources":["../../../src/lib/components/FormInput/FormInput.jsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
import { jsx as t, jsxs as w } from "react/jsx-runtime";
|
|
2
|
+
import ie, { useState as g, useRef as C, useEffect as b, forwardRef as Ie } from "react";
|
|
3
|
+
import r from "prop-types";
|
|
4
|
+
import q from "classnames";
|
|
5
|
+
import { isNil as Z, isEmpty as A } from "lodash";
|
|
6
|
+
import { useField as Ee, Field as xe } from "react-final-form";
|
|
7
|
+
import Ce from "./InputNumberButtons/InputNumberButtons.mjs";
|
|
8
|
+
import Ae from "../../elements/OptionsMenu/OptionsMenu.mjs";
|
|
9
|
+
import ke from "../../elements/ValidationTemplate/ValidationTemplate.mjs";
|
|
10
|
+
import "../index.mjs";
|
|
11
|
+
import { INPUT_VALIDATION_RULES as Se, INPUT_LINK as De, DENSITY as $e } from "../../types.mjs";
|
|
12
|
+
import { checkPatternsValidity as Oe, checkPatternsValidityAsync as Be } from "../../utils/validation.util.mjs";
|
|
13
|
+
import "../../hooks/index.mjs";
|
|
14
|
+
import { validation as Ke } from "../../constants.mjs";
|
|
15
|
+
import Me from "../../images/exclamation-mark.svg.mjs";
|
|
16
|
+
import qe from "../../images/popout.svg.mjs";
|
|
17
|
+
import Le from "../../images/warning.svg.mjs";
|
|
18
|
+
/* empty css */
|
|
19
|
+
import { useDetectOutsideClick as Ue } from "../../hooks/useDetectOutsideClick.hook.mjs";
|
|
20
|
+
import { useDebounce as We } from "../../hooks/useDebounce.hook.mjs";
|
|
21
|
+
import ee from "../Tooltip/Tooltip.mjs";
|
|
22
|
+
import re from "../TooltipTemplate/TextTooltipTemplate.mjs";
|
|
23
|
+
import je from "../Tip/Tip.mjs";
|
|
24
|
+
const p = {
|
|
25
|
+
iconClick: () => {
|
|
26
|
+
},
|
|
27
|
+
link: { show: "", value: "" },
|
|
28
|
+
onBlur: () => {
|
|
29
|
+
},
|
|
30
|
+
onKeyDown: () => {
|
|
31
|
+
},
|
|
32
|
+
onValidationError: () => {
|
|
33
|
+
},
|
|
34
|
+
validator: () => {
|
|
35
|
+
},
|
|
36
|
+
rules: []
|
|
37
|
+
};
|
|
38
|
+
let R = ({
|
|
39
|
+
async: L = !1,
|
|
40
|
+
className: te = "",
|
|
41
|
+
customRequiredLabel: le = "",
|
|
42
|
+
density: ne = "normal",
|
|
43
|
+
disabled: h = !1,
|
|
44
|
+
focused: U = !1,
|
|
45
|
+
iconClass: ae = "",
|
|
46
|
+
iconClick: oe = p.iconClick,
|
|
47
|
+
inputIcon: W = null,
|
|
48
|
+
invalidText: k = "This field is invalid",
|
|
49
|
+
label: j = "",
|
|
50
|
+
link: N = p.link,
|
|
51
|
+
name: c,
|
|
52
|
+
onBlur: S = p.onBlur,
|
|
53
|
+
onFocus: P,
|
|
54
|
+
onKeyDown: H = p.onKeyDown,
|
|
55
|
+
pattern: D = null,
|
|
56
|
+
required: T = !1,
|
|
57
|
+
onValidationError: Q = p.onValidationError,
|
|
58
|
+
suggestionList: V = [],
|
|
59
|
+
step: se = "1",
|
|
60
|
+
tip: Y = "",
|
|
61
|
+
type: F = "text",
|
|
62
|
+
validationRules: f = p.rules,
|
|
63
|
+
validator: z = p.validator,
|
|
64
|
+
withoutBorder: me = !1,
|
|
65
|
+
...m
|
|
66
|
+
}, I) => {
|
|
67
|
+
const { input: s, meta: a } = Ee(c), [_, de] = g(!1), [ce, $] = g(!1), [E, fe] = g(""), [ue] = g(RegExp(D)), [O, pe] = g(f), [y, x] = g(!1), ge = C();
|
|
68
|
+
I ?? (I = ge);
|
|
69
|
+
const v = C(), o = C(), B = C(!1);
|
|
70
|
+
Ue(I, () => x(!1));
|
|
71
|
+
const be = We(), he = q("form-field-input", te), _e = q(
|
|
72
|
+
"form-field__wrapper",
|
|
73
|
+
`form-field__wrapper-${ne}`,
|
|
74
|
+
h && "form-field__wrapper-disabled",
|
|
75
|
+
_ && "form-field__wrapper-invalid",
|
|
76
|
+
me && "without-border"
|
|
77
|
+
), ye = q("form-field__label", h && "form-field__label-disabled");
|
|
78
|
+
b(() => {
|
|
79
|
+
fe(String(s.value));
|
|
80
|
+
}, [s.value]), b(() => {
|
|
81
|
+
const e = o.current && a.invalid && (a.validating || a.modified || a.submitFailed && a.touched);
|
|
82
|
+
de(e), Q(e);
|
|
83
|
+
}, [
|
|
84
|
+
a.invalid,
|
|
85
|
+
a.modified,
|
|
86
|
+
a.submitFailed,
|
|
87
|
+
a.touched,
|
|
88
|
+
a.validating,
|
|
89
|
+
Q
|
|
90
|
+
]), b(() => {
|
|
91
|
+
o.current || a.valid && y && x(!1);
|
|
92
|
+
}, [a.valid, y]), b(() => (y && window.addEventListener("scroll", J, !0), () => {
|
|
93
|
+
window.removeEventListener("scroll", J, !0);
|
|
94
|
+
}), [y]), b(() => {
|
|
95
|
+
U && v.current.focus();
|
|
96
|
+
}, [U]), b(() => {
|
|
97
|
+
pe(() => (B.current = !1, f.map((e) => (e.name === Ke.REQUIRED.NAME && (B.current = !0), {
|
|
98
|
+
...e,
|
|
99
|
+
isValid: !o.current || !Array.isArray(o.current) ? !0 : !o.current.some((n) => n.name === e.name)
|
|
100
|
+
}))));
|
|
101
|
+
}, [f]);
|
|
102
|
+
const ve = () => O.map(({ isValid: e = !1, label: n, name: i }) => /* @__PURE__ */ t(ke, { valid: e, validationMessage: n }, i)), G = (e) => !e && !T || h, we = (e) => {
|
|
103
|
+
var n;
|
|
104
|
+
s.onBlur && s.onBlur(e), (!e.relatedTarget || !((n = e.relatedTarget) != null && n.closest(".form-field__suggestion-list"))) && ($(!1), S && S(e));
|
|
105
|
+
}, Re = (e) => {
|
|
106
|
+
s.onFocus && s.onFocus(e), P && P(e), $(!0);
|
|
107
|
+
}, Ne = (e) => {
|
|
108
|
+
s.onKeyDown && s.onKeyDown(e), H && H(e);
|
|
109
|
+
}, J = (e) => {
|
|
110
|
+
v.current && v.current.contains(e.target) || !e.target.closest(".options-menu") && !e.target.classList.contains("form-field-input") && x(!1);
|
|
111
|
+
}, Te = (e) => {
|
|
112
|
+
s.onChange && s.onChange(e), $(!1), S();
|
|
113
|
+
}, Ve = () => {
|
|
114
|
+
v.current.focus(), x((e) => !e);
|
|
115
|
+
}, X = (e, n) => {
|
|
116
|
+
let i = Z(e) ? "" : String(e);
|
|
117
|
+
if (G(i)) return;
|
|
118
|
+
let l = null;
|
|
119
|
+
if (T && i.trim().length === 0 && !B.current)
|
|
120
|
+
l = {
|
|
121
|
+
name: "required",
|
|
122
|
+
label: le || "This field is required"
|
|
123
|
+
};
|
|
124
|
+
else if (!A(f) && !L) {
|
|
125
|
+
const [u, K] = Oe(f, i), M = u.filter((d) => !d.isValid);
|
|
126
|
+
K || (l = M.map((d) => ({ name: d.name, label: d.label })));
|
|
127
|
+
}
|
|
128
|
+
return A(l) && (F === "number" && (m.max && +i > +m.max && (l = {
|
|
129
|
+
name: "maxValue",
|
|
130
|
+
label: `The maximum value must be ${m.max}`
|
|
131
|
+
}), m.min && +i < +m.min && (l = {
|
|
132
|
+
name: "minValue",
|
|
133
|
+
label: `The minimum value must be ${m.min}`
|
|
134
|
+
})), D && !ue.test(i) ? l = { name: "pattern", label: k } : i.startsWith(" ") && (l = { name: "empty", label: k })), !l && z && (l = z(e, n)), o.current = l, l;
|
|
135
|
+
}, Fe = be(async (e, n) => {
|
|
136
|
+
let i = Z(e) ? "" : String(e);
|
|
137
|
+
if (G(i)) return;
|
|
138
|
+
let l = X(i, n);
|
|
139
|
+
if (!A(f)) {
|
|
140
|
+
const [u, K] = await Be(f, i), M = u.filter((d) => !d.isValid);
|
|
141
|
+
K || (l = M.map((d) => ({ name: d.name, label: d.label })));
|
|
142
|
+
}
|
|
143
|
+
return o.current = l, l;
|
|
144
|
+
}, 400);
|
|
145
|
+
return /* @__PURE__ */ t(xe, { validate: L ? Fe : X, name: c, parse: (e) => F === "number" && e && parseFloat(e) || e, children: ({ input: e }) => {
|
|
146
|
+
var n;
|
|
147
|
+
return /* @__PURE__ */ w(
|
|
148
|
+
"div",
|
|
149
|
+
{
|
|
150
|
+
ref: I,
|
|
151
|
+
className: he,
|
|
152
|
+
"data-testid": c ? `${c}-form-field-input` : "form-field-input",
|
|
153
|
+
children: [
|
|
154
|
+
j && /* @__PURE__ */ w("div", { className: ye, children: [
|
|
155
|
+
/* @__PURE__ */ w(
|
|
156
|
+
"label",
|
|
157
|
+
{
|
|
158
|
+
"data-testid": c ? `${c}-form-label` : "form-label",
|
|
159
|
+
htmlFor: e.name,
|
|
160
|
+
children: [
|
|
161
|
+
j,
|
|
162
|
+
(T || O.find((i) => i.name === "required")) && /* @__PURE__ */ t("span", { className: "form-field__label-mandatory", children: " *" })
|
|
163
|
+
]
|
|
164
|
+
}
|
|
165
|
+
),
|
|
166
|
+
N && N.show && E.trim() && /* @__PURE__ */ t("div", { className: "form-field__label-icon", children: /* @__PURE__ */ t(ee, { template: /* @__PURE__ */ t(re, { text: N.url || E }), children: /* @__PURE__ */ t(
|
|
167
|
+
"a",
|
|
168
|
+
{
|
|
169
|
+
href: N.url || E,
|
|
170
|
+
onClick: (i) => i.stopPropagation(),
|
|
171
|
+
target: "_blank",
|
|
172
|
+
rel: "noreferrer",
|
|
173
|
+
children: /* @__PURE__ */ t(qe, {})
|
|
174
|
+
}
|
|
175
|
+
) }) })
|
|
176
|
+
] }),
|
|
177
|
+
/* @__PURE__ */ w("div", { className: _e, children: [
|
|
178
|
+
/* @__PURE__ */ t("div", { className: "form-field__control", children: /* @__PURE__ */ t(
|
|
179
|
+
"input",
|
|
180
|
+
{
|
|
181
|
+
"data-testid": c ? `${c}-form-input` : "form-input",
|
|
182
|
+
id: e.name,
|
|
183
|
+
ref: v,
|
|
184
|
+
required: _ || T,
|
|
185
|
+
disabled: h,
|
|
186
|
+
pattern: D,
|
|
187
|
+
type: F,
|
|
188
|
+
...m,
|
|
189
|
+
...e,
|
|
190
|
+
autoComplete: m.autocomplete ?? "off",
|
|
191
|
+
onBlur: we,
|
|
192
|
+
onKeyDown: Ne,
|
|
193
|
+
onFocus: Re
|
|
194
|
+
}
|
|
195
|
+
) }),
|
|
196
|
+
/* @__PURE__ */ w("div", { className: "form-field__icons", children: [
|
|
197
|
+
_ && !Array.isArray(o.current) && /* @__PURE__ */ t(
|
|
198
|
+
ee,
|
|
199
|
+
{
|
|
200
|
+
className: "form-field__warning",
|
|
201
|
+
template: /* @__PURE__ */ t(re, { text: ((n = o.current) == null ? void 0 : n.label) ?? k, warning: !0 }),
|
|
202
|
+
children: /* @__PURE__ */ t(Me, {})
|
|
203
|
+
}
|
|
204
|
+
),
|
|
205
|
+
_ && Array.isArray(o.current) && /* @__PURE__ */ t("button", { className: "form-field__warning", onClick: Ve, children: /* @__PURE__ */ t(Le, {}) }),
|
|
206
|
+
Y && /* @__PURE__ */ t(je, { text: Y, className: "form-field__tip" }),
|
|
207
|
+
W && /* @__PURE__ */ t("span", { "data-testid": "input-icon", className: ae, onClick: oe, children: W })
|
|
208
|
+
] }),
|
|
209
|
+
F === "number" && /* @__PURE__ */ t(Ce, { ...m, step: +se, ...e, disabled: h })
|
|
210
|
+
] }),
|
|
211
|
+
(V == null ? void 0 : V.length) > 0 && ce && /* @__PURE__ */ t("ul", { className: "form-field__suggestion-list", children: V.map((i, l) => /* @__PURE__ */ t(
|
|
212
|
+
"li",
|
|
213
|
+
{
|
|
214
|
+
className: "suggestion-item",
|
|
215
|
+
onClick: () => {
|
|
216
|
+
Te(i);
|
|
217
|
+
},
|
|
218
|
+
tabIndex: l,
|
|
219
|
+
dangerouslySetInnerHTML: {
|
|
220
|
+
__html: i.replace(
|
|
221
|
+
new RegExp(E, "gi"),
|
|
222
|
+
(u) => u && `<b>${u}</b>`
|
|
223
|
+
)
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
`${i}${l}`
|
|
227
|
+
)) }),
|
|
228
|
+
!A(O) && _ && Array.isArray(o.current) && /* @__PURE__ */ t(Ae, { show: y, ref: I, children: ve() })
|
|
229
|
+
]
|
|
230
|
+
}
|
|
231
|
+
);
|
|
232
|
+
} });
|
|
233
|
+
};
|
|
234
|
+
R = ie.memo(Ie(R));
|
|
235
|
+
R.displayName = "FormInput";
|
|
236
|
+
R.propTypes = {
|
|
237
|
+
async: r.bool,
|
|
238
|
+
className: r.string,
|
|
239
|
+
customRequiredLabel: r.string,
|
|
240
|
+
density: $e,
|
|
241
|
+
disabled: r.bool,
|
|
242
|
+
focused: r.bool,
|
|
243
|
+
iconClass: r.string,
|
|
244
|
+
iconClick: r.func,
|
|
245
|
+
inputIcon: r.element,
|
|
246
|
+
invalidText: r.string,
|
|
247
|
+
label: r.string,
|
|
248
|
+
link: De,
|
|
249
|
+
max: r.oneOfType([r.string, r.number]),
|
|
250
|
+
min: r.oneOfType([r.string, r.number]),
|
|
251
|
+
name: r.string.isRequired,
|
|
252
|
+
onBlur: r.func,
|
|
253
|
+
onFocus: r.func,
|
|
254
|
+
onKeyDown: r.func,
|
|
255
|
+
onValidationError: r.func,
|
|
256
|
+
pattern: r.string,
|
|
257
|
+
placeholder: r.string,
|
|
258
|
+
required: r.bool,
|
|
259
|
+
step: r.oneOfType([r.string, r.number]),
|
|
260
|
+
suggestionList: r.arrayOf(r.string),
|
|
261
|
+
tip: r.oneOfType([r.string, r.element]),
|
|
262
|
+
type: r.string,
|
|
263
|
+
validationRules: Se,
|
|
264
|
+
validator: r.func,
|
|
265
|
+
value: r.oneOfType([r.string, r.number]),
|
|
266
|
+
withoutBorder: r.bool
|
|
267
|
+
};
|
|
268
|
+
const gr = ie.memo(R);
|
|
269
|
+
export {
|
|
270
|
+
gr as default
|
|
271
|
+
};
|
|
272
|
+
//# sourceMappingURL=FormInput.mjs.map
|