pihr-ui-kit 0.0.1
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/README.md +138 -0
- package/dist/assets/icons/ApprovalPaperWithSeal.js +32 -0
- package/dist/assets/icons/ApprovalPaperWithSeal.js.map +1 -0
- package/dist/assets/icons/CheckIconCircleGreen.js +40 -0
- package/dist/assets/icons/CheckIconCircleGreen.js.map +1 -0
- package/dist/assets/icons/CrossIconCircleRed.js +40 -0
- package/dist/assets/icons/CrossIconCircleRed.js.map +1 -0
- package/dist/assets/icons/RejectionPaperWithSeal.js +39 -0
- package/dist/assets/icons/RejectionPaperWithSeal.js.map +1 -0
- package/dist/assets/icons/attachIcon.js +23 -0
- package/dist/assets/icons/attachIcon.js.map +1 -0
- package/dist/assets/icons/bookmarkIcon.js +26 -0
- package/dist/assets/icons/bookmarkIcon.js.map +1 -0
- package/dist/assets/icons/bulbIcon.js +28 -0
- package/dist/assets/icons/bulbIcon.js.map +1 -0
- package/dist/assets/icons/calendar.js +98 -0
- package/dist/assets/icons/calendar.js.map +1 -0
- package/dist/assets/icons/checkboxIcon.js +31 -0
- package/dist/assets/icons/checkboxIcon.js.map +1 -0
- package/dist/assets/icons/chevronDownIcon.js +29 -0
- package/dist/assets/icons/chevronDownIcon.js.map +1 -0
- package/dist/assets/icons/chevronRightIcon.js +27 -0
- package/dist/assets/icons/chevronRightIcon.js.map +1 -0
- package/dist/assets/icons/confirmIcon.js +41 -0
- package/dist/assets/icons/confirmIcon.js.map +1 -0
- package/dist/assets/icons/deleteIcon.js +26 -0
- package/dist/assets/icons/deleteIcon.js.map +1 -0
- package/dist/assets/icons/deleteIconV1.js +51 -0
- package/dist/assets/icons/deleteIconV1.js.map +1 -0
- package/dist/assets/icons/deleteIconV2.js +28 -0
- package/dist/assets/icons/deleteIconV2.js.map +1 -0
- package/dist/assets/icons/deleteModalIcon.js +51 -0
- package/dist/assets/icons/deleteModalIcon.js.map +1 -0
- package/dist/assets/icons/downloadIcon.js +54 -0
- package/dist/assets/icons/downloadIcon.js.map +1 -0
- package/dist/assets/icons/editIconLatest.js +45 -0
- package/dist/assets/icons/editIconLatest.js.map +1 -0
- package/dist/assets/icons/editIconv2.js +45 -0
- package/dist/assets/icons/editIconv2.js.map +1 -0
- package/dist/assets/icons/heartIcon.js +27 -0
- package/dist/assets/icons/heartIcon.js.map +1 -0
- package/dist/assets/icons/leftArrow.js +25 -0
- package/dist/assets/icons/leftArrow.js.map +1 -0
- package/dist/assets/icons/noDataAmount.js +465 -0
- package/dist/assets/icons/noDataAmount.js.map +1 -0
- package/dist/assets/icons/noDataAttendanceSummery.js +465 -0
- package/dist/assets/icons/noDataAttendanceSummery.js.map +1 -0
- package/dist/assets/icons/noDataFoundImg.js +999 -0
- package/dist/assets/icons/noDataFoundImg.js.map +1 -0
- package/dist/assets/icons/noDataLeaveCalendar.js +472 -0
- package/dist/assets/icons/noDataLeaveCalendar.js.map +1 -0
- package/dist/assets/icons/noDataMainDashboard.js +469 -0
- package/dist/assets/icons/noDataMainDashboard.js.map +1 -0
- package/dist/assets/icons/noDataNotice.js +1004 -0
- package/dist/assets/icons/noDataNotice.js.map +1 -0
- package/dist/assets/icons/noDataQuickView.js +529 -0
- package/dist/assets/icons/noDataQuickView.js.map +1 -0
- package/dist/assets/icons/plusIcon.js +38 -0
- package/dist/assets/icons/plusIcon.js.map +1 -0
- package/dist/assets/icons/rightArrowIcon.js +26 -0
- package/dist/assets/icons/rightArrowIcon.js.map +1 -0
- package/dist/assets/icons/searchIcon.js +26 -0
- package/dist/assets/icons/searchIcon.js.map +1 -0
- package/dist/assets/icons/tooltipInfoIcon.js +26 -0
- package/dist/assets/icons/tooltipInfoIcon.js.map +1 -0
- package/dist/assets/icons/warningIcon.js +23 -0
- package/dist/assets/icons/warningIcon.js.map +1 -0
- package/dist/assets/icons/widgetIcon.js +85 -0
- package/dist/assets/icons/widgetIcon.js.map +1 -0
- package/dist/assets/icons/xIcon.js +27 -0
- package/dist/assets/icons/xIcon.js.map +1 -0
- package/dist/components/auth/WithPermission.js +14 -0
- package/dist/components/auth/WithPermission.js.map +1 -0
- package/dist/components/common/NoDataFound/index.js +59 -0
- package/dist/components/common/NoDataFound/index.js.map +1 -0
- package/dist/components/common/banner/index.js +47 -0
- package/dist/components/common/banner/index.js.map +1 -0
- package/dist/components/common/button/CancelBtn.js +26 -0
- package/dist/components/common/button/CancelBtn.js.map +1 -0
- package/dist/components/common/button/PrimaryBtn.js +26 -0
- package/dist/components/common/button/PrimaryBtn.js.map +1 -0
- package/dist/components/common/button/SaveBtn.js +26 -0
- package/dist/components/common/button/SaveBtn.js.map +1 -0
- package/dist/components/common/button/actionEdit.js +23 -0
- package/dist/components/common/button/actionEdit.js.map +1 -0
- package/dist/components/common/button/addNew.js +32 -0
- package/dist/components/common/button/addNew.js.map +1 -0
- package/dist/components/common/button/blueCancel.js +26 -0
- package/dist/components/common/button/blueCancel.js.map +1 -0
- package/dist/components/common/button/blueSave.js +24 -0
- package/dist/components/common/button/blueSave.js.map +1 -0
- package/dist/components/common/button/iconButton.js +67 -0
- package/dist/components/common/button/iconButton.js.map +1 -0
- package/dist/components/common/button/index.js +47 -0
- package/dist/components/common/button/index.js.map +1 -0
- package/dist/components/common/button/lightButton.js +16 -0
- package/dist/components/common/button/lightButton.js.map +1 -0
- package/dist/components/common/button/secondaryOutlinedButton.js +25 -0
- package/dist/components/common/button/secondaryOutlinedButton.js.map +1 -0
- package/dist/components/common/buttons/CancelBtn.js +26 -0
- package/dist/components/common/buttons/CancelBtn.js.map +1 -0
- package/dist/components/common/cards/employeeCard.js +18 -0
- package/dist/components/common/cards/employeeCard.js.map +1 -0
- package/dist/components/common/confirmModal/deleteConfirmationModal.js +31 -0
- package/dist/components/common/confirmModal/deleteConfirmationModal.js.map +1 -0
- package/dist/components/common/confirmModal/index.js +53 -0
- package/dist/components/common/confirmModal/index.js.map +1 -0
- package/dist/components/common/delete/index.js +93 -0
- package/dist/components/common/delete/index.js.map +1 -0
- package/dist/components/common/dropDownIndicator/index.js +9 -0
- package/dist/components/common/dropDownIndicator/index.js.map +1 -0
- package/dist/components/common/input/contactInput.js +19 -0
- package/dist/components/common/input/contactInput.js.map +1 -0
- package/dist/components/common/input/customInput.js +101 -0
- package/dist/components/common/input/customInput.js.map +1 -0
- package/dist/components/common/input/indeterminateCheckBox.js +39 -0
- package/dist/components/common/input/indeterminateCheckBox.js.map +1 -0
- package/dist/components/common/input/numberInput.js +21 -0
- package/dist/components/common/input/numberInput.js.map +1 -0
- package/dist/components/common/input/radioButton.js +26 -0
- package/dist/components/common/input/radioButton.js.map +1 -0
- package/dist/components/common/input/searchbox.js +26 -0
- package/dist/components/common/input/searchbox.js.map +1 -0
- package/dist/components/common/label/truncateLabel.js +32 -0
- package/dist/components/common/label/truncateLabel.js.map +1 -0
- package/dist/components/common/modalWrapper/approve/index.js +88 -0
- package/dist/components/common/modalWrapper/approve/index.js.map +1 -0
- package/dist/components/common/modalWrapper/deleteModalWrapper.js +64 -0
- package/dist/components/common/modalWrapper/deleteModalWrapper.js.map +1 -0
- package/dist/components/common/modalWrapper/reject/index.js +88 -0
- package/dist/components/common/modalWrapper/reject/index.js.map +1 -0
- package/dist/components/common/pagination/index.js +65 -0
- package/dist/components/common/pagination/index.js.map +1 -0
- package/dist/components/common/pagination/pageLink.js +31 -0
- package/dist/components/common/pagination/pageLink.js.map +1 -0
- package/dist/components/common/tooltip/infoTooltip.js +21 -0
- package/dist/components/common/tooltip/infoTooltip.js.map +1 -0
- package/dist/components/common/userHelpTips/index.js +36 -0
- package/dist/components/common/userHelpTips/index.js.map +1 -0
- package/dist/components/dsl/DslTable/components/DeleteEntityModal.js +33 -0
- package/dist/components/dsl/DslTable/components/DeleteEntityModal.js.map +1 -0
- package/dist/components/dsl/DslTable/factories/ActionFactories.js +79 -0
- package/dist/components/dsl/DslTable/factories/ActionFactories.js.map +1 -0
- package/dist/components/errors/emptyLoadingFallback.js +7 -0
- package/dist/components/errors/emptyLoadingFallback.js.map +1 -0
- package/dist/components/errors/errorFallback.js +30 -0
- package/dist/components/errors/errorFallback.js.map +1 -0
- package/dist/components/formGenerator/components/modalWrapper.js +42 -0
- package/dist/components/formGenerator/components/modalWrapper.js.map +1 -0
- package/dist/components/formGenerator/constants.js +42 -0
- package/dist/components/formGenerator/constants.js.map +1 -0
- package/dist/components/formGenerator/helpers/index.js +267 -0
- package/dist/components/formGenerator/helpers/index.js.map +1 -0
- package/dist/components/formGenerator/hooks/useFormGenerator.js +30 -0
- package/dist/components/formGenerator/hooks/useFormGenerator.js.map +1 -0
- package/dist/components/formGenerator/index.js +148 -0
- package/dist/components/formGenerator/index.js.map +1 -0
- package/dist/components/formGenerator/layouts/footer.js +65 -0
- package/dist/components/formGenerator/layouts/footer.js.map +1 -0
- package/dist/components/formGenerator/layouts/formLayout.js +118 -0
- package/dist/components/formGenerator/layouts/formLayout.js.map +1 -0
- package/dist/components/formGenerator/renderer/FieldDispatcher.js +48 -0
- package/dist/components/formGenerator/renderer/FieldDispatcher.js.map +1 -0
- package/dist/components/formGenerator/renderer/fieldRenderer.js +15 -0
- package/dist/components/formGenerator/renderer/fieldRenderer.js.map +1 -0
- package/dist/components/formGenerator/renderer/fields/attachments/multiAttachment.js +165 -0
- package/dist/components/formGenerator/renderer/fields/attachments/multiAttachment.js.map +1 -0
- package/dist/components/formGenerator/renderer/fields/attachments/singleAttachment.js +125 -0
- package/dist/components/formGenerator/renderer/fields/attachments/singleAttachment.js.map +1 -0
- package/dist/components/formGenerator/renderer/fields/checkboxField.js +24 -0
- package/dist/components/formGenerator/renderer/fields/checkboxField.js.map +1 -0
- package/dist/components/formGenerator/renderer/fields/datePickerField.js +29 -0
- package/dist/components/formGenerator/renderer/fields/datePickerField.js.map +1 -0
- package/dist/components/formGenerator/renderer/fields/datePickerRangeField.js +30 -0
- package/dist/components/formGenerator/renderer/fields/datePickerRangeField.js.map +1 -0
- package/dist/components/formGenerator/renderer/fields/employeeSelect.js +153 -0
- package/dist/components/formGenerator/renderer/fields/employeeSelect.js.map +1 -0
- package/dist/components/formGenerator/renderer/fields/employeeSelectField.js +24 -0
- package/dist/components/formGenerator/renderer/fields/employeeSelectField.js.map +1 -0
- package/dist/components/formGenerator/renderer/fields/inputField.js +30 -0
- package/dist/components/formGenerator/renderer/fields/inputField.js.map +1 -0
- package/dist/components/formGenerator/renderer/fields/multiAttachmentField.js +28 -0
- package/dist/components/formGenerator/renderer/fields/multiAttachmentField.js.map +1 -0
- package/dist/components/formGenerator/renderer/fields/radioField.js +25 -0
- package/dist/components/formGenerator/renderer/fields/radioField.js.map +1 -0
- package/dist/components/formGenerator/renderer/fields/radioGroup.js +58 -0
- package/dist/components/formGenerator/renderer/fields/radioGroup.js.map +1 -0
- package/dist/components/formGenerator/renderer/fields/select/BaseSelect.js +73 -0
- package/dist/components/formGenerator/renderer/fields/select/BaseSelect.js.map +1 -0
- package/dist/components/formGenerator/renderer/fields/select/index.js +58 -0
- package/dist/components/formGenerator/renderer/fields/select/index.js.map +1 -0
- package/dist/components/formGenerator/renderer/fields/singleAttachmentField.js +23 -0
- package/dist/components/formGenerator/renderer/fields/singleAttachmentField.js.map +1 -0
- package/dist/components/formGenerator/renderer/fields/textareaField.js +24 -0
- package/dist/components/formGenerator/renderer/fields/textareaField.js.map +1 -0
- package/dist/components/formGenerator/renderer/fields/utils.js +11 -0
- package/dist/components/formGenerator/renderer/fields/utils.js.map +1 -0
- package/dist/components/hookform/hookFormItem.js +36 -0
- package/dist/components/hookform/hookFormItem.js.map +1 -0
- package/dist/components/ui/customDatePicker.js +109 -0
- package/dist/components/ui/customDatePicker.js.map +1 -0
- package/dist/components/ui/customRangeDatePicker.js +91 -0
- package/dist/components/ui/customRangeDatePicker.js.map +1 -0
- package/dist/components/ui/table.js +84 -0
- package/dist/components/ui/table.js.map +1 -0
- package/dist/components/ui/toggle.js +37 -0
- package/dist/components/ui/toggle.js.map +1 -0
- package/dist/i18n/index.js +19 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/images/no-profile-image.jpg +0 -0
- package/dist/images/pihr_logo.png +0 -0
- package/dist/index.css.js +5 -0
- package/dist/index.css.js.map +1 -0
- package/dist/index.js +122 -0
- package/dist/index.js.map +1 -0
- package/dist/libs/index.js +9 -0
- package/dist/libs/index.js.map +1 -0
- package/dist/noDataAmount-2e25098d.cjs +2 -0
- package/dist/noDataAmount-2e25098d.cjs.map +1 -0
- package/dist/noDataAttendanceSummery-2e25098d.cjs +2 -0
- package/dist/noDataAttendanceSummery-2e25098d.cjs.map +1 -0
- package/dist/noDataFoundImg-52407d7f.cjs +2 -0
- package/dist/noDataFoundImg-52407d7f.cjs.map +1 -0
- package/dist/noDataLeaveCalendar-caba7e5b.cjs +2 -0
- package/dist/noDataLeaveCalendar-caba7e5b.cjs.map +1 -0
- package/dist/noDataMainDashboard-15368fc3.cjs +2 -0
- package/dist/noDataMainDashboard-15368fc3.cjs.map +1 -0
- package/dist/noDataNotice-90d39b08.cjs +2 -0
- package/dist/noDataNotice-90d39b08.cjs.map +1 -0
- package/dist/noDataQuickView-4780683b.cjs +2 -0
- package/dist/noDataQuickView-4780683b.cjs.map +1 -0
- package/dist/not-found.svg +1 -0
- package/dist/pihr-ui-kit.cjs.js +4 -0
- package/dist/pihr-ui-kit.cjs.js.map +1 -0
- package/dist/services/employeeService.js +23 -0
- package/dist/services/employeeService.js.map +1 -0
- package/dist/services/httpService.js +15 -0
- package/dist/services/httpService.js.map +1 -0
- package/dist/stats.html +4949 -0
- package/dist/style.css +1 -0
- package/dist/types/App.d.ts +2 -0
- package/dist/types/assets/icons/ApprovalPaperWithSeal.d.ts +3 -0
- package/dist/types/assets/icons/CheckIconCircleGreen.d.ts +3 -0
- package/dist/types/assets/icons/CrossIconCircleRed.d.ts +3 -0
- package/dist/types/assets/icons/ExcelFileIcon.d.ts +2 -0
- package/dist/types/assets/icons/RejectionPaperWithSeal.d.ts +3 -0
- package/dist/types/assets/icons/addIcon.d.ts +3 -0
- package/dist/types/assets/icons/attachIcon.d.ts +4 -0
- package/dist/types/assets/icons/bookmarkIcon.d.ts +4 -0
- package/dist/types/assets/icons/bulbIcon.d.ts +3 -0
- package/dist/types/assets/icons/calendar.d.ts +3 -0
- package/dist/types/assets/icons/checkboxIcon.d.ts +1 -0
- package/dist/types/assets/icons/chevronDownIcon.d.ts +4 -0
- package/dist/types/assets/icons/chevronRightIcon.d.ts +4 -0
- package/dist/types/assets/icons/close.d.ts +2 -0
- package/dist/types/assets/icons/confirmIcon.d.ts +3 -0
- package/dist/types/assets/icons/cross.d.ts +3 -0
- package/dist/types/assets/icons/deleteIcon.d.ts +4 -0
- package/dist/types/assets/icons/deleteIconV1.d.ts +6 -0
- package/dist/types/assets/icons/deleteIconV2.d.ts +3 -0
- package/dist/types/assets/icons/deleteIconV4.d.ts +3 -0
- package/dist/types/assets/icons/deleteModalIcon.d.ts +6 -0
- package/dist/types/assets/icons/downloadIcon.d.ts +4 -0
- package/dist/types/assets/icons/downloadIconV2.d.ts +4 -0
- package/dist/types/assets/icons/editIconLatest.d.ts +3 -0
- package/dist/types/assets/icons/editIconv2.d.ts +3 -0
- package/dist/types/assets/icons/file-pdf.d.ts +2 -0
- package/dist/types/assets/icons/heartIcon.d.ts +4 -0
- package/dist/types/assets/icons/index.d.ts +11 -0
- package/dist/types/assets/icons/language.d.ts +2 -0
- package/dist/types/assets/icons/leftArrow.d.ts +2 -0
- package/dist/types/assets/icons/leftArrowIcon.d.ts +5 -0
- package/dist/types/assets/icons/noDataAmount.d.ts +2 -0
- package/dist/types/assets/icons/noDataAttendanceSummery.d.ts +2 -0
- package/dist/types/assets/icons/noDataFoundImg.d.ts +2 -0
- package/dist/types/assets/icons/noDataLeaveCalendar.d.ts +2 -0
- package/dist/types/assets/icons/noDataMainDashboard.d.ts +2 -0
- package/dist/types/assets/icons/noDataNotice.d.ts +2 -0
- package/dist/types/assets/icons/noDataQuickView.d.ts +2 -0
- package/dist/types/assets/icons/plusIcon.d.ts +3 -0
- package/dist/types/assets/icons/rightArrowIcon.d.ts +5 -0
- package/dist/types/assets/icons/rtl.d.ts +2 -0
- package/dist/types/assets/icons/searchIcon.d.ts +5 -0
- package/dist/types/assets/icons/tooltipInfoIcon.d.ts +3 -0
- package/dist/types/assets/icons/topSheet.d.ts +2 -0
- package/dist/types/assets/icons/verticalDots.d.ts +6 -0
- package/dist/types/assets/icons/warningIcon.d.ts +5 -0
- package/dist/types/assets/icons/widgetIcon.d.ts +2 -0
- package/dist/types/assets/icons/xIcon.d.ts +2 -0
- package/dist/types/components/auth/WithPermission.d.ts +7 -0
- package/dist/types/components/common/NoDataFound/index.d.ts +4 -0
- package/dist/types/components/common/appButton/index.d.ts +14 -0
- package/dist/types/components/common/banner/index.d.ts +11 -0
- package/dist/types/components/common/button/CancelBtn.d.ts +13 -0
- package/dist/types/components/common/button/PrimaryBtn.d.ts +13 -0
- package/dist/types/components/common/button/SaveBtn.d.ts +13 -0
- package/dist/types/components/common/button/actionEdit.d.ts +7 -0
- package/dist/types/components/common/button/addNew.d.ts +7 -0
- package/dist/types/components/common/button/blueCancel.d.ts +7 -0
- package/dist/types/components/common/button/blueSave.d.ts +7 -0
- package/dist/types/components/common/button/iconButton.d.ts +13 -0
- package/dist/types/components/common/button/index.d.ts +14 -0
- package/dist/types/components/common/button/lightButton.d.ts +8 -0
- package/dist/types/components/common/button/secondaryOutlinedButton.d.ts +9 -0
- package/dist/types/components/common/buttons/CancelBtn.d.ts +13 -0
- package/dist/types/components/common/buttons/blueSave.d.ts +7 -0
- package/dist/types/components/common/cards/employeeCard.d.ts +7 -0
- package/dist/types/components/common/checkbox.d.ts +10 -0
- package/dist/types/components/common/colorPicker/index.d.ts +4 -0
- package/dist/types/components/common/confirmModal/deleteConfirmationModal.d.ts +7 -0
- package/dist/types/components/common/confirmModal/deleteModalWrapper.d.ts +10 -0
- package/dist/types/components/common/confirmModal/index.d.ts +9 -0
- package/dist/types/components/common/delete/index.d.ts +15 -0
- package/dist/types/components/common/dropDownIndicator/index.d.ts +4 -0
- package/dist/types/components/common/dropdown/index.d.ts +24 -0
- package/dist/types/components/common/errorMessage/index.d.ts +9 -0
- package/dist/types/components/common/expandableText.d.ts +7 -0
- package/dist/types/components/common/input/contactInput.d.ts +14 -0
- package/dist/types/components/common/input/customInput.d.ts +29 -0
- package/dist/types/components/common/input/indeterminateCheckBox.d.ts +4 -0
- package/dist/types/components/common/input/numberInput.d.ts +6 -0
- package/dist/types/components/common/input/radioButton.d.ts +11 -0
- package/dist/types/components/common/input/searchbox.d.ts +10 -0
- package/dist/types/components/common/label/truncateLabel.d.ts +10 -0
- package/dist/types/components/common/modal/createUpdate/createUpdateModalFooter.d.ts +7 -0
- package/dist/types/components/common/modal/createUpdate/createUpdateModalWrapper.d.ts +9 -0
- package/dist/types/components/common/modal/modalHeader.d.ts +8 -0
- package/dist/types/components/common/modalWrapper/approve/index.d.ts +14 -0
- package/dist/types/components/common/modalWrapper/deleteModalWrapper.d.ts +10 -0
- package/dist/types/components/common/modalWrapper/reject/index.d.ts +14 -0
- package/dist/types/components/common/pagination/index.d.ts +8 -0
- package/dist/types/components/common/pagination/pageLink.d.ts +6 -0
- package/dist/types/components/common/reportComponent/filterItems/Checkbox.d.ts +14 -0
- package/dist/types/components/common/reportComponent/filterItems/CheckboxGroup.d.ts +16 -0
- package/dist/types/components/common/reportComponent/filterItems/Date.d.ts +17 -0
- package/dist/types/components/common/reportComponent/filterItems/DateRange.d.ts +22 -0
- package/dist/types/components/common/reportComponent/filterItems/Input.d.ts +17 -0
- package/dist/types/components/common/reportComponent/filterItems/InputRange.d.ts +16 -0
- package/dist/types/components/common/reportComponent/filterItems/ParentChildCheckboxGroup.d.ts +25 -0
- package/dist/types/components/common/reportComponent/filterItems/RadioButtons.d.ts +16 -0
- package/dist/types/components/common/reportComponent/filterItems/Select.d.ts +31 -0
- package/dist/types/components/common/reportComponent/filterItems/TimeRange.d.ts +15 -0
- package/dist/types/components/common/reportComponent/index.d.ts +27 -0
- package/dist/types/components/common/reportComponent/utils.d.ts +62 -0
- package/dist/types/components/common/singleAttachmentInput.d.ts +21 -0
- package/dist/types/components/common/switch/switch.d.ts +9 -0
- package/dist/types/components/common/table/asyncTable.d.ts +7 -0
- package/dist/types/components/common/table/cells/bodyCell.d.ts +7 -0
- package/dist/types/components/common/table/cells/headerCell.d.ts +7 -0
- package/dist/types/components/common/table/cells/tableColumnBody.d.ts +7 -0
- package/dist/types/components/common/table/cells/tableColumnHeader.d.ts +7 -0
- package/dist/types/components/common/table/simpleTable.d.ts +15 -0
- package/dist/types/components/common/table/vkTable.d.ts +24 -0
- package/dist/types/components/common/tooltip/infoTooltip.d.ts +6 -0
- package/dist/types/components/common/userHelpTips/index.d.ts +11 -0
- package/dist/types/components/common/wrapper/index.d.ts +3 -0
- package/dist/types/components/dsl/DslTable/DslTable.d.ts +4 -0
- package/dist/types/components/dsl/DslTable/DslTableLayout.d.ts +1 -0
- package/dist/types/components/dsl/DslTable/components/ActionRenderer.d.ts +10 -0
- package/dist/types/components/dsl/DslTable/components/DeleteEntityModal.d.ts +10 -0
- package/dist/types/components/dsl/DslTable/components/ModalManager.d.ts +1 -0
- package/dist/types/components/dsl/DslTable/core/context/DslTableContext.d.ts +64 -0
- package/dist/types/components/dsl/DslTable/core/context/DslTableProvider.d.ts +6 -0
- package/dist/types/components/dsl/DslTable/core/utils/configs.d.ts +11 -0
- package/dist/types/components/dsl/DslTable/core/utils/index.d.ts +3 -0
- package/dist/types/components/dsl/DslTable/factories/ActionFactories.d.ts +63 -0
- package/dist/types/components/dsl/DslTable/factories/index.d.ts +1 -0
- package/dist/types/components/dsl/DslTable/features/Table/TableRenderer.d.ts +1 -0
- package/dist/types/components/dsl/DslTable/features/Table/columns/components/ColumnRenderers.d.ts +30 -0
- package/dist/types/components/dsl/DslTable/features/Table/columns/components/RowActionsRenderer.d.ts +10 -0
- package/dist/types/components/dsl/DslTable/features/Table/columns/components/TableBodyWrapper.d.ts +6 -0
- package/dist/types/components/dsl/DslTable/features/Table/columns/index.d.ts +1 -0
- package/dist/types/components/dsl/DslTable/features/Table/columns/utils/columnUtils.d.ts +46 -0
- package/dist/types/components/dsl/DslTable/features/Topbar/TopbarRenderer.d.ts +1 -0
- package/dist/types/components/dsl/DslTable/features/Topbar/components/filters/FilterItems.d.ts +21 -0
- package/dist/types/components/dsl/DslTable/features/Topbar/components/filters/SelectFilterItem.d.ts +10 -0
- package/dist/types/components/dsl/DslTable/features/Topbar/components/renderers/ActionsRenderer.d.ts +7 -0
- package/dist/types/components/dsl/DslTable/features/Topbar/components/renderers/BulkActionsRenderer.d.ts +7 -0
- package/dist/types/components/dsl/DslTable/features/Topbar/components/renderers/FiltersRenderer.d.ts +7 -0
- package/dist/types/components/dsl/DslTable/features/Topbar/components/renderers/SearchRenderer.d.ts +16 -0
- package/dist/types/components/dsl/DslTable/features/Topbar/hooks/useTopbarLogic.d.ts +8 -0
- package/dist/types/components/dsl/DslTable/index.d.ts +3 -0
- package/dist/types/components/dsl/DslTable/types/actions.d.ts +103 -0
- package/dist/types/components/dsl/DslTable/types/base.d.ts +58 -0
- package/dist/types/components/dsl/DslTable/types/dsl.d.ts +71 -0
- package/dist/types/components/dsl/DslTable/types/index.d.ts +5 -0
- package/dist/types/components/dsl/DslTable/types/table.d.ts +167 -0
- package/dist/types/components/dsl/DslTable/types/topbar.d.ts +167 -0
- package/dist/types/components/dsl/DslTable/types/utils.d.ts +11 -0
- package/dist/types/components/errors/emptyLoadingFallback.d.ts +2 -0
- package/dist/types/components/errors/errorFallback.d.ts +6 -0
- package/dist/types/components/formGenerator/components/modalWrapper.d.ts +10 -0
- package/dist/types/components/formGenerator/constants.d.ts +53 -0
- package/dist/types/components/formGenerator/helpers/index.d.ts +34 -0
- package/dist/types/components/formGenerator/hooks/useFormGenerator.d.ts +18 -0
- package/dist/types/components/formGenerator/index.d.ts +3 -0
- package/dist/types/components/formGenerator/layouts/footer.d.ts +10 -0
- package/dist/types/components/formGenerator/layouts/formLayout.d.ts +11 -0
- package/dist/types/components/formGenerator/renderer/FieldDispatcher.d.ts +4 -0
- package/dist/types/components/formGenerator/renderer/fieldRenderer.d.ts +4 -0
- package/dist/types/components/formGenerator/renderer/fields/attachments/multiAttachment.d.ts +23 -0
- package/dist/types/components/formGenerator/renderer/fields/attachments/singleAttachment.d.ts +26 -0
- package/dist/types/components/formGenerator/renderer/fields/checkboxField.d.ts +2 -0
- package/dist/types/components/formGenerator/renderer/fields/datePickerField.d.ts +2 -0
- package/dist/types/components/formGenerator/renderer/fields/datePickerRangeField.d.ts +2 -0
- package/dist/types/components/formGenerator/renderer/fields/employeeSelect.d.ts +18 -0
- package/dist/types/components/formGenerator/renderer/fields/employeeSelectField.d.ts +2 -0
- package/dist/types/components/formGenerator/renderer/fields/inputField.d.ts +2 -0
- package/dist/types/components/formGenerator/renderer/fields/multiAttachmentField.d.ts +2 -0
- package/dist/types/components/formGenerator/renderer/fields/radioField.d.ts +2 -0
- package/dist/types/components/formGenerator/renderer/fields/radioGroup.d.ts +18 -0
- package/dist/types/components/formGenerator/renderer/fields/select/BaseSelect.d.ts +22 -0
- package/dist/types/components/formGenerator/renderer/fields/select/index.d.ts +9 -0
- package/dist/types/components/formGenerator/renderer/fields/singleAttachmentField.d.ts +2 -0
- package/dist/types/components/formGenerator/renderer/fields/textareaField.d.ts +2 -0
- package/dist/types/components/formGenerator/renderer/fields/utils.d.ts +3 -0
- package/dist/types/components/formGenerator/renderer/types.d.ts +1 -0
- package/dist/types/components/formGenerator/types/common.d.ts +105 -0
- package/dist/types/components/formGenerator/types/fields.d.ts +238 -0
- package/dist/types/components/formGenerator/types/index.d.ts +95 -0
- package/dist/types/components/formGenerator/types/layout.d.ts +73 -0
- package/dist/types/components/hookform/hookFormItem.d.ts +9 -0
- package/dist/types/components/layout/status/paymentDue.d.ts +6 -0
- package/dist/types/components/routes/protectedRoute.d.ts +6 -0
- package/dist/types/components/table/dataTable/components/overlays/loadingOverlay.d.ts +7 -0
- package/dist/types/components/table/dataTable/components/overlays/notFoundOverlay.d.ts +7 -0
- package/dist/types/components/table/dataTable/components/pagination/index.d.ts +15 -0
- package/dist/types/components/table/dataTable/components/pagination/paginationButton.d.ts +6 -0
- package/dist/types/components/table/dataTable/components/pagination/usePagination.d.ts +12 -0
- package/dist/types/components/table/dataTable/components/tableViews/standardTable.d.ts +6 -0
- package/dist/types/components/table/dataTable/components/tableViews/virtualTable.d.ts +6 -0
- package/dist/types/components/table/dataTable/index.d.ts +32 -0
- package/dist/types/components/table/dataTable/types.d.ts +19 -0
- package/dist/types/components/ui/customDatePicker.d.ts +28 -0
- package/dist/types/components/ui/customRangeDatePicker.d.ts +32 -0
- package/dist/types/components/ui/loading/emptyLoadingFallback.d.ts +2 -0
- package/dist/types/components/ui/loading/loadingFallback.d.ts +2 -0
- package/dist/types/components/ui/status.d.ts +9 -0
- package/dist/types/components/ui/table.d.ts +28 -0
- package/dist/types/components/ui/toggle.d.ts +9 -0
- package/dist/types/hooks/useCurrentPage.d.ts +2 -0
- package/dist/types/hooks/useDebounce.d.ts +2 -0
- package/dist/types/hooks/useOnClickOutside.d.ts +2 -0
- package/dist/types/hooks/useOnClickOutsideRef.d.ts +2 -0
- package/dist/types/hooks/usePagination.d.ts +2 -0
- package/dist/types/hooks/useWhyDidYouUpdate.d.ts +2 -0
- package/dist/types/i18n/index.d.ts +2 -0
- package/dist/types/index.d.ts +50 -0
- package/dist/types/libs/index.d.ts +2 -0
- package/dist/types/main.d.ts +2 -0
- package/dist/types/services/employeeService.d.ts +11 -0
- package/dist/types/services/httpService.d.ts +11 -0
- package/dist/types/services/reportService.d.ts +4 -0
- package/dist/types/types/common.d.ts +11 -0
- package/dist/types/types/menu.d.ts +26 -0
- package/dist/types/utils/asyncTableStyles.d.ts +19 -0
- package/dist/types/utils/auth-helpers.d.ts +9 -0
- package/dist/types/utils/cn/index.d.ts +2 -0
- package/dist/types/utils/compareObjects.d.ts +1 -0
- package/dist/types/utils/constants.d.ts +17 -0
- package/dist/types/utils/cookie.d.ts +1 -0
- package/dist/types/utils/data.d.ts +6 -0
- package/dist/types/utils/dataStructures/trie.d.ts +6 -0
- package/dist/types/utils/date.d.ts +16 -0
- package/dist/types/utils/debounce.d.ts +1 -0
- package/dist/types/utils/helpers.d.ts +5 -0
- package/dist/types/utils/index.d.ts +3 -0
- package/dist/types/utils/local-storage.d.ts +4 -0
- package/dist/types/utils/pagination-helper.d.ts +1 -0
- package/dist/types/utils/report-endpoint.d.ts +86 -0
- package/dist/types/utils/screenInfo.d.ts +1 -0
- package/dist/types/utils/selectStyles.d.ts +6 -0
- package/dist/types/utils/toast-helpers.d.ts +3 -0
- package/dist/types/utils/translation-helpers.d.ts +4 -0
- package/dist/utils/asyncTableStyles.js +35 -0
- package/dist/utils/asyncTableStyles.js.map +1 -0
- package/dist/utils/auth-helpers.js +107 -0
- package/dist/utils/auth-helpers.js.map +1 -0
- package/dist/utils/constants.js +5 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/dataStructures/trie.js +38 -0
- package/dist/utils/dataStructures/trie.js.map +1 -0
- package/dist/utils/date.js +42 -0
- package/dist/utils/date.js.map +1 -0
- package/dist/utils/debounce.js +14 -0
- package/dist/utils/debounce.js.map +1 -0
- package/dist/utils/helpers.js +9 -0
- package/dist/utils/helpers.js.map +1 -0
- package/dist/utils/index.js +17 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/local-storage.js +20 -0
- package/dist/utils/local-storage.js.map +1 -0
- package/dist/utils/pagination-helper.js +43 -0
- package/dist/utils/pagination-helper.js.map +1 -0
- package/dist/utils/report-endpoint.js +90 -0
- package/dist/utils/report-endpoint.js.map +1 -0
- package/dist/utils/screenInfo.js +25 -0
- package/dist/utils/screenInfo.js.map +1 -0
- package/dist/utils/selectStyles.js +10 -0
- package/dist/utils/selectStyles.js.map +1 -0
- package/dist/utils/toast-helpers.js +9 -0
- package/dist/utils/toast-helpers.js.map +1 -0
- package/dist/utils/translation-helpers.js +9 -0
- package/dist/utils/translation-helpers.js.map +1 -0
- package/dist/vite.svg +1 -0
- package/dist/widgetIcon-f87570b7.cjs +2 -0
- package/dist/widgetIcon-f87570b7.cjs.map +1 -0
- package/package.json +132 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
const E = {
|
|
2
|
+
CREATE: "create",
|
|
3
|
+
UPDATE: "update"
|
|
4
|
+
}, e = {
|
|
5
|
+
ON_MODAL: "onModal",
|
|
6
|
+
ON_PAGE: "onPage"
|
|
7
|
+
}, t = {
|
|
8
|
+
TEXT: "text",
|
|
9
|
+
NUMBER: "number",
|
|
10
|
+
PASSWORD: "password",
|
|
11
|
+
EMAIL: "email",
|
|
12
|
+
TEXTAREA: "textarea",
|
|
13
|
+
SELECT: "select",
|
|
14
|
+
MULTISELECT: "multiselect",
|
|
15
|
+
EMPLOYEE_SELECT: "employeeSelect",
|
|
16
|
+
EMPLOYEE_MULTI_SELECT: "employeeMultiSelect",
|
|
17
|
+
DATE: "date",
|
|
18
|
+
DATE_RANGE: "dateRange",
|
|
19
|
+
CHECKBOX: "checkbox",
|
|
20
|
+
RADIO: "radio",
|
|
21
|
+
SINGLE_ATTACHMENT: "singleAttachment",
|
|
22
|
+
MULTI_ATTACHMENT: "multiAttachment",
|
|
23
|
+
CUSTOM: "custom"
|
|
24
|
+
}, T = {
|
|
25
|
+
JSON: "json",
|
|
26
|
+
FORM_DATA: "formData"
|
|
27
|
+
}, A = {
|
|
28
|
+
ID: "id",
|
|
29
|
+
LABEL: "label",
|
|
30
|
+
VALUE: "value",
|
|
31
|
+
TEXT: "text",
|
|
32
|
+
ATTACHMENT_DETAIL: "attachment_detail",
|
|
33
|
+
DELETED_FILES: "deleted_files"
|
|
34
|
+
};
|
|
35
|
+
export {
|
|
36
|
+
A as DEFAULT_FIELD_KEYS,
|
|
37
|
+
t as FORM_FIELD_TYPES,
|
|
38
|
+
E as FORM_MODES,
|
|
39
|
+
T as FORM_PAYLOAD_TYPES,
|
|
40
|
+
e as FORM_PLACEMENTS
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../src/components/formGenerator/constants.ts"],"sourcesContent":["/**\n * Form modes supported by FormGenerator.\n */\nexport const FORM_MODES = {\n CREATE: \"create\",\n UPDATE: \"update\",\n} as const;\n\n/**\n * Form placement options.\n */\nexport const FORM_PLACEMENTS = {\n ON_MODAL: \"onModal\",\n ON_PAGE: \"onPage\",\n} as const;\n\n/**\n * Form field types supported by FormGenerator.\n */\nexport const FORM_FIELD_TYPES = {\n TEXT: \"text\",\n NUMBER: \"number\",\n PASSWORD: \"password\",\n EMAIL: \"email\",\n TEXTAREA: \"textarea\",\n SELECT: \"select\",\n MULTISELECT: \"multiselect\",\n EMPLOYEE_SELECT: \"employeeSelect\",\n EMPLOYEE_MULTI_SELECT: \"employeeMultiSelect\",\n DATE: \"date\",\n DATE_RANGE: \"dateRange\",\n CHECKBOX: \"checkbox\",\n RADIO: \"radio\",\n SINGLE_ATTACHMENT: \"singleAttachment\",\n MULTI_ATTACHMENT: \"multiAttachment\",\n CUSTOM: \"custom\",\n} as const;\n\n/**\n * Payload formats for form submission.\n */\nexport const FORM_PAYLOAD_TYPES = {\n JSON: \"json\",\n FORM_DATA: \"formData\",\n} as const;\n\n/**\n * Default field keys and values used across FormGenerator.\n */\nexport const DEFAULT_FIELD_KEYS = {\n ID: \"id\",\n LABEL: \"label\",\n VALUE: \"value\",\n TEXT: \"text\",\n ATTACHMENT_DETAIL: \"attachment_detail\",\n DELETED_FILES: \"deleted_files\",\n} as const;\n"],"names":["FORM_MODES","FORM_PLACEMENTS","FORM_FIELD_TYPES","FORM_PAYLOAD_TYPES","DEFAULT_FIELD_KEYS"],"mappings":"AAGO,MAAMA,IAAa;AAAA,EACxB,QAAQ;AAAA,EACR,QAAQ;AACV,GAKaC,IAAkB;AAAA,EAC7B,UAAU;AAAA,EACV,SAAS;AACX,GAKaC,IAAmB;AAAA,EAC9B,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,OAAO;AAAA,EACP,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,uBAAuB;AAAA,EACvB,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,OAAO;AAAA,EACP,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,QAAQ;AACV,GAKaC,IAAqB;AAAA,EAChC,MAAM;AAAA,EACN,WAAW;AACb,GAKaC,IAAqB;AAAA,EAChC,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM;AAAA,EACN,mBAAmB;AAAA,EACnB,eAAe;AACjB;"}
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
import { parseDate as f, stringifyDate as M } from "../../../utils/date.js";
|
|
2
|
+
import { FORM_FIELD_TYPES as o, FORM_PAYLOAD_TYPES as E, DEFAULT_FIELD_KEYS as d } from "../constants.js";
|
|
3
|
+
import { getCookie as u } from "typescript-cookie";
|
|
4
|
+
function P(l) {
|
|
5
|
+
const s = {};
|
|
6
|
+
return l.forEach((c) => {
|
|
7
|
+
switch (c.type) {
|
|
8
|
+
case o.TEXT:
|
|
9
|
+
case o.TEXTAREA:
|
|
10
|
+
case o.PASSWORD:
|
|
11
|
+
case o.EMAIL:
|
|
12
|
+
s[c.name] = "";
|
|
13
|
+
break;
|
|
14
|
+
case o.NUMBER:
|
|
15
|
+
s[c.name] = void 0;
|
|
16
|
+
break;
|
|
17
|
+
case o.DATE:
|
|
18
|
+
case o.DATE_RANGE:
|
|
19
|
+
s[c.name] = null;
|
|
20
|
+
break;
|
|
21
|
+
case o.SELECT:
|
|
22
|
+
case o.MULTISELECT:
|
|
23
|
+
case o.EMPLOYEE_SELECT:
|
|
24
|
+
case o.EMPLOYEE_MULTI_SELECT:
|
|
25
|
+
s[c.name] = null;
|
|
26
|
+
break;
|
|
27
|
+
case o.CHECKBOX:
|
|
28
|
+
s[c.name] = !1;
|
|
29
|
+
break;
|
|
30
|
+
default:
|
|
31
|
+
s[c.name] = void 0;
|
|
32
|
+
}
|
|
33
|
+
}), s;
|
|
34
|
+
}
|
|
35
|
+
const R = (l, s) => {
|
|
36
|
+
if (l == null) {
|
|
37
|
+
if (s === o.CHECKBOX)
|
|
38
|
+
return !1;
|
|
39
|
+
if (s === o.NUMBER)
|
|
40
|
+
return;
|
|
41
|
+
if (s === o.DATE || s === o.SELECT || s === o.MULTISELECT || s === o.EMPLOYEE_SELECT || s === o.EMPLOYEE_MULTI_SELECT)
|
|
42
|
+
return null;
|
|
43
|
+
if (s === o.TEXT || s === o.TEXTAREA || s === o.PASSWORD || s === o.EMAIL)
|
|
44
|
+
return "";
|
|
45
|
+
if (s === o.DATE_RANGE)
|
|
46
|
+
return null;
|
|
47
|
+
if (s === o.MULTI_ATTACHMENT)
|
|
48
|
+
return [];
|
|
49
|
+
if (s === o.SINGLE_ATTACHMENT)
|
|
50
|
+
return null;
|
|
51
|
+
if (s === o.CUSTOM)
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
switch (s) {
|
|
55
|
+
case o.DATE:
|
|
56
|
+
return typeof l == "string" && l ? f(l, u("langfmt")) : l || void 0;
|
|
57
|
+
case o.CHECKBOX:
|
|
58
|
+
return !!l;
|
|
59
|
+
case o.NUMBER:
|
|
60
|
+
return l == null ? void 0 : l.toString();
|
|
61
|
+
default:
|
|
62
|
+
return l;
|
|
63
|
+
}
|
|
64
|
+
}, C = (l, s) => {
|
|
65
|
+
var c, i;
|
|
66
|
+
if (l == null)
|
|
67
|
+
return l;
|
|
68
|
+
switch (s) {
|
|
69
|
+
case o.DATE:
|
|
70
|
+
return M(l, u("langfmt"));
|
|
71
|
+
case o.SELECT:
|
|
72
|
+
case o.EMPLOYEE_SELECT:
|
|
73
|
+
return (l == null ? void 0 : l.value) ?? l;
|
|
74
|
+
case o.MULTISELECT:
|
|
75
|
+
return ((c = l == null ? void 0 : l.map((r) => r == null ? void 0 : r.value)) == null ? void 0 : c.join(",")) ?? l;
|
|
76
|
+
case o.EMPLOYEE_MULTI_SELECT:
|
|
77
|
+
return ((i = l == null ? void 0 : l.map((r) => r == null ? void 0 : r.value)) == null ? void 0 : i.join(",")) ?? l;
|
|
78
|
+
case o.CHECKBOX:
|
|
79
|
+
return !!l;
|
|
80
|
+
case o.NUMBER:
|
|
81
|
+
return Number(l);
|
|
82
|
+
default:
|
|
83
|
+
return l;
|
|
84
|
+
}
|
|
85
|
+
}, A = (l, s) => l.transformToApi ? l.transformToApi(s) : C(s, l.type), D = (l, s, c, i, r) => {
|
|
86
|
+
const p = c.filter((t) => t instanceof File);
|
|
87
|
+
console.log("files", p);
|
|
88
|
+
const g = c.filter((t) => !(t instanceof File));
|
|
89
|
+
console.log("non file attachments", g), p.forEach((t) => {
|
|
90
|
+
l.append(s, t);
|
|
91
|
+
});
|
|
92
|
+
const n = r == null ? void 0 : r.syncConfig, a = i == null ? void 0 : i[(n == null ? void 0 : n.attachmentsFieldName) ?? d.ATTACHMENT_DETAIL];
|
|
93
|
+
if (Array.isArray(a)) {
|
|
94
|
+
const t = (n == null ? void 0 : n.attachmentIdFieldName) ?? d.ID, T = (n == null ? void 0 : n.payloadFieldNameForDeleted) ?? d.DELETED_FILES;
|
|
95
|
+
a.forEach((m) => {
|
|
96
|
+
!g.some(
|
|
97
|
+
(L) => m[t] === L.id
|
|
98
|
+
) && l.append(T, m[t]);
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}, _ = ({
|
|
102
|
+
data: l,
|
|
103
|
+
fields: s,
|
|
104
|
+
excludeFromPayload: c = [],
|
|
105
|
+
record: i,
|
|
106
|
+
globalTransform: r,
|
|
107
|
+
recordId: p,
|
|
108
|
+
recordIdField: g
|
|
109
|
+
}) => {
|
|
110
|
+
const n = new FormData();
|
|
111
|
+
return s.forEach((a) => {
|
|
112
|
+
if (c.includes(a.name))
|
|
113
|
+
return;
|
|
114
|
+
const t = A(a, l[a.name]);
|
|
115
|
+
t != null && (a.type === o.MULTI_ATTACHMENT && Array.isArray(t) ? D(
|
|
116
|
+
n,
|
|
117
|
+
a.name,
|
|
118
|
+
t,
|
|
119
|
+
i,
|
|
120
|
+
a
|
|
121
|
+
) : n.append(a.name, t));
|
|
122
|
+
}), p && n.append(g, p), r ? r(l, n) : n;
|
|
123
|
+
}, S = ({
|
|
124
|
+
data: l,
|
|
125
|
+
fields: s,
|
|
126
|
+
excludeFromPayload: c = [],
|
|
127
|
+
globalTransform: i,
|
|
128
|
+
recordId: r,
|
|
129
|
+
recordIdField: p
|
|
130
|
+
}) => {
|
|
131
|
+
const g = {};
|
|
132
|
+
return s.forEach((n) => {
|
|
133
|
+
if (c.includes(n.name))
|
|
134
|
+
return;
|
|
135
|
+
const a = A(n, l[n.name]);
|
|
136
|
+
a !== void 0 && (g[n.name] = a);
|
|
137
|
+
}), r && (g[p] = r), i ? i(l, g) : g;
|
|
138
|
+
}, h = ({
|
|
139
|
+
data: l,
|
|
140
|
+
fields: s,
|
|
141
|
+
excludeFromPayload: c = [],
|
|
142
|
+
payloadType: i = E.JSON,
|
|
143
|
+
globalTransform: r,
|
|
144
|
+
record: p,
|
|
145
|
+
recordId: g,
|
|
146
|
+
recordIdField: n = d.ID
|
|
147
|
+
}) => {
|
|
148
|
+
const a = {
|
|
149
|
+
data: l,
|
|
150
|
+
fields: s,
|
|
151
|
+
excludeFromPayload: c,
|
|
152
|
+
globalTransform: r,
|
|
153
|
+
record: p,
|
|
154
|
+
recordId: g,
|
|
155
|
+
recordIdField: n
|
|
156
|
+
};
|
|
157
|
+
return i === E.FORM_DATA ? _(a) : S(a);
|
|
158
|
+
}, e = {
|
|
159
|
+
"grid-cols-1": "grid-cols-1",
|
|
160
|
+
"grid-cols-2": "grid-cols-2",
|
|
161
|
+
"grid-cols-3": "grid-cols-3",
|
|
162
|
+
"grid-cols-4": "grid-cols-4",
|
|
163
|
+
"grid-cols-5": "grid-cols-5",
|
|
164
|
+
"grid-cols-6": "grid-cols-6",
|
|
165
|
+
"grid-cols-12": "grid-cols-12",
|
|
166
|
+
"sm:grid-cols-1": "sm:grid-cols-1",
|
|
167
|
+
"sm:grid-cols-2": "sm:grid-cols-2",
|
|
168
|
+
"sm:grid-cols-3": "sm:grid-cols-3",
|
|
169
|
+
"sm:grid-cols-4": "sm:grid-cols-4",
|
|
170
|
+
"sm:grid-cols-5": "sm:grid-cols-5",
|
|
171
|
+
"sm:grid-cols-6": "sm:grid-cols-6",
|
|
172
|
+
"sm:grid-cols-12": "sm:grid-cols-12",
|
|
173
|
+
"md:grid-cols-1": "md:grid-cols-1",
|
|
174
|
+
"md:grid-cols-2": "md:grid-cols-2",
|
|
175
|
+
"md:grid-cols-3": "md:grid-cols-3",
|
|
176
|
+
"md:grid-cols-4": "md:grid-cols-4",
|
|
177
|
+
"md:grid-cols-5": "md:grid-cols-5",
|
|
178
|
+
"md:grid-cols-6": "md:grid-cols-6",
|
|
179
|
+
"md:grid-cols-12": "md:grid-cols-12",
|
|
180
|
+
"lg:grid-cols-1": "lg:grid-cols-1",
|
|
181
|
+
"lg:grid-cols-2": "lg:grid-cols-2",
|
|
182
|
+
"lg:grid-cols-3": "lg:grid-cols-3",
|
|
183
|
+
"lg:grid-cols-4": "lg:grid-cols-4",
|
|
184
|
+
"lg:grid-cols-5": "lg:grid-cols-5",
|
|
185
|
+
"lg:grid-cols-6": "lg:grid-cols-6",
|
|
186
|
+
"lg:grid-cols-12": "lg:grid-cols-12",
|
|
187
|
+
"xl:grid-cols-1": "xl:grid-cols-1",
|
|
188
|
+
"xl:grid-cols-2": "xl:grid-cols-2",
|
|
189
|
+
"xl:grid-cols-3": "xl:grid-cols-3",
|
|
190
|
+
"xl:grid-cols-4": "xl:grid-cols-4",
|
|
191
|
+
"xl:grid-cols-5": "xl:grid-cols-5",
|
|
192
|
+
"xl:grid-cols-6": "xl:grid-cols-6",
|
|
193
|
+
"xl:grid-cols-12": "xl:grid-cols-12",
|
|
194
|
+
"2xl:grid-cols-1": "2xl:grid-cols-1",
|
|
195
|
+
"2xl:grid-cols-2": "2xl:grid-cols-2",
|
|
196
|
+
"2xl:grid-cols-3": "2xl:grid-cols-3",
|
|
197
|
+
"2xl:grid-cols-4": "2xl:grid-cols-4",
|
|
198
|
+
"2xl:grid-cols-5": "2xl:grid-cols-5",
|
|
199
|
+
"2xl:grid-cols-6": "2xl:grid-cols-6",
|
|
200
|
+
"2xl:grid-cols-12": "2xl:grid-cols-12"
|
|
201
|
+
}, x = {
|
|
202
|
+
"col-span-1": "col-span-1",
|
|
203
|
+
"col-span-2": "col-span-2",
|
|
204
|
+
"col-span-3": "col-span-3",
|
|
205
|
+
"col-span-4": "col-span-4",
|
|
206
|
+
"col-span-5": "col-span-5",
|
|
207
|
+
"col-span-6": "col-span-6",
|
|
208
|
+
"col-span-12": "col-span-12",
|
|
209
|
+
"col-span-full": "col-span-full",
|
|
210
|
+
"sm:col-span-1": "sm:col-span-1",
|
|
211
|
+
"sm:col-span-2": "sm:col-span-2",
|
|
212
|
+
"sm:col-span-3": "sm:col-span-3",
|
|
213
|
+
"sm:col-span-4": "sm:col-span-4",
|
|
214
|
+
"sm:col-span-5": "sm:col-span-5",
|
|
215
|
+
"sm:col-span-6": "sm:col-span-6",
|
|
216
|
+
"sm:col-span-12": "sm:col-span-12",
|
|
217
|
+
"sm:col-span-full": "sm:col-span-full",
|
|
218
|
+
"md:col-span-1": "md:col-span-1",
|
|
219
|
+
"md:col-span-2": "md:col-span-2",
|
|
220
|
+
"md:col-span-3": "md:col-span-3",
|
|
221
|
+
"md:col-span-4": "md:col-span-4",
|
|
222
|
+
"md:col-span-5": "md:col-span-5",
|
|
223
|
+
"md:col-span-6": "md:col-span-6",
|
|
224
|
+
"md:col-span-12": "md:col-span-12",
|
|
225
|
+
"md:col-span-full": "md:col-span-full",
|
|
226
|
+
"lg:col-span-1": "lg:col-span-1",
|
|
227
|
+
"lg:col-span-2": "lg:col-span-2",
|
|
228
|
+
"lg:col-span-3": "lg:col-span-3",
|
|
229
|
+
"lg:col-span-4": "lg:col-span-4",
|
|
230
|
+
"lg:col-span-5": "lg:col-span-5",
|
|
231
|
+
"lg:col-span-6": "lg:col-span-6",
|
|
232
|
+
"lg:col-span-12": "lg:col-span-12",
|
|
233
|
+
"lg:col-span-full": "lg:col-span-full",
|
|
234
|
+
"xl:col-span-1": "xl:col-span-1",
|
|
235
|
+
"xl:col-span-2": "xl:col-span-2",
|
|
236
|
+
"xl:col-span-3": "xl:col-span-3",
|
|
237
|
+
"xl:col-span-4": "xl:col-span-4",
|
|
238
|
+
"xl:col-span-5": "xl:col-span-5",
|
|
239
|
+
"xl:col-span-6": "xl:col-span-6",
|
|
240
|
+
"xl:col-span-12": "xl:col-span-12",
|
|
241
|
+
"xl:col-span-full": "xl:col-span-full",
|
|
242
|
+
"2xl:col-span-1": "2xl:col-span-1",
|
|
243
|
+
"2xl:col-span-2": "2xl:col-span-2",
|
|
244
|
+
"2xl:col-span-3": "2xl:col-span-3",
|
|
245
|
+
"2xl:col-span-4": "2xl:col-span-4",
|
|
246
|
+
"2xl:col-span-5": "2xl:col-span-5",
|
|
247
|
+
"2xl:col-span-6": "2xl:col-span-6",
|
|
248
|
+
"2xl:col-span-12": "2xl:col-span-12",
|
|
249
|
+
"2xl:col-span-full": "2xl:col-span-full"
|
|
250
|
+
};
|
|
251
|
+
function U(l) {
|
|
252
|
+
return l ? typeof l == "number" ? e[`grid-cols-${l}`] : Object.entries(l).map(([c, i]) => e[`${c}:grid-cols-${i}`]).join(" ") : "grid-cols-1";
|
|
253
|
+
}
|
|
254
|
+
function b(l) {
|
|
255
|
+
return typeof l == "number" ? x[`col-span-${l}`] : Object.entries(l).map(([s, c]) => x[`${s}:col-span-${c}`]).join(" ");
|
|
256
|
+
}
|
|
257
|
+
export {
|
|
258
|
+
x as COL_SPAN_MAP,
|
|
259
|
+
e as GRID_COLS_MAP,
|
|
260
|
+
h as buildPayload,
|
|
261
|
+
R as defaultTransformFromApi,
|
|
262
|
+
C as defaultTransformToApi,
|
|
263
|
+
P as getEmptyValues,
|
|
264
|
+
b as toColSpanClasses,
|
|
265
|
+
U as toGridCols
|
|
266
|
+
};
|
|
267
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/formGenerator/helpers/index.ts"],"sourcesContent":["import { parseDate, stringifyDate } from \"@/utils/date\";\nimport { BaseField, SelectField, MultiAttachmentField } from \"../types\";\nimport { Breakpoints } from \"../types/layout\";\nimport { FieldValues, Path } from \"react-hook-form\";\nimport {\n FORM_FIELD_TYPES,\n FORM_PAYLOAD_TYPES,\n DEFAULT_FIELD_KEYS,\n} from \"../constants\";\nimport { getCookie } from \"typescript-cookie\";\n\nexport function getEmptyValues<T extends FieldValues>(\n fields: BaseField<T>[],\n): T {\n const values = {} as T;\n fields.forEach((field) => {\n switch (field.type) {\n case FORM_FIELD_TYPES.TEXT:\n case FORM_FIELD_TYPES.TEXTAREA:\n case FORM_FIELD_TYPES.PASSWORD:\n case FORM_FIELD_TYPES.EMAIL:\n values[field.name] = \"\" as any;\n break;\n case FORM_FIELD_TYPES.NUMBER:\n values[field.name] = undefined as any;\n break;\n case FORM_FIELD_TYPES.DATE:\n case FORM_FIELD_TYPES.DATE_RANGE:\n values[field.name] = null as any;\n break;\n case FORM_FIELD_TYPES.SELECT:\n case FORM_FIELD_TYPES.MULTISELECT:\n case FORM_FIELD_TYPES.EMPLOYEE_SELECT:\n case FORM_FIELD_TYPES.EMPLOYEE_MULTI_SELECT:\n values[field.name] = null as any;\n break;\n case FORM_FIELD_TYPES.CHECKBOX:\n values[field.name] = false as any;\n break;\n default:\n values[field.name] = undefined as any;\n }\n });\n return values;\n}\n\nexport const defaultTransformFromApi = (value: unknown, fieldType: string) => {\n if (value === undefined || value === null) {\n if (fieldType === FORM_FIELD_TYPES.CHECKBOX) return false;\n if (fieldType === FORM_FIELD_TYPES.NUMBER) return undefined;\n if (fieldType === FORM_FIELD_TYPES.DATE) return null;\n if (fieldType === FORM_FIELD_TYPES.SELECT) return null;\n if (fieldType === FORM_FIELD_TYPES.MULTISELECT) return null;\n if (fieldType === FORM_FIELD_TYPES.EMPLOYEE_SELECT) return null;\n if (fieldType === FORM_FIELD_TYPES.EMPLOYEE_MULTI_SELECT) return null;\n if (fieldType === FORM_FIELD_TYPES.TEXT) return \"\";\n if (fieldType === FORM_FIELD_TYPES.TEXTAREA) return \"\";\n if (fieldType === FORM_FIELD_TYPES.PASSWORD) return \"\";\n if (fieldType === FORM_FIELD_TYPES.EMAIL) return \"\";\n if (fieldType === FORM_FIELD_TYPES.DATE_RANGE) return null;\n if (fieldType === FORM_FIELD_TYPES.MULTI_ATTACHMENT) return [];\n if (fieldType === FORM_FIELD_TYPES.SINGLE_ATTACHMENT) return null;\n if (fieldType === FORM_FIELD_TYPES.CUSTOM) return undefined;\n }\n\n switch (fieldType) {\n case FORM_FIELD_TYPES.DATE:\n return typeof value === \"string\" && value\n ? parseDate(value, getCookie(\"langfmt\"))\n : value\n ? value\n : undefined;\n\n case FORM_FIELD_TYPES.CHECKBOX:\n return Boolean(value);\n case FORM_FIELD_TYPES.NUMBER:\n return value?.toString();\n default:\n return value;\n }\n};\n\nexport const defaultTransformToApi = (value: any, fieldType: string) => {\n if (value === undefined || value === null) return value;\n\n switch (fieldType) {\n case FORM_FIELD_TYPES.DATE:\n return stringifyDate(value, getCookie(\"langfmt\"));\n\n case FORM_FIELD_TYPES.SELECT:\n case FORM_FIELD_TYPES.EMPLOYEE_SELECT:\n return value?.value ?? value;\n case FORM_FIELD_TYPES.MULTISELECT:\n return value?.map((v: any) => v?.value)?.join(\",\") ?? value;\n case FORM_FIELD_TYPES.EMPLOYEE_MULTI_SELECT:\n return value?.map((v: any) => v?.value)?.join(\",\") ?? value;\n case FORM_FIELD_TYPES.CHECKBOX:\n return Boolean(value);\n\n case FORM_FIELD_TYPES.NUMBER:\n return Number(value);\n\n default:\n return value;\n }\n};\n\nconst transformFieldValue = <T extends FieldValues>(\n field: BaseField<T>,\n value: any,\n) => {\n if (field.transformToApi) {\n return field.transformToApi(value);\n }\n return defaultTransformToApi(value, field.type);\n};\n\nconst appendMultiAttachmentToFormData = (\n formData: FormData,\n fieldName: string,\n value: any[],\n record?: Record<string, any>,\n field?: MultiAttachmentField<any>,\n) => {\n const files = value.filter((v) => v instanceof File);\n console.log(\"files\", files);\n const nonFileAttachments = value.filter((v) => !(v instanceof File));\n console.log(\"non file attachments\", nonFileAttachments);\n files.forEach((file) => {\n formData.append(fieldName, file);\n });\n\n const syncConfig = field?.syncConfig;\n const attachmentsFromRecord =\n record?.[\n syncConfig?.attachmentsFieldName ?? DEFAULT_FIELD_KEYS.ATTACHMENT_DETAIL\n ];\n\n if (Array.isArray(attachmentsFromRecord)) {\n const attachmentIdKey =\n syncConfig?.attachmentIdFieldName ?? DEFAULT_FIELD_KEYS.ID;\n const deletedFilesField =\n syncConfig?.payloadFieldNameForDeleted ??\n DEFAULT_FIELD_KEYS.DELETED_FILES;\n\n attachmentsFromRecord.forEach((attachment) => {\n const isDeleted = !nonFileAttachments.some(\n (a) => attachment[attachmentIdKey] === a.id,\n );\n if (isDeleted) {\n formData.append(deletedFilesField, attachment[attachmentIdKey]);\n }\n });\n }\n};\n\nconst buildFormDataPayload = <T extends FieldValues>({\n data,\n fields,\n excludeFromPayload = [],\n record,\n globalTransform,\n recordId,\n recordIdField,\n}: any) => {\n const formData = new FormData();\n fields.forEach((field: BaseField<T>) => {\n if (excludeFromPayload.includes(field.name)) return;\n const value = transformFieldValue(field, (data as any)[field.name]);\n if (value === undefined || value === null) return;\n\n if (\n field.type === FORM_FIELD_TYPES.MULTI_ATTACHMENT &&\n Array.isArray(value)\n ) {\n appendMultiAttachmentToFormData(\n formData,\n field.name,\n value,\n record,\n field as MultiAttachmentField<T>,\n );\n } else {\n formData.append(field.name as string, value);\n }\n });\n\n if (recordId) {\n formData.append(recordIdField, recordId);\n }\n\n return globalTransform ? globalTransform(data, formData) : formData;\n};\n\nconst buildJsonPayload = <T extends FieldValues>({\n data,\n fields,\n excludeFromPayload = [],\n globalTransform,\n recordId,\n recordIdField,\n}: any) => {\n const jsonPayload: Record<string, any> = {};\n\n fields.forEach((field: BaseField<T>) => {\n if (excludeFromPayload.includes(field.name)) return;\n\n const value = transformFieldValue(field, (data as any)[field.name]);\n if (value !== undefined) {\n jsonPayload[field.name as string] = value;\n }\n });\n\n if (recordId) {\n jsonPayload[recordIdField] = recordId;\n }\n\n return globalTransform ? globalTransform(data, jsonPayload) : jsonPayload;\n};\n\nexport const buildPayload = <T extends FieldValues>({\n data,\n fields,\n excludeFromPayload = [],\n payloadType = FORM_PAYLOAD_TYPES.JSON,\n globalTransform,\n record,\n recordId,\n recordIdField = DEFAULT_FIELD_KEYS.ID,\n}: {\n data: T;\n fields: BaseField<T>[];\n excludeFromPayload?: Path<T>[];\n payloadType?:\n | typeof FORM_PAYLOAD_TYPES.JSON\n | typeof FORM_PAYLOAD_TYPES.FORM_DATA;\n globalTransform?: (\n data: T,\n payload: Record<string, any> | FormData,\n ) => Record<string, any> | FormData;\n record?: Record<string, any>;\n recordId?: any;\n recordIdField?: string;\n}) => {\n const config = {\n data,\n fields,\n excludeFromPayload,\n globalTransform,\n record,\n recordId,\n recordIdField,\n };\n\n return payloadType === FORM_PAYLOAD_TYPES.FORM_DATA\n ? buildFormDataPayload(config)\n : buildJsonPayload(config);\n};\n\nexport function isDropdownField(field: BaseField<any>): boolean {\n return (\n [\n FORM_FIELD_TYPES.SELECT,\n FORM_FIELD_TYPES.MULTISELECT,\n FORM_FIELD_TYPES.EMPLOYEE_SELECT,\n FORM_FIELD_TYPES.EMPLOYEE_MULTI_SELECT,\n ] as string[]\n ).includes(field.type);\n}\nexport function isEmployeeSelectField(\n field: BaseField<any>,\n): field is SelectField<any> {\n return ([FORM_FIELD_TYPES.EMPLOYEE_SELECT] as string[]).includes(field.type);\n}\nexport function isDropdownFieldType(\n field: BaseField<any>,\n): field is SelectField<any> {\n return isDropdownField(field);\n}\n\nexport type SelectOptionProps = { label: string; value: any };\nexport type TTextOption = { text: string; value: any };\n\nexport function getNestedValue(obj: any, key: string): any {\n return key.split(\".\").reduce((acc, k) => acc?.[k], obj);\n}\nexport function normalizeDropdownOptions(\n data: any[] = [],\n field: SelectField<any>,\n): SelectOptionProps[] {\n if (field.serverSideProps?.labelKey || field.serverSideProps?.valueKey) {\n const labelKey =\n field.serverSideProps?.labelKey ?? DEFAULT_FIELD_KEYS.LABEL;\n const valueKey =\n field.serverSideProps?.valueKey ?? DEFAULT_FIELD_KEYS.VALUE;\n return data.map((item) => ({\n label: getNestedValue(item, labelKey),\n value: getNestedValue(item, valueKey),\n }));\n }\n\n if (\n data.length &&\n DEFAULT_FIELD_KEYS.TEXT in data[0] &&\n DEFAULT_FIELD_KEYS.VALUE in data[0]\n ) {\n return data.map(({ text, value }: TTextOption) => ({ label: text, value }));\n }\n\n if (\n data.length &&\n DEFAULT_FIELD_KEYS.LABEL in data[0] &&\n DEFAULT_FIELD_KEYS.VALUE in data[0]\n ) {\n return data as SelectOptionProps[];\n }\n\n return data.map((item) =>\n typeof item === \"string\"\n ? { label: item, value: item }\n : {\n label: String(\n item[DEFAULT_FIELD_KEYS.LABEL] ??\n item[DEFAULT_FIELD_KEYS.VALUE] ??\n item,\n ),\n value: item[DEFAULT_FIELD_KEYS.VALUE] ?? item,\n },\n );\n}\n\nexport const GRID_COLS_MAP: Record<string, string> = {\n \"grid-cols-1\": \"grid-cols-1\",\n \"grid-cols-2\": \"grid-cols-2\",\n \"grid-cols-3\": \"grid-cols-3\",\n \"grid-cols-4\": \"grid-cols-4\",\n \"grid-cols-5\": \"grid-cols-5\",\n \"grid-cols-6\": \"grid-cols-6\",\n \"grid-cols-12\": \"grid-cols-12\",\n\n \"sm:grid-cols-1\": \"sm:grid-cols-1\",\n \"sm:grid-cols-2\": \"sm:grid-cols-2\",\n \"sm:grid-cols-3\": \"sm:grid-cols-3\",\n \"sm:grid-cols-4\": \"sm:grid-cols-4\",\n \"sm:grid-cols-5\": \"sm:grid-cols-5\",\n \"sm:grid-cols-6\": \"sm:grid-cols-6\",\n \"sm:grid-cols-12\": \"sm:grid-cols-12\",\n\n \"md:grid-cols-1\": \"md:grid-cols-1\",\n \"md:grid-cols-2\": \"md:grid-cols-2\",\n \"md:grid-cols-3\": \"md:grid-cols-3\",\n \"md:grid-cols-4\": \"md:grid-cols-4\",\n \"md:grid-cols-5\": \"md:grid-cols-5\",\n \"md:grid-cols-6\": \"md:grid-cols-6\",\n \"md:grid-cols-12\": \"md:grid-cols-12\",\n\n \"lg:grid-cols-1\": \"lg:grid-cols-1\",\n \"lg:grid-cols-2\": \"lg:grid-cols-2\",\n \"lg:grid-cols-3\": \"lg:grid-cols-3\",\n \"lg:grid-cols-4\": \"lg:grid-cols-4\",\n \"lg:grid-cols-5\": \"lg:grid-cols-5\",\n \"lg:grid-cols-6\": \"lg:grid-cols-6\",\n \"lg:grid-cols-12\": \"lg:grid-cols-12\",\n\n \"xl:grid-cols-1\": \"xl:grid-cols-1\",\n \"xl:grid-cols-2\": \"xl:grid-cols-2\",\n \"xl:grid-cols-3\": \"xl:grid-cols-3\",\n \"xl:grid-cols-4\": \"xl:grid-cols-4\",\n \"xl:grid-cols-5\": \"xl:grid-cols-5\",\n \"xl:grid-cols-6\": \"xl:grid-cols-6\",\n \"xl:grid-cols-12\": \"xl:grid-cols-12\",\n\n \"2xl:grid-cols-1\": \"2xl:grid-cols-1\",\n \"2xl:grid-cols-2\": \"2xl:grid-cols-2\",\n \"2xl:grid-cols-3\": \"2xl:grid-cols-3\",\n \"2xl:grid-cols-4\": \"2xl:grid-cols-4\",\n \"2xl:grid-cols-5\": \"2xl:grid-cols-5\",\n \"2xl:grid-cols-6\": \"2xl:grid-cols-6\",\n \"2xl:grid-cols-12\": \"2xl:grid-cols-12\",\n};\n\nexport const COL_SPAN_MAP: Record<string, string> = {\n \"col-span-1\": \"col-span-1\",\n \"col-span-2\": \"col-span-2\",\n \"col-span-3\": \"col-span-3\",\n \"col-span-4\": \"col-span-4\",\n \"col-span-5\": \"col-span-5\",\n \"col-span-6\": \"col-span-6\",\n \"col-span-12\": \"col-span-12\",\n \"col-span-full\": \"col-span-full\",\n\n \"sm:col-span-1\": \"sm:col-span-1\",\n \"sm:col-span-2\": \"sm:col-span-2\",\n \"sm:col-span-3\": \"sm:col-span-3\",\n \"sm:col-span-4\": \"sm:col-span-4\",\n \"sm:col-span-5\": \"sm:col-span-5\",\n \"sm:col-span-6\": \"sm:col-span-6\",\n \"sm:col-span-12\": \"sm:col-span-12\",\n \"sm:col-span-full\": \"sm:col-span-full\",\n\n \"md:col-span-1\": \"md:col-span-1\",\n \"md:col-span-2\": \"md:col-span-2\",\n \"md:col-span-3\": \"md:col-span-3\",\n \"md:col-span-4\": \"md:col-span-4\",\n \"md:col-span-5\": \"md:col-span-5\",\n \"md:col-span-6\": \"md:col-span-6\",\n \"md:col-span-12\": \"md:col-span-12\",\n \"md:col-span-full\": \"md:col-span-full\",\n\n \"lg:col-span-1\": \"lg:col-span-1\",\n \"lg:col-span-2\": \"lg:col-span-2\",\n \"lg:col-span-3\": \"lg:col-span-3\",\n \"lg:col-span-4\": \"lg:col-span-4\",\n \"lg:col-span-5\": \"lg:col-span-5\",\n \"lg:col-span-6\": \"lg:col-span-6\",\n \"lg:col-span-12\": \"lg:col-span-12\",\n \"lg:col-span-full\": \"lg:col-span-full\",\n\n \"xl:col-span-1\": \"xl:col-span-1\",\n \"xl:col-span-2\": \"xl:col-span-2\",\n \"xl:col-span-3\": \"xl:col-span-3\",\n \"xl:col-span-4\": \"xl:col-span-4\",\n \"xl:col-span-5\": \"xl:col-span-5\",\n \"xl:col-span-6\": \"xl:col-span-6\",\n \"xl:col-span-12\": \"xl:col-span-12\",\n \"xl:col-span-full\": \"xl:col-span-full\",\n\n \"2xl:col-span-1\": \"2xl:col-span-1\",\n \"2xl:col-span-2\": \"2xl:col-span-2\",\n \"2xl:col-span-3\": \"2xl:col-span-3\",\n \"2xl:col-span-4\": \"2xl:col-span-4\",\n \"2xl:col-span-5\": \"2xl:col-span-5\",\n \"2xl:col-span-6\": \"2xl:col-span-6\",\n \"2xl:col-span-12\": \"2xl:col-span-12\",\n \"2xl:col-span-full\": \"2xl:col-span-full\",\n};\n\nexport function toGridCols(grid?: number | Breakpoints): string {\n if (!grid) return \"grid-cols-1\";\n if (typeof grid === \"number\") return GRID_COLS_MAP[`grid-cols-${grid}`];\n const clsNames = Object.entries(grid)\n .map(([bp, value]) => GRID_COLS_MAP[`${bp}:grid-cols-${value}`])\n .join(\" \");\n return clsNames;\n}\n\nexport function toColSpanClasses(colSpan: number | Breakpoints): string {\n if (typeof colSpan === \"number\") return COL_SPAN_MAP[`col-span-${colSpan}`];\n\n return Object.entries(colSpan)\n .map(([bp, value]) => COL_SPAN_MAP[`${bp}:col-span-${value}`])\n .join(\" \");\n}\n"],"names":["getEmptyValues","fields","values","field","FORM_FIELD_TYPES","defaultTransformFromApi","value","fieldType","parseDate","getCookie","defaultTransformToApi","stringifyDate","_a","v","_b","transformFieldValue","appendMultiAttachmentToFormData","formData","fieldName","record","files","nonFileAttachments","file","syncConfig","attachmentsFromRecord","DEFAULT_FIELD_KEYS","attachmentIdKey","deletedFilesField","attachment","a","buildFormDataPayload","data","excludeFromPayload","globalTransform","recordId","recordIdField","buildJsonPayload","jsonPayload","buildPayload","payloadType","FORM_PAYLOAD_TYPES","config","GRID_COLS_MAP","COL_SPAN_MAP","toGridCols","grid","bp","toColSpanClasses","colSpan"],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { useForm as D } from "react-hook-form";
|
|
2
|
+
import { useEffect as E } from "react";
|
|
3
|
+
import { defaultTransformFromApi as g } from "../helpers/index.js";
|
|
4
|
+
import { FORM_MODES as f } from "../constants.js";
|
|
5
|
+
import { zodResolver as p } from "@hookform/resolvers/zod";
|
|
6
|
+
function V(s) {
|
|
7
|
+
var d;
|
|
8
|
+
const { schema: u, mode: i, initialData: A, fields: F } = s, c = D({
|
|
9
|
+
resolver: p(u),
|
|
10
|
+
defaultValues: A
|
|
11
|
+
}), t = i === f.UPDATE ? s.updateConfig : null, o = ((d = t == null ? void 0 : t.getQuery) == null ? void 0 : d.call(t, t.id, { skip: !t.id })) ?? null, e = o == null ? void 0 : o.data, l = i === f.UPDATE && (o == null ? void 0 : o.isLoading);
|
|
12
|
+
return E(() => {
|
|
13
|
+
if (l || !e)
|
|
14
|
+
return;
|
|
15
|
+
const a = i === f.UPDATE && "transformFromApiGlobal" in s ? s.transformFromApiGlobal : void 0, v = (a == null ? void 0 : a(e)) ?? e;
|
|
16
|
+
F.forEach((n) => {
|
|
17
|
+
const m = v[n.name];
|
|
18
|
+
let r;
|
|
19
|
+
console.log("raw value", m, a), n.transformFromApi ? r = n.transformFromApi(m) : a ? r = m : (console.log("default transform"), r = g(m, n.type)), r !== void 0 && c.setValue(n.name, r);
|
|
20
|
+
});
|
|
21
|
+
}, [l, o == null ? void 0 : o.data]), {
|
|
22
|
+
form: c,
|
|
23
|
+
record: (o == null ? void 0 : o.data) ?? {},
|
|
24
|
+
loading: l
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export {
|
|
28
|
+
V as useFormGenerator
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=useFormGenerator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFormGenerator.js","sources":["../../../../src/components/formGenerator/hooks/useFormGenerator.tsx"],"sourcesContent":["import { useForm, Path, DefaultValues } from \"react-hook-form\";\nimport { useEffect } from \"react\";\nimport { ZodSchema } from \"zod\";\nimport { BaseField, RecordUpdateConfig } from \"../types\";\nimport { defaultTransformFromApi } from \"../helpers\";\nimport { FormSchema } from \"../types/common\";\nimport { FORM_MODES } from \"../constants\";\nimport { zodResolver } from \"@hookform/resolvers/zod\";\n\ntype UseFormGeneratorProps<S extends FormSchema, R> = {\n schema: ZodSchema<S>;\n mode: typeof FORM_MODES.CREATE | typeof FORM_MODES.UPDATE;\n fields: BaseField<S>[];\n initialData?: S;\n updateConfig?: RecordUpdateConfig<R>;\n\n transformFromApiGlobal?: (record: R) => S;\n};\n\nexport function useFormGenerator<S extends FormSchema, R>(\n props: UseFormGeneratorProps<S, R>,\n) {\n const { schema, mode, initialData, fields } = props;\n const form = useForm<S>({\n resolver: zodResolver(schema as any),\n defaultValues: initialData as DefaultValues<S>,\n });\n\n const updateConfig = mode === FORM_MODES.UPDATE ? props.updateConfig : null;\n\n const recordQuery =\n updateConfig?.getQuery?.(updateConfig.id, { skip: !updateConfig.id }) ??\n null;\n\n const recordData = recordQuery?.data;\n const recordLoading = mode === FORM_MODES.UPDATE && recordQuery?.isLoading;\n const isLoading = recordLoading;\n\n useEffect(() => {\n if (isLoading) return;\n if (!recordData) return;\n\n const globalTransform =\n mode === FORM_MODES.UPDATE && \"transformFromApiGlobal\" in props\n ? props.transformFromApiGlobal\n : undefined;\n\n // Apply a global transformation if provided, otherwise keep original data\n const transformedRecord = globalTransform?.(recordData) ?? recordData;\n\n fields.forEach((field) => {\n const rawValue = (transformedRecord as Record<string, unknown>)[\n field.name\n ];\n\n // Determine the final value for this field\n let value;\n console.log(\"raw value\", rawValue, globalTransform);\n if (field.transformFromApi) {\n value = field.transformFromApi(rawValue);\n } else if (!globalTransform) {\n console.log(\"default transform\");\n value = defaultTransformFromApi(rawValue, field.type);\n } else {\n // Otherwise, just use the raw value\n value = rawValue;\n }\n\n if (value !== undefined) {\n form.setValue(field.name as Path<S>, value as any);\n }\n });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isLoading, recordQuery?.data]);\n\n return {\n form,\n record: (recordQuery?.data ?? {}) as Record<string, unknown>,\n loading: isLoading,\n };\n}\n"],"names":["useFormGenerator","props","schema","mode","initialData","fields","form","useForm","zodResolver","updateConfig","FORM_MODES","recordQuery","_a","recordData","isLoading","useEffect","globalTransform","transformedRecord","field","rawValue","value","defaultTransformFromApi"],"mappings":";;;;;AAmBO,SAASA,EACdC,GACA;;AACA,QAAM,EAAE,QAAAC,GAAQ,MAAAC,GAAM,aAAAC,GAAa,QAAAC,MAAWJ,GACxCK,IAAOC,EAAW;AAAA,IACtB,UAAUC,EAAYN,CAAa;AAAA,IACnC,eAAeE;AAAA,EAAA,CAChB,GAEKK,IAAeN,MAASO,EAAW,SAAST,EAAM,eAAe,MAEjEU,MACJC,IAAAH,KAAA,gBAAAA,EAAc,aAAd,gBAAAG,EAAA,KAAAH,GAAyBA,EAAa,IAAI,EAAE,MAAM,CAACA,EAAa,GAAI,OACpE,MAEII,IAAaF,KAAA,gBAAAA,EAAa,MAE1BG,IADgBX,MAASO,EAAW,WAAUC,KAAA,gBAAAA,EAAa;AAGjE,SAAAI,EAAU,MAAM;AAEd,QADID,KACA,CAACD;AAAY;AAEjB,UAAMG,IACJb,MAASO,EAAW,UAAU,4BAA4BT,IACtDA,EAAM,yBACN,QAGAgB,KAAoBD,KAAA,gBAAAA,EAAkBH,OAAeA;AAEpD,IAAAR,EAAA,QAAQ,CAACa,MAAU;AAClB,YAAAC,IAAYF,EAChBC,EAAM,IACR;AAGI,UAAAE;AACI,cAAA,IAAI,aAAaD,GAAUH,CAAe,GAC9CE,EAAM,mBACAE,IAAAF,EAAM,iBAAiBC,CAAQ,IAC7BH,IAKFI,IAAAD,KAJR,QAAQ,IAAI,mBAAmB,GACvBC,IAAAC,EAAwBF,GAAUD,EAAM,IAAI,IAMlDE,MAAU,UACPd,EAAA,SAASY,EAAM,MAAiBE,CAAY;AAAA,IACnD,CACD;AAAA,EAGA,GAAA,CAACN,GAAWH,KAAA,gBAAAA,EAAa,IAAI,CAAC,GAE1B;AAAA,IACL,MAAAL;AAAA,IACA,SAASK,KAAA,gBAAAA,EAAa,SAAQ,CAAC;AAAA,IAC/B,SAASG;AAAA,EAAA;AAEb;"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { jsx as u, jsxs as S } from "react/jsx-runtime";
|
|
2
|
+
import { FormProvider as K } from "react-hook-form";
|
|
3
|
+
import { useFormGenerator as Q } from "./hooks/useFormGenerator.js";
|
|
4
|
+
import { toast as h } from "sonner";
|
|
5
|
+
import W from "./layouts/formLayout.js";
|
|
6
|
+
import { buildPayload as X, getEmptyValues as Y } from "./helpers/index.js";
|
|
7
|
+
import { Spinner as Z } from "@vivakits/react-components";
|
|
8
|
+
import $ from "./layouts/footer.js";
|
|
9
|
+
import { cn as ee } from "../../libs/index.js";
|
|
10
|
+
import { FORM_MODES as n, FORM_PLACEMENTS as _ } from "./constants.js";
|
|
11
|
+
function ue(s) {
|
|
12
|
+
const {
|
|
13
|
+
schema: U,
|
|
14
|
+
fields: d,
|
|
15
|
+
layout: N,
|
|
16
|
+
onSubmit: b,
|
|
17
|
+
onSuccess: f,
|
|
18
|
+
onError: y,
|
|
19
|
+
onCancel: R,
|
|
20
|
+
initialData: V,
|
|
21
|
+
excludeFromPayload: G,
|
|
22
|
+
transformToApiGlobal: O,
|
|
23
|
+
payloadType: k,
|
|
24
|
+
placement: v,
|
|
25
|
+
footer: E,
|
|
26
|
+
styles: g
|
|
27
|
+
} = s, r = s.mode ?? n.CREATE, { form: m, record: I, loading: z } = Q({
|
|
28
|
+
schema: U,
|
|
29
|
+
mode: r,
|
|
30
|
+
initialData: V,
|
|
31
|
+
fields: d,
|
|
32
|
+
updateConfig: r === n.UPDATE ? s.updateConfig : void 0,
|
|
33
|
+
transformFromApiGlobal: r === n.UPDATE ? s.transformFromApiGlobal : void 0
|
|
34
|
+
});
|
|
35
|
+
console.log(m.formState.errors), console.log("values", m.getValues());
|
|
36
|
+
const [F, { isLoading: q }] = r === n.CREATE && s.createMutation ? s.createMutation() : [null, { isLoading: !1 }], [j, { isLoading: B }] = r === n.UPDATE && s.updateMutation ? s.updateMutation() : [null, { isLoading: !1 }], H = z || (q || B), T = async (J) => {
|
|
37
|
+
var M, C, D, P, w, x, L;
|
|
38
|
+
try {
|
|
39
|
+
const t = X({
|
|
40
|
+
data: J,
|
|
41
|
+
fields: d,
|
|
42
|
+
excludeFromPayload: G,
|
|
43
|
+
payloadType: k,
|
|
44
|
+
globalTransform: O ? (e, a) => O(e, a) : void 0,
|
|
45
|
+
record: I,
|
|
46
|
+
recordId: r === n.UPDATE ? (M = s.updateConfig) == null ? void 0 : M.id : void 0,
|
|
47
|
+
recordIdField: r === n.UPDATE ? (C = s.updateConfig) == null ? void 0 : C.idField : void 0
|
|
48
|
+
});
|
|
49
|
+
if (r === n.CREATE && F) {
|
|
50
|
+
const e = await ((P = (D = F(t)).unwrap) == null ? void 0 : P.call(D)) ?? await F(t), a = e && typeof e == "object" && e !== null ? (() => {
|
|
51
|
+
let l;
|
|
52
|
+
if ("message" in e) {
|
|
53
|
+
const o = e.message;
|
|
54
|
+
typeof o == "string" && (l = o);
|
|
55
|
+
}
|
|
56
|
+
const i = { message: l };
|
|
57
|
+
if (e && typeof e == "object") {
|
|
58
|
+
const o = Object.entries(e);
|
|
59
|
+
for (const [c, A] of o)
|
|
60
|
+
c !== "message" && (i[c] = A);
|
|
61
|
+
}
|
|
62
|
+
return i;
|
|
63
|
+
})() : { message: void 0 };
|
|
64
|
+
h.success(a.message ?? "Created successfully"), f == null || f(e);
|
|
65
|
+
} else if (r === n.UPDATE && j) {
|
|
66
|
+
const e = await ((x = (w = j(t)).unwrap) == null ? void 0 : x.call(w)) ?? await j(t), a = e && typeof e == "object" && e !== null ? (() => {
|
|
67
|
+
let l;
|
|
68
|
+
if ("message" in e) {
|
|
69
|
+
const o = e.message;
|
|
70
|
+
typeof o == "string" && (l = o);
|
|
71
|
+
}
|
|
72
|
+
const i = { message: l };
|
|
73
|
+
if (e && typeof e == "object") {
|
|
74
|
+
const o = Object.entries(e);
|
|
75
|
+
for (const [c, A] of o)
|
|
76
|
+
c !== "message" && (i[c] = A);
|
|
77
|
+
}
|
|
78
|
+
return i;
|
|
79
|
+
})() : { message: void 0 };
|
|
80
|
+
h.success(a.message ?? "Updated successfully"), f == null || f(e);
|
|
81
|
+
}
|
|
82
|
+
if (await ((e, a) => {
|
|
83
|
+
b == null || b(e, a);
|
|
84
|
+
})(t, r), r === n.CREATE) {
|
|
85
|
+
const e = Y(d);
|
|
86
|
+
m.reset(e);
|
|
87
|
+
}
|
|
88
|
+
} catch (t) {
|
|
89
|
+
console.error("Error submitting the form:", t);
|
|
90
|
+
const p = t && typeof t == "object" && t !== null && "data" in t ? (() => {
|
|
91
|
+
const e = t.data;
|
|
92
|
+
let a;
|
|
93
|
+
if (e && typeof e == "object" && e !== null && "error_message" in e) {
|
|
94
|
+
const i = e.error_message;
|
|
95
|
+
a = { error_message: typeof i == "string" ? i : void 0 };
|
|
96
|
+
}
|
|
97
|
+
const l = { data: a };
|
|
98
|
+
if (t && typeof t == "object") {
|
|
99
|
+
const i = Object.entries(t);
|
|
100
|
+
for (const [o, c] of i)
|
|
101
|
+
o !== "data" && (l[o] = c);
|
|
102
|
+
}
|
|
103
|
+
return l;
|
|
104
|
+
})() : null;
|
|
105
|
+
h.error(((L = p == null ? void 0 : p.data) == null ? void 0 : L.error_message) ?? "Error submitting the form"), y == null || y(t);
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
return /* @__PURE__ */ u(K, { ...m, children: /* @__PURE__ */ S("form", { onSubmit: m.handleSubmit(T), children: [
|
|
109
|
+
/* @__PURE__ */ S(
|
|
110
|
+
"div",
|
|
111
|
+
{
|
|
112
|
+
className: ee(
|
|
113
|
+
"px-5 py-2 my-2 text-start ",
|
|
114
|
+
v === _.ON_MODAL && "overflow-y-auto max-h-[80vh]",
|
|
115
|
+
g == null ? void 0 : g.wrapperClassName
|
|
116
|
+
),
|
|
117
|
+
children: [
|
|
118
|
+
H && /* @__PURE__ */ u("div", { className: "absolute inset-0 z-10 flex items-center justify-center h-320 bg-white/70", children: /* @__PURE__ */ u(Z, {}) }),
|
|
119
|
+
/* @__PURE__ */ u(
|
|
120
|
+
W,
|
|
121
|
+
{
|
|
122
|
+
fields: d,
|
|
123
|
+
layout: N,
|
|
124
|
+
styles: g,
|
|
125
|
+
placement: v
|
|
126
|
+
}
|
|
127
|
+
)
|
|
128
|
+
]
|
|
129
|
+
}
|
|
130
|
+
),
|
|
131
|
+
/* @__PURE__ */ u(
|
|
132
|
+
$,
|
|
133
|
+
{
|
|
134
|
+
placement: v ?? _.ON_MODAL,
|
|
135
|
+
ctx: {
|
|
136
|
+
onSubmit: m.handleSubmit(T),
|
|
137
|
+
onCancel: R,
|
|
138
|
+
form: m
|
|
139
|
+
},
|
|
140
|
+
customFooter: E == null ? void 0 : E.customFooter
|
|
141
|
+
}
|
|
142
|
+
)
|
|
143
|
+
] }) });
|
|
144
|
+
}
|
|
145
|
+
export {
|
|
146
|
+
ue as FormGenerator
|
|
147
|
+
};
|
|
148
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/formGenerator/index.tsx"],"sourcesContent":["import { FormProvider } from \"react-hook-form\";\nimport { FormGeneratorProps } from \"./types\";\nimport { useFormGenerator } from \"./hooks/useFormGenerator\";\nimport { toast } from \"sonner\";\nimport FormLayout from \"./layouts/formLayout\";\nimport { buildPayload, getEmptyValues } from \"./helpers\";\nimport { Spinner } from \"@vivakits/react-components\";\nimport FormFooter from \"./layouts/footer\";\nimport { cn } from \"@/libs\";\nimport { FormSchema } from \"./types/common\";\nimport { FORM_MODES, FORM_PLACEMENTS } from \"./constants\";\n\nexport function FormGenerator<S extends FormSchema, P, R>(\n props: FormGeneratorProps<S, P, R>,\n) {\n const {\n schema,\n fields,\n layout,\n onSubmit,\n onSuccess,\n onError,\n onCancel,\n initialData,\n excludeFromPayload,\n transformToApiGlobal,\n payloadType,\n placement,\n footer,\n styles,\n } = props;\n\n const mode = props.mode ?? FORM_MODES.CREATE;\n\n const { form, record, loading } = useFormGenerator<S, R>({\n schema,\n mode,\n initialData,\n fields,\n updateConfig: mode === FORM_MODES.UPDATE ? props.updateConfig : undefined,\n transformFromApiGlobal:\n mode === FORM_MODES.UPDATE ? props.transformFromApiGlobal : undefined,\n });\n\n console.log(form.formState.errors);\n console.log(\"values\", form.getValues());\n\n const [createFn, { isLoading: creating }] =\n mode === FORM_MODES.CREATE && props.createMutation\n ? props.createMutation()\n : [null, { isLoading: false }];\n\n const [updateFn, { isLoading: updating }] =\n mode === FORM_MODES.UPDATE && props.updateMutation\n ? props.updateMutation()\n : [null, { isLoading: false }];\n\n const isSubmitting = creating || updating;\n const totalLoading = loading || isSubmitting;\n\n const handleSubmit = async (data: S) => {\n try {\n const finalPayload = buildPayload({\n data,\n fields,\n excludeFromPayload,\n payloadType,\n globalTransform: transformToApiGlobal\n ? (data: S, payload: FormData | Record<string, unknown>) => {\n // payload is FormData | Record<string, unknown>, transformToApiGlobal expects P\n // Since P is a generic type that could be FormData or Record<string, unknown>,\n // we pass payload directly and the function will handle the conversion\n const result = transformToApiGlobal(data, payload as P);\n // result is P, which needs to be returned as FormData | Record<string, unknown>\n // Since P extends FormData | Record<string, unknown>, we can return it directly\n return result as FormData | Record<string, unknown>;\n }\n : undefined,\n record,\n recordId:\n mode === FORM_MODES.UPDATE ? props.updateConfig?.id : undefined,\n recordIdField:\n mode === FORM_MODES.UPDATE ? props.updateConfig?.idField : undefined,\n });\n if (mode === FORM_MODES.CREATE && createFn) {\n const res =\n (await createFn(finalPayload).unwrap?.()) ??\n (await createFn(finalPayload));\n const response =\n res && typeof res === \"object\" && res !== null\n ? (() => {\n // res is an object, extract message property safely using type guards\n let message: string | undefined = undefined;\n if (\"message\" in res) {\n const messageValue = (res as { message?: unknown }).message;\n if (typeof messageValue === \"string\") {\n message = messageValue;\n }\n }\n // Create response object by copying properties\n const responseObj: {\n message?: string;\n [key: string]: unknown;\n } = { message };\n if (res && typeof res === \"object\") {\n // Copy properties from res to responseObj without using 'as' in the loop\n const entries = Object.entries(res);\n for (const [key, value] of entries) {\n if (key !== \"message\") {\n responseObj[key] = value;\n }\n }\n }\n return responseObj;\n })()\n : { message: undefined };\n toast.success(response.message ?? \"Created successfully\");\n onSuccess?.(res);\n } else if (mode === FORM_MODES.UPDATE && updateFn) {\n const res =\n (await updateFn(finalPayload).unwrap?.()) ??\n (await updateFn(finalPayload));\n const response =\n res && typeof res === \"object\" && res !== null\n ? (() => {\n // res is an object, extract message property safely using type guards\n let message: string | undefined = undefined;\n if (\"message\" in res) {\n const messageValue = (res as { message?: unknown }).message;\n if (typeof messageValue === \"string\") {\n message = messageValue;\n }\n }\n // Create response object by copying properties\n const responseObj: {\n message?: string;\n [key: string]: unknown;\n } = { message };\n if (res && typeof res === \"object\") {\n // Copy properties from res to responseObj without using 'as' in the loop\n const entries = Object.entries(res);\n for (const [key, value] of entries) {\n if (key !== \"message\") {\n responseObj[key] = value;\n }\n }\n }\n return responseObj;\n })()\n : { message: undefined };\n toast.success(response.message ?? \"Updated successfully\");\n onSuccess?.(res);\n }\n // finalPayload is FormData | Record<string, unknown>, onSubmit expects P\n // We use a helper function to bridge the types without 'as' assertion\n const callOnSubmit = (\n payload: FormData | Record<string, unknown>,\n submitMode: \"create\" | \"update\",\n ) => {\n onSubmit?.(payload as P, submitMode);\n };\n await callOnSubmit(finalPayload, mode);\n\n if (mode === FORM_MODES.CREATE) {\n const emptyValues = getEmptyValues<S>(fields);\n form.reset(emptyValues);\n }\n } catch (err) {\n console.error(\"Error submitting the form:\", err);\n const error =\n err && typeof err === \"object\" && err !== null && \"data\" in err\n ? (() => {\n // err is an object with data property, extract error_message safely using type guards\n const errData = (err as { data?: unknown }).data;\n let errorData: { error_message?: string } | undefined = undefined;\n if (\n errData &&\n typeof errData === \"object\" &&\n errData !== null &&\n \"error_message\" in errData\n ) {\n const errorMessageValue = (\n errData as { error_message?: unknown }\n ).error_message;\n const errorMessage =\n typeof errorMessageValue === \"string\"\n ? errorMessageValue\n : undefined;\n errorData = { error_message: errorMessage };\n }\n // Create error object by copying properties\n const errorObj: {\n data?: { error_message?: string };\n [key: string]: unknown;\n } = { data: errorData };\n if (err && typeof err === \"object\") {\n // Copy properties from err to errorObj without using 'as' in the loop\n const entries = Object.entries(err);\n for (const [key, value] of entries) {\n if (key !== \"data\") {\n errorObj[key] = value;\n }\n }\n }\n return errorObj;\n })()\n : null;\n toast.error(error?.data?.error_message ?? \"Error submitting the form\");\n onError?.(err);\n }\n };\n\n return (\n <FormProvider {...form}>\n <form onSubmit={form.handleSubmit(handleSubmit as any)}>\n <div\n className={cn(\n \"px-5 py-2 my-2 text-start \",\n placement === FORM_PLACEMENTS.ON_MODAL &&\n \"overflow-y-auto max-h-[80vh]\",\n styles?.wrapperClassName,\n )}\n >\n {totalLoading && (\n <div className=\"absolute inset-0 z-10 flex items-center justify-center h-320 bg-white/70\">\n <Spinner />\n </div>\n )}\n <FormLayout\n fields={fields}\n layout={layout}\n styles={styles}\n placement={placement}\n />\n </div>\n <FormFooter<S>\n placement={placement ?? FORM_PLACEMENTS.ON_MODAL}\n ctx={{\n onSubmit: form.handleSubmit(handleSubmit as any),\n onCancel,\n form: form,\n }}\n customFooter={footer?.customFooter}\n />\n </form>\n </FormProvider>\n );\n}\n"],"names":["FormGenerator","props","schema","fields","layout","onSubmit","onSuccess","onError","onCancel","initialData","excludeFromPayload","transformToApiGlobal","payloadType","placement","footer","styles","mode","FORM_MODES","form","record","loading","useFormGenerator","createFn","creating","updateFn","updating","totalLoading","handleSubmit","data","finalPayload","buildPayload","payload","_a","_b","res","_d","_c","response","message","messageValue","responseObj","entries","key","value","toast","_f","_e","submitMode","emptyValues","getEmptyValues","err","error","errData","errorData","errorMessageValue","errorObj","_g","jsx","FormProvider","jsxs","cn","FORM_PLACEMENTS","Spinner","FormLayout","FormFooter"],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { jsx as t, Fragment as f, jsxs as u } from "react/jsx-runtime";
|
|
2
|
+
import c from "../../common/buttons/CancelBtn.js";
|
|
3
|
+
import { useTranslation as x } from "react-i18next";
|
|
4
|
+
import { cn as s } from "../../../libs/index.js";
|
|
5
|
+
import { FORM_PLACEMENTS as a } from "../constants.js";
|
|
6
|
+
import d from "../../common/button/SaveBtn.js";
|
|
7
|
+
function N({
|
|
8
|
+
placement: n,
|
|
9
|
+
ctx: r,
|
|
10
|
+
customFooter: l,
|
|
11
|
+
footerWrapperClassName: o
|
|
12
|
+
}) {
|
|
13
|
+
const { t: i } = x();
|
|
14
|
+
if (l)
|
|
15
|
+
return /* @__PURE__ */ t(f, { children: l(r) });
|
|
16
|
+
const { onSubmit: m, onCancel: e } = r;
|
|
17
|
+
return n === a.ON_MODAL ? /* @__PURE__ */ u(
|
|
18
|
+
"div",
|
|
19
|
+
{
|
|
20
|
+
className: s(
|
|
21
|
+
"flex justify-end gap-5 shadow-[0px_0px_3px_0px_#1018281A] rounded-b-lg py-3 px-5 inset-0",
|
|
22
|
+
o
|
|
23
|
+
),
|
|
24
|
+
children: [
|
|
25
|
+
e && /* @__PURE__ */ t(
|
|
26
|
+
c,
|
|
27
|
+
{
|
|
28
|
+
title: i("CANCEL", "Cancel"),
|
|
29
|
+
handleAction: () => e == null ? void 0 : e()
|
|
30
|
+
}
|
|
31
|
+
),
|
|
32
|
+
/* @__PURE__ */ t(
|
|
33
|
+
d,
|
|
34
|
+
{
|
|
35
|
+
type: "submit",
|
|
36
|
+
title: i("SAVE", "Save"),
|
|
37
|
+
handleAction: (p) => {
|
|
38
|
+
p.preventDefault(), m();
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
)
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
) : n === a.ON_PAGE ? /* @__PURE__ */ t(f, { children: /* @__PURE__ */ t(
|
|
45
|
+
"div",
|
|
46
|
+
{
|
|
47
|
+
className: s(
|
|
48
|
+
"fixed left-0 bottom-0 bg-white h-[60px] w-full flex items-center justify-end",
|
|
49
|
+
o
|
|
50
|
+
),
|
|
51
|
+
children: /* @__PURE__ */ t(
|
|
52
|
+
d,
|
|
53
|
+
{
|
|
54
|
+
handleAction: m,
|
|
55
|
+
className: "!text-sm !px-5 !py-2 rtl:!ml-5 ltr:!mr-5",
|
|
56
|
+
title: i("SAVE", "Save")
|
|
57
|
+
}
|
|
58
|
+
)
|
|
59
|
+
}
|
|
60
|
+
) }) : null;
|
|
61
|
+
}
|
|
62
|
+
export {
|
|
63
|
+
N as default
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=footer.js.map
|