@wordpress/dataviews 4.10.0 → 4.11.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.
- package/CHANGELOG.md +19 -9
- package/LICENSE.md +1 -1
- package/README.md +309 -175
- package/build/components/dataviews/index.js +12 -1
- package/build/components/dataviews/index.js.map +1 -1
- package/build/components/dataviews-context/index.js +2 -1
- package/build/components/dataviews-context/index.js.map +1 -1
- package/build/components/dataviews-filters/add-filter.js +35 -30
- package/build/components/dataviews-filters/add-filter.js.map +1 -1
- package/build/components/dataviews-filters/index.js +3 -1
- package/build/components/dataviews-filters/index.js.map +1 -1
- package/build/components/dataviews-item-actions/index.js +24 -19
- package/build/components/dataviews-item-actions/index.js.map +1 -1
- package/build/components/dataviews-layout/index.js +2 -0
- package/build/components/dataviews-layout/index.js.map +1 -1
- package/build/components/dataviews-view-config/index.js +48 -43
- package/build/components/dataviews-view-config/index.js.map +1 -1
- package/build/dataviews-layouts/grid/index.js +12 -5
- package/build/dataviews-layouts/grid/index.js.map +1 -1
- package/build/dataviews-layouts/grid/preview-size-picker.js +22 -25
- package/build/dataviews-layouts/grid/preview-size-picker.js.map +1 -1
- package/build/dataviews-layouts/list/index.js +27 -20
- package/build/dataviews-layouts/list/index.js.map +1 -1
- package/build/dataviews-layouts/table/column-header-menu.js +102 -99
- package/build/dataviews-layouts/table/column-header-menu.js.map +1 -1
- package/build/dataviews-layouts/table/column-primary.js +7 -3
- package/build/dataviews-layouts/table/column-primary.js.map +1 -1
- package/build/dataviews-layouts/table/index.js +4 -0
- package/build/dataviews-layouts/table/index.js.map +1 -1
- package/build/types.js.map +1 -1
- package/build-module/components/dataviews/index.js +12 -1
- package/build-module/components/dataviews/index.js.map +1 -1
- package/build-module/components/dataviews-context/index.js +2 -1
- package/build-module/components/dataviews-context/index.js.map +1 -1
- package/build-module/components/dataviews-filters/add-filter.js +36 -31
- package/build-module/components/dataviews-filters/add-filter.js.map +1 -1
- package/build-module/components/dataviews-filters/index.js +3 -1
- package/build-module/components/dataviews-filters/index.js.map +1 -1
- package/build-module/components/dataviews-item-actions/index.js +24 -19
- package/build-module/components/dataviews-item-actions/index.js.map +1 -1
- package/build-module/components/dataviews-layout/index.js +2 -0
- package/build-module/components/dataviews-layout/index.js.map +1 -1
- package/build-module/components/dataviews-view-config/index.js +49 -44
- package/build-module/components/dataviews-view-config/index.js.map +1 -1
- package/build-module/dataviews-layouts/grid/index.js +14 -7
- package/build-module/dataviews-layouts/grid/index.js.map +1 -1
- package/build-module/dataviews-layouts/grid/preview-size-picker.js +22 -25
- package/build-module/dataviews-layouts/grid/preview-size-picker.js.map +1 -1
- package/build-module/dataviews-layouts/list/index.js +27 -20
- package/build-module/dataviews-layouts/list/index.js.map +1 -1
- package/build-module/dataviews-layouts/table/column-header-menu.js +102 -99
- package/build-module/dataviews-layouts/table/column-header-menu.js.map +1 -1
- package/build-module/dataviews-layouts/table/column-primary.js +7 -3
- package/build-module/dataviews-layouts/table/column-primary.js.map +1 -1
- package/build-module/dataviews-layouts/table/index.js +4 -0
- package/build-module/dataviews-layouts/table/index.js.map +1 -1
- package/build-module/types.js.map +1 -1
- package/build-style/style-rtl.css +45 -55
- package/build-style/style.css +45 -55
- package/build-types/components/dataviews/index.d.ts +2 -1
- package/build-types/components/dataviews/index.d.ts.map +1 -1
- package/build-types/components/dataviews-context/index.d.ts +2 -0
- package/build-types/components/dataviews-context/index.d.ts.map +1 -1
- package/build-types/components/dataviews-filters/add-filter.d.ts +3 -2
- package/build-types/components/dataviews-filters/add-filter.d.ts.map +1 -1
- package/build-types/components/dataviews-item-actions/index.d.ts.map +1 -1
- package/build-types/components/dataviews-layout/index.d.ts.map +1 -1
- package/build-types/components/dataviews-view-config/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/grid/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/grid/preview-size-picker.d.ts.map +1 -1
- package/build-types/dataviews-layouts/list/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/table/column-header-menu.d.ts.map +1 -1
- package/build-types/dataviews-layouts/table/column-primary.d.ts +2 -1
- package/build-types/dataviews-layouts/table/column-primary.d.ts.map +1 -1
- package/build-types/dataviews-layouts/table/index.d.ts +1 -1
- package/build-types/dataviews-layouts/table/index.d.ts.map +1 -1
- package/build-types/test/dataform.d.ts +2 -0
- package/build-types/test/dataform.d.ts.map +1 -0
- package/build-types/test/dataviews.d.ts +2 -0
- package/build-types/test/dataviews.d.ts.map +1 -0
- package/build-types/test/normalize-fields.d.ts +2 -0
- package/build-types/test/normalize-fields.d.ts.map +1 -0
- package/build-types/test/validation.d.ts +2 -0
- package/build-types/test/validation.d.ts.map +1 -0
- package/build-types/types.d.ts +5 -0
- package/build-types/types.d.ts.map +1 -1
- package/build-wp/index.js +1209 -999
- package/package.json +13 -12
- package/src/components/dataviews/index.tsx +15 -1
- package/src/components/dataviews/style.scss +0 -1
- package/src/components/dataviews-context/index.ts +3 -0
- package/src/components/dataviews-filters/add-filter.tsx +43 -39
- package/src/components/dataviews-filters/index.tsx +1 -1
- package/src/components/dataviews-footer/style.scss +0 -3
- package/src/components/dataviews-item-actions/index.tsx +25 -27
- package/src/components/dataviews-layout/index.tsx +2 -0
- package/src/components/dataviews-view-config/index.tsx +52 -43
- package/src/components/dataviews-view-config/style.scss +0 -1
- package/src/dataviews-layouts/grid/index.tsx +17 -5
- package/src/dataviews-layouts/grid/preview-size-picker.tsx +25 -30
- package/src/dataviews-layouts/grid/style.scss +24 -33
- package/src/dataviews-layouts/list/index.tsx +35 -27
- package/src/dataviews-layouts/list/style.scss +5 -5
- package/src/dataviews-layouts/table/column-header-menu.tsx +152 -148
- package/src/dataviews-layouts/table/column-primary.tsx +7 -0
- package/src/dataviews-layouts/table/index.tsx +10 -0
- package/src/dataviews-layouts/table/style.scss +0 -1
- package/src/test/dataform.tsx +348 -0
- package/src/test/dataviews.tsx +380 -0
- package/src/types.ts +6 -0
- package/tsconfig.json +14 -4
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/form-field-visibility/index.js +0 -32
- package/build/components/form-field-visibility/index.js.map +0 -1
- package/build-module/components/form-field-visibility/index.js +0 -26
- package/build-module/components/form-field-visibility/index.js.map +0 -1
- package/build-types/components/form-field-visibility/index.d.ts +0 -11
- package/build-types/components/form-field-visibility/index.d.ts.map +0 -1
- package/src/components/form-field-visibility/index.tsx +0 -32
|
@@ -53,47 +53,50 @@ function ViewTypeMenu({
|
|
|
53
53
|
return null;
|
|
54
54
|
}
|
|
55
55
|
const activeView = _dataviewsLayouts.VIEW_LAYOUTS.find(v => view.type === v.type);
|
|
56
|
-
return /*#__PURE__*/(0, _jsxRuntime.
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
56
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Menu, {
|
|
57
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.TriggerButton, {
|
|
58
|
+
render: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
59
|
+
size: "compact",
|
|
60
|
+
icon: activeView?.icon,
|
|
61
|
+
label: (0, _i18n.__)('Layout')
|
|
62
|
+
})
|
|
63
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.Popover, {
|
|
64
|
+
children: availableLayouts.map(layout => {
|
|
65
|
+
const config = _dataviewsLayouts.VIEW_LAYOUTS.find(v => v.type === layout);
|
|
66
|
+
if (!config) {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.RadioItem, {
|
|
70
|
+
value: layout,
|
|
71
|
+
name: "view-actions-available-view",
|
|
72
|
+
checked: layout === view.type,
|
|
73
|
+
hideOnClick: true,
|
|
74
|
+
onChange: e => {
|
|
75
|
+
switch (e.target.value) {
|
|
76
|
+
case 'list':
|
|
77
|
+
case 'grid':
|
|
78
|
+
case 'table':
|
|
79
|
+
const viewWithoutLayout = {
|
|
80
|
+
...view
|
|
81
|
+
};
|
|
82
|
+
if ('layout' in viewWithoutLayout) {
|
|
83
|
+
delete viewWithoutLayout.layout;
|
|
84
|
+
}
|
|
85
|
+
// @ts-expect-error
|
|
86
|
+
return onChangeView({
|
|
87
|
+
...viewWithoutLayout,
|
|
88
|
+
type: e.target.value,
|
|
89
|
+
...defaultLayouts[e.target.value]
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
globalThis.SCRIPT_DEBUG === true ? (0, _warning.default)('Invalid dataview') : void 0;
|
|
93
|
+
},
|
|
94
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.ItemLabel, {
|
|
95
|
+
children: config.label
|
|
96
|
+
})
|
|
97
|
+
}, layout);
|
|
98
|
+
})
|
|
99
|
+
})]
|
|
97
100
|
});
|
|
98
101
|
}
|
|
99
102
|
function SortFieldControl() {
|
|
@@ -123,7 +126,8 @@ function SortFieldControl() {
|
|
|
123
126
|
sort: {
|
|
124
127
|
direction: view?.sort?.direction || 'desc',
|
|
125
128
|
field: value
|
|
126
|
-
}
|
|
129
|
+
},
|
|
130
|
+
showLevels: false
|
|
127
131
|
});
|
|
128
132
|
}
|
|
129
133
|
});
|
|
@@ -158,7 +162,8 @@ function SortDirectionControl() {
|
|
|
158
162
|
field: view.sort?.field ||
|
|
159
163
|
// If there is no field assigned as the sorting field assign the first sortable field.
|
|
160
164
|
fields.find(field => field.enableSorting !== false)?.id || ''
|
|
161
|
-
}
|
|
165
|
+
},
|
|
166
|
+
showLevels: false
|
|
162
167
|
});
|
|
163
168
|
return;
|
|
164
169
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_i18n","_element","_icons","_warning","_interopRequireDefault","_compose","_constants","_dataviewsLayouts","_dataviewsContext","_lockUnlock","_jsxRuntime","Menu","unlock","componentsPrivateApis","DATAVIEWS_CONFIG_POPOVER_PROPS","className","placement","offset","ViewTypeMenu","defaultLayouts","list","grid","table","view","onChangeView","useContext","DataViewsContext","availableLayouts","Object","keys","length","activeView","VIEW_LAYOUTS","find","v","type","jsx","trigger","Button","size","icon","label","__","children","map","layout","config","RadioItem","value","name","checked","hideOnClick","onChange","e","target","viewWithoutLayout","globalThis","SCRIPT_DEBUG","warning","ItemLabel","SortFieldControl","fields","orderOptions","useMemo","sortableFields","filter","field","enableSorting","id","SelectControl","__nextHasNoMarginBottom","__next40pxDefaultSize","sort","options","direction","SortDirectionControl","__experimentalToggleGroupControl","isBlock","newDirection","SORTING_DIRECTIONS","__experimentalToggleGroupControlOptionIcon","sortIcons","sortLabels","PAGE_SIZE_VALUES","ItemsPerPageControl","perPage","disabled","newItemsPerPage","newItemsPerPageNumber","undefined","parseInt","page","__experimentalToggleGroupControlOption","toString","FieldItem","isVisible","isFirst","isLast","canMove","onToggleVisibility","onMoveUp","onMoveDown","focusVisibilityField","setTimeout","element","document","querySelector","HTMLElement","focus","__experimentalItem","jsxs","__experimentalHStack","expanded","justify","enableHiding","Icon","lock","Fragment","accessibleWhenDisabled","onClick","chevronUp","sprintf","chevronDown","unseen","seen","_x","RegularFieldItem","index","_view$fields","visibleFieldIds","includes","fieldId","_visibleFieldIds$slic","slice","_visibleFieldIds$slic2","isDefined","item","FieldControl","_view$fields2","togglableFields","titleField","mediaField","descriptionField","Boolean","hiddenFields","f","visibleFields","lockedFields","isVisibleFlag","visibleLockedFields","_view$isVisibleFlag","hiddenLockedFields","_view$isVisibleFlag2","__experimentalVStack","spacing","__experimentalItemGroup","isBordered","isSeparated","BaseControl","VisualLabel","style","margin","SettingsSection","title","description","__experimentalGrid","columns","gap","__experimentalHeading","level","__experimentalText","variant","DataviewsViewConfigDropdown","popoverId","useInstanceId","_DataViewsViewConfig","activeLayout","Dropdown","expandOnMobile","popoverProps","renderToggle","onToggle","isOpen","cog","renderContent","__experimentalDropdownContentWrapper","paddingSize","viewConfigOptions","DataViewsViewConfig","memo","_default","exports","default"],"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\tIcon,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { memo, useContext, useMemo } from '@wordpress/element';\nimport {\n\tchevronDown,\n\tchevronUp,\n\tcog,\n\tseen,\n\tunseen,\n\tlock,\n} from '@wordpress/icons';\nimport warning from '@wordpress/warning';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { SORTING_DIRECTIONS, sortIcons, sortLabels } from '../../constants';\nimport { VIEW_LAYOUTS } from '../../dataviews-layouts';\nimport type { NormalizedField, SupportedLayouts, View } from '../../types';\nimport DataViewsContext from '../dataviews-context';\nimport { unlock } from '../../lock-unlock';\n\nconst { Menu } = unlock( componentsPrivateApis );\n\ninterface ViewTypeMenuProps {\n\tdefaultLayouts?: SupportedLayouts;\n}\n\nconst DATAVIEWS_CONFIG_POPOVER_PROPS = {\n\tclassName: 'dataviews-config__popover',\n\tplacement: 'bottom-end',\n\toffset: 9,\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<Menu\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<Menu.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\tconst viewWithoutLayout = { ...view };\n\t\t\t\t\t\t\t\t\tif ( 'layout' in viewWithoutLayout ) {\n\t\t\t\t\t\t\t\t\t\tdelete viewWithoutLayout.layout;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\t\t\t\t\treturn onChangeView( {\n\t\t\t\t\t\t\t\t\t\t...viewWithoutLayout,\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<Menu.ItemLabel>{ config.label }</Menu.ItemLabel>\n\t\t\t\t\t</Menu.RadioItem>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</Menu>\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\nfunction FieldItem( {\n\tfield,\n\tisVisible,\n\tisFirst,\n\tisLast,\n\tcanMove = true,\n\tonToggleVisibility,\n\tonMoveUp,\n\tonMoveDown,\n}: {\n\tfield: NormalizedField< any >;\n\tisVisible: boolean;\n\tisFirst?: boolean;\n\tisLast?: boolean;\n\tcanMove?: boolean;\n\tonToggleVisibility?: () => void;\n\tonMoveUp?: () => void;\n\tonMoveDown?: () => void;\n} ) {\n\tconst focusVisibilityField = () => {\n\t\t// Focus the visibility button to avoid focus loss.\n\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// eslint-disable-next-line @wordpress/react-no-unsafe-timeout\n\t\tsetTimeout( () => {\n\t\t\tconst element = document.querySelector(\n\t\t\t\t`.dataviews-field-control__field-${ field.id } .dataviews-field-control__field-visibility-button`\n\t\t\t);\n\t\t\tif ( element instanceof HTMLElement ) {\n\t\t\t\telement.focus();\n\t\t\t}\n\t\t}, 50 );\n\t};\n\n\treturn (\n\t\t<Item>\n\t\t\t<HStack\n\t\t\t\texpanded\n\t\t\t\tclassName={ `dataviews-field-control__field dataviews-field-control__field-${ field.id }` }\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t>\n\t\t\t\t<span className=\"dataviews-field-control__icon\">\n\t\t\t\t\t{ ! canMove && ! field.enableHiding && (\n\t\t\t\t\t\t<Icon icon={ lock } />\n\t\t\t\t\t) }\n\t\t\t\t</span>\n\t\t\t\t<span className=\"dataviews-field-control__label\">\n\t\t\t\t\t{ field.label }\n\t\t\t\t</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{ 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={ isFirst || ! canMove }\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={ onMoveUp }\n\t\t\t\t\t\t\t\ticon={ chevronUp }\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tisFirst || ! canMove\n\t\t\t\t\t\t\t\t\t\t? __( \"This field can't be moved up\" )\n\t\t\t\t\t\t\t\t\t\t: sprintf(\n\t\t\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\t\t__( 'Move %s up' ),\n\t\t\t\t\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tdisabled={ isLast || ! canMove }\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={ onMoveDown }\n\t\t\t\t\t\t\t\ticon={ chevronDown }\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tisLast || ! canMove\n\t\t\t\t\t\t\t\t\t\t? __( \"This field can't be moved down\" )\n\t\t\t\t\t\t\t\t\t\t: sprintf(\n\t\t\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\t\t__( 'Move %s down' ),\n\t\t\t\t\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t{ onToggleVisibility && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"dataviews-field-control__field-visibility-button\"\n\t\t\t\t\t\t\tdisabled={ ! field.enableHiding }\n\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonToggleVisibility();\n\t\t\t\t\t\t\t\tfocusVisibilityField();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\ticon={ isVisible ? unseen : seen }\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tisVisible\n\t\t\t\t\t\t\t\t\t? sprintf(\n\t\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\t_x( 'Hide %s', 'field' ),\n\t\t\t\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: sprintf(\n\t\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\t_x( 'Show %s', 'field' ),\n\t\t\t\t\t\t\t\t\t\t\tfield.label\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/>\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 RegularFieldItem( {\n\tindex,\n\tfield,\n\tview,\n\tonChangeView,\n}: {\n\tindex?: number;\n\tfield: NormalizedField< any >;\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n} ) {\n\tconst visibleFieldIds = view.fields ?? [];\n\tconst isVisible =\n\t\tindex !== undefined && visibleFieldIds.includes( field.id );\n\n\treturn (\n\t\t<FieldItem\n\t\t\tfield={ field }\n\t\t\tisVisible={ isVisible }\n\t\t\tisFirst={ index !== undefined && index < 1 }\n\t\t\tisLast={\n\t\t\t\tindex !== undefined && index === visibleFieldIds.length - 1\n\t\t\t}\n\t\t\tonToggleVisibility={ () => {\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tfields: isVisible\n\t\t\t\t\t\t? visibleFieldIds.filter(\n\t\t\t\t\t\t\t\t( fieldId ) => fieldId !== field.id\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: [ ...visibleFieldIds, field.id ],\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tonMoveUp={\n\t\t\t\tindex !== undefined\n\t\t\t\t\t? () => {\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: [\n\t\t\t\t\t\t\t\t\t...( visibleFieldIds.slice(\n\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\tindex - 1\n\t\t\t\t\t\t\t\t\t) ?? [] ),\n\t\t\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t\t\tvisibleFieldIds[ index - 1 ],\n\t\t\t\t\t\t\t\t\t...visibleFieldIds.slice( index + 1 ),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t }\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tonMoveDown={\n\t\t\t\tindex !== undefined\n\t\t\t\t\t? () => {\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: [\n\t\t\t\t\t\t\t\t\t...( visibleFieldIds.slice( 0, index ) ??\n\t\t\t\t\t\t\t\t\t\t[] ),\n\t\t\t\t\t\t\t\t\tvisibleFieldIds[ index + 1 ],\n\t\t\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t\t\t...visibleFieldIds.slice( index + 2 ),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t }\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t/>\n\t);\n}\n\nfunction isDefined< T >( item: T | undefined ): item is T {\n\treturn !! item;\n}\n\nfunction FieldControl() {\n\tconst { view, fields, onChangeView } = useContext( DataViewsContext );\n\n\tconst togglableFields = [\n\t\tview?.titleField,\n\t\tview?.mediaField,\n\t\tview?.descriptionField,\n\t].filter( Boolean );\n\tconst visibleFieldIds = view.fields ?? [];\n\tconst hiddenFields = fields.filter(\n\t\t( f ) =>\n\t\t\t! visibleFieldIds.includes( f.id ) &&\n\t\t\t! togglableFields.includes( f.id )\n\t);\n\tconst visibleFields = visibleFieldIds\n\t\t.map( ( fieldId ) => fields.find( ( f ) => f.id === fieldId ) )\n\t\t.filter( isDefined );\n\n\tif ( ! visibleFields?.length && ! hiddenFields?.length ) {\n\t\treturn null;\n\t}\n\tconst titleField = fields.find( ( f ) => f.id === view.titleField );\n\tconst mediaField = fields.find( ( f ) => f.id === view.mediaField );\n\tconst descriptionField = fields.find(\n\t\t( f ) => f.id === view.descriptionField\n\t);\n\tconst lockedFields = [\n\t\t{\n\t\t\tfield: titleField,\n\t\t\tisVisibleFlag: 'showTitle',\n\t\t},\n\t\t{\n\t\t\tfield: mediaField,\n\t\t\tisVisibleFlag: 'showMedia',\n\t\t},\n\t\t{\n\t\t\tfield: descriptionField,\n\t\t\tisVisibleFlag: 'showDescription',\n\t\t},\n\t].filter( ( { field } ) => isDefined( field ) );\n\tconst visibleLockedFields = lockedFields.filter(\n\t\t( { field, isVisibleFlag } ) =>\n\t\t\t// @ts-expect-error\n\t\t\tisDefined( field ) && ( view[ isVisibleFlag ] ?? true )\n\t) as Array< { field: NormalizedField< any >; isVisibleFlag: string } >;\n\tconst hiddenLockedFields = lockedFields.filter(\n\t\t( { field, isVisibleFlag } ) =>\n\t\t\t// @ts-expect-error\n\t\t\tisDefined( field ) && ! ( view[ isVisibleFlag ] ?? true )\n\t) as Array< { field: NormalizedField< any >; isVisibleFlag: string } >;\n\n\treturn (\n\t\t<VStack className=\"dataviews-field-control\" spacing={ 6 }>\n\t\t\t<VStack className=\"dataviews-view-config__properties\" spacing={ 0 }>\n\t\t\t\t{ ( visibleLockedFields.length > 0 ||\n\t\t\t\t\t!! visibleFields?.length ) && (\n\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t{ visibleLockedFields.map(\n\t\t\t\t\t\t\t( { field, isVisibleFlag } ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<FieldItem\n\t\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\t\tisVisible\n\t\t\t\t\t\t\t\t\t\tonToggleVisibility={ () => {\n\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\t[ isVisibleFlag ]: false,\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\tcanMove={ false }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t{ visibleFields.map( ( field, index ) => (\n\t\t\t\t\t\t\t<RegularFieldItem\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t\tindex={ index }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</ItemGroup>\n\t\t\t\t) }\n\t\t\t</VStack>\n\n\t\t\t{ ( !! hiddenFields?.length || !! hiddenLockedFields.length ) && (\n\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t<BaseControl.VisualLabel style={ { margin: 0 } }>\n\t\t\t\t\t\t{ __( 'Hidden' ) }\n\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t<VStack\n\t\t\t\t\t\tclassName=\"dataviews-view-config__properties\"\n\t\t\t\t\t\tspacing={ 0 }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t\t{ hiddenLockedFields.length > 0 &&\n\t\t\t\t\t\t\t\thiddenLockedFields.map(\n\t\t\t\t\t\t\t\t\t( { field, isVisibleFlag } ) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<FieldItem\n\t\t\t\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\t\t\t\tisVisible={ false }\n\t\t\t\t\t\t\t\t\t\t\t\tonToggleVisibility={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[ isVisibleFlag ]: true,\n\t\t\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\tcanMove={ false }\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{ hiddenFields.map( ( field ) => (\n\t\t\t\t\t\t\t\t<RegularFieldItem\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\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</VStack>\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\tconst { view } = useContext( DataViewsContext );\n\tconst popoverId = useInstanceId(\n\t\t_DataViewsViewConfig,\n\t\t'dataviews-view-config-dropdown'\n\t);\n\tconst activeLayout = VIEW_LAYOUTS.find(\n\t\t( layout ) => layout.type === view.type\n\t);\n\treturn (\n\t\t<Dropdown\n\t\t\texpandOnMobile\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\n\t\t\t\t\tpaddingSize=\"medium\"\n\t\t\t\t\tclassName=\"dataviews-config__popover-content-wrapper\"\n\t\t\t\t>\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{ !! activeLayout?.viewConfigOptions && (\n\t\t\t\t\t\t\t\t<activeLayout.viewConfigOptions />\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\tdefaultLayouts = { list: {}, grid: {}, table: {} },\n}: {\n\tdefaultLayouts?: SupportedLayouts;\n} ) {\n\treturn (\n\t\t<>\n\t\t\t<ViewTypeMenu defaultLayouts={ defaultLayouts } />\n\t\t\t<DataviewsViewConfigDropdown />\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":["_components","require","_i18n","_element","_icons","_warning","_interopRequireDefault","_compose","_constants","_dataviewsLayouts","_dataviewsContext","_lockUnlock","_jsxRuntime","Menu","unlock","componentsPrivateApis","DATAVIEWS_CONFIG_POPOVER_PROPS","className","placement","offset","ViewTypeMenu","defaultLayouts","list","grid","table","view","onChangeView","useContext","DataViewsContext","availableLayouts","Object","keys","length","activeView","VIEW_LAYOUTS","find","v","type","jsxs","children","jsx","TriggerButton","render","Button","size","icon","label","__","Popover","map","layout","config","RadioItem","value","name","checked","hideOnClick","onChange","e","target","viewWithoutLayout","globalThis","SCRIPT_DEBUG","warning","ItemLabel","SortFieldControl","fields","orderOptions","useMemo","sortableFields","filter","field","enableSorting","id","SelectControl","__nextHasNoMarginBottom","__next40pxDefaultSize","sort","options","direction","showLevels","SortDirectionControl","__experimentalToggleGroupControl","isBlock","newDirection","SORTING_DIRECTIONS","__experimentalToggleGroupControlOptionIcon","sortIcons","sortLabels","PAGE_SIZE_VALUES","ItemsPerPageControl","perPage","disabled","newItemsPerPage","newItemsPerPageNumber","undefined","parseInt","page","__experimentalToggleGroupControlOption","toString","FieldItem","isVisible","isFirst","isLast","canMove","onToggleVisibility","onMoveUp","onMoveDown","focusVisibilityField","setTimeout","element","document","querySelector","HTMLElement","focus","__experimentalItem","__experimentalHStack","expanded","justify","enableHiding","Icon","lock","Fragment","accessibleWhenDisabled","onClick","chevronUp","sprintf","chevronDown","unseen","seen","_x","RegularFieldItem","index","_view$fields","visibleFieldIds","includes","fieldId","_visibleFieldIds$slic","slice","_visibleFieldIds$slic2","isDefined","item","FieldControl","_view$fields2","togglableFields","titleField","mediaField","descriptionField","Boolean","hiddenFields","f","visibleFields","lockedFields","isVisibleFlag","visibleLockedFields","_view$isVisibleFlag","hiddenLockedFields","_view$isVisibleFlag2","__experimentalVStack","spacing","__experimentalItemGroup","isBordered","isSeparated","BaseControl","VisualLabel","style","margin","SettingsSection","title","description","__experimentalGrid","columns","gap","__experimentalHeading","level","__experimentalText","variant","DataviewsViewConfigDropdown","popoverId","useInstanceId","_DataViewsViewConfig","activeLayout","Dropdown","expandOnMobile","popoverProps","renderToggle","onToggle","isOpen","cog","renderContent","__experimentalDropdownContentWrapper","paddingSize","viewConfigOptions","DataViewsViewConfig","memo","_default","exports","default"],"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\tIcon,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { memo, useContext, useMemo } from '@wordpress/element';\nimport {\n\tchevronDown,\n\tchevronUp,\n\tcog,\n\tseen,\n\tunseen,\n\tlock,\n} from '@wordpress/icons';\nimport warning from '@wordpress/warning';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { SORTING_DIRECTIONS, sortIcons, sortLabels } from '../../constants';\nimport { VIEW_LAYOUTS } from '../../dataviews-layouts';\nimport type { NormalizedField, SupportedLayouts, View } from '../../types';\nimport DataViewsContext from '../dataviews-context';\nimport { unlock } from '../../lock-unlock';\n\nconst { Menu } = unlock( componentsPrivateApis );\n\ninterface ViewTypeMenuProps {\n\tdefaultLayouts?: SupportedLayouts;\n}\n\nconst DATAVIEWS_CONFIG_POPOVER_PROPS = {\n\tclassName: 'dataviews-config__popover',\n\tplacement: 'bottom-end',\n\toffset: 9,\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<Menu>\n\t\t\t<Menu.TriggerButton\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ticon={ activeView?.icon }\n\t\t\t\t\t\tlabel={ __( 'Layout' ) }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t/>\n\t\t\t<Menu.Popover>\n\t\t\t\t{ availableLayouts.map( ( layout ) => {\n\t\t\t\t\tconst config = VIEW_LAYOUTS.find(\n\t\t\t\t\t\t( v ) => v.type === layout\n\t\t\t\t\t);\n\t\t\t\t\tif ( ! config ) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Menu.RadioItem\n\t\t\t\t\t\t\tkey={ layout }\n\t\t\t\t\t\t\tvalue={ layout }\n\t\t\t\t\t\t\tname=\"view-actions-available-view\"\n\t\t\t\t\t\t\tchecked={ layout === view.type }\n\t\t\t\t\t\t\thideOnClick\n\t\t\t\t\t\t\tonChange={ (\n\t\t\t\t\t\t\t\te: ChangeEvent< HTMLInputElement >\n\t\t\t\t\t\t\t) => {\n\t\t\t\t\t\t\t\tswitch ( e.target.value ) {\n\t\t\t\t\t\t\t\t\tcase 'list':\n\t\t\t\t\t\t\t\t\tcase 'grid':\n\t\t\t\t\t\t\t\t\tcase 'table':\n\t\t\t\t\t\t\t\t\t\tconst viewWithoutLayout = { ...view };\n\t\t\t\t\t\t\t\t\t\tif ( 'layout' in viewWithoutLayout ) {\n\t\t\t\t\t\t\t\t\t\t\tdelete viewWithoutLayout.layout;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t// @ts-expect-error\n\t\t\t\t\t\t\t\t\t\treturn onChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t...viewWithoutLayout,\n\t\t\t\t\t\t\t\t\t\t\ttype: e.target.value,\n\t\t\t\t\t\t\t\t\t\t\t...defaultLayouts[ e.target.value ],\n\t\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\twarning( 'Invalid dataview' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Menu.ItemLabel>{ config.label }</Menu.ItemLabel>\n\t\t\t\t\t\t</Menu.RadioItem>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</Menu.Popover>\n\t\t</Menu>\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\tshowLevels: false,\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\tshowLevels: false,\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\nfunction FieldItem( {\n\tfield,\n\tisVisible,\n\tisFirst,\n\tisLast,\n\tcanMove = true,\n\tonToggleVisibility,\n\tonMoveUp,\n\tonMoveDown,\n}: {\n\tfield: NormalizedField< any >;\n\tisVisible: boolean;\n\tisFirst?: boolean;\n\tisLast?: boolean;\n\tcanMove?: boolean;\n\tonToggleVisibility?: () => void;\n\tonMoveUp?: () => void;\n\tonMoveDown?: () => void;\n} ) {\n\tconst focusVisibilityField = () => {\n\t\t// Focus the visibility button to avoid focus loss.\n\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// eslint-disable-next-line @wordpress/react-no-unsafe-timeout\n\t\tsetTimeout( () => {\n\t\t\tconst element = document.querySelector(\n\t\t\t\t`.dataviews-field-control__field-${ field.id } .dataviews-field-control__field-visibility-button`\n\t\t\t);\n\t\t\tif ( element instanceof HTMLElement ) {\n\t\t\t\telement.focus();\n\t\t\t}\n\t\t}, 50 );\n\t};\n\n\treturn (\n\t\t<Item>\n\t\t\t<HStack\n\t\t\t\texpanded\n\t\t\t\tclassName={ `dataviews-field-control__field dataviews-field-control__field-${ field.id }` }\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t>\n\t\t\t\t<span className=\"dataviews-field-control__icon\">\n\t\t\t\t\t{ ! canMove && ! field.enableHiding && (\n\t\t\t\t\t\t<Icon icon={ lock } />\n\t\t\t\t\t) }\n\t\t\t\t</span>\n\t\t\t\t<span className=\"dataviews-field-control__label\">\n\t\t\t\t\t{ field.label }\n\t\t\t\t</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{ 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={ isFirst || ! canMove }\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={ onMoveUp }\n\t\t\t\t\t\t\t\ticon={ chevronUp }\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tisFirst || ! canMove\n\t\t\t\t\t\t\t\t\t\t? __( \"This field can't be moved up\" )\n\t\t\t\t\t\t\t\t\t\t: sprintf(\n\t\t\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\t\t__( 'Move %s up' ),\n\t\t\t\t\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tdisabled={ isLast || ! canMove }\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={ onMoveDown }\n\t\t\t\t\t\t\t\ticon={ chevronDown }\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tisLast || ! canMove\n\t\t\t\t\t\t\t\t\t\t? __( \"This field can't be moved down\" )\n\t\t\t\t\t\t\t\t\t\t: sprintf(\n\t\t\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\t\t__( 'Move %s down' ),\n\t\t\t\t\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t{ onToggleVisibility && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"dataviews-field-control__field-visibility-button\"\n\t\t\t\t\t\t\tdisabled={ ! field.enableHiding }\n\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tonToggleVisibility();\n\t\t\t\t\t\t\t\tfocusVisibilityField();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\ticon={ isVisible ? unseen : seen }\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tisVisible\n\t\t\t\t\t\t\t\t\t? sprintf(\n\t\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\t_x( 'Hide %s', 'field' ),\n\t\t\t\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: sprintf(\n\t\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\t_x( 'Show %s', 'field' ),\n\t\t\t\t\t\t\t\t\t\t\tfield.label\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/>\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 RegularFieldItem( {\n\tindex,\n\tfield,\n\tview,\n\tonChangeView,\n}: {\n\tindex?: number;\n\tfield: NormalizedField< any >;\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n} ) {\n\tconst visibleFieldIds = view.fields ?? [];\n\tconst isVisible =\n\t\tindex !== undefined && visibleFieldIds.includes( field.id );\n\n\treturn (\n\t\t<FieldItem\n\t\t\tfield={ field }\n\t\t\tisVisible={ isVisible }\n\t\t\tisFirst={ index !== undefined && index < 1 }\n\t\t\tisLast={\n\t\t\t\tindex !== undefined && index === visibleFieldIds.length - 1\n\t\t\t}\n\t\t\tonToggleVisibility={ () => {\n\t\t\t\tonChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tfields: isVisible\n\t\t\t\t\t\t? visibleFieldIds.filter(\n\t\t\t\t\t\t\t\t( fieldId ) => fieldId !== field.id\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: [ ...visibleFieldIds, field.id ],\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tonMoveUp={\n\t\t\t\tindex !== undefined\n\t\t\t\t\t? () => {\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: [\n\t\t\t\t\t\t\t\t\t...( visibleFieldIds.slice(\n\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\tindex - 1\n\t\t\t\t\t\t\t\t\t) ?? [] ),\n\t\t\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t\t\tvisibleFieldIds[ index - 1 ],\n\t\t\t\t\t\t\t\t\t...visibleFieldIds.slice( index + 1 ),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t }\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tonMoveDown={\n\t\t\t\tindex !== undefined\n\t\t\t\t\t? () => {\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: [\n\t\t\t\t\t\t\t\t\t...( visibleFieldIds.slice( 0, index ) ??\n\t\t\t\t\t\t\t\t\t\t[] ),\n\t\t\t\t\t\t\t\t\tvisibleFieldIds[ index + 1 ],\n\t\t\t\t\t\t\t\t\tfield.id,\n\t\t\t\t\t\t\t\t\t...visibleFieldIds.slice( index + 2 ),\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t }\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t/>\n\t);\n}\n\nfunction isDefined< T >( item: T | undefined ): item is T {\n\treturn !! item;\n}\n\nfunction FieldControl() {\n\tconst { view, fields, onChangeView } = useContext( DataViewsContext );\n\n\tconst togglableFields = [\n\t\tview?.titleField,\n\t\tview?.mediaField,\n\t\tview?.descriptionField,\n\t].filter( Boolean );\n\tconst visibleFieldIds = view.fields ?? [];\n\tconst hiddenFields = fields.filter(\n\t\t( f ) =>\n\t\t\t! visibleFieldIds.includes( f.id ) &&\n\t\t\t! togglableFields.includes( f.id )\n\t);\n\tconst visibleFields = visibleFieldIds\n\t\t.map( ( fieldId ) => fields.find( ( f ) => f.id === fieldId ) )\n\t\t.filter( isDefined );\n\n\tif ( ! visibleFields?.length && ! hiddenFields?.length ) {\n\t\treturn null;\n\t}\n\tconst titleField = fields.find( ( f ) => f.id === view.titleField );\n\tconst mediaField = fields.find( ( f ) => f.id === view.mediaField );\n\tconst descriptionField = fields.find(\n\t\t( f ) => f.id === view.descriptionField\n\t);\n\tconst lockedFields = [\n\t\t{\n\t\t\tfield: titleField,\n\t\t\tisVisibleFlag: 'showTitle',\n\t\t},\n\t\t{\n\t\t\tfield: mediaField,\n\t\t\tisVisibleFlag: 'showMedia',\n\t\t},\n\t\t{\n\t\t\tfield: descriptionField,\n\t\t\tisVisibleFlag: 'showDescription',\n\t\t},\n\t].filter( ( { field } ) => isDefined( field ) );\n\tconst visibleLockedFields = lockedFields.filter(\n\t\t( { field, isVisibleFlag } ) =>\n\t\t\t// @ts-expect-error\n\t\t\tisDefined( field ) && ( view[ isVisibleFlag ] ?? true )\n\t) as Array< { field: NormalizedField< any >; isVisibleFlag: string } >;\n\tconst hiddenLockedFields = lockedFields.filter(\n\t\t( { field, isVisibleFlag } ) =>\n\t\t\t// @ts-expect-error\n\t\t\tisDefined( field ) && ! ( view[ isVisibleFlag ] ?? true )\n\t) as Array< { field: NormalizedField< any >; isVisibleFlag: string } >;\n\n\treturn (\n\t\t<VStack className=\"dataviews-field-control\" spacing={ 6 }>\n\t\t\t<VStack className=\"dataviews-view-config__properties\" spacing={ 0 }>\n\t\t\t\t{ ( visibleLockedFields.length > 0 ||\n\t\t\t\t\t!! visibleFields?.length ) && (\n\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t{ visibleLockedFields.map(\n\t\t\t\t\t\t\t( { field, isVisibleFlag } ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<FieldItem\n\t\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\t\tisVisible\n\t\t\t\t\t\t\t\t\t\tonToggleVisibility={ () => {\n\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\t[ isVisibleFlag ]: false,\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\tcanMove={ false }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t{ visibleFields.map( ( field, index ) => (\n\t\t\t\t\t\t\t<RegularFieldItem\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\t\tindex={ index }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</ItemGroup>\n\t\t\t\t) }\n\t\t\t</VStack>\n\n\t\t\t{ ( !! hiddenFields?.length || !! hiddenLockedFields.length ) && (\n\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t<BaseControl.VisualLabel style={ { margin: 0 } }>\n\t\t\t\t\t\t{ __( 'Hidden' ) }\n\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t<VStack\n\t\t\t\t\t\tclassName=\"dataviews-view-config__properties\"\n\t\t\t\t\t\tspacing={ 0 }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t\t\t{ hiddenLockedFields.length > 0 &&\n\t\t\t\t\t\t\t\thiddenLockedFields.map(\n\t\t\t\t\t\t\t\t\t( { field, isVisibleFlag } ) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<FieldItem\n\t\t\t\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\t\t\t\tisVisible={ false }\n\t\t\t\t\t\t\t\t\t\t\t\tonToggleVisibility={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[ isVisibleFlag ]: true,\n\t\t\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\tcanMove={ false }\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{ hiddenFields.map( ( field ) => (\n\t\t\t\t\t\t\t\t<RegularFieldItem\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\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</VStack>\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\tconst { view } = useContext( DataViewsContext );\n\tconst popoverId = useInstanceId(\n\t\t_DataViewsViewConfig,\n\t\t'dataviews-view-config-dropdown'\n\t);\n\tconst activeLayout = VIEW_LAYOUTS.find(\n\t\t( layout ) => layout.type === view.type\n\t);\n\treturn (\n\t\t<Dropdown\n\t\t\texpandOnMobile\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\n\t\t\t\t\tpaddingSize=\"medium\"\n\t\t\t\t\tclassName=\"dataviews-config__popover-content-wrapper\"\n\t\t\t\t>\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{ !! activeLayout?.viewConfigOptions && (\n\t\t\t\t\t\t\t\t<activeLayout.viewConfigOptions />\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\tdefaultLayouts = { list: {}, grid: {}, table: {} },\n}: {\n\tdefaultLayouts?: SupportedLayouts;\n} ) {\n\treturn (\n\t\t<>\n\t\t\t<ViewTypeMenu defaultLayouts={ defaultLayouts } />\n\t\t\t<DataviewsViewConfigDropdown />\n\t\t</>\n\t);\n}\n\nconst DataViewsViewConfig = memo( _DataViewsViewConfig );\n\nexport default DataViewsViewConfig;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,6 +10,7 @@ var _clsx = _interopRequireDefault(require("clsx"));
|
|
|
10
10
|
var _components = require("@wordpress/components");
|
|
11
11
|
var _i18n = require("@wordpress/i18n");
|
|
12
12
|
var _compose = require("@wordpress/compose");
|
|
13
|
+
var _lockUnlock = require("../../lock-unlock");
|
|
13
14
|
var _dataviewsItemActions = _interopRequireDefault(require("../../components/dataviews-item-actions"));
|
|
14
15
|
var _dataviewsSelectionCheckbox = _interopRequireDefault(require("../../components/dataviews-selection-checkbox"));
|
|
15
16
|
var _dataviewsBulkActions = require("../../components/dataviews-bulk-actions");
|
|
@@ -28,6 +29,9 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
28
29
|
* Internal dependencies
|
|
29
30
|
*/
|
|
30
31
|
|
|
32
|
+
const {
|
|
33
|
+
Badge
|
|
34
|
+
} = (0, _lockUnlock.unlock)(_components.privateApis);
|
|
31
35
|
function GridItem({
|
|
32
36
|
view,
|
|
33
37
|
selection,
|
|
@@ -41,7 +45,8 @@ function GridItem({
|
|
|
41
45
|
titleField,
|
|
42
46
|
descriptionField,
|
|
43
47
|
regularFields,
|
|
44
|
-
badgeFields
|
|
48
|
+
badgeFields,
|
|
49
|
+
hasBulkActions
|
|
45
50
|
}) {
|
|
46
51
|
const {
|
|
47
52
|
showTitle = true,
|
|
@@ -105,7 +110,7 @@ function GridItem({
|
|
|
105
110
|
...clickableMediaItemProps,
|
|
106
111
|
...mediaA11yProps,
|
|
107
112
|
children: renderedMediaField
|
|
108
|
-
}), showMedia && renderedMediaField && /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsSelectionCheckbox.default, {
|
|
113
|
+
}), hasBulkActions && showMedia && renderedMediaField && /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsSelectionCheckbox.default, {
|
|
109
114
|
item: item,
|
|
110
115
|
selection: selection,
|
|
111
116
|
onChangeSelection: onChangeSelection,
|
|
@@ -119,7 +124,7 @@ function GridItem({
|
|
|
119
124
|
...clickableTitleItemProps,
|
|
120
125
|
...titleA11yProps,
|
|
121
126
|
children: renderedTitleField
|
|
122
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsItemActions.default, {
|
|
127
|
+
}), !!actions?.length && /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsItemActions.default, {
|
|
123
128
|
item: item,
|
|
124
129
|
actions: actions,
|
|
125
130
|
isCompact: true
|
|
@@ -135,7 +140,7 @@ function GridItem({
|
|
|
135
140
|
alignment: "top",
|
|
136
141
|
justify: "flex-start",
|
|
137
142
|
children: badgeFields.map(field => {
|
|
138
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
143
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Badge, {
|
|
139
144
|
className: "dataviews-view-grid__field-value",
|
|
140
145
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(field.render, {
|
|
141
146
|
item: item
|
|
@@ -211,6 +216,7 @@ function ViewGrid({
|
|
|
211
216
|
});
|
|
212
217
|
const hasData = !!data?.length;
|
|
213
218
|
const updatedPreviewSize = (0, _previewSizePicker.useUpdatedPreviewSizeOnViewportChange)();
|
|
219
|
+
const hasBulkActions = (0, _dataviewsBulkActions.useSomeItemHasAPossibleBulkAction)(actions, data);
|
|
214
220
|
const usedPreviewSize = updatedPreviewSize || view.layout?.previewSize;
|
|
215
221
|
const gridStyle = usedPreviewSize ? {
|
|
216
222
|
gridTemplateColumns: `repeat(${usedPreviewSize}, minmax(0, 1fr))`
|
|
@@ -237,7 +243,8 @@ function ViewGrid({
|
|
|
237
243
|
titleField: titleField,
|
|
238
244
|
descriptionField: descriptionField,
|
|
239
245
|
regularFields: regularFields,
|
|
240
|
-
badgeFields: badgeFields
|
|
246
|
+
badgeFields: badgeFields,
|
|
247
|
+
hasBulkActions: hasBulkActions
|
|
241
248
|
}, getItemId(item));
|
|
242
249
|
})
|
|
243
250
|
}), !hasData && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_compose","_dataviewsItemActions","_dataviewsSelectionCheckbox","_dataviewsBulkActions","_getClickableItemProps","_previewSizePicker","_jsxRuntime","GridItem","view","selection","onChangeSelection","onClickItem","isItemClickable","getItemId","item","actions","mediaField","titleField","descriptionField","regularFields","badgeFields","showTitle","showMedia","showDescription","hasBulkAction","useHasAPossibleBulkAction","id","instanceId","useInstanceId","isSelected","includes","renderedMediaField","render","jsx","renderedTitleField","clickableMediaItemProps","getClickableItemProps","className","clickableTitleItemProps","mediaA11yProps","titleA11yProps","__","jsxs","__experimentalVStack","spacing","clsx","onClickCapture","event","ctrlKey","metaKey","stopPropagation","preventDefault","filter","itemId","children","default","disabled","__experimentalHStack","justify","isCompact","length","wrap","alignment","map","field","FlexItem","Flex","gap","expanded","style","height","direction","Fragment","header","maxHeight","ViewGrid","data","fields","isLoading","_view$fields","find","otherFields","reduce","accumulator","fieldId","f","key","layout","push","hasData","updatedPreviewSize","useUpdatedPreviewSizeOnViewportChange","usedPreviewSize","previewSize","gridStyle","gridTemplateColumns","__experimentalGrid","columns","Spinner"],"sources":["@wordpress/dataviews/src/dataviews-layouts/grid/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalGrid as Grid,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tSpinner,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport ItemActions from '../../components/dataviews-item-actions';\nimport DataViewsSelectionCheckbox from '../../components/dataviews-selection-checkbox';\nimport { useHasAPossibleBulkAction } from '../../components/dataviews-bulk-actions';\nimport type {\n\tAction,\n\tNormalizedField,\n\tViewGrid as ViewGridType,\n\tViewGridProps,\n} from '../../types';\nimport type { SetSelection } from '../../private-types';\nimport getClickableItemProps from '../utils/get-clickable-item-props';\nimport { useUpdatedPreviewSizeOnViewportChange } from './preview-size-picker';\n\ninterface GridItemProps< Item > {\n\tview: ViewGridType;\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\tgetItemId: ( item: Item ) => string;\n\tonClickItem?: ( item: Item ) => void;\n\tisItemClickable: ( item: Item ) => boolean;\n\titem: Item;\n\tactions: Action< Item >[];\n\ttitleField?: NormalizedField< Item >;\n\tmediaField?: NormalizedField< Item >;\n\tdescriptionField?: NormalizedField< Item >;\n\tregularFields: NormalizedField< Item >[];\n\tbadgeFields: NormalizedField< Item >[];\n}\n\nfunction GridItem< Item >( {\n\tview,\n\tselection,\n\tonChangeSelection,\n\tonClickItem,\n\tisItemClickable,\n\tgetItemId,\n\titem,\n\tactions,\n\tmediaField,\n\ttitleField,\n\tdescriptionField,\n\tregularFields,\n\tbadgeFields,\n}: GridItemProps< Item > ) {\n\tconst { showTitle = true, showMedia = true, showDescription = true } = view;\n\tconst hasBulkAction = useHasAPossibleBulkAction( actions, item );\n\tconst id = getItemId( item );\n\tconst instanceId = useInstanceId( GridItem );\n\tconst isSelected = selection.includes( id );\n\tconst renderedMediaField = mediaField?.render ? (\n\t\t<mediaField.render item={ item } />\n\t) : null;\n\tconst renderedTitleField =\n\t\tshowTitle && titleField?.render ? (\n\t\t\t<titleField.render item={ item } />\n\t\t) : null;\n\n\tconst clickableMediaItemProps = getClickableItemProps( {\n\t\titem,\n\t\tisItemClickable,\n\t\tonClickItem,\n\t\tclassName: 'dataviews-view-grid__media',\n\t} );\n\n\tconst clickableTitleItemProps = getClickableItemProps( {\n\t\titem,\n\t\tisItemClickable,\n\t\tonClickItem,\n\t\tclassName: 'dataviews-view-grid__title-field dataviews-title-field',\n\t} );\n\n\tlet mediaA11yProps;\n\tlet titleA11yProps;\n\tif ( isItemClickable( item ) && onClickItem ) {\n\t\tif ( renderedTitleField ) {\n\t\t\tmediaA11yProps = {\n\t\t\t\t'aria-labelledby': `dataviews-view-grid__title-field-${ instanceId }`,\n\t\t\t};\n\t\t\ttitleA11yProps = {\n\t\t\t\tid: `dataviews-view-grid__title-field-${ instanceId }`,\n\t\t\t};\n\t\t} else {\n\t\t\tmediaA11yProps = {\n\t\t\t\t'aria-label': __( 'Navigate to item' ),\n\t\t\t};\n\t\t}\n\t}\n\n\treturn (\n\t\t<VStack\n\t\t\tspacing={ 0 }\n\t\t\tkey={ id }\n\t\t\tclassName={ clsx( 'dataviews-view-grid__card', {\n\t\t\t\t'is-selected': hasBulkAction && isSelected,\n\t\t\t} ) }\n\t\t\tonClickCapture={ ( event ) => {\n\t\t\t\tif ( event.ctrlKey || event.metaKey ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tif ( ! hasBulkAction ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tonChangeSelection(\n\t\t\t\t\t\tselection.includes( id )\n\t\t\t\t\t\t\t? selection.filter( ( itemId ) => id !== itemId )\n\t\t\t\t\t\t\t: [ ...selection, id ]\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} }\n\t\t>\n\t\t\t{ showMedia && renderedMediaField && (\n\t\t\t\t<div { ...clickableMediaItemProps } { ...mediaA11yProps }>\n\t\t\t\t\t{ renderedMediaField }\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ showMedia && renderedMediaField && (\n\t\t\t\t<DataViewsSelectionCheckbox\n\t\t\t\t\titem={ item }\n\t\t\t\t\tselection={ selection }\n\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\ttitleField={ titleField }\n\t\t\t\t\tdisabled={ ! hasBulkAction }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<HStack\n\t\t\t\tjustify=\"space-between\"\n\t\t\t\tclassName=\"dataviews-view-grid__title-actions\"\n\t\t\t>\n\t\t\t\t<div { ...clickableTitleItemProps } { ...titleA11yProps }>\n\t\t\t\t\t{ renderedTitleField }\n\t\t\t\t</div>\n\t\t\t\t<ItemActions item={ item } actions={ actions } isCompact />\n\t\t\t</HStack>\n\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t{ showDescription && descriptionField?.render && (\n\t\t\t\t\t<descriptionField.render item={ item } />\n\t\t\t\t) }\n\t\t\t\t{ !! badgeFields?.length && (\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tclassName=\"dataviews-view-grid__badge-fields\"\n\t\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\t\twrap\n\t\t\t\t\t\talignment=\"top\"\n\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ badgeFields.map( ( field ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field-value\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<field.render item={ item } />\n\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</HStack>\n\t\t\t\t) }\n\t\t\t\t{ !! regularFields?.length && (\n\t\t\t\t\t<VStack\n\t\t\t\t\t\tclassName=\"dataviews-view-grid__fields\"\n\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ regularFields.map( ( field ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field\"\n\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\tgap={ 1 }\n\t\t\t\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\t\t\t\texpanded\n\t\t\t\t\t\t\t\t\tstyle={ { height: 'auto' } }\n\t\t\t\t\t\t\t\t\tdirection=\"row\"\n\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\t\t<FlexItem className=\"dataviews-view-grid__field-name\">\n\t\t\t\t\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field-value\"\n\t\t\t\t\t\t\t\t\t\t\tstyle={ { maxHeight: 'none' } }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<field.render item={ item } />\n\t\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</VStack>\n\t\t\t\t) }\n\t\t\t</VStack>\n\t\t</VStack>\n\t);\n}\n\nexport default function ViewGrid< Item >( {\n\tactions,\n\tdata,\n\tfields,\n\tgetItemId,\n\tisLoading,\n\tonChangeSelection,\n\tonClickItem,\n\tisItemClickable,\n\tselection,\n\tview,\n}: ViewGridProps< Item > ) {\n\tconst titleField = fields.find(\n\t\t( field ) => field.id === view?.titleField\n\t);\n\tconst mediaField = fields.find(\n\t\t( field ) => field.id === view?.mediaField\n\t);\n\tconst descriptionField = fields.find(\n\t\t( field ) => field.id === view?.descriptionField\n\t);\n\tconst otherFields = view.fields ?? [];\n\tconst { regularFields, badgeFields } = otherFields.reduce(\n\t\t(\n\t\t\taccumulator: Record< string, NormalizedField< Item >[] >,\n\t\t\tfieldId\n\t\t) => {\n\t\t\tconst field = fields.find( ( f ) => f.id === fieldId );\n\t\t\tif ( ! field ) {\n\t\t\t\treturn accumulator;\n\t\t\t}\n\t\t\t// If the field is a badge field, add it to the badgeFields array\n\t\t\t// otherwise add it to the rest visibleFields array.\n\t\t\tconst key = view.layout?.badgeFields?.includes( fieldId )\n\t\t\t\t? 'badgeFields'\n\t\t\t\t: 'regularFields';\n\t\t\taccumulator[ key ].push( field );\n\t\t\treturn accumulator;\n\t\t},\n\t\t{ regularFields: [], badgeFields: [] }\n\t);\n\tconst hasData = !! data?.length;\n\tconst updatedPreviewSize = useUpdatedPreviewSizeOnViewportChange();\n\tconst usedPreviewSize = updatedPreviewSize || view.layout?.previewSize;\n\tconst gridStyle = usedPreviewSize\n\t\t? {\n\t\t\t\tgridTemplateColumns: `repeat(${ usedPreviewSize }, minmax(0, 1fr))`,\n\t\t }\n\t\t: {};\n\treturn (\n\t\t<>\n\t\t\t{ hasData && (\n\t\t\t\t<Grid\n\t\t\t\t\tgap={ 8 }\n\t\t\t\t\tcolumns={ 2 }\n\t\t\t\t\talignment=\"top\"\n\t\t\t\t\tclassName=\"dataviews-view-grid\"\n\t\t\t\t\tstyle={ gridStyle }\n\t\t\t\t\taria-busy={ isLoading }\n\t\t\t\t>\n\t\t\t\t\t{ data.map( ( item ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<GridItem\n\t\t\t\t\t\t\t\tkey={ getItemId( item ) }\n\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\t\t\t\tonClickItem={ onClickItem }\n\t\t\t\t\t\t\t\tisItemClickable={ isItemClickable }\n\t\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\t\t\ttitleField={ titleField }\n\t\t\t\t\t\t\t\tdescriptionField={ descriptionField }\n\t\t\t\t\t\t\t\tregularFields={ regularFields }\n\t\t\t\t\t\t\t\tbadgeFields={ badgeFields }\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</Grid>\n\t\t\t) }\n\t\t\t{ ! hasData && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t\t'dataviews-loading': isLoading,\n\t\t\t\t\t\t'dataviews-no-results': ! isLoading,\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t<p>{ isLoading ? <Spinner /> : __( 'No results' ) }</p>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_compose","_lockUnlock","_dataviewsItemActions","_dataviewsSelectionCheckbox","_dataviewsBulkActions","_getClickableItemProps","_previewSizePicker","_jsxRuntime","Badge","unlock","componentsPrivateApis","GridItem","view","selection","onChangeSelection","onClickItem","isItemClickable","getItemId","item","actions","mediaField","titleField","descriptionField","regularFields","badgeFields","hasBulkActions","showTitle","showMedia","showDescription","hasBulkAction","useHasAPossibleBulkAction","id","instanceId","useInstanceId","isSelected","includes","renderedMediaField","render","jsx","renderedTitleField","clickableMediaItemProps","getClickableItemProps","className","clickableTitleItemProps","mediaA11yProps","titleA11yProps","__","jsxs","__experimentalVStack","spacing","clsx","onClickCapture","event","ctrlKey","metaKey","stopPropagation","preventDefault","filter","itemId","children","default","disabled","__experimentalHStack","justify","length","isCompact","wrap","alignment","map","field","Flex","gap","expanded","style","height","direction","Fragment","FlexItem","header","maxHeight","ViewGrid","data","fields","isLoading","_view$fields","find","otherFields","reduce","accumulator","fieldId","f","key","layout","push","hasData","updatedPreviewSize","useUpdatedPreviewSizeOnViewportChange","useSomeItemHasAPossibleBulkAction","usedPreviewSize","previewSize","gridStyle","gridTemplateColumns","__experimentalGrid","columns","Spinner"],"sources":["@wordpress/dataviews/src/dataviews-layouts/grid/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalGrid as Grid,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tSpinner,\n\tFlex,\n\tFlexItem,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport ItemActions from '../../components/dataviews-item-actions';\nimport DataViewsSelectionCheckbox from '../../components/dataviews-selection-checkbox';\nimport {\n\tuseHasAPossibleBulkAction,\n\tuseSomeItemHasAPossibleBulkAction,\n} from '../../components/dataviews-bulk-actions';\nimport type {\n\tAction,\n\tNormalizedField,\n\tViewGrid as ViewGridType,\n\tViewGridProps,\n} from '../../types';\nimport type { SetSelection } from '../../private-types';\nimport getClickableItemProps from '../utils/get-clickable-item-props';\nimport { useUpdatedPreviewSizeOnViewportChange } from './preview-size-picker';\nconst { Badge } = unlock( componentsPrivateApis );\n\ninterface GridItemProps< Item > {\n\tview: ViewGridType;\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\tgetItemId: ( item: Item ) => string;\n\tonClickItem?: ( item: Item ) => void;\n\tisItemClickable: ( item: Item ) => boolean;\n\titem: Item;\n\tactions: Action< Item >[];\n\ttitleField?: NormalizedField< Item >;\n\tmediaField?: NormalizedField< Item >;\n\tdescriptionField?: NormalizedField< Item >;\n\tregularFields: NormalizedField< Item >[];\n\tbadgeFields: NormalizedField< Item >[];\n\thasBulkActions: boolean;\n}\n\nfunction GridItem< Item >( {\n\tview,\n\tselection,\n\tonChangeSelection,\n\tonClickItem,\n\tisItemClickable,\n\tgetItemId,\n\titem,\n\tactions,\n\tmediaField,\n\ttitleField,\n\tdescriptionField,\n\tregularFields,\n\tbadgeFields,\n\thasBulkActions,\n}: GridItemProps< Item > ) {\n\tconst { showTitle = true, showMedia = true, showDescription = true } = view;\n\tconst hasBulkAction = useHasAPossibleBulkAction( actions, item );\n\tconst id = getItemId( item );\n\tconst instanceId = useInstanceId( GridItem );\n\tconst isSelected = selection.includes( id );\n\tconst renderedMediaField = mediaField?.render ? (\n\t\t<mediaField.render item={ item } />\n\t) : null;\n\tconst renderedTitleField =\n\t\tshowTitle && titleField?.render ? (\n\t\t\t<titleField.render item={ item } />\n\t\t) : null;\n\n\tconst clickableMediaItemProps = getClickableItemProps( {\n\t\titem,\n\t\tisItemClickable,\n\t\tonClickItem,\n\t\tclassName: 'dataviews-view-grid__media',\n\t} );\n\n\tconst clickableTitleItemProps = getClickableItemProps( {\n\t\titem,\n\t\tisItemClickable,\n\t\tonClickItem,\n\t\tclassName: 'dataviews-view-grid__title-field dataviews-title-field',\n\t} );\n\n\tlet mediaA11yProps;\n\tlet titleA11yProps;\n\tif ( isItemClickable( item ) && onClickItem ) {\n\t\tif ( renderedTitleField ) {\n\t\t\tmediaA11yProps = {\n\t\t\t\t'aria-labelledby': `dataviews-view-grid__title-field-${ instanceId }`,\n\t\t\t};\n\t\t\ttitleA11yProps = {\n\t\t\t\tid: `dataviews-view-grid__title-field-${ instanceId }`,\n\t\t\t};\n\t\t} else {\n\t\t\tmediaA11yProps = {\n\t\t\t\t'aria-label': __( 'Navigate to item' ),\n\t\t\t};\n\t\t}\n\t}\n\n\treturn (\n\t\t<VStack\n\t\t\tspacing={ 0 }\n\t\t\tkey={ id }\n\t\t\tclassName={ clsx( 'dataviews-view-grid__card', {\n\t\t\t\t'is-selected': hasBulkAction && isSelected,\n\t\t\t} ) }\n\t\t\tonClickCapture={ ( event ) => {\n\t\t\t\tif ( event.ctrlKey || event.metaKey ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tif ( ! hasBulkAction ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tonChangeSelection(\n\t\t\t\t\t\tselection.includes( id )\n\t\t\t\t\t\t\t? selection.filter( ( itemId ) => id !== itemId )\n\t\t\t\t\t\t\t: [ ...selection, id ]\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} }\n\t\t>\n\t\t\t{ showMedia && renderedMediaField && (\n\t\t\t\t<div { ...clickableMediaItemProps } { ...mediaA11yProps }>\n\t\t\t\t\t{ renderedMediaField }\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t{ hasBulkActions && showMedia && renderedMediaField && (\n\t\t\t\t<DataViewsSelectionCheckbox\n\t\t\t\t\titem={ item }\n\t\t\t\t\tselection={ selection }\n\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\ttitleField={ titleField }\n\t\t\t\t\tdisabled={ ! hasBulkAction }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<HStack\n\t\t\t\tjustify=\"space-between\"\n\t\t\t\tclassName=\"dataviews-view-grid__title-actions\"\n\t\t\t>\n\t\t\t\t<div { ...clickableTitleItemProps } { ...titleA11yProps }>\n\t\t\t\t\t{ renderedTitleField }\n\t\t\t\t</div>\n\t\t\t\t{ !! actions?.length && (\n\t\t\t\t\t<ItemActions item={ item } actions={ actions } isCompact />\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t{ showDescription && descriptionField?.render && (\n\t\t\t\t\t<descriptionField.render item={ item } />\n\t\t\t\t) }\n\t\t\t\t{ !! badgeFields?.length && (\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tclassName=\"dataviews-view-grid__badge-fields\"\n\t\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\t\twrap\n\t\t\t\t\t\talignment=\"top\"\n\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ badgeFields.map( ( field ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Badge\n\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field-value\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<field.render item={ item } />\n\t\t\t\t\t\t\t\t</Badge>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</HStack>\n\t\t\t\t) }\n\t\t\t\t{ !! regularFields?.length && (\n\t\t\t\t\t<VStack\n\t\t\t\t\t\tclassName=\"dataviews-view-grid__fields\"\n\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ regularFields.map( ( field ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field\"\n\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\tgap={ 1 }\n\t\t\t\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\t\t\t\texpanded\n\t\t\t\t\t\t\t\t\tstyle={ { height: 'auto' } }\n\t\t\t\t\t\t\t\t\tdirection=\"row\"\n\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\t\t<FlexItem className=\"dataviews-view-grid__field-name\">\n\t\t\t\t\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field-value\"\n\t\t\t\t\t\t\t\t\t\t\tstyle={ { maxHeight: 'none' } }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<field.render item={ item } />\n\t\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</VStack>\n\t\t\t\t) }\n\t\t\t</VStack>\n\t\t</VStack>\n\t);\n}\n\nexport default function ViewGrid< Item >( {\n\tactions,\n\tdata,\n\tfields,\n\tgetItemId,\n\tisLoading,\n\tonChangeSelection,\n\tonClickItem,\n\tisItemClickable,\n\tselection,\n\tview,\n}: ViewGridProps< Item > ) {\n\tconst titleField = fields.find(\n\t\t( field ) => field.id === view?.titleField\n\t);\n\tconst mediaField = fields.find(\n\t\t( field ) => field.id === view?.mediaField\n\t);\n\tconst descriptionField = fields.find(\n\t\t( field ) => field.id === view?.descriptionField\n\t);\n\tconst otherFields = view.fields ?? [];\n\tconst { regularFields, badgeFields } = otherFields.reduce(\n\t\t(\n\t\t\taccumulator: Record< string, NormalizedField< Item >[] >,\n\t\t\tfieldId\n\t\t) => {\n\t\t\tconst field = fields.find( ( f ) => f.id === fieldId );\n\t\t\tif ( ! field ) {\n\t\t\t\treturn accumulator;\n\t\t\t}\n\t\t\t// If the field is a badge field, add it to the badgeFields array\n\t\t\t// otherwise add it to the rest visibleFields array.\n\t\t\tconst key = view.layout?.badgeFields?.includes( fieldId )\n\t\t\t\t? 'badgeFields'\n\t\t\t\t: 'regularFields';\n\t\t\taccumulator[ key ].push( field );\n\t\t\treturn accumulator;\n\t\t},\n\t\t{ regularFields: [], badgeFields: [] }\n\t);\n\tconst hasData = !! data?.length;\n\tconst updatedPreviewSize = useUpdatedPreviewSizeOnViewportChange();\n\tconst hasBulkActions = useSomeItemHasAPossibleBulkAction( actions, data );\n\tconst usedPreviewSize = updatedPreviewSize || view.layout?.previewSize;\n\tconst gridStyle = usedPreviewSize\n\t\t? {\n\t\t\t\tgridTemplateColumns: `repeat(${ usedPreviewSize }, minmax(0, 1fr))`,\n\t\t }\n\t\t: {};\n\treturn (\n\t\t<>\n\t\t\t{ hasData && (\n\t\t\t\t<Grid\n\t\t\t\t\tgap={ 8 }\n\t\t\t\t\tcolumns={ 2 }\n\t\t\t\t\talignment=\"top\"\n\t\t\t\t\tclassName=\"dataviews-view-grid\"\n\t\t\t\t\tstyle={ gridStyle }\n\t\t\t\t\taria-busy={ isLoading }\n\t\t\t\t>\n\t\t\t\t\t{ data.map( ( item ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<GridItem\n\t\t\t\t\t\t\t\tkey={ getItemId( item ) }\n\t\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\t\t\t\tonClickItem={ onClickItem }\n\t\t\t\t\t\t\t\tisItemClickable={ isItemClickable }\n\t\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\t\t\ttitleField={ titleField }\n\t\t\t\t\t\t\t\tdescriptionField={ descriptionField }\n\t\t\t\t\t\t\t\tregularFields={ regularFields }\n\t\t\t\t\t\t\t\tbadgeFields={ badgeFields }\n\t\t\t\t\t\t\t\thasBulkActions={ hasBulkActions }\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</Grid>\n\t\t\t) }\n\t\t\t{ ! hasData && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t\t'dataviews-loading': isLoading,\n\t\t\t\t\t\t'dataviews-no-results': ! isLoading,\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t<p>{ isLoading ? <Spinner /> : __( 'No results' ) }</p>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,7 +8,6 @@ exports.default = PreviewSizePicker;
|
|
|
8
8
|
exports.useUpdatedPreviewSizeOnViewportChange = useUpdatedPreviewSizeOnViewportChange;
|
|
9
9
|
var _components = require("@wordpress/components");
|
|
10
10
|
var _i18n = require("@wordpress/i18n");
|
|
11
|
-
var _compose = require("@wordpress/compose");
|
|
12
11
|
var _element = require("@wordpress/element");
|
|
13
12
|
var _dataviewsContext = _interopRequireDefault(require("../../components/dataviews-context"));
|
|
14
13
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -47,36 +46,34 @@ const viewportBreaks = {
|
|
|
47
46
|
default: 2
|
|
48
47
|
}
|
|
49
48
|
};
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Breakpoints were adjusted from media queries breakpoints to account for
|
|
52
|
+
* the sidebar width. This was done to match the existing styles we had.
|
|
53
|
+
*/
|
|
54
|
+
const BREAKPOINTS = {
|
|
55
|
+
xhuge: 1520,
|
|
56
|
+
huge: 1140,
|
|
57
|
+
xlarge: 780,
|
|
58
|
+
large: 480,
|
|
59
|
+
mobile: 0
|
|
60
|
+
};
|
|
50
61
|
function useViewPortBreakpoint() {
|
|
51
|
-
const
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
if (isXHuge) {
|
|
57
|
-
return 'xhuge';
|
|
58
|
-
}
|
|
59
|
-
if (isHuge) {
|
|
60
|
-
return 'huge';
|
|
61
|
-
}
|
|
62
|
-
if (isXlarge) {
|
|
63
|
-
return 'xlarge';
|
|
64
|
-
}
|
|
65
|
-
if (isLarge) {
|
|
66
|
-
return 'large';
|
|
67
|
-
}
|
|
68
|
-
if (isMobile) {
|
|
69
|
-
return 'mobile';
|
|
62
|
+
const containerWidth = (0, _element.useContext)(_dataviewsContext.default).containerWidth;
|
|
63
|
+
for (const [key, value] of Object.entries(BREAKPOINTS)) {
|
|
64
|
+
if (containerWidth >= value) {
|
|
65
|
+
return key;
|
|
66
|
+
}
|
|
70
67
|
}
|
|
71
|
-
return
|
|
68
|
+
return 'mobile';
|
|
72
69
|
}
|
|
73
70
|
function useUpdatedPreviewSizeOnViewportChange() {
|
|
74
|
-
const viewport = useViewPortBreakpoint();
|
|
75
71
|
const view = (0, _element.useContext)(_dataviewsContext.default).view;
|
|
72
|
+
const viewport = useViewPortBreakpoint();
|
|
76
73
|
return (0, _element.useMemo)(() => {
|
|
77
74
|
const previewSize = view.layout?.previewSize;
|
|
78
75
|
let newPreviewSize;
|
|
79
|
-
if (!
|
|
76
|
+
if (!previewSize) {
|
|
80
77
|
return;
|
|
81
78
|
}
|
|
82
79
|
const breakValues = viewportBreaks[viewport];
|
|
@@ -93,7 +90,7 @@ function PreviewSizePicker() {
|
|
|
93
90
|
const viewport = useViewPortBreakpoint();
|
|
94
91
|
const context = (0, _element.useContext)(_dataviewsContext.default);
|
|
95
92
|
const view = context.view;
|
|
96
|
-
const breakValues = viewportBreaks[viewport
|
|
93
|
+
const breakValues = viewportBreaks[viewport];
|
|
97
94
|
const previewSizeToUse = view.layout?.previewSize || breakValues.default;
|
|
98
95
|
const marks = (0, _element.useMemo)(() => Array.from({
|
|
99
96
|
length: breakValues.max - breakValues.min + 1
|
|
@@ -102,7 +99,7 @@ function PreviewSizePicker() {
|
|
|
102
99
|
value: breakValues.min + i
|
|
103
100
|
};
|
|
104
101
|
}), [breakValues]);
|
|
105
|
-
if (
|
|
102
|
+
if (viewport === 'mobile') {
|
|
106
103
|
return null;
|
|
107
104
|
}
|
|
108
105
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.RangeControl, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_i18n","
|
|
1
|
+
{"version":3,"names":["_components","require","_i18n","_element","_dataviewsContext","_interopRequireDefault","_jsxRuntime","viewportBreaks","xhuge","min","max","default","huge","xlarge","large","mobile","BREAKPOINTS","useViewPortBreakpoint","containerWidth","useContext","DataViewsContext","key","value","Object","entries","useUpdatedPreviewSizeOnViewportChange","view","viewport","useMemo","previewSize","layout","newPreviewSize","breakValues","PreviewSizePicker","context","previewSizeToUse","marks","Array","from","length","_","i","jsx","RangeControl","__nextHasNoMarginBottom","__next40pxDefaultSize","showTooltip","label","__","withInputField","onChange","onChangeView","step"],"sources":["@wordpress/dataviews/src/dataviews-layouts/grid/preview-size-picker.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { RangeControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo, useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../../components/dataviews-context';\nimport type { ViewGrid } from '../../types';\n\nconst viewportBreaks: {\n\t[ key: string ]: { min: number; max: number; default: number };\n} = {\n\txhuge: { min: 3, max: 6, default: 5 },\n\thuge: { min: 2, max: 4, default: 4 },\n\txlarge: { min: 2, max: 3, default: 3 },\n\tlarge: { min: 1, max: 2, default: 2 },\n\tmobile: { min: 1, max: 2, default: 2 },\n};\n\n/**\n * Breakpoints were adjusted from media queries breakpoints to account for\n * the sidebar width. This was done to match the existing styles we had.\n */\nconst BREAKPOINTS = {\n\txhuge: 1520,\n\thuge: 1140,\n\txlarge: 780,\n\tlarge: 480,\n\tmobile: 0,\n};\n\nfunction useViewPortBreakpoint() {\n\tconst containerWidth = useContext( DataViewsContext ).containerWidth;\n\tfor ( const [ key, value ] of Object.entries( BREAKPOINTS ) ) {\n\t\tif ( containerWidth >= value ) {\n\t\t\treturn key;\n\t\t}\n\t}\n\treturn 'mobile';\n}\n\nexport function useUpdatedPreviewSizeOnViewportChange() {\n\tconst view = useContext( DataViewsContext ).view as ViewGrid;\n\tconst viewport = useViewPortBreakpoint();\n\treturn useMemo( () => {\n\t\tconst previewSize = view.layout?.previewSize;\n\t\tlet newPreviewSize;\n\t\tif ( ! previewSize ) {\n\t\t\treturn;\n\t\t}\n\t\tconst breakValues = viewportBreaks[ viewport ];\n\t\tif ( previewSize < breakValues.min ) {\n\t\t\tnewPreviewSize = breakValues.min;\n\t\t}\n\t\tif ( previewSize > breakValues.max ) {\n\t\t\tnewPreviewSize = breakValues.max;\n\t\t}\n\t\treturn newPreviewSize;\n\t}, [ viewport, view ] );\n}\n\nexport default function PreviewSizePicker() {\n\tconst viewport = useViewPortBreakpoint();\n\tconst context = useContext( DataViewsContext );\n\tconst view = context.view as ViewGrid;\n\tconst breakValues = viewportBreaks[ viewport ];\n\tconst previewSizeToUse = view.layout?.previewSize || breakValues.default;\n\tconst marks = useMemo(\n\t\t() =>\n\t\t\tArray.from(\n\t\t\t\t{ length: breakValues.max - breakValues.min + 1 },\n\t\t\t\t( _, i ) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tvalue: breakValues.min + i,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t),\n\t\t[ breakValues ]\n\t);\n\tif ( viewport === 'mobile' ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<RangeControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tshowTooltip={ false }\n\t\t\tlabel={ __( 'Preview size' ) }\n\t\t\tvalue={ breakValues.max + breakValues.min - previewSizeToUse }\n\t\t\tmarks={ marks }\n\t\t\tmin={ breakValues.min }\n\t\t\tmax={ breakValues.max }\n\t\t\twithInputField={ false }\n\t\t\tonChange={ ( value = 0 ) => {\n\t\t\t\tcontext.onChangeView( {\n\t\t\t\t\t...view,\n\t\t\t\t\tlayout: {\n\t\t\t\t\t\t...view.layout,\n\t\t\t\t\t\tpreviewSize: breakValues.max + breakValues.min - value,\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t} }\n\t\t\tstep={ 1 }\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAKA,IAAAG,iBAAA,GAAAC,sBAAA,CAAAJ,OAAA;AAAkE,IAAAK,WAAA,GAAAL,OAAA;AAVlE;AACA;AACA;;AAKA;AACA;AACA;;AAIA,MAAMM,cAEL,GAAG;EACHC,KAAK,EAAE;IAAEC,GAAG,EAAE,CAAC;IAAEC,GAAG,EAAE,CAAC;IAAEC,OAAO,EAAE;EAAE,CAAC;EACrCC,IAAI,EAAE;IAAEH,GAAG,EAAE,CAAC;IAAEC,GAAG,EAAE,CAAC;IAAEC,OAAO,EAAE;EAAE,CAAC;EACpCE,MAAM,EAAE;IAAEJ,GAAG,EAAE,CAAC;IAAEC,GAAG,EAAE,CAAC;IAAEC,OAAO,EAAE;EAAE,CAAC;EACtCG,KAAK,EAAE;IAAEL,GAAG,EAAE,CAAC;IAAEC,GAAG,EAAE,CAAC;IAAEC,OAAO,EAAE;EAAE,CAAC;EACrCI,MAAM,EAAE;IAAEN,GAAG,EAAE,CAAC;IAAEC,GAAG,EAAE,CAAC;IAAEC,OAAO,EAAE;EAAE;AACtC,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAMK,WAAW,GAAG;EACnBR,KAAK,EAAE,IAAI;EACXI,IAAI,EAAE,IAAI;EACVC,MAAM,EAAE,GAAG;EACXC,KAAK,EAAE,GAAG;EACVC,MAAM,EAAE;AACT,CAAC;AAED,SAASE,qBAAqBA,CAAA,EAAG;EAChC,MAAMC,cAAc,GAAG,IAAAC,mBAAU,EAAEC,yBAAiB,CAAC,CAACF,cAAc;EACpE,KAAM,MAAM,CAAEG,GAAG,EAAEC,KAAK,CAAE,IAAIC,MAAM,CAACC,OAAO,CAAER,WAAY,CAAC,EAAG;IAC7D,IAAKE,cAAc,IAAII,KAAK,EAAG;MAC9B,OAAOD,GAAG;IACX;EACD;EACA,OAAO,QAAQ;AAChB;AAEO,SAASI,qCAAqCA,CAAA,EAAG;EACvD,MAAMC,IAAI,GAAG,IAAAP,mBAAU,EAAEC,yBAAiB,CAAC,CAACM,IAAgB;EAC5D,MAAMC,QAAQ,GAAGV,qBAAqB,CAAC,CAAC;EACxC,OAAO,IAAAW,gBAAO,EAAE,MAAM;IACrB,MAAMC,WAAW,GAAGH,IAAI,CAACI,MAAM,EAAED,WAAW;IAC5C,IAAIE,cAAc;IAClB,IAAK,CAAEF,WAAW,EAAG;MACpB;IACD;IACA,MAAMG,WAAW,GAAGzB,cAAc,CAAEoB,QAAQ,CAAE;IAC9C,IAAKE,WAAW,GAAGG,WAAW,CAACvB,GAAG,EAAG;MACpCsB,cAAc,GAAGC,WAAW,CAACvB,GAAG;IACjC;IACA,IAAKoB,WAAW,GAAGG,WAAW,CAACtB,GAAG,EAAG;MACpCqB,cAAc,GAAGC,WAAW,CAACtB,GAAG;IACjC;IACA,OAAOqB,cAAc;EACtB,CAAC,EAAE,CAAEJ,QAAQ,EAAED,IAAI,CAAG,CAAC;AACxB;AAEe,SAASO,iBAAiBA,CAAA,EAAG;EAC3C,MAAMN,QAAQ,GAAGV,qBAAqB,CAAC,CAAC;EACxC,MAAMiB,OAAO,GAAG,IAAAf,mBAAU,EAAEC,yBAAiB,CAAC;EAC9C,MAAMM,IAAI,GAAGQ,OAAO,CAACR,IAAgB;EACrC,MAAMM,WAAW,GAAGzB,cAAc,CAAEoB,QAAQ,CAAE;EAC9C,MAAMQ,gBAAgB,GAAGT,IAAI,CAACI,MAAM,EAAED,WAAW,IAAIG,WAAW,CAACrB,OAAO;EACxE,MAAMyB,KAAK,GAAG,IAAAR,gBAAO,EACpB,MACCS,KAAK,CAACC,IAAI,CACT;IAAEC,MAAM,EAAEP,WAAW,CAACtB,GAAG,GAAGsB,WAAW,CAACvB,GAAG,GAAG;EAAE,CAAC,EACjD,CAAE+B,CAAC,EAAEC,CAAC,KAAM;IACX,OAAO;MACNnB,KAAK,EAAEU,WAAW,CAACvB,GAAG,GAAGgC;IAC1B,CAAC;EACF,CACD,CAAC,EACF,CAAET,WAAW,CACd,CAAC;EACD,IAAKL,QAAQ,KAAK,QAAQ,EAAG;IAC5B,OAAO,IAAI;EACZ;EACA,oBACC,IAAArB,WAAA,CAAAoC,GAAA,EAAC1C,WAAA,CAAA2C,YAAY;IACZC,uBAAuB;IACvBC,qBAAqB;IACrBC,WAAW,EAAG,KAAO;IACrBC,KAAK,EAAG,IAAAC,QAAE,EAAE,cAAe,CAAG;IAC9B1B,KAAK,EAAGU,WAAW,CAACtB,GAAG,GAAGsB,WAAW,CAACvB,GAAG,GAAG0B,gBAAkB;IAC9DC,KAAK,EAAGA,KAAO;IACf3B,GAAG,EAAGuB,WAAW,CAACvB,GAAK;IACvBC,GAAG,EAAGsB,WAAW,CAACtB,GAAK;IACvBuC,cAAc,EAAG,KAAO;IACxBC,QAAQ,EAAGA,CAAE5B,KAAK,GAAG,CAAC,KAAM;MAC3BY,OAAO,CAACiB,YAAY,CAAE;QACrB,GAAGzB,IAAI;QACPI,MAAM,EAAE;UACP,GAAGJ,IAAI,CAACI,MAAM;UACdD,WAAW,EAAEG,WAAW,CAACtB,GAAG,GAAGsB,WAAW,CAACvB,GAAG,GAAGa;QAClD;MACD,CAAE,CAAC;IACJ,CAAG;IACH8B,IAAI,EAAG;EAAG,CACV,CAAC;AAEJ","ignoreList":[]}
|