@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,359 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
'use client';
|
|
3
|
+
import { createElement as _createElement } from "react";
|
|
4
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { Pagination } from '../../ui';
|
|
6
|
+
import React, { useCallback, useEffect, useId, useMemo, useRef } from 'react';
|
|
7
|
+
import { EntireChecker } from './ui/EntireChecker';
|
|
8
|
+
import { LoadingOverlay } from '../../ui';
|
|
9
|
+
import { HeaderField } from './ui/HeaderField';
|
|
10
|
+
import { AdvancedSearchFormV2 as AdvancedSearchForm } from './AdvancedSearchFormV2';
|
|
11
|
+
import { isTrue } from '../../utils/BooleanUtil';
|
|
12
|
+
import { ListGridHeader } from './ListGridHeader';
|
|
13
|
+
import { SubCollectionButtons } from './SubCollectionButtons';
|
|
14
|
+
import { QuickSearchBar } from './QuickSearchBar';
|
|
15
|
+
import { RowItem } from './RowItem';
|
|
16
|
+
import { useListGridLogic } from './hooks/useListGridLogic';
|
|
17
|
+
import { ShowNotifications } from '../helper/ShowNotifications';
|
|
18
|
+
import { Stack } from '../../ui';
|
|
19
|
+
import { SubCollectionViewModal } from './ui/SubCollectionViewModal';
|
|
20
|
+
import { hasAnyRole, useSession } from '../../auth';
|
|
21
|
+
import { perfLog } from './utils/performanceLogger';
|
|
22
|
+
import { getListGridThemeByVariant, ListGridThemeProvider, useListGridTheme, } from './context/ListGridThemeContext';
|
|
23
|
+
import { EntityFormScopeProvider, useEntityFormScope } from './context/EntityFormScopeContext';
|
|
24
|
+
import { useSubCollectionExpansion } from './hooks/useSubCollectionExpansion';
|
|
25
|
+
import { ViewListGridSkeleton } from './ui/ViewListGridSkeleton';
|
|
26
|
+
import { filterMappedByFields } from './utils/mappedByFieldFilter';
|
|
27
|
+
import { SyncTopScrollbar } from './ui/SyncTopScrollbar';
|
|
28
|
+
const PaginationContainer = ({ themeClasses, totalPage, page, changePage, isPopup, }) => {
|
|
29
|
+
const containerRef = useRef(null);
|
|
30
|
+
return (_jsx("div", { ref: containerRef, className: themeClasses.pagination?.container ?? 'rcm-listgrid-pagination', children: _jsx(Pagination, { total: totalPage, value: page + 1, onChange: (p) => changePage(p - 1), responsiveSiblings: true, withControls: false, withQuickJump: !isPopup, withJumpInput: !isPopup, containerRef: containerRef }) }));
|
|
31
|
+
};
|
|
32
|
+
export const ViewListGrid = (props) => {
|
|
33
|
+
const gridId = useId();
|
|
34
|
+
const { manyToOne, listFields, advancedSearchFields, quickSearchProperty, enableHandleData, isSubCollection, isMainEntity, router, path, entityForm, showAdvancedSearch, setShowAdvancedSearch, searchForm, search, totalPage, totalCount, errors, notifications, viewFields, setViewFields, checkedItems, setCheckedItems, dataTransferConfig, managedId, setManagedId, title, managePriority, setManagePriority, rows, loading, showMessages, fetchData, deleteItems, onSelect, performQuickSearch, changePage, onChangeSearchForm, sortRowsPriority, setOpenBaseLoading, getCleanSearchForm, } = useListGridLogic(props);
|
|
35
|
+
// SubCollection inline expansion support
|
|
36
|
+
const parentScope = useEntityFormScope();
|
|
37
|
+
const currentDepth = isSubCollection ? parentScope.depth + 1 : 0;
|
|
38
|
+
const maxInlineDepth = parentScope.maxInlineDepth;
|
|
39
|
+
const shouldUseInlineMode = isSubCollection && currentDepth <= maxInlineDepth;
|
|
40
|
+
// Expansion state management for inline mode
|
|
41
|
+
const { expandedItems, isExpanded, toggleExpansion, collapseItem, canExpand } = useSubCollectionExpansion({
|
|
42
|
+
maxExpandedItems: parentScope.maxExpandedItems,
|
|
43
|
+
expansionMode: parentScope.expansionMode,
|
|
44
|
+
});
|
|
45
|
+
// Performance debugging
|
|
46
|
+
const renderStartTime = useRef(performance.now());
|
|
47
|
+
const mountTime = useRef(0);
|
|
48
|
+
const dataLoadStartTime = useRef(0);
|
|
49
|
+
// Ref for table container (for sync scrollbar)
|
|
50
|
+
const tableContainerRef = useRef(null);
|
|
51
|
+
// Track component mount time
|
|
52
|
+
useEffect(() => {
|
|
53
|
+
mountTime.current = performance.now();
|
|
54
|
+
const mountDuration = mountTime.current - renderStartTime.current;
|
|
55
|
+
perfLog.mounted(mountDuration, {
|
|
56
|
+
entityUrl: entityForm?.getUrl?.(),
|
|
57
|
+
isSubCollection,
|
|
58
|
+
});
|
|
59
|
+
return () => {
|
|
60
|
+
perfLog.unmounted({ entityUrl: entityForm?.getUrl?.() });
|
|
61
|
+
};
|
|
62
|
+
}, []);
|
|
63
|
+
// Track loading state changes (React state timing)
|
|
64
|
+
useEffect(() => {
|
|
65
|
+
if (loading) {
|
|
66
|
+
dataLoadStartTime.current = performance.now();
|
|
67
|
+
perfLog.loadingStarted({ entityUrl: entityForm?.getUrl?.() });
|
|
68
|
+
}
|
|
69
|
+
else if (dataLoadStartTime.current > 0) {
|
|
70
|
+
const loadDuration = performance.now() - dataLoadStartTime.current;
|
|
71
|
+
perfLog.loadingCompleted(loadDuration, {
|
|
72
|
+
entityUrl: entityForm?.getUrl?.(),
|
|
73
|
+
rowCount: rows.length,
|
|
74
|
+
totalCount,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}, [loading]);
|
|
78
|
+
// Track rows rendering
|
|
79
|
+
useEffect(() => {
|
|
80
|
+
if (rows.length > 0) {
|
|
81
|
+
const renderDuration = performance.now() - renderStartTime.current;
|
|
82
|
+
perfLog.rowsRendered({
|
|
83
|
+
entityUrl: entityForm?.getUrl?.(),
|
|
84
|
+
rowCount: rows.length,
|
|
85
|
+
totalCount,
|
|
86
|
+
timeSinceMount: `${renderDuration.toFixed(2)}ms`,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
}, [rows]);
|
|
90
|
+
const handleNotifications = useCallback((messages) => {
|
|
91
|
+
showMessages(false, messages);
|
|
92
|
+
}, [showMessages]);
|
|
93
|
+
const handleErrors = useCallback((messages) => {
|
|
94
|
+
showMessages(true, messages);
|
|
95
|
+
}, [showMessages]);
|
|
96
|
+
// Hook은 조건문 전에 호출되어야 함
|
|
97
|
+
const sessionFromHook = useSession();
|
|
98
|
+
const session = props.session ?? entityForm.getSession() ?? sessionFromHook;
|
|
99
|
+
// 관리자 권한 체크 (새창 열기 버튼 표시용)
|
|
100
|
+
// 기존 session 변수를 사용하여 불필요한 API 호출 방지
|
|
101
|
+
const isAdmin = React.useMemo(() => {
|
|
102
|
+
if (session) {
|
|
103
|
+
return hasAnyRole(session, 'ROLE_SUPER_ADMIN', 'ROLE_ADMIN', 'ROLE_STAFF');
|
|
104
|
+
}
|
|
105
|
+
return false;
|
|
106
|
+
}, [session]);
|
|
107
|
+
// QuickSearch 필드명 Set 생성 (헤더 필터 비활성화용)
|
|
108
|
+
// Note: 이 hook은 early return 이전에 있어야 hooks 순서가 일정함
|
|
109
|
+
const quickSearchFieldNames = React.useMemo(() => {
|
|
110
|
+
if (!quickSearchProperty)
|
|
111
|
+
return new Set();
|
|
112
|
+
const names = new Set();
|
|
113
|
+
names.add(quickSearchProperty.name);
|
|
114
|
+
if (quickSearchProperty.orFields) {
|
|
115
|
+
quickSearchProperty.orFields.forEach((fieldName) => names.add(fieldName));
|
|
116
|
+
}
|
|
117
|
+
return names;
|
|
118
|
+
}, [quickSearchProperty]);
|
|
119
|
+
// 목록에 표시되는 필드명 Set (통합검색창 기본 선택용)
|
|
120
|
+
const listFieldNames = React.useMemo(() => {
|
|
121
|
+
return new Set(listFields.map((f) => f.getName()));
|
|
122
|
+
}, [listFields]);
|
|
123
|
+
// SubCollection에서 mappedBy 관련 필드 자동 숨김 처리
|
|
124
|
+
// Filter out mappedBy related fields in SubCollection (parent reference fields)
|
|
125
|
+
const mappedBy = props.options?.subCollection?.mappedBy;
|
|
126
|
+
const filteredListFields = useMemo(() => {
|
|
127
|
+
if (!isSubCollection || !mappedBy) {
|
|
128
|
+
return listFields;
|
|
129
|
+
}
|
|
130
|
+
return filterMappedByFields(listFields, { mappedBy });
|
|
131
|
+
}, [listFields, isSubCollection, mappedBy]);
|
|
132
|
+
// 새창 열기 기능: 기본값 true, subCollection에서는 명시적으로 true 하지 않으면 false
|
|
133
|
+
const openInNewWindowEnabled = isSubCollection
|
|
134
|
+
? isTrue(props.options?.openInNewWindow?.enabled, false)
|
|
135
|
+
: isTrue(props.options?.openInNewWindow?.enabled, true);
|
|
136
|
+
const openInNewWindow = openInNewWindowEnabled
|
|
137
|
+
? { ...props.options?.openInNewWindow, enabled: true }
|
|
138
|
+
: undefined;
|
|
139
|
+
// 새창에서 전송된 메시지 수신 (삭제/저장 완료 시 목록 새로고침)
|
|
140
|
+
useEffect(() => {
|
|
141
|
+
if (!openInNewWindowEnabled)
|
|
142
|
+
return;
|
|
143
|
+
const handleMessage = (event) => {
|
|
144
|
+
// 동일 origin에서 온 메시지만 처리
|
|
145
|
+
if (event.origin !== window.location.origin)
|
|
146
|
+
return;
|
|
147
|
+
const { type } = event.data || {};
|
|
148
|
+
if (type === 'ENTITY_DELETED' || type === 'ENTITY_SAVED') {
|
|
149
|
+
// 삭제 또는 저장 시 목록 새로고침
|
|
150
|
+
fetchData();
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
window.addEventListener('message', handleMessage);
|
|
154
|
+
return () => {
|
|
155
|
+
window.removeEventListener('message', handleMessage);
|
|
156
|
+
};
|
|
157
|
+
}, [openInNewWindowEnabled, fetchData]);
|
|
158
|
+
// 테마 variant 자동 결정 (early return 전에 모든 테마 관련 hook 호출 필요)
|
|
159
|
+
const themeVariant = useMemo(() => {
|
|
160
|
+
if (props.options?.popup)
|
|
161
|
+
return 'popup';
|
|
162
|
+
if (isSubCollection)
|
|
163
|
+
return 'subCollection';
|
|
164
|
+
if (isMainEntity)
|
|
165
|
+
return 'main';
|
|
166
|
+
return 'default';
|
|
167
|
+
}, [props.options?.popup, isSubCollection, isMainEntity]);
|
|
168
|
+
// 테마 훅 사용 (Context가 있으면 Context 값 사용, 없으면 variant 기반 기본값)
|
|
169
|
+
const contextTheme = useListGridTheme();
|
|
170
|
+
const { classNames: themeClasses, cn } = useMemo(() => {
|
|
171
|
+
// Context의 variant가 default가 아니면 Context 테마 사용
|
|
172
|
+
if (contextTheme.variant !== 'default') {
|
|
173
|
+
return contextTheme;
|
|
174
|
+
}
|
|
175
|
+
// Context가 없거나 default면 자동 결정된 variant 테마 사용
|
|
176
|
+
const variantTheme = getListGridThemeByVariant(themeVariant);
|
|
177
|
+
return {
|
|
178
|
+
classNames: variantTheme,
|
|
179
|
+
cn: contextTheme.cn,
|
|
180
|
+
};
|
|
181
|
+
}, [contextTheme, themeVariant]);
|
|
182
|
+
// 패널 클래스 결정 (early return 전에 호출)
|
|
183
|
+
const panelClassName = useMemo(() => {
|
|
184
|
+
const baseClass = themeClasses.panel?.container ?? '';
|
|
185
|
+
if (isMainEntity) {
|
|
186
|
+
return cn(baseClass, themeClasses.panel?.mainEntity);
|
|
187
|
+
}
|
|
188
|
+
if (isSubCollection) {
|
|
189
|
+
return cn(baseClass, themeClasses.panel?.subCollection);
|
|
190
|
+
}
|
|
191
|
+
return cn(baseClass, themeClasses.panel?.default);
|
|
192
|
+
}, [themeClasses, isMainEntity, isSubCollection, cn]);
|
|
193
|
+
if (searchForm === undefined) {
|
|
194
|
+
return (_jsxs("div", { className: themeClasses.loading?.container ?? 'relative', children: [_jsx(LoadingOverlay, { visible: true }), _jsx(ViewListGridSkeleton, { pageSize: 10, fields: listFields, isSubCollection: isSubCollection, showCheckbox: !props.options?.readonly, isPopup: !!props.options?.popup })] }));
|
|
195
|
+
}
|
|
196
|
+
const emptyList = rows.length === 0;
|
|
197
|
+
// 선택 옵션 통합
|
|
198
|
+
const selectionOptions = props.options?.selection;
|
|
199
|
+
// 삭제 버튼 표시 로직
|
|
200
|
+
const deleteButtonConfig = selectionOptions?.deleteButton;
|
|
201
|
+
const showDeleteButton = deleteButtonConfig === false ? false : deleteButtonConfig?.show;
|
|
202
|
+
const activeTrashIcon = !(loading ||
|
|
203
|
+
checkedItems.length === 0 ||
|
|
204
|
+
manyToOne !== undefined ||
|
|
205
|
+
deleteButtonConfig === false) &&
|
|
206
|
+
(showDeleteButton === undefined
|
|
207
|
+
? true
|
|
208
|
+
: typeof showDeleteButton === 'function'
|
|
209
|
+
? showDeleteButton(checkedItems)
|
|
210
|
+
: showDeleteButton);
|
|
211
|
+
// 체크박스 표시 로직
|
|
212
|
+
const showCheckbox = selectionOptions?.enabled;
|
|
213
|
+
// selection이 있지만 실제 사용할 기능이 없는 경우 체크
|
|
214
|
+
const hasSelectionFeatures = !!(selectionOptions &&
|
|
215
|
+
// actions가 있거나
|
|
216
|
+
((selectionOptions.actions && selectionOptions.actions.length > 0) ||
|
|
217
|
+
// deleteButton이 명시적으로 false가 아니거나 (undefined인 경우 기본 삭제 버튼 표시)
|
|
218
|
+
selectionOptions.deleteButton !== false ||
|
|
219
|
+
// 선택 변경 콜백이 있거나
|
|
220
|
+
!!selectionOptions.onSelectionChange ||
|
|
221
|
+
// 기타 선택 관련 기능이 있는 경우
|
|
222
|
+
!!selectionOptions.selectableFilter ||
|
|
223
|
+
!!selectionOptions.validateSelection));
|
|
224
|
+
// 체크박스 컬럼은 항상 표시 (번호 표시를 위해) - readonly 여부와 상관없이
|
|
225
|
+
const enableCheckItem = !emptyList;
|
|
226
|
+
// 실제 체크박스 input 표시 여부
|
|
227
|
+
const showCheckboxInput = enableCheckItem &&
|
|
228
|
+
(showCheckbox === undefined
|
|
229
|
+
? // enabled가 undefined인 경우
|
|
230
|
+
selectionOptions
|
|
231
|
+
? // selection 설정이 있으면 기능 여부 확인
|
|
232
|
+
hasSelectionFeatures
|
|
233
|
+
: // selection 설정이 없으면 readonly가 아닐 때만 true
|
|
234
|
+
!props.options?.readonly
|
|
235
|
+
: typeof showCheckbox === 'function'
|
|
236
|
+
? showCheckbox(entityForm)
|
|
237
|
+
: showCheckbox);
|
|
238
|
+
const draggable = props.options?.onDrag !== undefined;
|
|
239
|
+
const showSearchBar = isTrue(props.options?.filterable, true);
|
|
240
|
+
const supportPriority = (props.options?.onDragPriority?.support ?? false) && rows.length > 1;
|
|
241
|
+
const readonly = isTrue(props.options?.readonly);
|
|
242
|
+
const page = searchForm?.getPage() ?? 0;
|
|
243
|
+
return (_jsx(EntityFormScopeProvider, { depth: currentDepth, maxInlineDepth: maxInlineDepth, maxExpandedItems: parentScope.maxExpandedItems, expansionMode: parentScope.expansionMode, parentEntityForm: entityForm, children: _jsxs(ListGridThemeProvider, { variant: themeVariant, children: [_jsx(ListGridHeader, { hideTitle: isSubCollection, cacheable: isTrue(props.options?.cacheable, true), entityForm: entityForm, ...(dataTransferConfig !== undefined ? { dataTransferConfig } : {}), ...(session !== undefined ? { session } : {}), ...(checkedItems !== undefined ? { checkedItems } : {}), ...(props.options?.headerButtons !== undefined
|
|
244
|
+
? { buttons: props.options.headerButtons }
|
|
245
|
+
: {}), isSubCollection: isSubCollection, ...(props.options?.createOrUpdate?.addNew !== undefined
|
|
246
|
+
? { addNew: props.options.createOrUpdate.addNew }
|
|
247
|
+
: {}), setErrors: handleErrors, supportPriority: supportPriority, setManagePriority: () => {
|
|
248
|
+
setManagePriority(!managePriority);
|
|
249
|
+
}, setNotifications: handleNotifications, enableHandleData: enableHandleData, router: router, path: path, readonly: readonly, activeTrashIcon: activeTrashIcon, searchForm: searchForm, deleteItems: deleteItems, ...(selectionOptions !== undefined ? { selectionOptions } : {}), ...(rows !== undefined ? { rows } : {}), refresh: fetchData, title: title }), _jsxs("div", { className: panelClassName, children: [props.options?.topContent && props.parentId && (_jsx("div", { className: "rcm-listgrid-top-content", children: props.options.topContent(props.parentId, searchForm) })), isSubCollection && (_jsx(SubCollectionButtons, { activeTrashIcon: activeTrashIcon, searchForm: searchForm, totalCount: totalCount, onChangeSearchForm: () => {
|
|
250
|
+
// no-op: previously declared an async arrow without invoking it
|
|
251
|
+
}, parentId: props.parentId, ...(checkedItems !== undefined ? { checkedItems } : {}), ...(rows !== undefined ? { rows } : {}), supportPriority: supportPriority, setManagePriority: () => {
|
|
252
|
+
setManagePriority(!managePriority);
|
|
253
|
+
}, add: props.options?.subCollection?.add !== undefined
|
|
254
|
+
? isTrue(props.options?.subCollection?.add, !isTrue(props.options.readonly))
|
|
255
|
+
: enableHandleData, delete: isTrue(props.options?.subCollection?.delete, true), ...(props.options?.subCollection?.buttons !== undefined
|
|
256
|
+
? { buttons: props.options.subCollection.buttons }
|
|
257
|
+
: {}), ...(props.options?.subCollection?.name !== undefined
|
|
258
|
+
? { collectionName: props.options.subCollection.name }
|
|
259
|
+
: {}), ...(props.options?.subCollection?.mappedBy !== undefined
|
|
260
|
+
? { mappedBy: props.options.subCollection.mappedBy }
|
|
261
|
+
: {}), ...(props.options?.subCollection?.mappedValue !== undefined
|
|
262
|
+
? { mappedValue: props.options.subCollection.mappedValue }
|
|
263
|
+
: {}), ...(props.options?.createOrUpdate !== undefined
|
|
264
|
+
? { createOrUpdate: props.options.createOrUpdate }
|
|
265
|
+
: {}), setErrors: handleErrors, setNotifications: handleNotifications, onRefresh: () => {
|
|
266
|
+
fetchData();
|
|
267
|
+
}, deleteItems: deleteItems, entityForm: entityForm })), showSearchBar && (_jsx(AdvancedSearchForm, { fields: advancedSearchFields, entityForm: entityForm, listFieldNames: listFieldNames, searchForm: searchForm, show: showAdvancedSearch, subCollection: isSubCollection, popup: !!props.options?.popup, onClose: () => {
|
|
268
|
+
setShowAdvancedSearch(false);
|
|
269
|
+
}, onSubmit: (searchForm) => {
|
|
270
|
+
(async () => {
|
|
271
|
+
await onChangeSearchForm(entityForm, searchForm.clone(), false, true);
|
|
272
|
+
})();
|
|
273
|
+
}, onReset: () => {
|
|
274
|
+
(async () => {
|
|
275
|
+
const cleanSearchForm = await getCleanSearchForm();
|
|
276
|
+
await onChangeSearchForm(entityForm, cleanSearchForm, true);
|
|
277
|
+
})();
|
|
278
|
+
}, quickSearchProperty: quickSearchProperty })), _jsxs(Stack, { gap: 0, children: [showSearchBar && (_jsx(QuickSearchBar, { loading: loading, searchForm: searchForm, onChangeSearchForm: (newSearchForm) => {
|
|
279
|
+
(async () => {
|
|
280
|
+
await onChangeSearchForm(entityForm, newSearchForm);
|
|
281
|
+
})();
|
|
282
|
+
}, onQuickSearch: (search) => {
|
|
283
|
+
performQuickSearch(search);
|
|
284
|
+
}, hidePageSize: isTrue(props.options?.hidePageSize, false), subCollection: isSubCollection, quickSearchValue: search, listFields: listFields, ...(quickSearchProperty !== undefined ? { quickSearchProperty } : {}), enableHandleData: enableHandleData, showAdvancedSearch: showAdvancedSearch, onOpenAdvancedSearch: () => {
|
|
285
|
+
setShowAdvancedSearch(true);
|
|
286
|
+
}, viewFields: viewFields ?? [], ...(setViewFields !== undefined ? { setViewFields } : {}), entityUrl: entityForm.getUrl(), ...(props.options?.subCollection?.name !== undefined
|
|
287
|
+
? { subCollectionName: props.options.subCollection.name }
|
|
288
|
+
: {}), ...(props.options?.hideAdvancedSearch !== undefined
|
|
289
|
+
? { hideAdvancedSearch: props.options.hideAdvancedSearch }
|
|
290
|
+
: {}) })), loading && (_jsxs("div", { className: "relative", children: [_jsx(LoadingOverlay, { visible: loading }), _jsx(ViewListGridSkeleton, { pageSize: searchForm?.getPageSize() ?? 10, fields: listFields, isSubCollection: isSubCollection, showCheckbox: showCheckboxInput, isPopup: !!props.options?.popup })] })), _jsx(ShowNotifications, { messages: errors, error: true, showClose: true, timeout: 10000 }), _jsx(ShowNotifications, { messages: notifications, timeout: 10000 }), !loading && (_jsxs("div", { className: props.options?.popup
|
|
291
|
+
? (themeClasses.popup?.container ??
|
|
292
|
+
'max-h-[70vh] flex flex-col overflow-y-auto p-0')
|
|
293
|
+
: (themeClasses.table?.contentWrapper ?? 'overflow-y-auto p-0'), children: [_jsxs("div", { className: themeClasses.table?.container ?? 'rcm-scroll-y', children: [_jsx(SyncTopScrollbar, { targetRef: tableContainerRef }), _jsx("div", { ref: tableContainerRef, className: themeClasses.table?.responsiveWrapper ?? 'rcm-skeleton-table-wrapper', children: _jsxs("table", { className: themeClasses.table?.table ?? 'table-hover w-full', children: [_jsx("thead", { className: themeClasses.table?.thead ??
|
|
294
|
+
'border-t border-b border-white-light dark:border-[#17263c]', children: _jsxs("tr", { children: [managePriority && (_jsx("th", { children: _jsx("div", { children: "\u00A0" }) })), enableCheckItem && (_jsx("th", { children: _jsx(EntireChecker, { total: rows.length, subCollection: isSubCollection, listIds: rows.map((item) => item.id), checkedItems: checkedItems, setCheckedItems: (itemIds) => setCheckedItems(itemIds), ...(selectionOptions !== undefined ? { selectionOptions } : {}), rows: rows, showCheckboxInput: showCheckboxInput }) })), isTrue(openInNewWindow?.enabled) && isAdmin && !onSelect && (_jsx("th", { className: themeClasses.headerCell?.openNewWindowCell ??
|
|
295
|
+
'w-2 whitespace-nowrap hidden md:table-cell' })), onSelect && (_jsx("th", { className: themeClasses.headerCell?.selectCell ?? 'w-2 whitespace-nowrap' })), _jsx(HeaderField, { fields: filteredListFields, gridId: gridId, draggable: draggable, sortable: isTrue(props.options?.sortable, true), viewFields: viewFields ?? [], searchForm: searchForm, entityForm: entityForm, quickSearchFieldNames: quickSearchFieldNames, quickSearchValue: search, onChangeSearchForm: (searchForm, resetPage) => {
|
|
296
|
+
(async () => {
|
|
297
|
+
await onChangeSearchForm(entityForm, searchForm, false, resetPage);
|
|
298
|
+
})();
|
|
299
|
+
} })] }) }), _createElement(RowItem, { list: rows,
|
|
300
|
+
managePriority: managePriority,
|
|
301
|
+
sortRowsPriority: sortRowsPriority,
|
|
302
|
+
isSubCollection: isSubCollection,
|
|
303
|
+
viewMode: props.viewMode ?? 'page',
|
|
304
|
+
...(props.options?.useAccordion !== undefined
|
|
305
|
+
? { useAccordion: props.options.useAccordion }
|
|
306
|
+
: {}),
|
|
307
|
+
startNumber: props.options?.hidePagination
|
|
308
|
+
? rows.length
|
|
309
|
+
: (totalCount ?? 0) - searchForm.getPage() * searchForm.getPageSize(),
|
|
310
|
+
viewFields: viewFields ?? [],
|
|
311
|
+
checkedItems,
|
|
312
|
+
setCheckedItems,
|
|
313
|
+
...(onSelect
|
|
314
|
+
? {
|
|
315
|
+
onSelect: (item, setId) => {
|
|
316
|
+
onSelect?.(item, setId ?? setManagedId);
|
|
317
|
+
},
|
|
318
|
+
}
|
|
319
|
+
: {}),
|
|
320
|
+
enableCheckItem,
|
|
321
|
+
onRefresh: fetchData,
|
|
322
|
+
router,
|
|
323
|
+
path,
|
|
324
|
+
...(props.options?.onDrag !== undefined
|
|
325
|
+
? { onDrag: props.options.onDrag }
|
|
326
|
+
: {}),
|
|
327
|
+
fields: filteredListFields,
|
|
328
|
+
entityForm,
|
|
329
|
+
...(session !== undefined ? { session } : {}),
|
|
330
|
+
isAdmin: isAdmin,
|
|
331
|
+
...(props.options?.messages !== undefined
|
|
332
|
+
? { messages: props.options.messages }
|
|
333
|
+
: {}),
|
|
334
|
+
...(selectionOptions !== undefined ? { selectionOptions } : {}),
|
|
335
|
+
showCheckboxInput: showCheckboxInput,
|
|
336
|
+
...(openInNewWindow !== undefined ? { openInNewWindow } : {}),
|
|
337
|
+
// Inline expansion props for SubCollection
|
|
338
|
+
...(shouldUseInlineMode
|
|
339
|
+
? {
|
|
340
|
+
inlineExpansion: {
|
|
341
|
+
expandedItems,
|
|
342
|
+
isExpanded,
|
|
343
|
+
toggleExpansion,
|
|
344
|
+
collapseItem,
|
|
345
|
+
canExpand,
|
|
346
|
+
setManagedId,
|
|
347
|
+
},
|
|
348
|
+
}
|
|
349
|
+
: {}),
|
|
350
|
+
// SubCollection mappedBy for auto-hiding parent reference fields
|
|
351
|
+
...(props.options?.subCollection?.mappedBy !== undefined
|
|
352
|
+
? { mappedBy: props.options.subCollection.mappedBy }
|
|
353
|
+
: {}),
|
|
354
|
+
// 인라인/상세 뷰에서 수정 불가 여부
|
|
355
|
+
inlineViewReadonly: isTrue(props.options?.readonly) ||
|
|
356
|
+
!isTrue(props.options?.subCollection?.modifyOnView, true), key: searchForm.getCacheKey() })] }) })] }), !emptyList && !isTrue(props.options?.hidePagination, false) && (_jsx(PaginationContainer, { themeClasses: themeClasses, totalPage: totalPage, page: page, changePage: changePage, isPopup: !!props.options?.popup }))] }))] })] }), managedId && !shouldUseInlineMode && (_jsx(SubCollectionViewModal, { entityForm: entityForm, managedId: managedId, props: props, setManagedId: setManagedId, fetchData: fetchData, setOpenBaseLoading: setOpenBaseLoading, ...(props.options?.subCollection?.mappedBy !== undefined
|
|
357
|
+
? { mappedBy: props.options.subCollection.mappedBy }
|
|
358
|
+
: {}) }))] }) }));
|
|
359
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
|
+
import { EntityForm } from '../../../config/EntityForm';
|
|
3
|
+
export interface EntityFormScopeContextValue {
|
|
4
|
+
depth: number;
|
|
5
|
+
maxInlineDepth: number;
|
|
6
|
+
isInlineMode: boolean;
|
|
7
|
+
forceModalMode: boolean;
|
|
8
|
+
expandedItems: string[];
|
|
9
|
+
maxExpandedItems: number;
|
|
10
|
+
expansionMode: 'single' | 'multiple';
|
|
11
|
+
canExpand: boolean;
|
|
12
|
+
toggleExpansion?: (id: string) => void;
|
|
13
|
+
collapseItem?: (id: string) => void;
|
|
14
|
+
collapseAll?: () => void;
|
|
15
|
+
parentEntityForm?: EntityForm;
|
|
16
|
+
}
|
|
17
|
+
declare const EntityFormScopeContext: React.Context<EntityFormScopeContextValue>;
|
|
18
|
+
export interface EntityFormScopeProviderProps {
|
|
19
|
+
children: ReactNode;
|
|
20
|
+
depth?: number;
|
|
21
|
+
maxInlineDepth?: number;
|
|
22
|
+
maxExpandedItems?: number;
|
|
23
|
+
expansionMode?: 'single' | 'multiple';
|
|
24
|
+
forceModalMode?: boolean;
|
|
25
|
+
parentEntityForm?: EntityForm;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Provider component for EntityFormScope context
|
|
29
|
+
*
|
|
30
|
+
* Manages nesting depth, inline/modal mode, and expansion state
|
|
31
|
+
*/
|
|
32
|
+
export declare function EntityFormScopeProvider({ children, depth, maxInlineDepth, maxExpandedItems, expansionMode, forceModalMode, parentEntityForm, }: EntityFormScopeProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
/**
|
|
34
|
+
* Hook to access EntityFormScope context
|
|
35
|
+
*
|
|
36
|
+
* @returns Current scope context value
|
|
37
|
+
*/
|
|
38
|
+
export declare function useEntityFormScope(): EntityFormScopeContextValue;
|
|
39
|
+
export default EntityFormScopeContext;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { createContext, useContext, useMemo } from 'react';
|
|
4
|
+
import { useSubCollectionExpansion } from '../hooks/useSubCollectionExpansion';
|
|
5
|
+
const defaultContextValue = {
|
|
6
|
+
depth: 0,
|
|
7
|
+
maxInlineDepth: 1,
|
|
8
|
+
isInlineMode: true,
|
|
9
|
+
forceModalMode: false,
|
|
10
|
+
expandedItems: [],
|
|
11
|
+
maxExpandedItems: 3,
|
|
12
|
+
expansionMode: 'multiple',
|
|
13
|
+
canExpand: true,
|
|
14
|
+
};
|
|
15
|
+
const EntityFormScopeContext = createContext(defaultContextValue);
|
|
16
|
+
/**
|
|
17
|
+
* Provider component for EntityFormScope context
|
|
18
|
+
*
|
|
19
|
+
* Manages nesting depth, inline/modal mode, and expansion state
|
|
20
|
+
*/
|
|
21
|
+
export function EntityFormScopeProvider({ children, depth = 0, maxInlineDepth, maxExpandedItems, expansionMode, forceModalMode = false, parentEntityForm, }) {
|
|
22
|
+
const parentScope = useContext(EntityFormScopeContext);
|
|
23
|
+
// If nested, inherit some values from parent (use defaults only at root level)
|
|
24
|
+
const effectiveDepth = depth;
|
|
25
|
+
const effectiveMaxInlineDepth = maxInlineDepth ?? parentScope.maxInlineDepth;
|
|
26
|
+
const effectiveMaxExpandedItems = maxExpandedItems ?? parentScope.maxExpandedItems;
|
|
27
|
+
const effectiveExpansionMode = expansionMode ?? parentScope.expansionMode;
|
|
28
|
+
const effectiveForceModalMode = forceModalMode || parentScope.forceModalMode;
|
|
29
|
+
// Calculate isInlineMode based on depth and maxInlineDepth
|
|
30
|
+
const isInlineMode = effectiveDepth <= effectiveMaxInlineDepth && !effectiveForceModalMode;
|
|
31
|
+
// Use expansion hook for managing expanded items
|
|
32
|
+
const { expandedItems, canExpand, toggleExpansion, collapseItem, collapseAll } = useSubCollectionExpansion({
|
|
33
|
+
maxExpandedItems: effectiveMaxExpandedItems,
|
|
34
|
+
expansionMode: effectiveExpansionMode,
|
|
35
|
+
});
|
|
36
|
+
// Memoize context value to prevent unnecessary re-renders
|
|
37
|
+
const value = useMemo(() => ({
|
|
38
|
+
depth: effectiveDepth,
|
|
39
|
+
maxInlineDepth: effectiveMaxInlineDepth,
|
|
40
|
+
isInlineMode,
|
|
41
|
+
forceModalMode: effectiveForceModalMode,
|
|
42
|
+
expandedItems,
|
|
43
|
+
maxExpandedItems: effectiveMaxExpandedItems,
|
|
44
|
+
expansionMode: effectiveExpansionMode,
|
|
45
|
+
canExpand,
|
|
46
|
+
toggleExpansion,
|
|
47
|
+
collapseItem,
|
|
48
|
+
collapseAll,
|
|
49
|
+
...(parentEntityForm !== undefined ? { parentEntityForm } : {}),
|
|
50
|
+
}), [
|
|
51
|
+
effectiveDepth,
|
|
52
|
+
effectiveMaxInlineDepth,
|
|
53
|
+
isInlineMode,
|
|
54
|
+
effectiveForceModalMode,
|
|
55
|
+
expandedItems,
|
|
56
|
+
effectiveMaxExpandedItems,
|
|
57
|
+
effectiveExpansionMode,
|
|
58
|
+
canExpand,
|
|
59
|
+
toggleExpansion,
|
|
60
|
+
collapseItem,
|
|
61
|
+
collapseAll,
|
|
62
|
+
parentEntityForm,
|
|
63
|
+
]);
|
|
64
|
+
return (_jsx(EntityFormScopeContext.Provider, { value: value, children: children }));
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Hook to access EntityFormScope context
|
|
68
|
+
*
|
|
69
|
+
* @returns Current scope context value
|
|
70
|
+
*/
|
|
71
|
+
export function useEntityFormScope() {
|
|
72
|
+
const context = useContext(EntityFormScopeContext);
|
|
73
|
+
return context;
|
|
74
|
+
}
|
|
75
|
+
export default EntityFormScopeContext;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ViewListGridClassNames, ListGridThemeVariant, ListGridThemeContextValue } from '../types/ViewListGridTheme.types';
|
|
3
|
+
/**
|
|
4
|
+
* ListGrid 테마 컨텍스트
|
|
5
|
+
* ViewListGrid과 하위 컴포넌트에서 스타일을 커스터마이징하는데 사용
|
|
6
|
+
*/
|
|
7
|
+
declare const ListGridThemeContext: React.Context<ListGridThemeContextValue>;
|
|
8
|
+
/**
|
|
9
|
+
* ListGrid 테마 Provider Props
|
|
10
|
+
*/
|
|
11
|
+
export interface ListGridThemeProviderProps {
|
|
12
|
+
/** 커스텀 테마 (기본 테마에 병합됨) */
|
|
13
|
+
theme?: Partial<ViewListGridClassNames>;
|
|
14
|
+
/** 테마 변형 (default, main, subCollection, modal) */
|
|
15
|
+
variant?: ListGridThemeVariant;
|
|
16
|
+
/** 자식 컴포넌트 */
|
|
17
|
+
children: React.ReactNode;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* ListGrid 테마 Provider
|
|
21
|
+
*
|
|
22
|
+
* ListGrid에 테마를 적용할 때 사용합니다.
|
|
23
|
+
* variant를 지정하면 해당 프리셋 테마가 자동으로 적용됩니다.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```tsx
|
|
27
|
+
* // 서브콜렉션에서 사용
|
|
28
|
+
* <ListGridThemeProvider variant="subCollection">
|
|
29
|
+
* <ViewListGrid {...props} />
|
|
30
|
+
* </ListGridThemeProvider>
|
|
31
|
+
*
|
|
32
|
+
* // 커스텀 테마 적용
|
|
33
|
+
* const customTheme = {
|
|
34
|
+
* panel: { container: 'mt-8 border-2 rounded-2xl' },
|
|
35
|
+
* };
|
|
36
|
+
* <ListGridThemeProvider theme={customTheme}>
|
|
37
|
+
* <ViewListGrid {...props} />
|
|
38
|
+
* </ListGridThemeProvider>
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare const ListGridThemeProvider: React.FC<ListGridThemeProviderProps>;
|
|
42
|
+
/**
|
|
43
|
+
* ListGrid 테마 훅
|
|
44
|
+
*
|
|
45
|
+
* ViewListGrid의 하위 컴포넌트에서 테마 클래스를 가져올 때 사용합니다.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```tsx
|
|
49
|
+
* const { classNames, cn, variant } = useListGridTheme();
|
|
50
|
+
*
|
|
51
|
+
* return (
|
|
52
|
+
* <div className={cn('flex items-center', classNames.header?.container)}>
|
|
53
|
+
* ...
|
|
54
|
+
* </div>
|
|
55
|
+
* );
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export declare const useListGridTheme: () => ListGridThemeContextValue;
|
|
59
|
+
/**
|
|
60
|
+
* 특정 variant의 테마 클래스를 직접 가져오는 유틸리티
|
|
61
|
+
*
|
|
62
|
+
* Provider 없이 특정 variant의 테마를 사용하고 싶을 때 활용합니다.
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```tsx
|
|
66
|
+
* const subCollectionTheme = getListGridThemeByVariant('subCollection');
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
export declare const getListGridThemeByVariant: (variant: ListGridThemeVariant) => ViewListGridClassNames;
|
|
70
|
+
export { ListGridThemeContext };
|