@rchemist/listgrid 0.2.6
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/LICENSE +201 -0
- package/README.md +343 -0
- package/dist/adapters/next/NextListGridProvider.d.ts +5 -0
- package/dist/adapters/next/NextListGridProvider.js +7 -0
- package/dist/adapters/next/NextRouterAdapter.d.ts +2 -0
- package/dist/adapters/next/NextRouterAdapter.js +34 -0
- package/dist/adapters/next/NextUrlStateAdapter.d.ts +2 -0
- package/dist/adapters/next/NextUrlStateAdapter.js +31 -0
- package/dist/adapters/next/index.d.ts +4 -0
- package/dist/adapters/next/index.js +12 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -0
- package/dist/listgrid/api/ApiClient.d.ts +20 -0
- package/dist/listgrid/api/ApiClient.js +32 -0
- package/dist/listgrid/api/index.d.ts +4 -0
- package/dist/listgrid/api/index.js +2 -0
- package/dist/listgrid/api/types.d.ts +21 -0
- package/dist/listgrid/api/types.js +30 -0
- package/dist/listgrid/auth/AuthContext.d.ts +12 -0
- package/dist/listgrid/auth/AuthContext.js +25 -0
- package/dist/listgrid/auth/SessionProvider.d.ts +4 -0
- package/dist/listgrid/auth/SessionProvider.js +16 -0
- package/dist/listgrid/auth/index.d.ts +6 -0
- package/dist/listgrid/auth/index.js +17 -0
- package/dist/listgrid/auth/types.d.ts +15 -0
- package/dist/listgrid/auth/types.js +12 -0
- package/dist/listgrid/common/func.d.ts +16 -0
- package/dist/listgrid/common/func.js +351 -0
- package/dist/listgrid/common/type.d.ts +35 -0
- package/dist/listgrid/common/type.js +46 -0
- package/dist/listgrid/components/api/ApiSpecificationButton.d.ts +5 -0
- package/dist/listgrid/components/api/ApiSpecificationButton.js +16 -0
- package/dist/listgrid/components/api/Type.d.ts +23 -0
- package/dist/listgrid/components/api/Type.js +8 -0
- package/dist/listgrid/components/api/ViewApiSpecification.d.ts +2 -0
- package/dist/listgrid/components/api/ViewApiSpecification.js +32 -0
- package/dist/listgrid/components/fields/ApplyFullAddressFields.d.ts +45 -0
- package/dist/listgrid/components/fields/ApplyFullAddressFields.js +177 -0
- package/dist/listgrid/components/fields/BirthdayField.d.ts +39 -0
- package/dist/listgrid/components/fields/BirthdayField.js +205 -0
- package/dist/listgrid/components/fields/BooleanField.d.ts +38 -0
- package/dist/listgrid/components/fields/BooleanField.js +141 -0
- package/dist/listgrid/components/fields/CheckboxField.d.ts +23 -0
- package/dist/listgrid/components/fields/CheckboxField.js +33 -0
- package/dist/listgrid/components/fields/ColorField.d.ts +18 -0
- package/dist/listgrid/components/fields/ColorField.js +63 -0
- package/dist/listgrid/components/fields/ColorPresetField.d.ts +19 -0
- package/dist/listgrid/components/fields/ColorPresetField.js +56 -0
- package/dist/listgrid/components/fields/CustomOptionField.d.ts +45 -0
- package/dist/listgrid/components/fields/CustomOptionField.js +176 -0
- package/dist/listgrid/components/fields/DateField.d.ts +34 -0
- package/dist/listgrid/components/fields/DateField.js +116 -0
- package/dist/listgrid/components/fields/DatetimeField.d.ts +29 -0
- package/dist/listgrid/components/fields/DatetimeField.js +93 -0
- package/dist/listgrid/components/fields/EmailField.d.ts +37 -0
- package/dist/listgrid/components/fields/EmailField.js +144 -0
- package/dist/listgrid/components/fields/FileField.d.ts +36 -0
- package/dist/listgrid/components/fields/FileField.js +157 -0
- package/dist/listgrid/components/fields/HtmlField.d.ts +24 -0
- package/dist/listgrid/components/fields/HtmlField.js +70 -0
- package/dist/listgrid/components/fields/ImageField.d.ts +34 -0
- package/dist/listgrid/components/fields/ImageField.js +125 -0
- package/dist/listgrid/components/fields/InlineMapField.d.ts +40 -0
- package/dist/listgrid/components/fields/InlineMapField.js +85 -0
- package/dist/listgrid/components/fields/LinkField.d.ts +26 -0
- package/dist/listgrid/components/fields/LinkField.js +61 -0
- package/dist/listgrid/components/fields/ManyToOneField.d.ts +80 -0
- package/dist/listgrid/components/fields/ManyToOneField.js +416 -0
- package/dist/listgrid/components/fields/MappedJoinField.d.ts +16 -0
- package/dist/listgrid/components/fields/MappedJoinField.js +29 -0
- package/dist/listgrid/components/fields/MarkdownField.d.ts +20 -0
- package/dist/listgrid/components/fields/MarkdownField.js +58 -0
- package/dist/listgrid/components/fields/MessageViewField.d.ts +20 -0
- package/dist/listgrid/components/fields/MessageViewField.js +27 -0
- package/dist/listgrid/components/fields/MonthField.d.ts +25 -0
- package/dist/listgrid/components/fields/MonthField.js +68 -0
- package/dist/listgrid/components/fields/MultiSelectField.d.ts +59 -0
- package/dist/listgrid/components/fields/MultiSelectField.js +74 -0
- package/dist/listgrid/components/fields/MultipleAssetField.d.ts +31 -0
- package/dist/listgrid/components/fields/MultipleAssetField.js +200 -0
- package/dist/listgrid/components/fields/NumberField.d.ts +54 -0
- package/dist/listgrid/components/fields/NumberField.js +216 -0
- package/dist/listgrid/components/fields/PasswordField.d.ts +23 -0
- package/dist/listgrid/components/fields/PasswordField.js +70 -0
- package/dist/listgrid/components/fields/PhoneNumberField.d.ts +39 -0
- package/dist/listgrid/components/fields/PhoneNumberField.js +91 -0
- package/dist/listgrid/components/fields/Preset.d.ts +68 -0
- package/dist/listgrid/components/fields/Preset.js +306 -0
- package/dist/listgrid/components/fields/ProfileField.d.ts +14 -0
- package/dist/listgrid/components/fields/ProfileField.js +25 -0
- package/dist/listgrid/components/fields/QrField.d.ts +21 -0
- package/dist/listgrid/components/fields/QrField.js +31 -0
- package/dist/listgrid/components/fields/RuleField.d.ts +11 -0
- package/dist/listgrid/components/fields/RuleField.js +24 -0
- package/dist/listgrid/components/fields/SelectField.d.ts +223 -0
- package/dist/listgrid/components/fields/SelectField.js +379 -0
- package/dist/listgrid/components/fields/SelectFieldRenderer.d.ts +35 -0
- package/dist/listgrid/components/fields/SelectFieldRenderer.js +363 -0
- package/dist/listgrid/components/fields/StatusChangeReasonModal.d.ts +18 -0
- package/dist/listgrid/components/fields/StatusChangeReasonModal.js +25 -0
- package/dist/listgrid/components/fields/StringField.d.ts +34 -0
- package/dist/listgrid/components/fields/StringField.js +131 -0
- package/dist/listgrid/components/fields/TagField.d.ts +35 -0
- package/dist/listgrid/components/fields/TagField.js +75 -0
- package/dist/listgrid/components/fields/TelephoneNumberField.d.ts +35 -0
- package/dist/listgrid/components/fields/TelephoneNumberField.js +121 -0
- package/dist/listgrid/components/fields/TextareaField.d.ts +27 -0
- package/dist/listgrid/components/fields/TextareaField.js +47 -0
- package/dist/listgrid/components/fields/TimeField.d.ts +21 -0
- package/dist/listgrid/components/fields/TimeField.js +40 -0
- package/dist/listgrid/components/fields/XrefAvailableDateMappingField.d.ts +22 -0
- package/dist/listgrid/components/fields/XrefAvailableDateMappingField.js +39 -0
- package/dist/listgrid/components/fields/XrefMappingField.d.ts +30 -0
- package/dist/listgrid/components/fields/XrefMappingField.js +59 -0
- package/dist/listgrid/components/fields/XrefPreferMappingField.d.ts +30 -0
- package/dist/listgrid/components/fields/XrefPreferMappingField.js +53 -0
- package/dist/listgrid/components/fields/XrefPriceMappingField.d.ts +33 -0
- package/dist/listgrid/components/fields/XrefPriceMappingField.js +56 -0
- package/dist/listgrid/components/fields/YearField.d.ts +32 -0
- package/dist/listgrid/components/fields/YearField.js +99 -0
- package/dist/listgrid/components/fields/abstract/AbstractDateField.d.ts +33 -0
- package/dist/listgrid/components/fields/abstract/AbstractDateField.js +61 -0
- package/dist/listgrid/components/fields/abstract/AbstractManyToOneField.d.ts +97 -0
- package/dist/listgrid/components/fields/abstract/AbstractManyToOneField.js +50 -0
- package/dist/listgrid/components/fields/abstract/CheckButtonValidationField.d.ts +22 -0
- package/dist/listgrid/components/fields/abstract/CheckButtonValidationField.js +92 -0
- package/dist/listgrid/components/fields/abstract/FormField.d.ts +250 -0
- package/dist/listgrid/components/fields/abstract/FormField.js +606 -0
- package/dist/listgrid/components/fields/abstract/ListableFormField.d.ts +140 -0
- package/dist/listgrid/components/fields/abstract/ListableFormField.js +285 -0
- package/dist/listgrid/components/fields/abstract/OptionalField.d.ts +96 -0
- package/dist/listgrid/components/fields/abstract/OptionalField.js +310 -0
- package/dist/listgrid/components/fields/abstract/index.d.ts +6 -0
- package/dist/listgrid/components/fields/abstract/index.js +12 -0
- package/dist/listgrid/components/fields/address/AddressFieldView.d.ts +9 -0
- package/dist/listgrid/components/fields/address/AddressFieldView.js +92 -0
- package/dist/listgrid/components/fields/address/AddressMapField.d.ts +33 -0
- package/dist/listgrid/components/fields/address/AddressMapField.js +49 -0
- package/dist/listgrid/components/fields/address/KakaoMap.d.ts +10 -0
- package/dist/listgrid/components/fields/address/KakaoMap.js +50 -0
- package/dist/listgrid/components/fields/address/PostCodeSelector.d.ts +9 -0
- package/dist/listgrid/components/fields/address/PostCodeSelector.js +125 -0
- package/dist/listgrid/components/fields/contentasset/ContentAssetField.d.ts +61 -0
- package/dist/listgrid/components/fields/contentasset/ContentAssetField.js +80 -0
- package/dist/listgrid/components/fields/contentasset/ContentAssetItem.d.ts +17 -0
- package/dist/listgrid/components/fields/contentasset/ContentAssetItem.js +67 -0
- package/dist/listgrid/components/fields/contentasset/components/AddContentDialog.d.ts +11 -0
- package/dist/listgrid/components/fields/contentasset/components/AddContentDialog.js +68 -0
- package/dist/listgrid/components/fields/contentasset/components/ContentAssetItemUI.d.ts +30 -0
- package/dist/listgrid/components/fields/contentasset/components/ContentAssetItemUI.js +38 -0
- package/dist/listgrid/components/fields/contentasset/hooks/useContentAsset.d.ts +36 -0
- package/dist/listgrid/components/fields/contentasset/hooks/useContentAsset.js +188 -0
- package/dist/listgrid/components/fields/contentasset/index.d.ts +2 -0
- package/dist/listgrid/components/fields/contentasset/index.js +1 -0
- package/dist/listgrid/components/fields/contentasset/types.d.ts +50 -0
- package/dist/listgrid/components/fields/contentasset/types.js +48 -0
- package/dist/listgrid/components/fields/filter/DatetimeFilter.d.ts +7 -0
- package/dist/listgrid/components/fields/filter/DatetimeFilter.js +46 -0
- package/dist/listgrid/components/fields/filter/NumberFilter.d.ts +7 -0
- package/dist/listgrid/components/fields/filter/NumberFilter.js +74 -0
- package/dist/listgrid/components/fields/rule/RuleBasedFieldView.d.ts +15 -0
- package/dist/listgrid/components/fields/rule/RuleBasedFieldView.js +351 -0
- package/dist/listgrid/components/fields/rule/RuleBasedSelector.d.ts +13 -0
- package/dist/listgrid/components/fields/rule/RuleBasedSelector.js +75 -0
- package/dist/listgrid/components/fields/rule/RuleCondition.d.ts +14 -0
- package/dist/listgrid/components/fields/rule/RuleCondition.js +173 -0
- package/dist/listgrid/components/fields/rule/RuleFieldRenderer.d.ts +7 -0
- package/dist/listgrid/components/fields/rule/RuleFieldRenderer.js +21 -0
- package/dist/listgrid/components/fields/rule/RuleFieldView.d.ts +7 -0
- package/dist/listgrid/components/fields/rule/RuleFieldView.js +28 -0
- package/dist/listgrid/components/fields/rule/Type.d.ts +54 -0
- package/dist/listgrid/components/fields/rule/Type.js +72 -0
- package/dist/listgrid/components/fields/view/CardManyToOneView.d.ts +93 -0
- package/dist/listgrid/components/fields/view/CardManyToOneView.js +409 -0
- package/dist/listgrid/components/fields/view/CopyableTextView.d.ts +11 -0
- package/dist/listgrid/components/fields/view/CopyableTextView.js +44 -0
- package/dist/listgrid/components/fields/view/DynamicSelectFieldView.d.ts +28 -0
- package/dist/listgrid/components/fields/view/DynamicSelectFieldView.js +119 -0
- package/dist/listgrid/components/fields/view/LinkFieldView.d.ts +14 -0
- package/dist/listgrid/components/fields/view/LinkFieldView.js +41 -0
- package/dist/listgrid/components/fields/view/ManyToOneListView.d.ts +8 -0
- package/dist/listgrid/components/fields/view/ManyToOneListView.js +25 -0
- package/dist/listgrid/components/fields/view/ManyToOneMultiFilterView.d.ts +12 -0
- package/dist/listgrid/components/fields/view/ManyToOneMultiFilterView.js +142 -0
- package/dist/listgrid/components/fields/view/ManyToOneView.d.ts +8 -0
- package/dist/listgrid/components/fields/view/ManyToOneView.js +322 -0
- package/dist/listgrid/components/fields/view/MultipleAssetUpload.d.ts +7 -0
- package/dist/listgrid/components/fields/view/MultipleAssetUpload.js +47 -0
- package/dist/listgrid/components/fields/view/PhoneNumberFieldView.d.ts +19 -0
- package/dist/listgrid/components/fields/view/PhoneNumberFieldView.js +82 -0
- package/dist/listgrid/components/fields/view/PhoneNumberListView.d.ts +9 -0
- package/dist/listgrid/components/fields/view/PhoneNumberListView.js +49 -0
- package/dist/listgrid/components/fields/view/SelectBoxManyToOneView.d.ts +47 -0
- package/dist/listgrid/components/fields/view/SelectBoxManyToOneView.js +286 -0
- package/dist/listgrid/components/fields/view/SmsModal.d.ts +6 -0
- package/dist/listgrid/components/fields/view/SmsModal.js +124 -0
- package/dist/listgrid/components/fields/view/TreeSelectView.d.ts +11 -0
- package/dist/listgrid/components/fields/view/TreeSelectView.js +118 -0
- package/dist/listgrid/components/fields/view/XrefAvailableDateMappingView.d.ts +19 -0
- package/dist/listgrid/components/fields/view/XrefAvailableDateMappingView.js +305 -0
- package/dist/listgrid/components/fields/view/XrefMappingView.d.ts +16 -0
- package/dist/listgrid/components/fields/view/XrefMappingView.js +173 -0
- package/dist/listgrid/components/fields/view/XrefPiceMappingView.d.ts +19 -0
- package/dist/listgrid/components/fields/view/XrefPiceMappingView.js +319 -0
- package/dist/listgrid/components/fields/view/XrefPreferMappingView.d.ts +19 -0
- package/dist/listgrid/components/fields/view/XrefPreferMappingView.js +261 -0
- package/dist/listgrid/components/fields/view/XrefPriorityMappingView.d.ts +19 -0
- package/dist/listgrid/components/fields/view/XrefPriorityMappingView.js +180 -0
- package/dist/listgrid/components/form/FieldRenderer.d.ts +23 -0
- package/dist/listgrid/components/form/FieldRenderer.js +292 -0
- package/dist/listgrid/components/form/SubCollectionRenderer.d.ts +22 -0
- package/dist/listgrid/components/form/SubCollectionRenderer.js +46 -0
- package/dist/listgrid/components/form/ViewEntityForm.d.ts +14 -0
- package/dist/listgrid/components/form/ViewEntityForm.js +124 -0
- package/dist/listgrid/components/form/ViewFieldGroup.d.ts +27 -0
- package/dist/listgrid/components/form/ViewFieldGroup.js +164 -0
- package/dist/listgrid/components/form/ViewTab.d.ts +24 -0
- package/dist/listgrid/components/form/ViewTab.js +68 -0
- package/dist/listgrid/components/form/ViewTabPanel.d.ts +14 -0
- package/dist/listgrid/components/form/ViewTabPanel.js +32 -0
- package/dist/listgrid/components/form/context/EntityFormThemeContext.d.ts +52 -0
- package/dist/listgrid/components/form/context/EntityFormThemeContext.js +129 -0
- package/dist/listgrid/components/form/context/index.d.ts +1 -0
- package/dist/listgrid/components/form/context/index.js +1 -0
- package/dist/listgrid/components/form/hooks/useAlertManager.d.ts +12 -0
- package/dist/listgrid/components/form/hooks/useAlertManager.js +103 -0
- package/dist/listgrid/components/form/hooks/useEntityFormAutoSave.d.ts +23 -0
- package/dist/listgrid/components/form/hooks/useEntityFormAutoSave.js +145 -0
- package/dist/listgrid/components/form/hooks/useEntityFormInitializer.d.ts +24 -0
- package/dist/listgrid/components/form/hooks/useEntityFormInitializer.js +109 -0
- package/dist/listgrid/components/form/hooks/useEntityFormLogic.d.ts +63 -0
- package/dist/listgrid/components/form/hooks/useEntityFormLogic.js +513 -0
- package/dist/listgrid/components/form/hooks/useEntityFormSave.d.ts +28 -0
- package/dist/listgrid/components/form/hooks/useEntityFormSave.js +89 -0
- package/dist/listgrid/components/form/hooks/useEntityFormTitle.d.ts +12 -0
- package/dist/listgrid/components/form/hooks/useEntityFormTitle.js +53 -0
- package/dist/listgrid/components/form/themes/defaultTheme.d.ts +11 -0
- package/dist/listgrid/components/form/themes/defaultTheme.js +129 -0
- package/dist/listgrid/components/form/themes/index.d.ts +1 -0
- package/dist/listgrid/components/form/themes/index.js +1 -0
- package/dist/listgrid/components/form/types/ViewEntityForm.types.d.ts +169 -0
- package/dist/listgrid/components/form/types/ViewEntityForm.types.js +1 -0
- package/dist/listgrid/components/form/types/ViewEntityFormAlerts.types.d.ts +26 -0
- package/dist/listgrid/components/form/types/ViewEntityFormAlerts.types.js +1 -0
- package/dist/listgrid/components/form/types/ViewEntityFormButtons.types.d.ts +49 -0
- package/dist/listgrid/components/form/types/ViewEntityFormButtons.types.js +1 -0
- package/dist/listgrid/components/form/types/ViewEntityFormTheme.types.d.ts +518 -0
- package/dist/listgrid/components/form/types/ViewEntityFormTheme.types.js +1 -0
- package/dist/listgrid/components/form/ui/AlertItem.d.ts +7 -0
- package/dist/listgrid/components/form/ui/AlertItem.js +18 -0
- package/dist/listgrid/components/form/ui/CreateStepButtons.d.ts +25 -0
- package/dist/listgrid/components/form/ui/CreateStepButtons.js +18 -0
- package/dist/listgrid/components/form/ui/CreateStepView.d.ts +39 -0
- package/dist/listgrid/components/form/ui/CreateStepView.js +50 -0
- package/dist/listgrid/components/form/ui/ViewEntityError.d.ts +13 -0
- package/dist/listgrid/components/form/ui/ViewEntityError.js +90 -0
- package/dist/listgrid/components/form/ui/ViewEntityFormAlerts.d.ts +3 -0
- package/dist/listgrid/components/form/ui/ViewEntityFormAlerts.js +24 -0
- package/dist/listgrid/components/form/ui/ViewEntityFormButtons.d.ts +24 -0
- package/dist/listgrid/components/form/ui/ViewEntityFormButtons.js +208 -0
- package/dist/listgrid/components/form/ui/ViewEntityFormErrors.d.ts +25 -0
- package/dist/listgrid/components/form/ui/ViewEntityFormErrors.js +9 -0
- package/dist/listgrid/components/form/ui/ViewEntityFormFields.d.ts +38 -0
- package/dist/listgrid/components/form/ui/ViewEntityFormFields.js +25 -0
- package/dist/listgrid/components/form/ui/ViewEntityFormSkeleton.d.ts +16 -0
- package/dist/listgrid/components/form/ui/ViewEntityFormSkeleton.js +79 -0
- package/dist/listgrid/components/form/ui/ViewEntityFormTitle.d.ts +15 -0
- package/dist/listgrid/components/form/ui/ViewEntityFormTitle.js +21 -0
- package/dist/listgrid/components/form/ui/ViewFieldError.d.ts +5 -0
- package/dist/listgrid/components/form/ui/ViewFieldError.js +12 -0
- package/dist/listgrid/components/form/ui/ViewHelpIcon.d.ts +5 -0
- package/dist/listgrid/components/form/ui/ViewHelpIcon.js +13 -0
- package/dist/listgrid/components/form/ui/ViewHelpText.d.ts +5 -0
- package/dist/listgrid/components/form/ui/ViewHelpText.js +10 -0
- package/dist/listgrid/components/form/ui/buttons/ClosePopupButton.d.ts +8 -0
- package/dist/listgrid/components/form/ui/buttons/ClosePopupButton.js +32 -0
- package/dist/listgrid/components/form/ui/buttons/DeleteButton.d.ts +2 -0
- package/dist/listgrid/components/form/ui/buttons/DeleteButton.js +101 -0
- package/dist/listgrid/components/form/ui/buttons/ListButton.d.ts +2 -0
- package/dist/listgrid/components/form/ui/buttons/ListButton.js +55 -0
- package/dist/listgrid/components/form/ui/buttons/SaveButton.d.ts +2 -0
- package/dist/listgrid/components/form/ui/buttons/SaveButton.js +55 -0
- package/dist/listgrid/components/helper/FieldRendererHelper.d.ts +23 -0
- package/dist/listgrid/components/helper/FieldRendererHelper.js +27 -0
- package/dist/listgrid/components/helper/ShowNotifications.d.ts +13 -0
- package/dist/listgrid/components/helper/ShowNotifications.js +58 -0
- package/dist/listgrid/components/list/AdvancedSearchForm.d.ts +17 -0
- package/dist/listgrid/components/list/AdvancedSearchForm.js +113 -0
- package/dist/listgrid/components/list/AdvancedSearchFormV2.d.ts +19 -0
- package/dist/listgrid/components/list/AdvancedSearchFormV2.js +347 -0
- package/dist/listgrid/components/list/ListGridHeader.d.ts +2 -0
- package/dist/listgrid/components/list/ListGridHeader.js +21 -0
- package/dist/listgrid/components/list/QuickSearchBar.d.ts +22 -0
- package/dist/listgrid/components/list/QuickSearchBar.js +17 -0
- package/dist/listgrid/components/list/RowItem.d.ts +2 -0
- package/dist/listgrid/components/list/RowItem.js +70 -0
- package/dist/listgrid/components/list/SubCollectionButtons.d.ts +2 -0
- package/dist/listgrid/components/list/SubCollectionButtons.js +36 -0
- package/dist/listgrid/components/list/ViewFieldSelector.d.ts +10 -0
- package/dist/listgrid/components/list/ViewFieldSelector.js +48 -0
- package/dist/listgrid/components/list/ViewListGrid.d.ts +2 -0
- package/dist/listgrid/components/list/ViewListGrid.js +359 -0
- package/dist/listgrid/components/list/context/EntityFormScopeContext.d.ts +39 -0
- package/dist/listgrid/components/list/context/EntityFormScopeContext.js +75 -0
- package/dist/listgrid/components/list/context/ListGridThemeContext.d.ts +70 -0
- package/dist/listgrid/components/list/context/ListGridThemeContext.js +157 -0
- package/dist/listgrid/components/list/context/index.d.ts +2 -0
- package/dist/listgrid/components/list/context/index.js +1 -0
- package/dist/listgrid/components/list/hooks/searchFormUrlSync.d.ts +42 -0
- package/dist/listgrid/components/list/hooks/searchFormUrlSync.js +212 -0
- package/dist/listgrid/components/list/hooks/urlStateParsers.d.ts +63 -0
- package/dist/listgrid/components/list/hooks/urlStateParsers.js +241 -0
- package/dist/listgrid/components/list/hooks/useCardSubCollectionData.d.ts +34 -0
- package/dist/listgrid/components/list/hooks/useCardSubCollectionData.js +181 -0
- package/dist/listgrid/components/list/hooks/useListGridHeader.d.ts +6 -0
- package/dist/listgrid/components/list/hooks/useListGridHeader.js +92 -0
- package/dist/listgrid/components/list/hooks/useListGridLogic.d.ts +2 -0
- package/dist/listgrid/components/list/hooks/useListGridLogic.js +625 -0
- package/dist/listgrid/components/list/hooks/useListGridUrlState.d.ts +45 -0
- package/dist/listgrid/components/list/hooks/useListGridUrlState.js +131 -0
- package/dist/listgrid/components/list/hooks/useQuickSearchBar.d.ts +22 -0
- package/dist/listgrid/components/list/hooks/useQuickSearchBar.js +104 -0
- package/dist/listgrid/components/list/hooks/useSubCollectionExpansion.d.ts +21 -0
- package/dist/listgrid/components/list/hooks/useSubCollectionExpansion.js +62 -0
- package/dist/listgrid/components/list/themes/defaultListGridTheme.d.ts +14 -0
- package/dist/listgrid/components/list/themes/defaultListGridTheme.js +169 -0
- package/dist/listgrid/components/list/themes/index.d.ts +4 -0
- package/dist/listgrid/components/list/themes/index.js +4 -0
- package/dist/listgrid/components/list/themes/variants/mainTheme.d.ts +8 -0
- package/dist/listgrid/components/list/themes/variants/mainTheme.js +37 -0
- package/dist/listgrid/components/list/themes/variants/modalTheme.d.ts +8 -0
- package/dist/listgrid/components/list/themes/variants/modalTheme.js +47 -0
- package/dist/listgrid/components/list/themes/variants/subCollectionTheme.d.ts +8 -0
- package/dist/listgrid/components/list/themes/variants/subCollectionTheme.js +101 -0
- package/dist/listgrid/components/list/types/ListGridHeader.types.d.ts +35 -0
- package/dist/listgrid/components/list/types/ListGridHeader.types.js +3 -0
- package/dist/listgrid/components/list/types/RowItem.types.d.ts +57 -0
- package/dist/listgrid/components/list/types/RowItem.types.js +1 -0
- package/dist/listgrid/components/list/types/SubCollectionButtons.type.d.ts +29 -0
- package/dist/listgrid/components/list/types/SubCollectionButtons.type.js +1 -0
- package/dist/listgrid/components/list/types/ViewListGrid.types.d.ts +152 -0
- package/dist/listgrid/components/list/types/ViewListGrid.types.js +2 -0
- package/dist/listgrid/components/list/types/ViewListGridTheme.types.d.ts +374 -0
- package/dist/listgrid/components/list/types/ViewListGridTheme.types.js +1 -0
- package/dist/listgrid/components/list/ui/CardFieldRenderer.d.ts +31 -0
- package/dist/listgrid/components/list/ui/CardFieldRenderer.js +71 -0
- package/dist/listgrid/components/list/ui/CardFieldSection.d.ts +27 -0
- package/dist/listgrid/components/list/ui/CardFieldSection.js +108 -0
- package/dist/listgrid/components/list/ui/CardItem.d.ts +28 -0
- package/dist/listgrid/components/list/ui/CardItem.js +376 -0
- package/dist/listgrid/components/list/ui/CardSubCollectionModal.d.ts +38 -0
- package/dist/listgrid/components/list/ui/CardSubCollectionModal.js +80 -0
- package/dist/listgrid/components/list/ui/CardSubCollectionView.d.ts +44 -0
- package/dist/listgrid/components/list/ui/CardSubCollectionView.js +238 -0
- package/dist/listgrid/components/list/ui/DataTransferModal.d.ts +12 -0
- package/dist/listgrid/components/list/ui/DataTransferModal.js +10 -0
- package/dist/listgrid/components/list/ui/EntireChecker.d.ts +11 -0
- package/dist/listgrid/components/list/ui/EntireChecker.js +46 -0
- package/dist/listgrid/components/list/ui/FieldSelector.d.ts +11 -0
- package/dist/listgrid/components/list/ui/FieldSelector.js +40 -0
- package/dist/listgrid/components/list/ui/FilterButton.d.ts +7 -0
- package/dist/listgrid/components/list/ui/FilterButton.js +5 -0
- package/dist/listgrid/components/list/ui/FilterDropdown.d.ts +15 -0
- package/dist/listgrid/components/list/ui/FilterDropdown.js +106 -0
- package/dist/listgrid/components/list/ui/FilterView.d.ts +12 -0
- package/dist/listgrid/components/list/ui/FilterView.js +22 -0
- package/dist/listgrid/components/list/ui/HeaderActionButtons.d.ts +10 -0
- package/dist/listgrid/components/list/ui/HeaderActionButtons.js +39 -0
- package/dist/listgrid/components/list/ui/HeaderField.d.ts +19 -0
- package/dist/listgrid/components/list/ui/HeaderField.js +32 -0
- package/dist/listgrid/components/list/ui/HeaderFieldFilter.d.ts +14 -0
- package/dist/listgrid/components/list/ui/HeaderFieldFilter.js +166 -0
- package/dist/listgrid/components/list/ui/HeaderTitle.d.ts +4 -0
- package/dist/listgrid/components/list/ui/HeaderTitle.js +13 -0
- package/dist/listgrid/components/list/ui/InlineSubCollectionView.d.ts +30 -0
- package/dist/listgrid/components/list/ui/InlineSubCollectionView.js +260 -0
- package/dist/listgrid/components/list/ui/MemoizedFilterField.d.ts +14 -0
- package/dist/listgrid/components/list/ui/MemoizedFilterField.js +67 -0
- package/dist/listgrid/components/list/ui/QuickSearchInput.d.ts +9 -0
- package/dist/listgrid/components/list/ui/QuickSearchInput.js +17 -0
- package/dist/listgrid/components/list/ui/SearchBarActions.d.ts +19 -0
- package/dist/listgrid/components/list/ui/SearchBarActions.js +39 -0
- package/dist/listgrid/components/list/ui/SortField.d.ts +8 -0
- package/dist/listgrid/components/list/ui/SortField.js +42 -0
- package/dist/listgrid/components/list/ui/SubCollectionInlineView.d.ts +23 -0
- package/dist/listgrid/components/list/ui/SubCollectionInlineView.js +47 -0
- package/dist/listgrid/components/list/ui/SubCollectionModal.d.ts +15 -0
- package/dist/listgrid/components/list/ui/SubCollectionModal.js +34 -0
- package/dist/listgrid/components/list/ui/SubCollectionViewModal.d.ts +13 -0
- package/dist/listgrid/components/list/ui/SubCollectionViewModal.js +33 -0
- package/dist/listgrid/components/list/ui/SyncTopScrollbar.d.ts +18 -0
- package/dist/listgrid/components/list/ui/SyncTopScrollbar.js +91 -0
- package/dist/listgrid/components/list/ui/TableSubCollectionView.d.ts +25 -0
- package/dist/listgrid/components/list/ui/TableSubCollectionView.js +213 -0
- package/dist/listgrid/components/list/ui/ViewColumn.d.ts +2 -0
- package/dist/listgrid/components/list/ui/ViewColumn.js +56 -0
- package/dist/listgrid/components/list/ui/ViewListGridSkeleton.d.ts +20 -0
- package/dist/listgrid/components/list/ui/ViewListGridSkeleton.js +82 -0
- package/dist/listgrid/components/list/ui/ViewRows.d.ts +15 -0
- package/dist/listgrid/components/list/ui/ViewRows.js +283 -0
- package/dist/listgrid/components/list/ui/buttons/CacheClearButton.d.ts +9 -0
- package/dist/listgrid/components/list/ui/buttons/CacheClearButton.js +35 -0
- package/dist/listgrid/components/list/ui/buttons/CreateButton.d.ts +13 -0
- package/dist/listgrid/components/list/ui/buttons/CreateButton.js +13 -0
- package/dist/listgrid/components/list/ui/buttons/PriorityButton.d.ts +11 -0
- package/dist/listgrid/components/list/ui/buttons/PriorityButton.js +49 -0
- package/dist/listgrid/components/list/ui/headerFilterStore.d.ts +8 -0
- package/dist/listgrid/components/list/ui/headerFilterStore.js +13 -0
- package/dist/listgrid/components/list/utils/mappedByFieldFilter.d.ts +21 -0
- package/dist/listgrid/components/list/utils/mappedByFieldFilter.js +54 -0
- package/dist/listgrid/components/list/utils/performanceLogger.d.ts +48 -0
- package/dist/listgrid/components/list/utils/performanceLogger.js +67 -0
- package/dist/listgrid/components/revision/RevisionField.d.ts +13 -0
- package/dist/listgrid/components/revision/RevisionField.js +194 -0
- package/dist/listgrid/config/AdvancedSearchOpenCache.d.ts +3 -0
- package/dist/listgrid/config/AdvancedSearchOpenCache.js +48 -0
- package/dist/listgrid/config/CardSubCollectionField.d.ts +133 -0
- package/dist/listgrid/config/CardSubCollectionField.js +164 -0
- package/dist/listgrid/config/CommonType.d.ts +4 -0
- package/dist/listgrid/config/CommonType.js +15 -0
- package/dist/listgrid/config/Config.d.ts +251 -0
- package/dist/listgrid/config/Config.js +299 -0
- package/dist/listgrid/config/EntityField.d.ts +148 -0
- package/dist/listgrid/config/EntityField.js +1 -0
- package/dist/listgrid/config/EntityFieldGroup.d.ts +37 -0
- package/dist/listgrid/config/EntityFieldGroup.js +55 -0
- package/dist/listgrid/config/EntityForm.d.ts +101 -0
- package/dist/listgrid/config/EntityForm.js +859 -0
- package/dist/listgrid/config/EntityFormButton.d.ts +56 -0
- package/dist/listgrid/config/EntityFormButton.js +42 -0
- package/dist/listgrid/config/EntityFormMethod.d.ts +32 -0
- package/dist/listgrid/config/EntityFormMethod.js +152 -0
- package/dist/listgrid/config/EntityFormTypes.d.ts +62 -0
- package/dist/listgrid/config/EntityFormTypes.js +1 -0
- package/dist/listgrid/config/EntityItem.d.ts +86 -0
- package/dist/listgrid/config/EntityItem.js +1 -0
- package/dist/listgrid/config/EntityTab.d.ts +26 -0
- package/dist/listgrid/config/EntityTab.js +68 -0
- package/dist/listgrid/config/InlineSubCollectionField.d.ts +184 -0
- package/dist/listgrid/config/InlineSubCollectionField.js +194 -0
- package/dist/listgrid/config/ListGrid.d.ts +56 -0
- package/dist/listgrid/config/ListGrid.js +183 -0
- package/dist/listgrid/config/ListGridViewFieldCache.d.ts +3 -0
- package/dist/listgrid/config/ListGridViewFieldCache.js +53 -0
- package/dist/listgrid/config/OnChangeEntityForm.d.ts +43 -0
- package/dist/listgrid/config/OnChangeEntityForm.js +266 -0
- package/dist/listgrid/config/RuntimeConfig.d.ts +18 -0
- package/dist/listgrid/config/RuntimeConfig.js +22 -0
- package/dist/listgrid/config/SubCollectionField.d.ts +119 -0
- package/dist/listgrid/config/SubCollectionField.js +241 -0
- package/dist/listgrid/config/TableSubCollectionField.d.ts +66 -0
- package/dist/listgrid/config/TableSubCollectionField.js +132 -0
- package/dist/listgrid/config/form/EntityFormActions.d.ts +69 -0
- package/dist/listgrid/config/form/EntityFormActions.js +459 -0
- package/dist/listgrid/config/form/EntityFormBase.d.ts +204 -0
- package/dist/listgrid/config/form/EntityFormBase.js +526 -0
- package/dist/listgrid/config/form/EntityFormData.d.ts +32 -0
- package/dist/listgrid/config/form/EntityFormData.js +184 -0
- package/dist/listgrid/config/form/EntityFormExtensions.d.ts +37 -0
- package/dist/listgrid/config/form/EntityFormExtensions.js +105 -0
- package/dist/listgrid/config/form/EntityFormValidation.d.ts +28 -0
- package/dist/listgrid/config/form/EntityFormValidation.js +128 -0
- package/dist/listgrid/extensions/EntityFormExtension.types.d.ts +52 -0
- package/dist/listgrid/extensions/EntityFormExtension.types.js +19 -0
- package/dist/listgrid/extensions/FieldExtensions.d.ts +5 -0
- package/dist/listgrid/extensions/FieldExtensions.js +21 -0
- package/dist/listgrid/form/SearchForm.d.ts +153 -0
- package/dist/listgrid/form/SearchForm.js +689 -0
- package/dist/listgrid/form/TagsInput/types.d.ts +133 -0
- package/dist/listgrid/form/TagsInput/types.js +1 -0
- package/dist/listgrid/form/Type.d.ts +50 -0
- package/dist/listgrid/form/Type.js +95 -0
- package/dist/listgrid/index.d.ts +205 -0
- package/dist/listgrid/index.js +244 -0
- package/dist/listgrid/loading/index.d.ts +6 -0
- package/dist/listgrid/loading/index.js +17 -0
- package/dist/listgrid/menu/MenuPermissionChecker.d.ts +15 -0
- package/dist/listgrid/menu/MenuPermissionChecker.js +15 -0
- package/dist/listgrid/menu/index.d.ts +1 -0
- package/dist/listgrid/menu/index.js +1 -0
- package/dist/listgrid/message/MessageProvider.d.ts +19 -0
- package/dist/listgrid/message/MessageProvider.js +62 -0
- package/dist/listgrid/message/index.d.ts +1 -0
- package/dist/listgrid/message/index.js +1 -0
- package/dist/listgrid/misc/index.d.ts +64 -0
- package/dist/listgrid/misc/index.js +478 -0
- package/dist/listgrid/router/RouterProvider.d.ts +12 -0
- package/dist/listgrid/router/RouterProvider.js +34 -0
- package/dist/listgrid/router/index.d.ts +3 -0
- package/dist/listgrid/router/index.js +1 -0
- package/dist/listgrid/router/types.d.ts +34 -0
- package/dist/listgrid/router/types.js +6 -0
- package/dist/listgrid/store/index.d.ts +24 -0
- package/dist/listgrid/store/index.js +40 -0
- package/dist/listgrid/transfer/DataExportProcessor.d.ts +18 -0
- package/dist/listgrid/transfer/DataExportProcessor.js +102 -0
- package/dist/listgrid/transfer/DataExportService.d.ts +37 -0
- package/dist/listgrid/transfer/DataExportService.js +225 -0
- package/dist/listgrid/transfer/DataExporter.d.ts +10 -0
- package/dist/listgrid/transfer/DataExporter.js +85 -0
- package/dist/listgrid/transfer/DataImportDescription.d.ts +8 -0
- package/dist/listgrid/transfer/DataImportDescription.js +18 -0
- package/dist/listgrid/transfer/DataImportProcessor.d.ts +24 -0
- package/dist/listgrid/transfer/DataImportProcessor.js +59 -0
- package/dist/listgrid/transfer/DataImportResultView.d.ts +13 -0
- package/dist/listgrid/transfer/DataImportResultView.js +64 -0
- package/dist/listgrid/transfer/DataImportSample.d.ts +10 -0
- package/dist/listgrid/transfer/DataImportSample.js +105 -0
- package/dist/listgrid/transfer/DataImporter.d.ts +8 -0
- package/dist/listgrid/transfer/DataImporter.js +335 -0
- package/dist/listgrid/transfer/DynamicDataImporter.d.ts +4 -0
- package/dist/listgrid/transfer/DynamicDataImporter.js +13 -0
- package/dist/listgrid/transfer/ExcelPasswordField.d.ts +9 -0
- package/dist/listgrid/transfer/ExcelPasswordField.js +23 -0
- package/dist/listgrid/transfer/Provider/ExcelProvider.d.ts +24 -0
- package/dist/listgrid/transfer/Provider/ExcelProvider.js +194 -0
- package/dist/listgrid/transfer/Type.d.ts +176 -0
- package/dist/listgrid/transfer/Type.js +568 -0
- package/dist/listgrid/ui/GlobalModalManager.d.ts +22 -0
- package/dist/listgrid/ui/GlobalModalManager.js +65 -0
- package/dist/listgrid/ui/UIProvider.d.ts +151 -0
- package/dist/listgrid/ui/UIProvider.js +292 -0
- package/dist/listgrid/ui/index.d.ts +2 -0
- package/dist/listgrid/ui/index.js +2 -0
- package/dist/listgrid/urlState/UrlStateProvider.d.ts +8 -0
- package/dist/listgrid/urlState/UrlStateProvider.js +20 -0
- package/dist/listgrid/urlState/index.d.ts +4 -0
- package/dist/listgrid/urlState/index.js +2 -0
- package/dist/listgrid/urlState/types.d.ts +21 -0
- package/dist/listgrid/urlState/types.js +14 -0
- package/dist/listgrid/utils/BooleanUtil.d.ts +1 -0
- package/dist/listgrid/utils/BooleanUtil.js +9 -0
- package/dist/listgrid/utils/CompareUtil.d.ts +7 -0
- package/dist/listgrid/utils/CompareUtil.js +87 -0
- package/dist/listgrid/utils/PhoneUtil.d.ts +19 -0
- package/dist/listgrid/utils/PhoneUtil.js +38 -0
- package/dist/listgrid/utils/RequestUtil.d.ts +6 -0
- package/dist/listgrid/utils/RequestUtil.js +6 -0
- package/dist/listgrid/utils/StringUtil.d.ts +32 -0
- package/dist/listgrid/utils/StringUtil.js +316 -0
- package/dist/listgrid/utils/classNames.d.ts +21 -0
- package/dist/listgrid/utils/classNames.js +29 -0
- package/dist/listgrid/utils/cn.d.ts +12 -0
- package/dist/listgrid/utils/cn.js +15 -0
- package/dist/listgrid/utils/hash.d.ts +1 -0
- package/dist/listgrid/utils/hash.js +15 -0
- package/dist/listgrid/utils/i18n.d.ts +16 -0
- package/dist/listgrid/utils/i18n.js +31 -0
- package/dist/listgrid/utils/index.d.ts +10 -0
- package/dist/listgrid/utils/index.js +17 -0
- package/dist/listgrid/utils/jsonUtils.d.ts +4 -0
- package/dist/listgrid/utils/jsonUtils.js +77 -0
- package/dist/listgrid/utils/lazy.d.ts +10 -0
- package/dist/listgrid/utils/lazy.js +13 -0
- package/dist/listgrid/utils/simpleCrypt.d.ts +4 -0
- package/dist/listgrid/utils/simpleCrypt.js +79 -0
- package/dist/listgrid/validations/CustomValidation.d.ts +8 -0
- package/dist/listgrid/validations/CustomValidation.js +10 -0
- package/dist/listgrid/validations/EmailValidation.d.ts +4 -0
- package/dist/listgrid/validations/EmailValidation.js +7 -0
- package/dist/listgrid/validations/IpAddressValidation.d.ts +26 -0
- package/dist/listgrid/validations/IpAddressValidation.js +57 -0
- package/dist/listgrid/validations/MinMaxNumberValidation.d.ts +14 -0
- package/dist/listgrid/validations/MinMaxNumberValidation.js +28 -0
- package/dist/listgrid/validations/PasswordValidation.d.ts +4 -0
- package/dist/listgrid/validations/PasswordValidation.js +7 -0
- package/dist/listgrid/validations/PhoneNumberValidation.d.ts +12 -0
- package/dist/listgrid/validations/PhoneNumberValidation.js +24 -0
- package/dist/listgrid/validations/RegexFormularValidation.d.ts +7 -0
- package/dist/listgrid/validations/RegexFormularValidation.js +28 -0
- package/dist/listgrid/validations/RegexValidation.d.ts +8 -0
- package/dist/listgrid/validations/RegexValidation.js +17 -0
- package/dist/listgrid/validations/RequiredValidation.d.ts +7 -0
- package/dist/listgrid/validations/RequiredValidation.js +12 -0
- package/dist/listgrid/validations/StringValidation.d.ts +17 -0
- package/dist/listgrid/validations/StringValidation.js +33 -0
- package/dist/listgrid/validations/TelephoneNumberValidation.d.ts +12 -0
- package/dist/listgrid/validations/TelephoneNumberValidation.js +24 -0
- package/dist/listgrid/validations/Validation.d.ts +63 -0
- package/dist/listgrid/validations/Validation.js +72 -0
- package/dist/listgrid/view/ViewEntityFormWrapper.d.ts +16 -0
- package/dist/listgrid/view/ViewEntityFormWrapper.js +98 -0
- package/dist/listgrid/view/ViewListGridWrapper.d.ts +10 -0
- package/dist/listgrid/view/ViewListGridWrapper.js +96 -0
- package/dist/styles/base.css +116 -0
- package/dist/styles/components.css +1404 -0
- package/dist/styles/layouts.css +3206 -0
- package/dist/styles/primitives.css +1542 -0
- package/dist/styles/tokens.css +218 -0
- package/dist/styles.css +6486 -0
- package/docs/PRIMITIVES.md +271 -0
- package/package.json +201 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 전화번호에서 하이픈을 제거합니다.
|
|
3
|
+
* @param phoneNumber 전화번호 문자열 (하이픈 포함 가능)
|
|
4
|
+
* @returns 하이픈이 제거된 숫자만 있는 문자열
|
|
5
|
+
* @example removePhoneNumberHyphens("010-1234-5678") => "01012345678"
|
|
6
|
+
* @example removePhoneNumberHyphens("01012345678") => "01012345678"
|
|
7
|
+
*/
|
|
8
|
+
export function removePhoneNumberHyphens(phoneNumber) {
|
|
9
|
+
if (!phoneNumber)
|
|
10
|
+
return '';
|
|
11
|
+
return phoneNumber.replace(/-/g, '');
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* 전화번호를 하이픈이 포함된 형식으로 포맷팅합니다.
|
|
15
|
+
* 10자리: 000-0000-0000 (예: 02-1234-5678)
|
|
16
|
+
* 11자리: 000-0000-0000 (예: 010-1234-5678)
|
|
17
|
+
* @param phoneNumber 전화번호 문자열 (숫자만)
|
|
18
|
+
* @returns 하이픈이 포함된 전화번호 문자열
|
|
19
|
+
* @example formatPhoneNumber("01012345678") => "010-1234-5678"
|
|
20
|
+
* @example formatPhoneNumber("0212345678") => "02-1234-5678"
|
|
21
|
+
* @example formatPhoneNumber("010-1234-5678") => "010-1234-5678" (이미 포맷팅된 경우)
|
|
22
|
+
*/
|
|
23
|
+
export function formatPhoneNumber(phoneNumber) {
|
|
24
|
+
if (!phoneNumber)
|
|
25
|
+
return '';
|
|
26
|
+
// 이미 하이픈이 포함되어 있으면 제거 후 다시 포맷팅
|
|
27
|
+
const digitsOnly = removePhoneNumberHyphens(phoneNumber);
|
|
28
|
+
if (digitsOnly.length === 10) {
|
|
29
|
+
// 10자리: 000-0000-0000 형식
|
|
30
|
+
return `${digitsOnly.substring(0, 3)}-${digitsOnly.substring(3, 6)}-${digitsOnly.substring(6)}`;
|
|
31
|
+
}
|
|
32
|
+
else if (digitsOnly.length === 11) {
|
|
33
|
+
// 11자리: 000-0000-0000 형식
|
|
34
|
+
return `${digitsOnly.substring(0, 3)}-${digitsOnly.substring(3, 7)}-${digitsOnly.substring(7)}`;
|
|
35
|
+
}
|
|
36
|
+
// 10자리 또는 11자리가 아닌 경우 원본 반환 (검증은 별도로 처리)
|
|
37
|
+
return digitsOnly;
|
|
38
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// Thin compatibility shim pointing ExcelProvider at the host-configured ApiClient.
|
|
2
|
+
// See src/listgrid/api/ApiClient.ts.
|
|
3
|
+
import { callExternalHttpRequest as _call } from '../api';
|
|
4
|
+
export const callExternalHttpRequest = _call;
|
|
5
|
+
export const RequestUtil = { callExternalHttpRequest: _call };
|
|
6
|
+
export default RequestUtil;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export declare function isBlank(data: unknown): boolean;
|
|
2
|
+
export declare function appendString(str: string | null | undefined, added: string[] | string | null | undefined, splitter?: string): string;
|
|
3
|
+
export declare function subStringBeforeLast(value: string, splitCode: string): string;
|
|
4
|
+
export declare function subStringBefore(value: string, splitCode: string): string;
|
|
5
|
+
export declare function subStringAfterLast(value: string, splitCode: string): string;
|
|
6
|
+
export declare function subStringAfter(value: string, splitCode: string): string;
|
|
7
|
+
export declare function subStringBetween(value: string, startCode: string, endCode: string): string;
|
|
8
|
+
export declare function subStringBetweenLast(value: string, startCode: string, endCode: string): string;
|
|
9
|
+
export declare function defaultString(value: unknown, defaultValue?: string): string;
|
|
10
|
+
export declare function appendPrefix(str: string, prefix: string, split?: string): string;
|
|
11
|
+
export declare function appendSuffix(str: string, suffix: string, split?: string): string;
|
|
12
|
+
export declare function removePrefix(str: string, prefix: string, split?: string): string;
|
|
13
|
+
export declare function removeSuffix(str: string, suffix: string, split?: string): string;
|
|
14
|
+
export declare function appendPrefixSuffix(str: string, prefix: string, suffix: string, split?: string): string;
|
|
15
|
+
export declare function getHashCode(data: unknown): number;
|
|
16
|
+
export declare function removeTrailingSeparator(input: string, separator: string): string;
|
|
17
|
+
export declare function startsWith(value: string, prefix: string, ignoreCase?: boolean): boolean;
|
|
18
|
+
export declare function endsWith(value?: string, postFix?: string, ignoreCase?: boolean): boolean;
|
|
19
|
+
export declare function convertToCamelCase(input?: string): string;
|
|
20
|
+
export declare function equalsIgnoreCase(value: string, other: string, trim?: boolean): boolean;
|
|
21
|
+
export type WordPostfixType = '1' | '2';
|
|
22
|
+
/**
|
|
23
|
+
* 단어 뒤에 '은', '는', '이', '가'를 선택적으로 붙여 준다.
|
|
24
|
+
* 한글에 대해서 유효하며, 한글이 아닌 단어는 제대로 되지 않지만 유사하게 처리된다.
|
|
25
|
+
* @param type
|
|
26
|
+
* @param word
|
|
27
|
+
*/
|
|
28
|
+
export declare function addKoreanWordPostfix(type: WordPostfixType, word?: string): string;
|
|
29
|
+
export declare function generateSlug(input?: string): string;
|
|
30
|
+
export declare function camelCaseToSnakeCase(camel: string, upperCase: boolean): string;
|
|
31
|
+
export declare function splitWithSplitCode(value: string, split: string): string[];
|
|
32
|
+
export declare function equalsIgnoreBlank(value: string | null | undefined, other: string | null | undefined): boolean;
|
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
import { stringify } from './jsonUtils';
|
|
2
|
+
import { isTrue } from './BooleanUtil';
|
|
3
|
+
export function isBlank(data) {
|
|
4
|
+
return data === undefined || data === null || data === '';
|
|
5
|
+
}
|
|
6
|
+
export function appendString(str, added, splitter) {
|
|
7
|
+
str = str === null || str === undefined ? '' : str;
|
|
8
|
+
const split = splitter === undefined ? ' ' : splitter;
|
|
9
|
+
if (isBlank(added)) {
|
|
10
|
+
return str;
|
|
11
|
+
}
|
|
12
|
+
if (Array.isArray(added)) {
|
|
13
|
+
for (const add of added) {
|
|
14
|
+
str += split + add;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
str += split + added;
|
|
19
|
+
}
|
|
20
|
+
return str;
|
|
21
|
+
}
|
|
22
|
+
export function subStringBeforeLast(value, splitCode) {
|
|
23
|
+
if (!value.includes(splitCode)) {
|
|
24
|
+
return value;
|
|
25
|
+
}
|
|
26
|
+
const split = value.split(splitCode);
|
|
27
|
+
let result = '';
|
|
28
|
+
for (let i = 0; i < split.length - 1; i++) {
|
|
29
|
+
result += split[i];
|
|
30
|
+
if (i < split.length - 2) {
|
|
31
|
+
result += splitCode;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
export function subStringBefore(value, splitCode) {
|
|
37
|
+
if (!value.includes(splitCode)) {
|
|
38
|
+
return value;
|
|
39
|
+
}
|
|
40
|
+
const split = value.split(splitCode);
|
|
41
|
+
return defaultString(split[0]);
|
|
42
|
+
}
|
|
43
|
+
export function subStringAfterLast(value, splitCode) {
|
|
44
|
+
if (!value.includes(splitCode)) {
|
|
45
|
+
return value;
|
|
46
|
+
}
|
|
47
|
+
const split = value.split(splitCode);
|
|
48
|
+
return defaultString(split[split.length - 1]);
|
|
49
|
+
}
|
|
50
|
+
export function subStringAfter(value, splitCode) {
|
|
51
|
+
if (!value.includes(splitCode)) {
|
|
52
|
+
return value;
|
|
53
|
+
}
|
|
54
|
+
const split = value.split(splitCode);
|
|
55
|
+
let str = '';
|
|
56
|
+
for (let i = 1; i < split.length; i++) {
|
|
57
|
+
str += split[i];
|
|
58
|
+
if (i < split.length - 1) {
|
|
59
|
+
str += splitCode;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return str;
|
|
63
|
+
}
|
|
64
|
+
export function subStringBetween(value, startCode, endCode) {
|
|
65
|
+
return subStringBefore(subStringAfter(value, startCode), endCode);
|
|
66
|
+
}
|
|
67
|
+
export function subStringBetweenLast(value, startCode, endCode) {
|
|
68
|
+
return subStringBeforeLast(subStringAfterLast(value, startCode), endCode);
|
|
69
|
+
}
|
|
70
|
+
export function defaultString(value, defaultValue = '') {
|
|
71
|
+
if (isBlank(value)) {
|
|
72
|
+
return defaultValue;
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
if (typeof value === 'string') {
|
|
76
|
+
return value;
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
return String(value);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
export function appendPrefix(str, prefix, split) {
|
|
84
|
+
if (!isBlank(split)) {
|
|
85
|
+
prefix = prefix + split;
|
|
86
|
+
}
|
|
87
|
+
if (str.startsWith(prefix)) {
|
|
88
|
+
return str;
|
|
89
|
+
}
|
|
90
|
+
if (!isBlank(split) && str.startsWith(split)) {
|
|
91
|
+
str = str.substring(split.length);
|
|
92
|
+
}
|
|
93
|
+
return prefix + str;
|
|
94
|
+
}
|
|
95
|
+
export function appendSuffix(str, suffix, split) {
|
|
96
|
+
if (!isBlank(split)) {
|
|
97
|
+
suffix = split + suffix;
|
|
98
|
+
}
|
|
99
|
+
if (str.endsWith(suffix)) {
|
|
100
|
+
return str;
|
|
101
|
+
}
|
|
102
|
+
if (!isBlank(split) && str.endsWith(split)) {
|
|
103
|
+
str = str.substring(0, str.length - split.length);
|
|
104
|
+
}
|
|
105
|
+
return str + suffix;
|
|
106
|
+
}
|
|
107
|
+
export function removePrefix(str, prefix, split) {
|
|
108
|
+
if (!isBlank(split)) {
|
|
109
|
+
prefix = prefix + split;
|
|
110
|
+
}
|
|
111
|
+
if (!str.startsWith(prefix)) {
|
|
112
|
+
return str;
|
|
113
|
+
}
|
|
114
|
+
return subStringAfter(str, prefix);
|
|
115
|
+
}
|
|
116
|
+
export function removeSuffix(str, suffix, split) {
|
|
117
|
+
if (!isBlank(split)) {
|
|
118
|
+
suffix = split + suffix;
|
|
119
|
+
}
|
|
120
|
+
if (!str.endsWith(suffix)) {
|
|
121
|
+
return str;
|
|
122
|
+
}
|
|
123
|
+
return subStringBeforeLast(str, suffix);
|
|
124
|
+
}
|
|
125
|
+
export function appendPrefixSuffix(str, prefix, suffix, split) {
|
|
126
|
+
return appendSuffix(appendPrefix(str, prefix, split), suffix, split);
|
|
127
|
+
}
|
|
128
|
+
export function getHashCode(data) {
|
|
129
|
+
if (data === null || data === undefined) {
|
|
130
|
+
return 0;
|
|
131
|
+
}
|
|
132
|
+
if (typeof data === 'string') {
|
|
133
|
+
let hash = 0;
|
|
134
|
+
if (data.length === 0) {
|
|
135
|
+
return hash;
|
|
136
|
+
}
|
|
137
|
+
for (let i = 0; i < data.length; i++) {
|
|
138
|
+
const char = data.charCodeAt(i);
|
|
139
|
+
hash = (hash << 5) - hash + char;
|
|
140
|
+
hash = hash & hash;
|
|
141
|
+
}
|
|
142
|
+
return hash;
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
return getHashCode(stringify(data));
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
export function removeTrailingSeparator(input, separator) {
|
|
149
|
+
const parts = input.split(separator);
|
|
150
|
+
// 배열의 마지막 요소를 가져옵니다.
|
|
151
|
+
const lastPart = parts[parts.length - 1];
|
|
152
|
+
// 마지막 요소가 공백이 아니라면 '/'를 포함한 부분을 제거하고 반환합니다.
|
|
153
|
+
if (lastPart.trim() !== '') {
|
|
154
|
+
return input.slice(0, input.lastIndexOf(separator));
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
// 마지막 요소가 공백이라면 입력값을 그대로 반환합니다.
|
|
158
|
+
return input;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
export function startsWith(value, prefix, ignoreCase) {
|
|
162
|
+
if (value === undefined || prefix === undefined)
|
|
163
|
+
return false;
|
|
164
|
+
if (isTrue(ignoreCase)) {
|
|
165
|
+
return value.toLowerCase().startsWith(prefix.toLowerCase());
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
return value.startsWith(prefix);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
export function endsWith(value, postFix, ignoreCase) {
|
|
172
|
+
if (value === undefined || postFix === undefined)
|
|
173
|
+
return false;
|
|
174
|
+
if (isTrue(ignoreCase)) {
|
|
175
|
+
return value.toLowerCase().endsWith(postFix.toLowerCase()) ?? false;
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
return value.endsWith(postFix) ?? false;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
export function convertToCamelCase(input) {
|
|
182
|
+
// 입력이 없거나 공백인 경우
|
|
183
|
+
if (!input || input.trim().length === 0) {
|
|
184
|
+
return '';
|
|
185
|
+
}
|
|
186
|
+
// 공백 제거
|
|
187
|
+
input = input.trim();
|
|
188
|
+
// 문자열의 첫 글자를 소문자로 변환
|
|
189
|
+
let result = input.charAt(0).toLowerCase();
|
|
190
|
+
// 두 번째 글자부터 반복하여 처리
|
|
191
|
+
for (let i = 1; i < input.length; i++) {
|
|
192
|
+
// 현재 문자와 이전 문자가 둘 다 대문자이고, 이전 문자가 마지막 문자열이 아닐 때
|
|
193
|
+
if (input.charAt(i).toUpperCase() === input.charAt(i) &&
|
|
194
|
+
input.charAt(i - 1).toUpperCase() === input.charAt(i - 1) &&
|
|
195
|
+
i !== input.length - 1) {
|
|
196
|
+
// 현재 문자를 소문자로 변환하여 결과에 추가
|
|
197
|
+
result += input.charAt(i).toLowerCase();
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
// 그 외의 경우는 그대로 결과에 추가
|
|
201
|
+
result += input.charAt(i);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return result;
|
|
205
|
+
}
|
|
206
|
+
export function equalsIgnoreCase(value, other, trim) {
|
|
207
|
+
if (isTrue(trim)) {
|
|
208
|
+
value = value.trim();
|
|
209
|
+
other = other.trim();
|
|
210
|
+
}
|
|
211
|
+
return value.toLowerCase() === other.toLowerCase();
|
|
212
|
+
}
|
|
213
|
+
// stripHtmlTags는 HtmlUtil에서 더 고급 버전으로 제공됩니다.
|
|
214
|
+
// HtmlUtil의 stripHtmlTags를 사용하세요.
|
|
215
|
+
function _stripHtmlTags(html) {
|
|
216
|
+
const regex = /<[^>]*>/g; // HTML 태그를 찾기 위한 정규식
|
|
217
|
+
return html.replace(regex, ''); // HTML 태그를 빈 문자열로 대체하여 제거
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* 단어 뒤에 '은', '는', '이', '가'를 선택적으로 붙여 준다.
|
|
221
|
+
* 한글에 대해서 유효하며, 한글이 아닌 단어는 제대로 되지 않지만 유사하게 처리된다.
|
|
222
|
+
* @param type
|
|
223
|
+
* @param word
|
|
224
|
+
*/
|
|
225
|
+
export function addKoreanWordPostfix(type, word) {
|
|
226
|
+
// word가 빈 문자열이거나 undefined면 빈 문자열을 리턴
|
|
227
|
+
if (!word)
|
|
228
|
+
return '';
|
|
229
|
+
// 한글의 유니코드 범위
|
|
230
|
+
const HANGUL_START = 0xac00;
|
|
231
|
+
const HANGUL_END = 0xd7a3;
|
|
232
|
+
// 단어의 마지막 글자를 가져옴
|
|
233
|
+
const lastChar = word[word.length - 1];
|
|
234
|
+
// 마지막 글자가 한글인 경우
|
|
235
|
+
if (lastChar.charCodeAt(0) >= HANGUL_START && lastChar.charCodeAt(0) <= HANGUL_END) {
|
|
236
|
+
const lastCharCode = lastChar.charCodeAt(0) - HANGUL_START;
|
|
237
|
+
const jongseong = lastCharCode % 28;
|
|
238
|
+
// 받침이 있는 경우
|
|
239
|
+
const hasJongseong = jongseong !== 0;
|
|
240
|
+
if (type === '1') {
|
|
241
|
+
return hasJongseong ? `${word}은` : `${word}는`;
|
|
242
|
+
}
|
|
243
|
+
else if (type === '2') {
|
|
244
|
+
return hasJongseong ? `${word}이` : `${word}가`;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
// 영어 단어인 경우
|
|
248
|
+
const vowels = ['a', 'e', 'i', 'o', 'u'];
|
|
249
|
+
const isLastCharVowel = vowels.includes(lastChar.toLowerCase());
|
|
250
|
+
if (type === '1') {
|
|
251
|
+
return isLastCharVowel ? `${word}는` : `${word}은`;
|
|
252
|
+
}
|
|
253
|
+
else if (type === '2') {
|
|
254
|
+
return isLastCharVowel ? `${word}가` : `${word}이`;
|
|
255
|
+
}
|
|
256
|
+
return word; // 이 경우는 발생하지 않겠지만 안전성을 위해 추가
|
|
257
|
+
}
|
|
258
|
+
export function generateSlug(input) {
|
|
259
|
+
if (isBlank(input) || input === undefined) {
|
|
260
|
+
return '';
|
|
261
|
+
}
|
|
262
|
+
// 입력 문자열을 소문자로 변환
|
|
263
|
+
let modifiedString = input.toLowerCase();
|
|
264
|
+
// 한글, 영어, 숫자, 그리고 '-'만 남기기
|
|
265
|
+
modifiedString = modifiedString.replace(/[^a-z0-9가-힣\s-]/g, '');
|
|
266
|
+
// 연속된 공백을 하나의 공백으로 대체
|
|
267
|
+
modifiedString = modifiedString.replace(/\s+/g, ' ');
|
|
268
|
+
// 문자열에서 공백을 '-'로 대체
|
|
269
|
+
modifiedString = modifiedString.replace(/\s/g, '-');
|
|
270
|
+
// 변환된 문자열의 맨 앞에 '/'를 붙이되, 이미 '/'로 시작하면 추가하지 않음
|
|
271
|
+
if (!modifiedString.startsWith('/')) {
|
|
272
|
+
modifiedString = `/${modifiedString}`;
|
|
273
|
+
}
|
|
274
|
+
return modifiedString;
|
|
275
|
+
}
|
|
276
|
+
export function camelCaseToSnakeCase(camel, upperCase) {
|
|
277
|
+
// 먼저 "-" 문자를 "_"로 대체
|
|
278
|
+
camel = camel.replace(/-/g, '_');
|
|
279
|
+
let sb = [];
|
|
280
|
+
const length = camel.length;
|
|
281
|
+
for (let i = 0; i < length; ++i) {
|
|
282
|
+
const char = camel.charAt(i);
|
|
283
|
+
if (char === char.toUpperCase() && char !== '_' && sb.length > 0) {
|
|
284
|
+
sb.push('_');
|
|
285
|
+
}
|
|
286
|
+
sb.push(upperCase ? char.toUpperCase() : char.toLowerCase());
|
|
287
|
+
}
|
|
288
|
+
return sb.join('');
|
|
289
|
+
}
|
|
290
|
+
export function splitWithSplitCode(value, split) {
|
|
291
|
+
if (isBlank(value)) {
|
|
292
|
+
return [];
|
|
293
|
+
}
|
|
294
|
+
if (isBlank(split)) {
|
|
295
|
+
return [value];
|
|
296
|
+
}
|
|
297
|
+
const result = [];
|
|
298
|
+
for (const val of value.split(split)) {
|
|
299
|
+
if (!isBlank(val)) {
|
|
300
|
+
const trimmed = val.trim();
|
|
301
|
+
if (!isBlank(trimmed)) {
|
|
302
|
+
result.push(trimmed);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
return result;
|
|
307
|
+
}
|
|
308
|
+
export function equalsIgnoreBlank(value, other) {
|
|
309
|
+
if (isBlank(value) && isBlank(other)) {
|
|
310
|
+
return true;
|
|
311
|
+
}
|
|
312
|
+
if (isBlank(value) || isBlank(other)) {
|
|
313
|
+
return false;
|
|
314
|
+
}
|
|
315
|
+
return equalsIgnoreCase(value, other, true);
|
|
316
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-slot override map accepted by field components.
|
|
3
|
+
* Keys are component-defined slot names (e.g. `root`, `input`, `label`, `error`).
|
|
4
|
+
* Values are any className string — Tailwind, scoped `rcm-*` classes, or CSS
|
|
5
|
+
* module identifiers; the merger treats them as opaque strings.
|
|
6
|
+
*/
|
|
7
|
+
export type ClassNamesMap<K extends string> = Partial<Record<K, string>>;
|
|
8
|
+
/**
|
|
9
|
+
* Merge a component's built-in default class for a slot with a host override
|
|
10
|
+
* from the `classNames` prop. Built-ins come first so host overrides can win
|
|
11
|
+
* on the right when using tailwind-merge / plain cascade.
|
|
12
|
+
*
|
|
13
|
+
* Example:
|
|
14
|
+
* <input className={mergeSlot('rcm-field-input', classNames?.input)} />
|
|
15
|
+
*/
|
|
16
|
+
export declare function mergeSlot(base: string, override?: string): string;
|
|
17
|
+
/**
|
|
18
|
+
* Convenience when a component wants to expose a `classNames` slot map and
|
|
19
|
+
* resolve it up-front rather than calling `mergeSlot` per slot.
|
|
20
|
+
*/
|
|
21
|
+
export declare function resolveSlots<K extends string>(defaults: Record<K, string>, overrides?: ClassNamesMap<K>): Record<K, string>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { cn } from './cn';
|
|
2
|
+
/**
|
|
3
|
+
* Merge a component's built-in default class for a slot with a host override
|
|
4
|
+
* from the `classNames` prop. Built-ins come first so host overrides can win
|
|
5
|
+
* on the right when using tailwind-merge / plain cascade.
|
|
6
|
+
*
|
|
7
|
+
* Example:
|
|
8
|
+
* <input className={mergeSlot('rcm-field-input', classNames?.input)} />
|
|
9
|
+
*/
|
|
10
|
+
export function mergeSlot(base, override) {
|
|
11
|
+
if (!override)
|
|
12
|
+
return base;
|
|
13
|
+
return cn(base, override);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Convenience when a component wants to expose a `classNames` slot map and
|
|
17
|
+
* resolve it up-front rather than calling `mergeSlot` per slot.
|
|
18
|
+
*/
|
|
19
|
+
export function resolveSlots(defaults, overrides) {
|
|
20
|
+
if (!overrides)
|
|
21
|
+
return defaults;
|
|
22
|
+
const out = { ...defaults };
|
|
23
|
+
for (const key of Object.keys(overrides)) {
|
|
24
|
+
const value = overrides[key];
|
|
25
|
+
if (value)
|
|
26
|
+
out[key] = cn(defaults[key], value);
|
|
27
|
+
}
|
|
28
|
+
return out;
|
|
29
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type ClassValue } from 'clsx';
|
|
2
|
+
/**
|
|
3
|
+
* Tailwind CSS 클래스 병합 유틸리티
|
|
4
|
+
* - clsx로 조건부 클래스를 처리하고
|
|
5
|
+
* - tailwind-merge로 충돌하는 클래스를 스마트하게 병합
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* cn("p-4", "p-2") // => "p-2" (마지막 값이 적용)
|
|
9
|
+
* cn("text-red-500", condition && "text-blue-500") // => 조건부 클래스
|
|
10
|
+
* cn(baseClass, customClass) // => 기본 클래스 + 커스텀 클래스 병합
|
|
11
|
+
*/
|
|
12
|
+
export declare const cn: (...inputs: ClassValue[]) => string;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { clsx } from 'clsx';
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
/**
|
|
4
|
+
* Tailwind CSS 클래스 병합 유틸리티
|
|
5
|
+
* - clsx로 조건부 클래스를 처리하고
|
|
6
|
+
* - tailwind-merge로 충돌하는 클래스를 스마트하게 병합
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* cn("p-4", "p-2") // => "p-2" (마지막 값이 적용)
|
|
10
|
+
* cn("text-red-500", condition && "text-blue-500") // => 조건부 클래스
|
|
11
|
+
* cn(baseClass, customClass) // => 기본 클래스 + 커스텀 클래스 병합
|
|
12
|
+
*/
|
|
13
|
+
export const cn = (...inputs) => {
|
|
14
|
+
return twMerge(clsx(inputs));
|
|
15
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function hexHash(value: string): string;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Self-implemented hex hash to replace next/dist/shared/lib/hash#hexHash.
|
|
2
|
+
//
|
|
3
|
+
// The original Next.js internal hash is FNV-1a on a 32-bit accumulator,
|
|
4
|
+
// formatted as unsigned hex. This implementation matches that behavior so
|
|
5
|
+
// call sites (cache keys, React `key` props) keep stable output across
|
|
6
|
+
// the framework-free migration.
|
|
7
|
+
export function hexHash(value) {
|
|
8
|
+
let h = 0x811c9dc5; // FNV offset basis, 32-bit
|
|
9
|
+
for (let i = 0; i < value.length; i++) {
|
|
10
|
+
h ^= value.charCodeAt(i);
|
|
11
|
+
// FNV prime 16777619, force 32-bit via Math.imul
|
|
12
|
+
h = Math.imul(h, 0x01000193);
|
|
13
|
+
}
|
|
14
|
+
return (h >>> 0).toString(16);
|
|
15
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface TranslatorI18n {
|
|
2
|
+
language?: string;
|
|
3
|
+
changeLanguage?(lang: string): void;
|
|
4
|
+
}
|
|
5
|
+
export interface Translator {
|
|
6
|
+
t: (key: string, fallback?: string) => string;
|
|
7
|
+
i18n?: TranslatorI18n;
|
|
8
|
+
initLocale?: (themeLocale: string) => void;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Host apps pass a FACTORY (not a fixed translator) because language may
|
|
12
|
+
* change per call. The factory is invoked on every `getTranslation()` call.
|
|
13
|
+
*/
|
|
14
|
+
export type TranslatorFactory = () => Translator;
|
|
15
|
+
export declare function configureTranslator(factory: TranslatorFactory): void;
|
|
16
|
+
export declare function getTranslation(): Translator;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// i18n contract: library emits translation keys (e.g. "common.save",
|
|
2
|
+
// "menu.academic.admission.notice"), host maps them to strings.
|
|
3
|
+
//
|
|
4
|
+
// Usage:
|
|
5
|
+
// import { configureTranslator } from '@rchemist/listgrid';
|
|
6
|
+
// configureTranslator(() => ({ t: myI18n.t, i18n: myI18n, initLocale: ... }));
|
|
7
|
+
//
|
|
8
|
+
// Library code then calls `getTranslation().t('key')` and gets the host's
|
|
9
|
+
// translation. When no host is configured, `t(key)` returns the key itself
|
|
10
|
+
// (identity translator) so UI is still renderable.
|
|
11
|
+
let _factory;
|
|
12
|
+
export function configureTranslator(factory) {
|
|
13
|
+
_factory = factory;
|
|
14
|
+
}
|
|
15
|
+
const DEFAULT_TRANSLATOR = {
|
|
16
|
+
t: (key, fallback) => fallback ?? key,
|
|
17
|
+
i18n: {},
|
|
18
|
+
initLocale: () => { },
|
|
19
|
+
};
|
|
20
|
+
export function getTranslation() {
|
|
21
|
+
if (_factory) {
|
|
22
|
+
try {
|
|
23
|
+
return _factory();
|
|
24
|
+
}
|
|
25
|
+
catch (e) {
|
|
26
|
+
console.warn('[@rchemist/listgrid] configured translator factory threw; falling back to identity.', e);
|
|
27
|
+
return DEFAULT_TRANSLATOR;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return DEFAULT_TRANSLATOR;
|
|
31
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from './BooleanUtil';
|
|
2
|
+
export * from './CompareUtil';
|
|
3
|
+
export * from './PhoneUtil';
|
|
4
|
+
export * from './StringUtil';
|
|
5
|
+
export * from './jsonUtils';
|
|
6
|
+
export { getTranslation } from './i18n';
|
|
7
|
+
export { cn } from './cn';
|
|
8
|
+
export * as simpleCrypt from './simpleCrypt';
|
|
9
|
+
export { callExternalHttpRequest, getExternalApiData, getExternalApiDataWithError } from '../api';
|
|
10
|
+
export declare function endsWith(value: string | undefined | null, suffix: string): boolean;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Barrel re-exporting the inlined utilities used across listgrid.
|
|
2
|
+
// Host-specific i18n is stubbed (see i18n.ts).
|
|
3
|
+
export * from './BooleanUtil';
|
|
4
|
+
export * from './CompareUtil';
|
|
5
|
+
export * from './PhoneUtil';
|
|
6
|
+
export * from './StringUtil';
|
|
7
|
+
export * from './jsonUtils';
|
|
8
|
+
export { getTranslation } from './i18n';
|
|
9
|
+
export { cn } from './cn';
|
|
10
|
+
export * as simpleCrypt from './simpleCrypt';
|
|
11
|
+
// API call helpers delegate to the host-configured ApiClient (Stage 5).
|
|
12
|
+
// See src/listgrid/api/ApiClient.ts.
|
|
13
|
+
export { callExternalHttpRequest, getExternalApiData, getExternalApiDataWithError } from '../api';
|
|
14
|
+
// String helpers absent from the inlined utils but used by original source.
|
|
15
|
+
export function endsWith(value, suffix) {
|
|
16
|
+
return typeof value === 'string' && value.endsWith(suffix);
|
|
17
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// // type script 4.9 버그로 인해 TSON 을 사용할 수 없다.
|
|
2
|
+
// import TSON from "typescript-json";
|
|
3
|
+
export function replacer(_key, value) {
|
|
4
|
+
if (value instanceof Map) {
|
|
5
|
+
return {
|
|
6
|
+
dataType: 'Map',
|
|
7
|
+
value: Array.from(value.entries()), // or with spread: value: [...value]
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
return value;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export function reviver(_key, value) {
|
|
15
|
+
if (typeof value === 'object' && value !== null) {
|
|
16
|
+
const record = value;
|
|
17
|
+
if (record.dataType === 'Map' && record.value) {
|
|
18
|
+
return new Map(record.value);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return value;
|
|
22
|
+
}
|
|
23
|
+
function mapReplacer(_key, value) {
|
|
24
|
+
if (value instanceof Map) {
|
|
25
|
+
return Object.fromEntries(value);
|
|
26
|
+
}
|
|
27
|
+
else if (value instanceof Set) {
|
|
28
|
+
return [...value];
|
|
29
|
+
// of course you can separate cases to turn Maps into objects
|
|
30
|
+
}
|
|
31
|
+
return value;
|
|
32
|
+
}
|
|
33
|
+
export function stringify(obj, beautify) {
|
|
34
|
+
// Circular reference를 처리하기 위한 WeakSet
|
|
35
|
+
const seen = new WeakSet();
|
|
36
|
+
const circularSafeReplacer = (key, value) => {
|
|
37
|
+
// 먼저 mapReplacer 적용
|
|
38
|
+
const mappedValue = mapReplacer(key, value);
|
|
39
|
+
// 객체가 아니거나 null인 경우 그대로 반환
|
|
40
|
+
if (typeof mappedValue !== 'object' || mappedValue === null) {
|
|
41
|
+
return mappedValue;
|
|
42
|
+
}
|
|
43
|
+
// Circular reference 체크
|
|
44
|
+
if (seen.has(mappedValue)) {
|
|
45
|
+
return '[Circular Reference]';
|
|
46
|
+
}
|
|
47
|
+
seen.add(mappedValue);
|
|
48
|
+
return mappedValue;
|
|
49
|
+
};
|
|
50
|
+
try {
|
|
51
|
+
if (beautify) {
|
|
52
|
+
return JSON.stringify(obj, circularSafeReplacer, 2);
|
|
53
|
+
}
|
|
54
|
+
return JSON.stringify(obj, circularSafeReplacer);
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
console.error('stringify error:', error);
|
|
58
|
+
return '{}';
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
const simpleStringify = (object) => {
|
|
62
|
+
for (const eachIdx in object) {
|
|
63
|
+
if (object[eachIdx] instanceof Map) {
|
|
64
|
+
object[eachIdx] = Array.from(object[eachIdx]);
|
|
65
|
+
simpleStringify(object);
|
|
66
|
+
}
|
|
67
|
+
else if (typeof object[eachIdx] == 'object' && object[eachIdx] !== null) {
|
|
68
|
+
simpleStringify(object[eachIdx]);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return JSON.stringify(object);
|
|
72
|
+
};
|
|
73
|
+
// Re-export from `misc` — `parse<T = unknown>` is the canonical generic
|
|
74
|
+
// implementation. Prior duplicate definition was merged into `misc`.
|
|
75
|
+
// This re-export preserves existing `import { parse } from '../utils/jsonUtils'`
|
|
76
|
+
// paths for backward-compat.
|
|
77
|
+
export { parse } from '../misc';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React, { ComponentType } from 'react';
|
|
2
|
+
export interface LazyImportOptions {
|
|
3
|
+
loading?: () => React.ReactNode;
|
|
4
|
+
/** Ignored. Kept for next/dynamic API parity. */
|
|
5
|
+
ssr?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function lazyImport<P = any>(loader: () => Promise<{
|
|
8
|
+
default: ComponentType<any>;
|
|
9
|
+
}>, options?: LazyImportOptions): ComponentType<P>;
|
|
10
|
+
export { lazyImport as dynamic };
|