@wordpress/dataviews 4.4.3 → 4.5.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 (63) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +4 -0
  3. package/build/components/dataform-combined-edit/index.js +67 -0
  4. package/build/components/dataform-combined-edit/index.js.map +1 -0
  5. package/build/components/dataviews-view-config/index.js +49 -38
  6. package/build/components/dataviews-view-config/index.js.map +1 -1
  7. package/build/dataforms-layouts/get-visible-fields.js +21 -0
  8. package/build/dataforms-layouts/get-visible-fields.js.map +1 -0
  9. package/build/dataforms-layouts/panel/index.js +5 -12
  10. package/build/dataforms-layouts/panel/index.js.map +1 -1
  11. package/build/dataforms-layouts/regular/index.js +2 -6
  12. package/build/dataforms-layouts/regular/index.js.map +1 -1
  13. package/build/normalize-fields.js +21 -0
  14. package/build/normalize-fields.js.map +1 -1
  15. package/build/types.js.map +1 -1
  16. package/build/validation.js.map +1 -1
  17. package/build-module/components/dataform-combined-edit/index.js +62 -0
  18. package/build-module/components/dataform-combined-edit/index.js.map +1 -0
  19. package/build-module/components/dataviews-view-config/index.js +50 -39
  20. package/build-module/components/dataviews-view-config/index.js.map +1 -1
  21. package/build-module/dataforms-layouts/get-visible-fields.js +14 -0
  22. package/build-module/dataforms-layouts/get-visible-fields.js.map +1 -0
  23. package/build-module/dataforms-layouts/panel/index.js +5 -12
  24. package/build-module/dataforms-layouts/panel/index.js.map +1 -1
  25. package/build-module/dataforms-layouts/regular/index.js +2 -6
  26. package/build-module/dataforms-layouts/regular/index.js.map +1 -1
  27. package/build-module/normalize-fields.js +20 -0
  28. package/build-module/normalize-fields.js.map +1 -1
  29. package/build-module/types.js.map +1 -1
  30. package/build-module/validation.js.map +1 -1
  31. package/build-style/style-rtl.css +20 -15
  32. package/build-style/style.css +20 -15
  33. package/build-types/components/dataform/stories/index.story.d.ts +23 -0
  34. package/build-types/components/dataform/stories/index.story.d.ts.map +1 -1
  35. package/build-types/components/dataform-combined-edit/index.d.ts +7 -0
  36. package/build-types/components/dataform-combined-edit/index.d.ts.map +1 -0
  37. package/build-types/components/dataviews-view-config/index.d.ts.map +1 -1
  38. package/build-types/dataforms-layouts/get-visible-fields.d.ts +3 -0
  39. package/build-types/dataforms-layouts/get-visible-fields.d.ts.map +1 -0
  40. package/build-types/dataforms-layouts/panel/index.d.ts.map +1 -1
  41. package/build-types/dataforms-layouts/regular/index.d.ts.map +1 -1
  42. package/build-types/normalize-fields.d.ts +9 -1
  43. package/build-types/normalize-fields.d.ts.map +1 -1
  44. package/build-types/types.d.ts +27 -8
  45. package/build-types/types.d.ts.map +1 -1
  46. package/build-types/validation.d.ts +1 -1
  47. package/build-types/validation.d.ts.map +1 -1
  48. package/package.json +11 -11
  49. package/src/components/dataform/stories/index.story.tsx +65 -0
  50. package/src/components/dataform-combined-edit/index.tsx +66 -0
  51. package/src/components/dataform-combined-edit/style.scss +12 -0
  52. package/src/components/dataviews-filters/style.scss +0 -1
  53. package/src/components/dataviews-view-config/index.tsx +52 -40
  54. package/src/components/dataviews-view-config/style.scss +5 -8
  55. package/src/dataforms-layouts/get-visible-fields.ts +29 -0
  56. package/src/dataforms-layouts/panel/index.tsx +9 -10
  57. package/src/dataforms-layouts/panel/style.scss +0 -13
  58. package/src/dataforms-layouts/regular/index.tsx +8 -7
  59. package/src/normalize-fields.ts +33 -1
  60. package/src/style.scss +1 -0
  61. package/src/types.ts +29 -9
  62. package/src/validation.ts +1 -1
  63. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["@wordpress/dataviews/src/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactElement, ComponentType } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { SetSelection } from './private-types';\n\nexport type SortDirection = 'asc' | 'desc';\n\n/**\n * Generic option type.\n */\nexport interface Option< Value extends any = any > {\n\tvalue: Value;\n\tlabel: string;\n\tdescription?: string;\n}\n\ninterface FilterByConfig {\n\t/**\n\t * The list of operators supported by the field.\n\t */\n\toperators?: Operator[];\n\n\t/**\n\t * Whether it is a primary filter.\n\t *\n\t * A primary filter is always visible and is not listed in the \"Add filter\" component,\n\t * except for the list layout where it behaves like a secondary filter.\n\t */\n\tisPrimary?: boolean;\n}\n\nexport type Operator =\n\t| 'is'\n\t| 'isNot'\n\t| 'isAny'\n\t| 'isNone'\n\t| 'isAll'\n\t| 'isNotAll';\n\nexport type FieldType = 'text' | 'integer' | 'datetime';\n\nexport type ValidationContext = {\n\telements?: Option[];\n};\n\n/**\n * An abstract interface for Field based on the field type.\n */\nexport type FieldTypeDefinition< Item > = {\n\t/**\n\t * Callback used to sort the field.\n\t */\n\tsort: ( a: Item, b: Item, direction: SortDirection ) => number;\n\n\t/**\n\t * Callback used to validate the field.\n\t */\n\tisValid: ( item: Item, context?: ValidationContext ) => boolean;\n\n\t/**\n\t * Callback used to render an edit control for the field or control name.\n\t */\n\tEdit: ComponentType< DataFormControlProps< Item > > | string;\n};\n\n/**\n * A dataview field for a specific property of a data type.\n */\nexport type Field< Item > = {\n\t/**\n\t * Type of the fields.\n\t */\n\ttype?: FieldType;\n\n\t/**\n\t * The unique identifier of the field.\n\t */\n\tid: string;\n\n\t/**\n\t * The label of the field. Defaults to the id.\n\t */\n\tlabel?: string;\n\n\t/**\n\t * The header of the field. Defaults to the label.\n\t * It allows the usage of a React Element to render the field labels.\n\t */\n\theader?: string | ReactElement;\n\n\t/**\n\t * A description of the field.\n\t */\n\tdescription?: string;\n\n\t/**\n\t * Placeholder for the field.\n\t */\n\tplaceholder?: string;\n\n\t/**\n\t * Callback used to render the field. Defaults to `field.getValue`.\n\t */\n\trender?: ComponentType< { item: Item } >;\n\n\t/**\n\t * Callback used to render an edit control for the field.\n\t */\n\tEdit?: ComponentType< DataFormControlProps< Item > > | string;\n\n\t/**\n\t * Callback used to sort the field.\n\t */\n\tsort?: ( a: Item, b: Item, direction: SortDirection ) => number;\n\n\t/**\n\t * Callback used to validate the field.\n\t */\n\tisValid?: ( item: Item, context?: ValidationContext ) => boolean;\n\n\t/**\n\t * Whether the field is sortable.\n\t */\n\tenableSorting?: boolean;\n\n\t/**\n\t * Whether the field is searchable.\n\t */\n\tenableGlobalSearch?: boolean;\n\n\t/**\n\t * Whether the field is filterable.\n\t */\n\tenableHiding?: boolean;\n\n\t/**\n\t * The list of options to pick from when using the field as a filter.\n\t */\n\telements?: Option[];\n\n\t/**\n\t * Filter config for the field.\n\t */\n\tfilterBy?: FilterByConfig | undefined;\n\n\t/**\n\t * Callback used to retrieve the value of the field from the item.\n\t * Defaults to `item[ field.id ]`.\n\t */\n\tgetValue?: ( args: { item: Item } ) => any;\n};\n\nexport type NormalizedField< Item > = Field< Item > & {\n\tlabel: string;\n\theader: string | ReactElement;\n\tgetValue: ( args: { item: Item } ) => any;\n\trender: ComponentType< { item: Item } >;\n\tEdit: ComponentType< DataFormControlProps< Item > >;\n\tsort: ( a: Item, b: Item, direction: SortDirection ) => number;\n\tisValid: ( item: Item, context?: ValidationContext ) => boolean;\n\tenableHiding: boolean;\n\tenableSorting: boolean;\n};\n\n/**\n * A collection of dataview fields for a data type.\n */\nexport type Fields< Item > = Field< Item >[];\n\nexport type Data< Item > = Item[];\n\n/**\n * The form configuration.\n */\nexport type Form = {\n\ttype?: 'regular' | 'panel';\n\tfields?: string[];\n};\n\nexport type DataFormControlProps< Item > = {\n\tdata: Item;\n\tfield: NormalizedField< Item >;\n\tonChange: ( value: Record< string, any > ) => void;\n\thideLabelFromVision?: boolean;\n};\n\n/**\n * The filters applied to the dataset.\n */\nexport interface Filter {\n\t/**\n\t * The field to filter by.\n\t */\n\tfield: string;\n\n\t/**\n\t * The operator to use.\n\t */\n\toperator: Operator;\n\n\t/**\n\t * The value to filter by.\n\t */\n\tvalue: any;\n}\n\nexport interface NormalizedFilter {\n\t/**\n\t * The field to filter by.\n\t */\n\tfield: string;\n\n\t/**\n\t * The field name.\n\t */\n\tname: string;\n\n\t/**\n\t * The list of options to pick from when using the field as a filter.\n\t */\n\telements: Option[];\n\n\t/**\n\t * Is a single selection filter.\n\t */\n\tsingleSelection: boolean;\n\n\t/**\n\t * The list of operators supported by the field.\n\t */\n\toperators: Operator[];\n\n\t/**\n\t * Whether the filter is visible.\n\t */\n\tisVisible: boolean;\n\n\t/**\n\t * Whether it is a primary filter.\n\t */\n\tisPrimary: boolean;\n}\n\ninterface ViewBase {\n\t/**\n\t * The layout of the view.\n\t */\n\ttype: string;\n\n\t/**\n\t * The global search term.\n\t */\n\tsearch?: string;\n\n\t/**\n\t * The filters to apply.\n\t */\n\tfilters?: Filter[];\n\n\t/**\n\t * The sorting configuration.\n\t */\n\tsort?: {\n\t\t/**\n\t\t * The field to sort by.\n\t\t */\n\t\tfield: string;\n\n\t\t/**\n\t\t * The direction to sort by.\n\t\t */\n\t\tdirection: SortDirection;\n\t};\n\n\t/**\n\t * The active page\n\t */\n\tpage?: number;\n\n\t/**\n\t * The number of items per page\n\t */\n\tperPage?: number;\n\n\t/**\n\t * The fields to render\n\t */\n\tfields?: string[];\n}\n\nexport interface CombinedField {\n\tid: string;\n\n\tlabel: string;\n\n\theader?: string | ReactElement;\n\n\t/**\n\t * The fields to use as columns.\n\t */\n\tchildren: string[];\n\n\t/**\n\t * The direction of the stack.\n\t */\n\tdirection: 'horizontal' | 'vertical';\n}\n\nexport interface ColumnStyle {\n\t/**\n\t * The width of the field column.\n\t */\n\twidth?: string | number;\n\n\t/**\n\t * The minimum width of the field column.\n\t */\n\tmaxWidth?: string | number;\n\n\t/**\n\t * The maximum width of the field column.\n\t */\n\tminWidth?: string | number;\n}\n\nexport interface ViewTable extends ViewBase {\n\ttype: 'table';\n\n\tlayout?: {\n\t\t/**\n\t\t * The field to use as the primary field.\n\t\t */\n\t\tprimaryField?: string;\n\n\t\t/**\n\t\t * The fields to use as columns.\n\t\t */\n\t\tcombinedFields?: CombinedField[];\n\n\t\t/**\n\t\t * The styles for the columns.\n\t\t */\n\t\tstyles?: Record< string, ColumnStyle >;\n\t};\n}\n\nexport interface ViewList extends ViewBase {\n\ttype: 'list';\n\n\tlayout?: {\n\t\t/**\n\t\t * The field to use as the primary field.\n\t\t */\n\t\tprimaryField?: string;\n\n\t\t/**\n\t\t * The field to use as the media field.\n\t\t */\n\t\tmediaField?: string;\n\t};\n}\n\nexport interface ViewGrid extends ViewBase {\n\ttype: 'grid';\n\n\tlayout?: {\n\t\t/**\n\t\t * The field to use as the primary field.\n\t\t */\n\t\tprimaryField?: string;\n\n\t\t/**\n\t\t * The field to use as the media field.\n\t\t */\n\t\tmediaField?: string;\n\n\t\t/**\n\t\t * The fields to use as columns.\n\t\t */\n\t\tcolumnFields?: string[];\n\n\t\t/**\n\t\t * The fields to use as badge fields.\n\t\t */\n\t\tbadgeFields?: string[];\n\t};\n}\n\nexport type View = ViewList | ViewGrid | ViewTable;\n\ninterface ActionBase< Item > {\n\t/**\n\t * The unique identifier of the action.\n\t */\n\tid: string;\n\n\t/**\n\t * The label of the action.\n\t * In case we want to adjust the label based on the selected items,\n\t * a function can be provided.\n\t */\n\tlabel: string | ( ( items: Item[] ) => string );\n\n\t/**\n\t * The icon of the action. (Either a string or an SVG element)\n\t * This should be IconType from the components package\n\t * but that import is breaking typescript build for the moment.\n\t */\n\ticon?: any;\n\n\t/**\n\t * Whether the action is disabled.\n\t */\n\tdisabled?: boolean;\n\n\t/**\n\t * Whether the action is destructive.\n\t */\n\tisDestructive?: boolean;\n\n\t/**\n\t * Whether the action is a primary action.\n\t */\n\tisPrimary?: boolean;\n\n\t/**\n\t * Whether the item passed as an argument supports the current action.\n\t */\n\tisEligible?: ( item: Item ) => boolean;\n\n\t/**\n\t * Whether the action can be used as a bulk action.\n\t */\n\tsupportsBulk?: boolean;\n\n\t/**\n\t * The context in which the action is visible.\n\t * This is only a \"meta\" information for now.\n\t */\n\tcontext?: 'list' | 'single';\n}\n\nexport interface RenderModalProps< Item > {\n\titems: Item[];\n\tcloseModal?: () => void;\n\tonActionPerformed?: ( items: Item[] ) => void;\n}\n\nexport interface ActionModal< Item > extends ActionBase< Item > {\n\t/**\n\t * Modal to render when the action is triggered.\n\t */\n\tRenderModal: ( {\n\t\titems,\n\t\tcloseModal,\n\t\tonActionPerformed,\n\t}: RenderModalProps< Item > ) => ReactElement;\n\n\t/**\n\t * Whether to hide the modal header.\n\t */\n\thideModalHeader?: boolean;\n\n\t/**\n\t * The header of the modal.\n\t */\n\tmodalHeader?: string;\n}\n\nexport interface ActionButton< Item > extends ActionBase< Item > {\n\t/**\n\t * The callback to execute when the action is triggered.\n\t */\n\tcallback: (\n\t\titems: Item[],\n\t\tcontext: {\n\t\t\tregistry: any;\n\t\t\tonActionPerformed?: ( items: Item[] ) => void;\n\t\t}\n\t) => void;\n}\n\nexport type Action< Item > = ActionModal< Item > | ActionButton< Item >;\n\nexport interface ViewBaseProps< Item > {\n\tactions: Action< Item >[];\n\tdata: Item[];\n\tfields: NormalizedField< Item >[];\n\tgetItemId: ( item: Item ) => string;\n\tisLoading?: boolean;\n\tonChangeView: ( view: View ) => void;\n\tonChangeSelection: SetSelection;\n\tselection: string[];\n\tsetOpenedFilter: ( fieldId: string ) => void;\n\tview: View;\n\tdensity: number;\n}\n\nexport interface ViewTableProps< Item > extends ViewBaseProps< Item > {\n\tview: ViewTable;\n}\n\nexport interface ViewListProps< Item > extends ViewBaseProps< Item > {\n\tview: ViewList;\n}\n\nexport interface ViewGridProps< Item > extends ViewBaseProps< Item > {\n\tview: ViewGrid;\n}\n\nexport type ViewProps< Item > =\n\t| ViewTableProps< Item >\n\t| ViewGridProps< Item >\n\t| ViewListProps< Item >;\n\nexport interface SupportedLayouts {\n\tlist?: Omit< ViewList, 'type' >;\n\tgrid?: Omit< ViewGrid, 'type' >;\n\ttable?: Omit< ViewTable, 'type' >;\n}\n\nexport interface DataFormProps< Item > {\n\tdata: Item;\n\tfields: Field< Item >[];\n\tform: Form;\n\tonChange: ( value: Record< string, any > ) => void;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["@wordpress/dataviews/src/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactElement, ComponentType } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { SetSelection } from './private-types';\n\nexport type SortDirection = 'asc' | 'desc';\n\n/**\n * Generic option type.\n */\nexport interface Option< Value extends any = any > {\n\tvalue: Value;\n\tlabel: string;\n\tdescription?: string;\n}\n\ninterface FilterByConfig {\n\t/**\n\t * The list of operators supported by the field.\n\t */\n\toperators?: Operator[];\n\n\t/**\n\t * Whether it is a primary filter.\n\t *\n\t * A primary filter is always visible and is not listed in the \"Add filter\" component,\n\t * except for the list layout where it behaves like a secondary filter.\n\t */\n\tisPrimary?: boolean;\n}\n\nexport type Operator =\n\t| 'is'\n\t| 'isNot'\n\t| 'isAny'\n\t| 'isNone'\n\t| 'isAll'\n\t| 'isNotAll';\n\nexport type FieldType = 'text' | 'integer' | 'datetime';\n\nexport type ValidationContext = {\n\telements?: Option[];\n};\n\n/**\n * An abstract interface for Field based on the field type.\n */\nexport type FieldTypeDefinition< Item > = {\n\t/**\n\t * Callback used to sort the field.\n\t */\n\tsort: ( a: Item, b: Item, direction: SortDirection ) => number;\n\n\t/**\n\t * Callback used to validate the field.\n\t */\n\tisValid: ( item: Item, context?: ValidationContext ) => boolean;\n\n\t/**\n\t * Callback used to render an edit control for the field or control name.\n\t */\n\tEdit: ComponentType< DataFormControlProps< Item > > | string;\n};\n\n/**\n * A dataview field for a specific property of a data type.\n */\nexport type Field< Item > = {\n\t/**\n\t * Type of the fields.\n\t */\n\ttype?: FieldType;\n\n\t/**\n\t * The unique identifier of the field.\n\t */\n\tid: string;\n\n\t/**\n\t * The label of the field. Defaults to the id.\n\t */\n\tlabel?: string;\n\n\t/**\n\t * The header of the field. Defaults to the label.\n\t * It allows the usage of a React Element to render the field labels.\n\t */\n\theader?: string | ReactElement;\n\n\t/**\n\t * A description of the field.\n\t */\n\tdescription?: string;\n\n\t/**\n\t * Placeholder for the field.\n\t */\n\tplaceholder?: string;\n\n\t/**\n\t * Callback used to render the field. Defaults to `field.getValue`.\n\t */\n\trender?: ComponentType< { item: Item } >;\n\n\t/**\n\t * Callback used to render an edit control for the field.\n\t */\n\tEdit?: ComponentType< DataFormControlProps< Item > > | string;\n\n\t/**\n\t * Callback used to sort the field.\n\t */\n\tsort?: ( a: Item, b: Item, direction: SortDirection ) => number;\n\n\t/**\n\t * Callback used to validate the field.\n\t */\n\tisValid?: ( item: Item, context?: ValidationContext ) => boolean;\n\n\t/**\n\t * Whether the field is sortable.\n\t */\n\tenableSorting?: boolean;\n\n\t/**\n\t * Whether the field is searchable.\n\t */\n\tenableGlobalSearch?: boolean;\n\n\t/**\n\t * Whether the field is filterable.\n\t */\n\tenableHiding?: boolean;\n\n\t/**\n\t * The list of options to pick from when using the field as a filter.\n\t */\n\telements?: Option[];\n\n\t/**\n\t * Filter config for the field.\n\t */\n\tfilterBy?: FilterByConfig | undefined;\n\n\t/**\n\t * Callback used to retrieve the value of the field from the item.\n\t * Defaults to `item[ field.id ]`.\n\t */\n\tgetValue?: ( args: { item: Item } ) => any;\n};\n\nexport type NormalizedField< Item > = Field< Item > & {\n\tlabel: string;\n\theader: string | ReactElement;\n\tgetValue: ( args: { item: Item } ) => any;\n\trender: ComponentType< { item: Item } >;\n\tEdit: ComponentType< DataFormControlProps< Item > >;\n\tsort: ( a: Item, b: Item, direction: SortDirection ) => number;\n\tisValid: ( item: Item, context?: ValidationContext ) => boolean;\n\tenableHiding: boolean;\n\tenableSorting: boolean;\n};\n\n/**\n * A collection of dataview fields for a data type.\n */\nexport type Fields< Item > = Field< Item >[];\n\nexport type Data< Item > = Item[];\n\nexport type DataFormControlProps< Item > = {\n\tdata: Item;\n\tfield: NormalizedField< Item >;\n\tonChange: ( value: Record< string, any > ) => void;\n\thideLabelFromVision?: boolean;\n};\n\n/**\n * The filters applied to the dataset.\n */\nexport interface Filter {\n\t/**\n\t * The field to filter by.\n\t */\n\tfield: string;\n\n\t/**\n\t * The operator to use.\n\t */\n\toperator: Operator;\n\n\t/**\n\t * The value to filter by.\n\t */\n\tvalue: any;\n}\n\nexport interface NormalizedFilter {\n\t/**\n\t * The field to filter by.\n\t */\n\tfield: string;\n\n\t/**\n\t * The field name.\n\t */\n\tname: string;\n\n\t/**\n\t * The list of options to pick from when using the field as a filter.\n\t */\n\telements: Option[];\n\n\t/**\n\t * Is a single selection filter.\n\t */\n\tsingleSelection: boolean;\n\n\t/**\n\t * The list of operators supported by the field.\n\t */\n\toperators: Operator[];\n\n\t/**\n\t * Whether the filter is visible.\n\t */\n\tisVisible: boolean;\n\n\t/**\n\t * Whether it is a primary filter.\n\t */\n\tisPrimary: boolean;\n}\n\ninterface ViewBase {\n\t/**\n\t * The layout of the view.\n\t */\n\ttype: string;\n\n\t/**\n\t * The global search term.\n\t */\n\tsearch?: string;\n\n\t/**\n\t * The filters to apply.\n\t */\n\tfilters?: Filter[];\n\n\t/**\n\t * The sorting configuration.\n\t */\n\tsort?: {\n\t\t/**\n\t\t * The field to sort by.\n\t\t */\n\t\tfield: string;\n\n\t\t/**\n\t\t * The direction to sort by.\n\t\t */\n\t\tdirection: SortDirection;\n\t};\n\n\t/**\n\t * The active page\n\t */\n\tpage?: number;\n\n\t/**\n\t * The number of items per page\n\t */\n\tperPage?: number;\n\n\t/**\n\t * The fields to render\n\t */\n\tfields?: string[];\n}\n\nexport interface CombinedField {\n\tid: string;\n\n\tlabel: string;\n\n\theader?: string | ReactElement;\n\n\t/**\n\t * The fields to use as columns.\n\t */\n\tchildren: string[];\n\n\t/**\n\t * The direction of the stack.\n\t */\n\tdirection: 'horizontal' | 'vertical';\n}\n\nexport interface ColumnStyle {\n\t/**\n\t * The width of the field column.\n\t */\n\twidth?: string | number;\n\n\t/**\n\t * The minimum width of the field column.\n\t */\n\tmaxWidth?: string | number;\n\n\t/**\n\t * The maximum width of the field column.\n\t */\n\tminWidth?: string | number;\n}\n\nexport interface ViewTable extends ViewBase {\n\ttype: 'table';\n\n\tlayout?: {\n\t\t/**\n\t\t * The field to use as the primary field.\n\t\t */\n\t\tprimaryField?: string;\n\n\t\t/**\n\t\t * The fields to use as columns.\n\t\t */\n\t\tcombinedFields?: CombinedField[];\n\n\t\t/**\n\t\t * The styles for the columns.\n\t\t */\n\t\tstyles?: Record< string, ColumnStyle >;\n\t};\n}\n\nexport interface ViewList extends ViewBase {\n\ttype: 'list';\n\n\tlayout?: {\n\t\t/**\n\t\t * The field to use as the primary field.\n\t\t */\n\t\tprimaryField?: string;\n\n\t\t/**\n\t\t * The field to use as the media field.\n\t\t */\n\t\tmediaField?: string;\n\t};\n}\n\nexport interface ViewGrid extends ViewBase {\n\ttype: 'grid';\n\n\tlayout?: {\n\t\t/**\n\t\t * The field to use as the primary field.\n\t\t */\n\t\tprimaryField?: string;\n\n\t\t/**\n\t\t * The field to use as the media field.\n\t\t */\n\t\tmediaField?: string;\n\n\t\t/**\n\t\t * The fields to use as columns.\n\t\t */\n\t\tcolumnFields?: string[];\n\n\t\t/**\n\t\t * The fields to use as badge fields.\n\t\t */\n\t\tbadgeFields?: string[];\n\t};\n}\n\nexport type View = ViewList | ViewGrid | ViewTable;\n\ninterface ActionBase< Item > {\n\t/**\n\t * The unique identifier of the action.\n\t */\n\tid: string;\n\n\t/**\n\t * The label of the action.\n\t * In case we want to adjust the label based on the selected items,\n\t * a function can be provided.\n\t */\n\tlabel: string | ( ( items: Item[] ) => string );\n\n\t/**\n\t * The icon of the action. (Either a string or an SVG element)\n\t * This should be IconType from the components package\n\t * but that import is breaking typescript build for the moment.\n\t */\n\ticon?: any;\n\n\t/**\n\t * Whether the action is disabled.\n\t */\n\tdisabled?: boolean;\n\n\t/**\n\t * Whether the action is destructive.\n\t */\n\tisDestructive?: boolean;\n\n\t/**\n\t * Whether the action is a primary action.\n\t */\n\tisPrimary?: boolean;\n\n\t/**\n\t * Whether the item passed as an argument supports the current action.\n\t */\n\tisEligible?: ( item: Item ) => boolean;\n\n\t/**\n\t * Whether the action can be used as a bulk action.\n\t */\n\tsupportsBulk?: boolean;\n\n\t/**\n\t * The context in which the action is visible.\n\t * This is only a \"meta\" information for now.\n\t */\n\tcontext?: 'list' | 'single';\n}\n\nexport interface RenderModalProps< Item > {\n\titems: Item[];\n\tcloseModal?: () => void;\n\tonActionPerformed?: ( items: Item[] ) => void;\n}\n\nexport interface ActionModal< Item > extends ActionBase< Item > {\n\t/**\n\t * Modal to render when the action is triggered.\n\t */\n\tRenderModal: ( {\n\t\titems,\n\t\tcloseModal,\n\t\tonActionPerformed,\n\t}: RenderModalProps< Item > ) => ReactElement;\n\n\t/**\n\t * Whether to hide the modal header.\n\t */\n\thideModalHeader?: boolean;\n\n\t/**\n\t * The header of the modal.\n\t */\n\tmodalHeader?: string;\n}\n\nexport interface ActionButton< Item > extends ActionBase< Item > {\n\t/**\n\t * The callback to execute when the action is triggered.\n\t */\n\tcallback: (\n\t\titems: Item[],\n\t\tcontext: {\n\t\t\tregistry: any;\n\t\t\tonActionPerformed?: ( items: Item[] ) => void;\n\t\t}\n\t) => void;\n}\n\nexport type Action< Item > = ActionModal< Item > | ActionButton< Item >;\n\nexport interface ViewBaseProps< Item > {\n\tactions: Action< Item >[];\n\tdata: Item[];\n\tfields: NormalizedField< Item >[];\n\tgetItemId: ( item: Item ) => string;\n\tisLoading?: boolean;\n\tonChangeView: ( view: View ) => void;\n\tonChangeSelection: SetSelection;\n\tselection: string[];\n\tsetOpenedFilter: ( fieldId: string ) => void;\n\tview: View;\n\tdensity: number;\n}\n\nexport interface ViewTableProps< Item > extends ViewBaseProps< Item > {\n\tview: ViewTable;\n}\n\nexport interface ViewListProps< Item > extends ViewBaseProps< Item > {\n\tview: ViewList;\n}\n\nexport interface ViewGridProps< Item > extends ViewBaseProps< Item > {\n\tview: ViewGrid;\n}\n\nexport type ViewProps< Item > =\n\t| ViewTableProps< Item >\n\t| ViewGridProps< Item >\n\t| ViewListProps< Item >;\n\nexport interface SupportedLayouts {\n\tlist?: Omit< ViewList, 'type' >;\n\tgrid?: Omit< ViewGrid, 'type' >;\n\ttable?: Omit< ViewTable, 'type' >;\n}\n\nexport interface CombinedFormField< Item > extends CombinedField {\n\trender?: ComponentType< { item: Item } >;\n}\n\nexport interface DataFormCombinedEditProps< Item > {\n\tfield: NormalizedCombinedFormField< Item >;\n\tdata: Item;\n\tonChange: ( value: Record< string, any > ) => void;\n\thideLabelFromVision?: boolean;\n}\n\nexport type NormalizedCombinedFormField< Item > = CombinedFormField< Item > & {\n\tfields: NormalizedField< Item >[];\n\tEdit?: ComponentType< DataFormCombinedEditProps< Item > >;\n};\n\n/**\n * The form configuration.\n */\nexport type Form< Item > = {\n\ttype?: 'regular' | 'panel';\n\tfields?: string[];\n\t/**\n\t * The fields to combine.\n\t */\n\tcombinedFields?: CombinedFormField< Item >[];\n};\n\nexport interface DataFormProps< Item > {\n\tdata: Item;\n\tfields: Field< Item >[];\n\tform: Form< Item >;\n\tonChange: ( value: Record< string, any > ) => void;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_normalizeFields","require","isItemValid","item","fields","form","_fields","normalizeFields","filter","id","includes","every","field","isValid","elements"],"sources":["@wordpress/dataviews/src/validation.ts"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { normalizeFields } from './normalize-fields';\nimport type { Field, Form } from './types';\n\nexport function isItemValid< Item >(\n\titem: Item,\n\tfields: Field< Item >[],\n\tform: Form\n): boolean {\n\tconst _fields = normalizeFields(\n\t\tfields.filter( ( { id } ) => !! form.fields?.includes( id ) )\n\t);\n\treturn _fields.every( ( field ) => {\n\t\treturn field.isValid( item, { elements: field.elements } );\n\t} );\n}\n"],"mappings":";;;;;;AAGA,IAAAA,gBAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAIO,SAASC,WAAWA,CAC1BC,IAAU,EACVC,MAAuB,EACvBC,IAAU,EACA;EACV,MAAMC,OAAO,GAAG,IAAAC,gCAAe,EAC9BH,MAAM,CAACI,MAAM,CAAE,CAAE;IAAEC;EAAG,CAAC,KAAM,CAAC,CAAEJ,IAAI,CAACD,MAAM,EAAEM,QAAQ,CAAED,EAAG,CAAE,CAC7D,CAAC;EACD,OAAOH,OAAO,CAACK,KAAK,CAAIC,KAAK,IAAM;IAClC,OAAOA,KAAK,CAACC,OAAO,CAAEV,IAAI,EAAE;MAAEW,QAAQ,EAAEF,KAAK,CAACE;IAAS,CAAE,CAAC;EAC3D,CAAE,CAAC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["_normalizeFields","require","isItemValid","item","fields","form","_fields","normalizeFields","filter","id","includes","every","field","isValid","elements"],"sources":["@wordpress/dataviews/src/validation.ts"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { normalizeFields } from './normalize-fields';\nimport type { Field, Form } from './types';\n\nexport function isItemValid< Item >(\n\titem: Item,\n\tfields: Field< Item >[],\n\tform: Form< Item >\n): boolean {\n\tconst _fields = normalizeFields(\n\t\tfields.filter( ( { id } ) => !! form.fields?.includes( id ) )\n\t);\n\treturn _fields.every( ( field ) => {\n\t\treturn field.isValid( item, { elements: field.elements } );\n\t} );\n}\n"],"mappings":";;;;;;AAGA,IAAAA,gBAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAIO,SAASC,WAAWA,CAC1BC,IAAU,EACVC,MAAuB,EACvBC,IAAkB,EACR;EACV,MAAMC,OAAO,GAAG,IAAAC,gCAAe,EAC9BH,MAAM,CAACI,MAAM,CAAE,CAAE;IAAEC;EAAG,CAAC,KAAM,CAAC,CAAEJ,IAAI,CAACD,MAAM,EAAEM,QAAQ,CAAED,EAAG,CAAE,CAC7D,CAAC;EACD,OAAOH,OAAO,CAACK,KAAK,CAAIC,KAAK,IAAM;IAClC,OAAOA,KAAK,CAACC,OAAO,CAAEV,IAAI,EAAE;MAAEW,QAAQ,EAAEF,KAAK,CAACE;IAAS,CAAE,CAAC;EAC3D,CAAE,CAAC;AACJ","ignoreList":[]}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * WordPress dependencies
