@erpsquad/common 1.8.106 → 1.8.107
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/_virtual/index/index.esm10.js +3 -3
- package/dist/_virtual/index/index.esm11.js +2 -4
- package/dist/_virtual/index/index.esm11.js.map +1 -1
- package/dist/_virtual/index/index.esm2.js +4 -2
- package/dist/_virtual/index/index.esm2.js.map +1 -1
- package/dist/_virtual/index/index.esm3.js +3 -3
- package/dist/_virtual/index/index.esm4.js +3 -3
- package/dist/_virtual/index/index.esm5.js +3 -3
- package/dist/_virtual/index/index.esm6.js +3 -3
- package/dist/_virtual/index/index.esm7.js +3 -3
- package/dist/_virtual/index/index.esm8.js +3 -3
- package/dist/_virtual/index/index.esm9.js +3 -3
- package/dist/_virtual/index/index10.js +1 -1
- package/dist/_virtual/index/index11.js +1 -1
- package/dist/_virtual/index/index2.js +1 -1
- package/dist/_virtual/index/index3.js +1 -1
- package/dist/_virtual/index/index4.js +1 -1
- package/dist/_virtual/index/index5.js +1 -1
- package/dist/_virtual/index/index6.js +1 -1
- package/dist/_virtual/index/index7.js +1 -1
- package/dist/_virtual/index/index8.js +1 -1
- package/dist/_virtual/index/index9.js +1 -1
- package/dist/components/accordion/accordion.d.ts +1 -1
- package/dist/components/action-bar/action-bar.d.ts +1 -1
- package/dist/components/checkbox/checkbox.d.ts +1 -1
- package/dist/components/date-picker/date-picker.d.ts +1 -1
- package/dist/components/footer/footer.d.ts +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/dynamic-select/index.esm.js +0 -1
- package/dist/components/form-control/form-builder/form-builder-element/dynamic-select/index.esm.js.map +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/dynamic-select/index.js.map +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/media.d.ts +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/phone.d.ts +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/select.d.ts +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/text.d.ts +1 -1
- package/dist/components/form-control/form-builder/form-builder-element/time.d.ts +1 -1
- package/dist/components/form-control/form-parser/form-section/index.esm.js +4 -5
- package/dist/components/form-control/form-parser/form-section/index.esm.js.map +1 -1
- package/dist/components/form-control/form-parser/form-section/index.js +22 -22
- package/dist/components/form-control/form-parser/form-section/index.js.map +1 -1
- package/dist/components/form-control/form-parser/form-switcher.d.ts +1 -1
- package/dist/components/icons/action-arrow.d.ts +3 -3
- package/dist/components/icons/add-circle.d.ts +3 -3
- package/dist/components/icons/arrow-bidirectional.d.ts +3 -3
- package/dist/components/icons/arrow-circle-down.d.ts +3 -3
- package/dist/components/icons/arrow-down-three.d.ts +3 -3
- package/dist/components/icons/arrow-down-two.d.ts +3 -3
- package/dist/components/icons/arrow-down.d.ts +3 -3
- package/dist/components/icons/arrow-up-down.d.ts +3 -3
- package/dist/components/icons/arrow-up-two.d.ts +3 -3
- package/dist/components/icons/assignments.d.ts +3 -3
- package/dist/components/icons/blank-circle.d.ts +3 -3
- package/dist/components/icons/block-filled.d.ts +3 -3
- package/dist/components/icons/calendar-add.d.ts +3 -3
- package/dist/components/icons/calendar.d.ts +3 -3
- package/dist/components/icons/checkbox-square.d.ts +3 -3
- package/dist/components/icons/circular-arrow-setting.d.ts +3 -3
- package/dist/components/icons/clock.d.ts +3 -3
- package/dist/components/icons/close.d.ts +3 -3
- package/dist/components/icons/coin-outline.d.ts +3 -3
- package/dist/components/icons/copy.d.ts +3 -3
- package/dist/components/icons/coupon.d.ts +3 -3
- package/dist/components/icons/cross-hire.d.ts +3 -3
- package/dist/components/icons/custom-styled-icon.d.ts +3 -3
- package/dist/components/icons/dashboard.d.ts +3 -3
- package/dist/components/icons/document-download.d.ts +3 -3
- package/dist/components/icons/document.d.ts +3 -3
- package/dist/components/icons/dollar-circle-filled.d.ts +3 -3
- package/dist/components/icons/dollar-circle.d.ts +3 -3
- package/dist/components/icons/edit.d.ts +3 -3
- package/dist/components/icons/email.d.ts +3 -3
- package/dist/components/icons/export.d.ts +3 -3
- package/dist/components/icons/eye-off.d.ts +3 -3
- package/dist/components/icons/eye-plus-circle.d.ts +3 -3
- package/dist/components/icons/eye.d.ts +3 -3
- package/dist/components/icons/filled-circle.d.ts +3 -3
- package/dist/components/icons/filter-remove.d.ts +3 -3
- package/dist/components/icons/filter.d.ts +3 -3
- package/dist/components/icons/folder-save.d.ts +3 -3
- package/dist/components/icons/grid.d.ts +3 -3
- package/dist/components/icons/hashtag.d.ts +3 -3
- package/dist/components/icons/image.d.ts +3 -3
- package/dist/components/icons/import.d.ts +3 -3
- package/dist/components/icons/info-circle.d.ts +3 -3
- package/dist/components/icons/info.d.ts +3 -3
- package/dist/components/icons/link-horizontal.d.ts +3 -3
- package/dist/components/icons/link.d.ts +3 -3
- package/dist/components/icons/location.d.ts +3 -3
- package/dist/components/icons/lowest-lead-time.d.ts +3 -3
- package/dist/components/icons/lowest-min-qty.d.ts +3 -3
- package/dist/components/icons/lowest-price.d.ts +3 -3
- package/dist/components/icons/more.d.ts +3 -3
- package/dist/components/icons/notification.d.ts +3 -3
- package/dist/components/icons/paper-clip.d.ts +3 -3
- package/dist/components/icons/paragraph.d.ts +3 -3
- package/dist/components/icons/payment-request.d.ts +3 -3
- package/dist/components/icons/phone.d.ts +3 -3
- package/dist/components/icons/printer.d.ts +3 -3
- package/dist/components/icons/process-calendar.d.ts +3 -3
- package/dist/components/icons/promotion.d.ts +3 -3
- package/dist/components/icons/radio-button.d.ts +3 -3
- package/dist/components/icons/receipt-filled.d.ts +3 -3
- package/dist/components/icons/receipt-outline.d.ts +3 -3
- package/dist/components/icons/receipt.d.ts +3 -3
- package/dist/components/icons/refresh-icon.d.ts +3 -3
- package/dist/components/icons/replace.d.ts +3 -3
- package/dist/components/icons/save.d.ts +3 -3
- package/dist/components/icons/search-status.d.ts +3 -3
- package/dist/components/icons/search.d.ts +3 -3
- package/dist/components/icons/settings-fallback.d.ts +3 -3
- package/dist/components/icons/sort-arrow-icon.d.ts +3 -3
- package/dist/components/icons/stacked-layer.d.ts +3 -3
- package/dist/components/icons/start-filled.d.ts +3 -3
- package/dist/components/icons/three-dot-icon.d.ts +3 -3
- package/dist/components/icons/tick-circle-filled.d.ts +3 -3
- package/dist/components/icons/tick-circle.d.ts +3 -3
- package/dist/components/icons/tick-octagon.d.ts +3 -3
- package/dist/components/icons/tick.d.ts +3 -3
- package/dist/components/icons/toggle-switch.d.ts +3 -3
- package/dist/components/icons/trash.d.ts +3 -3
- package/dist/components/icons/wave.d.ts +3 -3
- package/dist/components/icons/with-out-tick-octagon.d.ts +3 -3
- package/dist/components/icons/work-centre.d.ts +3 -3
- package/dist/components/listing/listing/index.esm.js +0 -1
- package/dist/components/listing/listing/index.esm.js.map +1 -1
- package/dist/components/listing/listing/index.js +1 -1
- package/dist/components/listing/listing/index.js.map +1 -1
- package/dist/components/location-select.d.ts +1 -1
- package/dist/components/material-editable-table/material-editable-table/index.esm.js +23 -17
- package/dist/components/material-editable-table/material-editable-table/index.esm.js.map +1 -1
- package/dist/components/material-editable-table/material-editable-table/index.js +2 -2
- package/dist/components/material-editable-table/material-editable-table/index.js.map +1 -1
- package/dist/components/material-editable-table/material-editable-table.d.ts +2 -1
- package/dist/components/material-table/material-table.d.ts +1 -1
- package/dist/components/phone-input/phone-input.d.ts +1 -1
- package/dist/components/radio/radio.d.ts +1 -1
- package/dist/components/select/select.d.ts +1 -1
- package/dist/components/switches/android-12-switch.d.ts +1 -3
- package/dist/components/text-field/text-field.d.ts +1 -1
- package/dist/components/time-picker/time-picker.d.ts +1 -1
- package/dist/components/upload-media/upload-media.d.ts +1 -1
- package/dist/hooks/apiHelper/index.esm.js.map +1 -1
- package/dist/hooks/apiHelper/index.js.map +1 -1
- package/dist/hooks/useApi/index.esm.js +0 -1
- package/dist/hooks/useApi/index.esm.js.map +1 -1
- package/dist/hooks/useApi/index.js.map +1 -1
- package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.esm.js +1 -1
- package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.js +1 -1
- package/dist/node_modules/@asseinfo/react-kanban/dist/index/index.js.map +1 -1
- package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.esm.js +1 -1
- package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.js +1 -1
- package/dist/node_modules/@mui/icons-material/utils/createSvgIcon/index.js.map +1 -1
- package/dist/node_modules/@mui/system/colorManipulator/index.esm.js +2 -2
- package/dist/node_modules/@mui/system/colorManipulator/index.js +1 -1
- package/dist/node_modules/@mui/system/colorManipulator/index.js.map +1 -1
- package/dist/node_modules/@mui/system/createStyled/index.esm.js +6 -6
- package/dist/node_modules/@mui/system/createStyled/index.js +1 -1
- package/dist/node_modules/@mui/system/useThemeWithoutDefault/index.esm.js +1 -1
- package/dist/node_modules/@mui/system/useThemeWithoutDefault/index.js +1 -1
- package/dist/src/components/accordion/accordion.d.ts +1 -1
- package/dist/src/components/action-bar/action-bar.d.ts +1 -1
- package/dist/src/components/checkbox/checkbox.d.ts +1 -1
- package/dist/src/components/date-picker/date-picker.d.ts +1 -1
- package/dist/src/components/footer/footer.d.ts +1 -1
- package/dist/src/components/form-control/form-builder/form-builder-element/media.d.ts +1 -1
- package/dist/src/components/form-control/form-builder/form-builder-element/phone.d.ts +1 -1
- package/dist/src/components/form-control/form-builder/form-builder-element/select.d.ts +1 -1
- package/dist/src/components/form-control/form-builder/form-builder-element/text.d.ts +1 -1
- package/dist/src/components/form-control/form-builder/form-builder-element/time.d.ts +1 -1
- package/dist/src/components/form-control/form-parser/form-switcher.d.ts +1 -1
- package/dist/src/components/icons/action-arrow.d.ts +3 -3
- package/dist/src/components/icons/add-circle.d.ts +3 -3
- package/dist/src/components/icons/arrow-bidirectional.d.ts +3 -3
- package/dist/src/components/icons/arrow-circle-down.d.ts +3 -3
- package/dist/src/components/icons/arrow-down-three.d.ts +3 -3
- package/dist/src/components/icons/arrow-down-two.d.ts +3 -3
- package/dist/src/components/icons/arrow-down.d.ts +3 -3
- package/dist/src/components/icons/arrow-up-down.d.ts +3 -3
- package/dist/src/components/icons/arrow-up-two.d.ts +3 -3
- package/dist/src/components/icons/assignments.d.ts +3 -3
- package/dist/src/components/icons/blank-circle.d.ts +3 -3
- package/dist/src/components/icons/block-filled.d.ts +3 -3
- package/dist/src/components/icons/calendar-add.d.ts +3 -3
- package/dist/src/components/icons/calendar.d.ts +3 -3
- package/dist/src/components/icons/checkbox-square.d.ts +3 -3
- package/dist/src/components/icons/circular-arrow-setting.d.ts +3 -3
- package/dist/src/components/icons/clock.d.ts +3 -3
- package/dist/src/components/icons/close.d.ts +3 -3
- package/dist/src/components/icons/coin-outline.d.ts +3 -3
- package/dist/src/components/icons/copy.d.ts +3 -3
- package/dist/src/components/icons/coupon.d.ts +3 -3
- package/dist/src/components/icons/cross-hire.d.ts +3 -3
- package/dist/src/components/icons/custom-styled-icon.d.ts +3 -3
- package/dist/src/components/icons/dashboard.d.ts +3 -3
- package/dist/src/components/icons/document-download.d.ts +3 -3
- package/dist/src/components/icons/document.d.ts +3 -3
- package/dist/src/components/icons/dollar-circle-filled.d.ts +3 -3
- package/dist/src/components/icons/dollar-circle.d.ts +3 -3
- package/dist/src/components/icons/edit.d.ts +3 -3
- package/dist/src/components/icons/email.d.ts +3 -3
- package/dist/src/components/icons/export.d.ts +3 -3
- package/dist/src/components/icons/eye-off.d.ts +3 -3
- package/dist/src/components/icons/eye-plus-circle.d.ts +3 -3
- package/dist/src/components/icons/eye.d.ts +3 -3
- package/dist/src/components/icons/filled-circle.d.ts +3 -3
- package/dist/src/components/icons/filter-remove.d.ts +3 -3
- package/dist/src/components/icons/filter.d.ts +3 -3
- package/dist/src/components/icons/folder-save.d.ts +3 -3
- package/dist/src/components/icons/grid.d.ts +3 -3
- package/dist/src/components/icons/hashtag.d.ts +3 -3
- package/dist/src/components/icons/image.d.ts +3 -3
- package/dist/src/components/icons/import.d.ts +3 -3
- package/dist/src/components/icons/info-circle.d.ts +3 -3
- package/dist/src/components/icons/info.d.ts +3 -3
- package/dist/src/components/icons/link-horizontal.d.ts +3 -3
- package/dist/src/components/icons/link.d.ts +3 -3
- package/dist/src/components/icons/location.d.ts +3 -3
- package/dist/src/components/icons/lowest-lead-time.d.ts +3 -3
- package/dist/src/components/icons/lowest-min-qty.d.ts +3 -3
- package/dist/src/components/icons/lowest-price.d.ts +3 -3
- package/dist/src/components/icons/more.d.ts +3 -3
- package/dist/src/components/icons/notification.d.ts +3 -3
- package/dist/src/components/icons/paper-clip.d.ts +3 -3
- package/dist/src/components/icons/paragraph.d.ts +3 -3
- package/dist/src/components/icons/payment-request.d.ts +3 -3
- package/dist/src/components/icons/phone.d.ts +3 -3
- package/dist/src/components/icons/printer.d.ts +3 -3
- package/dist/src/components/icons/process-calendar.d.ts +3 -3
- package/dist/src/components/icons/promotion.d.ts +3 -3
- package/dist/src/components/icons/radio-button.d.ts +3 -3
- package/dist/src/components/icons/receipt-filled.d.ts +3 -3
- package/dist/src/components/icons/receipt-outline.d.ts +3 -3
- package/dist/src/components/icons/receipt.d.ts +3 -3
- package/dist/src/components/icons/refresh-icon.d.ts +3 -3
- package/dist/src/components/icons/replace.d.ts +3 -3
- package/dist/src/components/icons/save.d.ts +3 -3
- package/dist/src/components/icons/search-status.d.ts +3 -3
- package/dist/src/components/icons/search.d.ts +3 -3
- package/dist/src/components/icons/settings-fallback.d.ts +3 -3
- package/dist/src/components/icons/sort-arrow-icon.d.ts +3 -3
- package/dist/src/components/icons/stacked-layer.d.ts +3 -3
- package/dist/src/components/icons/start-filled.d.ts +3 -3
- package/dist/src/components/icons/three-dot-icon.d.ts +3 -3
- package/dist/src/components/icons/tick-circle-filled.d.ts +3 -3
- package/dist/src/components/icons/tick-circle.d.ts +3 -3
- package/dist/src/components/icons/tick-octagon.d.ts +3 -3
- package/dist/src/components/icons/tick.d.ts +3 -3
- package/dist/src/components/icons/toggle-switch.d.ts +3 -3
- package/dist/src/components/icons/trash.d.ts +3 -3
- package/dist/src/components/icons/wave.d.ts +3 -3
- package/dist/src/components/icons/with-out-tick-octagon.d.ts +3 -3
- package/dist/src/components/icons/work-centre.d.ts +3 -3
- package/dist/src/components/location-select.d.ts +1 -1
- package/dist/src/components/material-editable-table/material-editable-table.d.ts +2 -1
- package/dist/src/components/material-table/material-table.d.ts +1 -1
- package/dist/src/components/phone-input/phone-input.d.ts +1 -1
- package/dist/src/components/radio/radio.d.ts +1 -1
- package/dist/src/components/select/select.d.ts +1 -1
- package/dist/src/components/switches/android-12-switch.d.ts +1 -3
- package/dist/src/components/text-field/text-field.d.ts +1 -1
- package/dist/src/components/time-picker/time-picker.d.ts +1 -1
- package/dist/src/components/upload-media/upload-media.d.ts +1 -1
- package/dist/src/utils/common-utility.d.ts +1 -1
- package/dist/style.css +75 -75
- package/dist/utils/common-utility.d.ts +1 -1
- package/package.json +1 -1
package/dist/components/form-control/form-builder/form-builder-element/dynamic-select/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../../src/components/form-control/form-builder/form-builder-element/dynamic-select.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { Controller, useFormContext, useWatch, Control } from 'react-hook-form';\nimport { dynamicSelectAdd } from './select-configuration';\nimport {\n Box,\n CircularProgress,\n Divider,\n IconButton,\n InputAdornment,\n MenuItem,\n MenuItemProps,\n OutlinedInput,\n} from '@mui/material';\nimport PropTypes from 'prop-types';\nimport { debounce } from 'lodash';\nimport { sortBy } from \"lodash\";\nimport { useTranslation } from \"react-i18next\";\nimport { Add, Close } from '@mui/icons-material';\n\nimport Select from '../../../select/select';\nimport ChipOrPlaceholder from './chip-or-placeholder';\nimport Checkbox from '../../../checkbox/checkbox';\nimport Typography from '../../../typography/typography';\nimport Chip from '../../../chip/chip';\nimport { MoreIcon } from '../../../icons';\nimport { fetchApi } from '../../../../utils/api';\nimport './element.scss';\nimport { useLanguage } from '@/hooks';\n\n// Types\ninterface IOption {\n id: string | number;\n value: string | number;\n label: string | React.ReactNode;\n disabled?: boolean;\n isGroup?: boolean;\n options?: IOption[];\n searchLabel?: string;\n}\n\n\n\ninterface IMenuItemsProps extends MenuItemProps {\n options: IOption[];\n multiple: boolean;\n placeholder: string;\n with_checkboxes: boolean;\n values: string | string[];\n field: IDynamicSearchSelectProps;\n disabledIds: (string | number)[];\n onChange: (value: string | string[]) => void;\n handleChange?: (value: string | string[]) => void;\n hasParent: boolean;\n t: (key: string) => string;\n // onFooterClick?: () => void;\n}\n\ninterface IDynamicSearchSelectProps {\n name: string;\n placeholder: string;\n label: string;\n size?: 'small' | 'medium';\n options: IOption[];\n formControl: Control<any>;\n defaultValue?: string | string[];\n fieldArrayName: string;\n id?: string;\n required?: boolean;\n is_multiselect?: boolean;\n position?: number;\n formType?: string;\n typeOfField?: string;\n disabled?: boolean;\n onChipRemove?: (value: string) => void;\n enable_footer?: boolean;\n footer_action?: string;\n onFooterClick?: () => void;\n is_loading?: boolean;\n selectedLabel?: string;\n isInternal?: boolean;\n disabledIds?: (string | number)[];\n getSelectedData?: (data: IOption | IOption[] | null, name: string) => void;\n attributes?: string[];\n handleChange?: (value: string | string[]) => void;\n hasParent?: boolean;\n sortOrder?: string;\n apiType?: string;\n handleOptions?: (value: any) => void;\n filterKey?: string;\n customeFilter?: Record<string, any>;\n refresh?: boolean;\n addType?: string;\n showCancelButton?: boolean;\n}\n\ninterface IPaginationState {\n page: number;\n hasMore: boolean;\n isLoadingMore: boolean;\n total: number;\n}\n\n// Helper function to generate menu items\nconst generateMenuItems = ({\n options,\n multiple,\n placeholder,\n with_checkboxes,\n values,\n // field,\n disabledIds,\n onChange,\n handleChange,\n hasParent,\n t,\n // onFooterClick\n}: IMenuItemsProps): React.ReactElement[] => {\n const itemDisabled = (id: string | number) => disabledIds?.includes(id);\n const items: React.ReactElement[] = [];\n\n if (!multiple) {\n items.push(\n <MenuItem disabled value='' key=\"placeholder\" sx={{ opacity: `0 !important`, height: `0 !important`, p: `0 !important`, m: `0 !important` }}>\n <Typography type='s3' color='theme.secondary.1000'>\n <em>{t(placeholder)}</em>\n </Typography>\n </MenuItem>\n );\n }\n const selectedValues = (Array.isArray(values) && values?.length > 0) ? values?.filter((value) => value) : values;\n\n const handleParentChange = (parentValue: string, childOptions: IOption[]) => {\n const childValues = childOptions.map((child) => child.value);\n const valueArray = Array.isArray(selectedValues) ? selectedValues : [selectedValues];\n\n const isParentSelected = valueArray.includes(parentValue);\n const updatedValues = isParentSelected\n ? valueArray.filter((value) => value !== parentValue && !childValues.includes(value))\n : [...new Set([...valueArray, parentValue, ...childValues])];\n\n onChange(updatedValues);\n handleChange?.(updatedValues);\n };\n\n const isAllOptionsSelected = (parentValue: string, childOptions: IOption[]) => {\n const childValues = childOptions.map((child) => child.value);\n const valueArray = Array.isArray(selectedValues) ? selectedValues : [selectedValues];\n return childValues.every((childValue) => valueArray.includes(childValue));\n };\n\n const isSomeOptionsSelected = (childOptions: IOption[]) => {\n const childValues = childOptions.map((child) => child.value);\n const valueArray = Array.isArray(selectedValues) ? selectedValues : [selectedValues];\n return childValues.some((childValue) => valueArray.includes(childValue));\n };\n\n if (Array.isArray(options) && options.length > 0) {\n options.forEach((option) => {\n items.push(\n <MenuItem\n value={option.value}\n key={option.value}\n disabled={Boolean(option.disabled) || itemDisabled(option.id || option.value)}\n className={option.isGroup ? 'select--MenuItemHeader' : ''}\n >\n <Box sx={{ display: 'flex', gap: 1 }}>\n {multiple && with_checkboxes && (\n <Checkbox\n checked={\n hasParent\n ? isAllOptionsSelected(option.value, option.options || [])\n : Boolean(Array.isArray(selectedValues) ? selectedValues.includes(option.value) : selectedValues == option.value)\n }\n indeterminate={\n hasParent && isSomeOptionsSelected(option.options || [])\n }\n onChange={() => hasParent ? handleParentChange(option.value, option.options || []) : handleChange?.(option.value)}\n />\n )}\n <Typography\n type='s3'\n color='theme.secondary.1000'\n onClick={() => handleChange?.(option.value)}\n >\n {option.label}\n </Typography>\n </Box>\n </MenuItem>\n );\n\n if (option.isGroup && Array.isArray(option.options)) {\n option.options.forEach((opt) => {\n items.push(\n <MenuItem\n value={opt.value}\n disabled={Boolean(opt.disabled) || itemDisabled(opt.id || opt.value)}\n sx={{ pl: 5 }}\n key={`${option.value}-${opt.value}`}\n >\n <Box sx={{ display: 'flex', gap: 1 }}>\n {multiple && with_checkboxes && (\n <Checkbox\n checked={Boolean(Array.isArray(values) && values.includes(opt.value))}\n />\n )}\n <Typography\n type='s3'\n color='theme.secondary.1000'\n onClick={() => handleChange?.(String(opt.value))}\n >\n {opt.label == \"Payment Entries\" ? \"Payment and Collection Entries\" : opt.label || opt.value}\n </Typography>\n </Box>\n </MenuItem>\n );\n });\n }\n });\n }\n\n // if (field.enable_footer) {\n\n // }\n\n if (!items.length || (items.length == 1 && !multiple)) {\n items.push(\n <MenuItem disabled key=\"no-data\">\n No data available\n </MenuItem>\n );\n }\n\n return items;\n};\n\n// Selected items component\nconst SelectedItems: React.FC<{\n data: (string | number)[];\n options: IOption[];\n}> = ({ data, options }) => {\n const displayTitle = data.map(\n (selectedItem) =>\n options?.find((option) => option.value == selectedItem)?.label || ''\n );\n const filteredDisplayTitle = displayTitle.filter(Boolean);\n\n return (\n <Typography\n type='s4'\n color='inherit'\n sx={{ display: 'flex', gap: 1, alignItems: 'center', mt: 0.5 }}\n >\n {filteredDisplayTitle.slice(0, 4).join(', ')}\n {data.length > 4 && (\n <Chip variant='outlined' type='normal' label={<MoreIcon />} />\n )}\n </Typography>\n );\n};\n\nconst Loading = () => (\n <Typography fontStyle='italic' color='inherit' type='s3'>Loading...</Typography>\n)\n\nconst DynamicSearchSelect: React.FC<IDynamicSearchSelectProps> = React.memo((props) => {\n console.log(\"🚀 ~ props:\", props)\n const watchedValue = useWatch({\n control: props.formControl,\n name: `${props.fieldArrayName}.${props.name}`\n });\n\n const formContext = useFormContext();\n const { setValue } = formContext || {};\n const { t } = useTranslation();\n const { isRtl } = useLanguage();\n const selectRef = useRef<HTMLDivElement>(null);\n\n // State management\n const [options, setOptions] = useState<IOption[]>([]);\n const [selectedValue, setSelectedValue] = useState<any>(null);\n const [selectedOptions, setSelectedOptions] = useState<IOption[]>([]);\n const [loading, setLoading] = useState<boolean>(false);\n const [open, setOpen] = useState<boolean>(false);\n const [isAlreadyLoaded, setIsAlreadyLoaded] = useState<boolean>(false);\n const [prevFilter, setPrevFilter] = useState<any>(null);\n const [initialLoading, setInitialLoading] = useState<boolean>(false);\n const [searchQuery, setSearchQuery] = useState<string>(\"\");\n const [searchInitiate, setSearchInitiate] = useState<boolean>(false);\n const [addConfig, setAddConfig] = useState<any>(null);\n\n // Modal states\n const [isModalOpen, setIsModalOpen] = useState<boolean>(false);\n const [isAddLoading, setIsAddLoading] = useState<boolean>(false);\n\n\n // Pagination state\n const [pagination, setPagination] = useState<IPaginationState>({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n\n // Props destructuring with defaults\n const {\n handleOptions,\n isInternal = false,\n disabledIds = [],\n getSelectedData,\n attributes = [],\n filterKey = 'id',\n customeFilter = {},\n refresh,\n handleChange,\n hasParent = false,\n sortOrder = 'id:-1',\n apiType,\n addType,\n showCancelButton = true\n } = props;\n\n const limit = 25;\n\n // Memoized values\n const isInternalOptions = useMemo(() => {\n return isInternal || !apiType;\n }, [isInternal, apiType]);\n //eslint-disable-next-line\n const cf = useMemo(() => customeFilter, [JSON.stringify(customeFilter)]);\n\n // Local search function\n const searchOptionsLocally = useCallback((searchTerm: string, value: any): IOption[] => {\n if (!searchTerm) return props.options || [];\n\n const lowercasedSearchTerm = searchTerm.toLowerCase();\n\n const filteredOptions = hasParent\n ? props.options?.reduce((acc: IOption[], opt) => {\n const searchedOptions = opt.options?.filter((item) => {\n const label = React.isValidElement(item.label) ? item.searchLabel : String(item.label);\n return label?.toLowerCase().includes(lowercasedSearchTerm);\n });\n\n if (searchedOptions?.length) {\n acc.push({ ...opt, options: searchedOptions });\n }\n\n return acc;\n }, []) || []\n : props.options?.filter((opt) => {\n const label = React.isValidElement(opt.label) ? opt.searchLabel : String(opt.label);\n return label?.toLowerCase().includes(lowercasedSearchTerm);\n }) || [];\n //eslint-disable-next-line\n return sortBySelectedValues(filteredOptions, value);\n //eslint-disable-next-line\n }, [props.options, hasParent]);\n\n // Get unique options\n const getUniqueOptions = useCallback((data: IOption[]): IOption[] => {\n const uniqueOptions = [\n ...new Map(data?.map(item => [item.value, item])).values()\n ];\n return uniqueOptions;\n }, []);\n\n // Sort by selected values\n const sortBySelectedValues = useCallback((arrayToSort: IOption[], value: any): IOption[] => {\n const selectedValues = Array.isArray(value) ? value : [value];\n const sortedValue = sortBy(arrayToSort, (item) => {\n const index = selectedValues.indexOf(item.id || item.value);\n return index == -1 ? Infinity : index;\n });\n return sortedValue;\n }, []);\n\n // Filtered options with pagination support\n const filteredOptions = useMemo(() => {\n if (isInternalOptions) {\n return searchOptionsLocally(searchQuery, watchedValue);\n }\n return sortBySelectedValues(getUniqueOptions([...options, ...selectedOptions]), watchedValue);\n //eslint-disable-next-line\n }, [options, selectedOptions, isInternalOptions, props.options, watchedValue, searchQuery, searchOptionsLocally, sortBySelectedValues, getUniqueOptions]);\n\n // API Functions\n const fetchOptions = useCallback(async (searchTerm = '', flt = cf, page = 1, append = false) => {\n if (!apiType) return [];\n\n setLoading(true);\n if (page > 1) {\n setPagination(prev => ({ ...prev, isLoadingMore: true }));\n }\n\n try {\n const { data = [], pagination = {} } = await fetchApi({\n apiKey: apiType,\n filters: {\n limit,\n skip: (page - 1) * limit,\n search: searchTerm,\n filters: flt,\n select: attributes,\n order: sortOrder\n }\n });\n\n if (data && Array.isArray(data)) {\n const newOptions = append ? [...options, ...data] : data;\n updateOptions(newOptions, append);\n handleSelectedValue(data);\n // Update pagination\n setPagination(prev => ({\n ...prev,\n page,\n hasMore: pagination?.totalCount > (page * limit),\n total: pagination?.totalCount,\n isLoadingMore: false\n }));\n }\n\n return data || [];\n } catch (error) {\n console.error('Error fetching options:', error);\n setPagination(prev => ({ ...prev, isLoadingMore: false }));\n return [];\n } finally {\n setLoading(false);\n }\n //eslint-disable-next-line\n }, [apiType, options, attributes, sortOrder, limit, cf]);\n\n // Handle scroll pagination\n const handleScroll = useCallback((event: React.UIEvent<HTMLDivElement>) => {\n const { scrollTop, scrollHeight, clientHeight } = event.currentTarget;\n const isBottom = scrollHeight - scrollTop <= clientHeight + 10;\n\n if (isBottom && pagination.hasMore && !pagination.isLoadingMore && !isInternalOptions) {\n const nextPage = pagination.page + 1;\n fetchOptions(searchQuery, cf, nextPage, true);\n }\n }, [pagination.hasMore, pagination.isLoadingMore, pagination.page, isInternalOptions, searchQuery, cf, fetchOptions]);\n\n // Update options\n const updateOptions = useCallback((newOptions: IOption[], append = false) => {\n const oldOptions = append ? options : selectedOptions;\n const uniqueOptions = getUniqueOptions([...oldOptions, ...newOptions]);\n setOptions(uniqueOptions);\n }, [options, selectedOptions, getUniqueOptions]);\n\n // Handle selected value\n const handleSelectedValue = useCallback(async (updateOptions: IOption[]) => {\n const filterValue = props.is_multiselect ? watchedValue : [watchedValue];\n const isInOptions = updateOptions?.filter((item) =>\n Array.isArray(filterValue) ? filterValue.includes(item.id || item.value) : (item[filterKey] || item.value || item.id) == filterValue\n );\n\n if (Array.isArray(isInOptions) && isInOptions.length > 0) {\n getSelectedData?.(props.is_multiselect ? isInOptions : isInOptions[0], props.name);\n return true;\n }\n return false;\n //eslint-disable-next-line\n }, [props.is_multiselect, props.name, watchedValue, filterKey, getSelectedData, filteredOptions]);\n\n // Fetch options by ID\n const fetchIdOptions = useCallback(async () => {\n if (open) return;\n if (await handleSelectedValue(filteredOptions)) return;\n\n const condition = props.is_multiselect ?\n Array.isArray(watchedValue) && watchedValue.length > 0 :\n Boolean(watchedValue);\n\n if (condition) {\n setInitialLoading(true);\n const response = await fetchOptions('', { ...cf, '&id.in': watchedValue }, 1, false);\n setInitialLoading(false);\n\n if (response.length == 0 && setValue && !isInternalOptions) {\n // setValue(`${props.fieldArrayName}.${props.name}`, props.is_multiselect ? [] : null);\n }\n }\n //eslint-disable-next-line\n }, [open, watchedValue, JSON.stringify(cf)]);\n\n // Initial fetch\n const initialFetch = useCallback(async () => {\n const condition = JSON.stringify(cf) !== JSON.stringify(prevFilter);\n\n if (condition) {\n setPrevFilter(cf);\n setOptions([]);\n setIsAlreadyLoaded(false);\n setPagination({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n }\n\n if (!isInternalOptions && !isAlreadyLoaded) {\n await fetchOptions(searchQuery, cf, 1, false);\n setIsAlreadyLoaded(true);\n }\n //eslint-disable-next-line react-hooks/exhaustive-deps\n }, [cf, isInternalOptions, isAlreadyLoaded]);\n\n // Debounced search\n const debouncedSearch = useMemo(\n () => debounce(async (searchTerm: string) => {\n if (loading) return;\n\n if (!searchTerm && !isInternalOptions && searchInitiate) {\n setPagination({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n await fetchOptions('', cf, 1, false);\n }\n if (searchTerm.length > 1 && !isInternalOptions) {\n setPagination({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n await fetchOptions(searchTerm, cf, 1, false);\n }\n }, 700),\n //eslint-disable-next-line\n [isInternalOptions, searchInitiate, cf]\n );\n\n // Reset value function\n const resetValue = useCallback((field: any) => {\n field.onChange(props.is_multiselect ? [] : null);\n if (getSelectedData) {\n getSelectedData(null, props.name);\n }\n }, [props.is_multiselect, props.name, getSelectedData]);\n\n // Handle close\n const handleClose = useCallback(() => {\n setOpen(false);\n if (searchQuery.length > 0) {\n setIsAlreadyLoaded(false);\n }\n setSearchInitiate(false);\n setSearchQuery('');\n }, [searchQuery]);\n\n const handleModalOpen = useCallback(() => {\n setIsModalOpen(true);\n }, []);\n\n\n\n // Handle modal save\n const handleModalSave = useCallback(async (payload: any) => {\n if (!addConfig || !addConfig.api) {\n console.error('Add configuration is not properly set');\n return;\n }\n\n setIsAddLoading(true);\n try {\n const result = await addConfig.api(payload);\n setIsAddLoading(false);\n setIsModalOpen(false);\n if (!isInternalOptions) {\n setPagination({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n setIsAlreadyLoaded(false);\n await fetchOptions('', cf, 1, false);\n }\n if (result && result.data) {\n const newValue = props.is_multiselect\n ? [...(watchedValue || []), result.data.id]\n : result.data.id;\n\n if (setValue) {\n setValue(`${props.fieldArrayName}.${props.name}`, newValue);\n }\n }\n } catch (error) {\n console.log(\"error\", error);\n setIsAddLoading(false);\n }\n\n\n }, [addConfig, isInternalOptions, fetchOptions, cf, props.is_multiselect, props.fieldArrayName, props.name, watchedValue, setValue]);\n\n // Effects\n useEffect(() => {\n if (handleOptions) {\n handleOptions(selectedValue);\n }\n }, [handleOptions, selectedValue]);\n\n useEffect(() => {\n if (open) {\n initialFetch();\n }\n }, [open, initialFetch]);\n\n useEffect(() => {\n fetchIdOptions();\n }, [fetchIdOptions]);\n\n useEffect(() => {\n if (refresh) {\n setPagination({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n fetchOptions('', cf, 1, false);\n }\n }, [refresh, fetchOptions, cf]);\n\n useEffect(() => {\n if (open) {\n debouncedSearch(searchQuery);\n }\n return () => debouncedSearch.cancel();\n }, [searchQuery, open, debouncedSearch]);\n\n useEffect(() => {\n if (watchedValue && !open) {\n const selectedData = options?.filter((item) =>\n props.is_multiselect ?\n Array.isArray(watchedValue) && watchedValue.includes(item.id || item.value) :\n (item.id || item.value) == watchedValue\n );\n setSelectedOptions(selectedData || []);\n }\n }, [watchedValue, options, props.is_multiselect, open]);\n\n const removeUndefined = useCallback((selectOptions: any[]) => {\n return Array.isArray(selectOptions) ? selectOptions.filter(Boolean) : [];\n }, []);\n\n useEffect(() => {\n const config = dynamicSelectAdd(addType);\n setAddConfig(config);\n }, [addType])\n\n\n return (\n <Controller\n control={props.formControl}\n name={`${props.fieldArrayName}.${props.name}`}\n render={({ field, fieldState }) => (\n <>\n {props.placeholder == 'Select Currency' && setSelectedValue(field.value)}\n <Select\n {...field}\n ref={selectRef}\n open={open}\n onOpen={() => setOpen(true)}\n onClose={handleClose}\n fullWidth\n dataPosition={props.position}\n dataName={`${props.fieldArrayName}.${props.name}`}\n placeholder={props.placeholder}\n label={props.label}\n defaultValue={props.defaultValue || (props.is_multiselect ? [] : '')}\n searchValue={searchQuery}\n required={props.formType == 'builder' ? false : props.required}\n size={props.size || 'small'}\n multiple={props.is_multiselect || false}\n disabled={props.disabled}\n sx={(props.is_multiselect && field?.value?.length) ? { \"& .MuiSelect-select\": { padding: '5.5px !important' } } : {}}\n variant='outlined'\n value={\n initialLoading\n ? (props.is_multiselect ? [] : '')\n : (field.value?.id || field.value || (props.is_multiselect ? [] : ''))\n }\n className={\n props.is_multiselect && removeUndefined(field.value)?.length\n ? 'MultiSelect filter-select'\n : ''\n }\n MenuProps={{\n PaperProps: {\n onScroll: handleScroll,\n style: { maxHeight: 300 }\n }\n }}\n\n renderValue={(selected: any) => {\n if (Array.isArray(selected)) {\n return (\n <ChipOrPlaceholder\n selectedLabel={props.selectedLabel}\n data={removeUndefined(selected)}\n placeholder={(loading || props.is_loading) ? <Loading /> : `${t('common.search')} ${props.label}`}\n onDelete={props.onChipRemove}\n disabled={props.disabled}\n chipProps={{\n sx: {\n background: '#ebf9f2',\n border: 0,\n // borderRadius: '15px',\n '& .MuiTypography-body1': {\n color: '#289b64',\n fontWeight: \"500\",\n }\n }\n }}\n />\n );\n } else {\n const selectedOption = filteredOptions.find(\n (option) => (option.value?.id || option.value) == selected\n );\n return (loading || props.is_loading) ? <Loading /> : selectedOption?.label ||\n (typeof props.label == 'string' ?\n `${t('common.search')} ${props.label}` :\n props.placeholder);\n }\n }}\n searchPlaceholder={`${t('common.search')} ${props.label}`}\n handleSearch={(text: string) => {\n setSearchQuery(text);\n setSearchInitiate(true);\n }}\n error={Boolean(fieldState.error?.message)}\n helperText={fieldState.error?.message || ''}\n onBlur={field.onBlur}\n input={\n <OutlinedInput\n label=''\n endAdornment={\n <InputAdornment position='end'>\n {(loading || props.is_loading) ? (\n <CircularProgress\n size={20}\n sx={{ mr: 3, color: \"#4AC08C\" }}\n />\n ) : (\n !props.disabled &&\n (props.is_multiselect ?\n (Array.isArray(field.value) && field.value.length > 0) :\n Boolean(field.value)) && showCancelButton && (\n <IconButton\n aria-label='clear selection'\n onClick={() => resetValue(field)}\n edge='end'\n sx={isRtl ? { ml: 2.5 } : { mr: 1.5 }}\n size='small'\n >\n <Close sx={{ fontSize: '1rem' }} />\n </IconButton>\n )\n )}\n </InputAdornment>\n }\n />\n }\n >\n {generateMenuItems({\n options: filteredOptions,\n multiple: Boolean(props.is_multiselect),\n placeholder: props.placeholder,\n values: field.value,\n with_checkboxes: true,\n field: props,\n disabledIds,\n onChange: field.onChange,\n handleChange,\n hasParent,\n t,\n // onFooterClick: () => {\n // if (props?.onFooterClick) {\n // props?.onFooterClick();\n // } else {\n // handleModalOpen();\n // }\n // }\n })}\n {props?.enable_footer &&\n <Box key=\"footer\" sx={{ position: 'sticky', bottom: 0, background: '#fff', zIndex: 1 }}>\n <Divider flexItem sx={{ mt: '0.25rem !important', mb: '0.25rem !important' }} />\n <MenuItem sx={{ gap: 1 }} onClick={\n () => {\n if (props?.onFooterClick) {\n props?.onFooterClick();\n } else {\n handleModalOpen();\n }\n }\n\n }>\n <Add fontSize='small' />\n <Typography type='s4' color='theme.secondary.1000'>\n Create New {props.label}\n </Typography>\n </MenuItem>\n </Box>}\n {pagination.isLoadingMore && (\n <MenuItem disabled>\n <Box sx={{ display: 'flex', justifyContent: 'center', width: '100%' }}>\n <CircularProgress size={20} />\n </Box>\n </MenuItem>\n )}\n </Select>\n\n {/* Modal for adding new items */}\n {addConfig && addConfig.component && (\n <>\n {React.createElement(addConfig.component, {\n isOpen: isModalOpen,\n setIsOpen: setIsModalOpen,\n isLoading: isAddLoading,\n onSave: handleModalSave,\n modalProps: {\n maxWidth: 'md',\n fullWidth: true\n },\n ...props?.modalComponentProps\n })}\n </>\n )}\n\n {props.is_multiselect && Array.isArray(field.value) && (\n <SelectedItems\n data={field.value}\n options={filteredOptions}\n />\n )}\n </>\n )}\n />\n );\n});\n\nDynamicSearchSelect.propTypes = {\n name: PropTypes.string.isRequired,\n placeholder: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n size: PropTypes.string,\n options: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n value: PropTypes.any\n })\n ).isRequired,\n formControl: PropTypes.object.isRequired,\n defaultValue: PropTypes.any,\n fieldArrayName: PropTypes.string.isRequired,\n id: PropTypes.string,\n required: PropTypes.bool,\n is_multiselect: PropTypes.bool,\n position: PropTypes.number,\n formType: PropTypes.string,\n typeOfField: PropTypes.string,\n disabled: PropTypes.bool,\n onChipRemove: PropTypes.func,\n enable_footer: PropTypes.bool,\n footer_action: PropTypes.string,\n onFooterClick: PropTypes.func,\n is_loading: PropTypes.bool,\n selectedLabel: PropTypes.string,\n isInternal: PropTypes.bool,\n disabledIds: PropTypes.array,\n getSelectedData: PropTypes.func,\n attributes: PropTypes.array,\n handleChange: PropTypes.func,\n hasParent: PropTypes.bool,\n sortOrder: PropTypes.string,\n apiType: PropTypes.string,\n handleOptions: PropTypes.func,\n filterKey: PropTypes.string,\n customeFilter: PropTypes.object,\n refresh: PropTypes.bool,\n addType: PropTypes.string,\n modalComponentProps: PropTypes.object,\n showCancelButton: PropTypes.bool\n};\n\nexport default DynamicSearchSelect;"],"names":["generateMenuItems","options","multiple","placeholder","with_checkboxes","values","disabledIds","onChange","handleChange","hasParent","t","itemDisabled","id","includes","items","push","jsx","MenuItem","disabled","value","sx","opacity","height","p","m","children","Typography","type","color","selectedValues","Array","isArray","length","filter","isAllOptionsSelected","parentValue","childOptions","childValues","map","child","valueArray","every","childValue","isSomeOptionsSelected","some","forEach","option","Boolean","className","isGroup","jsxs","Box","display","gap","Checkbox","checked","indeterminate","updatedValues","Set","handleParentChange","onClick","label","opt","pl","String","SelectedItems","data","filteredDisplayTitle","selectedItem","_a","find","alignItems","mt","slice","join","Chip","variant","MoreIcon","Loading","fontStyle","DynamicSearchSelect","React","memo","props","watchedValue","useWatch","control","formControl","name","fieldArrayName","formContext","useFormContext","setValue","useTranslation","isRtl","useLanguage","selectRef","useRef","setOptions","useState","selectedValue","setSelectedValue","selectedOptions","setSelectedOptions","loading","setLoading","open","setOpen","isAlreadyLoaded","setIsAlreadyLoaded","prevFilter","setPrevFilter","initialLoading","setInitialLoading","searchQuery","setSearchQuery","searchInitiate","setSearchInitiate","addConfig","setAddConfig","isModalOpen","setIsModalOpen","isAddLoading","setIsAddLoading","pagination","setPagination","page","hasMore","isLoadingMore","total","handleOptions","isInternal","getSelectedData","attributes","filterKey","customeFilter","refresh","sortOrder","apiType","addType","showCancelButton","isInternalOptions","useMemo","cf","JSON","stringify","searchOptionsLocally","useCallback","searchTerm","lowercasedSearchTerm","toLowerCase","filteredOptions","reduce","acc","searchedOptions","item","isValidElement","searchLabel","_b","sortBySelectedValues","getUniqueOptions","Map","arrayToSort","sortBy","index","indexOf","Infinity","fetchOptions","async","flt","append","prev","fetchApi","apiKey","filters","limit","skip","search","select","order","newOptions","updateOptions","handleSelectedValue","totalCount","error","handleScroll","event","scrollTop","scrollHeight","clientHeight","currentTarget","nextPage","uniqueOptions","filterValue","is_multiselect","isInOptions","fetchIdOptions","initialFetch","debouncedSearch","debounce","resetValue","field","handleClose","handleModalOpen","handleModalSave","payload","api","result","newValue","useEffect","cancel","selectedData","removeUndefined","selectOptions","config","dynamicSelectAdd","Controller","render","fieldState","Fragment","Select","ref","onOpen","onClose","fullWidth","dataPosition","position","dataName","defaultValue","searchValue","required","formType","size","padding","_c","MenuProps","PaperProps","onScroll","style","maxHeight","renderValue","selected","ChipOrPlaceholder","selectedLabel","is_loading","onDelete","onChipRemove","chipProps","background","border","fontWeight","selectedOption","searchPlaceholder","handleSearch","text","_d","message","helperText","_e","onBlur","input","OutlinedInput","endAdornment","InputAdornment","CircularProgress","mr","IconButton","edge","ml","Close","fontSize","enable_footer","bottom","zIndex","Divider","flexItem","mb","onFooterClick","Add","justifyContent","width","component","createElement","isOpen","setIsOpen","isLoading","onSave","modalProps","maxWidth","modalComponentProps","propTypes","PropTypes","string","isRequired","arrayOf","shape","oneOfType","node","any","object","bool","number","typeOfField","func","footer_action","array"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../src/components/form-control/form-builder/form-builder-element/dynamic-select.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { Controller, useFormContext, useWatch, Control } from 'react-hook-form';\nimport { dynamicSelectAdd } from './select-configuration';\nimport {\n Box,\n CircularProgress,\n Divider,\n IconButton,\n InputAdornment,\n MenuItem,\n MenuItemProps,\n OutlinedInput,\n} from '@mui/material';\nimport PropTypes from 'prop-types';\nimport { debounce } from 'lodash';\nimport { sortBy } from \"lodash\";\nimport { useTranslation } from \"react-i18next\";\nimport { Add, Close } from '@mui/icons-material';\n\nimport Select from '../../../select/select';\nimport ChipOrPlaceholder from './chip-or-placeholder';\nimport Checkbox from '../../../checkbox/checkbox';\nimport Typography from '../../../typography/typography';\nimport Chip from '../../../chip/chip';\nimport { MoreIcon } from '../../../icons';\nimport { fetchApi } from '../../../../utils/api';\nimport './element.scss';\nimport { useLanguage } from '@/hooks';\n\n// Types\ninterface IOption {\n id: string | number;\n value: string | number;\n label: string | React.ReactNode;\n disabled?: boolean;\n isGroup?: boolean;\n options?: IOption[];\n searchLabel?: string;\n}\n\n\n\ninterface IMenuItemsProps extends MenuItemProps {\n options: IOption[];\n multiple: boolean;\n placeholder: string;\n with_checkboxes: boolean;\n values: string | string[];\n field: IDynamicSearchSelectProps;\n disabledIds: (string | number)[];\n onChange: (value: string | string[]) => void;\n handleChange?: (value: string | string[]) => void;\n hasParent: boolean;\n t: (key: string) => string;\n // onFooterClick?: () => void;\n}\n\ninterface IDynamicSearchSelectProps {\n name: string;\n placeholder: string;\n label: string;\n size?: 'small' | 'medium';\n options: IOption[];\n formControl: Control<any>;\n defaultValue?: string | string[];\n fieldArrayName: string;\n id?: string;\n required?: boolean;\n is_multiselect?: boolean;\n position?: number;\n formType?: string;\n typeOfField?: string;\n disabled?: boolean;\n onChipRemove?: (value: string) => void;\n enable_footer?: boolean;\n footer_action?: string;\n onFooterClick?: () => void;\n is_loading?: boolean;\n selectedLabel?: string;\n isInternal?: boolean;\n disabledIds?: (string | number)[];\n getSelectedData?: (data: IOption | IOption[] | null, name: string) => void;\n attributes?: string[];\n handleChange?: (value: string | string[]) => void;\n hasParent?: boolean;\n sortOrder?: string;\n apiType?: string;\n handleOptions?: (value: any) => void;\n filterKey?: string;\n customeFilter?: Record<string, any>;\n refresh?: boolean;\n addType?: string;\n showCancelButton?: boolean;\n}\n\ninterface IPaginationState {\n page: number;\n hasMore: boolean;\n isLoadingMore: boolean;\n total: number;\n}\n\n// Helper function to generate menu items\nconst generateMenuItems = ({\n options,\n multiple,\n placeholder,\n with_checkboxes,\n values,\n // field,\n disabledIds,\n onChange,\n handleChange,\n hasParent,\n t,\n // onFooterClick\n}: IMenuItemsProps): React.ReactElement[] => {\n const itemDisabled = (id: string | number) => disabledIds?.includes(id);\n const items: React.ReactElement[] = [];\n\n if (!multiple) {\n items.push(\n <MenuItem disabled value='' key=\"placeholder\" sx={{ opacity: `0 !important`, height: `0 !important`, p: `0 !important`, m: `0 !important` }}>\n <Typography type='s3' color='theme.secondary.1000'>\n <em>{t(placeholder)}</em>\n </Typography>\n </MenuItem>\n );\n }\n const selectedValues = (Array.isArray(values) && values?.length > 0) ? values?.filter((value) => value) : values;\n\n const handleParentChange = (parentValue: string, childOptions: IOption[]) => {\n const childValues = childOptions.map((child) => child.value);\n const valueArray = Array.isArray(selectedValues) ? selectedValues : [selectedValues];\n\n const isParentSelected = valueArray.includes(parentValue);\n const updatedValues = isParentSelected\n ? valueArray.filter((value) => value !== parentValue && !childValues.includes(value))\n : [...new Set([...valueArray, parentValue, ...childValues])];\n\n onChange(updatedValues);\n handleChange?.(updatedValues);\n };\n\n const isAllOptionsSelected = (parentValue: string, childOptions: IOption[]) => {\n const childValues = childOptions.map((child) => child.value);\n const valueArray = Array.isArray(selectedValues) ? selectedValues : [selectedValues];\n return childValues.every((childValue) => valueArray.includes(childValue));\n };\n\n const isSomeOptionsSelected = (childOptions: IOption[]) => {\n const childValues = childOptions.map((child) => child.value);\n const valueArray = Array.isArray(selectedValues) ? selectedValues : [selectedValues];\n return childValues.some((childValue) => valueArray.includes(childValue));\n };\n\n if (Array.isArray(options) && options.length > 0) {\n options.forEach((option) => {\n items.push(\n <MenuItem\n value={option.value}\n key={option.value}\n disabled={Boolean(option.disabled) || itemDisabled(option.id || option.value)}\n className={option.isGroup ? 'select--MenuItemHeader' : ''}\n >\n <Box sx={{ display: 'flex', gap: 1 }}>\n {multiple && with_checkboxes && (\n <Checkbox\n checked={\n hasParent\n ? isAllOptionsSelected(option.value, option.options || [])\n : Boolean(Array.isArray(selectedValues) ? selectedValues.includes(option.value) : selectedValues == option.value)\n }\n indeterminate={\n hasParent && isSomeOptionsSelected(option.options || [])\n }\n onChange={() => hasParent ? handleParentChange(option.value, option.options || []) : handleChange?.(option.value)}\n />\n )}\n <Typography\n type='s3'\n color='theme.secondary.1000'\n onClick={() => handleChange?.(option.value)}\n >\n {option.label}\n </Typography>\n </Box>\n </MenuItem>\n );\n\n if (option.isGroup && Array.isArray(option.options)) {\n option.options.forEach((opt) => {\n items.push(\n <MenuItem\n value={opt.value}\n disabled={Boolean(opt.disabled) || itemDisabled(opt.id || opt.value)}\n sx={{ pl: 5 }}\n key={`${option.value}-${opt.value}`}\n >\n <Box sx={{ display: 'flex', gap: 1 }}>\n {multiple && with_checkboxes && (\n <Checkbox\n checked={Boolean(Array.isArray(values) && values.includes(opt.value))}\n />\n )}\n <Typography\n type='s3'\n color='theme.secondary.1000'\n onClick={() => handleChange?.(String(opt.value))}\n >\n {opt.label == \"Payment Entries\" ? \"Payment and Collection Entries\" : opt.label || opt.value}\n </Typography>\n </Box>\n </MenuItem>\n );\n });\n }\n });\n }\n\n // if (field.enable_footer) {\n\n // }\n\n if (!items.length || (items.length == 1 && !multiple)) {\n items.push(\n <MenuItem disabled key=\"no-data\">\n No data available\n </MenuItem>\n );\n }\n\n return items;\n};\n\n// Selected items component\nconst SelectedItems: React.FC<{\n data: (string | number)[];\n options: IOption[];\n}> = ({ data, options }) => {\n const displayTitle = data.map(\n (selectedItem) =>\n options?.find((option) => option.value == selectedItem)?.label || ''\n );\n const filteredDisplayTitle = displayTitle.filter(Boolean);\n\n return (\n <Typography\n type='s4'\n color='inherit'\n sx={{ display: 'flex', gap: 1, alignItems: 'center', mt: 0.5 }}\n >\n {filteredDisplayTitle.slice(0, 4).join(', ')}\n {data.length > 4 && (\n <Chip variant='outlined' type='normal' label={<MoreIcon />} />\n )}\n </Typography>\n );\n};\n\nconst Loading = () => (\n <Typography fontStyle='italic' color='inherit' type='s3'>Loading...</Typography>\n)\n\nconst DynamicSearchSelect: React.FC<IDynamicSearchSelectProps> = React.memo((props) => {\n const watchedValue = useWatch({\n control: props.formControl,\n name: `${props.fieldArrayName}.${props.name}`\n });\n\n const formContext = useFormContext();\n const { setValue } = formContext || {};\n const { t } = useTranslation();\n const { isRtl } = useLanguage();\n const selectRef = useRef<HTMLDivElement>(null);\n\n // State management\n const [options, setOptions] = useState<IOption[]>([]);\n const [selectedValue, setSelectedValue] = useState<any>(null);\n const [selectedOptions, setSelectedOptions] = useState<IOption[]>([]);\n const [loading, setLoading] = useState<boolean>(false);\n const [open, setOpen] = useState<boolean>(false);\n const [isAlreadyLoaded, setIsAlreadyLoaded] = useState<boolean>(false);\n const [prevFilter, setPrevFilter] = useState<any>(null);\n const [initialLoading, setInitialLoading] = useState<boolean>(false);\n const [searchQuery, setSearchQuery] = useState<string>(\"\");\n const [searchInitiate, setSearchInitiate] = useState<boolean>(false);\n const [addConfig, setAddConfig] = useState<any>(null);\n\n // Modal states\n const [isModalOpen, setIsModalOpen] = useState<boolean>(false);\n const [isAddLoading, setIsAddLoading] = useState<boolean>(false);\n\n\n // Pagination state\n const [pagination, setPagination] = useState<IPaginationState>({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n\n // Props destructuring with defaults\n const {\n handleOptions,\n isInternal = false,\n disabledIds = [],\n getSelectedData,\n attributes = [],\n filterKey = 'id',\n customeFilter = {},\n refresh,\n handleChange,\n hasParent = false,\n sortOrder = 'id:-1',\n apiType,\n addType,\n showCancelButton = true\n } = props;\n\n const limit = 25;\n\n // Memoized values\n const isInternalOptions = useMemo(() => {\n return isInternal || !apiType;\n }, [isInternal, apiType]);\n //eslint-disable-next-line\n const cf = useMemo(() => customeFilter, [JSON.stringify(customeFilter)]);\n\n // Local search function\n const searchOptionsLocally = useCallback((searchTerm: string, value: any): IOption[] => {\n if (!searchTerm) return props.options || [];\n\n const lowercasedSearchTerm = searchTerm.toLowerCase();\n\n const filteredOptions = hasParent\n ? props.options?.reduce((acc: IOption[], opt) => {\n const searchedOptions = opt.options?.filter((item) => {\n const label = React.isValidElement(item.label) ? item.searchLabel : String(item.label);\n return label?.toLowerCase().includes(lowercasedSearchTerm);\n });\n\n if (searchedOptions?.length) {\n acc.push({ ...opt, options: searchedOptions });\n }\n\n return acc;\n }, []) || []\n : props.options?.filter((opt) => {\n const label = React.isValidElement(opt.label) ? opt.searchLabel : String(opt.label);\n return label?.toLowerCase().includes(lowercasedSearchTerm);\n }) || [];\n //eslint-disable-next-line\n return sortBySelectedValues(filteredOptions, value);\n //eslint-disable-next-line\n }, [props.options, hasParent]);\n\n // Get unique options\n const getUniqueOptions = useCallback((data: IOption[]): IOption[] => {\n const uniqueOptions = [\n ...new Map(data?.map(item => [item.value, item])).values()\n ];\n return uniqueOptions;\n }, []);\n\n // Sort by selected values\n const sortBySelectedValues = useCallback((arrayToSort: IOption[], value: any): IOption[] => {\n const selectedValues = Array.isArray(value) ? value : [value];\n const sortedValue = sortBy(arrayToSort, (item) => {\n const index = selectedValues.indexOf(item.id || item.value);\n return index == -1 ? Infinity : index;\n });\n return sortedValue;\n }, []);\n\n // Filtered options with pagination support\n const filteredOptions = useMemo(() => {\n if (isInternalOptions) {\n return searchOptionsLocally(searchQuery, watchedValue);\n }\n return sortBySelectedValues(getUniqueOptions([...options, ...selectedOptions]), watchedValue);\n //eslint-disable-next-line\n }, [options, selectedOptions, isInternalOptions, props.options, watchedValue, searchQuery, searchOptionsLocally, sortBySelectedValues, getUniqueOptions]);\n\n // API Functions\n const fetchOptions = useCallback(async (searchTerm = '', flt = cf, page = 1, append = false) => {\n if (!apiType) return [];\n\n setLoading(true);\n if (page > 1) {\n setPagination(prev => ({ ...prev, isLoadingMore: true }));\n }\n\n try {\n const { data = [], pagination = {} } = await fetchApi({\n apiKey: apiType,\n filters: {\n limit,\n skip: (page - 1) * limit,\n search: searchTerm,\n filters: flt,\n select: attributes,\n order: sortOrder\n }\n });\n\n if (data && Array.isArray(data)) {\n const newOptions = append ? [...options, ...data] : data;\n updateOptions(newOptions, append);\n handleSelectedValue(data);\n // Update pagination\n setPagination(prev => ({\n ...prev,\n page,\n hasMore: pagination?.totalCount > (page * limit),\n total: pagination?.totalCount,\n isLoadingMore: false\n }));\n }\n\n return data || [];\n } catch (error) {\n console.error('Error fetching options:', error);\n setPagination(prev => ({ ...prev, isLoadingMore: false }));\n return [];\n } finally {\n setLoading(false);\n }\n //eslint-disable-next-line\n }, [apiType, options, attributes, sortOrder, limit, cf]);\n\n // Handle scroll pagination\n const handleScroll = useCallback((event: React.UIEvent<HTMLDivElement>) => {\n const { scrollTop, scrollHeight, clientHeight } = event.currentTarget;\n const isBottom = scrollHeight - scrollTop <= clientHeight + 10;\n\n if (isBottom && pagination.hasMore && !pagination.isLoadingMore && !isInternalOptions) {\n const nextPage = pagination.page + 1;\n fetchOptions(searchQuery, cf, nextPage, true);\n }\n }, [pagination.hasMore, pagination.isLoadingMore, pagination.page, isInternalOptions, searchQuery, cf, fetchOptions]);\n\n // Update options\n const updateOptions = useCallback((newOptions: IOption[], append = false) => {\n const oldOptions = append ? options : selectedOptions;\n const uniqueOptions = getUniqueOptions([...oldOptions, ...newOptions]);\n setOptions(uniqueOptions);\n }, [options, selectedOptions, getUniqueOptions]);\n\n // Handle selected value\n const handleSelectedValue = useCallback(async (updateOptions: IOption[]) => {\n const filterValue = props.is_multiselect ? watchedValue : [watchedValue];\n const isInOptions = updateOptions?.filter((item) =>\n Array.isArray(filterValue) ? filterValue.includes(item.id || item.value) : (item[filterKey] || item.value || item.id) == filterValue\n );\n\n if (Array.isArray(isInOptions) && isInOptions.length > 0) {\n getSelectedData?.(props.is_multiselect ? isInOptions : isInOptions[0], props.name);\n return true;\n }\n return false;\n //eslint-disable-next-line\n }, [props.is_multiselect, props.name, watchedValue, filterKey, getSelectedData, filteredOptions]);\n\n // Fetch options by ID\n const fetchIdOptions = useCallback(async () => {\n if (open) return;\n if (await handleSelectedValue(filteredOptions)) return;\n\n const condition = props.is_multiselect ?\n Array.isArray(watchedValue) && watchedValue.length > 0 :\n Boolean(watchedValue);\n\n if (condition) {\n setInitialLoading(true);\n const response = await fetchOptions('', { ...cf, '&id.in': watchedValue }, 1, false);\n setInitialLoading(false);\n\n if (response.length == 0 && setValue && !isInternalOptions) {\n // setValue(`${props.fieldArrayName}.${props.name}`, props.is_multiselect ? [] : null);\n }\n }\n //eslint-disable-next-line\n }, [open, watchedValue, JSON.stringify(cf)]);\n\n // Initial fetch\n const initialFetch = useCallback(async () => {\n const condition = JSON.stringify(cf) !== JSON.stringify(prevFilter);\n\n if (condition) {\n setPrevFilter(cf);\n setOptions([]);\n setIsAlreadyLoaded(false);\n setPagination({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n }\n\n if (!isInternalOptions && !isAlreadyLoaded) {\n await fetchOptions(searchQuery, cf, 1, false);\n setIsAlreadyLoaded(true);\n }\n //eslint-disable-next-line react-hooks/exhaustive-deps\n }, [cf, isInternalOptions, isAlreadyLoaded]);\n\n // Debounced search\n const debouncedSearch = useMemo(\n () => debounce(async (searchTerm: string) => {\n if (loading) return;\n\n if (!searchTerm && !isInternalOptions && searchInitiate) {\n setPagination({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n await fetchOptions('', cf, 1, false);\n }\n if (searchTerm.length > 1 && !isInternalOptions) {\n setPagination({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n await fetchOptions(searchTerm, cf, 1, false);\n }\n }, 700),\n //eslint-disable-next-line\n [isInternalOptions, searchInitiate, cf]\n );\n\n // Reset value function\n const resetValue = useCallback((field: any) => {\n field.onChange(props.is_multiselect ? [] : null);\n if (getSelectedData) {\n getSelectedData(null, props.name);\n }\n }, [props.is_multiselect, props.name, getSelectedData]);\n\n // Handle close\n const handleClose = useCallback(() => {\n setOpen(false);\n if (searchQuery.length > 0) {\n setIsAlreadyLoaded(false);\n }\n setSearchInitiate(false);\n setSearchQuery('');\n }, [searchQuery]);\n\n const handleModalOpen = useCallback(() => {\n setIsModalOpen(true);\n }, []);\n\n\n\n // Handle modal save\n const handleModalSave = useCallback(async (payload: any) => {\n if (!addConfig || !addConfig.api) {\n console.error('Add configuration is not properly set');\n return;\n }\n\n setIsAddLoading(true);\n try {\n const result = await addConfig.api(payload);\n setIsAddLoading(false);\n setIsModalOpen(false);\n if (!isInternalOptions) {\n setPagination({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n setIsAlreadyLoaded(false);\n await fetchOptions('', cf, 1, false);\n }\n if (result && result.data) {\n const newValue = props.is_multiselect\n ? [...(watchedValue || []), result.data.id]\n : result.data.id;\n\n if (setValue) {\n setValue(`${props.fieldArrayName}.${props.name}`, newValue);\n }\n }\n } catch (error) {\n console.log(\"error\", error);\n setIsAddLoading(false);\n }\n\n\n }, [addConfig, isInternalOptions, fetchOptions, cf, props.is_multiselect, props.fieldArrayName, props.name, watchedValue, setValue]);\n\n // Effects\n useEffect(() => {\n if (handleOptions) {\n handleOptions(selectedValue);\n }\n }, [handleOptions, selectedValue]);\n\n useEffect(() => {\n if (open) {\n initialFetch();\n }\n }, [open, initialFetch]);\n\n useEffect(() => {\n fetchIdOptions();\n }, [fetchIdOptions]);\n\n useEffect(() => {\n if (refresh) {\n setPagination({\n page: 1,\n hasMore: true,\n isLoadingMore: false,\n total: 0\n });\n fetchOptions('', cf, 1, false);\n }\n }, [refresh, fetchOptions, cf]);\n\n useEffect(() => {\n if (open) {\n debouncedSearch(searchQuery);\n }\n return () => debouncedSearch.cancel();\n }, [searchQuery, open, debouncedSearch]);\n\n useEffect(() => {\n if (watchedValue && !open) {\n const selectedData = options?.filter((item) =>\n props.is_multiselect ?\n Array.isArray(watchedValue) && watchedValue.includes(item.id || item.value) :\n (item.id || item.value) == watchedValue\n );\n setSelectedOptions(selectedData || []);\n }\n }, [watchedValue, options, props.is_multiselect, open]);\n\n const removeUndefined = useCallback((selectOptions: any[]) => {\n return Array.isArray(selectOptions) ? selectOptions.filter(Boolean) : [];\n }, []);\n\n useEffect(() => {\n const config = dynamicSelectAdd(addType);\n setAddConfig(config);\n }, [addType])\n\n\n return (\n <Controller\n control={props.formControl}\n name={`${props.fieldArrayName}.${props.name}`}\n render={({ field, fieldState }) => (\n <>\n {props.placeholder == 'Select Currency' && setSelectedValue(field.value)}\n <Select\n {...field}\n ref={selectRef}\n open={open}\n onOpen={() => setOpen(true)}\n onClose={handleClose}\n fullWidth\n dataPosition={props.position}\n dataName={`${props.fieldArrayName}.${props.name}`}\n placeholder={props.placeholder}\n label={props.label}\n defaultValue={props.defaultValue || (props.is_multiselect ? [] : '')}\n searchValue={searchQuery}\n required={props.formType == 'builder' ? false : props.required}\n size={props.size || 'small'}\n multiple={props.is_multiselect || false}\n disabled={props.disabled}\n sx={(props.is_multiselect && field?.value?.length) ? { \"& .MuiSelect-select\": { padding: '5.5px !important' } } : {}}\n variant='outlined'\n value={\n initialLoading\n ? (props.is_multiselect ? [] : '')\n : (field.value?.id || field.value || (props.is_multiselect ? [] : ''))\n }\n className={\n props.is_multiselect && removeUndefined(field.value)?.length\n ? 'MultiSelect filter-select'\n : ''\n }\n MenuProps={{\n PaperProps: {\n onScroll: handleScroll,\n style: { maxHeight: 300 }\n }\n }}\n\n renderValue={(selected: any) => {\n if (Array.isArray(selected)) {\n return (\n <ChipOrPlaceholder\n selectedLabel={props.selectedLabel}\n data={removeUndefined(selected)}\n placeholder={(loading || props.is_loading) ? <Loading /> : `${t('common.search')} ${props.label}`}\n onDelete={props.onChipRemove}\n disabled={props.disabled}\n chipProps={{\n sx: {\n background: '#ebf9f2',\n border: 0,\n // borderRadius: '15px',\n '& .MuiTypography-body1': {\n color: '#289b64',\n fontWeight: \"500\",\n }\n }\n }}\n />\n );\n } else {\n const selectedOption = filteredOptions.find(\n (option) => (option.value?.id || option.value) == selected\n );\n return (loading || props.is_loading) ? <Loading /> : selectedOption?.label ||\n (typeof props.label == 'string' ?\n `${t('common.search')} ${props.label}` :\n props.placeholder);\n }\n }}\n searchPlaceholder={`${t('common.search')} ${props.label}`}\n handleSearch={(text: string) => {\n setSearchQuery(text);\n setSearchInitiate(true);\n }}\n error={Boolean(fieldState.error?.message)}\n helperText={fieldState.error?.message || ''}\n onBlur={field.onBlur}\n input={\n <OutlinedInput\n label=''\n endAdornment={\n <InputAdornment position='end'>\n {(loading || props.is_loading) ? (\n <CircularProgress\n size={20}\n sx={{ mr: 3, color: \"#4AC08C\" }}\n />\n ) : (\n !props.disabled &&\n (props.is_multiselect ?\n (Array.isArray(field.value) && field.value.length > 0) :\n Boolean(field.value)) && showCancelButton && (\n <IconButton\n aria-label='clear selection'\n onClick={() => resetValue(field)}\n edge='end'\n sx={isRtl ? { ml: 2.5 } : { mr: 1.5 }}\n size='small'\n >\n <Close sx={{ fontSize: '1rem' }} />\n </IconButton>\n )\n )}\n </InputAdornment>\n }\n />\n }\n >\n {generateMenuItems({\n options: filteredOptions,\n multiple: Boolean(props.is_multiselect),\n placeholder: props.placeholder,\n values: field.value,\n with_checkboxes: true,\n field: props,\n disabledIds,\n onChange: field.onChange,\n handleChange,\n hasParent,\n t,\n // onFooterClick: () => {\n // if (props?.onFooterClick) {\n // props?.onFooterClick();\n // } else {\n // handleModalOpen();\n // }\n // }\n })}\n {props?.enable_footer &&\n <Box key=\"footer\" sx={{ position: 'sticky', bottom: 0, background: '#fff', zIndex: 1 }}>\n <Divider flexItem sx={{ mt: '0.25rem !important', mb: '0.25rem !important' }} />\n <MenuItem sx={{ gap: 1 }} onClick={\n () => {\n if (props?.onFooterClick) {\n props?.onFooterClick();\n } else {\n handleModalOpen();\n }\n }\n\n }>\n <Add fontSize='small' />\n <Typography type='s4' color='theme.secondary.1000'>\n Create New {props.label}\n </Typography>\n </MenuItem>\n </Box>}\n {pagination.isLoadingMore && (\n <MenuItem disabled>\n <Box sx={{ display: 'flex', justifyContent: 'center', width: '100%' }}>\n <CircularProgress size={20} />\n </Box>\n </MenuItem>\n )}\n </Select>\n\n {/* Modal for adding new items */}\n {addConfig && addConfig.component && (\n <>\n {React.createElement(addConfig.component, {\n isOpen: isModalOpen,\n setIsOpen: setIsModalOpen,\n isLoading: isAddLoading,\n onSave: handleModalSave,\n modalProps: {\n maxWidth: 'md',\n fullWidth: true\n },\n ...props?.modalComponentProps\n })}\n </>\n )}\n\n {props.is_multiselect && Array.isArray(field.value) && (\n <SelectedItems\n data={field.value}\n options={filteredOptions}\n />\n )}\n </>\n )}\n />\n );\n});\n\nDynamicSearchSelect.propTypes = {\n name: PropTypes.string.isRequired,\n placeholder: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n size: PropTypes.string,\n options: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n value: PropTypes.any\n })\n ).isRequired,\n formControl: PropTypes.object.isRequired,\n defaultValue: PropTypes.any,\n fieldArrayName: PropTypes.string.isRequired,\n id: PropTypes.string,\n required: PropTypes.bool,\n is_multiselect: PropTypes.bool,\n position: PropTypes.number,\n formType: PropTypes.string,\n typeOfField: PropTypes.string,\n disabled: PropTypes.bool,\n onChipRemove: PropTypes.func,\n enable_footer: PropTypes.bool,\n footer_action: PropTypes.string,\n onFooterClick: PropTypes.func,\n is_loading: PropTypes.bool,\n selectedLabel: PropTypes.string,\n isInternal: PropTypes.bool,\n disabledIds: PropTypes.array,\n getSelectedData: PropTypes.func,\n attributes: PropTypes.array,\n handleChange: PropTypes.func,\n hasParent: PropTypes.bool,\n sortOrder: PropTypes.string,\n apiType: PropTypes.string,\n handleOptions: PropTypes.func,\n filterKey: PropTypes.string,\n customeFilter: PropTypes.object,\n refresh: PropTypes.bool,\n addType: PropTypes.string,\n modalComponentProps: PropTypes.object,\n showCancelButton: PropTypes.bool\n};\n\nexport default DynamicSearchSelect;"],"names":["generateMenuItems","options","multiple","placeholder","with_checkboxes","values","disabledIds","onChange","handleChange","hasParent","t","itemDisabled","id","includes","items","push","jsx","MenuItem","disabled","value","sx","opacity","height","p","m","children","Typography","type","color","selectedValues","Array","isArray","length","filter","isAllOptionsSelected","parentValue","childOptions","childValues","map","child","valueArray","every","childValue","isSomeOptionsSelected","some","forEach","option","Boolean","className","isGroup","jsxs","Box","display","gap","Checkbox","checked","indeterminate","updatedValues","Set","handleParentChange","onClick","label","opt","pl","String","SelectedItems","data","filteredDisplayTitle","selectedItem","_a","find","alignItems","mt","slice","join","Chip","variant","MoreIcon","Loading","fontStyle","DynamicSearchSelect","React","memo","props","watchedValue","useWatch","control","formControl","name","fieldArrayName","formContext","useFormContext","setValue","useTranslation","isRtl","useLanguage","selectRef","useRef","setOptions","useState","selectedValue","setSelectedValue","selectedOptions","setSelectedOptions","loading","setLoading","open","setOpen","isAlreadyLoaded","setIsAlreadyLoaded","prevFilter","setPrevFilter","initialLoading","setInitialLoading","searchQuery","setSearchQuery","searchInitiate","setSearchInitiate","addConfig","setAddConfig","isModalOpen","setIsModalOpen","isAddLoading","setIsAddLoading","pagination","setPagination","page","hasMore","isLoadingMore","total","handleOptions","isInternal","getSelectedData","attributes","filterKey","customeFilter","refresh","sortOrder","apiType","addType","showCancelButton","isInternalOptions","useMemo","cf","JSON","stringify","searchOptionsLocally","useCallback","searchTerm","lowercasedSearchTerm","toLowerCase","filteredOptions","reduce","acc","searchedOptions","item","isValidElement","searchLabel","_b","sortBySelectedValues","getUniqueOptions","Map","arrayToSort","sortBy","index","indexOf","Infinity","fetchOptions","async","flt","append","prev","fetchApi","apiKey","filters","limit","skip","search","select","order","newOptions","updateOptions","handleSelectedValue","totalCount","error","handleScroll","event","scrollTop","scrollHeight","clientHeight","currentTarget","nextPage","uniqueOptions","filterValue","is_multiselect","isInOptions","fetchIdOptions","initialFetch","debouncedSearch","debounce","resetValue","field","handleClose","handleModalOpen","handleModalSave","payload","api","result","newValue","useEffect","cancel","selectedData","removeUndefined","selectOptions","config","dynamicSelectAdd","Controller","render","fieldState","Fragment","Select","ref","onOpen","onClose","fullWidth","dataPosition","position","dataName","defaultValue","searchValue","required","formType","size","padding","_c","MenuProps","PaperProps","onScroll","style","maxHeight","renderValue","selected","ChipOrPlaceholder","selectedLabel","is_loading","onDelete","onChipRemove","chipProps","background","border","fontWeight","selectedOption","searchPlaceholder","handleSearch","text","_d","message","helperText","_e","onBlur","input","OutlinedInput","endAdornment","InputAdornment","CircularProgress","mr","IconButton","edge","ml","Close","fontSize","enable_footer","bottom","zIndex","Divider","flexItem","mb","onFooterClick","Add","justifyContent","width","component","createElement","isOpen","setIsOpen","isLoading","onSave","modalProps","maxWidth","modalComponentProps","propTypes","PropTypes","string","isRequired","arrayOf","shape","oneOfType","node","any","object","bool","number","typeOfField","func","footer_action","array"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
2
|
|
|
3
|
-
declare const DynamicMedia: React.
|
|
3
|
+
declare const DynamicMedia: React.MemoExoticComponent<(props: any) => import("react/jsx-runtime").JSX.Element>;
|
|
4
4
|
export { DynamicMedia };
|
|
5
5
|
export default DynamicMedia;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
2
|
|
|
3
|
-
declare const DynamicSelect: React.
|
|
3
|
+
declare const DynamicSelect: React.MemoExoticComponent<(props: any) => import("react/jsx-runtime").JSX.Element>;
|
|
4
4
|
export { DynamicSelect };
|
|
5
5
|
export default DynamicSelect;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
2
|
|
|
3
|
-
declare const DynamicInput: React.
|
|
3
|
+
declare const DynamicInput: React.MemoExoticComponent<(props: any) => import("react/jsx-runtime").JSX.Element>;
|
|
4
4
|
export { DynamicInput };
|
|
5
5
|
export default DynamicInput;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
2
|
|
|
3
|
-
declare const DynamicTime: React.
|
|
3
|
+
declare const DynamicTime: React.MemoExoticComponent<(props: any) => import("react/jsx-runtime").JSX.Element>;
|
|
4
4
|
export { DynamicTime };
|
|
5
5
|
export default DynamicTime;
|
|
@@ -71,7 +71,7 @@ const MemoizedField = memo(({
|
|
|
71
71
|
/* @__PURE__ */ jsx("img", { src: props.images.relation, alt: "relation" })
|
|
72
72
|
] }) : props.t(field.label), [field.field_type, field.label, props.t, props.images.relation]);
|
|
73
73
|
const renderField = () => {
|
|
74
|
-
var _a, _b, _c, _d, _e, _f, _g
|
|
74
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
75
75
|
switch (field.field_type) {
|
|
76
76
|
case "text":
|
|
77
77
|
case "email":
|
|
@@ -123,8 +123,7 @@ const MemoizedField = memo(({
|
|
|
123
123
|
handleOptions: props.setCurrencyOptions,
|
|
124
124
|
getSelectedData: props.getSelectedData,
|
|
125
125
|
refresh: props.refreshOptions,
|
|
126
|
-
sortOrder: (_e = field.field_properties) == null ? void 0 : _e.sortOrder
|
|
127
|
-
showCancelButton: (_f = field.field_properties) == null ? void 0 : _f.showCancelButton
|
|
126
|
+
sortOrder: (_e = field.field_properties) == null ? void 0 : _e.sortOrder
|
|
128
127
|
}
|
|
129
128
|
);
|
|
130
129
|
case "file":
|
|
@@ -212,8 +211,8 @@ const MemoizedField = memo(({
|
|
|
212
211
|
{
|
|
213
212
|
...commonProps,
|
|
214
213
|
key: commonProps.key,
|
|
215
|
-
maxChips: (
|
|
216
|
-
allowDuplicates: (
|
|
214
|
+
maxChips: (_f = field.field_properties) == null ? void 0 : _f.maxChips,
|
|
215
|
+
allowDuplicates: (_g = field.field_properties) == null ? void 0 : _g.allowDuplicates,
|
|
217
216
|
validation: field.validation,
|
|
218
217
|
endIcon,
|
|
219
218
|
onChipAdd: (chip) => console.log("Chip added:", chip),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../../../../../src/components/form-control/form-parser/form-section.tsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { memo, useMemo, useCallback } from 'react';\nimport { Grid, Divider, FormControlLabel, Radio } from '@mui/material';\nimport DynamicInput from '../form-builder/form-builder-element/text';\nimport DynamicDate from '../form-builder/form-builder-element/date';\nimport DynamicTime from '../form-builder/form-builder-element/time';\nimport DynamicPhone from '../form-builder/form-builder-element/phone';\nimport DynamicSearchSelect from '../form-builder/form-builder-element/dynamic-select';\nimport DynamicMedia from '../form-builder/form-builder-element/media';\nimport DynamicInfo from '../form-builder/form-builder-element/info';\nimport DynamicToggleButton from '../form-builder/form-builder-element/toggle-button';\nimport DynamicCheckBox from '../form-builder/form-builder-element/checkbox';\nimport DynamicTable from '../form-builder/form-builder-element/table';\nimport DynamicRadioButton from '../form-builder/form-builder-element/radio-button';\nimport DynamicTagsInput from '../form-builder/form-builder-element/dynamic-tags-input';\nimport DynamicCurrency from '../form-builder/form-builder-element/dynamic-currency-input';\nimport DynamicInputSelect from '../form-builder/form-builder-element/dynamic-input-select';\nimport ChipGenerator from '../../chip-generator/chip-generator';\nimport { LocationSearchSelect } from '../../location-select';\nimport FormSwitcher from './form-switcher';\nimport Typography from '../../typography/typography';\nimport Accordion from '../../accordion/accordion';\n\n// Types for better type safety\ninterface Field {\n name?: string;\n label: string;\n field_type: string;\n is_fullwidth?: boolean;\n custom_width?: number;\n is_hidden?: boolean;\n is_required?: boolean;\n disabled?: boolean;\n placeholder?: string;\n value?: any;\n default_value?: any;\n title?: string;\n title_position?: string;\n table_columns?: any[];\n table_rows?: any[];\n component?: React.ReactNode;\n field_properties?: {\n apiType?: string;\n customeFilter?: any;\n attributes?: any;\n disabledIds?: any[];\n sortOrder?: string;\n maxChips?: number;\n allowDuplicates?: boolean;\n };\n validation?: any;\n filterField?: string;\n}\n\ninterface Section {\n label?: string;\n is_accordion?: boolean;\n disabled?: boolean;\n form_switcher_label?: string;\n}\n\ninterface FormSectionProps {\n section: Section;\n index: number;\n members?: Field[];\n switchForms?: any[];\n isFormSwitcher: boolean;\n control: any;\n fieldArrayName: string;\n formSwitcherName: string;\n displayAvtar?: boolean;\n isButton?: boolean;\n currencyOption?: any;\n values: any;\n onBlur?: (e: any, fieldName?: string) => void;\n setValue: (name: string, value: any) => void;\n onSelectFooterClick?: (field: Field) => void;\n getSelectedData?: (row: any, key: any) => void;\n setCurrencyOptions: (options: any) => void;\n refreshOptions: any;\n handleFieldCleanUp: (forms: any[]) => void;\n handleSetCountryCodeField: (country: any, field: Field, fieldArrayName: string, values: any) => void;\n handleTableAddClick: (field: Field) => void;\n onTableCellChange?: (data: any) => void;\n // setDetailsData: (data: any) => void;\n t: (key: string) => string;\n images: any;\n}\n\n// Memoized field component to prevent unnecessary re-renders\nconst MemoizedField = memo(({\n field,\n fieldName,\n sectionLabel,\n index,\n ...props\n}: {\n field: Field;\n fieldName: string;\n sectionLabel?: string;\n index: number;\n [key: string]: any;\n}) => {\n const gridSize = useMemo(() =>\n field.is_fullwidth ? 12 : (field.custom_width ?? 6),\n [field.is_fullwidth, field.custom_width]\n );\n\n const fieldKey = useMemo(() =>\n `${sectionLabel}-${fieldName}-${index}`,\n [sectionLabel, fieldName, index]\n );\n\n const commonProps = useMemo(() => ({\n ...field,\n key: fieldKey,\n name: fieldName,\n position: index,\n formControl: props.control,\n fieldArrayName: props.fieldArrayName,\n required: field.is_required,\n label: props.t(field.label),\n placeholder: props.t(field.placeholder),\n defaultValue: field.value || field.default_value,\n disabled: field.disabled\n }), [field, fieldName, index, fieldKey, props.control, props.fieldArrayName, props.t]);\n\n const handleBlur = useCallback((e: any) => {\n if (props.onBlur && typeof props.onBlur === 'function') {\n props.onBlur(e, fieldName);\n }\n }, [props.onBlur, fieldName]);\n\n const endIcon = useMemo(() => {\n const iconMap: Record<string, string> = {\n email: props.images.sms,\n url: props.images.url,\n currency: props.images.dollar,\n geoLocation: props.images.location\n };\n\n const iconSrc = iconMap[field.field_type];\n return iconSrc ? <img src={iconSrc} alt={field.field_type} /> : null;\n }, [field.field_type, props.images]);\n\n const relationLabel = useMemo(() => (\n field.field_type === \"relation\" ? (\n <span className=\"formSection--Relation\">\n {props.t(field.label)}\n <img src={props.images.relation} alt=\"relation\" />\n </span>\n ) : props.t(field.label)\n ), [field.field_type, field.label, props.t, props.images.relation]);\n\n // Render field based on type\n const renderField = () => {\n switch (field.field_type) {\n case \"text\":\n case \"email\":\n case \"url\":\n case \"currency\":\n case \"number\":\n case \"geoLocation\":\n case \"relation\":\n return (\n <DynamicInput\n {...commonProps}\n key={commonProps.key}\n label={relationLabel}\n onBlur={handleBlur}\n type={field.field_type}\n endIcon={endIcon}\n disabled={field.disabled || field.field_type === \"relation\"}\n />\n );\n\n case \"date\":\n return <DynamicDate {...commonProps} key={commonProps.key} />;\n\n case \"time\":\n return <DynamicTime {...commonProps} key={commonProps.key} />;\n\n case \"phone\":\n return (\n <DynamicPhone\n {...commonProps}\n key={commonProps.key}\n setCountryCodeField={(country: any) =>\n props.handleSetCountryCodeField(country, field, props.fieldArrayName, props.values)\n }\n />\n );\n\n case \"select\":\n return (\n <DynamicSearchSelect\n {...commonProps}\n key={commonProps.key}\n apiType={field.field_properties?.apiType}\n customeFilter={field.field_properties?.customeFilter}\n attributes={field.field_properties?.attributes}\n disabledIds={field.field_properties?.disabledIds}\n onChipRemove={() => props.setValue(`${props.fieldArrayName}.${fieldName}`, [])}\n onFooterClick={() => props.onSelectFooterClick?.(field)}\n handleOptions={props.setCurrencyOptions}\n getSelectedData={props.getSelectedData}\n refresh={props.refreshOptions}\n sortOrder={field.field_properties?.sortOrder}\n showCancelButton={field.field_properties?.showCancelButton}\n />\n );\n\n case \"file\":\n case \"image\":\n return <DynamicMedia {...commonProps} key={commonProps.key} />;\n\n case \"info\":\n return <DynamicInfo {...commonProps} key={commonProps.key} />;\n\n case \"toggleButton\":\n return (\n <DynamicToggleButton\n {...commonProps}\n key={commonProps.key}\n titlePosition={field.title_position}\n title={props.t(field.title)}\n />\n );\n\n case \"checkbox\":\n return (\n <DynamicCheckBox\n {...commonProps}\n key={commonProps.key}\n titlePosition={field.title_position}\n title={props.t(field.title)}\n />\n );\n\n case \"table\":\n return (\n <DynamicTable\n {...commonProps}\n key={commonProps.key}\n columns={field.table_columns}\n rows={field.table_rows}\n onAddClick={() => props.handleTableAddClick(field)}\n disableTableAddButton={Boolean(field.disableTableAddButton)}\n is_button={props.isButton}\n onTableCellChange={props.onTableCellChange}\n />\n );\n\n case \"radioButton\":\n return (\n <DynamicRadioButton\n {...commonProps}\n key={commonProps.key}\n titlePosition={field.title_position}\n title={props.t(field.title)}\n />\n );\n\n case \"customComponent\":\n return field.component;\n\n case \"tagsInput\":\n return (\n <DynamicTagsInput\n {...commonProps}\n key={commonProps.key}\n label={relationLabel}\n type={field.field_type}\n endIcon={endIcon}\n />\n );\n\n case \"currency_with_amount\":\n return (\n <DynamicCurrency\n {...commonProps}\n key={commonProps.key}\n currencyType={props.currencyOption}\n />\n );\n\n case \"select_with_input\":\n return (\n <DynamicInputSelect\n {...commonProps}\n currencyType={props.currencyOption}\n />\n );\n\n case \"chipInput\":\n return (\n <ChipGenerator\n {...commonProps}\n key={commonProps.key}\n maxChips={field.field_properties?.maxChips}\n allowDuplicates={field.field_properties?.allowDuplicates}\n validation={field.validation}\n endIcon={endIcon}\n onChipAdd={(chip: any) => console.log('Chip added:', chip)}\n onChipRemove={(chip: any, index: number) => console.log('Chip removed:', chip, 'at index:', index)}\n />\n );\n\n case \"location_select\":\n return (\n <LocationSearchSelect\n fieldArrayName={props.fieldArrayName}\n filterField={field.filterField}\n getSelectedData={(row: any[]) => props.getSelectedData(row)}\n locationFieldName={field.name}\n addType=\"location\"\n enable_footer={true}\n />\n );\n\n default:\n return null;\n }\n };\n\n // For table fields, use full width\n if (field.field_type === \"table\" || field.field_type === \"customComponent\") {\n return (\n <Grid item xs={12}>\n {renderField()}\n </Grid>\n );\n }\n\n return (\n <Grid item xs={gridSize}>\n {renderField()}\n </Grid>\n );\n});\n\nMemoizedField.displayName = 'MemoizedField';\n\n// Memoized FormSwitcher component\nconst MemoizedFormSwitcher = memo(({\n section,\n switchForms,\n isFormSwitcher,\n control,\n fieldArrayName,\n formSwitcherName,\n handleFieldCleanUp,\n t\n}: {\n section: Section;\n switchForms?: any[];\n isFormSwitcher: boolean;\n control: any;\n fieldArrayName: string;\n formSwitcherName: string;\n handleFieldCleanUp: (forms: any[]) => void;\n t: (key: string) => string;\n}) => {\n const resetForm = useCallback(() => {\n handleFieldCleanUp(switchForms || []);\n }, [handleFieldCleanUp, switchForms]);\n\n if (!isFormSwitcher || !switchForms?.length) return null;\n\n return (\n <FormSwitcher\n {...section}\n isFormSwitcher={isFormSwitcher}\n control={control}\n fieldArrayName={fieldArrayName}\n formSwitcherName={formSwitcherName}\n label={t(section.form_switcher_label || '')}\n resetForm={resetForm}\n >\n {switchForms.map((forms: any) => (\n <FormControlLabel\n key={forms.id}\n value={forms.value || forms.name}\n control={<Radio />}\n slotProps={{ typography: { variant: \"body2\" } }}\n label={t(forms.name)}\n disabled={Boolean(section.disabled)}\n />\n ))}\n </FormSwitcher>\n );\n});\n\nMemoizedFormSwitcher.displayName = 'MemoizedFormSwitcher';\n\n// Main component\nconst FormSection = memo<FormSectionProps>(({\n section,\n index,\n members,\n switchForms,\n isFormSwitcher,\n control,\n fieldArrayName,\n formSwitcherName,\n displayAvtar,\n isButton,\n currencyOption,\n values,\n onBlur,\n setValue,\n onSelectFooterClick,\n getSelectedData,\n setCurrencyOptions,\n refreshOptions,\n handleFieldCleanUp,\n handleSetCountryCodeField,\n handleTableAddClick,\n onTableCellChange,\n setDetailsData,\n t,\n images\n}) => {\n // Memoize visible members to prevent recalculation\n const visibleMembers = useMemo(() =>\n members?.filter(f => !f.is_hidden) || [],\n [members]\n );\n\n // Memoize field names to prevent recalculation\n const fieldsWithNames = useMemo(() =>\n visibleMembers.map(field => ({\n ...field,\n fieldName: field.name || field.label.toLowerCase().split(\" \").join(\"_\")\n })),\n [visibleMembers]\n );\n\n // Memoize section header\n const sectionHeader = useMemo(() => {\n if (!section.label) return null;\n\n return (\n <div style={{ minHeight: \"16px\" }}>\n {index !== 0 && <Divider className='formParser--Section--SectionDivider' />}\n <Typography\n type=\"s3\"\n weight=\"medium\"\n mb={2}\n mt={4}\n color=\"theme.secondary.1000\"\n className='formParser--Section--SectionTitle'\n >\n {t(section.label)}\n </Typography>\n </div>\n );\n }, [section.label, index, t]);\n\n // Avatar component\n const avatarDisplay = useMemo(() =>\n displayAvtar ? <div className='avtarDisplay'>ERP</div> : null,\n [displayAvtar]\n );\n\n // Common props for field rendering\n const fieldProps = useMemo(() => ({\n control,\n fieldArrayName,\n isButton,\n currencyOption,\n values,\n onBlur,\n setValue,\n onSelectFooterClick,\n getSelectedData,\n setCurrencyOptions,\n refreshOptions,\n handleSetCountryCodeField,\n handleTableAddClick,\n onTableCellChange,\n setDetailsData,\n t,\n images\n }), [\n control, fieldArrayName, isButton, currencyOption, values,\n onBlur, setValue, onSelectFooterClick, getSelectedData,\n setCurrencyOptions, refreshOptions, handleSetCountryCodeField,\n handleTableAddClick, onTableCellChange, setDetailsData, t, images\n ]);\n\n if (section.is_accordion) {\n return (\n <section key={index} className='formParser--Section'>\n <div style={{ marginTop: '20px' }}>\n <Accordion title={t(section.label || '')}>\n <div className=\"formParser--Grid formParser--Accordion\">\n <MemoizedFormSwitcher\n section={section}\n switchForms={switchForms}\n isFormSwitcher={isFormSwitcher}\n control={control}\n fieldArrayName={fieldArrayName}\n formSwitcherName={formSwitcherName}\n handleFieldCleanUp={handleFieldCleanUp}\n t={t}\n />\n {fieldsWithNames.map((field, fieldIndex) => (\n <MemoizedField\n key={`${section.label}-${field.fieldName}-${fieldIndex}`}\n field={field}\n fieldName={field.fieldName}\n sectionLabel={section.label}\n index={fieldIndex}\n {...fieldProps}\n />\n ))}\n </div>\n </Accordion>\n </div>\n </section>\n );\n }\n\n return (\n <section key={index} className='formParser--Section'>\n {sectionHeader}\n\n <MemoizedFormSwitcher\n section={section}\n switchForms={switchForms}\n isFormSwitcher={isFormSwitcher}\n control={control}\n fieldArrayName={fieldArrayName}\n formSwitcherName={formSwitcherName}\n handleFieldCleanUp={handleFieldCleanUp}\n t={t}\n />\n\n <Grid container spacing={2}>\n {avatarDisplay}\n {fieldsWithNames.map((field, fieldIndex) => (\n <MemoizedField\n key={`${section.label}-${field.fieldName}-${fieldIndex}`}\n field={field}\n fieldName={field.fieldName}\n sectionLabel={section.label}\n index={fieldIndex}\n {...fieldProps}\n />\n ))}\n </Grid>\n </section>\n );\n});\n\nFormSection.displayName = 'FormSection';\n\nexport { FormSection };\nexport default FormSection;"],"names":["_a","index"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../../../../src/components/form-control/form-parser/form-section.tsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\nimport React, { memo, useMemo, useCallback } from 'react';\nimport { Grid, Divider, FormControlLabel, Radio } from '@mui/material';\nimport DynamicInput from '../form-builder/form-builder-element/text';\nimport DynamicDate from '../form-builder/form-builder-element/date';\nimport DynamicTime from '../form-builder/form-builder-element/time';\nimport DynamicPhone from '../form-builder/form-builder-element/phone';\nimport DynamicSearchSelect from '../form-builder/form-builder-element/dynamic-select';\nimport DynamicMedia from '../form-builder/form-builder-element/media';\nimport DynamicInfo from '../form-builder/form-builder-element/info';\nimport DynamicToggleButton from '../form-builder/form-builder-element/toggle-button';\nimport DynamicCheckBox from '../form-builder/form-builder-element/checkbox';\nimport DynamicTable from '../form-builder/form-builder-element/table';\nimport DynamicRadioButton from '../form-builder/form-builder-element/radio-button';\nimport DynamicTagsInput from '../form-builder/form-builder-element/dynamic-tags-input';\nimport DynamicCurrency from '../form-builder/form-builder-element/dynamic-currency-input';\nimport DynamicInputSelect from '../form-builder/form-builder-element/dynamic-input-select';\nimport ChipGenerator from '../../chip-generator/chip-generator';\nimport { LocationSearchSelect } from '../../location-select';\nimport FormSwitcher from './form-switcher';\nimport Typography from '../../typography/typography';\nimport Accordion from '../../accordion/accordion';\n\n// Types for better type safety\ninterface Field {\n name?: string;\n label: string;\n field_type: string;\n is_fullwidth?: boolean;\n custom_width?: number;\n is_hidden?: boolean;\n is_required?: boolean;\n disabled?: boolean;\n placeholder?: string;\n value?: any;\n default_value?: any;\n title?: string;\n title_position?: string;\n table_columns?: any[];\n table_rows?: any[];\n component?: React.ReactNode;\n field_properties?: {\n apiType?: string;\n customeFilter?: any;\n attributes?: any;\n disabledIds?: any[];\n sortOrder?: string;\n maxChips?: number;\n allowDuplicates?: boolean;\n };\n validation?: any;\n filterField?: string;\n}\n\ninterface Section {\n label?: string;\n is_accordion?: boolean;\n disabled?: boolean;\n form_switcher_label?: string;\n}\n\ninterface FormSectionProps {\n section: Section;\n index: number;\n members?: Field[];\n switchForms?: any[];\n isFormSwitcher: boolean;\n control: any;\n fieldArrayName: string;\n formSwitcherName: string;\n displayAvtar?: boolean;\n isButton?: boolean;\n currencyOption?: any;\n values: any;\n onBlur?: (e: any, fieldName?: string) => void;\n setValue: (name: string, value: any) => void;\n onSelectFooterClick?: (field: Field) => void;\n getSelectedData?: (row: any, key: any) => void;\n setCurrencyOptions: (options: any) => void;\n refreshOptions: any;\n handleFieldCleanUp: (forms: any[]) => void;\n handleSetCountryCodeField: (country: any, field: Field, fieldArrayName: string, values: any) => void;\n handleTableAddClick: (field: Field) => void;\n onTableCellChange?: (data: any) => void;\n // setDetailsData: (data: any) => void;\n t: (key: string) => string;\n images: any;\n}\n\n// Memoized field component to prevent unnecessary re-renders\nconst MemoizedField = memo(({ \n field, \n fieldName, \n sectionLabel, \n index, \n ...props \n}: { \n field: Field; \n fieldName: string; \n sectionLabel?: string; \n index: number; \n [key: string]: any;\n}) => {\n const gridSize = useMemo(() => \n field.is_fullwidth ? 12 : (field.custom_width ?? 6),\n [field.is_fullwidth, field.custom_width]\n );\n\n const fieldKey = useMemo(() => \n `${sectionLabel}-${fieldName}-${index}`,\n [sectionLabel, fieldName, index]\n );\n\n const commonProps = useMemo(() => ({\n ...field,\n key: fieldKey,\n name: fieldName,\n position: index,\n formControl: props.control,\n fieldArrayName: props.fieldArrayName,\n required: field.is_required,\n label: props.t(field.label),\n placeholder: props.t(field.placeholder),\n defaultValue: field.value || field.default_value,\n disabled: field.disabled\n }), [field, fieldName, index, fieldKey, props.control, props.fieldArrayName, props.t]);\n\n const handleBlur = useCallback((e: any) => {\n if (props.onBlur && typeof props.onBlur === 'function') {\n props.onBlur(e, fieldName);\n }\n }, [props.onBlur, fieldName]);\n\n const endIcon = useMemo(() => {\n const iconMap: Record<string, string> = {\n email: props.images.sms,\n url: props.images.url,\n currency: props.images.dollar,\n geoLocation: props.images.location\n };\n \n const iconSrc = iconMap[field.field_type];\n return iconSrc ? <img src={iconSrc} alt={field.field_type} /> : null;\n }, [field.field_type, props.images]);\n\n const relationLabel = useMemo(() => (\n field.field_type === \"relation\" ? (\n <span className=\"formSection--Relation\">\n {props.t(field.label)}\n <img src={props.images.relation} alt=\"relation\" />\n </span>\n ) : props.t(field.label)\n ), [field.field_type, field.label, props.t, props.images.relation]);\n\n // Render field based on type\n const renderField = () => {\n switch (field.field_type) {\n case \"text\":\n case \"email\":\n case \"url\":\n case \"currency\":\n case \"number\":\n case \"geoLocation\":\n case \"relation\":\n return (\n <DynamicInput\n {...commonProps}\n key={commonProps.key}\n label={relationLabel}\n onBlur={handleBlur}\n type={field.field_type}\n endIcon={endIcon}\n disabled={field.disabled || field.field_type === \"relation\"}\n />\n );\n\n case \"date\":\n return <DynamicDate {...commonProps} key={commonProps.key}/>;\n\n case \"time\":\n return <DynamicTime {...commonProps} key={commonProps.key}/>;\n\n case \"phone\":\n return (\n <DynamicPhone\n {...commonProps}\n key={commonProps.key}\n setCountryCodeField={(country: any) =>\n props.handleSetCountryCodeField(country, field, props.fieldArrayName, props.values)\n }\n />\n );\n\n case \"select\":\n return (\n <DynamicSearchSelect\n {...commonProps}\n key={commonProps.key}\n apiType={field.field_properties?.apiType}\n customeFilter={field.field_properties?.customeFilter}\n attributes={field.field_properties?.attributes}\n disabledIds={field.field_properties?.disabledIds}\n onChipRemove={() => props.setValue(`${props.fieldArrayName}.${fieldName}`, [])}\n onFooterClick={() => props.onSelectFooterClick?.(field)}\n handleOptions={props.setCurrencyOptions}\n getSelectedData={props.getSelectedData}\n refresh={props.refreshOptions}\n sortOrder={field.field_properties?.sortOrder}\n />\n );\n\n case \"file\":\n case \"image\":\n return <DynamicMedia {...commonProps} key={commonProps.key}/>;\n\n case \"info\":\n return <DynamicInfo {...commonProps} key={commonProps.key}/>;\n\n case \"toggleButton\":\n return (\n <DynamicToggleButton\n {...commonProps}\n key={commonProps.key}\n titlePosition={field.title_position}\n title={props.t(field.title)}\n />\n );\n\n case \"checkbox\":\n return (\n <DynamicCheckBox\n {...commonProps}\n key={commonProps.key}\n titlePosition={field.title_position}\n title={props.t(field.title)}\n />\n );\n\n case \"table\":\n return (\n <DynamicTable\n {...commonProps}\n key={commonProps.key}\n columns={field.table_columns}\n rows={field.table_rows}\n onAddClick={() => props.handleTableAddClick(field)}\n disableTableAddButton={Boolean(field.disableTableAddButton)}\n is_button={props.isButton}\n onTableCellChange={props.onTableCellChange}\n />\n );\n\n case \"radioButton\":\n return (\n <DynamicRadioButton\n {...commonProps}\n key={commonProps.key}\n titlePosition={field.title_position}\n title={props.t(field.title)}\n />\n );\n\n case \"customComponent\":\n return field.component;\n\n case \"tagsInput\":\n return (\n <DynamicTagsInput\n {...commonProps}\n key={commonProps.key}\n label={relationLabel}\n type={field.field_type}\n endIcon={endIcon}\n />\n );\n\n case \"currency_with_amount\":\n return (\n <DynamicCurrency\n {...commonProps}\n key={commonProps.key}\n currencyType={props.currencyOption}\n />\n );\n\n case \"select_with_input\":\n return (\n <DynamicInputSelect\n {...commonProps}\n currencyType={props.currencyOption}\n />\n );\n\n case \"chipInput\":\n return (\n <ChipGenerator\n {...commonProps}\n key={commonProps.key}\n maxChips={field.field_properties?.maxChips}\n allowDuplicates={field.field_properties?.allowDuplicates}\n validation={field.validation}\n endIcon={endIcon}\n onChipAdd={(chip: any) => console.log('Chip added:', chip)}\n onChipRemove={(chip: any, index: number) => console.log('Chip removed:', chip, 'at index:', index)}\n />\n );\n\n case \"location_select\":\n return (\n <LocationSearchSelect\n fieldArrayName={props.fieldArrayName}\n filterField={field.filterField}\n getSelectedData={(row: any[]) => props.getSelectedData(row)}\n locationFieldName={field.name}\n addType=\"location\"\n enable_footer={true}\n />\n );\n\n default:\n return null;\n }\n };\n\n // For table fields, use full width\n if (field.field_type === \"table\" || field.field_type === \"customComponent\") {\n return (\n <Grid item xs={12}>\n {renderField()}\n </Grid>\n );\n }\n\n return (\n <Grid item xs={gridSize}>\n {renderField()}\n </Grid>\n );\n});\n\nMemoizedField.displayName = 'MemoizedField';\n\n// Memoized FormSwitcher component\nconst MemoizedFormSwitcher = memo(({ \n section, \n switchForms, \n isFormSwitcher, \n control, \n fieldArrayName, \n formSwitcherName, \n handleFieldCleanUp, \n t \n}: {\n section: Section;\n switchForms?: any[];\n isFormSwitcher: boolean;\n control: any;\n fieldArrayName: string;\n formSwitcherName: string;\n handleFieldCleanUp: (forms: any[]) => void;\n t: (key: string) => string;\n}) => {\n const resetForm = useCallback(() => {\n handleFieldCleanUp(switchForms || []);\n }, [handleFieldCleanUp, switchForms]);\n\n if (!isFormSwitcher || !switchForms?.length) return null;\n\n return (\n <FormSwitcher\n {...section}\n isFormSwitcher={isFormSwitcher}\n control={control}\n fieldArrayName={fieldArrayName}\n formSwitcherName={formSwitcherName}\n label={t(section.form_switcher_label || '')}\n resetForm={resetForm}\n >\n {switchForms.map((forms: any) => (\n <FormControlLabel\n key={forms.id}\n value={forms.value || forms.name}\n control={<Radio />}\n slotProps={{ typography: { variant: \"body2\" } }}\n label={t(forms.name)}\n disabled={Boolean(section.disabled)}\n />\n ))}\n </FormSwitcher>\n );\n});\n\nMemoizedFormSwitcher.displayName = 'MemoizedFormSwitcher';\n\n// Main component\nconst FormSection = memo<FormSectionProps>(({\n section,\n index,\n members,\n switchForms,\n isFormSwitcher,\n control,\n fieldArrayName,\n formSwitcherName,\n displayAvtar,\n isButton,\n currencyOption,\n values,\n onBlur,\n setValue,\n onSelectFooterClick,\n getSelectedData,\n setCurrencyOptions,\n refreshOptions,\n handleFieldCleanUp,\n handleSetCountryCodeField,\n handleTableAddClick,\n onTableCellChange,\n setDetailsData,\n t,\n images\n}) => {\n // Memoize visible members to prevent recalculation\n const visibleMembers = useMemo(() => \n members?.filter(f => !f.is_hidden) || [],\n [members]\n );\n\n // Memoize field names to prevent recalculation\n const fieldsWithNames = useMemo(() => \n visibleMembers.map(field => ({\n ...field,\n fieldName: field.name || field.label.toLowerCase().split(\" \").join(\"_\")\n })),\n [visibleMembers]\n );\n\n // Memoize section header\n const sectionHeader = useMemo(() => {\n if (!section.label) return null;\n \n return (\n <div style={{ minHeight: \"16px\" }}>\n {index !== 0 && <Divider className='formParser--Section--SectionDivider' />}\n <Typography\n type=\"s3\"\n weight=\"medium\"\n mb={2}\n mt={4}\n color=\"theme.secondary.1000\"\n className='formParser--Section--SectionTitle'\n >\n {t(section.label)}\n </Typography>\n </div>\n );\n }, [section.label, index, t]);\n\n // Avatar component\n const avatarDisplay = useMemo(() => \n displayAvtar ? <div className='avtarDisplay'>ERP</div> : null,\n [displayAvtar]\n );\n\n // Common props for field rendering\n const fieldProps = useMemo(() => ({\n control,\n fieldArrayName,\n isButton,\n currencyOption,\n values,\n onBlur,\n setValue,\n onSelectFooterClick,\n getSelectedData,\n setCurrencyOptions,\n refreshOptions,\n handleSetCountryCodeField,\n handleTableAddClick,\n onTableCellChange,\n setDetailsData,\n t,\n images\n }), [\n control, fieldArrayName, isButton, currencyOption, values,\n onBlur, setValue, onSelectFooterClick, getSelectedData,\n setCurrencyOptions, refreshOptions, handleSetCountryCodeField,\n handleTableAddClick, onTableCellChange, setDetailsData, t, images\n ]);\n\n if (section.is_accordion) {\n return (\n <section key={index} className='formParser--Section'>\n <div style={{ marginTop: '20px' }}>\n <Accordion title={t(section.label || '')}>\n <div className=\"formParser--Grid formParser--Accordion\">\n <MemoizedFormSwitcher\n section={section}\n switchForms={switchForms}\n isFormSwitcher={isFormSwitcher}\n control={control}\n fieldArrayName={fieldArrayName}\n formSwitcherName={formSwitcherName}\n handleFieldCleanUp={handleFieldCleanUp}\n t={t}\n />\n {fieldsWithNames.map((field, fieldIndex) => (\n <MemoizedField\n key={`${section.label}-${field.fieldName}-${fieldIndex}`}\n field={field}\n fieldName={field.fieldName}\n sectionLabel={section.label}\n index={fieldIndex}\n {...fieldProps}\n />\n ))}\n </div>\n </Accordion>\n </div>\n </section>\n );\n }\n\n return (\n <section key={index} className='formParser--Section'>\n {sectionHeader}\n \n <MemoizedFormSwitcher\n section={section}\n switchForms={switchForms}\n isFormSwitcher={isFormSwitcher}\n control={control}\n fieldArrayName={fieldArrayName}\n formSwitcherName={formSwitcherName}\n handleFieldCleanUp={handleFieldCleanUp}\n t={t}\n />\n\n <Grid container spacing={2}>\n {avatarDisplay}\n {fieldsWithNames.map((field, fieldIndex) => (\n <MemoizedField\n key={`${section.label}-${field.fieldName}-${fieldIndex}`}\n field={field}\n fieldName={field.fieldName}\n sectionLabel={section.label}\n index={fieldIndex}\n {...fieldProps}\n />\n ))}\n </Grid>\n </section>\n );\n});\n\nFormSection.displayName = 'FormSection';\n\nexport { FormSection };\nexport default FormSection;"],"names":["_a","index"],"mappings":"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"}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),
|
|
2
|
-
/* @__PURE__ */e.jsx("img",{src:k.images.relation,alt:"relation"})]}):k.t(x.label),[x.field_type,x.label,k.t,k.images.relation]),D=()=>{var _,C,g,N,
|
|
3
|
-
return r.createElement(
|
|
4
|
-
return r.createElement(
|
|
5
|
-
return r.createElement(t.DynamicTime,{...
|
|
6
|
-
return r.createElement(a.DynamicPhone,{...
|
|
7
|
-
return r.createElement(o.default,{...
|
|
8
|
-
return r.createElement(n.DynamicMedia,{...
|
|
9
|
-
return r.createElement(
|
|
10
|
-
return r.createElement(
|
|
11
|
-
return r.createElement(c.default,{...
|
|
12
|
-
return r.createElement(m.default,{...
|
|
13
|
-
return r.createElement(u.default,{...
|
|
14
|
-
return r.createElement(f.DynamicTagsInput,{...
|
|
15
|
-
return r.createElement(
|
|
16
|
-
return e.jsx(
|
|
17
|
-
return r.createElement(b.default,{...
|
|
18
|
-
return e.jsx(h.LocationSearchSelect,{fieldArrayName:k.fieldArrayName,filterField:x.filterField,getSelectedData:e=>k.getSelectedData(e),locationFieldName:x.name,addType:"location",enable_footer:!0});default:return null}};return"table"===x.field_type||"customComponent"===x.field_type?/* @__PURE__ */e.jsx(g.default,{item:!0,xs:12,children:D()}):/* @__PURE__ */e.jsx(g.default,{item:!0,xs:N,children:D()})});
|
|
19
|
-
/* @__PURE__ */e.jsx(j.Typography,{type:"s3",weight:"medium",mb:2,mt:4,color:"theme.secondary.1000",className:"formParser--Section--SectionTitle",children:A(
|
|
20
|
-
/* @__PURE__ */e.jsx(
|
|
21
|
-
/* @__PURE__ */e.jsx(
|
|
22
|
-
/* @__PURE__ */e.jsxs(g.default,{container:!0,spacing:2,children:[O,E.map((r,
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),i=require("../../form-builder/form-builder-element/text/index.js"),l=require("../../form-builder/form-builder-element/date/index.js"),t=require("../../form-builder/form-builder-element/time/index.js"),a=require("../../form-builder/form-builder-element/phone/index.js"),o=require("../../form-builder/form-builder-element/dynamic-select/index.js"),n=require("../../form-builder/form-builder-element/media/index.js"),d=require("../../form-builder/form-builder-element/info/index.js"),s=require("../../form-builder/form-builder-element/toggle-button/index.js"),c=require("../../form-builder/form-builder-element/checkbox/index.js"),m=require("../../form-builder/form-builder-element/table/index.js"),u=require("../../form-builder/form-builder-element/radio-button/index.js"),f=require("../../form-builder/form-builder-element/dynamic-tags-input/index.js"),y=require("../../form-builder/form-builder-element/dynamic-currency-input/index.js"),p=require("../../form-builder/form-builder-element/dynamic-input-select/index.js"),b=require("../../../chip-generator/chip-generator/index.js"),h=require("../../../location-select/index.js"),x=require("../form-switcher/index.js"),j=require("../../../typography/typography/index.js"),_=require("../../../accordion/accordion/index.js"),C=require("../../../../node_modules/@mui/material/Divider/Divider/index.js"),g=require("../../../../node_modules/@mui/material/Grid/Grid/index.js"),k=require("../../../../node_modules/@mui/material/FormControlLabel/FormControlLabel/index.js"),N=require("../../../../node_modules/@mui/material/Radio/Radio/index.js");const S=r.memo(({field:x,fieldName:j,sectionLabel:_,index:C,...k})=>{const N=r.useMemo(()=>x.is_fullwidth?12:x.custom_width??6,[x.is_fullwidth,x.custom_width]),S=r.useMemo(()=>`${_}-${j}-${C}`,[_,j,C]),v=r.useMemo(()=>({...x,key:S,name:j,position:C,formControl:k.control,fieldArrayName:k.fieldArrayName,required:x.is_required,label:k.t(x.label),placeholder:k.t(x.placeholder),defaultValue:x.value||x.default_value,disabled:x.disabled}),[x,j,C,S,k.control,k.fieldArrayName,k.t]),F=r.useCallback(e=>{k.onBlur&&"function"==typeof k.onBlur&&k.onBlur(e,j)},[k.onBlur,j]),w=r.useMemo(()=>{const r={email:k.images.sms,url:k.images.url,currency:k.images.dollar,geoLocation:k.images.location}[x.field_type];return r?/* @__PURE__ */e.jsx("img",{src:r,alt:x.field_type}):null},[x.field_type,k.images]),q=r.useMemo(()=>"relation"===x.field_type?/* @__PURE__ */e.jsxs("span",{className:"formSection--Relation",children:[k.t(x.label),
|
|
2
|
+
/* @__PURE__ */e.jsx("img",{src:k.images.relation,alt:"relation"})]}):k.t(x.label),[x.field_type,x.label,k.t,k.images.relation]),D=()=>{var _,C,g,N,S,D,A;switch(x.field_type){case"text":case"email":case"url":case"currency":case"number":case"geoLocation":case"relation":/* @__PURE__ */
|
|
3
|
+
return r.createElement(i.DynamicInput,{...v,key:v.key,label:q,onBlur:F,type:x.field_type,endIcon:w,disabled:x.disabled||"relation"===x.field_type});case"date":/* @__PURE__ */
|
|
4
|
+
return r.createElement(l.DynamicDate,{...v,key:v.key});case"time":/* @__PURE__ */
|
|
5
|
+
return r.createElement(t.DynamicTime,{...v,key:v.key});case"phone":/* @__PURE__ */
|
|
6
|
+
return r.createElement(a.DynamicPhone,{...v,key:v.key,setCountryCodeField:e=>k.handleSetCountryCodeField(e,x,k.fieldArrayName,k.values)});case"select":/* @__PURE__ */
|
|
7
|
+
return r.createElement(o.default,{...v,key:v.key,apiType:null==(_=x.field_properties)?void 0:_.apiType,customeFilter:null==(C=x.field_properties)?void 0:C.customeFilter,attributes:null==(g=x.field_properties)?void 0:g.attributes,disabledIds:null==(N=x.field_properties)?void 0:N.disabledIds,onChipRemove:()=>k.setValue(`${k.fieldArrayName}.${j}`,[]),onFooterClick:()=>{var e;return null==(e=k.onSelectFooterClick)?void 0:e.call(k,x)},handleOptions:k.setCurrencyOptions,getSelectedData:k.getSelectedData,refresh:k.refreshOptions,sortOrder:null==(S=x.field_properties)?void 0:S.sortOrder});case"file":case"image":/* @__PURE__ */
|
|
8
|
+
return r.createElement(n.DynamicMedia,{...v,key:v.key});case"info":/* @__PURE__ */
|
|
9
|
+
return r.createElement(d.DynamicInfo,{...v,key:v.key});case"toggleButton":/* @__PURE__ */
|
|
10
|
+
return r.createElement(s.default,{...v,key:v.key,titlePosition:x.title_position,title:k.t(x.title)});case"checkbox":/* @__PURE__ */
|
|
11
|
+
return r.createElement(c.default,{...v,key:v.key,titlePosition:x.title_position,title:k.t(x.title)});case"table":/* @__PURE__ */
|
|
12
|
+
return r.createElement(m.default,{...v,key:v.key,columns:x.table_columns,rows:x.table_rows,onAddClick:()=>k.handleTableAddClick(x),disableTableAddButton:Boolean(x.disableTableAddButton),is_button:k.isButton,onTableCellChange:k.onTableCellChange});case"radioButton":/* @__PURE__ */
|
|
13
|
+
return r.createElement(u.default,{...v,key:v.key,titlePosition:x.title_position,title:k.t(x.title)});case"customComponent":return x.component;case"tagsInput":/* @__PURE__ */
|
|
14
|
+
return r.createElement(f.DynamicTagsInput,{...v,key:v.key,label:q,type:x.field_type,endIcon:w});case"currency_with_amount":/* @__PURE__ */
|
|
15
|
+
return r.createElement(y.DynamicCurrency,{...v,key:v.key,currencyType:k.currencyOption});case"select_with_input":/* @__PURE__ */
|
|
16
|
+
return e.jsx(p.DynamicInputSelect,{...v,currencyType:k.currencyOption});case"chipInput":/* @__PURE__ */
|
|
17
|
+
return r.createElement(b.default,{...v,key:v.key,maxChips:null==(D=x.field_properties)?void 0:D.maxChips,allowDuplicates:null==(A=x.field_properties)?void 0:A.allowDuplicates,validation:x.validation,endIcon:w,onChipAdd:e=>{},onChipRemove:(e,r)=>{}});case"location_select":/* @__PURE__ */
|
|
18
|
+
return e.jsx(h.LocationSearchSelect,{fieldArrayName:k.fieldArrayName,filterField:x.filterField,getSelectedData:e=>k.getSelectedData(e),locationFieldName:x.name,addType:"location",enable_footer:!0});default:return null}};return"table"===x.field_type||"customComponent"===x.field_type?/* @__PURE__ */e.jsx(g.default,{item:!0,xs:12,children:D()}):/* @__PURE__ */e.jsx(g.default,{item:!0,xs:N,children:D()})});S.displayName="MemoizedField";const v=r.memo(({section:i,switchForms:l,isFormSwitcher:t,control:a,fieldArrayName:o,formSwitcherName:n,handleFieldCleanUp:d,t:s})=>{const c=r.useCallback(()=>{d(l||[])},[d,l]);return t&&(null==l?void 0:l.length)?/* @__PURE__ */e.jsx(x.FormSwitcher,{...i,isFormSwitcher:t,control:a,fieldArrayName:o,formSwitcherName:n,label:s(i.form_switcher_label||""),resetForm:c,children:l.map(r=>/* @__PURE__ */e.jsx(k.default,{value:r.value||r.name,control:/* @__PURE__ */e.jsx(N.default,{}),slotProps:{typography:{variant:"body2"}},label:s(r.name),disabled:Boolean(i.disabled)},r.id))}):null});v.displayName="MemoizedFormSwitcher";const F=r.memo(({section:i,index:l,members:t,switchForms:a,isFormSwitcher:o,control:n,fieldArrayName:d,formSwitcherName:s,displayAvtar:c,isButton:m,currencyOption:u,values:f,onBlur:y,setValue:p,onSelectFooterClick:b,getSelectedData:h,setCurrencyOptions:x,refreshOptions:k,handleFieldCleanUp:N,handleSetCountryCodeField:F,handleTableAddClick:w,onTableCellChange:q,setDetailsData:D,t:A,images:T})=>{const B=r.useMemo(()=>(null==t?void 0:t.filter(e=>!e.is_hidden))||[],[t]),E=r.useMemo(()=>B.map(e=>({...e,fieldName:e.name||e.label.toLowerCase().split(" ").join("_")})),[B]),M=r.useMemo(()=>i.label?/* @__PURE__ */e.jsxs("div",{style:{minHeight:"16px"},children:[0!==l&&/* @__PURE__ */e.jsx(C.default,{className:"formParser--Section--SectionDivider"}),
|
|
19
|
+
/* @__PURE__ */e.jsx(j.Typography,{type:"s3",weight:"medium",mb:2,mt:4,color:"theme.secondary.1000",className:"formParser--Section--SectionTitle",children:A(i.label)})]}):null,[i.label,l,A]),O=r.useMemo(()=>c?/* @__PURE__ */e.jsx("div",{className:"avtarDisplay",children:"ERP"}):null,[c]),P=r.useMemo(()=>({control:n,fieldArrayName:d,isButton:m,currencyOption:u,values:f,onBlur:y,setValue:p,onSelectFooterClick:b,getSelectedData:h,setCurrencyOptions:x,refreshOptions:k,handleSetCountryCodeField:F,handleTableAddClick:w,onTableCellChange:q,setDetailsData:D,t:A,images:T}),[n,d,m,u,f,y,p,b,h,x,k,F,w,q,D,A,T]);return i.is_accordion?/* @__PURE__ */e.jsx("section",{className:"formParser--Section",children:/* @__PURE__ */e.jsx("div",{style:{marginTop:"20px"},children:/* @__PURE__ */e.jsx(_.Accordion,{title:A(i.label||""),children:/* @__PURE__ */e.jsxs("div",{className:"formParser--Grid formParser--Accordion",children:[
|
|
20
|
+
/* @__PURE__ */e.jsx(v,{section:i,switchForms:a,isFormSwitcher:o,control:n,fieldArrayName:d,formSwitcherName:s,handleFieldCleanUp:N,t:A}),E.map((r,l)=>/* @__PURE__ */e.jsx(S,{field:r,fieldName:r.fieldName,sectionLabel:i.label,index:l,...P},`${i.label}-${r.fieldName}-${l}`))]})})})},l):/* @__PURE__ */e.jsxs("section",{className:"formParser--Section",children:[M,
|
|
21
|
+
/* @__PURE__ */e.jsx(v,{section:i,switchForms:a,isFormSwitcher:o,control:n,fieldArrayName:d,formSwitcherName:s,handleFieldCleanUp:N,t:A}),
|
|
22
|
+
/* @__PURE__ */e.jsxs(g.default,{container:!0,spacing:2,children:[O,E.map((r,l)=>/* @__PURE__ */e.jsx(S,{field:r,fieldName:r.fieldName,sectionLabel:i.label,index:l,...P},`${i.label}-${r.fieldName}-${l}`))]})]},l)});F.displayName="FormSection",exports.FormSection=F,exports.default=F;
|
|
23
23
|
//# sourceMappingURL=index.js.map
|