{
  "version": 3,
  "sources": ["../../../src/components/dataviews-view-config/properties-section.tsx"],
  "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n\tBaseControl,\n\tIcon,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useContext } from '@wordpress/element';\nimport { check } from '@wordpress/icons';\nimport { Stack } from '@wordpress/ui';\n\n/**\n * Internal dependencies\n */\nimport type { NormalizedField } from '../../types';\nimport DataViewsContext from '../dataviews-context';\nimport getHideableFields from '../../utils/get-hideable-fields';\n\nfunction FieldItem( {\n\tfield,\n\tisVisible,\n\tonToggleVisibility,\n}: {\n\tfield: NormalizedField< any >;\n\tisVisible: boolean;\n\tonToggleVisibility?: () => void;\n} ) {\n\treturn (\n\t\t<Item onClick={ field.enableHiding ? onToggleVisibility : undefined }>\n\t\t\t<Stack direction=\"row\" gap=\"sm\" justify=\"flex-start\" align=\"center\">\n\t\t\t\t<div style={ { height: 24, width: 24 } }>\n\t\t\t\t\t{ isVisible && <Icon icon={ check } /> }\n\t\t\t\t</div>\n\t\t\t\t<span className=\"dataviews-view-config__label\">\n\t\t\t\t\t{ field.label }\n\t\t\t\t</span>\n\t\t\t</Stack>\n\t\t</Item>\n\t);\n}\n\nfunction isDefined< T >( item: T | undefined ): item is T {\n\treturn !! item;\n}\n\nexport function PropertiesSection( {\n\tshowLabel = true,\n}: {\n\tshowLabel?: boolean;\n} ) {\n\tconst { view, fields, onChangeView } = useContext( DataViewsContext );\n\n\t// Get all regular fields (non-locked) in their original order from fields prop\n\tconst regularFields = getHideableFields( view, fields );\n\n\tif ( ! regularFields?.length ) {\n\t\treturn null;\n\t}\n\tconst titleField = fields.find( ( f ) => f.id === view.titleField );\n\tconst previewField = fields.find( ( f ) => f.id === view.mediaField );\n\tconst descriptionField = fields.find(\n\t\t( f ) => f.id === view.descriptionField\n\t);\n\n\tconst lockedFields = [\n\t\t{\n\t\t\tfield: titleField,\n\t\t\tisVisibleFlag: 'showTitle',\n\t\t},\n\t\t{\n\t\t\tfield: previewField,\n\t\t\tisVisibleFlag: 'showMedia',\n\t\t},\n\t\t{\n\t\t\tfield: descriptionField,\n\t\t\tisVisibleFlag: 'showDescription',\n\t\t},\n\t].filter( ( { field } ) => isDefined( field ) ) as Array< {\n\t\tfield: NormalizedField< any >;\n\t\tisVisibleFlag: string;\n\t} >;\n\tconst visibleFieldIds = view.fields ?? [];\n\tconst visibleRegularFieldsCount = regularFields.filter( ( f ) =>\n\t\tvisibleFieldIds.includes( f.id )\n\t).length;\n\n\tconst visibleLockedFields = lockedFields.filter(\n\t\t( { isVisibleFlag } ) =>\n\t\t\t// @ts-expect-error\n\t\t\tview[ isVisibleFlag ] ?? true\n\t);\n\n\t// If only one field (locked or regular) is visible, prevent it from being hidden\n\tconst totalVisibleFields =\n\t\tvisibleLockedFields.length + visibleRegularFieldsCount;\n\tconst isSingleVisibleLockedField =\n\t\ttotalVisibleFields === 1 && visibleLockedFields.length === 1;\n\n\treturn (\n\t\t<Stack direction=\"column\" className=\"dataviews-field-control\">\n\t\t\t{ showLabel && (\n\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t{ __( 'Properties' ) }\n\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t) }\n\t\t\t<Stack\n\t\t\t\tdirection=\"column\"\n\t\t\t\tclassName=\"dataviews-view-config__properties\"\n\t\t\t>\n\t\t\t\t<ItemGroup isBordered isSeparated size=\"medium\">\n\t\t\t\t\t{ lockedFields.map( ( { field, isVisibleFlag } ) => {\n\t\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\t\tconst isVisible = view[ isVisibleFlag ] ?? true;\n\t\t\t\t\t\tconst fieldToRender =\n\t\t\t\t\t\t\tisSingleVisibleLockedField && isVisible\n\t\t\t\t\t\t\t\t? { ...field, enableHiding: false }\n\t\t\t\t\t\t\t\t: field;\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<FieldItem\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tfield={ fieldToRender }\n\t\t\t\t\t\t\t\tisVisible={ isVisible }\n\t\t\t\t\t\t\t\tonToggleVisibility={ () => {\n\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t[ isVisibleFlag ]: ! isVisible,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\n\t\t\t\t\t{ regularFields.map( ( field ) => {\n\t\t\t\t\t\t// Check if this is the last visible field to prevent hiding\n\t\t\t\t\t\tconst isVisible = visibleFieldIds.includes( field.id );\n\t\t\t\t\t\tconst fieldToRender =\n\t\t\t\t\t\t\ttotalVisibleFields === 1 && isVisible\n\t\t\t\t\t\t\t\t? { ...field, enableHiding: false }\n\t\t\t\t\t\t\t\t: field;\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<FieldItem\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tfield={ fieldToRender }\n\t\t\t\t\t\t\t\tisVisible={ isVisible }\n\t\t\t\t\t\t\t\tonToggleVisibility={ () => {\n\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\tfields: isVisible\n\t\t\t\t\t\t\t\t\t\t\t? visibleFieldIds.filter(\n\t\t\t\t\t\t\t\t\t\t\t\t\t( fieldId ) =>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfieldId !== field.id\n\t\t\t\t\t\t\t\t\t\t\t  )\n\t\t\t\t\t\t\t\t\t\t\t: [ ...visibleFieldIds, field.id ],\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</ItemGroup>\n\t\t\t</Stack>\n\t\t</Stack>\n\t);\n}\n"],
  "mappings": "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",
  "names": ["Item", "DataViewsContext", "getHideableFields", "ItemGroup"]
}
