@box/metadata-filter 2.3.23 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (19) hide show
  1. package/dist/chunks/advanced-filter-select.js +1 -1
  2. package/dist/chunks/metadata-float-field-advanced.js +1 -1
  3. package/dist/esm/lib/components/metadata-filter-fields/components/metadata-date-field/metadata-date-field-advanced.js +1 -1
  4. package/dist/esm/lib/components/metadata-filter-fields/components/metadata-multi-select-field/metadata-multi-select-field-advanced.js +1 -1
  5. package/dist/esm/lib/components/metadata-filter-fields/components/metadata-string-field/metadata-string-field.js +1 -1
  6. package/dist/esm/lib/components/metadata-filter-fields/components/metadata-taxonomy-field/legacy-metadata-taxonomy-field-advanced.js +1 -1
  7. package/dist/esm/lib/components/metadata-filter-fields/components/metadata-taxonomy-field/picker/metadata-taxonomy-picker-field-advanced.js +1 -1
  8. package/dist/esm/lib/components/metadata-filter-fields/metadata-filter-fields.js +1 -1
  9. package/dist/styles/advanced-filter-select.css +1 -1
  10. package/dist/types/lib/components/metadata-filter-fields/components/metadata-date-field/metadata-date-field-advanced.d.ts +1 -1
  11. package/dist/types/lib/components/metadata-filter-fields/components/metadata-float-field/metadata-float-field-advanced.d.ts +1 -1
  12. package/dist/types/lib/components/metadata-filter-fields/components/metadata-multi-select-field/metadata-multi-select-field-advanced.d.ts +1 -1
  13. package/dist/types/lib/components/metadata-filter-fields/components/metadata-string-field/metadata-string-field.d.ts +1 -1
  14. package/dist/types/lib/components/metadata-filter-fields/components/metadata-taxonomy-field/legacy-metadata-taxonomy-field-advanced.d.ts +1 -1
  15. package/dist/types/lib/components/metadata-filter-fields/components/metadata-taxonomy-field/picker/metadata-taxonomy-picker-field-advanced.d.ts +1 -1
  16. package/dist/types/lib/components/metadata-filter-fields/components/shared/advanced-filter-select.d.ts +2 -1
  17. package/dist/types/lib/components/metadata-filter-fields/types.d.ts +1 -0
  18. package/dist/types/lib/types.d.ts +1 -0
  19. package/package.json +2 -2
