"""
PAMOLA.CORE - Privacy-Preserving AI Data Processors
Module:        Custom Components
Package:       pamola_core.common.enum
Version:       1.0.0
Status:        stable
Author:        PAMOLA Core Team
Created:       2025-01-15
License:       BSD 3-Clause

Description:
Defines custom component names used in form schemas for dynamic field updates.
"""


class CustomComponents:
    """Custom component names for x-component attributes in schemas."""

    NUMERIC_RANGE_MODE = "NumericRangeMode"
    DATE_FORMAT_ARRAY = "DateFormatArray"
    DATE_PICKER_ARRAY = "DatePickerArray"
    NUMBER_ARRAY = "NumberArray"
    RANGE_NUMBER = "RangeNumber"
    STRING_ARRAY = "StringArray"
    UPLOAD = "Upload"
    DEPEND_SELECT = "DependSelect"
    DATE_FORMAT = "DateFormat"
    FORMAT_PATTERNS = "FormatPatterns"
    VALUE_GROUP_ARRAY = "ValueGroupArray"
    VALUE_GROUP_ARRAY_AGGREGATIONS = "ValueGroupArrayAggregations"
    CUSTOM_VALUE_GROUP_ARRAY_AGGREGATIONS = "CustomValueGroupArrayAggregations"
    DATA_SET_CONFIG = "DataSetConfig"
    FIELD_SELECT_UPLOAD_FILE_INPUT = "FieldSelectUploadFileInput"
    FIELD_MULTIPLE_SELECT_UPLOAD = "FieldMultipleSelectUpload"
    FIELD_DOUBLE_SELECT_INPUT = "FieldDoubleSelectInput"
    FIELD_SELECT_UPLOAD_FILE_INPUT_FAKE_ORG = "FieldSelectUploadFileInputFakeOrg"
    FIELD_MULTIPLE_SELECT_UPLOAD_FAKE_NAME = "FieldMultipleSelectUploadFakeName"
    FIELD_DOUBLE_SELECT_INPUT_ADD_OR_MODIFY = "FieldDoubleSelectInputAddOrModify"
    FIELD_SELECT_UPLOAD_FILE_INPUT_ADD_OR_MODIFY = "FieldSelectUploadFileInputAddOrModify"
    FORMAT_RATIO_SLIDER = "FormatRatioSlider" 
    FIELD_IMPUTE_STRATEGY = "FieldImputeStrategy"
    FIELD_DOUBLE_SELECT_INPUT_CLEAN_INVALID = "FieldDoubleSelectInputCleanInvalid"
    FIELD_NULL_REPLACEMENT_INPUT = "FieldNullReplacementInput"
    FIELD_SELECT_UPLOAD_FILE_INPUT_CLEAN_INVALID = "FieldSelectUploadFileInputCleanInvalid"
    SEPARATOR_OPTIONS = "SeparatorOptions"
