@dynamic-framework/ui-react 2.9.0 → 2.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/css/dynamic-ui.css +1 -1
- package/dist/css/dynamic-ui.min.css +1 -1
- package/dist/esm/components/DAlert/DAlert.js +16 -0
- package/dist/esm/components/DAlert/DAlert.js.map +1 -0
- package/dist/esm/components/DAlert/index.js +6 -0
- package/dist/esm/components/DAlert/index.js.map +1 -0
- package/dist/esm/components/DAvatar/DAvatar.js +23 -0
- package/dist/esm/components/DAvatar/DAvatar.js.map +1 -0
- package/dist/esm/components/DAvatar/index.js +6 -0
- package/dist/esm/components/DAvatar/index.js.map +1 -0
- package/dist/esm/components/DBadge/DBadge.js +31 -0
- package/dist/esm/components/DBadge/DBadge.js.map +1 -0
- package/dist/esm/components/DBadge/index.js +6 -0
- package/dist/esm/components/DBadge/index.js.map +1 -0
- package/dist/esm/components/DBox/DBox.js +9 -0
- package/dist/esm/components/DBox/DBox.js.map +1 -0
- package/dist/esm/components/DBox/index.js +6 -0
- package/dist/esm/components/DBox/index.js.map +1 -0
- package/dist/esm/components/DBoxFile/DBoxFile.js +26 -0
- package/dist/esm/components/DBoxFile/DBoxFile.js.map +1 -0
- package/dist/esm/components/DBoxFile/index.js +6 -0
- package/dist/esm/components/DBoxFile/index.js.map +1 -0
- package/dist/esm/components/DBoxFile/useDBoxFile.js +236 -0
- package/dist/esm/components/DBoxFile/useDBoxFile.js.map +1 -0
- package/dist/esm/components/DBoxFile/utils.js +127 -0
- package/dist/esm/components/DBoxFile/utils.js.map +1 -0
- package/dist/esm/components/DButton/DButton.js +84 -0
- package/dist/esm/components/DButton/DButton.js.map +1 -0
- package/dist/esm/components/DButton/index.js +6 -0
- package/dist/esm/components/DButton/index.js.map +1 -0
- package/dist/esm/components/DButtonIcon/DButtonIcon.js +52 -0
- package/dist/esm/components/DButtonIcon/DButtonIcon.js.map +1 -0
- package/dist/esm/components/DButtonIcon/index.js +6 -0
- package/dist/esm/components/DButtonIcon/index.js.map +1 -0
- package/dist/esm/components/DButtonIcon/warnMissingAccessibleName.js +40 -0
- package/dist/esm/components/DButtonIcon/warnMissingAccessibleName.js.map +1 -0
- package/dist/esm/components/DCard/DCard.js +17 -0
- package/dist/esm/components/DCard/DCard.js.map +1 -0
- package/dist/esm/components/DCard/components/DCardBody.js +9 -0
- package/dist/esm/components/DCard/components/DCardBody.js.map +1 -0
- package/dist/esm/components/DCard/components/DCardFooter.js +9 -0
- package/dist/esm/components/DCard/components/DCardFooter.js.map +1 -0
- package/dist/esm/components/DCard/components/DCardHeader.js +9 -0
- package/dist/esm/components/DCard/components/DCardHeader.js.map +1 -0
- package/dist/esm/components/DCard/index.js +9 -0
- package/dist/esm/components/DCard/index.js.map +1 -0
- package/dist/esm/components/DCarousel/DCarousel.js +39 -0
- package/dist/esm/components/DCarousel/DCarousel.js.map +1 -0
- package/dist/esm/components/DCarousel/components/DCarouselSlide.js +12 -0
- package/dist/esm/components/DCarousel/components/DCarouselSlide.js.map +1 -0
- package/dist/esm/components/DCarousel/index.js +7 -0
- package/dist/esm/components/DCarousel/index.js.map +1 -0
- package/dist/esm/components/DChip/DChip.js +18 -0
- package/dist/esm/components/DChip/DChip.js.map +1 -0
- package/dist/esm/components/DChip/index.js +6 -0
- package/dist/esm/components/DChip/index.js.map +1 -0
- package/dist/esm/components/DCollapse/DCollapse.js +30 -0
- package/dist/esm/components/DCollapse/DCollapse.js.map +1 -0
- package/dist/esm/components/DCollapse/index.js +6 -0
- package/dist/esm/components/DCollapse/index.js.map +1 -0
- package/dist/esm/components/DConfirmModal/DConfirmModalContainer.js +59 -0
- package/dist/esm/components/DConfirmModal/DConfirmModalContainer.js.map +1 -0
- package/dist/esm/components/DConfirmModal/DConfirmModalUI.js +39 -0
- package/dist/esm/components/DConfirmModal/DConfirmModalUI.js.map +1 -0
- package/dist/esm/components/DConfirmModal/confirmModalStore.js +38 -0
- package/dist/esm/components/DConfirmModal/confirmModalStore.js.map +1 -0
- package/dist/esm/components/DCreditCard/DCreditCard.js +15 -0
- package/dist/esm/components/DCreditCard/DCreditCard.js.map +1 -0
- package/dist/esm/components/DCreditCard/index.js +6 -0
- package/dist/esm/components/DCreditCard/index.js.map +1 -0
- package/dist/esm/components/DCurrencyText/DCurrencyText.js +10 -0
- package/dist/esm/components/DCurrencyText/DCurrencyText.js.map +1 -0
- package/dist/esm/components/DCurrencyText/index.js +6 -0
- package/dist/esm/components/DCurrencyText/index.js.map +1 -0
- package/dist/esm/components/DDataStateWrapper/DDataStateWrapper.js +35 -0
- package/dist/esm/components/DDataStateWrapper/DDataStateWrapper.js.map +1 -0
- package/dist/esm/components/DDataStateWrapper/components/EmptyState.js +10 -0
- package/dist/esm/components/DDataStateWrapper/components/EmptyState.js.map +1 -0
- package/dist/esm/components/DDataStateWrapper/components/ErrorState.js +10 -0
- package/dist/esm/components/DDataStateWrapper/components/ErrorState.js.map +1 -0
- package/dist/esm/components/DDataStateWrapper/components/LoadingState.js +8 -0
- package/dist/esm/components/DDataStateWrapper/components/LoadingState.js.map +1 -0
- package/dist/esm/components/DDataStateWrapper/index.js +9 -0
- package/dist/esm/components/DDataStateWrapper/index.js.map +1 -0
- package/dist/esm/components/DDatePicker/DDatePicker.js +54 -0
- package/dist/esm/components/DDatePicker/DDatePicker.js.map +1 -0
- package/dist/esm/components/DDatePicker/components/DDatePickerHeaderSelector.js +50 -0
- package/dist/esm/components/DDatePicker/components/DDatePickerHeaderSelector.js.map +1 -0
- package/dist/esm/components/DDatePicker/components/DDatePickerInput.js +16 -0
- package/dist/esm/components/DDatePicker/components/DDatePickerInput.js.map +1 -0
- package/dist/esm/components/DDatePicker/components/DDatePickerTime.js +11 -0
- package/dist/esm/components/DDatePicker/components/DDatePickerTime.js.map +1 -0
- package/dist/esm/components/DDatePicker/index.js +6 -0
- package/dist/esm/components/DDatePicker/index.js.map +1 -0
- package/dist/esm/components/DDropdown/DDropdown.js +315 -0
- package/dist/esm/components/DDropdown/DDropdown.js.map +1 -0
- package/dist/esm/components/DDropdown/index.js +6 -0
- package/dist/esm/components/DDropdown/index.js.map +1 -0
- package/dist/esm/components/DErrorBoundary/DErrorBoundary.js +22 -0
- package/dist/esm/components/DErrorBoundary/DErrorBoundary.js.map +1 -0
- package/dist/esm/components/DErrorBoundary/components/DefaultErrorBoundary.js +10 -0
- package/dist/esm/components/DErrorBoundary/components/DefaultErrorBoundary.js.map +1 -0
- package/dist/esm/components/DErrorBoundary/index.js +7 -0
- package/dist/esm/components/DErrorBoundary/index.js.map +1 -0
- package/dist/esm/components/DIcon/DIcon.js +21 -0
- package/dist/esm/components/DIcon/DIcon.js.map +1 -0
- package/dist/esm/components/DIcon/index.js +6 -0
- package/dist/esm/components/DIcon/index.js.map +1 -0
- package/dist/esm/components/DIconBase/DIconBase.js +146 -0
- package/dist/esm/components/DIconBase/DIconBase.js.map +1 -0
- package/dist/esm/components/DIconBase/index.js +6 -0
- package/dist/esm/components/DIconBase/index.js.map +1 -0
- package/dist/esm/components/DIconBase/resolveIconFromRegistry.js +20 -0
- package/dist/esm/components/DIconBase/resolveIconFromRegistry.js.map +1 -0
- package/dist/esm/components/DIconBase/warnUnknownIcon.js +59 -0
- package/dist/esm/components/DIconBase/warnUnknownIcon.js.map +1 -0
- package/dist/esm/components/DInput/DInput.js +83 -0
- package/dist/esm/components/DInput/DInput.js.map +1 -0
- package/dist/esm/components/DInput/index.js +6 -0
- package/dist/esm/components/DInput/index.js.map +1 -0
- package/dist/esm/components/DInputCheck/DInputCheck.js +57 -0
- package/dist/esm/components/DInputCheck/DInputCheck.js.map +1 -0
- package/dist/esm/components/DInputCheck/index.js +6 -0
- package/dist/esm/components/DInputCheck/index.js.map +1 -0
- package/dist/esm/components/DInputCounter/DInputCounter.js +49 -0
- package/dist/esm/components/DInputCounter/DInputCounter.js.map +1 -0
- package/dist/esm/components/DInputCounter/index.js +6 -0
- package/dist/esm/components/DInputCounter/index.js.map +1 -0
- package/dist/esm/components/DInputCurrency/DInputCurrency.js +20 -0
- package/dist/esm/components/DInputCurrency/DInputCurrency.js.map +1 -0
- package/dist/esm/components/DInputCurrency/index.js +6 -0
- package/dist/esm/components/DInputCurrency/index.js.map +1 -0
- package/dist/esm/components/DInputMask/DInputMask.js +13 -0
- package/dist/esm/components/DInputMask/DInputMask.js.map +1 -0
- package/dist/esm/components/DInputMask/index.js +6 -0
- package/dist/esm/components/DInputMask/index.js.map +1 -0
- package/dist/esm/components/DInputPassword/DInputPassword.js +24 -0
- package/dist/esm/components/DInputPassword/DInputPassword.js.map +1 -0
- package/dist/esm/components/DInputPassword/index.js +6 -0
- package/dist/esm/components/DInputPassword/index.js.map +1 -0
- package/dist/esm/components/DInputPhone/DInputPhone.js +96 -0
- package/dist/esm/components/DInputPhone/DInputPhone.js.map +1 -0
- package/dist/esm/components/DInputPhone/index.js +6 -0
- package/dist/esm/components/DInputPhone/index.js.map +1 -0
- package/dist/esm/components/DInputPin/DInputPin.js +86 -0
- package/dist/esm/components/DInputPin/DInputPin.js.map +1 -0
- package/dist/esm/components/DInputPin/index.js +6 -0
- package/dist/esm/components/DInputPin/index.js.map +1 -0
- package/dist/esm/components/DInputRange/DInputRange.js +46 -0
- package/dist/esm/components/DInputRange/DInputRange.js.map +1 -0
- package/dist/esm/components/DInputRange/index.js +6 -0
- package/dist/esm/components/DInputRange/index.js.map +1 -0
- package/dist/esm/components/DInputSearch/DInputSearch.js +57 -0
- package/dist/esm/components/DInputSearch/DInputSearch.js.map +1 -0
- package/dist/esm/components/DInputSearch/index.js +6 -0
- package/dist/esm/components/DInputSearch/index.js.map +1 -0
- package/dist/esm/components/DInputSelect/DInputSelect.js +90 -0
- package/dist/esm/components/DInputSelect/DInputSelect.js.map +1 -0
- package/dist/esm/components/DInputSelect/index.js +6 -0
- package/dist/esm/components/DInputSelect/index.js.map +1 -0
- package/dist/esm/components/DInputSwitch/DInputSwitch.js +32 -0
- package/dist/esm/components/DInputSwitch/DInputSwitch.js.map +1 -0
- package/dist/esm/components/DInputSwitch/index.js +6 -0
- package/dist/esm/components/DInputSwitch/index.js.map +1 -0
- package/dist/esm/components/DLayout/DLayout.js +22 -0
- package/dist/esm/components/DLayout/DLayout.js.map +1 -0
- package/dist/esm/components/DLayout/components/DLayoutPane.js +16 -0
- package/dist/esm/components/DLayout/components/DLayoutPane.js.map +1 -0
- package/dist/esm/components/DLayout/index.js +7 -0
- package/dist/esm/components/DLayout/index.js.map +1 -0
- package/dist/esm/components/DListGroup/DListGroup.js +31 -0
- package/dist/esm/components/DListGroup/DListGroup.js.map +1 -0
- package/dist/esm/components/DListGroup/components/DListGroupItem.js +41 -0
- package/dist/esm/components/DListGroup/components/DListGroupItem.js.map +1 -0
- package/dist/esm/components/DListGroup/index.js +7 -0
- package/dist/esm/components/DListGroup/index.js.map +1 -0
- package/dist/esm/components/DModal/DModal.js +37 -0
- package/dist/esm/components/DModal/DModal.js.map +1 -0
- package/dist/esm/components/DModal/components/DModalBody.js +9 -0
- package/dist/esm/components/DModal/components/DModalBody.js.map +1 -0
- package/dist/esm/components/DModal/components/DModalFooter.js +14 -0
- package/dist/esm/components/DModal/components/DModalFooter.js.map +1 -0
- package/dist/esm/components/DModal/components/DModalHeader.js +15 -0
- package/dist/esm/components/DModal/components/DModalHeader.js.map +1 -0
- package/dist/esm/components/DModal/index.js +9 -0
- package/dist/esm/components/DModal/index.js.map +1 -0
- package/dist/esm/components/DOffcanvas/DOffcanvas.js +82 -0
- package/dist/esm/components/DOffcanvas/DOffcanvas.js.map +1 -0
- package/dist/esm/components/DOffcanvas/components/DOffcanvasBody.js +9 -0
- package/dist/esm/components/DOffcanvas/components/DOffcanvasBody.js.map +1 -0
- package/dist/esm/components/DOffcanvas/components/DOffcanvasFooter.js +14 -0
- package/dist/esm/components/DOffcanvas/components/DOffcanvasFooter.js.map +1 -0
- package/dist/esm/components/DOffcanvas/components/DOffcanvasHeader.js +15 -0
- package/dist/esm/components/DOffcanvas/components/DOffcanvasHeader.js.map +1 -0
- package/dist/esm/components/DOffcanvas/index.js +9 -0
- package/dist/esm/components/DOffcanvas/index.js.map +1 -0
- package/dist/esm/components/DOtp/DOtp.js +26 -0
- package/dist/esm/components/DOtp/DOtp.js.map +1 -0
- package/dist/esm/components/DOtp/components/OtpCountdown.js +12 -0
- package/dist/esm/components/DOtp/components/OtpCountdown.js.map +1 -0
- package/dist/esm/components/DOtp/index.js +6 -0
- package/dist/esm/components/DOtp/index.js.map +1 -0
- package/dist/esm/components/DPaginator/DPaginator.js +12 -0
- package/dist/esm/components/DPaginator/DPaginator.js.map +1 -0
- package/dist/esm/components/DPaginator/index.js +6 -0
- package/dist/esm/components/DPaginator/index.js.map +1 -0
- package/dist/esm/components/DPasswordStrengthMeter/DPasswordStrengthMeter.js +27 -0
- package/dist/esm/components/DPasswordStrengthMeter/DPasswordStrengthMeter.js.map +1 -0
- package/dist/esm/components/DPasswordStrengthMeter/PasswordCheckItem.js +10 -0
- package/dist/esm/components/DPasswordStrengthMeter/PasswordCheckItem.js.map +1 -0
- package/dist/esm/components/DPasswordStrengthMeter/PasswordCheckList.js +41 -0
- package/dist/esm/components/DPasswordStrengthMeter/PasswordCheckList.js.map +1 -0
- package/dist/esm/components/DPasswordStrengthMeter/PasswordStrength.js +23 -0
- package/dist/esm/components/DPasswordStrengthMeter/PasswordStrength.js.map +1 -0
- package/dist/esm/components/DPasswordStrengthMeter/index.js +6 -0
- package/dist/esm/components/DPasswordStrengthMeter/index.js.map +1 -0
- package/dist/esm/components/DPopover/DPopover.js +49 -0
- package/dist/esm/components/DPopover/DPopover.js.map +1 -0
- package/dist/esm/components/DPopover/index.js +6 -0
- package/dist/esm/components/DPopover/index.js.map +1 -0
- package/dist/esm/components/DProgress/DProgress.js +16 -0
- package/dist/esm/components/DProgress/DProgress.js.map +1 -0
- package/dist/esm/components/DProgress/index.js +6 -0
- package/dist/esm/components/DProgress/index.js.map +1 -0
- package/dist/esm/components/DSelect/DSelect.js +60 -0
- package/dist/esm/components/DSelect/DSelect.js.map +1 -0
- package/dist/esm/components/DSelect/components/DSelectClearIndicator.js +12 -0
- package/dist/esm/components/DSelect/components/DSelectClearIndicator.js.map +1 -0
- package/dist/esm/components/DSelect/components/DSelectDropdownIndicator.js +12 -0
- package/dist/esm/components/DSelect/components/DSelectDropdownIndicator.js.map +1 -0
- package/dist/esm/components/DSelect/components/DSelectLoadingIndicator.js +12 -0
- package/dist/esm/components/DSelect/components/DSelectLoadingIndicator.js.map +1 -0
- package/dist/esm/components/DSelect/components/DSelectMultiValueRemove.js +12 -0
- package/dist/esm/components/DSelect/components/DSelectMultiValueRemove.js.map +1 -0
- package/dist/esm/components/DSelect/components/DSelectOptionCheck.js +14 -0
- package/dist/esm/components/DSelect/components/DSelectOptionCheck.js.map +1 -0
- package/dist/esm/components/DSelect/components/DSelectOptionEmoji.js +14 -0
- package/dist/esm/components/DSelect/components/DSelectOptionEmoji.js.map +1 -0
- package/dist/esm/components/DSelect/components/DSelectOptionIcon.js +15 -0
- package/dist/esm/components/DSelect/components/DSelectOptionIcon.js.map +1 -0
- package/dist/esm/components/DSelect/components/DSelectPlaceholder.js +14 -0
- package/dist/esm/components/DSelect/components/DSelectPlaceholder.js.map +1 -0
- package/dist/esm/components/DSelect/components/DSelectSingleValueEmoji.js +15 -0
- package/dist/esm/components/DSelect/components/DSelectSingleValueEmoji.js.map +1 -0
- package/dist/esm/components/DSelect/components/DSelectSingleValueEmojiText.js +15 -0
- package/dist/esm/components/DSelect/components/DSelectSingleValueEmojiText.js.map +1 -0
- package/dist/esm/components/DSelect/components/DSelectSingleValueIconText.js +16 -0
- package/dist/esm/components/DSelect/components/DSelectSingleValueIconText.js.map +1 -0
- package/dist/esm/components/DSelect/index.js +6 -0
- package/dist/esm/components/DSelect/index.js.map +1 -0
- package/dist/esm/components/DStepper/DStepper.js +13 -0
- package/dist/esm/components/DStepper/DStepper.js.map +1 -0
- package/dist/esm/components/DStepper/index.js +6 -0
- package/dist/esm/components/DStepper/index.js.map +1 -0
- package/dist/esm/components/DStepperDesktop/DStepperDesktop.js +27 -0
- package/dist/esm/components/DStepperDesktop/DStepperDesktop.js.map +1 -0
- package/dist/esm/components/DStepperDesktop/index.js +6 -0
- package/dist/esm/components/DStepperDesktop/index.js.map +1 -0
- package/dist/esm/components/DStepperMobile/DStepperMobile.js +37 -0
- package/dist/esm/components/DStepperMobile/DStepperMobile.js.map +1 -0
- package/dist/esm/components/DStepperMobile/index.js +6 -0
- package/dist/esm/components/DStepperMobile/index.js.map +1 -0
- package/dist/esm/components/DTabs/DTabs.js +117 -0
- package/dist/esm/components/DTabs/DTabs.js.map +1 -0
- package/dist/esm/components/DTabs/TabContext.js +13 -0
- package/dist/esm/components/DTabs/TabContext.js.map +1 -0
- package/dist/esm/components/DTabs/components/DTabContent.js +14 -0
- package/dist/esm/components/DTabs/components/DTabContent.js.map +1 -0
- package/dist/esm/components/DTabs/index.js +8 -0
- package/dist/esm/components/DTabs/index.js.map +1 -0
- package/dist/esm/components/DTimeline/DTimeline.js +12 -0
- package/dist/esm/components/DTimeline/DTimeline.js.map +1 -0
- package/dist/esm/components/DTimeline/index.js +6 -0
- package/dist/esm/components/DTimeline/index.js.map +1 -0
- package/dist/esm/components/DToast/DToast.js +15 -0
- package/dist/esm/components/DToast/DToast.js.map +1 -0
- package/dist/esm/components/DToast/components/DToastBody.js +9 -0
- package/dist/esm/components/DToast/components/DToastBody.js.map +1 -0
- package/dist/esm/components/DToast/components/DToastHeader.js +9 -0
- package/dist/esm/components/DToast/components/DToastHeader.js.map +1 -0
- package/dist/esm/components/DToast/index.js +8 -0
- package/dist/esm/components/DToast/index.js.map +1 -0
- package/dist/esm/components/DToastContainer/DToastContainer.js +9 -0
- package/dist/esm/components/DToastContainer/DToastContainer.js.map +1 -0
- package/dist/esm/components/DToastContainer/index.js +7 -0
- package/dist/esm/components/DToastContainer/index.js.map +1 -0
- package/dist/esm/components/DToastContainer/useDToast.js +58 -0
- package/dist/esm/components/DToastContainer/useDToast.js.map +1 -0
- package/dist/esm/components/DTooltip/DTooltip.js +51 -0
- package/dist/esm/components/DTooltip/DTooltip.js.map +1 -0
- package/dist/esm/components/DTooltip/index.js +6 -0
- package/dist/esm/components/DTooltip/index.js.map +1 -0
- package/dist/esm/components/DVoucher/DVoucher.js +55 -0
- package/dist/esm/components/DVoucher/DVoucher.js.map +1 -0
- package/dist/esm/components/DVoucher/hooks/useScreenshot.js +30 -0
- package/dist/esm/components/DVoucher/hooks/useScreenshot.js.map +1 -0
- package/dist/esm/components/DVoucher/hooks/useScreenshotDownload.js +30 -0
- package/dist/esm/components/DVoucher/hooks/useScreenshotDownload.js.map +1 -0
- package/dist/esm/components/DVoucher/hooks/useScreenshotWebShare.js +27 -0
- package/dist/esm/components/DVoucher/hooks/useScreenshotWebShare.js.map +1 -0
- package/dist/esm/components/DVoucher/index.js +9 -0
- package/dist/esm/components/DVoucher/index.js.map +1 -0
- package/dist/esm/components/config.js +14 -0
- package/dist/esm/components/config.js.map +1 -0
- package/dist/esm/contexts/DContext.js +124 -0
- package/dist/esm/contexts/DContext.js.map +1 -0
- package/dist/esm/contexts/DPortalContext.js +128 -0
- package/dist/esm/contexts/DPortalContext.js.map +1 -0
- package/dist/esm/hooks/useConfirmModal.js +63 -0
- package/dist/esm/hooks/useConfirmModal.js.map +1 -0
- package/dist/esm/hooks/useCountdown.js +45 -0
- package/dist/esm/hooks/useCountdown.js.map +1 -0
- package/dist/esm/hooks/useDisableBodyScrollEffect.js +52 -0
- package/dist/esm/hooks/useDisableBodyScrollEffect.js.map +1 -0
- package/dist/esm/hooks/useDisableInputWheel.js +17 -0
- package/dist/esm/hooks/useDisableInputWheel.js.map +1 -0
- package/dist/esm/hooks/useFormatCurrency.js +16 -0
- package/dist/esm/hooks/useFormatCurrency.js.map +1 -0
- package/dist/esm/hooks/useInputCurrency.js +76 -0
- package/dist/esm/hooks/useInputCurrency.js.map +1 -0
- package/dist/esm/hooks/useItemSelection.js +35 -0
- package/dist/esm/hooks/useItemSelection.js.map +1 -0
- package/dist/esm/hooks/useMediaBreakpointUp.js +30 -0
- package/dist/esm/hooks/useMediaBreakpointUp.js.map +1 -0
- package/dist/esm/hooks/useMediaQuery.js +11 -0
- package/dist/esm/hooks/useMediaQuery.js.map +1 -0
- package/dist/esm/hooks/useOtp.js +107 -0
- package/dist/esm/hooks/useOtp.js.map +1 -0
- package/dist/esm/hooks/usePortal.js +26 -0
- package/dist/esm/hooks/usePortal.js.map +1 -0
- package/dist/esm/hooks/useProvidedRefOrCreate.js +24 -0
- package/dist/esm/hooks/useProvidedRefOrCreate.js.map +1 -0
- package/dist/esm/hooks/useResponsiveProp.js +50 -0
- package/dist/esm/hooks/useResponsiveProp.js.map +1 -0
- package/dist/esm/hooks/useStackState.js +40 -0
- package/dist/esm/hooks/useStackState.js.map +1 -0
- package/dist/esm/icons/coreIcons.js +55 -0
- package/dist/esm/icons/coreIcons.js.map +1 -0
- package/dist/esm/index.js +98 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/utils/attr-accept.js +38 -0
- package/dist/esm/utils/attr-accept.js.map +1 -0
- package/dist/esm/utils/buildUrl.js +57 -0
- package/dist/esm/utils/buildUrl.js.map +1 -0
- package/dist/esm/utils/changeQueryString.js +19 -0
- package/dist/esm/utils/changeQueryString.js.map +1 -0
- package/dist/esm/utils/configureI18n.js +20 -0
- package/dist/esm/utils/configureI18n.js.map +1 -0
- package/dist/esm/utils/formatCurrency.js +8 -0
- package/dist/esm/utils/formatCurrency.js.map +1 -0
- package/dist/esm/utils/getCssVariable.js +7 -0
- package/dist/esm/utils/getCssVariable.js.map +1 -0
- package/dist/esm/utils/getKeyboardFocusableElements.js +11 -0
- package/dist/esm/utils/getKeyboardFocusableElements.js.map +1 -0
- package/dist/esm/utils/getQueryString.js +8 -0
- package/dist/esm/utils/getQueryString.js.map +1 -0
- package/dist/esm/utils/mediaQuery.js +13 -0
- package/dist/esm/utils/mediaQuery.js.map +1 -0
- package/dist/esm/utils/sanitizeHref.js +67 -0
- package/dist/esm/utils/sanitizeHref.js.map +1 -0
- package/dist/esm/utils/validatePhoneNumber.js +14 -0
- package/dist/esm/utils/validatePhoneNumber.js.map +1 -0
- package/dist/icons-core.json +33 -0
- package/dist/index.esm.js +287 -22
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +287 -21
- package/dist/index.js.map +1 -1
- package/dist/types/components/DButtonIcon/warnMissingAccessibleName.d.ts +18 -0
- package/dist/types/components/DIcon/DIcon.d.ts +8 -0
- package/dist/types/components/DIconBase/DIconBase.d.ts +43 -1
- package/dist/types/components/DIconBase/resolveIconFromRegistry.d.ts +14 -0
- package/dist/types/components/DIconBase/warnUnknownIcon.d.ts +13 -0
- package/dist/types/components/DInputRange/DInputRange.d.ts +1 -1
- package/dist/types/components/config.d.ts +10 -0
- package/dist/types/icons/coreIcons.d.ts +24 -0
- package/dist/types/icons/index.d.ts +2 -0
- package/dist/types/index.d.ts +1 -0
- package/package.json +4 -4
- package/dist/types/components/DVoucher/hooks/useScreenshotDownload.spec.d.ts +0 -1
- package/dist/types/components/DVoucher/hooks/useScreenshotWebShare.spec.d.ts +0 -1
- package/dist/types/hooks/tests/useCountdown.spec.d.ts +0 -1
- package/dist/types/hooks/tests/useDisableBodyScrollEffect.spec.d.ts +0 -1
- package/dist/types/hooks/tests/useDisableInputWheel.spec.d.ts +0 -1
- package/dist/types/hooks/tests/useFormatCurrency.spec.d.ts +0 -1
- package/dist/types/hooks/tests/useInputCurrency.spec.d.ts +0 -1
- package/dist/types/hooks/tests/useItemSelection.spec.d.ts +0 -1
- package/dist/types/hooks/tests/useMediaBreakpointUp.spec.d.ts +0 -1
- package/dist/types/hooks/tests/useMediaQuery.spec.d.ts +0 -1
- package/dist/types/hooks/tests/usePortal.spec.d.ts +0 -1
- package/dist/types/hooks/tests/useProvidedRefOrCreate.spec.d.ts +0 -1
- package/dist/types/hooks/tests/useStackState.spec.d.ts +0 -1
- package/dist/types/utils/tests/attr-accept.spec.d.ts +0 -1
- package/dist/types/utils/tests/buildUrl.spec.d.ts +0 -1
- package/dist/types/utils/tests/changeQueryString.spec.d.ts +0 -1
- package/dist/types/utils/tests/configureI18n.spec.d.ts +0 -1
- package/dist/types/utils/tests/formatCurrency.spec.d.ts +0 -1
- package/dist/types/utils/tests/getCssVariable.spec.d.ts +0 -1
- package/dist/types/utils/tests/getKeyboardFocusableElements.spec.d.ts +0 -1
- package/dist/types/utils/tests/getQueryString.spec.d.ts +0 -1
- package/dist/types/utils/tests/mediaQuery.spec.d.ts +0 -1
- package/dist/types/utils/tests/sanitizeHref.spec.d.ts +0 -1
- package/dist/types/utils/tests/validatePhoneNumber.spec.d.ts +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DChip.js","sources":["../../../../dist-transpiled/components/DChip/DChip.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useMemo } from 'react';\nimport classNames from 'classnames';\nimport DIcon from '../DIcon';\nimport { useDContext } from '../../contexts';\nexport default function DChip({ color = 'primary', text, icon, iconFamilyClass, iconFamilyPrefix, iconMaterialStyle, iconClose: iconCloseProp, iconCloseFamilyClass, iconCloseFamilyPrefix, iconCloseMaterialStyle, showClose = false, closeAriaLabel = 'close', className, style, dataAttributes, onClose, }) {\n const generateClasses = useMemo(() => ({\n 'd-chip': true,\n [`d-chip-${color}`]: !!color,\n }), [color]);\n const { icon: { familyClass, familyPrefix, materialStyle, }, iconMap: { xLg, }, } = useDContext();\n const iconClose = useMemo(() => iconCloseProp || xLg, [iconCloseProp, xLg]);\n return (_jsxs(\"span\", Object.assign({ className: classNames(generateClasses, className), style: style }, dataAttributes, { children: [icon && (_jsx(\"div\", { className: \"d-chip-icon-container\", children: _jsx(DIcon, { icon: icon, familyClass: iconFamilyClass !== null && iconFamilyClass !== void 0 ? iconFamilyClass : familyClass, familyPrefix: iconFamilyPrefix !== null && iconFamilyPrefix !== void 0 ? iconFamilyPrefix : familyPrefix, materialStyle: iconMaterialStyle !== null && iconMaterialStyle !== void 0 ? iconMaterialStyle : materialStyle }) })), _jsx(\"span\", { children: text }), showClose && (_jsx(\"button\", { type: \"button\", className: \"d-chip-icon-container\", onClick: onClose, \"aria-label\": closeAriaLabel, children: _jsx(DIcon, { icon: iconClose, familyClass: iconCloseFamilyClass !== null && iconCloseFamilyClass !== void 0 ? iconCloseFamilyClass : familyClass, familyPrefix: iconCloseFamilyPrefix !== null && iconCloseFamilyPrefix !== void 0 ? iconCloseFamilyPrefix : familyPrefix, materialStyle: iconCloseMaterialStyle !== null && iconCloseMaterialStyle !== void 0 ? iconCloseMaterialStyle : materialStyle }) }))] })));\n}\n//# sourceMappingURL=DChip.js.map"],"names":["_jsxs","_jsx"],"mappings":";;;;;;AAKe,SAAS,KAAK,CAAC,EAAE,KAAK,GAAG,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,SAAS,EAAE,aAAa,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,SAAS,GAAG,KAAK,EAAE,cAAc,GAAG,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,GAAG,EAAE;AAC/S,IAAI,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO;AAC3C,QAAQ,QAAQ,EAAE,IAAI;AACtB,QAAQ,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK;AACpC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAChB,IAAI,MAAM,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,GAAG,EAAE,OAAO,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,WAAW,EAAE;AACrG,IAAI,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,aAAa,IAAI,GAAG,EAAE,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;AAC/E,IAAI,QAAQA,IAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC,IAAI,KAAKC,GAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,uBAAuB,EAAE,QAAQ,EAAEA,GAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,KAAK,IAAI,IAAI,eAAe,KAAK,MAAM,GAAG,eAAe,GAAG,WAAW,EAAE,YAAY,EAAE,gBAAgB,KAAK,IAAI,IAAI,gBAAgB,KAAK,MAAM,GAAG,gBAAgB,GAAG,YAAY,EAAE,aAAa,EAAE,iBAAiB,KAAK,IAAI,IAAI,iBAAiB,KAAK,MAAM,GAAG,iBAAiB,GAAG,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,EAAEA,GAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,KAAKA,GAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,uBAAuB,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAEA,GAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,oBAAoB,KAAK,IAAI,IAAI,oBAAoB,KAAK,MAAM,GAAG,oBAAoB,GAAG,WAAW,EAAE,YAAY,EAAE,qBAAqB,KAAK,IAAI,IAAI,qBAAqB,KAAK,MAAM,GAAG,qBAAqB,GAAG,YAAY,EAAE,aAAa,EAAE,sBAAsB,KAAK,IAAI,IAAI,sBAAsB,KAAK,MAAM,GAAG,sBAAsB,GAAG,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACjnC;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import classNames from 'classnames';
|
|
3
|
+
import { useState, useEffect, useMemo } from 'react';
|
|
4
|
+
import DIcon from '../DIcon/DIcon.js';
|
|
5
|
+
import { useDContext } from '../../contexts/DContext.js';
|
|
6
|
+
|
|
7
|
+
function DCollapse({ id, className, style, Component, defaultCollapsed = true, onChange, children, iconOpen: iconOpenProp, iconClose: iconCloseProp, iconFamilyClass, iconFamilyPrefix, iconMaterialStyle, dataAttributes, }) {
|
|
8
|
+
const [collapsed, setCollapsed] = useState(defaultCollapsed);
|
|
9
|
+
const onChangeCollapse = () => {
|
|
10
|
+
setCollapsed((prev) => {
|
|
11
|
+
const next = !prev;
|
|
12
|
+
if (onChange) {
|
|
13
|
+
onChange(next);
|
|
14
|
+
}
|
|
15
|
+
return next;
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
setCollapsed(defaultCollapsed);
|
|
20
|
+
}, [defaultCollapsed]);
|
|
21
|
+
const { icon: { familyClass, familyPrefix, materialStyle, }, iconMap: { chevronDown, chevronUp, }, } = useDContext();
|
|
22
|
+
const iconOpen = useMemo(() => iconOpenProp || chevronDown, [chevronDown, iconOpenProp]);
|
|
23
|
+
const iconClose = useMemo(() => iconCloseProp || chevronUp, [chevronUp, iconCloseProp]);
|
|
24
|
+
return (jsxs("div", Object.assign({ id: id, className: classNames('collapse-container', className), style: style }, dataAttributes, { children: [jsxs("button", { className: "collapse-button", type: "button", onClick: onChangeCollapse, children: [jsx("div", { className: "flex-grow-1", children: Component }), jsx(DIcon, { className: "collapse-icon", color: "primary", size: "1.25rem", icon: collapsed ? iconOpen : iconClose, familyClass: iconFamilyClass !== null && iconFamilyClass !== void 0 ? iconFamilyClass : familyClass, familyPrefix: iconFamilyPrefix !== null && iconFamilyPrefix !== void 0 ? iconFamilyPrefix : familyPrefix, materialStyle: iconMaterialStyle !== null && iconMaterialStyle !== void 0 ? iconMaterialStyle : materialStyle })] }), jsx("div", { className: classNames('collapse-body-wrapper', {
|
|
25
|
+
show: !collapsed,
|
|
26
|
+
}), children: jsx("div", { className: "collapse-body", children: children }) })] })));
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export { DCollapse as default };
|
|
30
|
+
//# sourceMappingURL=DCollapse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DCollapse.js","sources":["../../../../dist-transpiled/components/DCollapse/DCollapse.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport classNames from 'classnames';\nimport { useMemo, useState, useEffect, } from 'react';\nimport DIcon from '../DIcon';\nimport { useDContext } from '../../contexts';\nexport default function DCollapse({ id, className, style, Component, defaultCollapsed = true, onChange, children, iconOpen: iconOpenProp, iconClose: iconCloseProp, iconFamilyClass, iconFamilyPrefix, iconMaterialStyle, dataAttributes, }) {\n const [collapsed, setCollapsed] = useState(defaultCollapsed);\n const onChangeCollapse = () => {\n setCollapsed((prev) => {\n const next = !prev;\n if (onChange) {\n onChange(next);\n }\n return next;\n });\n };\n useEffect(() => {\n setCollapsed(defaultCollapsed);\n }, [defaultCollapsed]);\n const { icon: { familyClass, familyPrefix, materialStyle, }, iconMap: { chevronDown, chevronUp, }, } = useDContext();\n const iconOpen = useMemo(() => iconOpenProp || chevronDown, [chevronDown, iconOpenProp]);\n const iconClose = useMemo(() => iconCloseProp || chevronUp, [chevronUp, iconCloseProp]);\n return (_jsxs(\"div\", Object.assign({ id: id, className: classNames('collapse-container', className), style: style }, dataAttributes, { children: [_jsxs(\"button\", { className: \"collapse-button\", type: \"button\", onClick: onChangeCollapse, children: [_jsx(\"div\", { className: \"flex-grow-1\", children: Component }), _jsx(DIcon, { className: \"collapse-icon\", color: \"primary\", size: \"1.25rem\", icon: collapsed ? iconOpen : iconClose, familyClass: iconFamilyClass !== null && iconFamilyClass !== void 0 ? iconFamilyClass : familyClass, familyPrefix: iconFamilyPrefix !== null && iconFamilyPrefix !== void 0 ? iconFamilyPrefix : familyPrefix, materialStyle: iconMaterialStyle !== null && iconMaterialStyle !== void 0 ? iconMaterialStyle : materialStyle })] }), _jsx(\"div\", { className: classNames('collapse-body-wrapper', {\n show: !collapsed,\n }), children: _jsx(\"div\", { className: \"collapse-body\", children: children }) })] })));\n}\n//# sourceMappingURL=DCollapse.js.map"],"names":["_jsxs","_jsx"],"mappings":";;;;;;AAKe,SAAS,SAAS,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,gBAAgB,GAAG,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,GAAG,EAAE;AAC7O,IAAI,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC;AAChE,IAAI,MAAM,gBAAgB,GAAG,MAAM;AACnC,QAAQ,YAAY,CAAC,CAAC,IAAI,KAAK;AAC/B,YAAY,MAAM,IAAI,GAAG,CAAC,IAAI;AAC9B,YAAY,IAAI,QAAQ,EAAE;AAC1B,gBAAgB,QAAQ,CAAC,IAAI,CAAC;AAC9B,YAAY;AACZ,YAAY,OAAO,IAAI;AACvB,QAAQ,CAAC,CAAC;AACV,IAAI,CAAC;AACL,IAAI,SAAS,CAAC,MAAM;AACpB,QAAQ,YAAY,CAAC,gBAAgB,CAAC;AACtC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;AAC1B,IAAI,MAAM,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,GAAG,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,SAAS,GAAG,GAAG,GAAG,WAAW,EAAE;AACxH,IAAI,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,YAAY,IAAI,WAAW,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;AAC5F,IAAI,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,aAAa,IAAI,SAAS,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAC3F,IAAI,QAAQA,IAAK,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,oBAAoB,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,CAACA,IAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAACC,GAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAEA,GAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,EAAE,WAAW,EAAE,eAAe,KAAK,IAAI,IAAI,eAAe,KAAK,MAAM,GAAG,eAAe,GAAG,WAAW,EAAE,YAAY,EAAE,gBAAgB,KAAK,IAAI,IAAI,gBAAgB,KAAK,MAAM,GAAG,gBAAgB,GAAG,YAAY,EAAE,aAAa,EAAE,iBAAiB,KAAK,IAAI,IAAI,iBAAiB,KAAK,MAAM,GAAG,iBAAiB,GAAG,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,EAAEA,GAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,uBAAuB,EAAE;AACnzB,oBAAoB,IAAI,EAAE,CAAC,SAAS;AACpC,iBAAiB,CAAC,EAAE,QAAQ,EAAEA,GAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACrG;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { useState, useEffect } from 'react';
|
|
3
|
+
import { createPortal } from 'react-dom';
|
|
4
|
+
import { AnimatePresence, motion } from 'framer-motion';
|
|
5
|
+
import { useConfirmModalStore } from './confirmModalStore.js';
|
|
6
|
+
import DConfirmModalUI from './DConfirmModalUI.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Container that renders confirm modals into the specified portal node.
|
|
10
|
+
*
|
|
11
|
+
* Must be explicitly mounted by the user (typically as a sibling of app content
|
|
12
|
+
* within `DContextProvider`). The container floats above the portal stack and
|
|
13
|
+
* intercepts Escape key events to close the top confirm modal without affecting
|
|
14
|
+
* underlying modals or overlays.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* <DContextProvider>
|
|
18
|
+
* <App />
|
|
19
|
+
* <DConfirmModalContainer nodeId="d-portal" />
|
|
20
|
+
* </DContextProvider>
|
|
21
|
+
*/
|
|
22
|
+
function DConfirmModalContainer({ nodeId }) {
|
|
23
|
+
const store = useConfirmModalStore();
|
|
24
|
+
const [entries, setEntries] = useState([]);
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
const unsubscribe = store.subscribe((next) => {
|
|
27
|
+
setEntries(next);
|
|
28
|
+
});
|
|
29
|
+
return unsubscribe;
|
|
30
|
+
}, [store]);
|
|
31
|
+
// Capture Escape keydown to close the top confirm modal without affecting
|
|
32
|
+
// the underlying portal stack (which also handles Escape).
|
|
33
|
+
useEffect(() => {
|
|
34
|
+
if (entries.length === 0) {
|
|
35
|
+
return () => { };
|
|
36
|
+
}
|
|
37
|
+
const handleEscapeCapture = (event) => {
|
|
38
|
+
if (event.key === 'Escape') {
|
|
39
|
+
// Close the top (last) confirm modal
|
|
40
|
+
entries[entries.length - 1].onCloseAction();
|
|
41
|
+
// Prevent the event from reaching other handlers (e.g., DPortalContextProvider)
|
|
42
|
+
event.stopPropagation();
|
|
43
|
+
event.preventDefault();
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
document.addEventListener('keydown', handleEscapeCapture, true);
|
|
47
|
+
return () => {
|
|
48
|
+
document.removeEventListener('keydown', handleEscapeCapture, true);
|
|
49
|
+
};
|
|
50
|
+
}, [entries]);
|
|
51
|
+
const portalNode = document.getElementById(nodeId);
|
|
52
|
+
if (!portalNode || entries.length === 0) {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
return createPortal(jsx(AnimatePresence, { children: entries.map((entry) => (jsxs(motion.div, { initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0, transition: { delay: 0.3 } }, transition: { duration: 0.15, ease: 'linear' }, children: [jsx("div", { className: "backdrop backdrop-confirm-modal", onClick: entry.onCloseAction, role: "presentation" }), jsx(DConfirmModalUI, { entry: entry })] }, entry.id))) }), portalNode);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export { DConfirmModalContainer as default };
|
|
59
|
+
//# sourceMappingURL=DConfirmModalContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DConfirmModalContainer.js","sources":["../../../../dist-transpiled/components/DConfirmModal/DConfirmModalContainer.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useEffect, useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { useConfirmModalStore, } from './confirmModalStore';\nimport DConfirmModalUI from './DConfirmModalUI';\n/**\n * Container that renders confirm modals into the specified portal node.\n *\n * Must be explicitly mounted by the user (typically as a sibling of app content\n * within `DContextProvider`). The container floats above the portal stack and\n * intercepts Escape key events to close the top confirm modal without affecting\n * underlying modals or overlays.\n *\n * @example\n * <DContextProvider>\n * <App />\n * <DConfirmModalContainer nodeId=\"d-portal\" />\n * </DContextProvider>\n */\nexport default function DConfirmModalContainer({ nodeId }) {\n const store = useConfirmModalStore();\n const [entries, setEntries] = useState([]);\n useEffect(() => {\n const unsubscribe = store.subscribe((next) => {\n setEntries(next);\n });\n return unsubscribe;\n }, [store]);\n // Capture Escape keydown to close the top confirm modal without affecting\n // the underlying portal stack (which also handles Escape).\n useEffect(() => {\n if (entries.length === 0) {\n return () => { };\n }\n const handleEscapeCapture = (event) => {\n if (event.key === 'Escape') {\n // Close the top (last) confirm modal\n entries[entries.length - 1].onCloseAction();\n // Prevent the event from reaching other handlers (e.g., DPortalContextProvider)\n event.stopPropagation();\n event.preventDefault();\n }\n };\n document.addEventListener('keydown', handleEscapeCapture, true);\n return () => {\n document.removeEventListener('keydown', handleEscapeCapture, true);\n };\n }, [entries]);\n const portalNode = document.getElementById(nodeId);\n if (!portalNode || entries.length === 0) {\n return null;\n }\n return createPortal(_jsx(AnimatePresence, { children: entries.map((entry) => (_jsxs(motion.div, { initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0, transition: { delay: 0.3 } }, transition: { duration: 0.15, ease: 'linear' }, children: [_jsx(\"div\", { className: \"backdrop backdrop-confirm-modal\", onClick: entry.onCloseAction, role: \"presentation\" }), _jsx(DConfirmModalUI, { entry: entry })] }, entry.id))) }), portalNode);\n}\n//# sourceMappingURL=DConfirmModalContainer.js.map"],"names":["_jsx","_jsxs"],"mappings":";;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAS,sBAAsB,CAAC,EAAE,MAAM,EAAE,EAAE;AAC3D,IAAI,MAAM,KAAK,GAAG,oBAAoB,EAAE;AACxC,IAAI,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;AAC9C,IAAI,SAAS,CAAC,MAAM;AACpB,QAAQ,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK;AACtD,YAAY,UAAU,CAAC,IAAI,CAAC;AAC5B,QAAQ,CAAC,CAAC;AACV,QAAQ,OAAO,WAAW;AAC1B,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACf;AACA;AACA,IAAI,SAAS,CAAC,MAAM;AACpB,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AAClC,YAAY,OAAO,MAAM,EAAE,CAAC;AAC5B,QAAQ;AACR,QAAQ,MAAM,mBAAmB,GAAG,CAAC,KAAK,KAAK;AAC/C,YAAY,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;AACxC;AACA,gBAAgB,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE;AAC3D;AACA,gBAAgB,KAAK,CAAC,eAAe,EAAE;AACvC,gBAAgB,KAAK,CAAC,cAAc,EAAE;AACtC,YAAY;AACZ,QAAQ,CAAC;AACT,QAAQ,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,mBAAmB,EAAE,IAAI,CAAC;AACvE,QAAQ,OAAO,MAAM;AACrB,YAAY,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,mBAAmB,EAAE,IAAI,CAAC;AAC9E,QAAQ,CAAC;AACT,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AACjB,IAAI,MAAM,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC;AACtD,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7C,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,OAAO,YAAY,CAACA,GAAI,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,MAAMC,IAAK,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAACD,GAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,iCAAiC,EAAE,OAAO,EAAE,KAAK,CAAC,aAAa,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,EAAEA,GAAI,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC;AAC/b;;;;"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useState, useRef, useEffect, useCallback } from 'react';
|
|
3
|
+
import DModal from '../DModal/DModal.js';
|
|
4
|
+
import DButton from '../DButton/DButton.js';
|
|
5
|
+
import ForwardedDInput from '../DInput/DInput.js';
|
|
6
|
+
|
|
7
|
+
function DConfirmModalUI({ entry }) {
|
|
8
|
+
const { title = 'Are you sure you want to proceed?', message = 'Please confirm if you want to continue with this action.', confirmLabel = 'Confirm', cancelLabel = 'Cancel', confirmColor = 'primary', critical, onConfirmAction, onCloseAction, } = entry;
|
|
9
|
+
const [confirmationCode, setConfirmationCode] = useState('');
|
|
10
|
+
const [internalLoading, setInternalLoading] = useState(false);
|
|
11
|
+
const isMountedRef = useRef(true);
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
const cleanup = () => {
|
|
14
|
+
isMountedRef.current = false;
|
|
15
|
+
};
|
|
16
|
+
return cleanup;
|
|
17
|
+
}, []);
|
|
18
|
+
const handleClose = useCallback(() => {
|
|
19
|
+
onCloseAction();
|
|
20
|
+
}, [onCloseAction]);
|
|
21
|
+
const isConfirmDisabled = Boolean(internalLoading
|
|
22
|
+
|| (critical && confirmationCode !== critical.code));
|
|
23
|
+
const handleConfirmClick = useCallback(() => {
|
|
24
|
+
setInternalLoading(true);
|
|
25
|
+
onConfirmAction()
|
|
26
|
+
.catch(() => undefined)
|
|
27
|
+
.finally(() => {
|
|
28
|
+
// Only update state if the component is still mounted.
|
|
29
|
+
// onConfirmAction() removes the entry on success, which unmounts this component.
|
|
30
|
+
if (isMountedRef.current) {
|
|
31
|
+
setInternalLoading(false);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}, [onConfirmAction]);
|
|
35
|
+
return (jsxs(DModal, { name: entry.id, size: "lg", className: `confirm-modal ${critical ? 'critical-modal' : ''}`, children: [jsx(DModal.Header, { onClose: handleClose, showCloseButton: true, children: jsx("h5", { className: "fw-bold", children: title }) }), jsxs(DModal.Body, { className: "d-confirm-modal-body", children: [jsx("p", { className: "d-confirm-modal-message", children: message }), critical && (jsx(ForwardedDInput, { type: "text", label: critical.codeLabel || 'Confirmation code', placeholder: critical.inputPlaceholder, value: confirmationCode, onChange: (value) => setConfirmationCode(value), className: "d-confirm-modal-field", autoFocus: true }))] }), jsxs(DModal.Footer, { children: [jsx(DButton, { text: cancelLabel, variant: "outline", color: "secondary", onClick: handleClose, disabled: internalLoading }), jsx(DButton, { text: confirmLabel, color: confirmColor, onClick: handleConfirmClick, disabled: isConfirmDisabled, loading: internalLoading })] })] }));
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export { DConfirmModalUI as default };
|
|
39
|
+
//# sourceMappingURL=DConfirmModalUI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DConfirmModalUI.js","sources":["../../../../dist-transpiled/components/DConfirmModal/DConfirmModalUI.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useState, useCallback, useEffect, useRef, } from 'react';\nimport DModal from '../DModal';\nimport DButton from '../DButton';\nimport DInput from '../DInput';\nexport default function DConfirmModalUI({ entry }) {\n const { title = 'Are you sure you want to proceed?', message = 'Please confirm if you want to continue with this action.', confirmLabel = 'Confirm', cancelLabel = 'Cancel', confirmColor = 'primary', critical, onConfirmAction, onCloseAction, } = entry;\n const [confirmationCode, setConfirmationCode] = useState('');\n const [internalLoading, setInternalLoading] = useState(false);\n const isMountedRef = useRef(true);\n useEffect(() => {\n const cleanup = () => {\n isMountedRef.current = false;\n };\n return cleanup;\n }, []);\n const handleClose = useCallback(() => {\n onCloseAction();\n }, [onCloseAction]);\n const isConfirmDisabled = Boolean(internalLoading\n || (critical && confirmationCode !== critical.code));\n const handleConfirmClick = useCallback(() => {\n setInternalLoading(true);\n onConfirmAction()\n .catch(() => undefined)\n .finally(() => {\n // Only update state if the component is still mounted.\n // onConfirmAction() removes the entry on success, which unmounts this component.\n if (isMountedRef.current) {\n setInternalLoading(false);\n }\n });\n }, [onConfirmAction]);\n return (_jsxs(DModal, { name: entry.id, size: \"lg\", className: `confirm-modal ${critical ? 'critical-modal' : ''}`, children: [_jsx(DModal.Header, { onClose: handleClose, showCloseButton: true, children: _jsx(\"h5\", { className: \"fw-bold\", children: title }) }), _jsxs(DModal.Body, { className: \"d-confirm-modal-body\", children: [_jsx(\"p\", { className: \"d-confirm-modal-message\", children: message }), critical && (_jsx(DInput, { type: \"text\", label: critical.codeLabel || 'Confirmation code', placeholder: critical.inputPlaceholder, value: confirmationCode, onChange: (value) => setConfirmationCode(value), className: \"d-confirm-modal-field\", autoFocus: true }))] }), _jsxs(DModal.Footer, { children: [_jsx(DButton, { text: cancelLabel, variant: \"outline\", color: \"secondary\", onClick: handleClose, disabled: internalLoading }), _jsx(DButton, { text: confirmLabel, color: confirmColor, onClick: handleConfirmClick, disabled: isConfirmDisabled, loading: internalLoading })] })] }));\n}\n//# sourceMappingURL=DConfirmModalUI.js.map"],"names":["_jsxs","_jsx","DInput"],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { useContext, createContext } from 'react';
|
|
2
|
+
|
|
3
|
+
function createConfirmModalStore() {
|
|
4
|
+
const listeners = new Set();
|
|
5
|
+
let entries = [];
|
|
6
|
+
function notify() {
|
|
7
|
+
listeners.forEach((listener) => listener([...entries]));
|
|
8
|
+
}
|
|
9
|
+
const store = {
|
|
10
|
+
subscribe(listener) {
|
|
11
|
+
listeners.add(listener);
|
|
12
|
+
listener([...entries]);
|
|
13
|
+
return () => {
|
|
14
|
+
listeners.delete(listener);
|
|
15
|
+
};
|
|
16
|
+
},
|
|
17
|
+
push(entry) {
|
|
18
|
+
entries = [...entries, entry];
|
|
19
|
+
notify();
|
|
20
|
+
},
|
|
21
|
+
remove(id) {
|
|
22
|
+
entries = entries.filter((e) => e.id !== id);
|
|
23
|
+
notify();
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
return store;
|
|
27
|
+
}
|
|
28
|
+
const ConfirmModalStoreContext = createContext(null);
|
|
29
|
+
function useConfirmModalStore() {
|
|
30
|
+
const store = useContext(ConfirmModalStoreContext);
|
|
31
|
+
if (!store) {
|
|
32
|
+
throw new Error('useConfirmModal must be used within a <DContextProvider>.');
|
|
33
|
+
}
|
|
34
|
+
return store;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export { ConfirmModalStoreContext, createConfirmModalStore, useConfirmModalStore };
|
|
38
|
+
//# sourceMappingURL=confirmModalStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confirmModalStore.js","sources":["../../../../dist-transpiled/components/DConfirmModal/confirmModalStore.js"],"sourcesContent":["import { createContext, useContext } from 'react';\nexport function createConfirmModalStore() {\n const listeners = new Set();\n let entries = [];\n function notify() {\n listeners.forEach((listener) => listener([...entries]));\n }\n const store = {\n subscribe(listener) {\n listeners.add(listener);\n listener([...entries]);\n return () => {\n listeners.delete(listener);\n };\n },\n push(entry) {\n entries = [...entries, entry];\n notify();\n },\n remove(id) {\n entries = entries.filter((e) => e.id !== id);\n notify();\n },\n };\n return store;\n}\nexport const ConfirmModalStoreContext = createContext(null);\nexport function useConfirmModalStore() {\n const store = useContext(ConfirmModalStoreContext);\n if (!store) {\n throw new Error('useConfirmModal must be used within a <DContextProvider>.');\n }\n return store;\n}\n//# sourceMappingURL=confirmModalStore.js.map"],"names":[],"mappings":";;AACO,SAAS,uBAAuB,GAAG;AAC1C,IAAI,MAAM,SAAS,GAAG,IAAI,GAAG,EAAE;AAC/B,IAAI,IAAI,OAAO,GAAG,EAAE;AACpB,IAAI,SAAS,MAAM,GAAG;AACtB,QAAQ,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;AAC/D,IAAI;AACJ,IAAI,MAAM,KAAK,GAAG;AAClB,QAAQ,SAAS,CAAC,QAAQ,EAAE;AAC5B,YAAY,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;AACnC,YAAY,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;AAClC,YAAY,OAAO,MAAM;AACzB,gBAAgB,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC1C,YAAY,CAAC;AACb,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,YAAY,OAAO,GAAG,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC;AACzC,YAAY,MAAM,EAAE;AACpB,QAAQ,CAAC;AACT,QAAQ,MAAM,CAAC,EAAE,EAAE;AACnB,YAAY,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;AACxD,YAAY,MAAM,EAAE;AACpB,QAAQ,CAAC;AACT,KAAK;AACL,IAAI,OAAO,KAAK;AAChB;AACY,MAAC,wBAAwB,GAAG,aAAa,CAAC,IAAI;AACnD,SAAS,oBAAoB,GAAG;AACvC,IAAI,MAAM,KAAK,GAAG,UAAU,CAAC,wBAAwB,CAAC;AACtD,IAAI,IAAI,CAAC,KAAK,EAAE;AAChB,QAAQ,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC;AACpF,IAAI;AACJ,IAAI,OAAO,KAAK;AAChB;;;;"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import classNames from 'classnames';
|
|
3
|
+
|
|
4
|
+
const DEFAULT_IMAGE = 'https://cdn.modyo.cloud/uploads/06b434f7-b943-4f54-9543-84a904e189aa/original/Visa_Logo_1_.png';
|
|
5
|
+
const CHIP_IMAGE = 'https://cdn.modyo.cloud/uploads/4660ad00-e5d8-477e-8919-52b53d0a26fb/original/chip-debit-svgrepo-com_1_.png';
|
|
6
|
+
const BRAND_LOGOS = {
|
|
7
|
+
visa: DEFAULT_IMAGE,
|
|
8
|
+
mastercard: 'https://cdn.modyo.cloud/uploads/f686b9aa-65ab-4369-9db3-89ceece84f29/original/mastercard.png',
|
|
9
|
+
};
|
|
10
|
+
function DCreditCard({ brand = 'visa', name, number, holderText = 'Card Holder', logoImage, isChipVisible = true, className, isVertical = false, }) {
|
|
11
|
+
return (jsxs("div", { className: classNames('d-credit-card', isVertical && 'is-vertical', className), children: [jsxs("div", { className: "d-credit-card-header", children: [jsx("img", { src: logoImage || BRAND_LOGOS[brand] || DEFAULT_IMAGE, alt: brand, className: "d-credit-card-logo", width: 100 }), isChipVisible && (jsx("div", { className: "d-credit-card-chip", children: jsx("img", { src: CHIP_IMAGE, alt: "chip", width: 30, className: "d-credit-card-chip-image" }) }))] }), jsxs("div", { className: "d-credit-card-details", children: [jsx("div", { className: "d-credit-card-number", children: number }), jsx("small", { className: "d-credit-card-holder-text", children: holderText }), jsx("span", { className: "d-credit-card-name", children: name })] })] }));
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export { DCreditCard as default };
|
|
15
|
+
//# sourceMappingURL=DCreditCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DCreditCard.js","sources":["../../../../dist-transpiled/components/DCreditCard/DCreditCard.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport classNames from 'classnames';\nconst DEFAULT_IMAGE = 'https://cdn.modyo.cloud/uploads/06b434f7-b943-4f54-9543-84a904e189aa/original/Visa_Logo_1_.png';\nconst CHIP_IMAGE = 'https://cdn.modyo.cloud/uploads/4660ad00-e5d8-477e-8919-52b53d0a26fb/original/chip-debit-svgrepo-com_1_.png';\nconst BRAND_LOGOS = {\n visa: DEFAULT_IMAGE,\n mastercard: 'https://cdn.modyo.cloud/uploads/f686b9aa-65ab-4369-9db3-89ceece84f29/original/mastercard.png',\n};\nexport default function DCreditCard({ brand = 'visa', name, number, holderText = 'Card Holder', logoImage, isChipVisible = true, className, isVertical = false, }) {\n return (_jsxs(\"div\", { className: classNames('d-credit-card', isVertical && 'is-vertical', className), children: [_jsxs(\"div\", { className: \"d-credit-card-header\", children: [_jsx(\"img\", { src: logoImage || BRAND_LOGOS[brand] || DEFAULT_IMAGE, alt: brand, className: \"d-credit-card-logo\", width: 100 }), isChipVisible && (_jsx(\"div\", { className: \"d-credit-card-chip\", children: _jsx(\"img\", { src: CHIP_IMAGE, alt: \"chip\", width: 30, className: \"d-credit-card-chip-image\" }) }))] }), _jsxs(\"div\", { className: \"d-credit-card-details\", children: [_jsx(\"div\", { className: \"d-credit-card-number\", children: number }), _jsx(\"small\", { className: \"d-credit-card-holder-text\", children: holderText }), _jsx(\"span\", { className: \"d-credit-card-name\", children: name })] })] }));\n}\n//# sourceMappingURL=DCreditCard.js.map"],"names":["_jsxs","_jsx"],"mappings":";;;AAEA,MAAM,aAAa,GAAG,gGAAgG;AACtH,MAAM,UAAU,GAAG,6GAA6G;AAChI,MAAM,WAAW,GAAG;AACpB,IAAI,IAAI,EAAE,aAAa;AACvB,IAAI,UAAU,EAAE,8FAA8F;AAC9G,CAAC;AACc,SAAS,WAAW,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,GAAG,aAAa,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI,EAAE,SAAS,EAAE,UAAU,GAAG,KAAK,GAAG,EAAE;AACnK,IAAI,QAAQA,IAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,eAAe,EAAE,UAAU,IAAI,aAAa,EAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,CAACA,IAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,sBAAsB,EAAE,QAAQ,EAAE,CAACC,GAAI,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,aAAa,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,aAAa,KAAKA,GAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,oBAAoB,EAAE,QAAQ,EAAEA,GAAI,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,0BAA0B,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAED,IAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,uBAAuB,EAAE,QAAQ,EAAE,CAACC,GAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAEA,GAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,2BAA2B,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,EAAEA,GAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,oBAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACtwB;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import useFormatCurrency from '../../hooks/useFormatCurrency.js';
|
|
3
|
+
|
|
4
|
+
function DCurrencyText({ value, className, style, dataAttributes, }) {
|
|
5
|
+
const { values: [valueFormatted] } = useFormatCurrency(value);
|
|
6
|
+
return (jsx("span", Object.assign({ className: className, style: style }, dataAttributes, { children: valueFormatted })));
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export { DCurrencyText as default };
|
|
10
|
+
//# sourceMappingURL=DCurrencyText.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DCurrencyText.js","sources":["../../../../dist-transpiled/components/DCurrencyText/DCurrencyText.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport useFormatCurrency from '../../hooks/useFormatCurrency';\nexport default function DCurrencyText({ value, className, style, dataAttributes, }) {\n const { values: [valueFormatted] } = useFormatCurrency(value);\n return (_jsx(\"span\", Object.assign({ className: className, style: style }, dataAttributes, { children: valueFormatted })));\n}\n//# sourceMappingURL=DCurrencyText.js.map"],"names":["_jsx"],"mappings":";;;AAEe,SAAS,aAAa,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,GAAG,EAAE;AACpF,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC;AACjE,IAAI,QAAQA,GAAI,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;AAC7H;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import { ErrorState } from './components/ErrorState.js';
|
|
3
|
+
import { EmptyState } from './components/EmptyState.js';
|
|
4
|
+
import { LoadingState } from './components/LoadingState.js';
|
|
5
|
+
|
|
6
|
+
function render(renderable) {
|
|
7
|
+
if (renderable === undefined)
|
|
8
|
+
return null;
|
|
9
|
+
return typeof renderable === 'function' ? renderable() : renderable;
|
|
10
|
+
}
|
|
11
|
+
function DDataStateWrapper({ isLoading, isError, data, onRetry, messages, renderLoading, renderEmpty, renderError, children, }) {
|
|
12
|
+
// 1. Loading
|
|
13
|
+
if (isLoading) {
|
|
14
|
+
if (renderLoading)
|
|
15
|
+
return render(renderLoading);
|
|
16
|
+
return jsx(LoadingState, { ariaLabel: messages === null || messages === void 0 ? void 0 : messages.loading });
|
|
17
|
+
}
|
|
18
|
+
// 2. Error
|
|
19
|
+
if (isError) {
|
|
20
|
+
if (renderError)
|
|
21
|
+
return render(renderError);
|
|
22
|
+
return (jsx(ErrorState, { onRetry: onRetry, message: messages === null || messages === void 0 ? void 0 : messages.error, retryMessage: messages === null || messages === void 0 ? void 0 : messages.retry }));
|
|
23
|
+
}
|
|
24
|
+
// 3. Empty
|
|
25
|
+
if (!(data === null || data === void 0 ? void 0 : data.length)) {
|
|
26
|
+
if (renderEmpty)
|
|
27
|
+
return render(renderEmpty);
|
|
28
|
+
return (jsx(EmptyState, { message: messages === null || messages === void 0 ? void 0 : messages.empty }));
|
|
29
|
+
}
|
|
30
|
+
// 4. Success
|
|
31
|
+
return jsx(Fragment, { children: children(data) });
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export { DDataStateWrapper as default };
|
|
35
|
+
//# sourceMappingURL=DDataStateWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DDataStateWrapper.js","sources":["../../../../dist-transpiled/components/DDataStateWrapper/DDataStateWrapper.js"],"sourcesContent":["import { jsx as _jsx, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { ErrorState } from './components/ErrorState';\nimport { EmptyState } from './components/EmptyState';\nimport { LoadingState } from './components/LoadingState';\nfunction render(renderable) {\n if (renderable === undefined)\n return null;\n return typeof renderable === 'function' ? renderable() : renderable;\n}\nexport default function DDataStateWrapper({ isLoading, isError, data, onRetry, messages, renderLoading, renderEmpty, renderError, children, }) {\n // 1. Loading\n if (isLoading) {\n if (renderLoading)\n return render(renderLoading);\n return _jsx(LoadingState, { ariaLabel: messages === null || messages === void 0 ? void 0 : messages.loading });\n }\n // 2. Error\n if (isError) {\n if (renderError)\n return render(renderError);\n return (_jsx(ErrorState, { onRetry: onRetry, message: messages === null || messages === void 0 ? void 0 : messages.error, retryMessage: messages === null || messages === void 0 ? void 0 : messages.retry }));\n }\n // 3. Empty\n if (!(data === null || data === void 0 ? void 0 : data.length)) {\n if (renderEmpty)\n return render(renderEmpty);\n return (_jsx(EmptyState, { message: messages === null || messages === void 0 ? void 0 : messages.empty }));\n }\n // 4. Success\n return _jsx(_Fragment, { children: children(data) });\n}\n//# sourceMappingURL=DDataStateWrapper.js.map"],"names":["_jsx","_Fragment"],"mappings":";;;;;AAIA,SAAS,MAAM,CAAC,UAAU,EAAE;AAC5B,IAAI,IAAI,UAAU,KAAK,SAAS;AAChC,QAAQ,OAAO,IAAI;AACnB,IAAI,OAAO,OAAO,UAAU,KAAK,UAAU,GAAG,UAAU,EAAE,GAAG,UAAU;AACvE;AACe,SAAS,iBAAiB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,GAAG,EAAE;AAC/I;AACA,IAAI,IAAI,SAAS,EAAE;AACnB,QAAQ,IAAI,aAAa;AACzB,YAAY,OAAO,MAAM,CAAC,aAAa,CAAC;AACxC,QAAQ,OAAOA,GAAI,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;AACtH,IAAI;AACJ;AACA,IAAI,IAAI,OAAO,EAAE;AACjB,QAAQ,IAAI,WAAW;AACvB,YAAY,OAAO,MAAM,CAAC,WAAW,CAAC;AACtC,QAAQ,QAAQA,GAAI,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;AACrN,IAAI;AACJ;AACA,IAAI,IAAI,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE;AACpE,QAAQ,IAAI,WAAW;AACvB,YAAY,OAAO,MAAM,CAAC,WAAW,CAAC;AACtC,QAAQ,QAAQA,GAAI,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;AACjH,IAAI;AACJ;AACA,IAAI,OAAOA,GAAI,CAACC,QAAS,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;AACxD;;;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import DButton from '../../DButton/DButton.js';
|
|
3
|
+
import DIcon from '../../DIcon/DIcon.js';
|
|
4
|
+
|
|
5
|
+
function EmptyState({ message, icon = 'FileText', actionText, onAction, }) {
|
|
6
|
+
return (jsxs("div", { className: "d-empty-state", children: [jsx(DIcon, { icon: icon, size: "3rem", className: "d-empty-state-icon" }), jsx("p", { className: "d-empty-state-message", children: message !== null && message !== void 0 ? message : 'No data available.' }), actionText && onAction && (jsx(DButton, { onClick: onAction, text: actionText, variant: "outline" }))] }));
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export { EmptyState };
|
|
10
|
+
//# sourceMappingURL=EmptyState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmptyState.js","sources":["../../../../../dist-transpiled/components/DDataStateWrapper/components/EmptyState.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport DButton from '../../DButton';\nimport DIcon from '../../DIcon';\nexport function EmptyState({ message, icon = 'FileText', actionText, onAction, }) {\n return (_jsxs(\"div\", { className: \"d-empty-state\", children: [_jsx(DIcon, { icon: icon, size: \"3rem\", className: \"d-empty-state-icon\" }), _jsx(\"p\", { className: \"d-empty-state-message\", children: message !== null && message !== void 0 ? message : 'No data available.' }), actionText && onAction && (_jsx(DButton, { onClick: onAction, text: actionText, variant: \"outline\" }))] }));\n}\n//# sourceMappingURL=EmptyState.js.map"],"names":["_jsxs","_jsx"],"mappings":";;;;AAGO,SAAS,UAAU,CAAC,EAAE,OAAO,EAAE,IAAI,GAAG,UAAU,EAAE,UAAU,EAAE,QAAQ,GAAG,EAAE;AAClF,IAAI,QAAQA,IAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,CAACC,GAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC,EAAEA,GAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,uBAAuB,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,OAAO,GAAG,oBAAoB,EAAE,CAAC,EAAE,UAAU,IAAI,QAAQ,KAAKA,GAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9X;;;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import DAlert from '../../DAlert/DAlert.js';
|
|
3
|
+
import DButton from '../../DButton/DButton.js';
|
|
4
|
+
|
|
5
|
+
function ErrorState({ message, onRetry, retryMessage = 'Retry', color = 'danger', }) {
|
|
6
|
+
return (jsxs(DAlert, { color: color, className: "d-error-state", children: [jsx("div", { className: "d-error-state-content", children: jsx("p", { className: "d-error-state-message", children: message !== null && message !== void 0 ? message : 'An unexpected error occurred.' }) }), onRetry && (jsx(DButton, { onClick: onRetry, text: retryMessage, variant: "outline", iconStart: "RefreshCw" }))] }));
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export { ErrorState };
|
|
10
|
+
//# sourceMappingURL=ErrorState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorState.js","sources":["../../../../../dist-transpiled/components/DDataStateWrapper/components/ErrorState.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport DAlert from '../../DAlert';\nimport DButton from '../../DButton';\nexport function ErrorState({ message, onRetry, retryMessage = 'Retry', color = 'danger', }) {\n return (_jsxs(DAlert, { color: color, className: \"d-error-state\", children: [_jsx(\"div\", { className: \"d-error-state-content\", children: _jsx(\"p\", { className: \"d-error-state-message\", children: message !== null && message !== void 0 ? message : 'An unexpected error occurred.' }) }), onRetry && (_jsx(DButton, { onClick: onRetry, text: retryMessage, variant: \"outline\", iconStart: \"RefreshCw\" }))] }));\n}\n//# sourceMappingURL=ErrorState.js.map"],"names":["_jsxs","_jsx"],"mappings":";;;;AAGO,SAAS,UAAU,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,EAAE,KAAK,GAAG,QAAQ,GAAG,EAAE;AAC5F,IAAI,QAAQA,IAAK,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,CAACC,GAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,uBAAuB,EAAE,QAAQ,EAAEA,GAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,uBAAuB,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,OAAO,GAAG,+BAA+B,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,KAAKA,GAAI,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACrZ;;;;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
function LoadingState({ ariaLabel = 'Loading...', className }) {
|
|
4
|
+
return (jsx("div", { className: `d-loading-state ${className || ''}`.trim(), "aria-busy": "true", "aria-live": "polite", children: jsx("span", { className: "spinner-border", role: "status", "aria-label": ariaLabel }) }));
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export { LoadingState };
|
|
8
|
+
//# sourceMappingURL=LoadingState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoadingState.js","sources":["../../../../../dist-transpiled/components/DDataStateWrapper/components/LoadingState.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nexport function LoadingState({ ariaLabel = 'Loading...', className }) {\n return (_jsx(\"div\", { className: `d-loading-state ${className || ''}`.trim(), \"aria-busy\": \"true\", \"aria-live\": \"polite\", children: _jsx(\"span\", { className: \"spinner-border\", role: \"status\", \"aria-label\": ariaLabel }) }));\n}\n//# sourceMappingURL=LoadingState.js.map"],"names":["_jsx"],"mappings":";;AACO,SAAS,YAAY,CAAC,EAAE,SAAS,GAAG,YAAY,EAAE,SAAS,EAAE,EAAE;AACtE,IAAI,QAAQA,GAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,gBAAgB,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAEA,GAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;AACjO;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import DDataStateWrapper from './DDataStateWrapper.js';
|
|
2
|
+
export { EmptyState } from './components/EmptyState.js';
|
|
3
|
+
export { ErrorState } from './components/ErrorState.js';
|
|
4
|
+
export { LoadingState } from './components/LoadingState.js';
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
export { DDataStateWrapper as default };
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { __rest } from 'tslib';
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { useMemo, useCallback } from 'react';
|
|
4
|
+
import DatePicker from 'react-datepicker';
|
|
5
|
+
import DDatePickerTime from './components/DDatePickerTime.js';
|
|
6
|
+
import ForwardedDDatePickerInput from './components/DDatePickerInput.js';
|
|
7
|
+
import DDatePickerHeaderSelector, { PickerType } from './components/DDatePickerHeaderSelector.js';
|
|
8
|
+
|
|
9
|
+
function DDatePicker(_a) {
|
|
10
|
+
var { inputLabel, inputHint, inputAriaLabel, ariaLabelInputTime, inputActionAriaLabel = 'open calendar', inputId = 'input-calendar', timeId = 'input-time', timeInputLabel, minYearSelect, maxYearSelect, iconHeaderSize, iconMaterialStyle, iconInput, headerPrevMonthAriaLabel, headerNextMonthAriaLabel, invalid = false, valid = false, renderCustomHeader: renderCustomHeaderProp, className, dateFormatCalendar: dateFormatCalendarProp, style, dataAttributes, placeholder, showHeaderSelectors, formatHeaderDate } = _a, props = __rest(_a, ["inputLabel", "inputHint", "inputAriaLabel", "ariaLabelInputTime", "inputActionAriaLabel", "inputId", "timeId", "timeInputLabel", "minYearSelect", "maxYearSelect", "iconHeaderSize", "iconMaterialStyle", "iconInput", "headerPrevMonthAriaLabel", "headerNextMonthAriaLabel", "invalid", "valid", "renderCustomHeader", "className", "dateFormatCalendar", "style", "dataAttributes", "placeholder", "showHeaderSelectors", "formatHeaderDate"]);
|
|
11
|
+
// Some test runtimes can resolve react-datepicker as a module object.
|
|
12
|
+
// Normalize to a renderable component for both function and { default } shapes.
|
|
13
|
+
const SafeDatePicker = useMemo(() => {
|
|
14
|
+
const interopDefault = DatePicker.default;
|
|
15
|
+
if (interopDefault !== undefined) {
|
|
16
|
+
return interopDefault;
|
|
17
|
+
}
|
|
18
|
+
if (typeof DatePicker === 'function') {
|
|
19
|
+
return DatePicker;
|
|
20
|
+
}
|
|
21
|
+
return DatePicker;
|
|
22
|
+
}, []);
|
|
23
|
+
const pickerType = useMemo(() => {
|
|
24
|
+
if (props.showQuarterYearPicker)
|
|
25
|
+
return PickerType.Quarter;
|
|
26
|
+
if (props.showMonthYearPicker)
|
|
27
|
+
return PickerType.Month;
|
|
28
|
+
if (props.showYearPicker)
|
|
29
|
+
return PickerType.Year;
|
|
30
|
+
return PickerType.Default;
|
|
31
|
+
}, [
|
|
32
|
+
props.showQuarterYearPicker,
|
|
33
|
+
props.showMonthYearPicker,
|
|
34
|
+
props.showYearPicker,
|
|
35
|
+
]);
|
|
36
|
+
const DatePickerHeader = useCallback((headerProps) => (jsx(DDatePickerHeaderSelector, Object.assign({}, headerProps, { monthsShown: props.monthsShown, prevMonthAriaLabel: headerPrevMonthAriaLabel, nextMonthAriaLabel: headerNextMonthAriaLabel, iconSize: iconHeaderSize, minYearSelect: minYearSelect, maxYearSelect: maxYearSelect, pickerType: pickerType, showHeaderSelectors: showHeaderSelectors, formatHeaderDate: formatHeaderDate, locale: props.locale }))), [
|
|
37
|
+
headerPrevMonthAriaLabel,
|
|
38
|
+
headerNextMonthAriaLabel,
|
|
39
|
+
iconHeaderSize,
|
|
40
|
+
minYearSelect,
|
|
41
|
+
maxYearSelect,
|
|
42
|
+
pickerType,
|
|
43
|
+
showHeaderSelectors,
|
|
44
|
+
formatHeaderDate,
|
|
45
|
+
props.monthsShown,
|
|
46
|
+
props.locale,
|
|
47
|
+
]);
|
|
48
|
+
const defaultRenderCustomHeader = useCallback((headerProps) => (jsx(DatePickerHeader, Object.assign({}, headerProps))), [DatePickerHeader]);
|
|
49
|
+
const renderCustomHeader = useMemo(() => (renderCustomHeaderProp || defaultRenderCustomHeader), [defaultRenderCustomHeader, renderCustomHeaderProp]);
|
|
50
|
+
return (jsx(SafeDatePicker, Object.assign({}, dataAttributes, props, { calendarClassName: "d-date-picker", renderCustomHeader: renderCustomHeader, placeholderText: placeholder, customInput: (jsx(ForwardedDDatePickerInput, { id: inputId, "aria-label": inputAriaLabel, iconEndAriaLabel: inputActionAriaLabel, iconMaterialStyle: iconMaterialStyle, iconEnd: iconInput, inputLabel: inputLabel, className: className, style: style, invalid: invalid, valid: valid, hint: inputHint })), customTimeInput: (jsx(DDatePickerTime, { id: timeId, "aria-label": ariaLabelInputTime })) })));
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export { DDatePicker as default };
|
|
54
|
+
//# sourceMappingURL=DDatePicker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DDatePicker.js","sources":["../../../../dist-transpiled/components/DDatePicker/DDatePicker.js"],"sourcesContent":["import { __rest } from \"tslib\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback, useMemo, } from 'react';\nimport DatePicker from 'react-datepicker';\nimport DDatePickerTime from './components/DDatePickerTime';\nimport DDatePickerInput from './components/DDatePickerInput';\nimport DDatePickerHeaderSelector, { PickerType } from './components/DDatePickerHeaderSelector';\nexport default function DDatePicker(_a) {\n var { inputLabel, inputHint, inputAriaLabel, ariaLabelInputTime, inputActionAriaLabel = 'open calendar', inputId = 'input-calendar', timeId = 'input-time', timeInputLabel, minYearSelect, maxYearSelect, iconHeaderSize, iconMaterialStyle, iconInput, headerPrevMonthAriaLabel, headerNextMonthAriaLabel, invalid = false, valid = false, renderCustomHeader: renderCustomHeaderProp, className, dateFormatCalendar: dateFormatCalendarProp, style, dataAttributes, placeholder, showHeaderSelectors, formatHeaderDate } = _a, props = __rest(_a, [\"inputLabel\", \"inputHint\", \"inputAriaLabel\", \"ariaLabelInputTime\", \"inputActionAriaLabel\", \"inputId\", \"timeId\", \"timeInputLabel\", \"minYearSelect\", \"maxYearSelect\", \"iconHeaderSize\", \"iconMaterialStyle\", \"iconInput\", \"headerPrevMonthAriaLabel\", \"headerNextMonthAriaLabel\", \"invalid\", \"valid\", \"renderCustomHeader\", \"className\", \"dateFormatCalendar\", \"style\", \"dataAttributes\", \"placeholder\", \"showHeaderSelectors\", \"formatHeaderDate\"]);\n // Some test runtimes can resolve react-datepicker as a module object.\n // Normalize to a renderable component for both function and { default } shapes.\n const SafeDatePicker = useMemo(() => {\n const interopDefault = DatePicker.default;\n if (interopDefault !== undefined) {\n return interopDefault;\n }\n if (typeof DatePicker === 'function') {\n return DatePicker;\n }\n return DatePicker;\n }, []);\n const pickerType = useMemo(() => {\n if (props.showQuarterYearPicker)\n return PickerType.Quarter;\n if (props.showMonthYearPicker)\n return PickerType.Month;\n if (props.showYearPicker)\n return PickerType.Year;\n return PickerType.Default;\n }, [\n props.showQuarterYearPicker,\n props.showMonthYearPicker,\n props.showYearPicker,\n ]);\n const DatePickerHeader = useCallback((headerProps) => (_jsx(DDatePickerHeaderSelector, Object.assign({}, headerProps, { monthsShown: props.monthsShown, prevMonthAriaLabel: headerPrevMonthAriaLabel, nextMonthAriaLabel: headerNextMonthAriaLabel, iconSize: iconHeaderSize, minYearSelect: minYearSelect, maxYearSelect: maxYearSelect, pickerType: pickerType, showHeaderSelectors: showHeaderSelectors, formatHeaderDate: formatHeaderDate, locale: props.locale }))), [\n headerPrevMonthAriaLabel,\n headerNextMonthAriaLabel,\n iconHeaderSize,\n minYearSelect,\n maxYearSelect,\n pickerType,\n showHeaderSelectors,\n formatHeaderDate,\n props.monthsShown,\n props.locale,\n ]);\n const defaultRenderCustomHeader = useCallback((headerProps) => (_jsx(DatePickerHeader, Object.assign({}, headerProps))), [DatePickerHeader]);\n const renderCustomHeader = useMemo(() => (renderCustomHeaderProp || defaultRenderCustomHeader), [defaultRenderCustomHeader, renderCustomHeaderProp]);\n return (_jsx(SafeDatePicker, Object.assign({}, dataAttributes, props, { calendarClassName: \"d-date-picker\", renderCustomHeader: renderCustomHeader, placeholderText: placeholder, customInput: (_jsx(DDatePickerInput, { id: inputId, \"aria-label\": inputAriaLabel, iconEndAriaLabel: inputActionAriaLabel, iconMaterialStyle: iconMaterialStyle, iconEnd: iconInput, inputLabel: inputLabel, className: className, style: style, invalid: invalid, valid: valid, hint: inputHint })), customTimeInput: (_jsx(DDatePickerTime, { id: timeId, \"aria-label\": ariaLabelInputTime })) })));\n}\n//# sourceMappingURL=DDatePicker.js.map"],"names":["_jsx","DDatePickerInput"],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import { useMemo, useCallback } from 'react';
|
|
3
|
+
import classNames from 'classnames';
|
|
4
|
+
import { getYear, format, getMonth } from 'date-fns';
|
|
5
|
+
import DSelect from '../../DSelect/DSelect.js';
|
|
6
|
+
import DButtonIcon from '../../DButtonIcon/DButtonIcon.js';
|
|
7
|
+
import { useDContext } from '../../../contexts/DContext.js';
|
|
8
|
+
|
|
9
|
+
var PickerType;
|
|
10
|
+
(function (PickerType) {
|
|
11
|
+
PickerType["Default"] = "default";
|
|
12
|
+
PickerType["Quarter"] = "quarter";
|
|
13
|
+
PickerType["Month"] = "month";
|
|
14
|
+
PickerType["Year"] = "year";
|
|
15
|
+
})(PickerType || (PickerType = {}));
|
|
16
|
+
function DDatePickerHeaderSelector({ date, changeYear, changeMonth, decreaseMonth, increaseMonth, decreaseYear, increaseYear, monthDate, formatHeaderDate = 'EE, LLLL d', pickerType, prevMonthButtonDisabled, nextMonthButtonDisabled, monthsShown = 1, iconPrev, iconNext, prevYearButtonDisabled, nextYearButtonDisabled, prevMonthAriaLabel = 'decrease month', nextMonthAriaLabel = 'increase month', prevYearAriaLabel = 'decrease year', nextYearAriaLabel = 'increase year', iconSize, style, className, minYearSelect = 1900, maxYearSelect = 2100, showHeaderSelectors = false, customHeaderCount, locale, }) {
|
|
17
|
+
const { iconMap: { chevronLeft, chevronRight, }, } = useDContext();
|
|
18
|
+
const arrayYears = useMemo(() => Array.from({ length: maxYearSelect - minYearSelect + 1 }, (_, index) => minYearSelect + index), [maxYearSelect, minYearSelect]);
|
|
19
|
+
const years = useMemo(() => arrayYears.map((year) => ({
|
|
20
|
+
label: year.toString(),
|
|
21
|
+
value: year,
|
|
22
|
+
})), [arrayYears]);
|
|
23
|
+
const defaultYear = useMemo(() => years.find((year) => year.value === getYear(monthDate)), [monthDate, years]);
|
|
24
|
+
const arrayMonths = useMemo(() => Array.from({ length: 12 }, (_, i) => format(new Date(2000, i), 'LLLL', { locale })), [locale]);
|
|
25
|
+
const months = useMemo(() => arrayMonths.map((month, i) => ({
|
|
26
|
+
label: month,
|
|
27
|
+
value: i,
|
|
28
|
+
})), [arrayMonths]);
|
|
29
|
+
const defaultMonth = useMemo(() => ({
|
|
30
|
+
label: arrayMonths[getMonth(monthDate)],
|
|
31
|
+
value: getMonth(monthDate),
|
|
32
|
+
}), [arrayMonths, monthDate]);
|
|
33
|
+
const getYearRange = useCallback(() => {
|
|
34
|
+
const blockIndex = Math.floor((date.getFullYear() - 1) / 12);
|
|
35
|
+
const startYear = blockIndex * 12 + 1;
|
|
36
|
+
const endYear = startYear + 11;
|
|
37
|
+
return [startYear, endYear];
|
|
38
|
+
}, [date]);
|
|
39
|
+
const [startYear, endYear] = getYearRange();
|
|
40
|
+
if (pickerType === PickerType.Year) {
|
|
41
|
+
return (jsxs("div", { className: classNames('react-datepicker__header-selector react-datepicker__header-year-selector', className), style: style, children: [jsx(DButtonIcon, { icon: iconPrev || chevronLeft, size: iconSize, variant: "link", onClick: decreaseYear, disabled: prevYearButtonDisabled, "aria-label": prevYearAriaLabel, className: "header-button" }), jsx("p", { children: `${startYear} - ${endYear}` }), jsx(DButtonIcon, { icon: iconNext || chevronRight, size: iconSize, variant: "link", onClick: increaseYear, disabled: nextYearButtonDisabled, "aria-label": nextYearAriaLabel, className: "header-button" })] }));
|
|
42
|
+
}
|
|
43
|
+
if (pickerType === PickerType.Quarter || pickerType === PickerType.Month) {
|
|
44
|
+
return (jsxs("div", { className: classNames(`react-datepicker__header-selector react-datepicker__header-${pickerType}-selector`, className), style: style, children: [jsx(DButtonIcon, { icon: iconPrev || chevronLeft, size: iconSize, variant: "link", onClick: decreaseYear, disabled: prevMonthButtonDisabled, "aria-label": prevMonthAriaLabel, className: "header-button", style: { visibility: customHeaderCount === 0 ? 'visible' : 'hidden' } }), jsx("div", { className: "react-datepicker__header-year-selector", children: showHeaderSelectors ? (jsx(DSelect, { options: years, value: defaultYear, defaultValue: defaultYear, onChange: (year) => changeYear(Number(year === null || year === void 0 ? void 0 : year.value)), searchable: false })) : (jsx("p", { children: defaultYear === null || defaultYear === void 0 ? void 0 : defaultYear.label })) }), jsx(DButtonIcon, { icon: iconNext || chevronRight, size: iconSize, variant: "link", onClick: increaseYear, disabled: nextMonthButtonDisabled, "aria-label": nextMonthAriaLabel, className: "header-button", style: { visibility: customHeaderCount === monthsShown - 1 ? 'visible' : 'hidden' } })] }));
|
|
45
|
+
}
|
|
46
|
+
return (jsxs(Fragment, { children: [jsxs("div", { className: "datepicker-top-header", children: [showHeaderSelectors && (jsx(DSelect, { options: years, value: defaultYear, defaultValue: defaultYear, onChange: (year) => changeYear(Number(year === null || year === void 0 ? void 0 : year.value)), searchable: false, className: "custom-year-selector" })), jsx("h4", { className: "datepicker-top-header-title", children: format(monthDate, formatHeaderDate, { locale }) })] }), jsxs("div", { className: classNames('react-datepicker__header-selector react-datepicker__header-day-selector', className), style: style, children: [jsx(DButtonIcon, { icon: iconPrev || chevronLeft, size: iconSize, variant: "link", onClick: decreaseMonth, disabled: prevMonthButtonDisabled, "aria-label": prevMonthAriaLabel, className: "header-button", style: { visibility: customHeaderCount === 0 ? 'visible' : 'hidden' } }), showHeaderSelectors ? (jsx(DSelect, { options: months, value: defaultMonth, defaultValue: defaultMonth, onChange: (month) => changeMonth((month === null || month === void 0 ? void 0 : month.value) || 0), searchable: false, className: "custom-month-selector" })) : (jsx("p", { children: `${defaultMonth.label} ${defaultYear === null || defaultYear === void 0 ? void 0 : defaultYear.label}` })), jsx(DButtonIcon, { icon: iconNext || chevronRight, size: iconSize, variant: "link", onClick: increaseMonth, disabled: nextMonthButtonDisabled, "aria-label": nextMonthAriaLabel, className: "header-button", style: { visibility: customHeaderCount === monthsShown - 1 ? 'visible' : 'hidden' } })] })] }));
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export { PickerType, DDatePickerHeaderSelector as default };
|
|
50
|
+
//# sourceMappingURL=DDatePickerHeaderSelector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DDatePickerHeaderSelector.js","sources":["../../../../../dist-transpiled/components/DDatePicker/components/DDatePickerHeaderSelector.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { useCallback, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { format, getMonth, getYear, } from 'date-fns';\nimport DSelect from '../../DSelect';\nimport { useDContext } from '../../../contexts';\nimport DButtonIcon from '../../DButtonIcon';\nexport var PickerType;\n(function (PickerType) {\n PickerType[\"Default\"] = \"default\";\n PickerType[\"Quarter\"] = \"quarter\";\n PickerType[\"Month\"] = \"month\";\n PickerType[\"Year\"] = \"year\";\n})(PickerType || (PickerType = {}));\nexport default function DDatePickerHeaderSelector({ date, changeYear, changeMonth, decreaseMonth, increaseMonth, decreaseYear, increaseYear, monthDate, formatHeaderDate = 'EE, LLLL d', pickerType, prevMonthButtonDisabled, nextMonthButtonDisabled, monthsShown = 1, iconPrev, iconNext, prevYearButtonDisabled, nextYearButtonDisabled, prevMonthAriaLabel = 'decrease month', nextMonthAriaLabel = 'increase month', prevYearAriaLabel = 'decrease year', nextYearAriaLabel = 'increase year', iconSize, style, className, minYearSelect = 1900, maxYearSelect = 2100, showHeaderSelectors = false, customHeaderCount, locale, }) {\n const { iconMap: { chevronLeft, chevronRight, }, } = useDContext();\n const arrayYears = useMemo(() => Array.from({ length: maxYearSelect - minYearSelect + 1 }, (_, index) => minYearSelect + index), [maxYearSelect, minYearSelect]);\n const years = useMemo(() => arrayYears.map((year) => ({\n label: year.toString(),\n value: year,\n })), [arrayYears]);\n const defaultYear = useMemo(() => years.find((year) => year.value === getYear(monthDate)), [monthDate, years]);\n const arrayMonths = useMemo(() => Array.from({ length: 12 }, (_, i) => format(new Date(2000, i), 'LLLL', { locale })), [locale]);\n const months = useMemo(() => arrayMonths.map((month, i) => ({\n label: month,\n value: i,\n })), [arrayMonths]);\n const defaultMonth = useMemo(() => ({\n label: arrayMonths[getMonth(monthDate)],\n value: getMonth(monthDate),\n }), [arrayMonths, monthDate]);\n const getYearRange = useCallback(() => {\n const blockIndex = Math.floor((date.getFullYear() - 1) / 12);\n const startYear = blockIndex * 12 + 1;\n const endYear = startYear + 11;\n return [startYear, endYear];\n }, [date]);\n const [startYear, endYear] = getYearRange();\n if (pickerType === PickerType.Year) {\n return (_jsxs(\"div\", { className: classNames('react-datepicker__header-selector react-datepicker__header-year-selector', className), style: style, children: [_jsx(DButtonIcon, { icon: iconPrev || chevronLeft, size: iconSize, variant: \"link\", onClick: decreaseYear, disabled: prevYearButtonDisabled, \"aria-label\": prevYearAriaLabel, className: \"header-button\" }), _jsx(\"p\", { children: `${startYear} - ${endYear}` }), _jsx(DButtonIcon, { icon: iconNext || chevronRight, size: iconSize, variant: \"link\", onClick: increaseYear, disabled: nextYearButtonDisabled, \"aria-label\": nextYearAriaLabel, className: \"header-button\" })] }));\n }\n if (pickerType === PickerType.Quarter || pickerType === PickerType.Month) {\n return (_jsxs(\"div\", { className: classNames(`react-datepicker__header-selector react-datepicker__header-${pickerType}-selector`, className), style: style, children: [_jsx(DButtonIcon, { icon: iconPrev || chevronLeft, size: iconSize, variant: \"link\", onClick: decreaseYear, disabled: prevMonthButtonDisabled, \"aria-label\": prevMonthAriaLabel, className: \"header-button\", style: { visibility: customHeaderCount === 0 ? 'visible' : 'hidden' } }), _jsx(\"div\", { className: \"react-datepicker__header-year-selector\", children: showHeaderSelectors ? (_jsx(DSelect, { options: years, value: defaultYear, defaultValue: defaultYear, onChange: (year) => changeYear(Number(year === null || year === void 0 ? void 0 : year.value)), searchable: false })) : (_jsx(\"p\", { children: defaultYear === null || defaultYear === void 0 ? void 0 : defaultYear.label })) }), _jsx(DButtonIcon, { icon: iconNext || chevronRight, size: iconSize, variant: \"link\", onClick: increaseYear, disabled: nextMonthButtonDisabled, \"aria-label\": nextMonthAriaLabel, className: \"header-button\", style: { visibility: customHeaderCount === monthsShown - 1 ? 'visible' : 'hidden' } })] }));\n }\n return (_jsxs(_Fragment, { children: [_jsxs(\"div\", { className: \"datepicker-top-header\", children: [showHeaderSelectors && (_jsx(DSelect, { options: years, value: defaultYear, defaultValue: defaultYear, onChange: (year) => changeYear(Number(year === null || year === void 0 ? void 0 : year.value)), searchable: false, className: \"custom-year-selector\" })), _jsx(\"h4\", { className: \"datepicker-top-header-title\", children: format(monthDate, formatHeaderDate, { locale }) })] }), _jsxs(\"div\", { className: classNames('react-datepicker__header-selector react-datepicker__header-day-selector', className), style: style, children: [_jsx(DButtonIcon, { icon: iconPrev || chevronLeft, size: iconSize, variant: \"link\", onClick: decreaseMonth, disabled: prevMonthButtonDisabled, \"aria-label\": prevMonthAriaLabel, className: \"header-button\", style: { visibility: customHeaderCount === 0 ? 'visible' : 'hidden' } }), showHeaderSelectors ? (_jsx(DSelect, { options: months, value: defaultMonth, defaultValue: defaultMonth, onChange: (month) => changeMonth((month === null || month === void 0 ? void 0 : month.value) || 0), searchable: false, className: \"custom-month-selector\" })) : (_jsx(\"p\", { children: `${defaultMonth.label} ${defaultYear === null || defaultYear === void 0 ? void 0 : defaultYear.label}` })), _jsx(DButtonIcon, { icon: iconNext || chevronRight, size: iconSize, variant: \"link\", onClick: increaseMonth, disabled: nextMonthButtonDisabled, \"aria-label\": nextMonthAriaLabel, className: \"header-button\", style: { visibility: customHeaderCount === monthsShown - 1 ? 'visible' : 'hidden' } })] })] }));\n}\n//# sourceMappingURL=DDatePickerHeaderSelector.js.map"],"names":["_jsxs","_jsx","_Fragment"],"mappings":"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"}
|