@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
package/dist/css/dynamic-ui.css
CHANGED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import classNames from 'classnames';
|
|
3
|
+
import { useMemo } from 'react';
|
|
4
|
+
import DIcon from '../DIcon/DIcon.js';
|
|
5
|
+
import { useDContext } from '../../contexts/DContext.js';
|
|
6
|
+
|
|
7
|
+
function DAlert({ color = 'success', icon: iconProp, iconFamilyClass, iconFamilyPrefix, iconMaterialStyle, iconClose: iconCloseProp, iconCloseFamilyClass, iconCloseFamilyPrefix, iconCloseMaterialStyle, showClose, onClose, children, id, className, style, dataAttributes, }) {
|
|
8
|
+
const { icon: { materialStyle, familyClass, familyPrefix, }, iconMap: { alert, xLg, }, } = useDContext();
|
|
9
|
+
const icon = useMemo(() => iconProp || alert[color], [alert, iconProp, color]);
|
|
10
|
+
const iconClose = useMemo(() => (iconCloseProp || xLg), [iconCloseProp, xLg]);
|
|
11
|
+
const generateClasses = useMemo(() => (Object.assign({ alert: true, [`alert-${color}`]: true, 'fade show': !!showClose }, className && { [className]: true })), [color, showClose, className]);
|
|
12
|
+
return (jsxs("div", Object.assign({ className: classNames(generateClasses), style: style, role: "alert", id: id }, dataAttributes, { children: [icon && (jsx(DIcon, { className: "alert-icon", 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("div", { className: "alert-text", children: children }), showClose && (jsx("button", { type: "button", className: "d-close", "aria-label": "Close", onClick: onClose, 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 }) }))] })));
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { DAlert as default };
|
|
16
|
+
//# sourceMappingURL=DAlert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DAlert.js","sources":["../../../../dist-transpiled/components/DAlert/DAlert.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport classNames from 'classnames';\nimport { useMemo } from 'react';\nimport DIcon from '../DIcon';\nimport { useDContext } from '../../contexts';\nexport default function DAlert({ color = 'success', icon: iconProp, iconFamilyClass, iconFamilyPrefix, iconMaterialStyle, iconClose: iconCloseProp, iconCloseFamilyClass, iconCloseFamilyPrefix, iconCloseMaterialStyle, showClose, onClose, children, id, className, style, dataAttributes, }) {\n const { icon: { materialStyle, familyClass, familyPrefix, }, iconMap: { alert, xLg, }, } = useDContext();\n const icon = useMemo(() => iconProp || alert[color], [alert, iconProp, color]);\n const iconClose = useMemo(() => (iconCloseProp || xLg), [iconCloseProp, xLg]);\n const generateClasses = useMemo(() => (Object.assign({ alert: true, [`alert-${color}`]: true, 'fade show': !!showClose }, className && { [className]: true })), [color, showClose, className]);\n return (_jsxs(\"div\", Object.assign({ className: classNames(generateClasses), style: style, role: \"alert\", id: id }, dataAttributes, { children: [icon && (_jsx(DIcon, { className: \"alert-icon\", 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(\"div\", { className: \"alert-text\", children: children }), showClose && (_jsx(\"button\", { type: \"button\", className: \"d-close\", \"aria-label\": \"Close\", onClick: onClose, 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=DAlert.js.map"],"names":["_jsxs","_jsx"],"mappings":";;;;;;AAKe,SAAS,MAAM,CAAC,EAAE,KAAK,GAAG,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,SAAS,EAAE,aAAa,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,GAAG,EAAE;AAChS,IAAI,MAAM,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,GAAG,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,WAAW,EAAE;AAC5G,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAClF,IAAI,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,aAAa,IAAI,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;AACjF,IAAI,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,SAAS,IAAI,EAAE,CAAC,SAAS,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAClM,IAAI,QAAQA,IAAK,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC,IAAI,KAAKC,GAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,YAAY,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,CAAC,EAAEA,GAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,KAAKA,GAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,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;AAC7lC;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import classNames from 'classnames';
|
|
4
|
+
|
|
5
|
+
function DAvatar({ id, size, image, name: nameProp, useNameAsInitials = false, className, style, dataAttributes, }) {
|
|
6
|
+
const generateClasses = useMemo(() => ({
|
|
7
|
+
'd-avatar': true,
|
|
8
|
+
[`d-avatar-${size}`]: !!size,
|
|
9
|
+
}), [size]);
|
|
10
|
+
const name = useMemo(() => {
|
|
11
|
+
if (!nameProp) {
|
|
12
|
+
return undefined;
|
|
13
|
+
}
|
|
14
|
+
if (useNameAsInitials) {
|
|
15
|
+
return nameProp;
|
|
16
|
+
}
|
|
17
|
+
return nameProp.split(/\s+/).map((word) => word.charAt(0)).join('').toUpperCase();
|
|
18
|
+
}, [nameProp, useNameAsInitials]);
|
|
19
|
+
return (jsxs("div", Object.assign({ className: classNames(generateClasses, className), style: style, id: id }, dataAttributes, { children: [image && jsx("img", { src: image, alt: nameProp, className: "d-avatar-img" }), (name && !image) && jsx("span", { className: "d-avatar-name", children: name })] })));
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export { DAvatar as default };
|
|
23
|
+
//# sourceMappingURL=DAvatar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DAvatar.js","sources":["../../../../dist-transpiled/components/DAvatar/DAvatar.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useMemo } from 'react';\nimport classNames from 'classnames';\nexport default function DAvatar({ id, size, image, name: nameProp, useNameAsInitials = false, className, style, dataAttributes, }) {\n const generateClasses = useMemo(() => ({\n 'd-avatar': true,\n [`d-avatar-${size}`]: !!size,\n }), [size]);\n const name = useMemo(() => {\n if (!nameProp) {\n return undefined;\n }\n if (useNameAsInitials) {\n return nameProp;\n }\n return nameProp.split(/\\s+/).map((word) => word.charAt(0)).join('').toUpperCase();\n }, [nameProp, useNameAsInitials]);\n return (_jsxs(\"div\", Object.assign({ className: classNames(generateClasses, className), style: style, id: id }, dataAttributes, { children: [image && _jsx(\"img\", { src: image, alt: nameProp, className: \"d-avatar-img\" }), (name && !image) && _jsx(\"span\", { className: \"d-avatar-name\", children: name })] })));\n}\n//# sourceMappingURL=DAvatar.js.map"],"names":["_jsxs","_jsx"],"mappings":";;;;AAGe,SAAS,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,GAAG,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,GAAG,EAAE;AACnI,IAAI,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO;AAC3C,QAAQ,UAAU,EAAE,IAAI;AACxB,QAAQ,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI;AACpC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AACf,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM;AAC/B,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,YAAY,OAAO,SAAS;AAC5B,QAAQ;AACR,QAAQ,IAAI,iBAAiB,EAAE;AAC/B,YAAY,OAAO,QAAQ;AAC3B,QAAQ;AACR,QAAQ,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;AACzF,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;AACrC,IAAI,QAAQA,IAAK,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC,KAAK,IAAIC,GAAI,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,KAAKA,GAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACtT;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import classNames from 'classnames';
|
|
3
|
+
import { useMemo } from 'react';
|
|
4
|
+
import DIcon from '../DIcon/DIcon.js';
|
|
5
|
+
import { useResponsiveProp } from '../../hooks/useResponsiveProp.js';
|
|
6
|
+
import { useDContext } from '../../contexts/DContext.js';
|
|
7
|
+
|
|
8
|
+
function DBadge(props) {
|
|
9
|
+
const { text, soft = false, color = 'primary', id, rounded, className, size, style, iconStart, iconEnd, iconMaterialStyle, iconFamilyClass, iconFamilyPrefix, dataAttributes, } = props;
|
|
10
|
+
const { icon: { familyClass, familyPrefix, materialStyle, }, } = useDContext();
|
|
11
|
+
// Responsive size resolution using useResponsiveProp
|
|
12
|
+
const { responsivePropValue } = useResponsiveProp(true);
|
|
13
|
+
const resolvedSize = useMemo(() => {
|
|
14
|
+
if (!size)
|
|
15
|
+
return undefined;
|
|
16
|
+
if (typeof size === 'string')
|
|
17
|
+
return size;
|
|
18
|
+
return responsivePropValue(size);
|
|
19
|
+
}, [responsivePropValue, size]);
|
|
20
|
+
const generateClasses = useMemo(() => ({
|
|
21
|
+
badge: true,
|
|
22
|
+
[`badge-${color}`]: !!color && !soft,
|
|
23
|
+
[`badge-soft-${color}`]: !!color && soft,
|
|
24
|
+
'rounded-pill': !!rounded,
|
|
25
|
+
[`badge-${resolvedSize}`]: !!resolvedSize,
|
|
26
|
+
}), [rounded, soft, color, resolvedSize]);
|
|
27
|
+
return (jsxs("span", Object.assign({ className: classNames(generateClasses, className), style: style }, id && { id }, dataAttributes, { children: [iconStart && (jsx(DIcon, { icon: iconStart, 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 }), iconEnd && (jsx(DIcon, { icon: iconEnd, familyClass: iconFamilyClass !== null && iconFamilyClass !== void 0 ? iconFamilyClass : familyClass, familyPrefix: iconFamilyPrefix !== null && iconFamilyPrefix !== void 0 ? iconFamilyPrefix : familyPrefix, materialStyle: iconMaterialStyle !== null && iconMaterialStyle !== void 0 ? iconMaterialStyle : materialStyle }))] })));
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export { DBadge as default };
|
|
31
|
+
//# sourceMappingURL=DBadge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DBadge.js","sources":["../../../../dist-transpiled/components/DBadge/DBadge.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport classNames from 'classnames';\nimport { useMemo } from 'react';\nimport DIcon from '../DIcon';\nimport { useResponsiveProp } from '../../hooks/useResponsiveProp';\nimport { useDContext } from '../../contexts';\nexport default function DBadge(props) {\n const { text, soft = false, color = 'primary', id, rounded, className, size, style, iconStart, iconEnd, iconMaterialStyle, iconFamilyClass, iconFamilyPrefix, dataAttributes, } = props;\n const { icon: { familyClass, familyPrefix, materialStyle, }, } = useDContext();\n // Responsive size resolution using useResponsiveProp\n const { responsivePropValue } = useResponsiveProp(true);\n const resolvedSize = useMemo(() => {\n if (!size)\n return undefined;\n if (typeof size === 'string')\n return size;\n return responsivePropValue(size);\n }, [responsivePropValue, size]);\n const generateClasses = useMemo(() => ({\n badge: true,\n [`badge-${color}`]: !!color && !soft,\n [`badge-soft-${color}`]: !!color && soft,\n 'rounded-pill': !!rounded,\n [`badge-${resolvedSize}`]: !!resolvedSize,\n }), [rounded, soft, color, resolvedSize]);\n return (_jsxs(\"span\", Object.assign({ className: classNames(generateClasses, className), style: style }, id && { id }, dataAttributes, { children: [iconStart && (_jsx(DIcon, { icon: iconStart, 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 }), iconEnd && (_jsx(DIcon, { icon: iconEnd, familyClass: iconFamilyClass !== null && iconFamilyClass !== void 0 ? iconFamilyClass : familyClass, familyPrefix: iconFamilyPrefix !== null && iconFamilyPrefix !== void 0 ? iconFamilyPrefix : familyPrefix, materialStyle: iconMaterialStyle !== null && iconMaterialStyle !== void 0 ? iconMaterialStyle : materialStyle }))] })));\n}\n//# sourceMappingURL=DBadge.js.map"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;AAMe,SAAS,MAAM,CAAC,KAAK,EAAE;AACtC,IAAI,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,KAAK,GAAG,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,GAAG,GAAG,KAAK;AAC3L,IAAI,MAAM,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,GAAG,GAAG,GAAG,WAAW,EAAE;AAClF;AACA,IAAI,MAAM,EAAE,mBAAmB,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC;AAC3D,IAAI,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM;AACvC,QAAQ,IAAI,CAAC,IAAI;AACjB,YAAY,OAAO,SAAS;AAC5B,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ;AACpC,YAAY,OAAO,IAAI;AACvB,QAAQ,OAAO,mBAAmB,CAAC,IAAI,CAAC;AACxC,IAAI,CAAC,EAAE,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;AACnC,IAAI,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO;AAC3C,QAAQ,KAAK,EAAE,IAAI;AACnB,QAAQ,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI;AAC5C,QAAQ,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,IAAI;AAChD,QAAQ,cAAc,EAAE,CAAC,CAAC,OAAO;AACjC,QAAQ,CAAC,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY;AACjD,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;AAC7C,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,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC,SAAS,KAAKC,GAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,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,EAAEA,GAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,KAAKA,GAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,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,CAAC,EAAE,CAAC,CAAC;AACv5B;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import classNames from 'classnames';
|
|
3
|
+
|
|
4
|
+
function DBox({ className, style, children, dataAttributes, }) {
|
|
5
|
+
return (jsx("div", Object.assign({ style: style, className: classNames('d-box', className) }, dataAttributes, { children: children })));
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export { DBox as default };
|
|
9
|
+
//# sourceMappingURL=DBox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DBox.js","sources":["../../../../dist-transpiled/components/DBox/DBox.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport classNames from 'classnames';\nexport default function DBox({ className, style, children, dataAttributes, }) {\n return (_jsx(\"div\", Object.assign({ style: style, className: classNames('d-box', className) }, dataAttributes, { children: children })));\n}\n//# sourceMappingURL=DBox.js.map"],"names":["_jsx"],"mappings":";;;AAEe,SAAS,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,GAAG,EAAE;AAC9E,IAAI,QAAQA,GAAI,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC3I;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { __rest } from 'tslib';
|
|
2
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
3
|
+
import classNames from 'classnames';
|
|
4
|
+
import { useMemo } from 'react';
|
|
5
|
+
import DIcon from '../DIcon/DIcon.js';
|
|
6
|
+
import ForwardedDInput from '../DInput/DInput.js';
|
|
7
|
+
import useDBoxFile from './useDBoxFile.js';
|
|
8
|
+
import { useDContext } from '../../contexts/DContext.js';
|
|
9
|
+
|
|
10
|
+
function DBoxFile(_a) {
|
|
11
|
+
var { icon: iconProp, iconFamilyClass, iconFamilyPrefix, iconMaterialStyle, children, className, style, dataAttributes } = _a, props = __rest(_a, ["icon", "iconFamilyClass", "iconFamilyPrefix", "iconMaterialStyle", "children", "className", "style", "dataAttributes"]);
|
|
12
|
+
const { icon: { familyClass, familyPrefix, materialStyle, }, iconMap: { upload }, } = useDContext();
|
|
13
|
+
const icon = useMemo(() => iconProp || upload, [iconProp, upload]);
|
|
14
|
+
const { inputRef, rootRef, isDragValid, isDragInvalid, acceptAttr, files, handleFileSelect, handleDrop, handleDragEnter, handleDragLeave, handleClick, handleKeyDown, handleRemoveFile, openFileDialog, } = useDBoxFile(props);
|
|
15
|
+
return (jsxs(Fragment, { children: [jsx("section", Object.assign({ className: classNames('d-box-file', {
|
|
16
|
+
'd-box-file-selected': files.length > 0,
|
|
17
|
+
'd-box-file-disabled': props.disabled,
|
|
18
|
+
'd-box-file-valid': isDragValid,
|
|
19
|
+
'd-box-file-invalid': isDragInvalid,
|
|
20
|
+
}, className), style: style }, dataAttributes, { children: jsxs("div", Object.assign({ className: "d-box-file-dropzone", ref: rootRef, onDragEnter: handleDragEnter, onDragOver: (e) => e.preventDefault(), onDragLeave: handleDragLeave, onDrop: handleDrop, onClick: handleClick, onKeyDown: handleKeyDown }, (!props.disabled && !props.noKeyboard ? { tabIndex: 0 } : {}), { role: "presentation", children: [jsx("input", { type: "file", multiple: props.multiple, style: { display: 'none' }, ref: inputRef, disabled: props.disabled, onChange: handleFileSelect, onClick: (e) => e.stopPropagation(), tabIndex: -1, accept: acceptAttr }), icon && iconProp !== false && (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("div", { className: "d-box-content", children: typeof children === 'function'
|
|
21
|
+
? children(openFileDialog)
|
|
22
|
+
: children || (jsx("p", { className: "d-box-file-empty-text", children: "Drag and drop some files here, or click to select files" })) })] })) })), !!files.length && (jsx("ul", { className: "d-box-files", children: files.map((file, index) => (jsx(ForwardedDInput, { value: file.name, iconStart: "Paperclip", iconEnd: "Trash", readOnly: true, onIconEndClick: () => handleRemoveFile(index) }, `${file.name} ${index}`))) }))] }));
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export { DBoxFile as default };
|
|
26
|
+
//# sourceMappingURL=DBoxFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DBoxFile.js","sources":["../../../../dist-transpiled/components/DBoxFile/DBoxFile.js"],"sourcesContent":["import { __rest } from \"tslib\";\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\n/* eslint-disable react/no-array-index-key */\nimport classnames from 'classnames';\nimport { useMemo } from 'react';\nimport DIcon from '../DIcon';\nimport DInput from '../DInput';\nimport { useDContext } from '../../contexts';\nimport useDBoxFile from './useDBoxFile';\nexport default function DBoxFile(_a) {\n var { icon: iconProp, iconFamilyClass, iconFamilyPrefix, iconMaterialStyle, children, className, style, dataAttributes } = _a, props = __rest(_a, [\"icon\", \"iconFamilyClass\", \"iconFamilyPrefix\", \"iconMaterialStyle\", \"children\", \"className\", \"style\", \"dataAttributes\"]);\n const { icon: { familyClass, familyPrefix, materialStyle, }, iconMap: { upload }, } = useDContext();\n const icon = useMemo(() => iconProp || upload, [iconProp, upload]);\n const { inputRef, rootRef, isDragValid, isDragInvalid, acceptAttr, files, handleFileSelect, handleDrop, handleDragEnter, handleDragLeave, handleClick, handleKeyDown, handleRemoveFile, openFileDialog, } = useDBoxFile(props);\n return (_jsxs(_Fragment, { children: [_jsx(\"section\", Object.assign({ className: classnames('d-box-file', {\n 'd-box-file-selected': files.length > 0,\n 'd-box-file-disabled': props.disabled,\n 'd-box-file-valid': isDragValid,\n 'd-box-file-invalid': isDragInvalid,\n }, className), style: style }, dataAttributes, { children: _jsxs(\"div\", Object.assign({ className: \"d-box-file-dropzone\", ref: rootRef, onDragEnter: handleDragEnter, onDragOver: (e) => e.preventDefault(), onDragLeave: handleDragLeave, onDrop: handleDrop, onClick: handleClick, onKeyDown: handleKeyDown }, (!props.disabled && !props.noKeyboard ? { tabIndex: 0 } : {}), { role: \"presentation\", children: [_jsx(\"input\", { type: \"file\", multiple: props.multiple, style: { display: 'none' }, ref: inputRef, disabled: props.disabled, onChange: handleFileSelect, onClick: (e) => e.stopPropagation(), tabIndex: -1, accept: acceptAttr }), icon && iconProp !== false && (_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(\"div\", { className: \"d-box-content\", children: typeof children === 'function'\n ? children(openFileDialog)\n : children || (_jsx(\"p\", { className: \"d-box-file-empty-text\", children: \"Drag and drop some files here, or click to select files\" })) })] })) })), !!files.length && (_jsx(\"ul\", { className: \"d-box-files\", children: files.map((file, index) => (_jsx(DInput, { value: file.name, iconStart: \"Paperclip\", iconEnd: \"Trash\", readOnly: true, onIconEndClick: () => handleRemoveFile(index) }, `${file.name} ${index}`))) }))] }));\n}\n//# sourceMappingURL=DBoxFile.js.map"],"names":["_jsxs","_Fragment","_jsx","classnames","DInput"],"mappings":";;;;;;;;;AASe,SAAS,QAAQ,CAAC,EAAE,EAAE;AACrC,IAAI,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,EAAE,KAAK,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;AAC/Q,IAAI,MAAM,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,GAAG,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,GAAG,WAAW,EAAE;AACvG,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,QAAQ,IAAI,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACtE,IAAI,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC;AAClO,IAAI,QAAQA,IAAK,CAACC,QAAS,EAAE,EAAE,QAAQ,EAAE,CAACC,GAAI,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAEC,UAAU,CAAC,YAAY,EAAE;AAC9G,oBAAoB,qBAAqB,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC;AAC3D,oBAAoB,qBAAqB,EAAE,KAAK,CAAC,QAAQ;AACzD,oBAAoB,kBAAkB,EAAE,WAAW;AACnD,oBAAoB,oBAAoB,EAAE,aAAa;AACvD,iBAAiB,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAEH,IAAK,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,CAACE,GAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,IAAI,QAAQ,KAAK,KAAK,KAAKA,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,CAAC,EAAEA,GAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,QAAQ,KAAK;AACzkC,kCAAkC,QAAQ,CAAC,cAAc;AACzD,kCAAkC,QAAQ,KAAKA,GAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,uBAAuB,EAAE,QAAQ,EAAE,yDAAyD,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,KAAKA,GAAI,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,MAAMA,GAAI,CAACE,eAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAClc;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
import { useRef, useMemo, useState, useCallback, useEffect } from 'react';
|
|
2
|
+
import { fromEvent } from 'file-selector';
|
|
3
|
+
import { DEFAULT_PROPS, acceptPropAsAcceptAttr, urlsToFiles, fileAccepted, fileMatchSize, ErrorCodes, isIeOrEdge } from './utils.js';
|
|
4
|
+
|
|
5
|
+
/* eslint-disable no-param-reassign */
|
|
6
|
+
function useDBoxFile(props) {
|
|
7
|
+
const { accept, autoFocus, disabled, maxSize, minSize, multiple, maxFiles, value: preloadUrls, onDragEnter, onDragLeave, onDrop, onError, onLoad, noClick, noKeyboard, noDrag, } = Object.assign(Object.assign({}, DEFAULT_PROPS), props);
|
|
8
|
+
const inputRef = useRef(null);
|
|
9
|
+
const rootRef = useRef(null);
|
|
10
|
+
const dragTargetsRef = useRef([]);
|
|
11
|
+
const acceptAttr = useMemo(() => acceptPropAsAcceptAttr(accept), [accept]);
|
|
12
|
+
const [files, setFiles] = useState([]);
|
|
13
|
+
const [isDragValid, setIsDragValid] = useState(false);
|
|
14
|
+
const [isDragInvalid, setIsDragInvalid] = useState(false);
|
|
15
|
+
const preventDropOnDocument = useCallback((event) => {
|
|
16
|
+
if (rootRef.current && rootRef.current.contains(event.target)) {
|
|
17
|
+
// If we intercepted an event for our instance
|
|
18
|
+
// let it propagate down to the instance's onDrop handler
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
event.preventDefault();
|
|
22
|
+
dragTargetsRef.current = [];
|
|
23
|
+
}, []);
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
// Prevent drop over anywhere in the document
|
|
26
|
+
document.addEventListener('dragover', preventDropOnDocument, false);
|
|
27
|
+
document.addEventListener('drop', preventDropOnDocument, false);
|
|
28
|
+
return () => {
|
|
29
|
+
document.removeEventListener('dragover', preventDropOnDocument);
|
|
30
|
+
document.removeEventListener('drop', preventDropOnDocument);
|
|
31
|
+
};
|
|
32
|
+
}, [preventDropOnDocument]);
|
|
33
|
+
// Auto focus the root when autoFocus is true
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
if (!disabled && autoFocus && rootRef.current) {
|
|
36
|
+
rootRef.current.focus();
|
|
37
|
+
}
|
|
38
|
+
}, [rootRef, autoFocus, disabled]);
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
if (!preloadUrls || !preloadUrls.length)
|
|
41
|
+
return;
|
|
42
|
+
// eslint-disable-next-line no-void
|
|
43
|
+
void (async () => {
|
|
44
|
+
const [accepted, errors] = await urlsToFiles(preloadUrls);
|
|
45
|
+
if (accepted.length) {
|
|
46
|
+
setFiles(accepted);
|
|
47
|
+
onLoad === null || onLoad === void 0 ? void 0 : onLoad(accepted);
|
|
48
|
+
}
|
|
49
|
+
if (errors.length) {
|
|
50
|
+
onError === null || onError === void 0 ? void 0 : onError(new Error(errors.map((e) => e.message).join(', ')));
|
|
51
|
+
}
|
|
52
|
+
})();
|
|
53
|
+
}, [
|
|
54
|
+
preloadUrls,
|
|
55
|
+
onError,
|
|
56
|
+
onLoad,
|
|
57
|
+
]);
|
|
58
|
+
const processFiles = useCallback((inputFiles, event) => {
|
|
59
|
+
let acceptedFiles = [];
|
|
60
|
+
let rejectedFiles = [];
|
|
61
|
+
// Handle size and type validation
|
|
62
|
+
inputFiles.forEach((file) => {
|
|
63
|
+
const [isTypeValid, acceptError] = fileAccepted(file, acceptAttr);
|
|
64
|
+
const [isSizeValid, sizeError] = fileMatchSize(file, minSize, maxSize);
|
|
65
|
+
const errors = [acceptError, sizeError].filter((e) => Boolean(e));
|
|
66
|
+
if (isTypeValid && isSizeValid) {
|
|
67
|
+
acceptedFiles = [...acceptedFiles, file];
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
rejectedFiles = [...rejectedFiles, { file, errors }];
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
// Handle maxFiles overflow by trimming
|
|
74
|
+
const total = files.length + acceptedFiles.length;
|
|
75
|
+
if (total > maxFiles) {
|
|
76
|
+
const allowed = Math.max(0, maxFiles - files.length);
|
|
77
|
+
const accepted = acceptedFiles.slice(0, allowed);
|
|
78
|
+
const rejected = acceptedFiles.slice(allowed).map((file) => ({
|
|
79
|
+
file,
|
|
80
|
+
errors: [
|
|
81
|
+
{
|
|
82
|
+
code: ErrorCodes.TooManyFiles,
|
|
83
|
+
message: `Exceeds maximum number of files (${maxFiles})`,
|
|
84
|
+
},
|
|
85
|
+
],
|
|
86
|
+
}));
|
|
87
|
+
acceptedFiles = [...accepted];
|
|
88
|
+
rejectedFiles = [...rejectedFiles, ...rejected];
|
|
89
|
+
}
|
|
90
|
+
if (multiple) {
|
|
91
|
+
setFiles((prev) => [...prev, ...acceptedFiles]);
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
setFiles(acceptedFiles.slice(0, 1));
|
|
95
|
+
}
|
|
96
|
+
if (onDrop) {
|
|
97
|
+
onDrop(acceptedFiles, rejectedFiles, event);
|
|
98
|
+
}
|
|
99
|
+
}, [
|
|
100
|
+
acceptAttr,
|
|
101
|
+
files,
|
|
102
|
+
maxFiles,
|
|
103
|
+
maxSize,
|
|
104
|
+
minSize,
|
|
105
|
+
multiple,
|
|
106
|
+
onDrop,
|
|
107
|
+
]);
|
|
108
|
+
const handleDragEnter = useCallback((event) => {
|
|
109
|
+
event.preventDefault();
|
|
110
|
+
event.stopPropagation();
|
|
111
|
+
if (disabled || noDrag)
|
|
112
|
+
return;
|
|
113
|
+
if (event.target instanceof HTMLElement) {
|
|
114
|
+
dragTargetsRef.current = [...dragTargetsRef.current, event.target];
|
|
115
|
+
}
|
|
116
|
+
fromEvent(event).then((eventFiles) => {
|
|
117
|
+
const fileCount = eventFiles.length;
|
|
118
|
+
if (fileCount === 0) {
|
|
119
|
+
setIsDragValid(false);
|
|
120
|
+
setIsDragInvalid(true);
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
const isDragAccepted = eventFiles.every((file) => {
|
|
124
|
+
const [typeValid] = fileAccepted(file, acceptAttr);
|
|
125
|
+
const [sizeValid] = fileMatchSize(file, minSize, maxSize);
|
|
126
|
+
return typeValid && sizeValid;
|
|
127
|
+
});
|
|
128
|
+
setIsDragValid(isDragAccepted);
|
|
129
|
+
setIsDragInvalid(!isDragAccepted);
|
|
130
|
+
onDragEnter === null || onDragEnter === void 0 ? void 0 : onDragEnter(event);
|
|
131
|
+
}).catch((error) => {
|
|
132
|
+
onError === null || onError === void 0 ? void 0 : onError(error);
|
|
133
|
+
});
|
|
134
|
+
}, [
|
|
135
|
+
acceptAttr,
|
|
136
|
+
disabled,
|
|
137
|
+
maxSize,
|
|
138
|
+
minSize,
|
|
139
|
+
noDrag,
|
|
140
|
+
onDragEnter,
|
|
141
|
+
onError,
|
|
142
|
+
]);
|
|
143
|
+
const handleDrop = useCallback((event) => {
|
|
144
|
+
event.preventDefault();
|
|
145
|
+
event.persist();
|
|
146
|
+
event.stopPropagation();
|
|
147
|
+
dragTargetsRef.current = [];
|
|
148
|
+
setIsDragValid(false);
|
|
149
|
+
setIsDragInvalid(false);
|
|
150
|
+
if (disabled || noDrag)
|
|
151
|
+
return;
|
|
152
|
+
const droppedArray = Array.from(event.dataTransfer.files);
|
|
153
|
+
processFiles(droppedArray, event.nativeEvent);
|
|
154
|
+
}, [
|
|
155
|
+
disabled,
|
|
156
|
+
noDrag,
|
|
157
|
+
processFiles,
|
|
158
|
+
]);
|
|
159
|
+
const handleDragLeave = useCallback((event) => {
|
|
160
|
+
event.preventDefault();
|
|
161
|
+
event.stopPropagation();
|
|
162
|
+
if (disabled || noDrag)
|
|
163
|
+
return;
|
|
164
|
+
// Only deactivate once the dropzone and all children have been left
|
|
165
|
+
const targets = dragTargetsRef.current.filter((target) => rootRef.current && rootRef.current.contains(target));
|
|
166
|
+
// Make sure to remove a target present multiple times only once
|
|
167
|
+
// (Firefox may fire dragenter/dragleave multiple times on the same element)
|
|
168
|
+
if (event.target instanceof HTMLElement) {
|
|
169
|
+
const targetIdx = targets.indexOf(event.target);
|
|
170
|
+
if (targetIdx !== -1) {
|
|
171
|
+
targets.splice(targetIdx, 1);
|
|
172
|
+
}
|
|
173
|
+
dragTargetsRef.current = targets;
|
|
174
|
+
}
|
|
175
|
+
if (targets.length === 0) {
|
|
176
|
+
setIsDragValid(false);
|
|
177
|
+
setIsDragInvalid(false);
|
|
178
|
+
onDragLeave === null || onDragLeave === void 0 ? void 0 : onDragLeave(event);
|
|
179
|
+
}
|
|
180
|
+
}, [disabled, noDrag, onDragLeave]);
|
|
181
|
+
const handleFileSelect = useCallback((event) => {
|
|
182
|
+
const targetFiles = event.target.files;
|
|
183
|
+
if (!targetFiles)
|
|
184
|
+
return;
|
|
185
|
+
const selectedFiles = Array.from(targetFiles);
|
|
186
|
+
processFiles(selectedFiles, event.nativeEvent);
|
|
187
|
+
event.target.value = '';
|
|
188
|
+
}, [processFiles]);
|
|
189
|
+
const handleRemoveFile = useCallback((index) => {
|
|
190
|
+
setFiles((prevFiles) => prevFiles.filter((_, i) => i !== index));
|
|
191
|
+
// Done twice to avoid mismatch between files and setFiles value
|
|
192
|
+
onLoad === null || onLoad === void 0 ? void 0 : onLoad(files.filter((_, i) => i !== index));
|
|
193
|
+
}, [files, onLoad]);
|
|
194
|
+
const openFileDialog = useCallback(() => {
|
|
195
|
+
var _a;
|
|
196
|
+
if (disabled)
|
|
197
|
+
return;
|
|
198
|
+
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.click();
|
|
199
|
+
}, [disabled]);
|
|
200
|
+
const handleClick = useCallback(() => {
|
|
201
|
+
if (noClick) {
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
if (isIeOrEdge()) {
|
|
205
|
+
setTimeout(openFileDialog, 0);
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
openFileDialog();
|
|
209
|
+
}
|
|
210
|
+
}, [noClick, openFileDialog]);
|
|
211
|
+
const handleKeyDown = useCallback((event) => {
|
|
212
|
+
if (!noKeyboard && (event.key === ' ' || event.key === 'Enter')) {
|
|
213
|
+
event.preventDefault();
|
|
214
|
+
openFileDialog();
|
|
215
|
+
}
|
|
216
|
+
}, [noKeyboard, openFileDialog]);
|
|
217
|
+
return {
|
|
218
|
+
inputRef,
|
|
219
|
+
rootRef,
|
|
220
|
+
files,
|
|
221
|
+
isDragValid,
|
|
222
|
+
isDragInvalid,
|
|
223
|
+
acceptAttr,
|
|
224
|
+
openFileDialog,
|
|
225
|
+
handleFileSelect,
|
|
226
|
+
handleDrop,
|
|
227
|
+
handleDragEnter,
|
|
228
|
+
handleDragLeave,
|
|
229
|
+
handleRemoveFile,
|
|
230
|
+
handleClick,
|
|
231
|
+
handleKeyDown,
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
export { useDBoxFile as default };
|
|
236
|
+
//# sourceMappingURL=useDBoxFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDBoxFile.js","sources":["../../../../dist-transpiled/components/DBoxFile/useDBoxFile.js"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport { useCallback, useRef, useState, useEffect, useMemo, } from 'react';\nimport { fromEvent } from 'file-selector';\nimport { acceptPropAsAcceptAttr, DEFAULT_PROPS, ErrorCodes, fileAccepted, fileMatchSize, isIeOrEdge, urlsToFiles, } from './utils';\nexport default function useDBoxFile(props) {\n const { accept, autoFocus, disabled, maxSize, minSize, multiple, maxFiles, value: preloadUrls, onDragEnter, onDragLeave, onDrop, onError, onLoad, noClick, noKeyboard, noDrag, } = Object.assign(Object.assign({}, DEFAULT_PROPS), props);\n const inputRef = useRef(null);\n const rootRef = useRef(null);\n const dragTargetsRef = useRef([]);\n const acceptAttr = useMemo(() => acceptPropAsAcceptAttr(accept), [accept]);\n const [files, setFiles] = useState([]);\n const [isDragValid, setIsDragValid] = useState(false);\n const [isDragInvalid, setIsDragInvalid] = useState(false);\n const preventDropOnDocument = useCallback((event) => {\n if (rootRef.current && rootRef.current.contains(event.target)) {\n // If we intercepted an event for our instance\n // let it propagate down to the instance's onDrop handler\n return;\n }\n event.preventDefault();\n dragTargetsRef.current = [];\n }, []);\n useEffect(() => {\n // Prevent drop over anywhere in the document\n document.addEventListener('dragover', preventDropOnDocument, false);\n document.addEventListener('drop', preventDropOnDocument, false);\n return () => {\n document.removeEventListener('dragover', preventDropOnDocument);\n document.removeEventListener('drop', preventDropOnDocument);\n };\n }, [preventDropOnDocument]);\n // Auto focus the root when autoFocus is true\n useEffect(() => {\n if (!disabled && autoFocus && rootRef.current) {\n rootRef.current.focus();\n }\n }, [rootRef, autoFocus, disabled]);\n useEffect(() => {\n if (!preloadUrls || !preloadUrls.length)\n return;\n // eslint-disable-next-line no-void\n void (async () => {\n const [accepted, errors] = await urlsToFiles(preloadUrls);\n if (accepted.length) {\n setFiles(accepted);\n onLoad === null || onLoad === void 0 ? void 0 : onLoad(accepted);\n }\n if (errors.length) {\n onError === null || onError === void 0 ? void 0 : onError(new Error(errors.map((e) => e.message).join(', ')));\n }\n })();\n }, [\n preloadUrls,\n onError,\n onLoad,\n ]);\n const processFiles = useCallback((inputFiles, event) => {\n let acceptedFiles = [];\n let rejectedFiles = [];\n // Handle size and type validation\n inputFiles.forEach((file) => {\n const [isTypeValid, acceptError] = fileAccepted(file, acceptAttr);\n const [isSizeValid, sizeError] = fileMatchSize(file, minSize, maxSize);\n const errors = [acceptError, sizeError].filter((e) => Boolean(e));\n if (isTypeValid && isSizeValid) {\n acceptedFiles = [...acceptedFiles, file];\n }\n else {\n rejectedFiles = [...rejectedFiles, { file, errors }];\n }\n });\n // Handle maxFiles overflow by trimming\n const total = files.length + acceptedFiles.length;\n if (total > maxFiles) {\n const allowed = Math.max(0, maxFiles - files.length);\n const accepted = acceptedFiles.slice(0, allowed);\n const rejected = acceptedFiles.slice(allowed).map((file) => ({\n file,\n errors: [\n {\n code: ErrorCodes.TooManyFiles,\n message: `Exceeds maximum number of files (${maxFiles})`,\n },\n ],\n }));\n acceptedFiles = [...accepted];\n rejectedFiles = [...rejectedFiles, ...rejected];\n }\n if (multiple) {\n setFiles((prev) => [...prev, ...acceptedFiles]);\n }\n else {\n setFiles(acceptedFiles.slice(0, 1));\n }\n if (onDrop) {\n onDrop(acceptedFiles, rejectedFiles, event);\n }\n }, [\n acceptAttr,\n files,\n maxFiles,\n maxSize,\n minSize,\n multiple,\n onDrop,\n ]);\n const handleDragEnter = useCallback((event) => {\n event.preventDefault();\n event.stopPropagation();\n if (disabled || noDrag)\n return;\n if (event.target instanceof HTMLElement) {\n dragTargetsRef.current = [...dragTargetsRef.current, event.target];\n }\n fromEvent(event).then((eventFiles) => {\n const fileCount = eventFiles.length;\n if (fileCount === 0) {\n setIsDragValid(false);\n setIsDragInvalid(true);\n return;\n }\n const isDragAccepted = eventFiles.every((file) => {\n const [typeValid] = fileAccepted(file, acceptAttr);\n const [sizeValid] = fileMatchSize(file, minSize, maxSize);\n return typeValid && sizeValid;\n });\n setIsDragValid(isDragAccepted);\n setIsDragInvalid(!isDragAccepted);\n onDragEnter === null || onDragEnter === void 0 ? void 0 : onDragEnter(event);\n }).catch((error) => {\n onError === null || onError === void 0 ? void 0 : onError(error);\n });\n }, [\n acceptAttr,\n disabled,\n maxSize,\n minSize,\n noDrag,\n onDragEnter,\n onError,\n ]);\n const handleDrop = useCallback((event) => {\n event.preventDefault();\n event.persist();\n event.stopPropagation();\n dragTargetsRef.current = [];\n setIsDragValid(false);\n setIsDragInvalid(false);\n if (disabled || noDrag)\n return;\n const droppedArray = Array.from(event.dataTransfer.files);\n processFiles(droppedArray, event.nativeEvent);\n }, [\n disabled,\n noDrag,\n processFiles,\n ]);\n const handleDragLeave = useCallback((event) => {\n event.preventDefault();\n event.stopPropagation();\n if (disabled || noDrag)\n return;\n // Only deactivate once the dropzone and all children have been left\n const targets = dragTargetsRef.current.filter((target) => rootRef.current && rootRef.current.contains(target));\n // Make sure to remove a target present multiple times only once\n // (Firefox may fire dragenter/dragleave multiple times on the same element)\n if (event.target instanceof HTMLElement) {\n const targetIdx = targets.indexOf(event.target);\n if (targetIdx !== -1) {\n targets.splice(targetIdx, 1);\n }\n dragTargetsRef.current = targets;\n }\n if (targets.length === 0) {\n setIsDragValid(false);\n setIsDragInvalid(false);\n onDragLeave === null || onDragLeave === void 0 ? void 0 : onDragLeave(event);\n }\n }, [disabled, noDrag, onDragLeave]);\n const handleFileSelect = useCallback((event) => {\n const targetFiles = event.target.files;\n if (!targetFiles)\n return;\n const selectedFiles = Array.from(targetFiles);\n processFiles(selectedFiles, event.nativeEvent);\n event.target.value = '';\n }, [processFiles]);\n const handleRemoveFile = useCallback((index) => {\n setFiles((prevFiles) => prevFiles.filter((_, i) => i !== index));\n // Done twice to avoid mismatch between files and setFiles value\n onLoad === null || onLoad === void 0 ? void 0 : onLoad(files.filter((_, i) => i !== index));\n }, [files, onLoad]);\n const openFileDialog = useCallback(() => {\n var _a;\n if (disabled)\n return;\n (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.click();\n }, [disabled]);\n const handleClick = useCallback(() => {\n if (noClick) {\n return;\n }\n if (isIeOrEdge()) {\n setTimeout(openFileDialog, 0);\n }\n else {\n openFileDialog();\n }\n }, [noClick, openFileDialog]);\n const handleKeyDown = useCallback((event) => {\n if (!noKeyboard && (event.key === ' ' || event.key === 'Enter')) {\n event.preventDefault();\n openFileDialog();\n }\n }, [noKeyboard, openFileDialog]);\n return {\n inputRef,\n rootRef,\n files,\n isDragValid,\n isDragInvalid,\n acceptAttr,\n openFileDialog,\n handleFileSelect,\n handleDrop,\n handleDragEnter,\n handleDragLeave,\n handleRemoveFile,\n handleClick,\n handleKeyDown,\n };\n}\n//# sourceMappingURL=useDBoxFile.js.map"],"names":[],"mappings":";;;;AAAA;AAIe,SAAS,WAAW,CAAC,KAAK,EAAE;AAC3C,IAAI,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,CAAC,EAAE,KAAK,CAAC;AAC7O,IAAI,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;AACjC,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;AAChC,IAAI,MAAM,cAAc,GAAG,MAAM,CAAC,EAAE,CAAC;AACrC,IAAI,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AAC9E,IAAI,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;AAC1C,IAAI,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AACzD,IAAI,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AAC7D,IAAI,MAAM,qBAAqB,GAAG,WAAW,CAAC,CAAC,KAAK,KAAK;AACzD,QAAQ,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACvE;AACA;AACA,YAAY;AACZ,QAAQ;AACR,QAAQ,KAAK,CAAC,cAAc,EAAE;AAC9B,QAAQ,cAAc,CAAC,OAAO,GAAG,EAAE;AACnC,IAAI,CAAC,EAAE,EAAE,CAAC;AACV,IAAI,SAAS,CAAC,MAAM;AACpB;AACA,QAAQ,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,qBAAqB,EAAE,KAAK,CAAC;AAC3E,QAAQ,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,qBAAqB,EAAE,KAAK,CAAC;AACvE,QAAQ,OAAO,MAAM;AACrB,YAAY,QAAQ,CAAC,mBAAmB,CAAC,UAAU,EAAE,qBAAqB,CAAC;AAC3E,YAAY,QAAQ,CAAC,mBAAmB,CAAC,MAAM,EAAE,qBAAqB,CAAC;AACvE,QAAQ,CAAC;AACT,IAAI,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC;AAC/B;AACA,IAAI,SAAS,CAAC,MAAM;AACpB,QAAQ,IAAI,CAAC,QAAQ,IAAI,SAAS,IAAI,OAAO,CAAC,OAAO,EAAE;AACvD,YAAY,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE;AACnC,QAAQ;AACR,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AACtC,IAAI,SAAS,CAAC,MAAM;AACpB,QAAQ,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,MAAM;AAC/C,YAAY;AACZ;AACA,QAAQ,KAAK,CAAC,YAAY;AAC1B,YAAY,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC;AACrE,YAAY,IAAI,QAAQ,CAAC,MAAM,EAAE;AACjC,gBAAgB,QAAQ,CAAC,QAAQ,CAAC;AAClC,gBAAgB,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC;AAChF,YAAY;AACZ,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE;AAC/B,gBAAgB,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7H,YAAY;AACZ,QAAQ,CAAC,GAAG;AACZ,IAAI,CAAC,EAAE;AACP,QAAQ,WAAW;AACnB,QAAQ,OAAO;AACf,QAAQ,MAAM;AACd,KAAK,CAAC;AACN,IAAI,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,UAAU,EAAE,KAAK,KAAK;AAC5D,QAAQ,IAAI,aAAa,GAAG,EAAE;AAC9B,QAAQ,IAAI,aAAa,GAAG,EAAE;AAC9B;AACA,QAAQ,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK;AACrC,YAAY,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC;AAC7E,YAAY,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC;AAClF,YAAY,MAAM,MAAM,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7E,YAAY,IAAI,WAAW,IAAI,WAAW,EAAE;AAC5C,gBAAgB,aAAa,GAAG,CAAC,GAAG,aAAa,EAAE,IAAI,CAAC;AACxD,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,aAAa,GAAG,CAAC,GAAG,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACpE,YAAY;AACZ,QAAQ,CAAC,CAAC;AACV;AACA,QAAQ,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM;AACzD,QAAQ,IAAI,KAAK,GAAG,QAAQ,EAAE;AAC9B,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;AAChE,YAAY,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;AAC5D,YAAY,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM;AACzE,gBAAgB,IAAI;AACpB,gBAAgB,MAAM,EAAE;AACxB,oBAAoB;AACpB,wBAAwB,IAAI,EAAE,UAAU,CAAC,YAAY;AACrD,wBAAwB,OAAO,EAAE,CAAC,iCAAiC,EAAE,QAAQ,CAAC,CAAC,CAAC;AAChF,qBAAqB;AACrB,iBAAiB;AACjB,aAAa,CAAC,CAAC;AACf,YAAY,aAAa,GAAG,CAAC,GAAG,QAAQ,CAAC;AACzC,YAAY,aAAa,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,QAAQ,CAAC;AAC3D,QAAQ;AACR,QAAQ,IAAI,QAAQ,EAAE;AACtB,YAAY,QAAQ,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,aAAa,CAAC,CAAC;AAC3D,QAAQ;AACR,aAAa;AACb,YAAY,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/C,QAAQ;AACR,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAY,MAAM,CAAC,aAAa,EAAE,aAAa,EAAE,KAAK,CAAC;AACvD,QAAQ;AACR,IAAI,CAAC,EAAE;AACP,QAAQ,UAAU;AAClB,QAAQ,KAAK;AACb,QAAQ,QAAQ;AAChB,QAAQ,OAAO;AACf,QAAQ,OAAO;AACf,QAAQ,QAAQ;AAChB,QAAQ,MAAM;AACd,KAAK,CAAC;AACN,IAAI,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,KAAK,KAAK;AACnD,QAAQ,KAAK,CAAC,cAAc,EAAE;AAC9B,QAAQ,KAAK,CAAC,eAAe,EAAE;AAC/B,QAAQ,IAAI,QAAQ,IAAI,MAAM;AAC9B,YAAY;AACZ,QAAQ,IAAI,KAAK,CAAC,MAAM,YAAY,WAAW,EAAE;AACjD,YAAY,cAAc,CAAC,OAAO,GAAG,CAAC,GAAG,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;AAC9E,QAAQ;AACR,QAAQ,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK;AAC9C,YAAY,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM;AAC/C,YAAY,IAAI,SAAS,KAAK,CAAC,EAAE;AACjC,gBAAgB,cAAc,CAAC,KAAK,CAAC;AACrC,gBAAgB,gBAAgB,CAAC,IAAI,CAAC;AACtC,gBAAgB;AAChB,YAAY;AACZ,YAAY,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK;AAC9D,gBAAgB,MAAM,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC;AAClE,gBAAgB,MAAM,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC;AACzE,gBAAgB,OAAO,SAAS,IAAI,SAAS;AAC7C,YAAY,CAAC,CAAC;AACd,YAAY,cAAc,CAAC,cAAc,CAAC;AAC1C,YAAY,gBAAgB,CAAC,CAAC,cAAc,CAAC;AAC7C,YAAY,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC;AACxF,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK;AAC5B,YAAY,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;AAC5E,QAAQ,CAAC,CAAC;AACV,IAAI,CAAC,EAAE;AACP,QAAQ,UAAU;AAClB,QAAQ,QAAQ;AAChB,QAAQ,OAAO;AACf,QAAQ,OAAO;AACf,QAAQ,MAAM;AACd,QAAQ,WAAW;AACnB,QAAQ,OAAO;AACf,KAAK,CAAC;AACN,IAAI,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,KAAK,KAAK;AAC9C,QAAQ,KAAK,CAAC,cAAc,EAAE;AAC9B,QAAQ,KAAK,CAAC,OAAO,EAAE;AACvB,QAAQ,KAAK,CAAC,eAAe,EAAE;AAC/B,QAAQ,cAAc,CAAC,OAAO,GAAG,EAAE;AACnC,QAAQ,cAAc,CAAC,KAAK,CAAC;AAC7B,QAAQ,gBAAgB,CAAC,KAAK,CAAC;AAC/B,QAAQ,IAAI,QAAQ,IAAI,MAAM;AAC9B,YAAY;AACZ,QAAQ,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC;AACjE,QAAQ,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,WAAW,CAAC;AACrD,IAAI,CAAC,EAAE;AACP,QAAQ,QAAQ;AAChB,QAAQ,MAAM;AACd,QAAQ,YAAY;AACpB,KAAK,CAAC;AACN,IAAI,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,KAAK,KAAK;AACnD,QAAQ,KAAK,CAAC,cAAc,EAAE;AAC9B,QAAQ,KAAK,CAAC,eAAe,EAAE;AAC/B,QAAQ,IAAI,QAAQ,IAAI,MAAM;AAC9B,YAAY;AACZ;AACA,QAAQ,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACtH;AACA;AACA,QAAQ,IAAI,KAAK,CAAC,MAAM,YAAY,WAAW,EAAE;AACjD,YAAY,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;AAC3D,YAAY,IAAI,SAAS,KAAK,EAAE,EAAE;AAClC,gBAAgB,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;AAC5C,YAAY;AACZ,YAAY,cAAc,CAAC,OAAO,GAAG,OAAO;AAC5C,QAAQ;AACR,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AAClC,YAAY,cAAc,CAAC,KAAK,CAAC;AACjC,YAAY,gBAAgB,CAAC,KAAK,CAAC;AACnC,YAAY,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC;AACxF,QAAQ;AACR,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AACvC,IAAI,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,KAAK,KAAK;AACpD,QAAQ,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK;AAC9C,QAAQ,IAAI,CAAC,WAAW;AACxB,YAAY;AACZ,QAAQ,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;AACrD,QAAQ,YAAY,CAAC,aAAa,EAAE,KAAK,CAAC,WAAW,CAAC;AACtD,QAAQ,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE;AAC/B,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;AACtB,IAAI,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,KAAK,KAAK;AACpD,QAAQ,QAAQ,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;AACxE;AACA,QAAQ,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;AACnG,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACvB,IAAI,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM;AAC7C,QAAQ,IAAI,EAAE;AACd,QAAQ,IAAI,QAAQ;AACpB,YAAY;AACZ,QAAQ,CAAC,EAAE,GAAG,QAAQ,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,KAAK,EAAE;AAC/E,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAClB,IAAI,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM;AAC1C,QAAQ,IAAI,OAAO,EAAE;AACrB,YAAY;AACZ,QAAQ;AACR,QAAQ,IAAI,UAAU,EAAE,EAAE;AAC1B,YAAY,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;AACzC,QAAQ;AACR,aAAa;AACb,YAAY,cAAc,EAAE;AAC5B,QAAQ;AACR,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AACjC,IAAI,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,KAAK,KAAK;AACjD,QAAQ,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,CAAC,EAAE;AACzE,YAAY,KAAK,CAAC,cAAc,EAAE;AAClC,YAAY,cAAc,EAAE;AAC5B,QAAQ;AACR,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;AACpC,IAAI,OAAO;AACX,QAAQ,QAAQ;AAChB,QAAQ,OAAO;AACf,QAAQ,KAAK;AACb,QAAQ,WAAW;AACnB,QAAQ,aAAa;AACrB,QAAQ,UAAU;AAClB,QAAQ,cAAc;AACtB,QAAQ,gBAAgB;AACxB,QAAQ,UAAU;AAClB,QAAQ,eAAe;AACvB,QAAQ,eAAe;AACvB,QAAQ,gBAAgB;AACxB,QAAQ,WAAW;AACnB,QAAQ,aAAa;AACrB,KAAK;AACL;;;;"}
|