@ncds/ui-admin 1.7.0 → 1.8.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/cjs/assets/scripts/baseBox.js +54 -56
- package/dist/cjs/assets/scripts/comboBox.js +54 -105
- package/dist/cjs/assets/scripts/datePicker.js +289 -324
- package/dist/cjs/assets/scripts/featuredIcon.js +41 -49
- package/dist/cjs/assets/scripts/fileInput/const/classNames.js +4 -10
- package/dist/cjs/assets/scripts/fileInput/fileInput.js +33 -34
- package/dist/cjs/assets/scripts/fileInput/fileInputModel.js +27 -35
- package/dist/cjs/assets/scripts/fileInput/fileInputView.js +53 -48
- package/dist/cjs/assets/scripts/imageFileInput/ImageFileInput.js +61 -64
- package/dist/cjs/assets/scripts/imageFileInput/ImageFileInputModel.js +79 -112
- package/dist/cjs/assets/scripts/imageFileInput/ImageFileInputView.js +107 -105
- package/dist/cjs/assets/scripts/imageFileInput/const/classNames.js +6 -16
- package/dist/cjs/assets/scripts/index.js +2 -0
- package/dist/cjs/assets/scripts/modal/Modal.js +43 -55
- package/dist/cjs/assets/scripts/modal/ModalActions.js +40 -52
- package/dist/cjs/assets/scripts/modal/ModalContent.js +22 -22
- package/dist/cjs/assets/scripts/modal/ModalHeader.js +37 -48
- package/dist/cjs/assets/scripts/modal/const/classNames.js +5 -13
- package/dist/cjs/assets/scripts/modal/utils/contentUtils.js +1 -1
- package/dist/cjs/assets/scripts/notification/FloatingNotification.js +91 -93
- package/dist/cjs/assets/scripts/notification/FullWidthNotification.js +92 -80
- package/dist/cjs/assets/scripts/notification/MessageNotification.js +92 -79
- package/dist/cjs/assets/scripts/notification/Notification.js +50 -65
- package/dist/cjs/assets/scripts/notification/const/classNames.js +1 -1
- package/dist/cjs/assets/scripts/notification/const/icons.js +11 -25
- package/dist/cjs/assets/scripts/notification/const/sizes.js +11 -19
- package/dist/cjs/assets/scripts/notification/const/types.js +1 -1
- package/dist/cjs/assets/scripts/notification/utils.js +28 -23
- package/dist/cjs/assets/scripts/progress-bar/ProgressBar.js +140 -141
- package/dist/cjs/assets/scripts/selectBox.js +72 -132
- package/dist/cjs/assets/scripts/shared/ButtonCloseX.js +18 -19
- package/dist/cjs/assets/scripts/slider.js +104 -122
- package/dist/cjs/assets/scripts/tab.js +8 -8
- package/dist/cjs/assets/scripts/table/Table.js +377 -0
- package/dist/cjs/assets/scripts/table/const/classNames.js +33 -0
- package/dist/cjs/assets/scripts/table/const/index.js +27 -0
- package/dist/cjs/assets/scripts/table/const/types.js +5 -0
- package/dist/cjs/assets/scripts/table/index.js +43 -0
- package/dist/cjs/assets/scripts/tag/Tag.js +108 -115
- package/dist/cjs/assets/scripts/tag/const/classNames.js +3 -7
- package/dist/cjs/assets/scripts/tag/const/sizes.js +4 -4
- package/dist/cjs/assets/scripts/tooltip/Tooltip.js +155 -182
- package/dist/cjs/assets/scripts/tooltip/TooltipLayerManager.js +23 -25
- package/dist/cjs/assets/scripts/tooltip/const/classNames.js +1 -1
- package/dist/cjs/assets/scripts/tooltip/const/constants.js +14 -14
- package/dist/cjs/assets/scripts/tooltip/const/icons.js +7 -7
- package/dist/cjs/assets/scripts/tooltip/const/templates.js +42 -25
- package/dist/cjs/assets/scripts/tooltip/utils.js +17 -18
- package/dist/cjs/assets/scripts/utils/debounce.js +7 -8
- package/dist/cjs/assets/scripts/utils/unifiedBox/domRenderer.js +102 -116
- package/dist/cjs/assets/scripts/utils/unifiedBox/dropdownModel.js +103 -144
- package/dist/cjs/assets/scripts/utils/unifiedBox/unifiedBoxController.js +180 -207
- package/dist/cjs/assets/scripts/utils/unifiedBox/unifiedBoxManager.js +166 -362
- package/dist/cjs/constant/color.js +1 -1
- package/dist/cjs/index.js +0 -297
- package/dist/cjs/src/components/badge/Badge.js +17 -30
- package/dist/cjs/src/components/badge/index.js +0 -11
- package/dist/cjs/src/components/badge/utils.js +11 -10
- package/dist/cjs/src/components/badge-group/BadgeGroup.js +42 -0
- package/dist/cjs/src/components/badge-group/index.js +16 -0
- package/dist/cjs/src/components/bread-crumb/BreadCrumb.js +55 -0
- package/dist/cjs/src/components/button/Button.js +37 -58
- package/dist/cjs/src/components/button/ButtonCloseX.js +12 -22
- package/dist/cjs/src/components/button/ButtonStepper.js +9 -7
- package/dist/cjs/src/components/button/index.js +0 -11
- package/dist/cjs/src/components/button-group/ButtonGroup.js +97 -0
- package/dist/cjs/src/components/button-group/index.js +16 -0
- package/dist/cjs/src/components/carousel-arrow/CarouselArrow.js +34 -0
- package/dist/cjs/src/components/carousel-arrow/index.js +16 -0
- package/dist/cjs/src/components/carousel-number-group/CarouselNumberGroup.js +33 -0
- package/dist/cjs/src/components/{carousel → carousel-number-group}/index.js +0 -11
- package/dist/cjs/src/components/checkbox/Checkbox.js +28 -49
- package/dist/cjs/src/components/checkbox/CheckboxInput.js +23 -42
- package/dist/cjs/src/components/combo-box/ComboBox.js +290 -0
- package/dist/cjs/src/components/data-grid/DataGrid.js +182 -0
- package/dist/cjs/src/components/data-grid/DataGrid.types.js +5 -0
- package/dist/cjs/src/components/data-grid/index.js +27 -0
- package/dist/cjs/src/components/date-picker/CustomInput.js +16 -32
- package/dist/cjs/src/components/date-picker/DatePicker.js +416 -256
- package/dist/cjs/src/components/date-picker/index.js +0 -22
- package/dist/cjs/src/components/date-picker/utils.js +2 -4
- package/dist/cjs/src/components/divider/Divider.js +14 -25
- package/dist/cjs/src/components/dot/Dot.js +11 -28
- package/dist/cjs/src/components/dropdown/Dropdown.js +90 -132
- package/dist/cjs/src/components/empty-state/EmptyState.js +28 -45
- package/dist/cjs/src/components/featured-icon/FeaturedIcon.js +14 -33
- package/dist/cjs/src/components/file-input/FileInput.js +102 -148
- package/dist/cjs/src/components/horizontal-tab/HorizontalTab.js +53 -0
- package/dist/cjs/src/components/horizontal-tab/index.js +16 -0
- package/dist/cjs/src/components/image-file-input/ImageFileInput.js +109 -170
- package/dist/cjs/src/components/image-file-input/components/ImagePreview.js +8 -17
- package/dist/cjs/src/components/index.js +156 -24
- package/dist/cjs/src/components/input-base/InputBase.js +195 -0
- package/dist/cjs/src/components/input-base/index.js +16 -0
- package/dist/cjs/src/components/modal/Modal.js +76 -105
- package/dist/cjs/src/components/notification/FloatingNotification.js +52 -80
- package/dist/cjs/src/components/notification/FullWidthNotification.js +67 -101
- package/dist/cjs/src/components/notification/MessageNotification.js +60 -89
- package/dist/cjs/src/components/notification/Notification.js +18 -36
- package/dist/cjs/src/components/number-input/NumberInput.js +112 -0
- package/dist/cjs/src/components/number-input/index.js +16 -0
- package/dist/cjs/src/components/pagination/NavButton.js +28 -42
- package/dist/cjs/src/components/pagination/Pagination.js +58 -97
- package/dist/cjs/src/components/password-input/PasswordInput.js +55 -0
- package/dist/cjs/src/components/password-input/index.js +16 -0
- package/dist/cjs/src/components/progress-bar/ProgressBar.js +45 -60
- package/dist/cjs/src/components/progress-bar/components/SegmentBar.js +11 -9
- package/dist/cjs/src/components/progress-bar/components/SegmentLabels.js +32 -43
- package/dist/cjs/src/components/progress-bar/hooks/useProgressBar.js +59 -78
- package/dist/cjs/src/components/progress-bar/utils.js +8 -8
- package/dist/cjs/src/components/progress-circle/ProgressCircle.js +49 -72
- package/dist/cjs/src/components/radio/Radio.js +24 -43
- package/dist/cjs/src/components/radio/RadioInput.js +18 -36
- package/dist/cjs/src/components/range-date-picker/RangeDatePicker.js +147 -0
- package/dist/cjs/src/components/range-date-picker/index.js +16 -0
- package/dist/cjs/src/components/range-date-picker-with-buttons/RangeDatePickerWithButtons.js +81 -0
- package/dist/cjs/src/components/range-date-picker-with-buttons/index.js +16 -0
- package/dist/cjs/src/components/select/Select.js +36 -63
- package/dist/cjs/src/components/select-box/SelectBox.js +260 -0
- package/dist/cjs/src/components/select-dropdown/SelectDropdown.js +64 -100
- package/dist/cjs/src/components/shared/hintText/HintText.js +13 -30
- package/dist/cjs/src/components/shared/label/Label.js +12 -29
- package/dist/cjs/src/components/slider/Slider.js +25 -28
- package/dist/cjs/src/components/spinner/Spinner.js +25 -39
- package/dist/cjs/src/components/switch/Switch.js +44 -69
- package/dist/cjs/src/components/tab/TabButton.js +41 -61
- package/dist/cjs/src/components/tab/index.js +0 -22
- package/dist/cjs/src/components/table/Table.js +269 -0
- package/dist/cjs/src/components/table/index.js +16 -0
- package/dist/cjs/src/components/table/types.js +5 -0
- package/dist/cjs/src/components/tag/Tag.js +65 -85
- package/dist/cjs/src/components/textarea/Textarea.js +79 -0
- package/dist/cjs/src/components/textarea/index.js +16 -0
- package/dist/cjs/src/components/toggle/Toggle.js +28 -52
- package/dist/cjs/src/components/tooltip/Tooltip.js +75 -108
- package/dist/cjs/src/components/vertical-tab/VerticalTab.js +48 -0
- package/dist/cjs/src/components/vertical-tab/index.js +16 -0
- package/dist/cjs/src/constant/breakpoint.js +3 -3
- package/dist/cjs/src/constant/date-picker.js +1 -1
- package/dist/cjs/src/constant/size.js +1 -1
- package/dist/cjs/src/hooks/dropdown/useDropdown.js +58 -60
- package/dist/cjs/src/hooks/dropdown/useDropdownKeyboard.js +37 -40
- package/dist/cjs/src/hooks/dropdown/useDropdownPosition.js +7 -9
- package/dist/cjs/src/hooks/dropdown/useOutsideClick.js +11 -11
- package/dist/cjs/src/hooks/dropdown/useScrollLock.js +23 -19
- package/dist/cjs/src/hooks/dropdown/useWindowResize.js +12 -13
- package/dist/cjs/src/hooks/useCallbackRef.js +2 -2
- package/dist/cjs/src/hooks/useMediaQuery.js +8 -11
- package/dist/cjs/src/hooks/useMergeRefs.js +2 -2
- package/dist/cjs/src/utils/date-picker.js +29 -30
- package/dist/cjs/src/utils/dropdown/dropdownUtils.js +39 -35
- package/dist/cjs/src/utils/dropdown/multiSelect.js +25 -45
- package/dist/esm/assets/scripts/baseBox.js +53 -57
- package/dist/esm/assets/scripts/comboBox.js +54 -107
- package/dist/esm/assets/scripts/datePicker.js +288 -324
- package/dist/esm/assets/scripts/featuredIcon.js +40 -50
- package/dist/esm/assets/scripts/fileInput/const/classNames.js +4 -10
- package/dist/esm/assets/scripts/fileInput/fileInput.js +32 -35
- package/dist/esm/assets/scripts/fileInput/fileInputModel.js +26 -36
- package/dist/esm/assets/scripts/fileInput/fileInputView.js +52 -49
- package/dist/esm/assets/scripts/imageFileInput/ImageFileInput.js +60 -65
- package/dist/esm/assets/scripts/imageFileInput/ImageFileInputModel.js +78 -113
- package/dist/esm/assets/scripts/imageFileInput/ImageFileInputView.js +106 -106
- package/dist/esm/assets/scripts/imageFileInput/const/classNames.js +6 -16
- package/dist/esm/assets/scripts/index.js +2 -0
- package/dist/esm/assets/scripts/modal/Modal.js +43 -55
- package/dist/esm/assets/scripts/modal/ModalActions.js +39 -53
- package/dist/esm/assets/scripts/modal/ModalContent.js +21 -23
- package/dist/esm/assets/scripts/modal/ModalHeader.js +36 -49
- package/dist/esm/assets/scripts/modal/const/classNames.js +5 -13
- package/dist/esm/assets/scripts/modal/utils/contentUtils.js +1 -1
- package/dist/esm/assets/scripts/notification/FloatingNotification.js +90 -94
- package/dist/esm/assets/scripts/notification/FullWidthNotification.js +91 -81
- package/dist/esm/assets/scripts/notification/MessageNotification.js +91 -80
- package/dist/esm/assets/scripts/notification/Notification.js +49 -66
- package/dist/esm/assets/scripts/notification/const/classNames.js +1 -1
- package/dist/esm/assets/scripts/notification/const/icons.js +11 -25
- package/dist/esm/assets/scripts/notification/const/sizes.js +11 -19
- package/dist/esm/assets/scripts/notification/const/types.js +1 -1
- package/dist/esm/assets/scripts/notification/utils.js +28 -23
- package/dist/esm/assets/scripts/progress-bar/ProgressBar.js +139 -142
- package/dist/esm/assets/scripts/selectBox.js +71 -133
- package/dist/esm/assets/scripts/shared/ButtonCloseX.js +18 -19
- package/dist/esm/assets/scripts/slider.js +103 -123
- package/dist/esm/assets/scripts/tab.js +7 -9
- package/dist/esm/assets/scripts/table/Table.js +370 -0
- package/dist/esm/assets/scripts/table/const/classNames.js +27 -0
- package/dist/esm/assets/scripts/table/const/index.js +2 -0
- package/dist/esm/assets/scripts/table/const/types.js +1 -0
- package/dist/esm/assets/scripts/table/index.js +8 -0
- package/dist/esm/assets/scripts/tag/Tag.js +107 -116
- package/dist/esm/assets/scripts/tag/const/classNames.js +3 -7
- package/dist/esm/assets/scripts/tag/const/sizes.js +4 -4
- package/dist/esm/assets/scripts/tooltip/Tooltip.js +154 -183
- package/dist/esm/assets/scripts/tooltip/TooltipLayerManager.js +22 -26
- package/dist/esm/assets/scripts/tooltip/const/classNames.js +1 -1
- package/dist/esm/assets/scripts/tooltip/const/constants.js +14 -14
- package/dist/esm/assets/scripts/tooltip/const/icons.js +7 -7
- package/dist/esm/assets/scripts/tooltip/const/templates.js +42 -25
- package/dist/esm/assets/scripts/tooltip/utils.js +17 -18
- package/dist/esm/assets/scripts/utils/debounce.js +7 -8
- package/dist/esm/assets/scripts/utils/unifiedBox/domRenderer.js +101 -117
- package/dist/esm/assets/scripts/utils/unifiedBox/dropdownModel.js +103 -144
- package/dist/esm/assets/scripts/utils/unifiedBox/unifiedBoxController.js +179 -208
- package/dist/esm/assets/scripts/utils/unifiedBox/unifiedBoxManager.js +165 -363
- package/dist/esm/constant/color.js +1 -1
- package/dist/esm/index.js +0 -27
- package/dist/esm/src/components/badge/Badge.js +17 -30
- package/dist/esm/src/components/badge/index.js +1 -2
- package/dist/esm/src/components/badge/utils.js +11 -10
- package/dist/esm/src/components/badge-group/BadgeGroup.js +35 -0
- package/dist/esm/src/components/badge-group/index.js +1 -0
- package/dist/esm/src/components/bread-crumb/BreadCrumb.js +48 -0
- package/dist/esm/src/components/button/Button.js +37 -58
- package/dist/esm/src/components/button/ButtonCloseX.js +12 -22
- package/dist/esm/src/components/button/ButtonStepper.js +9 -7
- package/dist/esm/src/components/button/index.js +0 -1
- package/dist/esm/src/components/button-group/ButtonGroup.js +89 -0
- package/dist/esm/src/components/button-group/index.js +1 -0
- package/dist/esm/src/components/carousel-arrow/CarouselArrow.js +26 -0
- package/dist/esm/src/components/carousel-arrow/index.js +1 -0
- package/dist/esm/src/components/carousel-number-group/CarouselNumberGroup.js +25 -0
- package/dist/esm/src/components/carousel-number-group/index.js +1 -0
- package/dist/esm/src/components/checkbox/Checkbox.js +28 -49
- package/dist/esm/src/components/checkbox/CheckboxInput.js +23 -42
- package/dist/esm/src/components/combo-box/ComboBox.js +284 -0
- package/dist/esm/src/components/data-grid/DataGrid.js +175 -0
- package/dist/esm/src/components/data-grid/DataGrid.types.js +1 -0
- package/dist/esm/src/components/data-grid/index.js +2 -0
- package/dist/esm/src/components/date-picker/CustomInput.js +16 -32
- package/dist/esm/src/components/date-picker/DatePicker.js +421 -260
- package/dist/esm/src/components/date-picker/index.js +0 -2
- package/dist/esm/src/components/date-picker/utils.js +2 -4
- package/dist/esm/src/components/divider/Divider.js +14 -25
- package/dist/esm/src/components/dot/Dot.js +11 -28
- package/dist/esm/src/components/dropdown/Dropdown.js +90 -132
- package/dist/esm/src/components/empty-state/EmptyState.js +28 -45
- package/dist/esm/src/components/featured-icon/FeaturedIcon.js +14 -33
- package/dist/esm/src/components/file-input/FileInput.js +102 -148
- package/dist/esm/src/components/horizontal-tab/HorizontalTab.js +46 -0
- package/dist/esm/src/components/horizontal-tab/index.js +1 -0
- package/dist/esm/src/components/image-file-input/ImageFileInput.js +109 -170
- package/dist/esm/src/components/image-file-input/components/ImagePreview.js +8 -17
- package/dist/esm/src/components/index.js +18 -6
- package/dist/esm/src/components/input-base/InputBase.js +189 -0
- package/dist/esm/src/components/input-base/index.js +1 -0
- package/dist/esm/src/components/modal/Modal.js +76 -105
- package/dist/esm/src/components/notification/FloatingNotification.js +52 -80
- package/dist/esm/src/components/notification/FullWidthNotification.js +67 -101
- package/dist/esm/src/components/notification/MessageNotification.js +60 -89
- package/dist/esm/src/components/notification/Notification.js +18 -36
- package/dist/esm/src/components/{input → number-input}/NumberInput.js +34 -54
- package/dist/esm/src/components/number-input/index.js +1 -0
- package/dist/esm/src/components/pagination/NavButton.js +28 -42
- package/dist/esm/src/components/pagination/Pagination.js +58 -97
- package/dist/esm/src/components/password-input/PasswordInput.js +48 -0
- package/dist/esm/src/components/password-input/index.js +1 -0
- package/dist/esm/src/components/progress-bar/ProgressBar.js +45 -60
- package/dist/esm/src/components/progress-bar/components/SegmentBar.js +11 -9
- package/dist/esm/src/components/progress-bar/components/SegmentLabels.js +32 -43
- package/dist/esm/src/components/progress-bar/hooks/useProgressBar.js +59 -78
- package/dist/esm/src/components/progress-bar/utils.js +8 -8
- package/dist/esm/src/components/progress-circle/ProgressCircle.js +49 -72
- package/dist/esm/src/components/radio/Radio.js +24 -43
- package/dist/esm/src/components/radio/RadioInput.js +18 -36
- package/dist/esm/src/components/range-date-picker/RangeDatePicker.js +141 -0
- package/dist/esm/src/components/range-date-picker/index.js +1 -0
- package/dist/esm/src/components/range-date-picker-with-buttons/RangeDatePickerWithButtons.js +75 -0
- package/dist/esm/src/components/range-date-picker-with-buttons/index.js +1 -0
- package/dist/esm/src/components/select/Select.js +36 -63
- package/dist/esm/src/components/select-box/SelectBox.js +254 -0
- package/dist/esm/src/components/select-dropdown/SelectDropdown.js +64 -100
- package/dist/esm/src/components/shared/hintText/HintText.js +13 -30
- package/dist/esm/src/components/shared/label/Label.js +12 -29
- package/dist/esm/src/components/slider/Slider.js +25 -28
- package/dist/esm/src/components/spinner/Spinner.js +25 -39
- package/dist/esm/src/components/switch/Switch.js +44 -69
- package/dist/esm/src/components/tab/TabButton.js +41 -61
- package/dist/esm/src/components/tab/index.js +1 -3
- package/dist/esm/src/components/table/Table.js +262 -0
- package/dist/esm/src/components/table/index.js +1 -0
- package/dist/esm/src/components/table/types.js +1 -0
- package/dist/esm/src/components/tag/Tag.js +65 -85
- package/dist/esm/src/components/textarea/Textarea.js +72 -0
- package/dist/esm/src/components/textarea/index.js +1 -0
- package/dist/esm/src/components/toggle/Toggle.js +28 -52
- package/dist/esm/src/components/tooltip/Tooltip.js +75 -108
- package/dist/esm/src/components/vertical-tab/VerticalTab.js +40 -0
- package/dist/esm/src/components/vertical-tab/index.js +1 -0
- package/dist/esm/src/constant/breakpoint.js +3 -3
- package/dist/esm/src/constant/date-picker.js +1 -1
- package/dist/esm/src/constant/size.js +1 -1
- package/dist/esm/src/hooks/dropdown/useDropdown.js +58 -60
- package/dist/esm/src/hooks/dropdown/useDropdownKeyboard.js +37 -40
- package/dist/esm/src/hooks/dropdown/useDropdownPosition.js +7 -9
- package/dist/esm/src/hooks/dropdown/useOutsideClick.js +11 -11
- package/dist/esm/src/hooks/dropdown/useScrollLock.js +23 -19
- package/dist/esm/src/hooks/dropdown/useWindowResize.js +12 -13
- package/dist/esm/src/hooks/useCallbackRef.js +2 -2
- package/dist/esm/src/hooks/useMediaQuery.js +8 -11
- package/dist/esm/src/hooks/useMergeRefs.js +2 -2
- package/dist/esm/src/utils/date-picker.js +29 -30
- package/dist/esm/src/utils/dropdown/dropdownUtils.js +39 -35
- package/dist/esm/src/utils/dropdown/multiSelect.js +25 -45
- package/dist/temp/assets/scripts/baseBox.js +53 -57
- package/dist/temp/assets/scripts/comboBox.js +62 -93
- package/dist/temp/assets/scripts/datePicker.js +286 -293
- package/dist/temp/assets/scripts/featuredIcon.js +40 -47
- package/dist/temp/assets/scripts/fileInput/const/classNames.js +4 -8
- package/dist/temp/assets/scripts/fileInput/fileInput.js +29 -33
- package/dist/temp/assets/scripts/fileInput/fileInputModel.js +24 -32
- package/dist/temp/assets/scripts/fileInput/fileInputView.js +52 -49
- package/dist/temp/assets/scripts/imageFileInput/ImageFileInput.js +57 -63
- package/dist/temp/assets/scripts/imageFileInput/ImageFileInputModel.js +79 -99
- package/dist/temp/assets/scripts/imageFileInput/ImageFileInputView.js +106 -104
- package/dist/temp/assets/scripts/imageFileInput/const/classNames.js +6 -10
- package/dist/temp/assets/scripts/index.d.ts +2 -0
- package/dist/temp/assets/scripts/index.js +2 -0
- package/dist/temp/assets/scripts/modal/Modal.js +46 -52
- package/dist/temp/assets/scripts/modal/ModalActions.js +42 -50
- package/dist/temp/assets/scripts/modal/ModalContent.js +21 -23
- package/dist/temp/assets/scripts/modal/ModalHeader.js +40 -46
- package/dist/temp/assets/scripts/modal/const/classNames.js +5 -5
- package/dist/temp/assets/scripts/modal/utils/contentUtils.js +1 -1
- package/dist/temp/assets/scripts/notification/FloatingNotification.js +80 -77
- package/dist/temp/assets/scripts/notification/FullWidthNotification.js +78 -62
- package/dist/temp/assets/scripts/notification/MessageNotification.js +81 -64
- package/dist/temp/assets/scripts/notification/Notification.js +48 -62
- package/dist/temp/assets/scripts/notification/const/classNames.js +1 -1
- package/dist/temp/assets/scripts/notification/const/icons.js +11 -25
- package/dist/temp/assets/scripts/notification/const/sizes.js +11 -11
- package/dist/temp/assets/scripts/notification/const/types.js +1 -1
- package/dist/temp/assets/scripts/notification/utils.js +31 -26
- package/dist/temp/assets/scripts/progress-bar/ProgressBar.js +124 -119
- package/dist/temp/assets/scripts/selectBox.js +81 -105
- package/dist/temp/assets/scripts/shared/ButtonCloseX.js +14 -13
- package/dist/temp/assets/scripts/slider.js +105 -113
- package/dist/temp/assets/scripts/tab.js +7 -9
- package/dist/temp/assets/scripts/table/Table.d.ts +41 -0
- package/dist/temp/assets/scripts/table/Table.js +378 -0
- package/dist/temp/assets/scripts/table/const/classNames.d.ts +27 -0
- package/dist/temp/assets/scripts/table/const/classNames.js +27 -0
- package/dist/temp/assets/scripts/table/const/index.d.ts +2 -0
- package/dist/temp/assets/scripts/table/const/index.js +2 -0
- package/dist/temp/assets/scripts/table/const/types.d.ts +23 -0
- package/dist/temp/assets/scripts/table/const/types.js +1 -0
- package/dist/temp/assets/scripts/table/index.d.ts +3 -0
- package/dist/temp/assets/scripts/table/index.js +8 -0
- package/dist/temp/assets/scripts/tag/Tag.js +104 -112
- package/dist/temp/assets/scripts/tag/const/classNames.js +3 -3
- package/dist/temp/assets/scripts/tag/const/sizes.js +4 -4
- package/dist/temp/assets/scripts/tooltip/Tooltip.js +125 -150
- package/dist/temp/assets/scripts/tooltip/TooltipLayerManager.js +20 -23
- package/dist/temp/assets/scripts/tooltip/const/classNames.js +1 -1
- package/dist/temp/assets/scripts/tooltip/const/constants.d.ts +1 -1
- package/dist/temp/assets/scripts/tooltip/const/constants.js +14 -14
- package/dist/temp/assets/scripts/tooltip/const/icons.js +7 -7
- package/dist/temp/assets/scripts/tooltip/const/templates.js +42 -13
- package/dist/temp/assets/scripts/tooltip/utils.js +13 -15
- package/dist/temp/assets/scripts/utils/debounce.js +5 -9
- package/dist/temp/assets/scripts/utils/unifiedBox/domRenderer.js +96 -105
- package/dist/temp/assets/scripts/utils/unifiedBox/dropdownModel.js +96 -121
- package/dist/temp/assets/scripts/utils/unifiedBox/unifiedBoxController.js +170 -193
- package/dist/temp/assets/scripts/utils/unifiedBox/unifiedBoxManager.js +173 -250
- package/dist/temp/constant/color.js +1 -1
- package/dist/temp/index.d.ts +0 -27
- package/dist/temp/index.js +0 -27
- package/dist/temp/src/components/badge/Badge.js +3 -15
- package/dist/temp/src/components/badge/index.d.ts +0 -1
- package/dist/temp/src/components/badge/index.js +0 -1
- package/dist/temp/src/components/badge/utils.js +5 -7
- package/dist/{types/src/components/badge → temp/src/components/badge-group}/BadgeGroup.d.ts +1 -1
- package/dist/temp/src/components/badge-group/BadgeGroup.js +13 -0
- package/dist/temp/src/components/badge-group/index.d.ts +1 -0
- package/dist/temp/src/components/badge-group/index.js +1 -0
- package/dist/temp/src/components/bread-crumb/BreadCrumb.js +20 -0
- package/dist/temp/src/components/button/Button.js +21 -38
- package/dist/temp/src/components/button/ButtonCloseX.js +3 -15
- package/dist/temp/src/components/button/ButtonStepper.js +2 -3
- package/dist/temp/src/components/button/index.d.ts +0 -1
- package/dist/temp/src/components/button/index.js +0 -1
- package/dist/{types/src/components/button → temp/src/components/button-group}/ButtonGroup.d.ts +5 -4
- package/dist/temp/src/components/button-group/ButtonGroup.js +51 -0
- package/dist/temp/src/components/button-group/index.d.ts +1 -0
- package/dist/temp/src/components/button-group/index.js +1 -0
- package/dist/temp/src/components/carousel-arrow/CarouselArrow.js +9 -0
- package/dist/temp/src/components/carousel-arrow/index.d.ts +1 -0
- package/dist/temp/src/components/carousel-arrow/index.js +1 -0
- package/dist/temp/src/components/carousel-number-group/CarouselNumberGroup.js +10 -0
- package/dist/{types/src/components/carousel → temp/src/components/carousel-number-group}/index.d.ts +0 -1
- package/dist/temp/src/components/{carousel → carousel-number-group}/index.js +0 -1
- package/dist/temp/src/components/checkbox/Checkbox.js +2 -25
- package/dist/temp/src/components/checkbox/CheckboxInput.js +6 -29
- package/dist/temp/src/components/combo-box/ComboBox.js +165 -0
- package/dist/temp/src/components/data-grid/DataGrid.d.ts +28 -0
- package/dist/temp/src/components/data-grid/DataGrid.js +88 -0
- package/dist/temp/src/components/data-grid/DataGrid.types.d.ts +35 -0
- package/dist/temp/src/components/data-grid/DataGrid.types.js +1 -0
- package/dist/temp/src/components/data-grid/index.d.ts +2 -0
- package/dist/temp/src/components/data-grid/index.js +2 -0
- package/dist/temp/src/components/date-picker/CustomInput.js +5 -28
- package/dist/temp/src/components/date-picker/DatePicker.d.ts +11 -7
- package/dist/temp/src/components/date-picker/DatePicker.js +394 -221
- package/dist/temp/src/components/date-picker/index.d.ts +0 -2
- package/dist/temp/src/components/date-picker/index.js +0 -2
- package/dist/temp/src/components/date-picker/utils.js +1 -2
- package/dist/temp/src/components/divider/Divider.js +1 -15
- package/dist/temp/src/components/dot/Dot.js +2 -25
- package/dist/temp/src/components/dropdown/Dropdown.js +23 -39
- package/dist/temp/src/components/empty-state/EmptyState.js +3 -29
- package/dist/temp/src/components/featured-icon/FeaturedIcon.js +3 -26
- package/dist/temp/src/components/file-input/FileInput.d.ts +1 -1
- package/dist/temp/src/components/file-input/FileInput.js +33 -69
- package/dist/{types/src/components/tab → temp/src/components/horizontal-tab}/HorizontalTab.d.ts +1 -1
- package/dist/temp/src/components/horizontal-tab/HorizontalTab.js +24 -0
- package/dist/temp/src/components/horizontal-tab/index.d.ts +1 -0
- package/dist/temp/src/components/horizontal-tab/index.js +1 -0
- package/dist/temp/src/components/image-file-input/ImageFileInput.d.ts +1 -1
- package/dist/temp/src/components/image-file-input/ImageFileInput.js +45 -73
- package/dist/temp/src/components/image-file-input/components/ImagePreview.js +2 -14
- package/dist/temp/src/components/index.d.ts +17 -5
- package/dist/temp/src/components/index.js +17 -5
- package/dist/temp/src/components/{input → input-base}/InputBase.d.ts +1 -0
- package/dist/temp/src/components/input-base/InputBase.js +96 -0
- package/dist/temp/src/components/input-base/index.d.ts +1 -0
- package/dist/temp/src/components/input-base/index.js +1 -0
- package/dist/temp/src/components/modal/Modal.js +15 -41
- package/dist/temp/src/components/notification/FloatingNotification.js +11 -34
- package/dist/temp/src/components/notification/FullWidthNotification.js +12 -35
- package/dist/temp/src/components/notification/MessageNotification.js +8 -31
- package/dist/temp/src/components/notification/Notification.js +4 -27
- package/dist/{types/src/components/input → temp/src/components/number-input}/NumberInput.d.ts +1 -1
- package/dist/temp/src/components/number-input/NumberInput.js +68 -0
- package/dist/temp/src/components/number-input/index.d.ts +1 -0
- package/dist/temp/src/components/number-input/index.js +1 -0
- package/dist/temp/src/components/pagination/NavButton.js +19 -31
- package/dist/temp/src/components/pagination/Pagination.js +33 -60
- package/dist/temp/src/components/{input → password-input}/PasswordInput.d.ts +1 -1
- package/dist/temp/src/components/password-input/PasswordInput.js +28 -0
- package/dist/temp/src/components/password-input/index.d.ts +1 -0
- package/dist/temp/src/components/password-input/index.js +1 -0
- package/dist/temp/src/components/progress-bar/ProgressBar.js +10 -22
- package/dist/temp/src/components/progress-bar/components/SegmentBar.js +5 -6
- package/dist/temp/src/components/progress-bar/components/SegmentLabels.js +11 -24
- package/dist/temp/src/components/progress-bar/hooks/useProgressBar.js +36 -45
- package/dist/temp/src/components/progress-bar/utils.js +8 -8
- package/dist/temp/src/components/progress-circle/ProgressCircle.js +5 -17
- package/dist/temp/src/components/radio/Radio.js +2 -25
- package/dist/temp/src/components/radio/RadioInput.js +2 -25
- package/dist/{types/src/components/date-picker → temp/src/components/range-date-picker}/RangeDatePicker.d.ts +1 -1
- package/dist/temp/src/components/range-date-picker/RangeDatePicker.js +104 -0
- package/dist/temp/src/components/range-date-picker/index.d.ts +1 -0
- package/dist/temp/src/components/range-date-picker/index.js +1 -0
- package/dist/{types/src/components/date-picker → temp/src/components/range-date-picker-with-buttons}/RangeDatePickerWithButtons.d.ts +1 -1
- package/dist/temp/src/components/range-date-picker-with-buttons/RangeDatePickerWithButtons.js +43 -0
- package/dist/temp/src/components/range-date-picker-with-buttons/index.d.ts +1 -0
- package/dist/temp/src/components/range-date-picker-with-buttons/index.js +1 -0
- package/dist/temp/src/components/select/Select.js +3 -26
- package/dist/temp/src/components/select-box/SelectBox.js +130 -0
- package/dist/temp/src/components/select-dropdown/SelectDropdown.js +11 -34
- package/dist/temp/src/components/shared/hintText/HintText.js +2 -25
- package/dist/temp/src/components/shared/label/Label.js +2 -25
- package/dist/temp/src/components/slider/Slider.js +15 -16
- package/dist/temp/src/components/spinner/Spinner.js +4 -17
- package/dist/temp/src/components/switch/Switch.js +17 -30
- package/dist/temp/src/components/tab/TabButton.js +6 -29
- package/dist/temp/src/components/tab/index.d.ts +0 -2
- package/dist/temp/src/components/tab/index.js +0 -2
- package/dist/temp/src/components/table/Table.d.ts +46 -0
- package/dist/temp/src/components/table/Table.js +115 -0
- package/dist/temp/src/components/table/index.d.ts +1 -0
- package/dist/temp/src/components/table/index.js +1 -0
- package/dist/temp/src/components/table/types.d.ts +45 -0
- package/dist/temp/src/components/table/types.js +1 -0
- package/dist/temp/src/components/tag/Tag.js +39 -53
- package/dist/temp/src/components/textarea/Textarea.js +34 -0
- package/dist/temp/src/components/textarea/index.d.ts +1 -0
- package/dist/temp/src/components/textarea/index.js +1 -0
- package/dist/temp/src/components/toggle/Toggle.js +3 -26
- package/dist/temp/src/components/tooltip/Tooltip.js +49 -67
- package/dist/temp/src/components/{tab → vertical-tab}/VerticalTab.d.ts +1 -1
- package/dist/temp/src/components/vertical-tab/VerticalTab.js +20 -0
- package/dist/temp/src/components/vertical-tab/index.d.ts +1 -0
- package/dist/temp/src/components/vertical-tab/index.js +1 -0
- package/dist/temp/src/constant/breakpoint.js +3 -3
- package/dist/temp/src/constant/date-picker.js +1 -1
- package/dist/temp/src/constant/size.js +1 -1
- package/dist/temp/src/hooks/dropdown/useDropdown.js +37 -37
- package/dist/temp/src/hooks/dropdown/useDropdownKeyboard.js +26 -27
- package/dist/temp/src/hooks/dropdown/useDropdownPosition.js +7 -7
- package/dist/temp/src/hooks/dropdown/useOutsideClick.js +7 -7
- package/dist/temp/src/hooks/dropdown/useScrollLock.js +17 -17
- package/dist/temp/src/hooks/dropdown/useWindowResize.js +10 -11
- package/dist/temp/src/hooks/useCallbackRef.js +2 -2
- package/dist/temp/src/hooks/useMediaQuery.js +8 -9
- package/dist/temp/src/hooks/useMergeRefs.js +2 -2
- package/dist/temp/src/utils/date-picker.js +23 -25
- package/dist/temp/src/utils/dropdown/dropdownUtils.js +26 -27
- package/dist/temp/src/utils/dropdown/multiSelect.js +23 -25
- package/dist/types/assets/scripts/index.d.ts +2 -0
- package/dist/types/assets/scripts/table/Table.d.ts +41 -0
- package/dist/types/assets/scripts/table/const/classNames.d.ts +27 -0
- package/dist/types/assets/scripts/table/const/index.d.ts +2 -0
- package/dist/types/assets/scripts/table/const/types.d.ts +23 -0
- package/dist/types/assets/scripts/table/index.d.ts +3 -0
- package/dist/types/assets/scripts/tooltip/const/constants.d.ts +1 -1
- package/dist/types/index.d.ts +0 -27
- package/dist/types/src/components/badge/index.d.ts +0 -1
- package/dist/{temp/src/components/badge → types/src/components/badge-group}/BadgeGroup.d.ts +1 -1
- package/dist/types/src/components/badge-group/index.d.ts +1 -0
- package/dist/types/src/components/button/index.d.ts +0 -1
- package/dist/{temp/src/components/button → types/src/components/button-group}/ButtonGroup.d.ts +5 -4
- package/dist/types/src/components/button-group/index.d.ts +1 -0
- package/dist/types/src/components/carousel-arrow/index.d.ts +1 -0
- package/dist/{temp/src/components/carousel → types/src/components/carousel-number-group}/index.d.ts +0 -1
- package/dist/types/src/components/data-grid/DataGrid.d.ts +28 -0
- package/dist/types/src/components/data-grid/DataGrid.types.d.ts +35 -0
- package/dist/types/src/components/data-grid/index.d.ts +2 -0
- package/dist/types/src/components/date-picker/DatePicker.d.ts +11 -7
- package/dist/types/src/components/date-picker/index.d.ts +0 -2
- package/dist/types/src/components/file-input/FileInput.d.ts +1 -1
- package/dist/{temp/src/components/tab → types/src/components/horizontal-tab}/HorizontalTab.d.ts +1 -1
- package/dist/types/src/components/horizontal-tab/index.d.ts +1 -0
- package/dist/types/src/components/image-file-input/ImageFileInput.d.ts +1 -1
- package/dist/types/src/components/index.d.ts +17 -5
- package/dist/types/src/components/{input → input-base}/InputBase.d.ts +1 -0
- package/dist/types/src/components/input-base/index.d.ts +1 -0
- package/dist/{temp/src/components/input → types/src/components/number-input}/NumberInput.d.ts +1 -1
- package/dist/types/src/components/number-input/index.d.ts +1 -0
- package/dist/types/src/components/{input → password-input}/PasswordInput.d.ts +1 -1
- package/dist/types/src/components/password-input/index.d.ts +1 -0
- package/dist/{temp/src/components/date-picker → types/src/components/range-date-picker}/RangeDatePicker.d.ts +1 -1
- package/dist/types/src/components/range-date-picker/index.d.ts +1 -0
- package/dist/{temp/src/components/date-picker → types/src/components/range-date-picker-with-buttons}/RangeDatePickerWithButtons.d.ts +1 -1
- package/dist/types/src/components/range-date-picker-with-buttons/index.d.ts +1 -0
- package/dist/types/src/components/tab/index.d.ts +0 -2
- package/dist/types/src/components/table/Table.d.ts +46 -0
- package/dist/types/src/components/table/index.d.ts +1 -0
- package/dist/types/src/components/table/types.d.ts +45 -0
- package/dist/types/src/components/textarea/index.d.ts +1 -0
- package/dist/types/src/components/{tab → vertical-tab}/VerticalTab.d.ts +1 -1
- package/dist/types/src/components/vertical-tab/index.d.ts +1 -0
- package/dist/ui-admin/assets/styles/style.css +625 -165
- package/package.json +2 -1
- package/dist/cjs/src/components/badge/BadgeGroup.js +0 -62
- package/dist/cjs/src/components/breadcrumb/BreadCrumb.js +0 -66
- package/dist/cjs/src/components/button/ButtonGroup.js +0 -116
- package/dist/cjs/src/components/carousel/CarouselArrow.js +0 -41
- package/dist/cjs/src/components/carousel/CarouselNumberGroup.js +0 -45
- package/dist/cjs/src/components/combobox/ComboBox.js +0 -349
- package/dist/cjs/src/components/date-picker/RangeDatePicker.js +0 -154
- package/dist/cjs/src/components/date-picker/RangeDatePickerWithButtons.js +0 -99
- package/dist/cjs/src/components/input/InputBase.js +0 -229
- package/dist/cjs/src/components/input/NumberInput.js +0 -132
- package/dist/cjs/src/components/input/PasswordInput.js +0 -72
- package/dist/cjs/src/components/input/Textarea.js +0 -107
- package/dist/cjs/src/components/input/index.js +0 -49
- package/dist/cjs/src/components/selectbox/SelectBox.js +0 -318
- package/dist/cjs/src/components/tab/HorizontalTab.js +0 -68
- package/dist/cjs/src/components/tab/VerticalTab.js +0 -60
- package/dist/esm/src/components/badge/BadgeGroup.js +0 -55
- package/dist/esm/src/components/breadcrumb/BreadCrumb.js +0 -59
- package/dist/esm/src/components/button/ButtonGroup.js +0 -108
- package/dist/esm/src/components/carousel/CarouselArrow.js +0 -33
- package/dist/esm/src/components/carousel/CarouselNumberGroup.js +0 -37
- package/dist/esm/src/components/carousel/index.js +0 -2
- package/dist/esm/src/components/combobox/ComboBox.js +0 -343
- package/dist/esm/src/components/date-picker/RangeDatePicker.js +0 -148
- package/dist/esm/src/components/date-picker/RangeDatePickerWithButtons.js +0 -93
- package/dist/esm/src/components/input/InputBase.js +0 -223
- package/dist/esm/src/components/input/PasswordInput.js +0 -65
- package/dist/esm/src/components/input/Textarea.js +0 -100
- package/dist/esm/src/components/input/index.js +0 -4
- package/dist/esm/src/components/selectbox/SelectBox.js +0 -312
- package/dist/esm/src/components/tab/HorizontalTab.js +0 -61
- package/dist/esm/src/components/tab/VerticalTab.js +0 -52
- package/dist/temp/src/components/badge/BadgeGroup.js +0 -36
- package/dist/temp/src/components/breadcrumb/BreadCrumb.js +0 -33
- package/dist/temp/src/components/button/ButtonGroup.js +0 -72
- package/dist/temp/src/components/carousel/CarouselArrow.js +0 -24
- package/dist/temp/src/components/carousel/CarouselNumberGroup.js +0 -24
- package/dist/temp/src/components/combobox/ComboBox.js +0 -199
- package/dist/temp/src/components/date-picker/RangeDatePicker.js +0 -117
- package/dist/temp/src/components/date-picker/RangeDatePickerWithButtons.js +0 -55
- package/dist/temp/src/components/input/InputBase.js +0 -121
- package/dist/temp/src/components/input/NumberInput.js +0 -93
- package/dist/temp/src/components/input/PasswordInput.js +0 -51
- package/dist/temp/src/components/input/Textarea.js +0 -60
- package/dist/temp/src/components/input/index.d.ts +0 -4
- package/dist/temp/src/components/input/index.js +0 -4
- package/dist/temp/src/components/selectbox/SelectBox.js +0 -163
- package/dist/temp/src/components/tab/HorizontalTab.js +0 -37
- package/dist/temp/src/components/tab/VerticalTab.js +0 -32
- package/dist/types/src/components/input/index.d.ts +0 -4
- /package/dist/cjs/src/components/{breadcrumb → bread-crumb}/index.js +0 -0
- /package/dist/cjs/src/components/{combobox → combo-box}/index.js +0 -0
- /package/dist/cjs/src/components/{selectbox → select-box}/index.js +0 -0
- /package/dist/esm/src/components/{breadcrumb → bread-crumb}/index.js +0 -0
- /package/dist/esm/src/components/{combobox → combo-box}/index.js +0 -0
- /package/dist/esm/src/components/{selectbox → select-box}/index.js +0 -0
- /package/dist/temp/src/components/{breadcrumb → bread-crumb}/BreadCrumb.d.ts +0 -0
- /package/dist/temp/src/components/{breadcrumb → bread-crumb}/index.d.ts +0 -0
- /package/dist/temp/src/components/{breadcrumb → bread-crumb}/index.js +0 -0
- /package/dist/temp/src/components/{carousel → carousel-arrow}/CarouselArrow.d.ts +0 -0
- /package/dist/temp/src/components/{carousel → carousel-number-group}/CarouselNumberGroup.d.ts +0 -0
- /package/dist/temp/src/components/{combobox → combo-box}/ComboBox.d.ts +0 -0
- /package/dist/temp/src/components/{combobox → combo-box}/index.d.ts +0 -0
- /package/dist/temp/src/components/{combobox → combo-box}/index.js +0 -0
- /package/dist/temp/src/components/{selectbox → select-box}/SelectBox.d.ts +0 -0
- /package/dist/temp/src/components/{selectbox → select-box}/index.d.ts +0 -0
- /package/dist/temp/src/components/{selectbox → select-box}/index.js +0 -0
- /package/dist/temp/src/components/{input → textarea}/Textarea.d.ts +0 -0
- /package/dist/types/src/components/{breadcrumb → bread-crumb}/BreadCrumb.d.ts +0 -0
- /package/dist/types/src/components/{breadcrumb → bread-crumb}/index.d.ts +0 -0
- /package/dist/types/src/components/{carousel → carousel-arrow}/CarouselArrow.d.ts +0 -0
- /package/dist/types/src/components/{carousel → carousel-number-group}/CarouselNumberGroup.d.ts +0 -0
- /package/dist/types/src/components/{combobox → combo-box}/ComboBox.d.ts +0 -0
- /package/dist/types/src/components/{combobox → combo-box}/index.d.ts +0 -0
- /package/dist/types/src/components/{selectbox → select-box}/SelectBox.d.ts +0 -0
- /package/dist/types/src/components/{selectbox → select-box}/index.d.ts +0 -0
- /package/dist/types/src/components/{input → textarea}/Textarea.d.ts +0 -0
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
import { IMAGE_FILE_INPUT_CLASS_NAMES, getFileInputSizeClassName, getHintTextClassName, getImageFileInputSizeClassName, getLabelClassName, } from './const/classNames';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
export class ImageFileInputView {
|
|
3
|
+
constructor(options, model) {
|
|
4
4
|
this.renderedFiles = []; // 이미 렌더링된 파일들 추적
|
|
5
5
|
this.previewUrls = new Map(); // 파일 URL 추적
|
|
6
6
|
this.options = options;
|
|
7
7
|
this.model = model;
|
|
8
8
|
this.element = this.createElement();
|
|
9
|
-
this.previewsContainer = this.element.querySelector(
|
|
9
|
+
this.previewsContainer = this.element.querySelector(`.${IMAGE_FILE_INPUT_CLASS_NAMES.previews}`);
|
|
10
10
|
this.fileInputElement = this.element.querySelector('input[type="file"]');
|
|
11
11
|
this.buttonElement = this.element.querySelector('button.ncua-btn');
|
|
12
12
|
}
|
|
13
13
|
/**
|
|
14
14
|
* 메인 DOM 요소 생성
|
|
15
15
|
*/
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
createElement() {
|
|
17
|
+
const mainContainer = document.createElement('div');
|
|
18
|
+
const baseClasses = `${IMAGE_FILE_INPUT_CLASS_NAMES.imageFileInput} ${getImageFileInputSizeClassName(this.options.size)}`;
|
|
19
|
+
const customClasses = this.options.className ? ` ${this.options.className}` : '';
|
|
20
20
|
mainContainer.className = baseClasses + customClasses;
|
|
21
21
|
// Image previews container
|
|
22
|
-
|
|
22
|
+
const previewsContainer = document.createElement('div');
|
|
23
23
|
previewsContainer.className = IMAGE_FILE_INPUT_CLASS_NAMES.previews;
|
|
24
24
|
mainContainer.appendChild(previewsContainer);
|
|
25
25
|
// File input container
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
const fileInputContainer = document.createElement('div');
|
|
27
|
+
const fileInputClasses = `${IMAGE_FILE_INPUT_CLASS_NAMES.fileInput} ${getFileInputSizeClassName(this.options.size)}`;
|
|
28
28
|
fileInputContainer.className = fileInputClasses;
|
|
29
29
|
// Hidden file input 생성
|
|
30
30
|
fileInputContainer.appendChild(this.createFileInput());
|
|
@@ -36,12 +36,12 @@ var ImageFileInputView = /** @class */ (function () {
|
|
|
36
36
|
}
|
|
37
37
|
mainContainer.appendChild(fileInputContainer);
|
|
38
38
|
return mainContainer;
|
|
39
|
-
}
|
|
39
|
+
}
|
|
40
40
|
/**
|
|
41
41
|
* Hidden file input 생성
|
|
42
42
|
*/
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
createFileInput() {
|
|
44
|
+
const input = document.createElement('input');
|
|
45
45
|
input.type = 'file';
|
|
46
46
|
input.hidden = true;
|
|
47
47
|
input.tabIndex = -1;
|
|
@@ -57,12 +57,12 @@ var ImageFileInputView = /** @class */ (function () {
|
|
|
57
57
|
input.name = this.options.fileInputName;
|
|
58
58
|
}
|
|
59
59
|
return input;
|
|
60
|
-
}
|
|
60
|
+
}
|
|
61
61
|
/**
|
|
62
62
|
* Input container 생성
|
|
63
63
|
*/
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
createInputContainer() {
|
|
65
|
+
const container = document.createElement('div');
|
|
66
66
|
container.className = IMAGE_FILE_INPUT_CLASS_NAMES.inputContainer;
|
|
67
67
|
// Label
|
|
68
68
|
if (this.options.label) {
|
|
@@ -75,14 +75,14 @@ var ImageFileInputView = /** @class */ (function () {
|
|
|
75
75
|
container.appendChild(this.createHintText());
|
|
76
76
|
}
|
|
77
77
|
return container;
|
|
78
|
-
}
|
|
78
|
+
}
|
|
79
79
|
/**
|
|
80
80
|
* Label container 생성
|
|
81
81
|
*/
|
|
82
|
-
|
|
83
|
-
|
|
82
|
+
createLabelContainer() {
|
|
83
|
+
const container = document.createElement('div');
|
|
84
84
|
container.className = IMAGE_FILE_INPUT_CLASS_NAMES.label;
|
|
85
|
-
|
|
85
|
+
const label = document.createElement('label');
|
|
86
86
|
label.className = getLabelClassName(this.options.isRequired);
|
|
87
87
|
label.textContent = this.options.label;
|
|
88
88
|
container.appendChild(label);
|
|
@@ -90,30 +90,30 @@ var ImageFileInputView = /** @class */ (function () {
|
|
|
90
90
|
container.appendChild(this.createHelpIcon());
|
|
91
91
|
}
|
|
92
92
|
return container;
|
|
93
|
-
}
|
|
93
|
+
}
|
|
94
94
|
/**
|
|
95
95
|
* Help icon 생성
|
|
96
96
|
*/
|
|
97
|
-
|
|
98
|
-
|
|
97
|
+
createHelpIcon() {
|
|
98
|
+
const iconContainer = document.createElement('span');
|
|
99
99
|
iconContainer.className = IMAGE_FILE_INPUT_CLASS_NAMES.helpIcon;
|
|
100
|
-
|
|
100
|
+
const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
|
101
101
|
svg.setAttribute('width', '16');
|
|
102
102
|
svg.setAttribute('height', '16');
|
|
103
103
|
svg.setAttribute('viewBox', '0 0 24 24');
|
|
104
104
|
svg.setAttribute('fill', 'none');
|
|
105
105
|
svg.setAttribute('stroke', 'currentColor');
|
|
106
|
-
|
|
106
|
+
const circle = document.createElementNS('http://www.w3.org/2000/svg', 'circle');
|
|
107
107
|
circle.setAttribute('cx', '12');
|
|
108
108
|
circle.setAttribute('cy', '12');
|
|
109
109
|
circle.setAttribute('r', '10');
|
|
110
110
|
circle.setAttribute('stroke-width', '2');
|
|
111
|
-
|
|
111
|
+
const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
|
|
112
112
|
path.setAttribute('d', 'M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3');
|
|
113
113
|
path.setAttribute('stroke-width', '2');
|
|
114
114
|
path.setAttribute('stroke-linecap', 'round');
|
|
115
115
|
path.setAttribute('stroke-linejoin', 'round');
|
|
116
|
-
|
|
116
|
+
const line = document.createElementNS('http://www.w3.org/2000/svg', 'line');
|
|
117
117
|
line.setAttribute('x1', '12');
|
|
118
118
|
line.setAttribute('y1', '17');
|
|
119
119
|
line.setAttribute('x2', '12.01');
|
|
@@ -125,28 +125,28 @@ var ImageFileInputView = /** @class */ (function () {
|
|
|
125
125
|
svg.appendChild(line);
|
|
126
126
|
iconContainer.appendChild(svg);
|
|
127
127
|
return iconContainer;
|
|
128
|
-
}
|
|
128
|
+
}
|
|
129
129
|
/**
|
|
130
130
|
* Button 생성 (파일 찾기)
|
|
131
131
|
*/
|
|
132
|
-
|
|
133
|
-
|
|
132
|
+
createButton() {
|
|
133
|
+
const button = document.createElement('button');
|
|
134
134
|
button.type = 'button';
|
|
135
|
-
button.className =
|
|
135
|
+
button.className = `ncua-btn ncua-btn--xs ncua-btn--secondary-gray`;
|
|
136
136
|
button.disabled = this.options.disabled;
|
|
137
|
-
|
|
137
|
+
const iconSvg = this.createShareIcon();
|
|
138
138
|
button.appendChild(iconSvg);
|
|
139
|
-
|
|
139
|
+
const label = document.createElement('span');
|
|
140
140
|
label.className = 'ncua-btn__label';
|
|
141
141
|
label.textContent = this.options.buttonLabel;
|
|
142
142
|
button.appendChild(label);
|
|
143
143
|
return button;
|
|
144
|
-
}
|
|
144
|
+
}
|
|
145
145
|
/**
|
|
146
146
|
* Share icon (업로드 아이콘) 생성
|
|
147
147
|
*/
|
|
148
|
-
|
|
149
|
-
|
|
148
|
+
createShareIcon() {
|
|
149
|
+
const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
|
150
150
|
svg.setAttribute('xmlns', 'http://www.w3.org/2000/svg');
|
|
151
151
|
svg.setAttribute('width', '14');
|
|
152
152
|
svg.setAttribute('height', '14');
|
|
@@ -154,7 +154,7 @@ var ImageFileInputView = /** @class */ (function () {
|
|
|
154
154
|
svg.setAttribute('fill', 'none');
|
|
155
155
|
svg.setAttribute('stroke', 'none');
|
|
156
156
|
svg.classList.add('ncua-btn__icon');
|
|
157
|
-
|
|
157
|
+
const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
|
|
158
158
|
path.setAttribute('stroke', 'currentColor');
|
|
159
159
|
path.setAttribute('stroke-linecap', 'round');
|
|
160
160
|
path.setAttribute('stroke-linejoin', 'round');
|
|
@@ -162,12 +162,12 @@ var ImageFileInputView = /** @class */ (function () {
|
|
|
162
162
|
path.setAttribute('d', 'M21 12v4.2c0 1.68 0 2.52-.327 3.162a3 3 0 0 1-1.311 1.311C18.72 21 17.88 21 16.2 21H7.8c-1.68 0-2.52 0-3.162-.327a3 3 0 0 1-1.311-1.311C3 18.72 3 17.88 3 16.2V12m13-5-4-4m0 0L8 7m4-4v12');
|
|
163
163
|
svg.appendChild(path);
|
|
164
164
|
return svg;
|
|
165
|
-
}
|
|
165
|
+
}
|
|
166
166
|
/**
|
|
167
167
|
* Trash icon (삭제 아이콘) 생성
|
|
168
168
|
*/
|
|
169
|
-
|
|
170
|
-
|
|
169
|
+
createTrashIcon() {
|
|
170
|
+
const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
|
171
171
|
svg.setAttribute('xmlns', 'http://www.w3.org/2000/svg');
|
|
172
172
|
svg.setAttribute('width', '20');
|
|
173
173
|
svg.setAttribute('height', '20');
|
|
@@ -175,7 +175,7 @@ var ImageFileInputView = /** @class */ (function () {
|
|
|
175
175
|
svg.setAttribute('fill', 'none');
|
|
176
176
|
svg.setAttribute('stroke', 'currentColor');
|
|
177
177
|
svg.classList.add('ncua-btn__icon');
|
|
178
|
-
|
|
178
|
+
const path1 = document.createElementNS('http://www.w3.org/2000/svg', 'path');
|
|
179
179
|
path1.setAttribute('stroke', 'currentColor');
|
|
180
180
|
path1.setAttribute('stroke-linecap', 'round');
|
|
181
181
|
path1.setAttribute('stroke-linejoin', 'round');
|
|
@@ -183,166 +183,168 @@ var ImageFileInputView = /** @class */ (function () {
|
|
|
183
183
|
path1.setAttribute('d', 'M16 6v-.8c0-1.12 0-1.68-.218-2.108a2 2 0 0 0-.874-.874C14.48 2 13.92 2 12.8 2h-1.6c-1.12 0-1.68 0-2.108.218a2 2 0 0 0-.874.874C8 3.52 8 4.08 8 5.2V6m2 5.5v5m4-5v5M3 6h18m-2 0v11.2c0 1.68 0 2.52-.327 3.162a3 3 0 0 1-1.311 1.311C16.72 22 15.88 22 14.2 22H9.8c-1.68 0-2.52 0-3.162-.327a3 3 0 0 1-1.311-1.311C5 19.72 5 18.88 5 17.2V6');
|
|
184
184
|
svg.appendChild(path1);
|
|
185
185
|
return svg;
|
|
186
|
-
}
|
|
186
|
+
}
|
|
187
187
|
/**
|
|
188
188
|
* Hint text 생성
|
|
189
189
|
*/
|
|
190
|
-
|
|
191
|
-
|
|
190
|
+
createHintText() {
|
|
191
|
+
const hintText = document.createElement('div');
|
|
192
192
|
hintText.className = getHintTextClassName(this.options.destructive);
|
|
193
193
|
hintText.textContent = this.options.hintText;
|
|
194
194
|
return hintText;
|
|
195
|
-
}
|
|
195
|
+
}
|
|
196
196
|
/**
|
|
197
197
|
* Hint list 생성
|
|
198
198
|
* Note: 힌트 리스트는 컴포넌트 size와 관계없이 항상 xs 사이즈로 고정됨
|
|
199
199
|
*/
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
var ul = document.createElement('ul');
|
|
200
|
+
createHintList() {
|
|
201
|
+
const ul = document.createElement('ul');
|
|
203
202
|
ul.className = IMAGE_FILE_INPUT_CLASS_NAMES.hintList;
|
|
204
|
-
|
|
205
|
-
|
|
203
|
+
this.options.hintItems?.forEach((hint) => {
|
|
204
|
+
const li = document.createElement('li');
|
|
206
205
|
li.className = IMAGE_FILE_INPUT_CLASS_NAMES.hintItem;
|
|
207
206
|
li.textContent = hint;
|
|
208
207
|
ul.appendChild(li);
|
|
209
208
|
});
|
|
210
209
|
return ul;
|
|
211
|
-
}
|
|
210
|
+
}
|
|
212
211
|
/**
|
|
213
212
|
* 이미지 프리뷰 렌더링
|
|
214
213
|
*/
|
|
215
|
-
|
|
216
|
-
var _this = this;
|
|
214
|
+
renderImagePreviews(files, onRemove, onBrowseClick) {
|
|
217
215
|
// 기존 프리뷰 정리
|
|
218
216
|
this.cleanupPreviews();
|
|
219
217
|
// 새로운 프리뷰 렌더링
|
|
220
|
-
files.forEach(
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
218
|
+
files.forEach((file, index) => {
|
|
219
|
+
const previewContainer = this.createImagePreview(file, index, onRemove);
|
|
220
|
+
this.previewsContainer.appendChild(previewContainer);
|
|
221
|
+
this.renderedFiles.push(file);
|
|
224
222
|
});
|
|
225
223
|
// 빈 슬롯 표시 여부 확인
|
|
226
|
-
|
|
224
|
+
const showEmptySlot = this.options.maxFileCount ? files.length < this.options.maxFileCount : files.length === 0;
|
|
227
225
|
if (showEmptySlot) {
|
|
228
|
-
|
|
226
|
+
const emptySlot = this.createEmptySlot(onBrowseClick);
|
|
229
227
|
this.previewsContainer.appendChild(emptySlot);
|
|
230
228
|
}
|
|
231
|
-
}
|
|
229
|
+
}
|
|
232
230
|
/**
|
|
233
231
|
* 이미지 프리뷰 생성
|
|
234
232
|
*/
|
|
235
|
-
|
|
236
|
-
|
|
233
|
+
createImagePreview(file, index, onRemove) {
|
|
234
|
+
const container = document.createElement('div');
|
|
237
235
|
container.className = IMAGE_FILE_INPUT_CLASS_NAMES.previewContainer;
|
|
238
236
|
// 이미지 요소 생성
|
|
239
|
-
|
|
237
|
+
const img = document.createElement('img');
|
|
240
238
|
img.className = IMAGE_FILE_INPUT_CLASS_NAMES.previewImage;
|
|
241
239
|
img.alt = file.name;
|
|
242
240
|
// 이미지 URL 생성
|
|
243
|
-
|
|
241
|
+
const isInitialFile = this.model.isInitialFile(file);
|
|
244
242
|
if (isInitialFile) {
|
|
245
243
|
// 초기 파일: fileImageUrl 사용
|
|
246
|
-
|
|
244
|
+
const imageUrl = this.model.getInitialFileImageUrl(file);
|
|
247
245
|
if (imageUrl) {
|
|
248
246
|
img.src = imageUrl;
|
|
249
247
|
}
|
|
250
248
|
}
|
|
251
249
|
else {
|
|
252
250
|
// 새로 추가된 파일: createObjectURL 사용
|
|
253
|
-
|
|
251
|
+
const url = URL.createObjectURL(file);
|
|
254
252
|
img.src = url;
|
|
255
253
|
this.previewUrls.set(file, url);
|
|
256
254
|
}
|
|
257
255
|
container.appendChild(img);
|
|
258
256
|
// 삭제 버튼 생성
|
|
259
|
-
|
|
257
|
+
const removeButton = document.createElement('button');
|
|
260
258
|
removeButton.type = 'button';
|
|
261
|
-
removeButton.className =
|
|
259
|
+
removeButton.className = `ncua-btn ncua-btn--sm ncua-btn--text ${IMAGE_FILE_INPUT_CLASS_NAMES.previewRemoveButton}`;
|
|
262
260
|
removeButton.setAttribute('aria-label', 'Remove image');
|
|
263
|
-
|
|
261
|
+
const trashIcon = this.createTrashIcon();
|
|
264
262
|
removeButton.appendChild(trashIcon);
|
|
265
|
-
removeButton.addEventListener('click',
|
|
263
|
+
removeButton.addEventListener('click', () => onRemove(index));
|
|
266
264
|
container.appendChild(removeButton);
|
|
267
265
|
return container;
|
|
268
|
-
}
|
|
266
|
+
}
|
|
269
267
|
/**
|
|
270
268
|
* 빈 슬롯 생성 (파일 찾기 버튼)
|
|
271
269
|
*/
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
var wrapper = document.createElement('div');
|
|
270
|
+
createEmptySlot(onBrowseClick) {
|
|
271
|
+
const wrapper = document.createElement('div');
|
|
275
272
|
wrapper.className = 'ncua-image-file-input__empty-slot-wrapper';
|
|
276
|
-
|
|
273
|
+
const button = document.createElement('button');
|
|
277
274
|
button.type = 'button';
|
|
278
|
-
button.className =
|
|
275
|
+
button.className = `ncua-btn ncua-btn--${this.options.size} ncua-btn--secondary-gray ${IMAGE_FILE_INPUT_CLASS_NAMES.previewContainer}`;
|
|
279
276
|
button.disabled = this.options.disabled;
|
|
280
277
|
button.setAttribute('aria-label', this.options.imagePreviewTooltipLabel);
|
|
281
278
|
button.addEventListener('click', onBrowseClick);
|
|
282
279
|
wrapper.addEventListener('click', onBrowseClick);
|
|
283
280
|
wrapper.appendChild(button);
|
|
284
281
|
// Tooltip 생성 및 추가
|
|
285
|
-
|
|
282
|
+
const tooltip = this.createTooltip();
|
|
286
283
|
wrapper.appendChild(tooltip);
|
|
287
284
|
// Hover 이벤트로 tooltip 표시/숨김
|
|
288
|
-
wrapper.addEventListener('mouseenter',
|
|
289
|
-
if (!
|
|
285
|
+
wrapper.addEventListener('mouseenter', () => {
|
|
286
|
+
if (!this.options.disabled) {
|
|
290
287
|
tooltip.style.display = 'block';
|
|
291
288
|
}
|
|
292
289
|
});
|
|
293
|
-
wrapper.addEventListener('mouseleave',
|
|
290
|
+
wrapper.addEventListener('mouseleave', () => {
|
|
294
291
|
tooltip.style.display = 'none';
|
|
295
292
|
});
|
|
296
293
|
return wrapper;
|
|
297
|
-
}
|
|
294
|
+
}
|
|
298
295
|
/**
|
|
299
296
|
* Tooltip 생성
|
|
300
297
|
*/
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
298
|
+
createTooltip() {
|
|
299
|
+
const iconSize = this.options.size === 'xs' ? '48' : '80';
|
|
300
|
+
const tooltipHTML = `
|
|
301
|
+
<svg width="${iconSize}" height="${iconSize}" viewBox="0 0 24 24" fill="none" stroke="currentColor" style="opacity: 0; cursor: pointer;">
|
|
302
|
+
<circle cx="12" cy="12" r="10" stroke-width="2"></circle>
|
|
303
|
+
</svg>
|
|
304
|
+
<span class="ncua-tooltip__bg ncua-tooltip__bg--black ncua-tooltip__bg--bottom ncua-tooltip__bg--visible">
|
|
305
|
+
<span class="ncua-tooltip__content">${this.options.imagePreviewTooltipLabel}</span>
|
|
306
|
+
</span>
|
|
307
|
+
`;
|
|
308
|
+
const tooltip = document.createElement('span');
|
|
305
309
|
tooltip.className = 'ncua-tooltip ncua-tooltip--sm ncua-tooltip--short';
|
|
306
310
|
tooltip.style.display = 'none';
|
|
307
311
|
tooltip.innerHTML = tooltipHTML;
|
|
308
312
|
return tooltip;
|
|
309
|
-
}
|
|
313
|
+
}
|
|
310
314
|
/**
|
|
311
315
|
* 기존 프리뷰 정리
|
|
312
316
|
*/
|
|
313
|
-
|
|
317
|
+
cleanupPreviews() {
|
|
314
318
|
// Blob URL 정리
|
|
315
|
-
this.previewUrls.forEach(
|
|
319
|
+
this.previewUrls.forEach((url) => {
|
|
316
320
|
URL.revokeObjectURL(url);
|
|
317
321
|
});
|
|
318
322
|
this.previewUrls.clear();
|
|
319
323
|
// DOM 정리
|
|
320
324
|
this.previewsContainer.innerHTML = '';
|
|
321
325
|
this.renderedFiles = [];
|
|
322
|
-
}
|
|
323
|
-
|
|
326
|
+
}
|
|
327
|
+
setButtonDisabled(disabled) {
|
|
324
328
|
this.buttonElement.disabled = disabled;
|
|
325
329
|
// 빈 슬롯 wrapper 내부의 버튼도 disabled 설정
|
|
326
|
-
|
|
330
|
+
const emptySlotWrapper = this.previewsContainer.querySelector('.ncua-image-file-input__empty-slot-wrapper');
|
|
327
331
|
if (emptySlotWrapper) {
|
|
328
|
-
|
|
332
|
+
const emptySlotButton = emptySlotWrapper.querySelector(`.${IMAGE_FILE_INPUT_CLASS_NAMES.previewContainer}.ncua-btn`);
|
|
329
333
|
if (emptySlotButton) {
|
|
330
334
|
emptySlotButton.disabled = disabled;
|
|
331
335
|
}
|
|
332
336
|
}
|
|
333
|
-
}
|
|
334
|
-
|
|
337
|
+
}
|
|
338
|
+
getElement() {
|
|
335
339
|
return this.element;
|
|
336
|
-
}
|
|
337
|
-
|
|
340
|
+
}
|
|
341
|
+
getFileInputElement() {
|
|
338
342
|
return this.fileInputElement;
|
|
339
|
-
}
|
|
340
|
-
|
|
343
|
+
}
|
|
344
|
+
getButtonElement() {
|
|
341
345
|
return this.buttonElement;
|
|
342
|
-
}
|
|
343
|
-
|
|
346
|
+
}
|
|
347
|
+
destroy() {
|
|
344
348
|
this.cleanupPreviews();
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
}());
|
|
348
|
-
export { ImageFileInputView };
|
|
349
|
+
}
|
|
350
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// ImageFileInput 관련 CSS 클래스명 상수
|
|
2
|
-
export
|
|
2
|
+
export const IMAGE_FILE_INPUT_CLASS_NAMES = {
|
|
3
3
|
imageFileInput: 'ncua-image-file-input',
|
|
4
4
|
previews: 'ncua-image-file-input__previews',
|
|
5
5
|
previewContainer: 'ncua-image-file-input__preview-container',
|
|
@@ -13,12 +13,8 @@ export var IMAGE_FILE_INPUT_CLASS_NAMES = {
|
|
|
13
13
|
hintList: 'ncua-file-input__hint-list',
|
|
14
14
|
hintItem: 'ncua-file-input__hint-item',
|
|
15
15
|
};
|
|
16
|
-
export
|
|
17
|
-
export
|
|
18
|
-
export
|
|
19
|
-
export
|
|
20
|
-
|
|
21
|
-
};
|
|
22
|
-
export var getHintTextClassName = function (destructive) {
|
|
23
|
-
return destructive ? 'ncua-input__hint-text ncua-input__hint-text--destructive' : 'ncua-input__hint-text';
|
|
24
|
-
};
|
|
16
|
+
export const getImageFileInputSizeClassName = (size) => `ncua-image-file-input--${size}`;
|
|
17
|
+
export const getFileInputSizeClassName = (size) => `ncua-file-input--${size}`;
|
|
18
|
+
export const getButtonSizeClassName = (size) => `ncua-button--${size}`;
|
|
19
|
+
export const getLabelClassName = (isRequired) => isRequired ? 'ncua-label ncua-label--required' : 'ncua-label';
|
|
20
|
+
export const getHintTextClassName = (destructive) => destructive ? 'ncua-input__hint-text ncua-input__hint-text--destructive' : 'ncua-input__hint-text';
|
|
@@ -9,6 +9,7 @@ import { ProgressBar } from './progress-bar';
|
|
|
9
9
|
import { SelectBox } from './selectBox';
|
|
10
10
|
import { Slider } from './slider';
|
|
11
11
|
import { Tab } from './tab';
|
|
12
|
+
import { Table } from './table';
|
|
12
13
|
import { Tag } from './tag';
|
|
13
14
|
import { Tooltip } from './tooltip';
|
|
14
15
|
declare global {
|
|
@@ -16,6 +17,7 @@ declare global {
|
|
|
16
17
|
ncua: {
|
|
17
18
|
Slider?: typeof Slider;
|
|
18
19
|
Tab?: typeof Tab;
|
|
20
|
+
Table?: typeof Table;
|
|
19
21
|
Tag?: typeof Tag;
|
|
20
22
|
DatePicker?: typeof DatePicker;
|
|
21
23
|
FeaturedIcon?: typeof FeaturedIcon;
|
|
@@ -9,11 +9,13 @@ import { ProgressBar } from './progress-bar';
|
|
|
9
9
|
import { SelectBox } from './selectBox';
|
|
10
10
|
import { Slider } from './slider';
|
|
11
11
|
import { Tab } from './tab';
|
|
12
|
+
import { Table } from './table';
|
|
12
13
|
import { Tag } from './tag';
|
|
13
14
|
import { Tooltip } from './tooltip';
|
|
14
15
|
window.ncua = {
|
|
15
16
|
Slider: Slider,
|
|
16
17
|
Tab: Tab,
|
|
18
|
+
Table: Table,
|
|
17
19
|
Tag: Tag,
|
|
18
20
|
DatePicker: DatePicker,
|
|
19
21
|
SelectBox: SelectBox,
|
|
@@ -1,37 +1,31 @@
|
|
|
1
|
-
var __assign = (this && this.__assign) || function () {
|
|
2
|
-
__assign = Object.assign || function(t) {
|
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
-
s = arguments[i];
|
|
5
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
-
t[p] = s[p];
|
|
7
|
-
}
|
|
8
|
-
return t;
|
|
9
|
-
};
|
|
10
|
-
return __assign.apply(this, arguments);
|
|
11
|
-
};
|
|
12
1
|
import { MODAL_CLASS_NAMES, getModalSizeClassNames } from './const/classNames';
|
|
13
2
|
import { ModalHeader } from './ModalHeader';
|
|
14
3
|
import { ModalContent } from './ModalContent';
|
|
15
4
|
import { ModalActions } from './ModalActions';
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
if (options === void 0) { options = {}; }
|
|
19
|
-
var _this = this;
|
|
5
|
+
class Modal {
|
|
6
|
+
constructor(options = {}) {
|
|
20
7
|
this.isOpen = false;
|
|
21
|
-
this.handleBackdropClick =
|
|
22
|
-
if (
|
|
23
|
-
|
|
8
|
+
this.handleBackdropClick = (e) => {
|
|
9
|
+
if (this.options.closeOnBackdropClick && e.target === e.currentTarget) {
|
|
10
|
+
this.close();
|
|
24
11
|
}
|
|
25
12
|
};
|
|
26
|
-
this.handleKeyDown =
|
|
27
|
-
if (
|
|
28
|
-
|
|
13
|
+
this.handleKeyDown = (e) => {
|
|
14
|
+
if (this.isOpen && this.options.closeOnEsc && e.key === 'Escape') {
|
|
15
|
+
this.close();
|
|
29
16
|
}
|
|
30
17
|
};
|
|
31
|
-
this.options =
|
|
18
|
+
this.options = {
|
|
19
|
+
size: 'md',
|
|
20
|
+
closeOnBackdropClick: false,
|
|
21
|
+
closeOnEsc: true,
|
|
22
|
+
className: '',
|
|
23
|
+
onClose: () => { },
|
|
24
|
+
...options,
|
|
25
|
+
};
|
|
32
26
|
this.createElement();
|
|
33
27
|
}
|
|
34
|
-
|
|
28
|
+
createElement() {
|
|
35
29
|
// 백드롭 요소 생성
|
|
36
30
|
this.element = document.createElement('div');
|
|
37
31
|
this.element.className = this.getBackdropClasses();
|
|
@@ -40,14 +34,14 @@ export var Modal = /** @class */ (function () {
|
|
|
40
34
|
this.modalElement = document.createElement('div');
|
|
41
35
|
this.modalElement.className = this.getModalClasses();
|
|
42
36
|
this.element.appendChild(this.modalElement);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
return
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
return
|
|
49
|
-
}
|
|
50
|
-
|
|
37
|
+
}
|
|
38
|
+
getBackdropClasses() {
|
|
39
|
+
return `${MODAL_CLASS_NAMES.backdrop} ${this.options.className}`; // ncua-modal-backdrop + className
|
|
40
|
+
}
|
|
41
|
+
getModalClasses() {
|
|
42
|
+
return `${MODAL_CLASS_NAMES.modal} ${getModalSizeClassNames(this.options.size)}`; // ncua-modal ncua-modal--${size}
|
|
43
|
+
}
|
|
44
|
+
open() {
|
|
51
45
|
if (this.isOpen)
|
|
52
46
|
return;
|
|
53
47
|
this.isOpen = true;
|
|
@@ -58,8 +52,8 @@ export var Modal = /** @class */ (function () {
|
|
|
58
52
|
document.body.appendChild(this.element);
|
|
59
53
|
document.addEventListener('keydown', this.handleKeyDown);
|
|
60
54
|
document.body.classList.add(MODAL_CLASS_NAMES.modalOpen);
|
|
61
|
-
}
|
|
62
|
-
|
|
55
|
+
}
|
|
56
|
+
close() {
|
|
63
57
|
if (!this.isOpen)
|
|
64
58
|
return;
|
|
65
59
|
this.isOpen = false;
|
|
@@ -71,12 +65,12 @@ export var Modal = /** @class */ (function () {
|
|
|
71
65
|
if (this.options.onClose) {
|
|
72
66
|
this.options.onClose();
|
|
73
67
|
}
|
|
74
|
-
}
|
|
75
|
-
|
|
68
|
+
}
|
|
69
|
+
destroy() {
|
|
76
70
|
this.close();
|
|
77
71
|
this.element.removeEventListener('click', this.handleBackdropClick);
|
|
78
|
-
}
|
|
79
|
-
|
|
72
|
+
}
|
|
73
|
+
setContent(content) {
|
|
80
74
|
if (typeof content === 'string') {
|
|
81
75
|
this.modalElement.innerHTML = content;
|
|
82
76
|
}
|
|
@@ -84,23 +78,23 @@ export var Modal = /** @class */ (function () {
|
|
|
84
78
|
this.modalElement.innerHTML = '';
|
|
85
79
|
this.modalElement.appendChild(content);
|
|
86
80
|
}
|
|
87
|
-
}
|
|
88
|
-
|
|
81
|
+
}
|
|
82
|
+
getElement() {
|
|
89
83
|
return this.element;
|
|
90
|
-
}
|
|
91
|
-
|
|
84
|
+
}
|
|
85
|
+
getModalElement() {
|
|
92
86
|
return this.modalElement;
|
|
93
|
-
}
|
|
94
|
-
|
|
87
|
+
}
|
|
88
|
+
isModalOpen() {
|
|
95
89
|
return this.isOpen;
|
|
96
|
-
}
|
|
90
|
+
}
|
|
97
91
|
// Static factory method
|
|
98
|
-
|
|
92
|
+
static create(options) {
|
|
99
93
|
return new Modal(options);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
// Static properties for HTML usage
|
|
97
|
+
Modal.Header = ModalHeader;
|
|
98
|
+
Modal.Content = ModalContent;
|
|
99
|
+
Modal.Actions = ModalActions;
|
|
100
|
+
export { Modal };
|