@@ -1 +1 @@
1
- import messages from"../esm/lib/messages.js";import{Select,Text}from"@box/blueprint-web";import{Field}from"formik";import{useCallback,useState}from"react";import{useIntl}from"react-intl";import{Fragment,jsx,jsxs}from"react/jsx-runtime";import '../styles/advanced-filter-select.css';var metadata_filter_fields_module_default={noAttributesText:`_noAttributesText_19mt4_1`,fieldLabel:`_fieldLabel_19mt4_5`,selectContainer:`_selectContainer_19mt4_10`,modifiedIcon:`_modifiedIcon_19mt4_15`},AdvancedFilterSelect=({label,fieldNamePrefix,fieldAdvancedFilterOptions,filterOptionsMap,disableForm,portalElement,onAdvancedFilterOptionChange,onValueChange,defaultValue=``,showLabel=!0,advancedFilterFieldName=`${fieldNamePrefix}.value.advancedFilterOption`,value,labelClassName=metadata_filter_fields_module_default.fieldLabel,labelAs=`div`,open,onOpenChange,isModified})=>{let intl=useIntl(),[internalValue,setInternalValue]=useState(fieldAdvancedFilterOptions||defaultValue),currentValue=value===void 0?internalValue:value,handleAdvancedFilterChange=useCallback((selectedValue,...additionalArgs)=>{value===void 0&&setInternalValue(selectedValue),onAdvancedFilterOptionChange&&onAdvancedFilterOptionChange(fieldNamePrefix,selectedValue),onValueChange(selectedValue,...additionalArgs)},[fieldNamePrefix,onAdvancedFilterOptionChange,onValueChange,value]);return jsxs(Fragment,{children:[showLabel&&jsxs(Text,{as:labelAs,className:labelClassName,color:`textOnLightDefault`,variant:`bodyDefaultBold`,children:[label,isModified&&jsx(`div`,{"aria-label":intl.formatMessage(messages.filterModifiedAriaLabel),className:metadata_filter_fields_module_default.modifiedIcon,role:`img`})]}),jsx(Field,{name:advancedFilterFieldName,children:({field,meta})=>jsx(`div`,{className:metadata_filter_fields_module_default.selectContainer,children:jsx(Select,{...field,"aria-disabled":disableForm,"aria-label":intl.formatMessage(messages.advancedFilterOptionAriaLabel,{label}),disabled:disableForm,error:meta.touched&&meta.error?meta.error:void 0,hideLabel:!0,label:intl.formatMessage(messages.selectFilterType),onOpenChange,onValueChange:handleAdvancedFilterChange,open,placeholder:intl.formatMessage(messages.selectOptionPlaceholder),value:currentValue,children:jsx(Select.Content,{container:portalElement,children:filterOptionsMap?.map(([optionValue,optionLabel])=>jsx(Select.Option,{text:optionLabel,value:optionValue},optionValue))})})})})]})};export{metadata_filter_fields_module_default as n,AdvancedFilterSelect as t};
1
+ import messages from"../esm/lib/messages.js";import{Select,Text}from"@box/blueprint-web";import{Field}from"formik";import{useCallback,useState}from"react";import{useIntl}from"react-intl";import{MetadataBadge}from"@box/blueprint-web-assets/icons/Line";import{IconIconOnLightSecondary}from"@box/blueprint-web-assets/tokens/tokens";import{Fragment,jsx,jsxs}from"react/jsx-runtime";import '../styles/advanced-filter-select.css';var metadata_filter_fields_module_default={noAttributesText:`_noAttributesText_154s5_1`,fieldLabel:`_fieldLabel_154s5_5`,fieldSubtitle:`_fieldSubtitle_154s5_10`,selectContainer:`_selectContainer_154s5_17`,modifiedIcon:`_modifiedIcon_154s5_22`},AdvancedFilterSelect=({label,labelSubtitle,fieldNamePrefix,fieldAdvancedFilterOptions,filterOptionsMap,disableForm,portalElement,onAdvancedFilterOptionChange,onValueChange,defaultValue=``,showLabel=!0,advancedFilterFieldName=`${fieldNamePrefix}.value.advancedFilterOption`,value,labelClassName=metadata_filter_fields_module_default.fieldLabel,labelAs=`div`,open,onOpenChange,isModified})=>{let intl=useIntl(),[internalValue,setInternalValue]=useState(fieldAdvancedFilterOptions||defaultValue),currentValue=value===void 0?internalValue:value,handleAdvancedFilterChange=useCallback((selectedValue,...additionalArgs)=>{value===void 0&&setInternalValue(selectedValue),onAdvancedFilterOptionChange&&onAdvancedFilterOptionChange(fieldNamePrefix,selectedValue),onValueChange(selectedValue,...additionalArgs)},[fieldNamePrefix,onAdvancedFilterOptionChange,onValueChange,value]);return jsxs(Fragment,{children:[showLabel&&jsxs(Fragment,{children:[jsxs(Text,{as:labelAs,className:labelClassName,color:`textOnLightDefault`,variant:`bodyDefaultBold`,children:[label,isModified&&jsx(`div`,{"aria-label":intl.formatMessage(messages.filterModifiedAriaLabel),className:metadata_filter_fields_module_default.modifiedIcon,role:`img`})]}),labelSubtitle&&jsxs(`div`,{className:metadata_filter_fields_module_default.fieldSubtitle,children:[jsx(MetadataBadge,{"aria-hidden":!0,color:IconIconOnLightSecondary}),jsx(Text,{as:`span`,color:`textOnLightSecondary`,variant:`caption`,children:labelSubtitle})]})]}),jsx(Field,{name:advancedFilterFieldName,children:({field,meta})=>jsx(`div`,{className:metadata_filter_fields_module_default.selectContainer,children:jsx(Select,{...field,"aria-disabled":disableForm,"aria-label":intl.formatMessage(messages.advancedFilterOptionAriaLabel,{label:labelSubtitle?`${label} (${labelSubtitle})`:label}),disabled:disableForm,error:meta.touched&&meta.error?meta.error:void 0,hideLabel:!0,label:intl.formatMessage(messages.selectFilterType),onOpenChange,onValueChange:handleAdvancedFilterChange,open,placeholder:intl.formatMessage(messages.selectOptionPlaceholder),value:currentValue,children:jsx(Select.Content,{container:portalElement,children:filterOptionsMap?.map(([optionValue,optionLabel])=>jsx(Select.Option,{text:optionLabel,value:optionValue},optionValue))})})})})]})};export{metadata_filter_fields_module_default as n,AdvancedFilterSelect as t};
@@ -1 +1 @@
1
- import{n as RangeLabelType,t as FilterKeyTypes}from"./types.js";import messages from"../esm/lib/messages.js";import{t as AdvancedFilterSelect}from"./advanced-filter-select.js";import{fieldDefaultProps}from"../esm/lib/components/metadata-filter-fields/components/constants.js";import{FloatInputDisplayState,getInputDisplayState,getInputValues}from"../esm/lib/components/metadata-filter-fields/components/metadata-float-field/utils.js";import{createAdvancedFilterOptionHandler,createInputChangeHandler}from"../esm/lib/components/metadata-filter-fields/components/metadata-float-field/handlers.js";import{n as useFloatValidation}from"./use-float-validation.js";import{TextInput}from"@box/blueprint-web";import{Field}from"formik";import{useCallback,useState}from"react";import{useIntl}from"react-intl";import{Fragment,jsx,jsxs}from"react/jsx-runtime";import '../styles/metadata-float-field-advanced.css';var metadata_float_field_module_default={container:`_container_jjzra_1`,rangeInputsContainer:`_rangeInputsContainer_jjzra_6`,inputContainer:`_inputContainer_jjzra_16`,advancedFilterContainer:`_advancedFilterContainer_jjzra_23`},MetadataFloatFieldAdvanced=({label,fieldNamePrefix,disableForm,onAdvancedFilterOptionChange,fieldAdvancedFilterOptions,filterOptionsMap,hasAccordion,isModified})=>{let intl=useIntl(),fieldName=`${fieldNamePrefix}.value.enum[0]`,[lastChangedField,setLastChangedField]=useState(RangeLabelType.FROM),[advancedFilterOption,setAdvancedFilterOption]=useState(fieldAdvancedFilterOptions||FilterKeyTypes.EQUALS),{validateFloats}=useFloatValidation(),handleAdvancedFilterOptionChange=useCallback((value,fromValue,toValue,form)=>createAdvancedFilterOptionHandler(fieldName,onAdvancedFilterOptionChange,setAdvancedFilterOption)(value,fromValue,toValue,form),[fieldName,onAdvancedFilterOptionChange,setAdvancedFilterOption]),handleFromOnChange=useCallback((value,otherValue,form)=>createInputChangeHandler(fieldName,advancedFilterOption,setLastChangedField,RangeLabelType.FROM)(value,otherValue,form),[fieldName,advancedFilterOption]),handleToOnChange=useCallback((value,otherValue,form)=>createInputChangeHandler(fieldName,advancedFilterOption,setLastChangedField,RangeLabelType.TO)(value,otherValue,form),[fieldName,advancedFilterOption]);return jsx(`div`,{className:metadata_float_field_module_default.advancedFilterContainer,"data-testid":`${label}-field`,children:jsx(Field,{name:fieldName,validate:value=>{let currentInputValues=getInputValues(value,!0);return validateFloats(currentInputValues.from,currentInputValues.to,lastChangedField,!0)},children:({field,meta,form})=>{let currentInputValues=getInputValues(field.value,!0),displayState=getInputDisplayState(advancedFilterOption),showInputs=displayState!==FloatInputDisplayState.NONE,showSingleInput=displayState===FloatInputDisplayState.SINGLE,showBothInputs=displayState===FloatInputDisplayState.BOTH,fromError=validateFloats(currentInputValues.from,currentInputValues.to,RangeLabelType.FROM,!0),toError=validateFloats(currentInputValues.from,currentInputValues.to,RangeLabelType.TO,!0);return jsxs(Fragment,{children:[jsx(AdvancedFilterSelect,{disableForm,fieldAdvancedFilterOptions,fieldNamePrefix,filterOptionsMap,isModified,label,onAdvancedFilterOptionChange,onValueChange:value=>handleAdvancedFilterOptionChange(value,currentInputValues.from,currentInputValues.to,form),showLabel:!hasAccordion,value:advancedFilterOption}),showInputs&&jsxs(`div`,{className:metadata_float_field_module_default.rangeInputsContainer,children:[(showSingleInput||showBothInputs)&&jsx(`div`,{className:metadata_float_field_module_default.inputContainer,children:jsx(TextInput,{...fieldDefaultProps,disabled:disableForm,error:showSingleInput?meta.error:fromError,hideLabel:!0,label:intl.formatMessage(messages.fieldFromLabel,{label}),onChange:e=>handleFromOnChange(e.currentTarget.value,currentInputValues.to,form),placeholder:showBothInputs?intl.formatMessage(messages.minValuePlaceholder):intl.formatMessage(messages.enterNumberPlaceholder),value:currentInputValues.from})}),showBothInputs&&jsx(`div`,{className:metadata_float_field_module_default.inputContainer,children:jsx(TextInput,{...fieldDefaultProps,disabled:disableForm,error:toError,hideLabel:!0,label:intl.formatMessage(messages.fieldToLabel,{label}),onChange:e=>handleToOnChange(e.currentTarget.value,currentInputValues.from,form),placeholder:intl.formatMessage(messages.maxValuePlaceholder),value:currentInputValues.to})})]})]})}})})};export{metadata_float_field_module_default as n,MetadataFloatFieldAdvanced as t};
1
+ import{n as RangeLabelType,t as FilterKeyTypes}from"./types.js";import messages from"../esm/lib/messages.js";import{t as AdvancedFilterSelect}from"./advanced-filter-select.js";import{fieldDefaultProps}from"../esm/lib/components/metadata-filter-fields/components/constants.js";import{FloatInputDisplayState,getInputDisplayState,getInputValues}from"../esm/lib/components/metadata-filter-fields/components/metadata-float-field/utils.js";import{createAdvancedFilterOptionHandler,createInputChangeHandler}from"../esm/lib/components/metadata-filter-fields/components/metadata-float-field/handlers.js";import{n as useFloatValidation}from"./use-float-validation.js";import{TextInput}from"@box/blueprint-web";import{Field}from"formik";import{useCallback,useState}from"react";import{useIntl}from"react-intl";import{Fragment,jsx,jsxs}from"react/jsx-runtime";import '../styles/metadata-float-field-advanced.css';var metadata_float_field_module_default={container:`_container_jjzra_1`,rangeInputsContainer:`_rangeInputsContainer_jjzra_6`,inputContainer:`_inputContainer_jjzra_16`,advancedFilterContainer:`_advancedFilterContainer_jjzra_23`},MetadataFloatFieldAdvanced=({label,labelSubtitle,fieldNamePrefix,disableForm,onAdvancedFilterOptionChange,fieldAdvancedFilterOptions,filterOptionsMap,hasAccordion,isModified})=>{let intl=useIntl(),fieldName=`${fieldNamePrefix}.value.enum[0]`,[lastChangedField,setLastChangedField]=useState(RangeLabelType.FROM),[advancedFilterOption,setAdvancedFilterOption]=useState(fieldAdvancedFilterOptions||FilterKeyTypes.EQUALS),{validateFloats}=useFloatValidation(),handleAdvancedFilterOptionChange=useCallback((value,fromValue,toValue,form)=>createAdvancedFilterOptionHandler(fieldName,onAdvancedFilterOptionChange,setAdvancedFilterOption)(value,fromValue,toValue,form),[fieldName,onAdvancedFilterOptionChange,setAdvancedFilterOption]),handleFromOnChange=useCallback((value,otherValue,form)=>createInputChangeHandler(fieldName,advancedFilterOption,setLastChangedField,RangeLabelType.FROM)(value,otherValue,form),[fieldName,advancedFilterOption]),handleToOnChange=useCallback((value,otherValue,form)=>createInputChangeHandler(fieldName,advancedFilterOption,setLastChangedField,RangeLabelType.TO)(value,otherValue,form),[fieldName,advancedFilterOption]);return jsx(`div`,{className:metadata_float_field_module_default.advancedFilterContainer,"data-testid":`${label}-field`,children:jsx(Field,{name:fieldName,validate:value=>{let currentInputValues=getInputValues(value,!0);return validateFloats(currentInputValues.from,currentInputValues.to,lastChangedField,!0)},children:({field,meta,form})=>{let currentInputValues=getInputValues(field.value,!0),displayState=getInputDisplayState(advancedFilterOption),showInputs=displayState!==FloatInputDisplayState.NONE,showSingleInput=displayState===FloatInputDisplayState.SINGLE,showBothInputs=displayState===FloatInputDisplayState.BOTH,fromError=validateFloats(currentInputValues.from,currentInputValues.to,RangeLabelType.FROM,!0),toError=validateFloats(currentInputValues.from,currentInputValues.to,RangeLabelType.TO,!0);return jsxs(Fragment,{children:[jsx(AdvancedFilterSelect,{disableForm,fieldAdvancedFilterOptions,fieldNamePrefix,filterOptionsMap,isModified,label,labelSubtitle,onAdvancedFilterOptionChange,onValueChange:value=>handleAdvancedFilterOptionChange(value,currentInputValues.from,currentInputValues.to,form),showLabel:!hasAccordion,value:advancedFilterOption}),showInputs&&jsxs(`div`,{className:metadata_float_field_module_default.rangeInputsContainer,children:[(showSingleInput||showBothInputs)&&jsx(`div`,{className:metadata_float_field_module_default.inputContainer,children:jsx(TextInput,{...fieldDefaultProps,disabled:disableForm,error:showSingleInput?meta.error:fromError,hideLabel:!0,label:intl.formatMessage(messages.fieldFromLabel,{label}),onChange:e=>handleFromOnChange(e.currentTarget.value,currentInputValues.to,form),placeholder:showBothInputs?intl.formatMessage(messages.minValuePlaceholder):intl.formatMessage(messages.enterNumberPlaceholder),value:currentInputValues.from})}),showBothInputs&&jsx(`div`,{className:metadata_float_field_module_default.inputContainer,children:jsx(TextInput,{...fieldDefaultProps,disabled:disableForm,error:toError,hideLabel:!0,label:intl.formatMessage(messages.fieldToLabel,{label}),onChange:e=>handleToOnChange(e.currentTarget.value,currentInputValues.from,form),placeholder:intl.formatMessage(messages.maxValuePlaceholder),value:currentInputValues.to})})]})]})}})})};export{metadata_float_field_module_default as n,MetadataFloatFieldAdvanced as t};
@@ -1 +1 @@
1
- import{n as RangeLabelType,t as FilterKeyTypes}from"../../../../../../chunks/types.js";import{convertToFormikValueRanged,getRelativeFromToValues}from"./date-conversion-utils.js";import messages from"../../../../messages.js";import{DEFAULT_MAX_DATE}from"./constants.js";import{t as metadata_date_field_module_default}from"../../../../../../chunks/metadata-date-field.module.js";import{t as ErrorType}from"../../../../../../chunks/types2.js";import{useDateValidation}from"./use-date-validation.js";import{useIntegerValidation}from"./use-integer-validation.js";import{getDynamicMaxMinValue,processRelativeDaysInput}from"./utils.js";import{t as AdvancedFilterSelect}from"../../../../../../chunks/advanced-filter-select.js";import{DateI18nProvider,DatePicker,TextInput}from"@box/blueprint-web";import{Field,getIn,useFormikContext}from"formik";import{useCallback,useEffect,useMemo,useRef,useState}from"react";import{useIntl}from"react-intl";import clsx from"clsx";import{jsx,jsxs}from"react/jsx-runtime";var MetadataDateFieldAdvanced=({disableForm,fieldNamePrefix,label,locale,portalElement,filterOptionsMap,onAdvancedFilterOptionChange,fieldAdvancedFilterOptions,hasAccordion,isModified})=>{let advancedFilterFieldName=`${fieldNamePrefix}.value.advancedFilterOption`,relativeDaysFieldName=`${fieldNamePrefix}.value.relativeDays`,fromFieldName=`${fieldNamePrefix}.value.range.gt`,toFieldName=`${fieldNamePrefix}.value.range.lt`,{values,setFieldValue,setFieldTouched}=useFormikContext(),{validateDates,fromDatePickerValue,toDatePickerValue,fromErrorType,toErrorType}=useDateValidation(values,fromFieldName,toFieldName,locale,!0),{validatePositiveInteger}=useIntegerValidation(),intl=useIntl(),[advancedFilterValue,setAdvancedFilterValue]=useState(fieldAdvancedFilterOptions||FilterKeyTypes.SELECT_FILTER_TYPE),[shouldUpdateFromToFields,setShouldUpdateFromToFields]=useState(!1),relativeDaysValue=getIn(values,relativeDaysFieldName),[lastChangedField,setLastChangedField]=useState(RangeLabelType.FROM),fromValidationRef=useRef(fromDatePickerValue),toValidationRef=useRef(toDatePickerValue),sharedDatePickerProps={clearDatePickerAriaLabel:intl.formatMessage(messages.clearSelectedDate),nextMonthAriaLabel:intl.formatMessage(messages.switchToNextMonth),openCalendarDropdownAriaLabel:intl.formatMessage(messages.openCalendar),previousMonthAriaLabel:intl.formatMessage(messages.switchToNextMonth)},updateFromToFields=useCallback(()=>{if(advancedFilterValue===FilterKeyTypes.TODAY){let{from,to}=getRelativeFromToValues(`today`,void 0);setFieldValue(fromFieldName,from),setFieldValue(toFieldName,to)}else if(relativeDaysValue!==void 0){let numValue=typeof relativeDaysValue==`string`?Number(relativeDaysValue):relativeDaysValue;if(!isNaN(numValue)&&numValue>0){let relativeType=advancedFilterValue;if([FilterKeyTypes.NEXT,FilterKeyTypes.PAST,FilterKeyTypes.OLDER_THAN].includes(relativeType)){let{from,to}=getRelativeFromToValues(relativeType,numValue);setFieldValue(fromFieldName,from),setFieldValue(toFieldName,to)}}}},[advancedFilterValue,relativeDaysValue,fromFieldName,toFieldName,setFieldValue]);useEffect(()=>{shouldUpdateFromToFields&&(updateFromToFields(),setShouldUpdateFromToFields(!1))},[shouldUpdateFromToFields,updateFromToFields]);let handleAdvancedFilterChange=useCallback(value=>{let selectedOption=value;setAdvancedFilterValue(selectedOption),setFieldValue(advancedFilterFieldName,selectedOption),onAdvancedFilterOptionChange&&onAdvancedFilterOptionChange(fieldNamePrefix,selectedOption),[FilterKeyTypes.IS_BLANK,FilterKeyTypes.IS_NOT_BLANK,FilterKeyTypes.SELECT_FILTER_TYPE].includes(selectedOption)||!selectedOption||selectedOption===FilterKeyTypes.CUSTOM_RANGE?(setFieldValue(relativeDaysFieldName,void 0),setFieldValue(fromFieldName,void 0),setFieldValue(toFieldName,void 0)):selectedOption===FilterKeyTypes.TODAY?(setFieldValue(relativeDaysFieldName,void 0),setShouldUpdateFromToFields(!0)):(setFieldValue(fromFieldName,void 0),setFieldValue(toFieldName,void 0))},[fieldNamePrefix,onAdvancedFilterOptionChange,setFieldValue,advancedFilterFieldName,relativeDaysFieldName,fromFieldName,toFieldName]),handleRelativeDaysChange=useCallback(value=>{let{valueToStore,shouldTriggerUpdate}=processRelativeDaysInput(value);setFieldValue(relativeDaysFieldName,valueToStore),shouldTriggerUpdate&&setShouldUpdateFromToFields(!0)},[setFieldValue,relativeDaysFieldName]),handleFromOnChange=useCallback(datePickerValue=>{let formikValue=convertToFormikValueRanged(datePickerValue,RangeLabelType.FROM);fromValidationRef.current=datePickerValue,setFieldValue(fromFieldName,formikValue),setLastChangedField(RangeLabelType.FROM)},[setFieldValue,fromFieldName]),handleToOnChange=useCallback(datePickerValue=>{let formikValue=convertToFormikValueRanged(datePickerValue,RangeLabelType.TO);toValidationRef.current=datePickerValue,setFieldValue(toFieldName,formikValue),setLastChangedField(RangeLabelType.TO)},[setFieldValue,toFieldName]),handleOnBlur=useCallback(rangeLabelType=>{setFieldTouched(rangeLabelType===RangeLabelType.FROM?fromFieldName:toFieldName,!0),setLastChangedField(rangeLabelType)},[setFieldTouched,fromFieldName,toFieldName]),fromMaxValue=useMemo(()=>getDynamicMaxMinValue(toDatePickerValue,DEFAULT_MAX_DATE),[toDatePickerValue]),toMinValue=useMemo(()=>getDynamicMaxMinValue(fromDatePickerValue),[fromDatePickerValue]),shouldHideError=(thisErrorType,otherErrorType,isNotLastChangedField)=>!!(otherErrorType===ErrorType.MAX&&thisErrorType===ErrorType.OVERLAPPING||thisErrorType===ErrorType.OVERLAPPING&&isNotLastChangedField),HIDE_INPUT_FILTER_VALUES=[FilterKeyTypes.IS_BLANK,FilterKeyTypes.IS_NOT_BLANK,FilterKeyTypes.SELECT_FILTER_TYPE,FilterKeyTypes.TODAY];return jsx(DateI18nProvider,{locale,children:jsxs(`div`,{className:metadata_date_field_module_default.advancedDateContainer,"data-testid":`${label}-advanced-field`,children:[jsx(AdvancedFilterSelect,{advancedFilterFieldName,disableForm,fieldAdvancedFilterOptions,fieldNamePrefix,filterOptionsMap,isModified,label,onAdvancedFilterOptionChange,onValueChange:handleAdvancedFilterChange,portalElement,showLabel:!hasAccordion,value:advancedFilterValue}),!advancedFilterValue||HIDE_INPUT_FILTER_VALUES.includes(advancedFilterValue)?null:advancedFilterValue===FilterKeyTypes.CUSTOM_RANGE?jsxs(`div`,{className:clsx(metadata_date_field_module_default.rangeInputsContainer,metadata_date_field_module_default.verticalLayout),children:[jsx(Field,{name:fromFieldName,validate:fromValue=>validateDates(fromValidationRef.current,toValidationRef.current,RangeLabelType.FROM),children:({field,meta})=>jsx(`div`,{className:metadata_date_field_module_default.datePicker,children:jsx(DatePicker,{...field,...sharedDatePickerProps,calendarAriaLabel:intl.formatMessage(messages.selectStartDate),error:!shouldHideError(fromErrorType,toErrorType,lastChangedField!==RangeLabelType.FROM)&&meta.error,isDisabled:disableForm,label:intl.formatMessage(messages.afterDate),maxValue:fromMaxValue,onBlur:()=>handleOnBlur(RangeLabelType.FROM),onChange:handleFromOnChange,portalElement,value:fromDatePickerValue})})}),jsx(Field,{name:toFieldName,validate:toValue=>validateDates(fromValidationRef.current,toValidationRef.current,RangeLabelType.TO),children:({field,meta})=>jsx(`div`,{className:metadata_date_field_module_default.datePicker,children:jsx(DatePicker,{...field,...sharedDatePickerProps,calendarAriaLabel:intl.formatMessage(messages.selectEndDate),error:!shouldHideError(toErrorType,fromErrorType,lastChangedField!==RangeLabelType.TO)&&meta.error,isDisabled:disableForm,label:intl.formatMessage(messages.beforeDate),maxValue:DEFAULT_MAX_DATE,minValue:toMinValue,onBlur:()=>handleOnBlur(RangeLabelType.TO),onChange:handleToOnChange,portalElement,value:toDatePickerValue})})})]}):jsx(Field,{name:relativeDaysFieldName,validate:value=>validatePositiveInteger(value?.toString()||``),children:({field,meta})=>jsx(`div`,{className:metadata_date_field_module_default.daysInputContainer,children:jsx(TextInput,{...field,disabled:disableForm,error:meta.touched&&meta.error,hideLabel:!0,label:intl.formatMessage(messages.relativeDaysSelectLabel),onChange:e=>handleRelativeDaysChange(e.target.value),placeholder:intl.formatMessage(messages.numberOfDays),value:relativeDaysValue?.toString()||``})})})]})})};export{MetadataDateFieldAdvanced,MetadataDateFieldAdvanced as default};
1
+ import{n as RangeLabelType,t as FilterKeyTypes}from"../../../../../../chunks/types.js";import{convertToFormikValueRanged,getRelativeFromToValues}from"./date-conversion-utils.js";import messages from"../../../../messages.js";import{DEFAULT_MAX_DATE}from"./constants.js";import{t as metadata_date_field_module_default}from"../../../../../../chunks/metadata-date-field.module.js";import{t as ErrorType}from"../../../../../../chunks/types2.js";import{useDateValidation}from"./use-date-validation.js";import{useIntegerValidation}from"./use-integer-validation.js";import{getDynamicMaxMinValue,processRelativeDaysInput}from"./utils.js";import{t as AdvancedFilterSelect}from"../../../../../../chunks/advanced-filter-select.js";import{DateI18nProvider,DatePicker,TextInput}from"@box/blueprint-web";import{Field,getIn,useFormikContext}from"formik";import{useCallback,useEffect,useMemo,useRef,useState}from"react";import{useIntl}from"react-intl";import clsx from"clsx";import{jsx,jsxs}from"react/jsx-runtime";var MetadataDateFieldAdvanced=({disableForm,fieldNamePrefix,label,labelSubtitle,locale,portalElement,filterOptionsMap,onAdvancedFilterOptionChange,fieldAdvancedFilterOptions,hasAccordion,isModified})=>{let advancedFilterFieldName=`${fieldNamePrefix}.value.advancedFilterOption`,relativeDaysFieldName=`${fieldNamePrefix}.value.relativeDays`,fromFieldName=`${fieldNamePrefix}.value.range.gt`,toFieldName=`${fieldNamePrefix}.value.range.lt`,{values,setFieldValue,setFieldTouched}=useFormikContext(),{validateDates,fromDatePickerValue,toDatePickerValue,fromErrorType,toErrorType}=useDateValidation(values,fromFieldName,toFieldName,locale,!0),{validatePositiveInteger}=useIntegerValidation(),intl=useIntl(),[advancedFilterValue,setAdvancedFilterValue]=useState(fieldAdvancedFilterOptions||FilterKeyTypes.SELECT_FILTER_TYPE),[shouldUpdateFromToFields,setShouldUpdateFromToFields]=useState(!1),relativeDaysValue=getIn(values,relativeDaysFieldName),[lastChangedField,setLastChangedField]=useState(RangeLabelType.FROM),fromValidationRef=useRef(fromDatePickerValue),toValidationRef=useRef(toDatePickerValue),sharedDatePickerProps={clearDatePickerAriaLabel:intl.formatMessage(messages.clearSelectedDate),nextMonthAriaLabel:intl.formatMessage(messages.switchToNextMonth),openCalendarDropdownAriaLabel:intl.formatMessage(messages.openCalendar),previousMonthAriaLabel:intl.formatMessage(messages.switchToNextMonth)},updateFromToFields=useCallback(()=>{if(advancedFilterValue===FilterKeyTypes.TODAY){let{from,to}=getRelativeFromToValues(`today`,void 0);setFieldValue(fromFieldName,from),setFieldValue(toFieldName,to)}else if(relativeDaysValue!==void 0){let numValue=typeof relativeDaysValue==`string`?Number(relativeDaysValue):relativeDaysValue;if(!isNaN(numValue)&&numValue>0){let relativeType=advancedFilterValue;if([FilterKeyTypes.NEXT,FilterKeyTypes.PAST,FilterKeyTypes.OLDER_THAN].includes(relativeType)){let{from,to}=getRelativeFromToValues(relativeType,numValue);setFieldValue(fromFieldName,from),setFieldValue(toFieldName,to)}}}},[advancedFilterValue,relativeDaysValue,fromFieldName,toFieldName,setFieldValue]);useEffect(()=>{shouldUpdateFromToFields&&(updateFromToFields(),setShouldUpdateFromToFields(!1))},[shouldUpdateFromToFields,updateFromToFields]);let handleAdvancedFilterChange=useCallback(value=>{let selectedOption=value;setAdvancedFilterValue(selectedOption),setFieldValue(advancedFilterFieldName,selectedOption),onAdvancedFilterOptionChange&&onAdvancedFilterOptionChange(fieldNamePrefix,selectedOption),[FilterKeyTypes.IS_BLANK,FilterKeyTypes.IS_NOT_BLANK,FilterKeyTypes.SELECT_FILTER_TYPE].includes(selectedOption)||!selectedOption||selectedOption===FilterKeyTypes.CUSTOM_RANGE?(setFieldValue(relativeDaysFieldName,void 0),setFieldValue(fromFieldName,void 0),setFieldValue(toFieldName,void 0)):selectedOption===FilterKeyTypes.TODAY?(setFieldValue(relativeDaysFieldName,void 0),setShouldUpdateFromToFields(!0)):(setFieldValue(fromFieldName,void 0),setFieldValue(toFieldName,void 0))},[fieldNamePrefix,onAdvancedFilterOptionChange,setFieldValue,advancedFilterFieldName,relativeDaysFieldName,fromFieldName,toFieldName]),handleRelativeDaysChange=useCallback(value=>{let{valueToStore,shouldTriggerUpdate}=processRelativeDaysInput(value);setFieldValue(relativeDaysFieldName,valueToStore),shouldTriggerUpdate&&setShouldUpdateFromToFields(!0)},[setFieldValue,relativeDaysFieldName]),handleFromOnChange=useCallback(datePickerValue=>{let formikValue=convertToFormikValueRanged(datePickerValue,RangeLabelType.FROM);fromValidationRef.current=datePickerValue,setFieldValue(fromFieldName,formikValue),setLastChangedField(RangeLabelType.FROM)},[setFieldValue,fromFieldName]),handleToOnChange=useCallback(datePickerValue=>{let formikValue=convertToFormikValueRanged(datePickerValue,RangeLabelType.TO);toValidationRef.current=datePickerValue,setFieldValue(toFieldName,formikValue),setLastChangedField(RangeLabelType.TO)},[setFieldValue,toFieldName]),handleOnBlur=useCallback(rangeLabelType=>{setFieldTouched(rangeLabelType===RangeLabelType.FROM?fromFieldName:toFieldName,!0),setLastChangedField(rangeLabelType)},[setFieldTouched,fromFieldName,toFieldName]),fromMaxValue=useMemo(()=>getDynamicMaxMinValue(toDatePickerValue,DEFAULT_MAX_DATE),[toDatePickerValue]),toMinValue=useMemo(()=>getDynamicMaxMinValue(fromDatePickerValue),[fromDatePickerValue]),shouldHideError=(thisErrorType,otherErrorType,isNotLastChangedField)=>!!(otherErrorType===ErrorType.MAX&&thisErrorType===ErrorType.OVERLAPPING||thisErrorType===ErrorType.OVERLAPPING&&isNotLastChangedField),HIDE_INPUT_FILTER_VALUES=[FilterKeyTypes.IS_BLANK,FilterKeyTypes.IS_NOT_BLANK,FilterKeyTypes.SELECT_FILTER_TYPE,FilterKeyTypes.TODAY];return jsx(DateI18nProvider,{locale,children:jsxs(`div`,{className:metadata_date_field_module_default.advancedDateContainer,"data-testid":`${label}-advanced-field`,children:[jsx(AdvancedFilterSelect,{advancedFilterFieldName,disableForm,fieldAdvancedFilterOptions,fieldNamePrefix,filterOptionsMap,isModified,label,labelSubtitle,onAdvancedFilterOptionChange,onValueChange:handleAdvancedFilterChange,portalElement,showLabel:!hasAccordion,value:advancedFilterValue}),!advancedFilterValue||HIDE_INPUT_FILTER_VALUES.includes(advancedFilterValue)?null:advancedFilterValue===FilterKeyTypes.CUSTOM_RANGE?jsxs(`div`,{className:clsx(metadata_date_field_module_default.rangeInputsContainer,metadata_date_field_module_default.verticalLayout),children:[jsx(Field,{name:fromFieldName,validate:fromValue=>validateDates(fromValidationRef.current,toValidationRef.current,RangeLabelType.FROM),children:({field,meta})=>jsx(`div`,{className:metadata_date_field_module_default.datePicker,children:jsx(DatePicker,{...field,...sharedDatePickerProps,calendarAriaLabel:intl.formatMessage(messages.selectStartDate),error:!shouldHideError(fromErrorType,toErrorType,lastChangedField!==RangeLabelType.FROM)&&meta.error,isDisabled:disableForm,label:intl.formatMessage(messages.afterDate),maxValue:fromMaxValue,onBlur:()=>handleOnBlur(RangeLabelType.FROM),onChange:handleFromOnChange,portalElement,value:fromDatePickerValue})})}),jsx(Field,{name:toFieldName,validate:toValue=>validateDates(fromValidationRef.current,toValidationRef.current,RangeLabelType.TO),children:({field,meta})=>jsx(`div`,{className:metadata_date_field_module_default.datePicker,children:jsx(DatePicker,{...field,...sharedDatePickerProps,calendarAriaLabel:intl.formatMessage(messages.selectEndDate),error:!shouldHideError(toErrorType,fromErrorType,lastChangedField!==RangeLabelType.TO)&&meta.error,isDisabled:disableForm,label:intl.formatMessage(messages.beforeDate),maxValue:DEFAULT_MAX_DATE,minValue:toMinValue,onBlur:()=>handleOnBlur(RangeLabelType.TO),onChange:handleToOnChange,portalElement,value:toDatePickerValue})})})]}):jsx(Field,{name:relativeDaysFieldName,validate:value=>validatePositiveInteger(value?.toString()||``),children:({field,meta})=>jsx(`div`,{className:metadata_date_field_module_default.daysInputContainer,children:jsx(TextInput,{...field,disabled:disableForm,error:meta.touched&&meta.error,hideLabel:!0,label:intl.formatMessage(messages.relativeDaysSelectLabel),onChange:e=>handleRelativeDaysChange(e.target.value),placeholder:intl.formatMessage(messages.numberOfDays),value:relativeDaysValue?.toString()||``})})})]})})};export{MetadataDateFieldAdvanced,MetadataDateFieldAdvanced as default};
@@ -1 +1 @@
1
- import{t as FilterKeyTypes}from"../../../../../../chunks/types.js";import messages from"../../../../messages.js";import{t as AdvancedFilterSelect}from"../../../../../../chunks/advanced-filter-select.js";import{fieldDefaultProps}from"../constants.js";import{createFieldValue,getInitialAdvancedFilterValue,getInputValue}from"./utils.js";import{Combobox,TooltipProvider}from"@box/blueprint-web";import{Field,getIn,useFormikContext}from"formik";import{useCallback,useMemo,useRef,useState}from"react";import{useIntl}from"react-intl";import{Fragment,jsx,jsxs}from"react/jsx-runtime";var isBlankOption=advancedFilterOption=>advancedFilterOption===FilterKeyTypes.IS_BLANK||advancedFilterOption===FilterKeyTypes.IS_NOT_BLANK,MetadataMultiSelectFieldAdvanced=({label,fieldNamePrefix,disableForm,onAdvancedFilterOptionChange,fieldAdvancedFilterOptions,filterOptionsMap,portalElement,hasAccordion,isModified,hasExperimentalVirtualization})=>{let{setFieldValue,values}=useFormikContext(),intl=useIntl(),fieldName=`${fieldNamePrefix}.value.enum`,options=useMemo(()=>getIn(values,`${fieldNamePrefix}.options`,[]).map(option=>option?.key).filter(key=>typeof key==`string`),[values,fieldNamePrefix]),[advancedFilterOption,setAdvancedFilterOption]=useState(getInitialAdvancedFilterValue(fieldAdvancedFilterOptions,filterOptionsMap)||FilterKeyTypes.MATCH_ANY),[isComboboxOpen,setIsComboboxOpen]=useState(!1),[isSelectOpen,setIsSelectOpen]=useState(!1),onFilter=(query,option)=>typeof option==`string`?option.toLowerCase().includes(query.toLowerCase()):!1,inputValueRef=useRef([]),formRef=useRef(null),handleAdvancedFilterOptionChange=useCallback((value,inputValue,form)=>{let selectedOption=value;setAdvancedFilterOption(selectedOption),onAdvancedFilterOptionChange?.(fieldName,selectedOption);let newValue=createFieldValue(isBlankOption(value)?[]:inputValue,value,!0);form.setFieldValue(fieldName,newValue)},[fieldName,onAdvancedFilterOptionChange]),handleSelectValueChange=useCallback(value=>{formRef.current&&handleAdvancedFilterOptionChange(value,inputValueRef.current,formRef.current)},[handleAdvancedFilterOptionChange]),handleValueChange=useCallback(value=>{setFieldValue(fieldName,createFieldValue(value,advancedFilterOption,!0))},[advancedFilterOption,fieldName,setFieldValue]),handleComboboxOpenChange=useCallback(open=>{setIsComboboxOpen(open),open&&setIsSelectOpen(!1)},[]),handleSelectOpenChange=useCallback(open=>{setIsSelectOpen(open),open&&setIsComboboxOpen(!1)},[]),getPlaceholder=useCallback(inputValue=>!inputValue||inputValue.length===0?intl.formatMessage(messages.multiselectPlaceholder):``,[intl]);return jsx(`div`,{"data-testid":`${label}-field`,children:jsx(Field,{name:fieldName,children:({field,form})=>{let inputValue=getInputValue(field.value,!0);return inputValueRef.current=inputValue,formRef.current=form,jsxs(Fragment,{children:[jsx(AdvancedFilterSelect,{disableForm,fieldAdvancedFilterOptions,fieldNamePrefix,filterOptionsMap,isModified,label,onAdvancedFilterOptionChange,onOpenChange:handleSelectOpenChange,onValueChange:handleSelectValueChange,open:isSelectOpen,portalElement,showLabel:!hasAccordion,value:advancedFilterOption}),!isBlankOption(advancedFilterOption)&&jsx(TooltipProvider,{children:jsx(Combobox,{...fieldDefaultProps,as:`input`,disabled:disableForm,experimentalVirtualization:hasExperimentalVirtualization,filterFn:onFilter,hideLabel:!0,label,multiselect:!0,name:field.name,onOpenChange:handleComboboxOpenChange,onValueChange:handleValueChange,open:isComboboxOpen,options,placeholder:getPlaceholder(inputValue),portalElement,value:inputValue})})]})}})})};export{MetadataMultiSelectFieldAdvanced};
1
+ import{t as FilterKeyTypes}from"../../../../../../chunks/types.js";import messages from"../../../../messages.js";import{t as AdvancedFilterSelect}from"../../../../../../chunks/advanced-filter-select.js";import{fieldDefaultProps}from"../constants.js";import{createFieldValue,getInitialAdvancedFilterValue,getInputValue}from"./utils.js";import{Combobox,TooltipProvider}from"@box/blueprint-web";import{Field,getIn,useFormikContext}from"formik";import{useCallback,useMemo,useRef,useState}from"react";import{useIntl}from"react-intl";import{Fragment,jsx,jsxs}from"react/jsx-runtime";var isBlankOption=advancedFilterOption=>advancedFilterOption===FilterKeyTypes.IS_BLANK||advancedFilterOption===FilterKeyTypes.IS_NOT_BLANK,MetadataMultiSelectFieldAdvanced=({label,labelSubtitle,fieldNamePrefix,disableForm,onAdvancedFilterOptionChange,fieldAdvancedFilterOptions,filterOptionsMap,portalElement,hasAccordion,isModified,hasExperimentalVirtualization})=>{let{setFieldValue,values}=useFormikContext(),intl=useIntl(),fieldName=`${fieldNamePrefix}.value.enum`,options=useMemo(()=>getIn(values,`${fieldNamePrefix}.options`,[]).map(option=>option?.key).filter(key=>typeof key==`string`),[values,fieldNamePrefix]),[advancedFilterOption,setAdvancedFilterOption]=useState(getInitialAdvancedFilterValue(fieldAdvancedFilterOptions,filterOptionsMap)||FilterKeyTypes.MATCH_ANY),[isComboboxOpen,setIsComboboxOpen]=useState(!1),[isSelectOpen,setIsSelectOpen]=useState(!1),onFilter=(query,option)=>typeof option==`string`?option.toLowerCase().includes(query.toLowerCase()):!1,inputValueRef=useRef([]),formRef=useRef(null),handleAdvancedFilterOptionChange=useCallback((value,inputValue,form)=>{let selectedOption=value;setAdvancedFilterOption(selectedOption),onAdvancedFilterOptionChange?.(fieldName,selectedOption);let newValue=createFieldValue(isBlankOption(value)?[]:inputValue,value,!0);form.setFieldValue(fieldName,newValue)},[fieldName,onAdvancedFilterOptionChange]),handleSelectValueChange=useCallback(value=>{formRef.current&&handleAdvancedFilterOptionChange(value,inputValueRef.current,formRef.current)},[handleAdvancedFilterOptionChange]),handleValueChange=useCallback(value=>{setFieldValue(fieldName,createFieldValue(value,advancedFilterOption,!0))},[advancedFilterOption,fieldName,setFieldValue]),handleComboboxOpenChange=useCallback(open=>{setIsComboboxOpen(open),open&&setIsSelectOpen(!1)},[]),handleSelectOpenChange=useCallback(open=>{setIsSelectOpen(open),open&&setIsComboboxOpen(!1)},[]),getPlaceholder=useCallback(inputValue=>!inputValue||inputValue.length===0?intl.formatMessage(messages.multiselectPlaceholder):``,[intl]);return jsx(`div`,{"data-testid":`${label}-field`,children:jsx(Field,{name:fieldName,children:({field,form})=>{let inputValue=getInputValue(field.value,!0);return inputValueRef.current=inputValue,formRef.current=form,jsxs(Fragment,{children:[jsx(AdvancedFilterSelect,{disableForm,fieldAdvancedFilterOptions,fieldNamePrefix,filterOptionsMap,isModified,label,labelSubtitle,onAdvancedFilterOptionChange,onOpenChange:handleSelectOpenChange,onValueChange:handleSelectValueChange,open:isSelectOpen,portalElement,showLabel:!hasAccordion,value:advancedFilterOption}),!isBlankOption(advancedFilterOption)&&jsx(TooltipProvider,{children:jsx(Combobox,{...fieldDefaultProps,as:`input`,disabled:disableForm,experimentalVirtualization:hasExperimentalVirtualization,filterFn:onFilter,hideLabel:!0,label,multiselect:!0,name:field.name,onOpenChange:handleComboboxOpenChange,onValueChange:handleValueChange,open:isComboboxOpen,options,placeholder:getPlaceholder(inputValue),portalElement,value:inputValue})})]})}})})};export{MetadataMultiSelectFieldAdvanced};
@@ -1 +1 @@
1
- import{t as FilterKeyTypes}from"../../../../../../chunks/types.js";import messages from"../../../../messages.js";import{t as AdvancedFilterSelect}from"../../../../../../chunks/advanced-filter-select.js";import{fieldDefaultProps}from"../constants.js";import{createFieldValue,getInitialAdvancedFilterValue,getInputValue,shouldHideTextInput}from"./utils.js";import{TextInput}from"@box/blueprint-web";import{Field}from"formik";import{useCallback,useState}from"react";import{useIntl}from"react-intl";import{Fragment,jsx,jsxs}from"react/jsx-runtime";var MetadataStringField=({label,fieldNamePrefix,disableForm,isAdvancedFilterEnabled,onAdvancedFilterOptionChange,fieldAdvancedFilterOptions,filterOptionsMap,hasAccordion,isModified,placeholder})=>{let intl=useIntl(),fieldName=`${fieldNamePrefix}.value.enum[0]`,[advancedFilterOption,setAdvancedFilterOption]=useState(getInitialAdvancedFilterValue(fieldAdvancedFilterOptions,filterOptionsMap)||FilterKeyTypes.CONTAINS),handleAdvancedFilterOptionChange=useCallback((value,inputValue,form)=>{let selectedOption=value;setAdvancedFilterOption(selectedOption),onAdvancedFilterOptionChange?.(fieldName,selectedOption);let newValue=createFieldValue(inputValue,value,isAdvancedFilterEnabled);form.setFieldValue(fieldName,newValue)},[fieldName,isAdvancedFilterEnabled,onAdvancedFilterOptionChange]),handleTextInputChange=useCallback((event,form)=>{let newInputValue=event.target.value,newValue=createFieldValue(newInputValue,advancedFilterOption,isAdvancedFilterEnabled);form.setFieldValue(fieldName,newValue)},[advancedFilterOption,isAdvancedFilterEnabled,fieldName]);return jsx(`div`,{"data-testid":`${label}-field`,children:jsx(Field,{name:fieldName,children:({field,meta,form})=>{let inputValue=getInputValue(field.value,isAdvancedFilterEnabled);return jsxs(Fragment,{children:[isAdvancedFilterEnabled&&jsx(AdvancedFilterSelect,{disableForm,fieldAdvancedFilterOptions,fieldNamePrefix,filterOptionsMap,isModified,label,onAdvancedFilterOptionChange,onValueChange:value=>handleAdvancedFilterOptionChange(value,inputValue,form),showLabel:isAdvancedFilterEnabled&&!hasAccordion,value:advancedFilterOption}),!shouldHideTextInput(isAdvancedFilterEnabled,advancedFilterOption)&&jsx(TextInput,{...fieldDefaultProps,...field,"aria-label":intl.formatMessage(messages.enterValueAriaLabel,{label}),"data-target-id":`TextInput-${fieldNamePrefix}`,disabled:disableForm,error:meta.error,hideLabel:isAdvancedFilterEnabled||hasAccordion,label,onChange:event=>handleTextInputChange(event,form),placeholder:placeholder||intl.formatMessage(messages.setValuePlaceholder),value:inputValue})]})}})})};MetadataStringField.displayName=`MetadataStringField`;export{MetadataStringField,MetadataStringField as default};
1
+ import{t as FilterKeyTypes}from"../../../../../../chunks/types.js";import messages from"../../../../messages.js";import{t as AdvancedFilterSelect}from"../../../../../../chunks/advanced-filter-select.js";import{fieldDefaultProps}from"../constants.js";import{createFieldValue,getInitialAdvancedFilterValue,getInputValue,shouldHideTextInput}from"./utils.js";import{TextInput}from"@box/blueprint-web";import{Field}from"formik";import{useCallback,useState}from"react";import{useIntl}from"react-intl";import{Fragment,jsx,jsxs}from"react/jsx-runtime";var MetadataStringField=({label,labelSubtitle,fieldNamePrefix,disableForm,isAdvancedFilterEnabled,onAdvancedFilterOptionChange,fieldAdvancedFilterOptions,filterOptionsMap,hasAccordion,isModified,placeholder})=>{let intl=useIntl(),fieldName=`${fieldNamePrefix}.value.enum[0]`,[advancedFilterOption,setAdvancedFilterOption]=useState(getInitialAdvancedFilterValue(fieldAdvancedFilterOptions,filterOptionsMap)||FilterKeyTypes.CONTAINS),handleAdvancedFilterOptionChange=useCallback((value,inputValue,form)=>{let selectedOption=value;setAdvancedFilterOption(selectedOption),onAdvancedFilterOptionChange?.(fieldName,selectedOption);let newValue=createFieldValue(inputValue,value,isAdvancedFilterEnabled);form.setFieldValue(fieldName,newValue)},[fieldName,isAdvancedFilterEnabled,onAdvancedFilterOptionChange]),handleTextInputChange=useCallback((event,form)=>{let newInputValue=event.target.value,newValue=createFieldValue(newInputValue,advancedFilterOption,isAdvancedFilterEnabled);form.setFieldValue(fieldName,newValue)},[advancedFilterOption,isAdvancedFilterEnabled,fieldName]);return jsx(`div`,{"data-testid":`${label}-field`,children:jsx(Field,{name:fieldName,children:({field,meta,form})=>{let inputValue=getInputValue(field.value,isAdvancedFilterEnabled);return jsxs(Fragment,{children:[isAdvancedFilterEnabled&&jsx(AdvancedFilterSelect,{disableForm,fieldAdvancedFilterOptions,fieldNamePrefix,filterOptionsMap,isModified,label,labelSubtitle,onAdvancedFilterOptionChange,onValueChange:value=>handleAdvancedFilterOptionChange(value,inputValue,form),showLabel:isAdvancedFilterEnabled&&!hasAccordion,value:advancedFilterOption}),!shouldHideTextInput(isAdvancedFilterEnabled,advancedFilterOption)&&jsx(TextInput,{...fieldDefaultProps,...field,"aria-label":intl.formatMessage(messages.enterValueAriaLabel,{label}),"data-target-id":`TextInput-${fieldNamePrefix}`,disabled:disableForm,error:meta.error,hideLabel:isAdvancedFilterEnabled||hasAccordion,label,onChange:event=>handleTextInputChange(event,form),placeholder:placeholder||intl.formatMessage(messages.setValuePlaceholder),value:inputValue})]})}})})};MetadataStringField.displayName=`MetadataStringField`;export{MetadataStringField,MetadataStringField as default};
@@ -1 +1 @@
1
- import messages from"../../../../messages.js";import{t as AdvancedFilterSelect}from"../../../../../../chunks/advanced-filter-select.js";import{t as metadata_taxonomy_field_advanced_module_default}from"../../../../../../chunks/metadata-taxonomy-field-advanced.module.js";import{createFieldValue,getInitialAdvancedFilterValue,getInputValue,isBlankOption}from"./utils.js";import{ComboboxWithApiPagination,ComboboxWithApiTreeView}from"@box/combobox-with-api";import{Field,getIn,useFormikContext}from"formik";import{useCallback,useState}from"react";import{useIntl}from"react-intl";import clsx from"clsx";import{Fragment,jsx,jsxs}from"react/jsx-runtime";var LegacyMetadataTaxonomyFieldAdvanced=({className,disableForm,fieldNamePrefix,label,portalElement,taxonomyOptionsFetcher,isMultilevelTaxonomyFieldEnabled,hasAccordion,isAdvancedFilterEnabled,onAdvancedFilterOptionChange,fieldAdvancedFilterOptions,filterOptionsMap,isModified})=>{let{setFieldValue,values}=useFormikContext(),{metadata:{templateKey,scope}}=values,intl=useIntl(),fieldName=`${fieldNamePrefix}.value`,{key,optionsRules,levels}=getIn(values,fieldNamePrefix),selectableLevels=optionsRules?.selectableLevels,isMultilevelTaxonomy=isMultilevelTaxonomyFieldEnabled&&selectableLevels?.some(level=>level>1),[advancedFilterOption,setAdvancedFilterOption]=useState(getInitialAdvancedFilterValue(fieldAdvancedFilterOptions,filterOptionsMap)),[isSelectOpen,setIsSelectOpen]=useState(!1),defaultFetcher=useCallback(input=>taxonomyOptionsFetcher?taxonomyOptionsFetcher(scope,templateKey,key,selectableLevels?.[0]??0,input):Promise.resolve({options:[]}),[key,scope,selectableLevels,taxonomyOptionsFetcher,templateKey]),getPlaceholder=useCallback(selectedValues=>selectedValues?.length===0?intl.formatMessage(messages.multiselectPlaceholder):``,[intl]),handleAdvancedFilterOptionChange=useCallback((value,inputValue,form)=>{setAdvancedFilterOption(value),onAdvancedFilterOptionChange?.(fieldName,value);let newValue=createFieldValue(isBlankOption(value)?[]:inputValue,value,isAdvancedFilterEnabled);form.setFieldValue(fieldName,newValue)},[fieldName,isAdvancedFilterEnabled,onAdvancedFilterOptionChange]),handleComboboxOpenChange=useCallback(open=>{open&&setIsSelectOpen(!1)},[]),handleValueChange=useCallback(value=>{setFieldValue(fieldName,createFieldValue(value,advancedFilterOption,isAdvancedFilterEnabled))},[advancedFilterOption,fieldName,isAdvancedFilterEnabled,setFieldValue]);return jsx(`div`,{"data-testid":`${label}-field`,children:jsx(Field,{name:fieldName,children:({field,form})=>{let inputValue=getInputValue(field.value,isAdvancedFilterEnabled);return jsxs(Fragment,{children:[jsx(AdvancedFilterSelect,{disableForm:disableForm??!1,fieldAdvancedFilterOptions,fieldNamePrefix,filterOptionsMap,isModified,label,onAdvancedFilterOptionChange,onOpenChange:setIsSelectOpen,onValueChange:value=>handleAdvancedFilterOptionChange(value,inputValue,form),open:isSelectOpen,portalElement,showLabel:!hasAccordion,value:advancedFilterOption}),!isBlankOption(advancedFilterOption)&&jsx(`div`,{className:clsx(metadata_taxonomy_field_advanced_module_default.comboboxWrapper,disableForm&&metadata_taxonomy_field_advanced_module_default.disabled),children:isMultilevelTaxonomy?jsx(ComboboxWithApiTreeView,{className:clsx(className,disableForm&&metadata_taxonomy_field_advanced_module_default.disabledTreeView),defaultFetcher,disabled:disableForm,hideLabel:!0,label,levels,multiselect:!0,onOpenChange:handleComboboxOpenChange,onValueChange:handleValueChange,placeholder:getPlaceholder(inputValue),portalElement,selectableLevels,value:inputValue}):jsx(ComboboxWithApiPagination,{className,defaultFetcher,disabled:disableForm,label:void 0,multiselect:!0,onOpenChange:handleComboboxOpenChange,onValueChange:handleValueChange,placeholder:getPlaceholder(inputValue),portalElement,value:inputValue})})]})}})})};export{LegacyMetadataTaxonomyFieldAdvanced,LegacyMetadataTaxonomyFieldAdvanced as default};
1
+ import messages from"../../../../messages.js";import{t as AdvancedFilterSelect}from"../../../../../../chunks/advanced-filter-select.js";import{t as metadata_taxonomy_field_advanced_module_default}from"../../../../../../chunks/metadata-taxonomy-field-advanced.module.js";import{createFieldValue,getInitialAdvancedFilterValue,getInputValue,isBlankOption}from"./utils.js";import{ComboboxWithApiPagination,ComboboxWithApiTreeView}from"@box/combobox-with-api";import{Field,getIn,useFormikContext}from"formik";import{useCallback,useState}from"react";import{useIntl}from"react-intl";import clsx from"clsx";import{Fragment,jsx,jsxs}from"react/jsx-runtime";var LegacyMetadataTaxonomyFieldAdvanced=({className,disableForm,fieldNamePrefix,label,labelSubtitle,portalElement,taxonomyOptionsFetcher,isMultilevelTaxonomyFieldEnabled,hasAccordion,isAdvancedFilterEnabled,onAdvancedFilterOptionChange,fieldAdvancedFilterOptions,filterOptionsMap,isModified})=>{let{setFieldValue,values}=useFormikContext(),{metadata:{templateKey,scope}}=values,intl=useIntl(),fieldName=`${fieldNamePrefix}.value`,{key,optionsRules,levels}=getIn(values,fieldNamePrefix),selectableLevels=optionsRules?.selectableLevels,isMultilevelTaxonomy=isMultilevelTaxonomyFieldEnabled&&selectableLevels?.some(level=>level>1),[advancedFilterOption,setAdvancedFilterOption]=useState(getInitialAdvancedFilterValue(fieldAdvancedFilterOptions,filterOptionsMap)),[isSelectOpen,setIsSelectOpen]=useState(!1),defaultFetcher=useCallback(input=>taxonomyOptionsFetcher?taxonomyOptionsFetcher(scope,templateKey,key,selectableLevels?.[0]??0,input):Promise.resolve({options:[]}),[key,scope,selectableLevels,taxonomyOptionsFetcher,templateKey]),getPlaceholder=useCallback(selectedValues=>selectedValues?.length===0?intl.formatMessage(messages.multiselectPlaceholder):``,[intl]),handleAdvancedFilterOptionChange=useCallback((value,inputValue,form)=>{setAdvancedFilterOption(value),onAdvancedFilterOptionChange?.(fieldName,value);let newValue=createFieldValue(isBlankOption(value)?[]:inputValue,value,isAdvancedFilterEnabled);form.setFieldValue(fieldName,newValue)},[fieldName,isAdvancedFilterEnabled,onAdvancedFilterOptionChange]),handleComboboxOpenChange=useCallback(open=>{open&&setIsSelectOpen(!1)},[]),handleValueChange=useCallback(value=>{setFieldValue(fieldName,createFieldValue(value,advancedFilterOption,isAdvancedFilterEnabled))},[advancedFilterOption,fieldName,isAdvancedFilterEnabled,setFieldValue]);return jsx(`div`,{"data-testid":`${label}-field`,children:jsx(Field,{name:fieldName,children:({field,form})=>{let inputValue=getInputValue(field.value,isAdvancedFilterEnabled);return jsxs(Fragment,{children:[jsx(AdvancedFilterSelect,{disableForm:disableForm??!1,fieldAdvancedFilterOptions,fieldNamePrefix,filterOptionsMap,isModified,label,labelSubtitle,onAdvancedFilterOptionChange,onOpenChange:setIsSelectOpen,onValueChange:value=>handleAdvancedFilterOptionChange(value,inputValue,form),open:isSelectOpen,portalElement,showLabel:!hasAccordion,value:advancedFilterOption}),!isBlankOption(advancedFilterOption)&&jsx(`div`,{className:clsx(metadata_taxonomy_field_advanced_module_default.comboboxWrapper,disableForm&&metadata_taxonomy_field_advanced_module_default.disabled),children:isMultilevelTaxonomy?jsx(ComboboxWithApiTreeView,{className:clsx(className,disableForm&&metadata_taxonomy_field_advanced_module_default.disabledTreeView),defaultFetcher,disabled:disableForm,hideLabel:!0,label,levels,multiselect:!0,onOpenChange:handleComboboxOpenChange,onValueChange:handleValueChange,placeholder:getPlaceholder(inputValue),portalElement,selectableLevels,value:inputValue}):jsx(ComboboxWithApiPagination,{className,defaultFetcher,disabled:disableForm,label:void 0,multiselect:!0,onOpenChange:handleComboboxOpenChange,onValueChange:handleValueChange,placeholder:getPlaceholder(inputValue),portalElement,value:inputValue})})]})}})})};export{LegacyMetadataTaxonomyFieldAdvanced,LegacyMetadataTaxonomyFieldAdvanced as default};
@@ -1 +1 @@
1
- import messages from"../../../../../messages.js";import{t as AdvancedFilterSelect}from"../../../../../../../chunks/advanced-filter-select.js";import{getTaxonomyPickerMode,mapFormValueToTaxonomyValues,mapLevelsToTaxonomyLevels,mapTaxonomyValuesToFormValue}from"./value-mapping.js";import{t as metadata_taxonomy_field_advanced_module_default}from"../../../../../../../chunks/metadata-taxonomy-field-advanced.module.js";import{createFieldValue,getInitialAdvancedFilterValue,getInputValue,isBlankOption}from"../utils.js";import{Field,getIn,useFormikContext}from"formik";import{useCallback,useMemo,useRef,useState}from"react";import{useIntl}from"react-intl";import clsx from"clsx";import{Fragment,jsx,jsxs}from"react/jsx-runtime";import{MetadataTaxonomyPicker}from"@box/metadata-taxonomy-picker";var MetadataTaxonomyPickerFieldAdvanced=({className,disableForm,fieldNamePrefix,label,portalElement,isMultilevelTaxonomyFieldEnabled,hasAccordion,isAdvancedFilterEnabled,onAdvancedFilterOptionChange,fieldAdvancedFilterOptions,filterOptionsMap,isModified,createTaxonomyItemsService})=>{let{setFieldValue,values}=useFormikContext(),{metadata:{templateKey,scope}}=values,intl=useIntl(),fieldName=`${fieldNamePrefix}.value`,{key,optionsRules,levels}=getIn(values,fieldNamePrefix),selectableLevels=optionsRules?.selectableLevels,mode=getTaxonomyPickerMode(isMultilevelTaxonomyFieldEnabled,selectableLevels),[advancedFilterOption,setAdvancedFilterOption]=useState(getInitialAdvancedFilterValue(fieldAdvancedFilterOptions,filterOptionsMap)),[isSelectOpen,setIsSelectOpen]=useState(!1),lastValuesRef=useRef([]),itemsService=useMemo(()=>createTaxonomyItemsService({scope,templateKey,fieldKey:key}),[createTaxonomyItemsService,scope,templateKey,key]),pickerLevels=useMemo(()=>mapLevelsToTaxonomyLevels(levels,selectableLevels),[levels,selectableLevels]),getPlaceholder=useCallback(selectedValues=>selectedValues.length===0?intl.formatMessage(messages.multiselectPlaceholder):``,[intl]),handleAdvancedFilterOptionChange=useCallback((value,inputValue,form)=>{setAdvancedFilterOption(value),onAdvancedFilterOptionChange?.(fieldName,value);let valuesToUse=[];isBlankOption(value)||(valuesToUse=inputValue.length?inputValue:lastValuesRef.current);let newValue=createFieldValue(valuesToUse,value,isAdvancedFilterEnabled);form.setFieldValue(fieldName,newValue)},[fieldName,isAdvancedFilterEnabled,onAdvancedFilterOptionChange]),eventService=useMemo(()=>({onOpenChange:open=>{open&&setIsSelectOpen(!1)}}),[]),handleValueChange=useCallback(newValues=>{let mapped=mapTaxonomyValuesToFormValue(newValues,mode);lastValuesRef.current=mapped,setFieldValue(fieldName,createFieldValue(mapped,advancedFilterOption,isAdvancedFilterEnabled))},[advancedFilterOption,fieldName,isAdvancedFilterEnabled,mode,setFieldValue]);return jsx(`div`,{"data-testid":`${label}-field`,children:jsx(Field,{name:fieldName,children:({field,form})=>{let inputValue=getInputValue(field.value,isAdvancedFilterEnabled),pickerValue=mapFormValueToTaxonomyValues(inputValue);return jsxs(Fragment,{children:[jsx(AdvancedFilterSelect,{disableForm:disableForm??!1,fieldAdvancedFilterOptions,fieldNamePrefix,filterOptionsMap,isModified,label,onAdvancedFilterOptionChange,onOpenChange:setIsSelectOpen,onValueChange:value=>handleAdvancedFilterOptionChange(value,inputValue,form),open:isSelectOpen,portalElement,showLabel:!hasAccordion,value:advancedFilterOption}),!isBlankOption(advancedFilterOption)&&jsx(`div`,{className:clsx(metadata_taxonomy_field_advanced_module_default.comboboxWrapper,disableForm&&metadata_taxonomy_field_advanced_module_default.disabled),children:jsx(MetadataTaxonomyPicker,{containerClassName:className,disabled:disableForm,eventService,itemsService,levels:pickerLevels,mode,multiSelect:!0,onValueChange:handleValueChange,placeholder:getPlaceholder(pickerValue),portalElement,value:pickerValue})})]})}})})};export{MetadataTaxonomyPickerFieldAdvanced,MetadataTaxonomyPickerFieldAdvanced as default};
1
+ import messages from"../../../../../messages.js";import{t as AdvancedFilterSelect}from"../../../../../../../chunks/advanced-filter-select.js";import{getTaxonomyPickerMode,mapFormValueToTaxonomyValues,mapLevelsToTaxonomyLevels,mapTaxonomyValuesToFormValue}from"./value-mapping.js";import{t as metadata_taxonomy_field_advanced_module_default}from"../../../../../../../chunks/metadata-taxonomy-field-advanced.module.js";import{createFieldValue,getInitialAdvancedFilterValue,getInputValue,isBlankOption}from"../utils.js";import{Field,getIn,useFormikContext}from"formik";import{useCallback,useMemo,useRef,useState}from"react";import{useIntl}from"react-intl";import clsx from"clsx";import{Fragment,jsx,jsxs}from"react/jsx-runtime";import{MetadataTaxonomyPicker}from"@box/metadata-taxonomy-picker";var MetadataTaxonomyPickerFieldAdvanced=({className,disableForm,fieldNamePrefix,label,labelSubtitle,portalElement,isMultilevelTaxonomyFieldEnabled,hasAccordion,isAdvancedFilterEnabled,onAdvancedFilterOptionChange,fieldAdvancedFilterOptions,filterOptionsMap,isModified,createTaxonomyItemsService})=>{let{setFieldValue,values}=useFormikContext(),{metadata:{templateKey,scope}}=values,intl=useIntl(),fieldName=`${fieldNamePrefix}.value`,{key,optionsRules,levels}=getIn(values,fieldNamePrefix),selectableLevels=optionsRules?.selectableLevels,mode=getTaxonomyPickerMode(isMultilevelTaxonomyFieldEnabled,selectableLevels),[advancedFilterOption,setAdvancedFilterOption]=useState(getInitialAdvancedFilterValue(fieldAdvancedFilterOptions,filterOptionsMap)),[isSelectOpen,setIsSelectOpen]=useState(!1),lastValuesRef=useRef([]),itemsService=useMemo(()=>createTaxonomyItemsService({scope,templateKey,fieldKey:key}),[createTaxonomyItemsService,scope,templateKey,key]),pickerLevels=useMemo(()=>mapLevelsToTaxonomyLevels(levels,selectableLevels),[levels,selectableLevels]),getPlaceholder=useCallback(selectedValues=>selectedValues.length===0?intl.formatMessage(messages.multiselectPlaceholder):``,[intl]),handleAdvancedFilterOptionChange=useCallback((value,inputValue,form)=>{setAdvancedFilterOption(value),onAdvancedFilterOptionChange?.(fieldName,value);let valuesToUse=[];isBlankOption(value)||(valuesToUse=inputValue.length?inputValue:lastValuesRef.current);let newValue=createFieldValue(valuesToUse,value,isAdvancedFilterEnabled);form.setFieldValue(fieldName,newValue)},[fieldName,isAdvancedFilterEnabled,onAdvancedFilterOptionChange]),eventService=useMemo(()=>({onOpenChange:open=>{open&&setIsSelectOpen(!1)}}),[]),handleValueChange=useCallback(newValues=>{let mapped=mapTaxonomyValuesToFormValue(newValues,mode);lastValuesRef.current=mapped,setFieldValue(fieldName,createFieldValue(mapped,advancedFilterOption,isAdvancedFilterEnabled))},[advancedFilterOption,fieldName,isAdvancedFilterEnabled,mode,setFieldValue]);return jsx(`div`,{"data-testid":`${label}-field`,children:jsx(Field,{name:fieldName,children:({field,form})=>{let inputValue=getInputValue(field.value,isAdvancedFilterEnabled),pickerValue=mapFormValueToTaxonomyValues(inputValue);return jsxs(Fragment,{children:[jsx(AdvancedFilterSelect,{disableForm:disableForm??!1,fieldAdvancedFilterOptions,fieldNamePrefix,filterOptionsMap,isModified,label,labelSubtitle,onAdvancedFilterOptionChange,onOpenChange:setIsSelectOpen,onValueChange:value=>handleAdvancedFilterOptionChange(value,inputValue,form),open:isSelectOpen,portalElement,showLabel:!hasAccordion,value:advancedFilterOption}),!isBlankOption(advancedFilterOption)&&jsx(`div`,{className:clsx(metadata_taxonomy_field_advanced_module_default.comboboxWrapper,disableForm&&metadata_taxonomy_field_advanced_module_default.disabled),children:jsx(MetadataTaxonomyPicker,{containerClassName:className,disabled:disableForm,eventService,itemsService,levels:pickerLevels,mode,multiSelect:!0,onValueChange:handleValueChange,placeholder:getPlaceholder(pickerValue),portalElement,value:pickerValue})})]})}})})};export{MetadataTaxonomyPickerFieldAdvanced,MetadataTaxonomyPickerFieldAdvanced as default};
@@ -1 +1 @@
1
- import messages from"../../messages.js";import{n as metadata_filter_fields_module_default}from"../../../../chunks/advanced-filter-select.js";import{processMetadataField}from"./field-processing-utils.js";import{isAnyFieldModified,isFieldModifiedFromValue}from"./is-modified-utils.js";import{Text}from"@box/blueprint-web";import{FieldArray,getIn,useFormikContext}from"formik";import{useEffect}from"react";import{FormattedMessage,useIntl}from"react-intl";import{jsx,jsxs}from"react/jsx-runtime";var MetadataFilterFields=({disableForm,locale,portalElement,taxonomyOptionsFetcher,canUseRelativeDates,isAdvancedFilterEnabled,isModifiedMarkerEnabled,onAdvancedFilterOptionChange,fieldAdvancedFilterOptions,isMultilevelTaxonomyFieldEnabled,isTaxonomyPickerEnabled,createTaxonomyItemsService,filterOptionsMap,onDirtyChange,isAdvancedTaxonomy,hasExperimentalVirtualization})=>{let{values}=useFormikContext(),intl=useIntl(),fieldName=`metadata.fields`,fields=getIn(values,fieldName);return useEffect(()=>{onDirtyChange&&onDirtyChange(isAnyFieldModified(fields,values,isAdvancedFilterEnabled))},[values,isAdvancedFilterEnabled,onDirtyChange,fields]),fields.length?jsx(FieldArray,{name:fieldName,validateOnChange:!1,children:()=>fields.map((field,index)=>{let{MetadataFilterField,showField,getFilterOptionsForField}=processMetadataField({field,isAdvancedFilterEnabled,isAdvancedTaxonomy,intl,filterOptionsMap}),fieldValueContainer=getIn(values,`metadata.fields[${index}].value`),initialAdvancedOption=field.advancedFilterOptionToExecute,isModified=isFieldModifiedFromValue(field.type,fieldValueContainer,isAdvancedFilterEnabled,initialAdvancedOption);return showField&&jsxs(`div`,{children:[jsx(MetadataFilterField,{canUseRelativeDates,disableForm,fieldAdvancedFilterOptions:fieldAdvancedFilterOptions?.[field.key],fieldNamePrefix:`metadata.fields[${index}]`,filterOptionsMap:getFilterOptionsForField(),isAdvancedFilterEnabled,isModified:isModified&&isModifiedMarkerEnabled,isMultilevelTaxonomyFieldEnabled,isTaxonomyPickerEnabled,createTaxonomyItemsService,label:field.displayName,locale,onAdvancedFilterOptionChange,portalElement,taxonomyOptionsFetcher,hasExperimentalVirtualization}),!!field.description&&jsx(Text,{as:`span`,color:`textOnLightSecondary`,variant:`caption`,children:field.description})]},field.key)})}):jsx(Text,{as:`span`,className:metadata_filter_fields_module_default.noAttributesText,color:`textOnLightSecondary`,children:jsx(FormattedMessage,{...messages.noTemplateAtributesError})})};export{MetadataFilterFields,MetadataFilterFields as default};
1
+ import messages from"../../messages.js";import{n as metadata_filter_fields_module_default}from"../../../../chunks/advanced-filter-select.js";import{processMetadataField}from"./field-processing-utils.js";import{isAnyFieldModified,isFieldModifiedFromValue}from"./is-modified-utils.js";import{Text}from"@box/blueprint-web";import{FieldArray,getIn,useFormikContext}from"formik";import{useEffect}from"react";import{FormattedMessage,useIntl}from"react-intl";import{jsx,jsxs}from"react/jsx-runtime";var MetadataFilterFields=({disableForm,locale,portalElement,taxonomyOptionsFetcher,canUseRelativeDates,isAdvancedFilterEnabled,isModifiedMarkerEnabled,onAdvancedFilterOptionChange,fieldAdvancedFilterOptions,isMultilevelTaxonomyFieldEnabled,isTaxonomyPickerEnabled,createTaxonomyItemsService,filterOptionsMap,onDirtyChange,isAdvancedTaxonomy,hasExperimentalVirtualization})=>{let{values}=useFormikContext(),intl=useIntl(),fieldName=`metadata.fields`,fields=getIn(values,fieldName);return useEffect(()=>{onDirtyChange&&onDirtyChange(isAnyFieldModified(fields,values,isAdvancedFilterEnabled))},[values,isAdvancedFilterEnabled,onDirtyChange,fields]),fields.length?jsx(FieldArray,{name:fieldName,validateOnChange:!1,children:()=>fields.map((field,index)=>{let{MetadataFilterField,showField,getFilterOptionsForField}=processMetadataField({field,isAdvancedFilterEnabled,isAdvancedTaxonomy,intl,filterOptionsMap}),fieldValueContainer=getIn(values,`metadata.fields[${index}].value`),initialAdvancedOption=field.advancedFilterOptionToExecute,isModified=isFieldModifiedFromValue(field.type,fieldValueContainer,isAdvancedFilterEnabled,initialAdvancedOption);return showField&&jsxs(`div`,{children:[jsx(MetadataFilterField,{canUseRelativeDates,disableForm,fieldAdvancedFilterOptions:fieldAdvancedFilterOptions?.[field.key],fieldNamePrefix:`metadata.fields[${index}]`,filterOptionsMap:getFilterOptionsForField(),isAdvancedFilterEnabled,isModified:isModified&&isModifiedMarkerEnabled,isMultilevelTaxonomyFieldEnabled,isTaxonomyPickerEnabled,createTaxonomyItemsService,label:field.displayName,labelSubtitle:field.labelSubtitle,locale,onAdvancedFilterOptionChange,portalElement,taxonomyOptionsFetcher,hasExperimentalVirtualization}),!!field.description&&jsx(Text,{as:`span`,color:`textOnLightSecondary`,variant:`caption`,children:field.description})]},field.key)})}):jsx(Text,{as:`span`,className:metadata_filter_fields_module_default.noAttributesText,color:`textOnLightSecondary`,children:jsx(FormattedMessage,{...messages.noTemplateAtributesError})})};export{MetadataFilterFields,MetadataFilterFields as default};
@@ -1 +1 @@
1
- ._noAttributesText_19mt4_1{text-align:center}._fieldLabel_19mt4_5{margin-bottom:var(--space-2);align-self:flex-start}._selectContainer_19mt4_10{min-width:17.75rem;margin-bottom:var(--space-3)}._modifiedIcon_19mt4_15{width:var(--size-2);height:var(--size-2);margin-left:var(--space-2);background-color:var(--bp-surface-badge-surface-modified);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}
1
+ ._noAttributesText_154s5_1{text-align:center}._fieldLabel_154s5_5{margin-bottom:var(--space-2);align-self:flex-start}._fieldSubtitle_154s5_10{align-items:center;gap:var(--space-1);margin-bottom:var(--space-2);display:flex}._selectContainer_154s5_17{min-width:17.75rem;margin-bottom:var(--space-3)}._modifiedIcon_154s5_22{width:var(--size-2);height:var(--size-2);margin-left:var(--space-2);background-color:var(--bp-surface-badge-surface-modified);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}
@@ -1,3 +1,3 @@
1
1
  import { MetadataDateFieldProps } from '../../types';