3
+ */
4
+ import { __experimentalHStack as HStack, __experimentalVStack as VStack, __experimentalHeading as Heading, __experimentalSpacer as Spacer } from '@wordpress/components';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import { jsx as _jsx } from "react/jsx-runtime";
10
+ import { jsxs as _jsxs } from "react/jsx-runtime";
11
+ import { Fragment as _Fragment } from "react/jsx-runtime";
12
+ function Header({
13
+ title
14
+ }) {
15
+ return /*#__PURE__*/_jsx(VStack, {
16
+ className: "dataforms-layouts__dropdown-header",
17
+ spacing: 4,
18
+ children: /*#__PURE__*/_jsxs(HStack, {
19
+ alignment: "center",
20
+ children: [/*#__PURE__*/_jsx(Heading, {
21
+ level: 2,
22
+ size: 13,
23
+ children: title
24
+ }), /*#__PURE__*/_jsx(Spacer, {})]
25
+ })
26
+ });
27
+ }
28
+ function DataFormCombinedEdit({
29
+ field,
30
+ data,
31
+ onChange,
32
+ hideLabelFromVision
33
+ }) {
34
+ var _field$children;
35
+ const className = 'dataforms-combined-edit';
36
+ const visibleChildren = ((_field$children = field.children) !== null && _field$children !== void 0 ? _field$children : []).map(fieldId => field.fields.find(({
37
+ id
38
+ }) => id === fieldId)).filter(childField => !!childField);
39
+ const children = visibleChildren.map(child => {
40
+ return /*#__PURE__*/_jsx("div", {
41
+ className: "dataforms-combined-edit__field",
42
+ children: /*#__PURE__*/_jsx(child.Edit, {
43
+ data: data,
44
+ field: child,
45
+ onChange: onChange
46
+ })
47
+ }, child.id);
48
+ });
49
+ const Stack = field.direction === 'horizontal' ? HStack : VStack;
50
+ return /*#__PURE__*/_jsxs(_Fragment, {
51
+ children: [!hideLabelFromVision && /*#__PURE__*/_jsx(Header, {
52
+ title: field.label
53
+ }), /*#__PURE__*/_jsx(Stack, {
54
+ spacing: 4,
55
+ className: className,
56
+ as: "fieldset",
57
+ children: children
58
+ })]
59
+ });
60
+ }
61
+ export default DataFormCombinedEdit;
62
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalHeading","Heading","__experimentalSpacer","Spacer","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","Header","title","className","spacing","children","alignment","level","size","DataFormCombinedEdit","field","data","onChange","hideLabelFromVision","_field$children","visibleChildren","map","fieldId","fields","find","id","filter","childField","child","Edit","Stack","direction","label","as"],"sources":["@wordpress/dataviews/src/components/dataform-combined-edit/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalHeading as Heading,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport type { DataFormCombinedEditProps, NormalizedField } from '../../types';\n\nfunction Header( { title }: { title: string } ) {\n\treturn (\n\t\t<VStack className=\"dataforms-layouts__dropdown-header\" spacing={ 4 }>\n\t\t\t<HStack alignment=\"center\">\n\t\t\t\t<Heading level={ 2 } size={ 13 }>\n\t\t\t\t\t{ title }\n\t\t\t\t</Heading>\n\t\t\t\t<Spacer />\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n\nfunction DataFormCombinedEdit< Item >( {\n\tfield,\n\tdata,\n\tonChange,\n\thideLabelFromVision,\n}: DataFormCombinedEditProps< Item > ) {\n\tconst className = 'dataforms-combined-edit';\n\tconst visibleChildren = ( field.children ?? [] )\n\t\t.map( ( fieldId ) => field.fields.find( ( { id } ) => id === fieldId ) )\n\t\t.filter(\n\t\t\t( childField ): childField is NormalizedField< Item > =>\n\t\t\t\t!! childField\n\t\t);\n\tconst children = visibleChildren.map( ( child ) => {\n\t\treturn (\n\t\t\t<div className=\"dataforms-combined-edit__field\" key={ child.id }>\n\t\t\t\t<child.Edit\n\t\t\t\t\tdata={ data }\n\t\t\t\t\tfield={ child }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t} );\n\n\tconst Stack = field.direction === 'horizontal' ? HStack : VStack;\n\n\treturn (\n\t\t<>\n\t\t\t{ ! hideLabelFromVision && <Header title={ field.label } /> }\n\t\t\t<Stack spacing={ 4 } className={ className } as=\"fieldset\">\n\t\t\t\t{ children }\n\t\t\t</Stack>\n\t\t</>\n\t);\n}\n\nexport default DataFormCombinedEdit;\n"],"mappings":"AAAA;AACA;AACA;AACA,SACCA,oBAAoB,IAAIC,MAAM,EAC9BC,oBAAoB,IAAIC,MAAM,EAC9BC,qBAAqB,IAAIC,OAAO,EAChCC,oBAAoB,IAAIC,MAAM,QACxB,uBAAuB;;AAE9B;AACA;AACA;AAFA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAKA,SAASC,MAAMA,CAAE;EAAEC;AAAyB,CAAC,EAAG;EAC/C,oBACCN,IAAA,CAACN,MAAM;IAACa,SAAS,EAAC,oCAAoC;IAACC,OAAO,EAAG,CAAG;IAAAC,QAAA,eACnEP,KAAA,CAACV,MAAM;MAACkB,SAAS,EAAC,QAAQ;MAAAD,QAAA,gBACzBT,IAAA,CAACJ,OAAO;QAACe,KAAK,EAAG,CAAG;QAACC,IAAI,EAAG,EAAI;QAAAH,QAAA,EAC7BH;MAAK,CACC,CAAC,eACVN,IAAA,CAACF,MAAM,IAAE,CAAC;IAAA,CACH;EAAC,CACF,CAAC;AAEX;AAEA,SAASe,oBAAoBA,CAAU;EACtCC,KAAK;EACLC,IAAI;EACJC,QAAQ;EACRC;AACkC,CAAC,EAAG;EAAA,IAAAC,eAAA;EACtC,MAAMX,SAAS,GAAG,yBAAyB;EAC3C,MAAMY,eAAe,GAAG,EAAAD,eAAA,GAAEJ,KAAK,CAACL,QAAQ,cAAAS,eAAA,cAAAA,eAAA,GAAI,EAAE,EAC5CE,GAAG,CAAIC,OAAO,IAAMP,KAAK,CAACQ,MAAM,CAACC,IAAI,CAAE,CAAE;IAAEC;EAAG,CAAC,KAAMA,EAAE,KAAKH,OAAQ,CAAE,CAAC,CACvEI,MAAM,CACJC,UAAU,IACX,CAAC,CAAEA,UACL,CAAC;EACF,MAAMjB,QAAQ,GAAGU,eAAe,CAACC,GAAG,CAAIO,KAAK,IAAM;IAClD,oBACC3B,IAAA;MAAKO,SAAS,EAAC,gCAAgC;MAAAE,QAAA,eAC9CT,IAAA,CAAC2B,KAAK,CAACC,IAAI;QACVb,IAAI,EAAGA,IAAM;QACbD,KAAK,EAAGa,KAAO;QACfX,QAAQ,EAAGA;MAAU,CACrB;IAAC,GALmDW,KAAK,CAACH,EAMvD,CAAC;EAER,CAAE,CAAC;EAEH,MAAMK,KAAK,GAAGf,KAAK,CAACgB,SAAS,KAAK,YAAY,GAAGtC,MAAM,GAAGE,MAAM;EAEhE,oBACCQ,KAAA,CAAAE,SAAA;IAAAK,QAAA,GACG,CAAEQ,mBAAmB,iBAAIjB,IAAA,CAACK,MAAM;MAACC,KAAK,EAAGQ,KAAK,CAACiB;IAAO,CAAE,CAAC,eAC3D/B,IAAA,CAAC6B,KAAK;MAACrB,OAAO,EAAG,CAAG;MAACD,SAAS,EAAGA,SAAW;MAACyB,EAAE,EAAC,UAAU;MAAAvB,QAAA,EACvDA;IAAQ,CACJ,CAAC;EAAA,CACP,CAAC;AAEL;AAEA,eAAeI,oBAAoB","ignoreList":[]}
@@ -5,11 +5,12 @@
5
5
  /**
6
6
  * WordPress dependencies
7
7
  */
8
- import { Button, Dropdown, __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, __experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon, SelectControl, __experimentalItemGroup as ItemGroup, __experimentalItem as Item, __experimentalGrid as Grid, __experimentalVStack as VStack, __experimentalHStack as HStack, __experimentalHeading as Heading, __experimentalText as Text, privateApis as componentsPrivateApis, BaseControl } from '@wordpress/components';
8
+ import { Button, __experimentalDropdownContentWrapper as DropdownContentWrapper, Dropdown, __experimentalToggleGroupControl as ToggleGroupControl, __experimentalToggleGroupControlOption as ToggleGroupControlOption, __experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon, SelectControl, __experimentalItemGroup as ItemGroup, __experimentalItem as Item, __experimentalGrid as Grid, __experimentalVStack as VStack, __experimentalHStack as HStack, __experimentalHeading as Heading, __experimentalText as Text, privateApis as componentsPrivateApis, BaseControl } from '@wordpress/components';
9
9
  import { __, _x, sprintf } from '@wordpress/i18n';
10
10
  import { memo, useContext, useMemo } from '@wordpress/element';
11
11
  import { chevronDown, chevronUp, cog, seen, unseen } from '@wordpress/icons';
12
12
  import warning from '@wordpress/warning';
13
+ import { useInstanceId } from '@wordpress/compose';
13
14
 