2
- export declare const MetadataDateFieldAdvanced: ({ disableForm, fieldNamePrefix, label, locale, portalElement, filterOptionsMap, onAdvancedFilterOptionChange, fieldAdvancedFilterOptions, hasAccordion, isModified, }: MetadataDateFieldProps) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const MetadataDateFieldAdvanced: ({ disableForm, fieldNamePrefix, label, labelSubtitle, locale, portalElement, filterOptionsMap, onAdvancedFilterOptionChange, fieldAdvancedFilterOptions, hasAccordion, isModified, }: MetadataDateFieldProps) => import("react/jsx-runtime").JSX.Element;
3
3
  export default MetadataDateFieldAdvanced;
@@ -1,3 +1,3 @@
1
1
  import { MetadataFieldProps } from '../../types';
2
- export declare const MetadataFloatFieldAdvanced: ({ label, fieldNamePrefix, disableForm, onAdvancedFilterOptionChange, fieldAdvancedFilterOptions, filterOptionsMap, hasAccordion, isModified, }: MetadataFieldProps) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const MetadataFloatFieldAdvanced: ({ label, labelSubtitle, fieldNamePrefix, disableForm, onAdvancedFilterOptionChange, fieldAdvancedFilterOptions, filterOptionsMap, hasAccordion, isModified, }: MetadataFieldProps) => import("react/jsx-runtime").JSX.Element;
3
3
  export default MetadataFloatFieldAdvanced;
@@ -1,2 +1,2 @@
1
1
  import { MetadataFieldProps } from '../../types';
2
- export declare const MetadataMultiSelectFieldAdvanced: ({ label, fieldNamePrefix, disableForm, onAdvancedFilterOptionChange, fieldAdvancedFilterOptions, filterOptionsMap, portalElement, hasAccordion, isModified, hasExperimentalVirtualization, }: MetadataFieldProps) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const MetadataMultiSelectFieldAdvanced: ({ label, labelSubtitle, fieldNamePrefix, disableForm, onAdvancedFilterOptionChange, fieldAdvancedFilterOptions, filterOptionsMap, portalElement, hasAccordion, isModified, hasExperimentalVirtualization, }: MetadataFieldProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,6 +1,6 @@
1
1
  import { MetadataFieldProps } from '../../types';
2
2
  export declare const MetadataStringField: {
3
- ({ label, fieldNamePrefix, disableForm, isAdvancedFilterEnabled, onAdvancedFilterOptionChange, fieldAdvancedFilterOptions, filterOptionsMap, hasAccordion, isModified, placeholder, }: MetadataFieldProps): import("react/jsx-runtime").JSX.Element;
3
+ ({ label, labelSubtitle, fieldNamePrefix, disableForm, isAdvancedFilterEnabled, onAdvancedFilterOptionChange, fieldAdvancedFilterOptions, filterOptionsMap, hasAccordion, isModified, placeholder, }: MetadataFieldProps): import("react/jsx-runtime").JSX.Element;
4
4
  displayName: string;
5
5
  };
6
6
  export default MetadataStringField;
@@ -1,3 +1,3 @@
1
1
  import { MetadataTaxonomyFieldProps } from '../../types';
2
- export declare const LegacyMetadataTaxonomyFieldAdvanced: ({ className, disableForm, fieldNamePrefix, label, portalElement, taxonomyOptionsFetcher, isMultilevelTaxonomyFieldEnabled, hasAccordion, isAdvancedFilterEnabled, onAdvancedFilterOptionChange, fieldAdvancedFilterOptions, filterOptionsMap, isModified, }: MetadataTaxonomyFieldProps) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const LegacyMetadataTaxonomyFieldAdvanced: ({ className, disableForm, fieldNamePrefix, label, labelSubtitle, portalElement, taxonomyOptionsFetcher, isMultilevelTaxonomyFieldEnabled, hasAccordion, isAdvancedFilterEnabled, onAdvancedFilterOptionChange, fieldAdvancedFilterOptions, filterOptionsMap, isModified, }: MetadataTaxonomyFieldProps) => import("react/jsx-runtime").JSX.Element;
3
3
  export default LegacyMetadataTaxonomyFieldAdvanced;
@@ -12,5 +12,5 @@ export type MetadataTaxonomyPickerFieldAdvancedProps = MetadataTaxonomyFieldProp
12
12
  * host-provided `createTaxonomyItemsService` factory. Selected via the
13
13
  * `isTaxonomyPickerEnabled` flag in `MetadataTaxonomyFieldAdvanced`.
14
14
  */
15
- export declare const MetadataTaxonomyPickerFieldAdvanced: ({ className, disableForm, fieldNamePrefix, label, portalElement, isMultilevelTaxonomyFieldEnabled, hasAccordion, isAdvancedFilterEnabled, onAdvancedFilterOptionChange, fieldAdvancedFilterOptions, filterOptionsMap, isModified, createTaxonomyItemsService, }: MetadataTaxonomyPickerFieldAdvancedProps) => import("react/jsx-runtime").JSX.Element;
15
+ export declare const MetadataTaxonomyPickerFieldAdvanced: ({ className, disableForm, fieldNamePrefix, label, labelSubtitle, portalElement, isMultilevelTaxonomyFieldEnabled, hasAccordion, isAdvancedFilterEnabled, onAdvancedFilterOptionChange, fieldAdvancedFilterOptions, filterOptionsMap, isModified, createTaxonomyItemsService, }: MetadataTaxonomyPickerFieldAdvancedProps) => import("react/jsx-runtime").JSX.Element;
16
16
  export default MetadataTaxonomyPickerFieldAdvanced;
@@ -1,5 +1,6 @@
1
1
  export interface AdvancedFilterSelectProps {
2
2
  label: string;
3
+ labelSubtitle?: string;
3
4
  fieldNamePrefix: string;
4
5
  fieldAdvancedFilterOptions?: string;
5
6
  filterOptionsMap?: [string, string][];
@@ -17,5 +18,5 @@ export interface AdvancedFilterSelectProps {
17
18
  onOpenChange?: (open: boolean) => void;
18
19
  isModified?: boolean;
19
20
  }
20
- export declare const AdvancedFilterSelect: ({ label, fieldNamePrefix, fieldAdvancedFilterOptions, filterOptionsMap, disableForm, portalElement, onAdvancedFilterOptionChange, onValueChange, defaultValue, showLabel, advancedFilterFieldName, value, labelClassName, labelAs, open, onOpenChange, isModified, }: AdvancedFilterSelectProps) => import("react/jsx-runtime").JSX.Element;
21
+ export declare const AdvancedFilterSelect: ({ label, labelSubtitle, fieldNamePrefix, fieldAdvancedFilterOptions, filterOptionsMap, disableForm, portalElement, onAdvancedFilterOptionChange, onValueChange, defaultValue, showLabel, advancedFilterFieldName, value, labelClassName, labelAs, open, onOpenChange, isModified, }: AdvancedFilterSelectProps) => import("react/jsx-runtime").JSX.Element;
21
22
  export default AdvancedFilterSelect;
@@ -37,6 +37,7 @@ export type MetadataFilterFieldsProps = {
37
37
  export type MetadataFieldProps = {
38
38
  description?: string | null;
39
39
  label: string;
40
+ labelSubtitle?: string;
40
41
  fieldNamePrefix: string;
41
42
  disableForm?: boolean;
42
43
  portalElement?: HTMLElement;
@@ -40,6 +40,7 @@ export type MetadataTemplateField = {
40
40
  setAdvancedFilterOptionToExecute?: (value: FilterKey) => void;
41
41
  advancedFilterOptionToExecute?: FilterKey;
42
42
  description?: string;
43
+ labelSubtitle?: string;
43
44
  displayName: string;
44
45
  hidden: boolean;
45
46
  id?: string;
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@box/metadata-filter",
3
- "version": "2.3.23",
3
+ "version": "2.4.0",
4
4
  "peerDependencies": {
5
5
  "@box/blueprint-web": "^16.20.6",
6
6
  "@box/blueprint-web-assets": "^5.7.13",
7
- "@box/combobox-with-api": "^2.2.23",
7
+ "@box/combobox-with-api": "^2.2.24",
8
8
  "@box/metadata-taxonomy-picker": "^3.3.5",
9
9
  "formik": "^2.0.3",
10
10
  "react": "^17.0.0 || ^18.0.0",