14
15
  /**
15
16
  * Internal dependencies
@@ -25,6 +26,10 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
25
26
  const {
26
27
  DropdownMenuV2
27
28
  } = unlock(componentsPrivateApis);
29
+ const DATAVIEWS_CONFIG_POPOVER_PROPS = {
30
+ placement: 'bottom-end',
31
+ offset: 9
32
+ };
28
33
  function ViewTypeMenu({
29
34
  defaultLayouts = {
30
35
  list: {},
@@ -384,30 +389,53 @@ function SettingsSection({
384
389
  })]
385
390
  });
386
391
  }
387
- function DataviewsViewConfigContent({
392
+ function DataviewsViewConfigDropdown({
388
393
  density,
389
394
  setDensity
390
395
  }) {
391
396
  const {
392
397
  view
393
398
  } = useContext(DataViewsContext);
394
- return /*#__PURE__*/_jsxs(VStack, {
395
- className: "dataviews-view-config",
396
- spacing: 6,
397
- children: [/*#__PURE__*/_jsxs(SettingsSection, {
398
- title: __('Appearance'),
399
- children: [/*#__PURE__*/_jsxs(HStack, {
400
- expanded: true,
401
- className: "is-divided-in-two",
402
- children: [/*#__PURE__*/_jsx(SortFieldControl, {}), /*#__PURE__*/_jsx(SortDirectionControl, {})]
403
- }), view.type === LAYOUT_GRID && /*#__PURE__*/_jsx(DensityPicker, {
404
- density: density,
405
- setDensity: setDensity
406
- }), /*#__PURE__*/_jsx(ItemsPerPageControl, {})]
407
- }), /*#__PURE__*/_jsx(SettingsSection, {
408
- title: __('Properties'),
409
- children: /*#__PURE__*/_jsx(FieldControl, {})
410
- })]
399
+ const popoverId = useInstanceId(_DataViewsViewConfig, 'dataviews-view-config-dropdown');
400
+ return /*#__PURE__*/_jsx(Dropdown, {
401
+ popoverProps: {
402
+ ...DATAVIEWS_CONFIG_POPOVER_PROPS,
403
+ id: popoverId
404
+ },
405
+ renderToggle: ({
406
+ onToggle,
407
+ isOpen
408
+ }) => {
409
+ return /*#__PURE__*/_jsx(Button, {
410
+ size: "compact",
411
+ icon: cog,
412
+ label: _x('View options', 'View is used as a noun'),
413
+ onClick: onToggle,
414
+ "aria-expanded": isOpen ? 'true' : 'false',
415
+ "aria-controls": popoverId
416
+ });
417
+ },
418
+ renderContent: () => /*#__PURE__*/_jsx(DropdownContentWrapper, {
419
+ paddingSize: "medium",
420
+ children: /*#__PURE__*/_jsxs(VStack, {
421
+ className: "dataviews-view-config",
422
+ spacing: 6,
423
+ children: [/*#__PURE__*/_jsxs(SettingsSection, {
424
+ title: __('Appearance'),
425
+ children: [/*#__PURE__*/_jsxs(HStack, {
426
+ expanded: true,
427
+ className: "is-divided-in-two",
428
+ children: [/*#__PURE__*/_jsx(SortFieldControl, {}), /*#__PURE__*/_jsx(SortDirectionControl, {})]
429
+ }), view.type === LAYOUT_GRID && /*#__PURE__*/_jsx(DensityPicker, {
430
+ density: density,
431
+ setDensity: setDensity
432
+ }), /*#__PURE__*/_jsx(ItemsPerPageControl, {})]
433
+ }), /*#__PURE__*/_jsx(SettingsSection, {
434
+ title: __('Properties'),
435
+ children: /*#__PURE__*/_jsx(FieldControl, {})
436
+ })]
437
+ })
438
+ })
411
439
  });
412
440
  }
413
441
  function _DataViewsViewConfig({
@@ -422,26 +450,9 @@ function _DataViewsViewConfig({
422
450
  return /*#__PURE__*/_jsxs(_Fragment, {
423
451
  children: [/*#__PURE__*/_jsx(ViewTypeMenu, {
424
452
  defaultLayouts: defaultLayouts
425
- }), /*#__PURE__*/_jsx(Dropdown, {
426
- popoverProps: {
427
- placement: 'bottom-end',
428
- offset: 9
429
- },
430
- contentClassName: "dataviews-view-config",
431
- renderToggle: ({
432
- onToggle
433
- }) => {
434
- return /*#__PURE__*/_jsx(Button, {
435
- size: "compact",
436
- icon: cog,
437
- label: _x('View options', 'View is used as a noun'),
438
- onClick: onToggle
439
- });
440
- },
441
- renderContent: () => /*#__PURE__*/_jsx(DataviewsViewConfigContent, {
442
- density: density,
443
- setDensity: setDensity
444
- })
453
+ }), /*#__PURE__*/_jsx(DataviewsViewConfigDropdown, {
454
+ density: density,
455
+ setDensity: setDensity
445
456
  })]
446
457
  });
447
458
  }
@@ -1 +1 @@
1
- {"version":3,"names":["Button","Dropdown","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalToggleGroupControlOptionIcon","ToggleGroupControlOptionIcon","SelectControl","__experimentalItemGroup","ItemGroup","__experimentalItem","Item","__experimentalGrid","Grid","__experimentalVStack","VStack","__experimentalHStack","HStack","__experimentalHeading","Heading","__experimentalText","Text","privateApis","componentsPrivateApis","BaseControl","__","_x","sprintf","memo","useContext","useMemo","chevronDown","chevronUp","cog","seen","unseen","warning","SORTING_DIRECTIONS","LAYOUT_GRID","LAYOUT_TABLE","sortIcons","sortLabels","VIEW_LAYOUTS","getNotHidableFieldIds","getVisibleFieldIds","getHiddenFieldIds","DataViewsContext","unlock","DensityPicker","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DropdownMenuV2","ViewTypeMenu","defaultLayouts","list","grid","table","view","onChangeView","availableLayouts","Object","keys","length","activeView","find","v","type","trigger","size","icon","label","children","map","layout","config","RadioItem","value","name","checked","hideOnClick","onChange","e","target","globalThis","SCRIPT_DEBUG","ItemLabel","SortFieldControl","fields","orderOptions","sortableFields","filter","field","enableSorting","id","__nextHasNoMarginBottom","__next40pxDefaultSize","sort","options","direction","SortDirectionControl","className","isBlock","newDirection","PAGE_SIZE_VALUES","ItemsPerPageControl","perPage","disabled","newItemsPerPage","newItemsPerPageNumber","undefined","parseInt","page","toString","FieldItem","index","isVisible","isHidable","visibleFieldIds","expanded","justify","accessibleWhenDisabled","onClick","_visibleFieldIds$slic","slice","_visibleFieldIds$slic2","fieldId","setTimeout","element","document","querySelector","HTMLElement","focus","FieldControl","hiddenFieldIds","notHidableFieldIds","visibleFields","includes","enableHiding","indexOf","combinedFields","forEach","push","a","b","hiddenFields","spacing","isBordered","isSeparated","VisualLabel","style","margin","SettingsSection","title","description","columns","gap","level","variant","DataviewsViewConfigContent","density","setDensity","_DataViewsViewConfig","popoverProps","placement","offset","contentClassName","renderToggle","onToggle","renderContent","DataViewsViewConfig"],"sources":["@wordpress/dataviews/src/components/dataviews-view-config/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ChangeEvent } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tDropdown,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n\tSelectControl,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n\t__experimentalGrid as Grid,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalText as Text,\n\tprivateApis as componentsPrivateApis,\n\tBaseControl,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { memo, useContext, useMemo } from '@wordpress/element';\nimport { chevronDown, chevronUp, cog, seen, unseen } from '@wordpress/icons';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport {\n\tSORTING_DIRECTIONS,\n\tLAYOUT_GRID,\n\tLAYOUT_TABLE,\n\tsortIcons,\n\tsortLabels,\n} from '../../constants';\nimport {\n\tVIEW_LAYOUTS,\n\tgetNotHidableFieldIds,\n\tgetVisibleFieldIds,\n\tgetHiddenFieldIds,\n} from '../../dataviews-layouts';\nimport type { SupportedLayouts, View, Field } from '../../types';\nimport DataViewsContext from '../dataviews-context';\nimport { unlock } from '../../lock-unlock';\nimport DensityPicker from '../../dataviews-layouts/grid/density-picker';\n\nconst { DropdownMenuV2 } = unlock( componentsPrivateApis );\n\ninterface ViewTypeMenuProps {\n\tdefaultLayouts?: SupportedLayouts;\n}\n\nfunction ViewTypeMenu( {\n\tdefaultLayouts = { list: {}, grid: {}, table: {} },\n}: ViewTypeMenuProps ) {\n\tconst { view, onChangeView } = useContext( DataViewsContext );\n\tconst availableLayouts = Object.keys( defaultLayouts );\n\tif ( availableLayouts.length <= 1 ) {\n\t\treturn null;\n\t}\n\tconst activeView = VIEW_LAYOUTS.find( ( v ) => view.type === v.type );\n\treturn (\n\t\t<DropdownMenuV2\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\ticon={ activeView?.icon }\n\t\t\t\t\tlabel={ __( 'Layout' ) }\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t{ availableLayouts.map( ( layout ) => {\n\t\t\t\tconst config = VIEW_LAYOUTS.find( ( v ) => v.type === layout );\n\t\t\t\tif ( ! config ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuV2.RadioItem\n\t\t\t\t\t\tkey={ layout }\n\t\t\t\t\t\tvalue={ layout }\n\t\t\t\t\t\tname=\"view-actions-available-view\"\n\t\t\t\t\t\tchecked={ layout === view.type }\n\t\t\t\t\t\thideOnClick\n\t\t\t\t\t\tonChange={ ( e: ChangeEvent< HTMLInputElement > ) => {\n\t\t\t\t\t\t\tswitch ( e.target.value ) {\n\t\t\t\t\t\t\t\tcase 'list':\n\t\t\t\t\t\t\t\tcase 'grid':\n\t\t\t\t\t\t\t\tcase 'table':\n\t\t\t\t\t\t\t\t\treturn onChangeView( {\n\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\ttype: e.target.value,\n\t\t\t\t\t\t\t\t\t\t...defaultLayouts[ e.target.value ],\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twarning( 'Invalid dataview' );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<DropdownMenuV2.ItemLabel>\n\t\t\t\t\t\t\t{ config.label }\n\t\t\t\t\t\t</DropdownMenuV2.ItemLabel>\n\t\t\t\t\t</DropdownMenuV2.RadioItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenuV2>\n\t);\n}\n\nfunction SortFieldControl() {\n\tconst { view, fields, onChangeView } = useContext( DataViewsContext );\n\tconst orderOptions = useMemo( () => {\n\t\tconst sortableFields = fields.filter(\n\t\t\t( field ) => field.enableSorting !== false\n\t\t);\n\t\treturn sortableFields.map( ( field ) => {\n\t\t\treturn {\n\t\t\t\tlabel: field.label,\n\t\t\t\tvalue: field.id,\n\t\t\t};\n\t\t} );\n\t}, [ fields ] );\n\n\treturn (\n\t\t<SelectControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'Sort by' ) }\n\t\t\tvalue={ view.sort?.field }\n\t\t\toptions={ orderOptions }\n\t\t\tonChange={ ( value: string ) => {\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tsort: {\n\t\t\t\t\t\tdirection: view?.sort?.direction || 'desc',\n\t\t\t\t\t\tfield: value,\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nfunction SortDirectionControl() {\n\tconst { view, fields, onChangeView } = useContext( DataViewsContext );\n\n\tconst sortableFields = fields.filter(\n\t\t( field ) => field.enableSorting !== false\n\t);\n\tif ( sortableFields.length === 0 ) {\n\t\treturn null;\n\t}\n\n\tlet value = view.sort?.direction;\n\tif ( ! value && view.sort?.field ) {\n\t\tvalue = 'desc';\n\t}\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\tclassName=\"dataviews-view-config__sort-direction\"\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tisBlock\n\t\t\tlabel={ __( 'Order' ) }\n\t\t\tvalue={ value }\n\t\t\tonChange={ ( newDirection ) => {\n\t\t\t\tif ( newDirection === 'asc' || newDirection === 'desc' ) {\n\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t...view,\n\t\t\t\t\t\tsort: {\n\t\t\t\t\t\t\tdirection: newDirection,\n\t\t\t\t\t\t\tfield:\n\t\t\t\t\t\t\t\tview.sort?.field ||\n\t\t\t\t\t\t\t\t// If there is no field assigned as the sorting field assign the first sortable field.\n\t\t\t\t\t\t\t\tfields.find(\n\t\t\t\t\t\t\t\t\t( field ) => field.enableSorting !== false\n\t\t\t\t\t\t\t\t)?.id ||\n\t\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\treturn;\n\t\t\t\t}\n\t\t\t\twarning( 'Invalid direction' );\n\t\t\t} }\n\t\t>\n\t\t\t{ SORTING_DIRECTIONS.map( ( direction ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\tkey={ direction }\n\t\t\t\t\t\tvalue={ direction }\n\t\t\t\t\t\ticon={ sortIcons[ direction ] }\n\t\t\t\t\t\tlabel={ sortLabels[ direction ] }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ToggleGroupControl>\n\t);\n}\n\nconst PAGE_SIZE_VALUES = [ 10, 20, 50, 100 ];\nfunction ItemsPerPageControl() {\n\tconst { view, onChangeView } = useContext( DataViewsContext );\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tisBlock\n\t\t\tlabel={ __( 'Items per page' ) }\n\t\t\tvalue={ view.perPage || 10 }\n\t\t\tdisabled={ ! view?.sort?.field }\n\t\t\tonChange={ ( newItemsPerPage ) => {\n\t\t\t\tconst newItemsPerPageNumber =\n\t\t\t\t\ttypeof newItemsPerPage === 'number' ||\n\t\t\t\t\tnewItemsPerPage === undefined\n\t\t\t\t\t\t? newItemsPerPage\n\t\t\t\t\t\t: parseInt( newItemsPerPage, 10 );\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tperPage: newItemsPerPageNumber,\n\t\t\t\t\tpage: 1,\n\t\t\t\t} );\n\t\t\t} }\n\t\t>\n\t\t\t{ PAGE_SIZE_VALUES.map( ( value ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tlabel={ value.toString() }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ToggleGroupControl>\n\t);\n}\n\ninterface FieldItemProps {\n\tid: any;\n\tlabel: string;\n\tindex: number;\n\tisVisible: boolean;\n\tisHidable: boolean;\n}\n\nfunction FieldItem( {\n\tfield: { id, label, index, isVisible, isHidable },\n\tfields,\n\tview,\n\tonChangeView,\n}: {\n\tfield: FieldItemProps;\n\tfields: Field< any >[];\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n} ) {\n\tconst visibleFieldIds = getVisibleFieldIds( view, fields );\n\n\treturn (\n\t\t<Item key={ id }>\n\t\t\t<HStack\n\t\t\t\texpanded\n\t\t\t\tclassName={ `dataviews-field-control__field dataviews-field-control__field-${ id }` }\n\t\t\t>\n\t\t\t\t<span>{ label }</span>\n\t\t\t\t<HStack\n\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t\tclassName=\"dataviews-field-control__actions\"\n\t\t\t\t>\n\t\t\t\t\t{ view.type === LAYOUT_TABLE && isVisible && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tdisabled={ index < 1 }\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\tonClick={ () => {\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: [\n\t\t\t\t\t\t\t\t\t\t\t...( visibleFieldIds.slice(\n\t\t\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\t\t\tindex - 1\n\t\t\t\t\t\t\t\t\t\t\t) ?? [] ),\n\t\t\t\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t\t\t\tvisibleFieldIds[ index - 1 ],\n\t\t\t\t\t\t\t\t\t\t\t...visibleFieldIds.slice(\n\t\t\t\t\t\t\t\t\t\t\t\tindex + 1\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t],\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\ticon={ chevronUp }\n\t\t\t\t\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t__( 'Move %s up' ),\n\t\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tdisabled={ index >= visibleFieldIds.length - 1 }\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\tonClick={ () => {\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: [\n\t\t\t\t\t\t\t\t\t\t\t...( visibleFieldIds.slice(\n\t\t\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\t\t\tindex\n\t\t\t\t\t\t\t\t\t\t\t) ?? [] ),\n\t\t\t\t\t\t\t\t\t\t\tvisibleFieldIds[ index + 1 ],\n\t\t\t\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t\t\t\t...visibleFieldIds.slice(\n\t\t\t\t\t\t\t\t\t\t\t\tindex + 2\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t],\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\ticon={ chevronDown }\n\t\t\t\t\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t__( 'Move %s down' ),\n\t\t\t\t\t\t\t\t\tlabel\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\t<Button\n\t\t\t\t\t\tclassName=\"dataviews-field-control__field-visibility-button\"\n\t\t\t\t\t\tdisabled={ ! isHidable }\n\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\tfields: isVisible\n\t\t\t\t\t\t\t\t\t? visibleFieldIds.filter(\n\t\t\t\t\t\t\t\t\t\t\t( fieldId ) => fieldId !== id\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: [ ...visibleFieldIds, id ],\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t// Focus the visibility button to avoid focus loss.\n\t\t\t\t\t\t\t// Our code is safe against the component being unmounted, so we don't need to worry about cleaning the timeout.\n\t\t\t\t\t\t\t// eslint-disable-next-line @wordpress/react-no-unsafe-timeout\n\t\t\t\t\t\t\tsetTimeout( () => {\n\t\t\t\t\t\t\t\tconst element = document.querySelector(\n\t\t\t\t\t\t\t\t\t`.dataviews-field-control__field-${ id } .dataviews-field-control__field-visibility-button`\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tif ( element instanceof HTMLElement ) {\n\t\t\t\t\t\t\t\t\telement.focus();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}, 50 );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={ isVisible ? seen : unseen }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tisVisible\n\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t\t__( 'Hide %s' ),\n\t\t\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t\t__( 'Show %s' ),\n\t\t\t\t\t\t\t\t\t\tlabel\n\t\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</HStack>\n\t\t\t</HStack>\n\t\t</Item>\n\t);\n}\n\nfunction FieldControl() {\n\tconst { view, fields, onChangeView } = useContext( DataViewsContext );\n\n\tconst visibleFieldIds = useMemo(\n\t\t() => getVisibleFieldIds( view, fields ),\n\t\t[ view, fields ]\n\t);\n\tconst hiddenFieldIds = useMemo(\n\t\t() => getHiddenFieldIds( view, fields ),\n\t\t[ view, fields ]\n\t);\n\tconst notHidableFieldIds = useMemo(\n\t\t() => getNotHidableFieldIds( view ),\n\t\t[ view ]\n\t);\n\n\tconst visibleFields = fields\n\t\t.filter( ( { id } ) => visibleFieldIds.includes( id ) )\n\t\t.map( ( { id, label, enableHiding } ) => {\n\t\t\treturn {\n\t\t\t\tid,\n\t\t\t\tlabel,\n\t\t\t\tindex: visibleFieldIds.indexOf( id ),\n\t\t\t\tisVisible: true,\n\t\t\t\tisHidable: notHidableFieldIds.includes( id )\n\t\t\t\t\t? false\n\t\t\t\t\t: enableHiding,\n\t\t\t};\n\t\t} );\n\tif ( view.type === LAYOUT_TABLE && view.layout?.combinedFields ) {\n\t\tview.layout.combinedFields.forEach( ( { id, label } ) => {\n\t\t\tvisibleFields.push( {\n\t\t\t\tid,\n\t\t\t\tlabel,\n\t\t\t\tindex: visibleFieldIds.indexOf( id ),\n\t\t\t\tisVisible: true,\n\t\t\t\tisHidable: notHidableFieldIds.includes( id ),\n\t\t\t} );\n\t\t} );\n\t}\n\tvisibleFields.sort( ( a, b ) => a.index - b.index );\n\n\tconst hiddenFields = fields\n\t\t.filter( ( { id } ) => hiddenFieldIds.includes( id ) )\n\t\t.map( ( { id, label, enableHiding }, index ) => {\n\t\t\treturn {\n\t\t\t\tid,\n\t\t\t\tlabel,\n\t\t\t\tindex,\n\t\t\t\tisVisible: false,\n\t\t\t\tisHidable: enableHiding,\n\t\t\t};\n\t\t} );\n\n\tif ( ! visibleFields?.length && ! hiddenFields?.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<VStack spacing={ 6 } className=\"dataviews-field-control\">\n\t\t\t{ !! visibleFields?.length && (\n\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t{ visibleFields.map( ( field ) => (\n\t\t\t\t\t\t<FieldItem\n\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\tfields={ fields }\n\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t</ItemGroup>\n\t\t\t) }\n\t\t\t{ !! hiddenFields?.length && (\n\t\t\t\t<>\n\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t<BaseControl.VisualLabel style={ { margin: 0 } }>\n\t\t\t\t\t\t\t{ __( 'Hidden' ) }\n\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t\t{ hiddenFields.map( ( field ) => (\n\t\t\t\t\t\t\t\t<FieldItem\n\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\tfields={ fields }\n\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t</VStack>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nfunction SettingsSection( {\n\ttitle,\n\tdescription,\n\tchildren,\n}: {\n\ttitle: string;\n\tdescription?: string;\n\tchildren: React.ReactNode;\n} ) {\n\treturn (\n\t\t<Grid columns={ 12 } className=\"dataviews-settings-section\" gap={ 4 }>\n\t\t\t<div className=\"dataviews-settings-section__sidebar\">\n\t\t\t\t<Heading\n\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\tclassName=\"dataviews-settings-section__title\"\n\t\t\t\t>\n\t\t\t\t\t{ title }\n\t\t\t\t</Heading>\n\t\t\t\t{ description && (\n\t\t\t\t\t<Text\n\t\t\t\t\t\tvariant=\"muted\"\n\t\t\t\t\t\tclassName=\"dataviews-settings-section__description\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ description }\n\t\t\t\t\t</Text>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t<Grid\n\t\t\t\tcolumns={ 8 }\n\t\t\t\tgap={ 4 }\n\t\t\t\tclassName=\"dataviews-settings-section__content\"\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</Grid>\n\t\t</Grid>\n\t);\n}\n\nfunction DataviewsViewConfigContent( {\n\tdensity,\n\tsetDensity,\n}: {\n\tdensity: number;\n\tsetDensity: React.Dispatch< React.SetStateAction< number > >;\n} ) {\n\tconst { view } = useContext( DataViewsContext );\n\treturn (\n\t\t<VStack className=\"dataviews-view-config\" spacing={ 6 }>\n\t\t\t<SettingsSection title={ __( 'Appearance' ) }>\n\t\t\t\t<HStack expanded className=\"is-divided-in-two\">\n\t\t\t\t\t<SortFieldControl />\n\t\t\t\t\t<SortDirectionControl />\n\t\t\t\t</HStack>\n\t\t\t\t{ view.type === LAYOUT_GRID && (\n\t\t\t\t\t<DensityPicker\n\t\t\t\t\t\tdensity={ density }\n\t\t\t\t\t\tsetDensity={ setDensity }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<ItemsPerPageControl />\n\t\t\t</SettingsSection>\n\t\t\t<SettingsSection title={ __( 'Properties' ) }>\n\t\t\t\t<FieldControl />\n\t\t\t</SettingsSection>\n\t\t</VStack>\n\t);\n}\n\nfunction _DataViewsViewConfig( {\n\tdensity,\n\tsetDensity,\n\tdefaultLayouts = { list: {}, grid: {}, table: {} },\n}: {\n\tdensity: number;\n\tsetDensity: React.Dispatch< React.SetStateAction< number > >;\n\tdefaultLayouts?: SupportedLayouts;\n} ) {\n\treturn (\n\t\t<>\n\t\t\t<ViewTypeMenu defaultLayouts={ defaultLayouts } />\n\t\t\t<Dropdown\n\t\t\t\tpopoverProps={ { placement: 'bottom-end', offset: 9 } }\n\t\t\t\tcontentClassName=\"dataviews-view-config\"\n\t\t\t\trenderToggle={ ( { onToggle } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\ticon={ cog }\n\t\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t\t'View options',\n\t\t\t\t\t\t\t\t'View is used as a noun'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t\trenderContent={ () => (\n\t\t\t\t\t<DataviewsViewConfigContent\n\t\t\t\t\t\tdensity={ density }\n\t\t\t\t\t\tsetDensity={ setDensity }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nconst DataViewsViewConfig = memo( _DataViewsViewConfig );\n\nexport default DataViewsViewConfig;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Button","__experimentalDropdownContentWrapper","DropdownContentWrapper","Dropdown","__experimentalToggleGroupControl","ToggleGroupControl","__experimentalToggleGroupControlOption","ToggleGroupControlOption","__experimentalToggleGroupControlOptionIcon","ToggleGroupControlOptionIcon","SelectControl","__experimentalItemGroup","ItemGroup","__experimentalItem","Item","__experimentalGrid","Grid","__experimentalVStack","VStack","__experimentalHStack","HStack","__experimentalHeading","Heading","__experimentalText","Text","privateApis","componentsPrivateApis","BaseControl","__","_x","sprintf","memo","useContext","useMemo","chevronDown","chevronUp","cog","seen","unseen","warning","useInstanceId","SORTING_DIRECTIONS","LAYOUT_GRID","LAYOUT_TABLE","sortIcons","sortLabels","VIEW_LAYOUTS","getNotHidableFieldIds","getVisibleFieldIds","getHiddenFieldIds","DataViewsContext","unlock","DensityPicker","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DropdownMenuV2","DATAVIEWS_CONFIG_POPOVER_PROPS","placement","offset","ViewTypeMenu","defaultLayouts","list","grid","table","view","onChangeView","availableLayouts","Object","keys","length","activeView","find","v","type","trigger","size","icon","label","children","map","layout","config","RadioItem","value","name","checked","hideOnClick","onChange","e","target","globalThis","SCRIPT_DEBUG","ItemLabel","SortFieldControl","fields","orderOptions","sortableFields","filter","field","enableSorting","id","__nextHasNoMarginBottom","__next40pxDefaultSize","sort","options","direction","SortDirectionControl","className","isBlock","newDirection","PAGE_SIZE_VALUES","ItemsPerPageControl","perPage","disabled","newItemsPerPage","newItemsPerPageNumber","undefined","parseInt","page","toString","FieldItem","index","isVisible","isHidable","visibleFieldIds","expanded","justify","accessibleWhenDisabled","onClick","_visibleFieldIds$slic","slice","_visibleFieldIds$slic2","fieldId","setTimeout","element","document","querySelector","HTMLElement","focus","FieldControl","hiddenFieldIds","notHidableFieldIds","visibleFields","includes","enableHiding","indexOf","combinedFields","forEach","push","a","b","hiddenFields","spacing","isBordered","isSeparated","VisualLabel","style","margin","SettingsSection","title","description","columns","gap","level","variant","DataviewsViewConfigDropdown","density","setDensity","popoverId","_DataViewsViewConfig","popoverProps","renderToggle","onToggle","isOpen","renderContent","paddingSize","DataViewsViewConfig"],"sources":["@wordpress/dataviews/src/components/dataviews-view-config/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ChangeEvent } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tDropdown,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n\tSelectControl,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n\t__experimentalGrid as Grid,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalText as Text,\n\tprivateApis as componentsPrivateApis,\n\tBaseControl,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { memo, useContext, useMemo } from '@wordpress/element';\nimport { chevronDown, chevronUp, cog, seen, unseen } from '@wordpress/icons';\nimport warning from '@wordpress/warning';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport {\n\tSORTING_DIRECTIONS,\n\tLAYOUT_GRID,\n\tLAYOUT_TABLE,\n\tsortIcons,\n\tsortLabels,\n} from '../../constants';\nimport {\n\tVIEW_LAYOUTS,\n\tgetNotHidableFieldIds,\n\tgetVisibleFieldIds,\n\tgetHiddenFieldIds,\n} from '../../dataviews-layouts';\nimport type { SupportedLayouts, View, Field } from '../../types';\nimport DataViewsContext from '../dataviews-context';\nimport { unlock } from '../../lock-unlock';\nimport DensityPicker from '../../dataviews-layouts/grid/density-picker';\n\nconst { DropdownMenuV2 } = unlock( componentsPrivateApis );\n\ninterface ViewTypeMenuProps {\n\tdefaultLayouts?: SupportedLayouts;\n}\n\nconst DATAVIEWS_CONFIG_POPOVER_PROPS = { placement: 'bottom-end', offset: 9 };\n\nfunction ViewTypeMenu( {\n\tdefaultLayouts = { list: {}, grid: {}, table: {} },\n}: ViewTypeMenuProps ) {\n\tconst { view, onChangeView } = useContext( DataViewsContext );\n\tconst availableLayouts = Object.keys( defaultLayouts );\n\tif ( availableLayouts.length <= 1 ) {\n\t\treturn null;\n\t}\n\tconst activeView = VIEW_LAYOUTS.find( ( v ) => view.type === v.type );\n\treturn (\n\t\t<DropdownMenuV2\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\ticon={ activeView?.icon }\n\t\t\t\t\tlabel={ __( 'Layout' ) }\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t{ availableLayouts.map( ( layout ) => {\n\t\t\t\tconst config = VIEW_LAYOUTS.find( ( v ) => v.type === layout );\n\t\t\t\tif ( ! config ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuV2.RadioItem\n\t\t\t\t\t\tkey={ layout }\n\t\t\t\t\t\tvalue={ layout }\n\t\t\t\t\t\tname=\"view-actions-available-view\"\n\t\t\t\t\t\tchecked={ layout === view.type }\n\t\t\t\t\t\thideOnClick\n\t\t\t\t\t\tonChange={ ( e: ChangeEvent< HTMLInputElement > ) => {\n\t\t\t\t\t\t\tswitch ( e.target.value ) {\n\t\t\t\t\t\t\t\tcase 'list':\n\t\t\t\t\t\t\t\tcase 'grid':\n\t\t\t\t\t\t\t\tcase 'table':\n\t\t\t\t\t\t\t\t\treturn onChangeView( {\n\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\ttype: e.target.value,\n\t\t\t\t\t\t\t\t\t\t...defaultLayouts[ e.target.value ],\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twarning( 'Invalid dataview' );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<DropdownMenuV2.ItemLabel>\n\t\t\t\t\t\t\t{ config.label }\n\t\t\t\t\t\t</DropdownMenuV2.ItemLabel>\n\t\t\t\t\t</DropdownMenuV2.RadioItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenuV2>\n\t);\n}\n\nfunction SortFieldControl() {\n\tconst { view, fields, onChangeView } = useContext( DataViewsContext );\n\tconst orderOptions = useMemo( () => {\n\t\tconst sortableFields = fields.filter(\n\t\t\t( field ) => field.enableSorting !== false\n\t\t);\n\t\treturn sortableFields.map( ( field ) => {\n\t\t\treturn {\n\t\t\t\tlabel: field.label,\n\t\t\t\tvalue: field.id,\n\t\t\t};\n\t\t} );\n\t}, [ fields ] );\n\n\treturn (\n\t\t<SelectControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tlabel={ __( 'Sort by' ) }\n\t\t\tvalue={ view.sort?.field }\n\t\t\toptions={ orderOptions }\n\t\t\tonChange={ ( value: string ) => {\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tsort: {\n\t\t\t\t\t\tdirection: view?.sort?.direction || 'desc',\n\t\t\t\t\t\tfield: value,\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nfunction SortDirectionControl() {\n\tconst { view, fields, onChangeView } = useContext( DataViewsContext );\n\n\tconst sortableFields = fields.filter(\n\t\t( field ) => field.enableSorting !== false\n\t);\n\tif ( sortableFields.length === 0 ) {\n\t\treturn null;\n\t}\n\n\tlet value = view.sort?.direction;\n\tif ( ! value && view.sort?.field ) {\n\t\tvalue = 'desc';\n\t}\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\tclassName=\"dataviews-view-config__sort-direction\"\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tisBlock\n\t\t\tlabel={ __( 'Order' ) }\n\t\t\tvalue={ value }\n\t\t\tonChange={ ( newDirection ) => {\n\t\t\t\tif ( newDirection === 'asc' || newDirection === 'desc' ) {\n\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t...view,\n\t\t\t\t\t\tsort: {\n\t\t\t\t\t\t\tdirection: newDirection,\n\t\t\t\t\t\t\tfield:\n\t\t\t\t\t\t\t\tview.sort?.field ||\n\t\t\t\t\t\t\t\t// If there is no field assigned as the sorting field assign the first sortable field.\n\t\t\t\t\t\t\t\tfields.find(\n\t\t\t\t\t\t\t\t\t( field ) => field.enableSorting !== false\n\t\t\t\t\t\t\t\t)?.id ||\n\t\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\treturn;\n\t\t\t\t}\n\t\t\t\twarning( 'Invalid direction' );\n\t\t\t} }\n\t\t>\n\t\t\t{ SORTING_DIRECTIONS.map( ( direction ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\tkey={ direction }\n\t\t\t\t\t\tvalue={ direction }\n\t\t\t\t\t\ticon={ sortIcons[ direction ] }\n\t\t\t\t\t\tlabel={ sortLabels[ direction ] }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ToggleGroupControl>\n\t);\n}\n\nconst PAGE_SIZE_VALUES = [ 10, 20, 50, 100 ];\nfunction ItemsPerPageControl() {\n\tconst { view, onChangeView } = useContext( DataViewsContext );\n\treturn (\n\t\t<ToggleGroupControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tisBlock\n\t\t\tlabel={ __( 'Items per page' ) }\n\t\t\tvalue={ view.perPage || 10 }\n\t\t\tdisabled={ ! view?.sort?.field }\n\t\t\tonChange={ ( newItemsPerPage ) => {\n\t\t\t\tconst newItemsPerPageNumber =\n\t\t\t\t\ttypeof newItemsPerPage === 'number' ||\n\t\t\t\t\tnewItemsPerPage === undefined\n\t\t\t\t\t\t? newItemsPerPage\n\t\t\t\t\t\t: parseInt( newItemsPerPage, 10 );\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tperPage: newItemsPerPageNumber,\n\t\t\t\t\tpage: 1,\n\t\t\t\t} );\n\t\t\t} }\n\t\t>\n\t\t\t{ PAGE_SIZE_VALUES.map( ( value ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\tlabel={ value.toString() }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ToggleGroupControl>\n\t);\n}\n\ninterface FieldItemProps {\n\tid: any;\n\tlabel: string;\n\tindex: number;\n\tisVisible: boolean;\n\tisHidable: boolean;\n}\n\nfunction FieldItem( {\n\tfield: { id, label, index, isVisible, isHidable },\n\tfields,\n\tview,\n\tonChangeView,\n}: {\n\tfield: FieldItemProps;\n\tfields: Field< any >[];\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n} ) {\n\tconst visibleFieldIds = getVisibleFieldIds( view, fields );\n\n\treturn (\n\t\t<Item key={ id }>\n\t\t\t<HStack\n\t\t\t\texpanded\n\t\t\t\tclassName={ `dataviews-field-control__field dataviews-field-control__field-${ id }` }\n\t\t\t>\n\t\t\t\t<span>{ label }</span>\n\t\t\t\t<HStack\n\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t\tclassName=\"dataviews-field-control__actions\"\n\t\t\t\t>\n\t\t\t\t\t{ view.type === LAYOUT_TABLE && isVisible && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tdisabled={ index < 1 }\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\tonClick={ () => {\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: [\n\t\t\t\t\t\t\t\t\t\t\t...( visibleFieldIds.slice(\n\t\t\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\t\t\tindex - 1\n\t\t\t\t\t\t\t\t\t\t\t) ?? [] ),\n\t\t\t\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t\t\t\tvisibleFieldIds[ index - 1 ],\n\t\t\t\t\t\t\t\t\t\t\t...visibleFieldIds.slice(\n\t\t\t\t\t\t\t\t\t\t\t\tindex + 1\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t],\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\ticon={ chevronUp }\n\t\t\t\t\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t__( 'Move %s up' ),\n\t\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tdisabled={ index >= visibleFieldIds.length - 1 }\n\t\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\tonClick={ () => {\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: [\n\t\t\t\t\t\t\t\t\t\t\t...( visibleFieldIds.slice(\n\t\t\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\t\t\tindex\n\t\t\t\t\t\t\t\t\t\t\t) ?? [] ),\n\t\t\t\t\t\t\t\t\t\t\tvisibleFieldIds[ index + 1 ],\n\t\t\t\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t\t\t\t...visibleFieldIds.slice(\n\t\t\t\t\t\t\t\t\t\t\t\tindex + 2\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t],\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\ticon={ chevronDown }\n\t\t\t\t\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t__( 'Move %s down' ),\n\t\t\t\t\t\t\t\t\tlabel\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\t<Button\n\t\t\t\t\t\tclassName=\"dataviews-field-control__field-visibility-button\"\n\t\t\t\t\t\tdisabled={ ! isHidable }\n\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\tfields: isVisible\n\t\t\t\t\t\t\t\t\t? visibleFieldIds.filter(\n\t\t\t\t\t\t\t\t\t\t\t( fieldId ) => fieldId !== id\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: [ ...visibleFieldIds, id ],\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t// Focus the visibility button to avoid focus loss.\n\t\t\t\t\t\t\t// Our code is safe against the component being unmounted, so we don't need to worry about cleaning the timeout.\n\t\t\t\t\t\t\t// eslint-disable-next-line @wordpress/react-no-unsafe-timeout\n\t\t\t\t\t\t\tsetTimeout( () => {\n\t\t\t\t\t\t\t\tconst element = document.querySelector(\n\t\t\t\t\t\t\t\t\t`.dataviews-field-control__field-${ id } .dataviews-field-control__field-visibility-button`\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tif ( element instanceof HTMLElement ) {\n\t\t\t\t\t\t\t\t\telement.focus();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}, 50 );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={ isVisible ? seen : unseen }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tisVisible\n\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t\t__( 'Hide %s' ),\n\t\t\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: field label */\n\t\t\t\t\t\t\t\t\t\t__( 'Show %s' ),\n\t\t\t\t\t\t\t\t\t\tlabel\n\t\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</HStack>\n\t\t\t</HStack>\n\t\t</Item>\n\t);\n}\n\nfunction FieldControl() {\n\tconst { view, fields, onChangeView } = useContext( DataViewsContext );\n\n\tconst visibleFieldIds = useMemo(\n\t\t() => getVisibleFieldIds( view, fields ),\n\t\t[ view, fields ]\n\t);\n\tconst hiddenFieldIds = useMemo(\n\t\t() => getHiddenFieldIds( view, fields ),\n\t\t[ view, fields ]\n\t);\n\tconst notHidableFieldIds = useMemo(\n\t\t() => getNotHidableFieldIds( view ),\n\t\t[ view ]\n\t);\n\n\tconst visibleFields = fields\n\t\t.filter( ( { id } ) => visibleFieldIds.includes( id ) )\n\t\t.map( ( { id, label, enableHiding } ) => {\n\t\t\treturn {\n\t\t\t\tid,\n\t\t\t\tlabel,\n\t\t\t\tindex: visibleFieldIds.indexOf( id ),\n\t\t\t\tisVisible: true,\n\t\t\t\tisHidable: notHidableFieldIds.includes( id )\n\t\t\t\t\t? false\n\t\t\t\t\t: enableHiding,\n\t\t\t};\n\t\t} );\n\tif ( view.type === LAYOUT_TABLE && view.layout?.combinedFields ) {\n\t\tview.layout.combinedFields.forEach( ( { id, label } ) => {\n\t\t\tvisibleFields.push( {\n\t\t\t\tid,\n\t\t\t\tlabel,\n\t\t\t\tindex: visibleFieldIds.indexOf( id ),\n\t\t\t\tisVisible: true,\n\t\t\t\tisHidable: notHidableFieldIds.includes( id ),\n\t\t\t} );\n\t\t} );\n\t}\n\tvisibleFields.sort( ( a, b ) => a.index - b.index );\n\n\tconst hiddenFields = fields\n\t\t.filter( ( { id } ) => hiddenFieldIds.includes( id ) )\n\t\t.map( ( { id, label, enableHiding }, index ) => {\n\t\t\treturn {\n\t\t\t\tid,\n\t\t\t\tlabel,\n\t\t\t\tindex,\n\t\t\t\tisVisible: false,\n\t\t\t\tisHidable: enableHiding,\n\t\t\t};\n\t\t} );\n\n\tif ( ! visibleFields?.length && ! hiddenFields?.length ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<VStack spacing={ 6 } className=\"dataviews-field-control\">\n\t\t\t{ !! visibleFields?.length && (\n\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t{ visibleFields.map( ( field ) => (\n\t\t\t\t\t\t<FieldItem\n\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\tfields={ fields }\n\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t</ItemGroup>\n\t\t\t) }\n\t\t\t{ !! hiddenFields?.length && (\n\t\t\t\t<>\n\t\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t\t<BaseControl.VisualLabel style={ { margin: 0 } }>\n\t\t\t\t\t\t\t{ __( 'Hidden' ) }\n\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t\t{ hiddenFields.map( ( field ) => (\n\t\t\t\t\t\t\t\t<FieldItem\n\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\tfields={ fields }\n\t\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t</ItemGroup>\n\t\t\t\t\t</VStack>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nfunction SettingsSection( {\n\ttitle,\n\tdescription,\n\tchildren,\n}: {\n\ttitle: string;\n\tdescription?: string;\n\tchildren: React.ReactNode;\n} ) {\n\treturn (\n\t\t<Grid columns={ 12 } className=\"dataviews-settings-section\" gap={ 4 }>\n\t\t\t<div className=\"dataviews-settings-section__sidebar\">\n\t\t\t\t<Heading\n\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\tclassName=\"dataviews-settings-section__title\"\n\t\t\t\t>\n\t\t\t\t\t{ title }\n\t\t\t\t</Heading>\n\t\t\t\t{ description && (\n\t\t\t\t\t<Text\n\t\t\t\t\t\tvariant=\"muted\"\n\t\t\t\t\t\tclassName=\"dataviews-settings-section__description\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ description }\n\t\t\t\t\t</Text>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t<Grid\n\t\t\t\tcolumns={ 8 }\n\t\t\t\tgap={ 4 }\n\t\t\t\tclassName=\"dataviews-settings-section__content\"\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</Grid>\n\t\t</Grid>\n\t);\n}\n\nfunction DataviewsViewConfigDropdown( {\n\tdensity,\n\tsetDensity,\n}: {\n\tdensity: number;\n\tsetDensity: React.Dispatch< React.SetStateAction< number > >;\n} ) {\n\tconst { view } = useContext( DataViewsContext );\n\tconst popoverId = useInstanceId(\n\t\t_DataViewsViewConfig,\n\t\t'dataviews-view-config-dropdown'\n\t);\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ {\n\t\t\t\t...DATAVIEWS_CONFIG_POPOVER_PROPS,\n\t\t\t\tid: popoverId,\n\t\t\t} }\n\t\t\trenderToggle={ ( { onToggle, isOpen } ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ticon={ cog }\n\t\t\t\t\t\tlabel={ _x( 'View options', 'View is used as a noun' ) }\n\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\taria-expanded={ isOpen ? 'true' : 'false' }\n\t\t\t\t\t\taria-controls={ popoverId }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper paddingSize=\"medium\">\n\t\t\t\t\t<VStack className=\"dataviews-view-config\" spacing={ 6 }>\n\t\t\t\t\t\t<SettingsSection title={ __( 'Appearance' ) }>\n\t\t\t\t\t\t\t<HStack expanded className=\"is-divided-in-two\">\n\t\t\t\t\t\t\t\t<SortFieldControl />\n\t\t\t\t\t\t\t\t<SortDirectionControl />\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t{ view.type === LAYOUT_GRID && (\n\t\t\t\t\t\t\t\t<DensityPicker\n\t\t\t\t\t\t\t\t\tdensity={ density }\n\t\t\t\t\t\t\t\t\tsetDensity={ setDensity }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<ItemsPerPageControl />\n\t\t\t\t\t\t</SettingsSection>\n\t\t\t\t\t\t<SettingsSection title={ __( 'Properties' ) }>\n\t\t\t\t\t\t\t<FieldControl />\n\t\t\t\t\t\t</SettingsSection>\n\t\t\t\t\t</VStack>\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nfunction _DataViewsViewConfig( {\n\tdensity,\n\tsetDensity,\n\tdefaultLayouts = { list: {}, grid: {}, table: {} },\n}: {\n\tdensity: number;\n\tsetDensity: React.Dispatch< React.SetStateAction< number > >;\n\tdefaultLayouts?: SupportedLayouts;\n} ) {\n\treturn (\n\t\t<>\n\t\t\t<ViewTypeMenu defaultLayouts={ defaultLayouts } />\n\t\t\t<DataviewsViewConfigDropdown\n\t\t\t\tdensity={ density }\n\t\t\t\tsetDensity={ setDensity }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nconst DataViewsViewConfig = memo( _DataViewsViewConfig );\n\nexport default DataViewsViewConfig;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Internal dependencies
3
+ */
4
+ import { normalizeCombinedFields } from '../normalize-fields';
5
+ export function getVisibleFields(fields, formFields = [], combinedFields) {
6
+ const visibleFields = [...fields];
7
+ if (combinedFields) {
8
+ visibleFields.push(...normalizeCombinedFields(combinedFields, fields));
9
+ }
10
+ return formFields.map(fieldId => visibleFields.find(({
11
+ id
12
+ }) => id === fieldId)).filter(field => !!field);
13
+ }
14
+ //# sourceMappingURL=get-visible-fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["normalizeCombinedFields","getVisibleFields","fields","formFields","combinedFields","visibleFields","push","map","fieldId","find","id","filter","field"],"sources":["@wordpress/dataviews/src/dataforms-layouts/get-visible-fields.ts"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { normalizeCombinedFields } from '../normalize-fields';\nimport type {\n\tField,\n\tCombinedFormField,\n\tNormalizedCombinedFormField,\n} from '../types';\n\nexport function getVisibleFields< Item >(\n\tfields: Field< Item >[],\n\tformFields: string[] = [],\n\tcombinedFields?: CombinedFormField< Item >[]\n): Field< Item >[] {\n\tconst visibleFields: Array<\n\t\tField< Item > | NormalizedCombinedFormField< Item >\n\t> = [ ...fields ];\n\tif ( combinedFields ) {\n\t\tvisibleFields.push(\n\t\t\t...normalizeCombinedFields( combinedFields, fields )\n\t\t);\n\t}\n\treturn formFields\n\t\t.map( ( fieldId ) =>\n\t\t\tvisibleFields.find( ( { id } ) => id === fieldId )\n\t\t)\n\t\t.filter( ( field ): field is Field< Item > => !! field );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,uBAAuB,QAAQ,qBAAqB;AAO7D,OAAO,SAASC,gBAAgBA,CAC/BC,MAAuB,EACvBC,UAAoB,GAAG,EAAE,EACzBC,cAA4C,EAC1B;EAClB,MAAMC,aAEL,GAAG,CAAE,GAAGH,MAAM,CAAE;EACjB,IAAKE,cAAc,EAAG;IACrBC,aAAa,CAACC,IAAI,CACjB,GAAGN,uBAAuB,CAAEI,cAAc,EAAEF,MAAO,CACpD,CAAC;EACF;EACA,OAAOC,UAAU,CACfI,GAAG,CAAIC,OAAO,IACdH,aAAa,CAACI,IAAI,CAAE,CAAE;IAAEC;EAAG,CAAC,KAAMA,EAAE,KAAKF,OAAQ,CAClD,CAAC,CACAG,MAAM,CAAIC,KAAK,IAA8B,CAAC,CAAEA,KAAM,CAAC;AAC1D","ignoreList":[]}
@@ -10,6 +10,7 @@ import { closeSmall } from '@wordpress/icons';
10
10
  * Internal dependencies
11
11
  */
12
12
  import { normalizeFields } from '../../normalize-fields';
13
+ import { getVisibleFields } from '../get-visible-fields';
13
14
  import { jsx as _jsx } from "react/jsx-runtime";
14
15
  import { jsxs as _jsxs } from "react/jsx-runtime";
15
16
  import { Fragment as _Fragment } from "react/jsx-runtime";
@@ -26,14 +27,11 @@ function DropdownHeader({
26
27
  level: 2,
27
28
  size: 13,
28
29
  children: title
29
- }), /*#__PURE__*/_jsx(Spacer, {}), onClose && /*#__PURE__*/_jsx(Button
30
- // TODO: Switch to `true` (40px size) if possible
31
- , {
32
- __next40pxDefaultSize: false,
33
- className: "dataforms-layouts-panel__dropdown-header-action",
30
+ }), /*#__PURE__*/_jsx(Spacer, {}), onClose && /*#__PURE__*/_jsx(Button, {
34
31
  label: __('Close'),
35
32
  icon: closeSmall,
36
- onClick: onClose
33
+ onClick: onClose,
34
+ size: "small"
37
35
  })]
38
36
  })
39
37
  });
@@ -110,12 +108,7 @@ export default function FormPanel({
110
108
  form,
111
109
  onChange
112
110
  }) {
113
- const visibleFields = useMemo(() => {
114
- var _form$fields;
115
- return normalizeFields(((_form$fields = form.fields) !== null && _form$fields !== void 0 ? _form$fields : []).map(fieldId => fields.find(({
116
- id
117
- }) => id === fieldId)).filter(field => !!field));
118
- }, [fields, form.fields]);
111
+ const visibleFields = useMemo(() => normalizeFields(getVisibleFields(fields, form.fields, form.combinedFields)), [fields, form.fields, form.combinedFields]);
119
112
  return /*#__PURE__*/_jsx(VStack, {
120
113
  spacing: 2,
121
114
  children: visibleFields.map(field => {
@@ -1 +1 @@
1
- {"version":3,"names":["__experimentalVStack","VStack","__experimentalHStack","HStack","__experimentalHeading","Heading","__experimentalSpacer","Spacer","Dropdown","Button","useState","useMemo","sprintf","__","closeSmall","normalizeFields","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DropdownHeader","title","onClose","className","spacing","children","alignment","level","size","__next40pxDefaultSize","label","icon","onClick","FormField","data","field","onChange","popoverAnchor","setPopoverAnchor","popoverProps","anchor","placement","offset","shift","ref","contentClassName","focusOnMount","toggleProps","variant","tooltipPosition","renderToggle","isOpen","onToggle","render","item","renderContent","Edit","hideLabelFromVision","id","FormPanel","fields","form","visibleFields","_form$fields","map","fieldId","find","filter"],"sources":["@wordpress/dataviews/src/dataforms-layouts/panel/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalSpacer as Spacer,\n\tDropdown,\n\tButton,\n} from '@wordpress/components';\nimport { useState, useMemo } from '@wordpress/element';\nimport { sprintf, __ } from '@wordpress/i18n';\nimport { closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { normalizeFields } from '../../normalize-fields';\nimport type { DataFormProps, NormalizedField, Field } from '../../types';\n\ninterface FormFieldProps< Item > {\n\tdata: Item;\n\tfield: NormalizedField< Item >;\n\tonChange: ( value: any ) => void;\n}\n\nfunction DropdownHeader( {\n\ttitle,\n\tonClose,\n}: {\n\ttitle: string;\n\tonClose: () => void;\n} ) {\n\treturn (\n\t\t<VStack\n\t\t\tclassName=\"dataforms-layouts-panel__dropdown-header\"\n\t\t\tspacing={ 4 }\n\t\t>\n\t\t\t<HStack alignment=\"center\">\n\t\t\t\t<Heading level={ 2 } size={ 13 }>\n\t\t\t\t\t{ title }\n\t\t\t\t</Heading>\n\t\t\t\t<Spacer />\n\t\t\t\t{ onClose && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t\t__next40pxDefaultSize={ false }\n\t\t\t\t\t\tclassName=\"dataforms-layouts-panel__dropdown-header-action\"\n\t\t\t\t\t\tlabel={ __( 'Close' ) }\n\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n\nfunction FormField< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n}: FormFieldProps< Item > ) {\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState< HTMLElement | null >(\n\t\tnull\n\t);\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t// Anchor the popover to the middle of the entire row so that it doesn't\n\t\t\t// move around when the label changes.\n\t\t\tanchor: popoverAnchor,\n\t\t\tplacement: 'left-start',\n\t\t\toffset: 36,\n\t\t\tshift: true,\n\t\t} ),\n\t\t[ popoverAnchor ]\n\t);\n\n\treturn (\n\t\t<HStack\n\t\t\tref={ setPopoverAnchor }\n\t\t\tclassName=\"dataforms-layouts-panel__field\"\n\t\t>\n\t\t\t<div className=\"dataforms-layouts-panel__field-label\">\n\t\t\t\t{ field.label }\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<Dropdown\n\t\t\t\t\tcontentClassName=\"dataforms-layouts-panel__field-dropdown\"\n\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\tfocusOnMount\n\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\tsize: 'compact',\n\t\t\t\t\t\tvariant: 'tertiary',\n\t\t\t\t\t\ttooltipPosition: 'middle left',\n\t\t\t\t\t} }\n\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"dataforms-layouts-panel__field-control\"\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Field name.\n\t\t\t\t\t\t\t\t__( 'Edit %s' ),\n\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<field.render item={ data } />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<DropdownHeader\n\t\t\t\t\t\t\t\ttitle={ field.label }\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<field.Edit\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\thideLabelFromVision\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/>\n\t\t\t</div>\n\t\t</HStack>\n\t);\n}\n\nexport default function FormPanel< Item >( {\n\tdata,\n\tfields,\n\tform,\n\tonChange,\n}: DataFormProps< Item > ) {\n\tconst visibleFields = useMemo(\n\t\t() =>\n\t\t\tnormalizeFields(\n\t\t\t\t( form.fields ?? [] )\n\t\t\t\t\t.map( ( fieldId ) =>\n\t\t\t\t\t\tfields.find( ( { id } ) => id === fieldId )\n\t\t\t\t\t)\n\t\t\t\t\t.filter( ( field ): field is Field< Item > => !! field )\n\t\t\t),\n\t\t[ fields, form.fields ]\n\t);\n\n\treturn (\n\t\t<VStack spacing={ 2 }>\n\t\t\t{ visibleFields.map( ( field ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<FormField\n\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</VStack>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__experimentalVStack","VStack","__experimentalHStack","HStack","__experimentalHeading","Heading","__experimentalSpacer","Spacer","Dropdown","Button","useState","useMemo","sprintf","__","closeSmall","normalizeFields","getVisibleFields","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DropdownHeader","title","onClose","className","spacing","children","alignment","level","size","label","icon","onClick","FormField","data","field","onChange","popoverAnchor","setPopoverAnchor","popoverProps","anchor","placement","offset","shift","ref","contentClassName","focusOnMount","toggleProps","variant","tooltipPosition","renderToggle","isOpen","onToggle","render","item","renderContent","Edit","hideLabelFromVision","id","FormPanel","fields","form","visibleFields","combinedFields","map"],"sources":["@wordpress/dataviews/src/dataforms-layouts/panel/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalSpacer as Spacer,\n\tDropdown,\n\tButton,\n} from '@wordpress/components';\nimport { useState, useMemo } from '@wordpress/element';\nimport { sprintf, __ } from '@wordpress/i18n';\nimport { closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { normalizeFields } from '../../normalize-fields';\nimport { getVisibleFields } from '../get-visible-fields';\nimport type { DataFormProps, NormalizedField } from '../../types';\n\ninterface FormFieldProps< Item > {\n\tdata: Item;\n\tfield: NormalizedField< Item >;\n\tonChange: ( value: any ) => void;\n}\n\nfunction DropdownHeader( {\n\ttitle,\n\tonClose,\n}: {\n\ttitle: string;\n\tonClose: () => void;\n} ) {\n\treturn (\n\t\t<VStack\n\t\t\tclassName=\"dataforms-layouts-panel__dropdown-header\"\n\t\t\tspacing={ 4 }\n\t\t>\n\t\t\t<HStack alignment=\"center\">\n\t\t\t\t<Heading level={ 2 } size={ 13 }>\n\t\t\t\t\t{ title }\n\t\t\t\t</Heading>\n\t\t\t\t<Spacer />\n\t\t\t\t{ onClose && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tlabel={ __( 'Close' ) }\n\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n\nfunction FormField< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n}: FormFieldProps< Item > ) {\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState< HTMLElement | null >(\n\t\tnull\n\t);\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t// Anchor the popover to the middle of the entire row so that it doesn't\n\t\t\t// move around when the label changes.\n\t\t\tanchor: popoverAnchor,\n\t\t\tplacement: 'left-start',\n\t\t\toffset: 36,\n\t\t\tshift: true,\n\t\t} ),\n\t\t[ popoverAnchor ]\n\t);\n\n\treturn (\n\t\t<HStack\n\t\t\tref={ setPopoverAnchor }\n\t\t\tclassName=\"dataforms-layouts-panel__field\"\n\t\t>\n\t\t\t<div className=\"dataforms-layouts-panel__field-label\">\n\t\t\t\t{ field.label }\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<Dropdown\n\t\t\t\t\tcontentClassName=\"dataforms-layouts-panel__field-dropdown\"\n\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\tfocusOnMount\n\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\tsize: 'compact',\n\t\t\t\t\t\tvariant: 'tertiary',\n\t\t\t\t\t\ttooltipPosition: 'middle left',\n\t\t\t\t\t} }\n\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"dataforms-layouts-panel__field-control\"\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Field name.\n\t\t\t\t\t\t\t\t__( 'Edit %s' ),\n\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<field.render item={ data } />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<DropdownHeader\n\t\t\t\t\t\t\t\ttitle={ field.label }\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<field.Edit\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\thideLabelFromVision\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/>\n\t\t\t</div>\n\t\t</HStack>\n\t);\n}\n\nexport default function FormPanel< Item >( {\n\tdata,\n\tfields,\n\tform,\n\tonChange,\n}: DataFormProps< Item > ) {\n\tconst visibleFields = useMemo(\n\t\t() =>\n\t\t\tnormalizeFields(\n\t\t\t\tgetVisibleFields< Item >(\n\t\t\t\t\tfields,\n\t\t\t\t\tform.fields,\n\t\t\t\t\tform.combinedFields\n\t\t\t\t)\n\t\t\t),\n\t\t[ fields, form.fields, form.combinedFields ]\n\t);\n\n\treturn (\n\t\t<VStack spacing={ 2 }>\n\t\t\t{ visibleFields.map( ( field ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<FormField\n\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</VStack>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -8,6 +8,7 @@ import { useMemo } from '@wordpress/element';
8
8
  * Internal dependencies
9
9
  */
10
10
  import { normalizeFields } from '../../normalize-fields';
11
+ import { getVisibleFields } from '../get-visible-fields';
11
12
  import { jsx as _jsx } from "react/jsx-runtime";
12
13
  export default function FormRegular({
13
14
  data,
@@ -15,12 +16,7 @@ export default function FormRegular({
15
16
  form,
16
17
  onChange
17
18
  }) {
18
- const visibleFields = useMemo(() => {
19
- var _form$fields;
20
- return normalizeFields(((_form$fields = form.fields) !== null && _form$fields !== void 0 ? _form$fields : []).map(fieldId => fields.find(({
21
- id
22
- }) => id === fieldId)).filter(field => !!field));
23
- }, [fields, form.fields]);
19
+ const visibleFields = useMemo(() => normalizeFields(getVisibleFields(fields, form.fields, form.combinedFields)), [fields, form.fields, form.combinedFields]);
24
20
  return /*#__PURE__*/_jsx(VStack, {
25
21
  spacing: 4,
26
22
  children: visibleFields.map(field => {
@@ -1 +1 @@
1
- {"version":3,"names":["__experimentalVStack","VStack","useMemo","normalizeFields","jsx","_jsx","FormRegular","data","fields","form","onChange","visibleFields","_form$fields","map","fieldId","find","id","filter","field","spacing","children","Edit"],"sources":["@wordpress/dataviews/src/dataforms-layouts/regular/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalVStack as VStack } from '@wordpress/components';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { normalizeFields } from '../../normalize-fields';\nimport type { DataFormProps, Field } from '../../types';\n\nexport default function FormRegular< Item >( {\n\tdata,\n\tfields,\n\tform,\n\tonChange,\n}: DataFormProps< Item > ) {\n\tconst visibleFields = useMemo(\n\t\t() =>\n\t\t\tnormalizeFields(\n\t\t\t\t( form.fields ?? [] )\n\t\t\t\t\t.map( ( fieldId ) =>\n\t\t\t\t\t\tfields.find( ( { id } ) => id === fieldId )\n\t\t\t\t\t)\n\t\t\t\t\t.filter( ( field ): field is Field< Item > => !! field )\n\t\t\t),\n\t\t[ fields, form.fields ]\n\t);\n\n\treturn (\n\t\t<VStack spacing={ 4 }>\n\t\t\t{ visibleFields.map( ( field ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<field.Edit\n\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</VStack>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,oBAAoB,IAAIC,MAAM,QAAQ,uBAAuB;AACtE,SAASC,OAAO,QAAQ,oBAAoB;;AAE5C;AACA;AACA;AACA,SAASC,eAAe,QAAQ,wBAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGzD,eAAe,SAASC,WAAWA,CAAU;EAC5CC,IAAI;EACJC,MAAM;EACNC,IAAI;EACJC;AACsB,CAAC,EAAG;EAC1B,MAAMC,aAAa,GAAGT,OAAO,CAC5B;IAAA,IAAAU,YAAA;IAAA,OACCT,eAAe,CACd,EAAAS,YAAA,GAAEH,IAAI,CAACD,MAAM,cAAAI,YAAA,cAAAA,YAAA,GAAI,EAAE,EACjBC,GAAG,CAAIC,OAAO,IACdN,MAAM,CAACO,IAAI,CAAE,CAAE;MAAEC;IAAG,CAAC,KAAMA,EAAE,KAAKF,OAAQ,CAC3C,CAAC,CACAG,MAAM,CAAIC,KAAK,IAA8B,CAAC,CAAEA,KAAM,CACzD,CAAC;EAAA,GACF,CAAEV,MAAM,EAAEC,IAAI,CAACD,MAAM,CACtB,CAAC;EAED,oBACCH,IAAA,CAACJ,MAAM;IAACkB,OAAO,EAAG,CAAG;IAAAC,QAAA,EAClBT,aAAa,CAACE,GAAG,CAAIK,KAAK,IAAM;MACjC,oBACCb,IAAA,CAACa,KAAK,CAACG,IAAI;QAEVd,IAAI,EAAGA,IAAM;QACbW,KAAK,EAAGA,KAAO;QACfR,QAAQ,EAAGA;MAAU,GAHfQ,KAAK,CAACF,EAIZ,CAAC;IAEJ,CAAE;EAAC,CACI,CAAC;AAEX","ignoreList":[]}
1
+ {"version":3,"names":["__experimentalVStack","VStack","useMemo","normalizeFields","getVisibleFields","jsx","_jsx","FormRegular","data","fields","form","onChange","visibleFields","combinedFields","spacing","children","map","field","Edit","id"],"sources":["@wordpress/dataviews/src/dataforms-layouts/regular/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalVStack as VStack } from '@wordpress/components';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { normalizeFields } from '../../normalize-fields';\nimport { getVisibleFields } from '../get-visible-fields';\nimport type { DataFormProps } from '../../types';\n\nexport default function FormRegular< Item >( {\n\tdata,\n\tfields,\n\tform,\n\tonChange,\n}: DataFormProps< Item > ) {\n\tconst visibleFields = useMemo(\n\t\t() =>\n\t\t\tnormalizeFields(\n\t\t\t\tgetVisibleFields< Item >(\n\t\t\t\t\tfields,\n\t\t\t\t\tform.fields,\n\t\t\t\t\tform.combinedFields\n\t\t\t\t)\n\t\t\t),\n\t\t[ fields, form.fields, form.combinedFields ]\n\t);\n\n\treturn (\n\t\t<VStack spacing={ 4 }>\n\t\t\t{ visibleFields.map( ( field ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<field.Edit\n\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</VStack>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,oBAAoB,IAAIC,MAAM,QAAQ,uBAAuB;AACtE,SAASC,OAAO,QAAQ,oBAAoB;;AAE5C;AACA;AACA;AACA,SAASC,eAAe,QAAQ,wBAAwB;AACxD,SAASC,gBAAgB,QAAQ,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGzD,eAAe,SAASC,WAAWA,CAAU;EAC5CC,IAAI;EACJC,MAAM;EACNC,IAAI;EACJC;AACsB,CAAC,EAAG;EAC1B,MAAMC,aAAa,GAAGV,OAAO,CAC5B,MACCC,eAAe,CACdC,gBAAgB,CACfK,MAAM,EACNC,IAAI,CAACD,MAAM,EACXC,IAAI,CAACG,cACN,CACD,CAAC,EACF,CAAEJ,MAAM,EAAEC,IAAI,CAACD,MAAM,EAAEC,IAAI,CAACG,cAAc,CAC3C,CAAC;EAED,oBACCP,IAAA,CAACL,MAAM;IAACa,OAAO,EAAG,CAAG;IAAAC,QAAA,EAClBH,aAAa,CAACI,GAAG,CAAIC,KAAK,IAAM;MACjC,oBACCX,IAAA,CAACW,KAAK,CAACC,IAAI;QAEVV,IAAI,EAAGA,IAAM;QACbS,KAAK,EAAGA,KAAO;QACfN,QAAQ,EAAGA;MAAU,GAHfM,KAAK,CAACE,EAIZ,CAAC;IAEJ,CAAE;EAAC,CACI,CAAC;AAEX","ignoreList":[]}