@wordpress/dataviews 9.0.1-next.a730c9c8c.0 → 9.1.1-next.233ccab9b.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/CHANGELOG.md +19 -3
  2. package/README.md +4 -2
  3. package/build/components/dataviews/index.js +4 -6
  4. package/build/components/dataviews/index.js.map +1 -1
  5. package/build/components/dataviews-filters/filters-toggled.js +32 -0
  6. package/build/components/dataviews-filters/filters-toggled.js.map +1 -0
  7. package/build/components/dataviews-filters/filters.js +73 -0
  8. package/build/components/dataviews-filters/filters.js.map +1 -0
  9. package/build/components/dataviews-filters/index.js +26 -190
  10. package/build/components/dataviews-filters/index.js.map +1 -1
  11. package/build/components/dataviews-filters/toggle.js +99 -0
  12. package/build/components/dataviews-filters/toggle.js.map +1 -0
  13. package/build/components/dataviews-filters/use-filters.js +63 -0
  14. package/build/components/dataviews-filters/use-filters.js.map +1 -0
  15. package/build/components/dataviews-picker/index.js +4 -6
  16. package/build/components/dataviews-picker/index.js.map +1 -1
  17. package/build/components/dataviews-view-config/index.js +22 -3
  18. package/build/components/dataviews-view-config/index.js.map +1 -1
  19. package/build/dataform-controls/array.js +110 -24
  20. package/build/dataform-controls/array.js.map +1 -1
  21. package/build/dataviews-layouts/picker-grid/index.js +4 -1
  22. package/build/dataviews-layouts/picker-grid/index.js.map +1 -1
  23. package/build/field-types/array.js +0 -6
  24. package/build/field-types/array.js.map +1 -1
  25. package/build/index.js +7 -0
  26. package/build/index.js.map +1 -1
  27. package/build/types.js.map +1 -1
  28. package/build/validation.js +18 -1
  29. package/build/validation.js.map +1 -1
  30. package/build-module/components/dataviews/index.js +5 -7
  31. package/build-module/components/dataviews/index.js.map +1 -1
  32. package/build-module/components/dataviews-filters/filters-toggled.js +24 -0
  33. package/build-module/components/dataviews-filters/filters-toggled.js.map +1 -0
  34. package/build-module/components/dataviews-filters/filters.js +65 -0
  35. package/build-module/components/dataviews-filters/filters.js.map +1 -0
  36. package/build-module/components/dataviews-filters/index.js +4 -186
  37. package/build-module/components/dataviews-filters/index.js.map +1 -1
  38. package/build-module/components/dataviews-filters/toggle.js +91 -0
  39. package/build-module/components/dataviews-filters/toggle.js.map +1 -0
  40. package/build-module/components/dataviews-filters/use-filters.js +56 -0
  41. package/build-module/components/dataviews-filters/use-filters.js.map +1 -0
  42. package/build-module/components/dataviews-picker/index.js +5 -7
  43. package/build-module/components/dataviews-picker/index.js.map +1 -1
  44. package/build-module/components/dataviews-view-config/index.js +22 -3
  45. package/build-module/components/dataviews-view-config/index.js.map +1 -1
  46. package/build-module/dataform-controls/array.js +112 -26
  47. package/build-module/dataform-controls/array.js.map +1 -1
  48. package/build-module/dataviews-layouts/picker-grid/index.js +4 -1
  49. package/build-module/dataviews-layouts/picker-grid/index.js.map +1 -1
  50. package/build-module/field-types/array.js +0 -6
  51. package/build-module/field-types/array.js.map +1 -1
  52. package/build-module/index.js +1 -0
  53. package/build-module/index.js.map +1 -1
  54. package/build-module/types.js.map +1 -1
  55. package/build-module/validation.js +18 -1
  56. package/build-module/validation.js.map +1 -1
  57. package/build-types/components/dataform/stories/index.story.d.ts.map +1 -1
  58. package/build-types/components/dataviews/index.d.ts +3 -2
  59. package/build-types/components/dataviews/index.d.ts.map +1 -1
  60. package/build-types/components/dataviews-filters/filters-toggled.d.ts +5 -0
  61. package/build-types/components/dataviews-filters/filters-toggled.d.ts.map +1 -0
  62. package/build-types/components/dataviews-filters/filters.d.ts +6 -0
  63. package/build-types/components/dataviews-filters/filters.d.ts.map +1 -0
  64. package/build-types/components/dataviews-filters/index.d.ts +4 -8
  65. package/build-types/components/dataviews-filters/index.d.ts.map +1 -1
  66. package/build-types/components/dataviews-filters/toggle.d.ts +3 -0
  67. package/build-types/components/dataviews-filters/toggle.d.ts.map +1 -0
  68. package/build-types/components/dataviews-filters/use-filters.d.ts +4 -0
  69. package/build-types/components/dataviews-filters/use-filters.d.ts.map +1 -0
  70. package/build-types/components/dataviews-picker/index.d.ts +3 -2
  71. package/build-types/components/dataviews-picker/index.d.ts.map +1 -1
  72. package/build-types/components/dataviews-view-config/index.d.ts.map +1 -1
  73. package/build-types/dataform-controls/array.d.ts.map +1 -1
  74. package/build-types/dataviews-layouts/picker-grid/index.d.ts.map +1 -1
  75. package/build-types/field-types/array.d.ts.map +1 -1
  76. package/build-types/index.d.ts +1 -0
  77. package/build-types/index.d.ts.map +1 -1
  78. package/build-types/types.d.ts +2 -1
  79. package/build-types/types.d.ts.map +1 -1
  80. package/build-types/validation.d.ts.map +1 -1
  81. package/build-wp/index.js +899 -408
  82. package/package.json +15 -15
  83. package/src/components/dataform/stories/index.story.tsx +73 -1
  84. package/src/components/dataviews/index.tsx +8 -14
  85. package/src/components/dataviews/stories/index.story.tsx +1 -1
  86. package/src/components/dataviews-filters/filters-toggled.tsx +20 -0
  87. package/src/components/dataviews-filters/filters.tsx +73 -0
  88. package/src/components/dataviews-filters/index.tsx +4 -246
  89. package/src/components/dataviews-filters/toggle.tsx +118 -0
  90. package/src/components/dataviews-filters/use-filters.ts +73 -0
  91. package/src/components/dataviews-picker/index.tsx +8 -14
  92. package/src/components/dataviews-view-config/index.tsx +18 -3
  93. package/src/dataform-controls/array.tsx +137 -40
  94. package/src/dataviews-layouts/picker-grid/index.tsx +15 -8
  95. package/src/field-types/array.tsx +0 -8
  96. package/src/index.ts +1 -0
  97. package/src/test/validation.ts +192 -0
  98. package/src/types.ts +2 -1
  99. package/src/validation.ts +30 -0
  100. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _element = require("@wordpress/element");
9
+ var _components = require("@wordpress/components");
10
+ var _icons = require("@wordpress/icons");
11
+ var _i18n = require("@wordpress/i18n");
12
+ var _addFilter = require("./add-filter");
13
+ var _dataviewsContext = _interopRequireDefault(require("../dataviews-context"));
14
+ var _jsxRuntime = require("react/jsx-runtime");
15
+ /**
16
+ * WordPress dependencies
17
+ */
18
+
19
+ /**
20
+ * Internal dependencies
21
+ */
22
+
23
+ function FiltersToggle() {
24
+ const {
25
+ filters,
26
+ view,
27
+ onChangeView,
28
+ setOpenedFilter,
29
+ isShowingFilter,
30
+ setIsShowingFilter
31
+ } = (0, _element.useContext)(_dataviewsContext.default);
32
+ const buttonRef = (0, _element.useRef)(null);
33
+ const onChangeViewWithFilterVisibility = (0, _element.useCallback)(_view => {
34
+ onChangeView(_view);
35
+ setIsShowingFilter(true);
36
+ }, [onChangeView, setIsShowingFilter]);
37
+ const visibleFilters = filters.filter(filter => filter.isVisible);
38
+ const hasVisibleFilters = !!visibleFilters.length;
39
+ if (filters.length === 0) {
40
+ return null;
41
+ }
42
+ const addFilterButtonProps = {
43
+ label: (0, _i18n.__)('Add filter'),
44
+ 'aria-expanded': false,
45
+ isPressed: false
46
+ };
47
+ const toggleFiltersButtonProps = {
48
+ label: (0, _i18n._x)('Filter', 'verb'),
49
+ 'aria-expanded': isShowingFilter,
50
+ isPressed: isShowingFilter,
51
+ onClick: () => {
52
+ if (!isShowingFilter) {
53
+ setOpenedFilter(null);
54
+ }
55
+ setIsShowingFilter(!isShowingFilter);
56
+ }
57
+ };
58
+ const buttonComponent = /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
59
+ ref: buttonRef,
60
+ className: "dataviews-filters__visibility-toggle",
61
+ size: "compact",
62
+ icon: _icons.funnel,
63
+ ...(hasVisibleFilters ? toggleFiltersButtonProps : addFilterButtonProps)
64
+ });
65
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
66
+ className: "dataviews-filters__container-visibility-toggle",
67
+ children: !hasVisibleFilters ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_addFilter.AddFilterMenu, {
68
+ filters: filters,
69
+ view: view,
70
+ onChangeView: onChangeViewWithFilterVisibility,
71
+ setOpenedFilter: setOpenedFilter,
72
+ triggerProps: {
73
+ render: buttonComponent
74
+ }
75
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(FilterVisibilityToggle, {
76
+ buttonRef: buttonRef,
77
+ filtersCount: view.filters?.length,
78
+ children: buttonComponent
79
+ })
80
+ });
81
+ }
82
+ function FilterVisibilityToggle({
83
+ buttonRef,
84
+ filtersCount,
85
+ children
86
+ }) {
87
+ // Focus the `add filter` button when unmounts.
88
+ (0, _element.useEffect)(() => () => {
89
+ buttonRef.current?.focus();
90
+ }, [buttonRef]);
91
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
92
+ children: [children, !!filtersCount && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
93
+ className: "dataviews-filters-toggle__count",
94
+ children: filtersCount
95
+ })]
96
+ });
97
+ }
98
+ var _default = exports.default = FiltersToggle;
99
+ //# sourceMappingURL=toggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_element","require","_components","_icons","_i18n","_addFilter","_dataviewsContext","_interopRequireDefault","_jsxRuntime","FiltersToggle","filters","view","onChangeView","setOpenedFilter","isShowingFilter","setIsShowingFilter","useContext","DataViewsContext","buttonRef","useRef","onChangeViewWithFilterVisibility","useCallback","_view","visibleFilters","filter","isVisible","hasVisibleFilters","length","addFilterButtonProps","label","__","isPressed","toggleFiltersButtonProps","_x","onClick","buttonComponent","jsx","Button","ref","className","size","icon","funnel","children","AddFilterMenu","triggerProps","render","FilterVisibilityToggle","filtersCount","useEffect","current","focus","jsxs","Fragment","_default","exports","default"],"sources":["@wordpress/dataviews/src/components/dataviews-filters/toggle.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext, useRef, useCallback, useEffect } from '@wordpress/element';\nimport { Button } from '@wordpress/components';\nimport { funnel } from '@wordpress/icons';\nimport { __, _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { AddFilterMenu } from './add-filter';\nimport DataViewsContext from '../dataviews-context';\nimport type { View } from '../../types';\n\nfunction FiltersToggle() {\n\tconst {\n\t\tfilters,\n\t\tview,\n\t\tonChangeView,\n\t\tsetOpenedFilter,\n\t\tisShowingFilter,\n\t\tsetIsShowingFilter,\n\t} = useContext( DataViewsContext );\n\n\tconst buttonRef = useRef< HTMLButtonElement >( null );\n\tconst onChangeViewWithFilterVisibility = useCallback(\n\t\t( _view: View ) => {\n\t\t\tonChangeView( _view );\n\t\t\tsetIsShowingFilter( true );\n\t\t},\n\t\t[ onChangeView, setIsShowingFilter ]\n\t);\n\tconst visibleFilters = filters.filter( ( filter ) => filter.isVisible );\n\n\tconst hasVisibleFilters = !! visibleFilters.length;\n\tif ( filters.length === 0 ) {\n\t\treturn null;\n\t}\n\n\tconst addFilterButtonProps = {\n\t\tlabel: __( 'Add filter' ),\n\t\t'aria-expanded': false,\n\t\tisPressed: false,\n\t};\n\tconst toggleFiltersButtonProps = {\n\t\tlabel: _x( 'Filter', 'verb' ),\n\t\t'aria-expanded': isShowingFilter,\n\t\tisPressed: isShowingFilter,\n\t\tonClick: () => {\n\t\t\tif ( ! isShowingFilter ) {\n\t\t\t\tsetOpenedFilter( null );\n\t\t\t}\n\t\t\tsetIsShowingFilter( ! isShowingFilter );\n\t\t},\n\t};\n\tconst buttonComponent = (\n\t\t<Button\n\t\t\tref={ buttonRef }\n\t\t\tclassName=\"dataviews-filters__visibility-toggle\"\n\t\t\tsize=\"compact\"\n\t\t\ticon={ funnel }\n\t\t\t{ ...( hasVisibleFilters\n\t\t\t\t? toggleFiltersButtonProps\n\t\t\t\t: addFilterButtonProps ) }\n\t\t/>\n\t);\n\treturn (\n\t\t<div className=\"dataviews-filters__container-visibility-toggle\">\n\t\t\t{ ! hasVisibleFilters ? (\n\t\t\t\t<AddFilterMenu\n\t\t\t\t\tfilters={ filters }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeViewWithFilterVisibility }\n\t\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\t\ttriggerProps={ { render: buttonComponent } }\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<FilterVisibilityToggle\n\t\t\t\t\tbuttonRef={ buttonRef }\n\t\t\t\t\tfiltersCount={ view.filters?.length }\n\t\t\t\t>\n\t\t\t\t\t{ buttonComponent }\n\t\t\t\t</FilterVisibilityToggle>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nfunction FilterVisibilityToggle( {\n\tbuttonRef,\n\tfiltersCount,\n\tchildren,\n}: {\n\tbuttonRef: React.RefObject< HTMLButtonElement >;\n\tfiltersCount?: number;\n\tchildren: React.ReactNode;\n} ) {\n\t// Focus the `add filter` button when unmounts.\n\tuseEffect(\n\t\t() => () => {\n\t\t\tbuttonRef.current?.focus();\n\t\t},\n\t\t[ buttonRef ]\n\t);\n\treturn (\n\t\t<>\n\t\t\t{ children }\n\t\t\t{ !! filtersCount && (\n\t\t\t\t<span className=\"dataviews-filters-toggle__count\">\n\t\t\t\t\t{ filtersCount }\n\t\t\t\t</span>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default FiltersToggle;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _element = require("@wordpress/element");
8
+ var _constants = require("../../constants");
9
+ /**
10
+ * WordPress dependencies
11
+ */
12
+
13
+ /**
14
+ * Internal dependencies
15
+ */
16
+
17
+ function useFilters(fields, view) {
18
+ return (0, _element.useMemo)(() => {
19
+ const filters = [];
20
+ fields.forEach(field => {
21
+ var _view$filters$some, _field$elements;
22
+ if (field.filterBy === false || !field.elements?.length && !field.Edit) {
23
+ return;
24
+ }
25
+ const operators = field.filterBy.operators;
26
+ const isPrimary = !!field.filterBy?.isPrimary;
27
+ const isLocked = (_view$filters$some = view.filters?.some(f => f.field === field.id && !!f.isLocked)) !== null && _view$filters$some !== void 0 ? _view$filters$some : false;
28
+ filters.push({
29
+ field: field.id,
30
+ name: field.label,
31
+ elements: (_field$elements = field.elements) !== null && _field$elements !== void 0 ? _field$elements : [],
32
+ singleSelection: operators.some(op => _constants.SINGLE_SELECTION_OPERATORS.includes(op)),
33
+ operators,
34
+ isVisible: isLocked || isPrimary || !!view.filters?.some(f => f.field === field.id && _constants.ALL_OPERATORS.includes(f.operator)),
35
+ isPrimary,
36
+ isLocked
37
+ });
38
+ });
39
+
40
+ // Sort filters by:
41
+ // - locked filters go first
42
+ // - primary filters go next
43
+ // - then, sort by name
44
+ filters.sort((a, b) => {
45
+ if (a.isLocked && !b.isLocked) {
46
+ return -1;
47
+ }
48
+ if (!a.isLocked && b.isLocked) {
49
+ return 1;
50
+ }
51
+ if (a.isPrimary && !b.isPrimary) {
52
+ return -1;
53
+ }
54
+ if (!a.isPrimary && b.isPrimary) {
55
+ return 1;
56
+ }
57
+ return a.name.localeCompare(b.name);
58
+ });
59
+ return filters;
60
+ }, [fields, view]);
61
+ }
62
+ var _default = exports.default = useFilters;
63
+ //# sourceMappingURL=use-filters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_element","require","_constants","useFilters","fields","view","useMemo","filters","forEach","field","_view$filters$some","_field$elements","filterBy","elements","length","Edit","operators","isPrimary","isLocked","some","f","id","push","name","label","singleSelection","op","SINGLE_SELECTION_OPERATORS","includes","isVisible","ALL_OPERATORS","operator","sort","a","b","localeCompare","_default","exports","default"],"sources":["@wordpress/dataviews/src/components/dataviews-filters/use-filters.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { ALL_OPERATORS, SINGLE_SELECTION_OPERATORS } from '../../constants';\nimport type { NormalizedFilter, NormalizedField, View } from '../../types';\n\nfunction useFilters( fields: NormalizedField< any >[], view: View ) {\n\treturn useMemo( () => {\n\t\tconst filters: NormalizedFilter[] = [];\n\t\tfields.forEach( ( field ) => {\n\t\t\tif (\n\t\t\t\tfield.filterBy === false ||\n\t\t\t\t( ! field.elements?.length && ! field.Edit )\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst operators = field.filterBy.operators;\n\t\t\tconst isPrimary = !! field.filterBy?.isPrimary;\n\t\t\tconst isLocked =\n\t\t\t\tview.filters?.some(\n\t\t\t\t\t( f ) => f.field === field.id && !! f.isLocked\n\t\t\t\t) ?? false;\n\t\t\tfilters.push( {\n\t\t\t\tfield: field.id,\n\t\t\t\tname: field.label,\n\t\t\t\telements: field.elements ?? [],\n\t\t\t\tsingleSelection: operators.some( ( op ) =>\n\t\t\t\t\tSINGLE_SELECTION_OPERATORS.includes( op )\n\t\t\t\t),\n\t\t\t\toperators,\n\t\t\t\tisVisible:\n\t\t\t\t\tisLocked ||\n\t\t\t\t\tisPrimary ||\n\t\t\t\t\t!! view.filters?.some(\n\t\t\t\t\t\t( f ) =>\n\t\t\t\t\t\t\tf.field === field.id &&\n\t\t\t\t\t\t\tALL_OPERATORS.includes( f.operator )\n\t\t\t\t\t),\n\t\t\t\tisPrimary,\n\t\t\t\tisLocked,\n\t\t\t} );\n\t\t} );\n\n\t\t// Sort filters by:\n\t\t// - locked filters go first\n\t\t// - primary filters go next\n\t\t// - then, sort by name\n\t\tfilters.sort( ( a, b ) => {\n\t\t\tif ( a.isLocked && ! b.isLocked ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( ! a.isLocked && b.isLocked ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\tif ( a.isPrimary && ! b.isPrimary ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( ! a.isPrimary && b.isPrimary ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\treturn a.name.localeCompare( b.name );\n\t\t} );\n\t\treturn filters;\n\t}, [ fields, view ] );\n}\n\nexport default useFilters;\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AAKA,IAAAC,UAAA,GAAAD,OAAA;AARA;AACA;AACA;;AAGA;AACA;AACA;;AAIA,SAASE,UAAUA,CAAEC,MAAgC,EAAEC,IAAU,EAAG;EACnE,OAAO,IAAAC,gBAAO,EAAE,MAAM;IACrB,MAAMC,OAA2B,GAAG,EAAE;IACtCH,MAAM,CAACI,OAAO,CAAIC,KAAK,IAAM;MAAA,IAAAC,kBAAA,EAAAC,eAAA;MAC5B,IACCF,KAAK,CAACG,QAAQ,KAAK,KAAK,IACtB,CAAEH,KAAK,CAACI,QAAQ,EAAEC,MAAM,IAAI,CAAEL,KAAK,CAACM,IAAM,EAC3C;QACD;MACD;MAEA,MAAMC,SAAS,GAAGP,KAAK,CAACG,QAAQ,CAACI,SAAS;MAC1C,MAAMC,SAAS,GAAG,CAAC,CAAER,KAAK,CAACG,QAAQ,EAAEK,SAAS;MAC9C,MAAMC,QAAQ,IAAAR,kBAAA,GACbL,IAAI,CAACE,OAAO,EAAEY,IAAI,CACfC,CAAC,IAAMA,CAAC,CAACX,KAAK,KAAKA,KAAK,CAACY,EAAE,IAAI,CAAC,CAAED,CAAC,CAACF,QACvC,CAAC,cAAAR,kBAAA,cAAAA,kBAAA,GAAI,KAAK;MACXH,OAAO,CAACe,IAAI,CAAE;QACbb,KAAK,EAAEA,KAAK,CAACY,EAAE;QACfE,IAAI,EAAEd,KAAK,CAACe,KAAK;QACjBX,QAAQ,GAAAF,eAAA,GAAEF,KAAK,CAACI,QAAQ,cAAAF,eAAA,cAAAA,eAAA,GAAI,EAAE;QAC9Bc,eAAe,EAAET,SAAS,CAACG,IAAI,CAAIO,EAAE,IACpCC,qCAA0B,CAACC,QAAQ,CAAEF,EAAG,CACzC,CAAC;QACDV,SAAS;QACTa,SAAS,EACRX,QAAQ,IACRD,SAAS,IACT,CAAC,CAAEZ,IAAI,CAACE,OAAO,EAAEY,IAAI,CAClBC,CAAC,IACFA,CAAC,CAACX,KAAK,KAAKA,KAAK,CAACY,EAAE,IACpBS,wBAAa,CAACF,QAAQ,CAAER,CAAC,CAACW,QAAS,CACrC,CAAC;QACFd,SAAS;QACTC;MACD,CAAE,CAAC;IACJ,CAAE,CAAC;;IAEH;IACA;IACA;IACA;IACAX,OAAO,CAACyB,IAAI,CAAE,CAAEC,CAAC,EAAEC,CAAC,KAAM;MACzB,IAAKD,CAAC,CAACf,QAAQ,IAAI,CAAEgB,CAAC,CAAChB,QAAQ,EAAG;QACjC,OAAO,CAAC,CAAC;MACV;MACA,IAAK,CAAEe,CAAC,CAACf,QAAQ,IAAIgB,CAAC,CAAChB,QAAQ,EAAG;QACjC,OAAO,CAAC;MACT;MACA,IAAKe,CAAC,CAAChB,SAAS,IAAI,CAAEiB,CAAC,CAACjB,SAAS,EAAG;QACnC,OAAO,CAAC,CAAC;MACV;MACA,IAAK,CAAEgB,CAAC,CAAChB,SAAS,IAAIiB,CAAC,CAACjB,SAAS,EAAG;QACnC,OAAO,CAAC;MACT;MACA,OAAOgB,CAAC,CAACV,IAAI,CAACY,aAAa,CAAED,CAAC,CAACX,IAAK,CAAC;IACtC,CAAE,CAAC;IACH,OAAOhB,OAAO;EACf,CAAC,EAAE,CAAEH,MAAM,EAAEC,IAAI,CAAG,CAAC;AACtB;AAAC,IAAA+B,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcnC,UAAU","ignoreList":[]}
@@ -10,7 +10,7 @@ var _element = require("@wordpress/element");
10
10
  var _compose = require("@wordpress/compose");
11
11
  var _dataviewsContext = _interopRequireDefault(require("../dataviews-context"));
12
12
  var _dataviewsLayouts = require("../../dataviews-layouts");
13
- var _dataviewsFilters = _interopRequireWildcard(require("../dataviews-filters"));
13
+ var _dataviewsFilters = require("../dataviews-filters");
14
14
  var _dataviewsLayout = _interopRequireDefault(require("../dataviews-layout"));
15
15
  var _footer = require("./footer");
16
16
  var _dataviewsSearch = _interopRequireDefault(require("../dataviews-search"));
@@ -40,9 +40,6 @@ function DefaultUI({
40
40
  search = true,
41
41
  searchLabel = undefined
42
42
  }) {
43
- const {
44
- isShowingFilter
45
- } = (0, _element.useContext)(_dataviewsContext.default);
46
43
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
47
44
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
48
45
  alignment: "top",
@@ -64,7 +61,7 @@ function DefaultUI({
64
61
  },
65
62
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsViewConfig.default, {})
66
63
  })]
67
- }), isShowingFilter && /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsFilters.default, {
64
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsFilters.FiltersToggled, {
68
65
  className: "dataviews-filters__container"
69
66
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsLayout.default, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_footer.DataViewsPickerFooter, {})]
70
67
  });
@@ -190,7 +187,8 @@ function DataViewsPicker({
190
187
  // Populate the DataViews sub components
191
188
  const DataViewsPickerSubComponents = DataViewsPicker;
192
189
  DataViewsPickerSubComponents.BulkActionToolbar = _footer.DataViewsPickerFooter;
193
- DataViewsPickerSubComponents.Filters = _dataviewsFilters.default;
190
+ DataViewsPickerSubComponents.Filters = _dataviewsFilters.Filters;
191
+ DataViewsPickerSubComponents.FiltersToggled = _dataviewsFilters.FiltersToggled;
194
192
  DataViewsPickerSubComponents.FiltersToggle = _dataviewsFilters.FiltersToggle;
195
193
  DataViewsPickerSubComponents.Layout = _dataviewsLayout.default;
196
194
  DataViewsPickerSubComponents.LayoutSwitcher = _dataviewsViewConfig.ViewTypeMenu;
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_element","_compose","_dataviewsContext","_interopRequireDefault","_dataviewsLayouts","_dataviewsFilters","_interopRequireWildcard","_dataviewsLayout","_footer","_dataviewsSearch","_dataviewsPagination","_dataviewsViewConfig","_normalizeFields","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","isItemClickable","dataViewsPickerLayouts","VIEW_LAYOUTS","filter","viewLayout","isPicker","defaultGetItemId","item","id","EMPTY_ARRAY","DefaultUI","search","searchLabel","undefined","isShowingFilter","useContext","DataViewsContext","jsxs","Fragment","children","__experimentalHStack","alignment","justify","className","spacing","expanded","jsx","label","FiltersToggle","style","flexShrink","DataViewsPickerFooter","DataViewsPicker","view","onChangeView","fields","actions","data","getItemId","isLoading","paginationInfo","defaultLayouts","defaultLayoutsProperty","selection","onChangeSelection","config","perPageSizes","itemListLabel","empty","infiniteScrollHandler","containerRef","useRef","containerWidth","setContainerWidth","useState","resizeObserverRef","useResizeObserver","resizeObserverEntries","borderBoxSize","inlineSize","box","openedFilter","setOpenedFilter","setSelectionWithChange","value","newValue","_fields","useMemo","normalizeFields","filters","useFilters","hasPrimaryOrLockedFilters","some","isPrimary","isLocked","setIsShowingFilter","useEffect","infiniteScrollEnabled","current","handleScroll","throttle","event","target","scrollTop","scrollHeight","clientHeight","container","addEventListener","removeEventListener","cancel","fromEntries","entries","layoutType","type","Provider","hasInfiniteScrollHandler","ref","DataViewsPickerSubComponents","BulkActionToolbar","Filters","DataViewsFilters","Layout","DataViewsLayout","LayoutSwitcher","ViewTypeMenu","Pagination","DataViewsPagination","Search","DataViewsSearch","ViewConfig","DataviewsViewConfigDropdown","_default","exports"],"sources":["@wordpress/dataviews/src/components/dataviews-picker/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __experimentalHStack as HStack } from '@wordpress/components';\nimport {\n\tuseContext,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from '@wordpress/element';\nimport { useResizeObserver, throttle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport { VIEW_LAYOUTS } from '../../dataviews-layouts';\nimport {\n\tdefault as DataViewsFilters,\n\tuseFilters,\n\tFiltersToggle,\n} from '../dataviews-filters';\nimport DataViewsLayout from '../dataviews-layout';\nimport { DataViewsPickerFooter } from './footer';\nimport DataViewsSearch from '../dataviews-search';\nimport { DataViewsPagination } from '../dataviews-pagination';\nimport DataViewsViewConfig, {\n\tDataviewsViewConfigDropdown,\n\tViewTypeMenu,\n} from '../dataviews-view-config';\nimport { normalizeFields } from '../../normalize-fields';\nimport type { ActionButton, Field, View, SupportedLayouts } from '../../types';\nimport type { SelectionOrUpdater } from '../../private-types';\ntype ItemWithId = { id: string };\n\nconst isItemClickable = () => false;\n\nconst dataViewsPickerLayouts = VIEW_LAYOUTS.filter(\n\t( viewLayout ) => viewLayout.isPicker\n);\n\ntype DataViewsPickerProps< Item > = {\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tfields: Field< Item >[];\n\tactions?: ActionButton< Item >[];\n\tsearch?: boolean;\n\tsearchLabel?: string;\n\tdata: Item[];\n\tisLoading?: boolean;\n\tpaginationInfo: {\n\t\ttotalItems: number;\n\t\ttotalPages: number;\n\t\tinfiniteScrollHandler?: () => void;\n\t};\n\tdefaultLayouts: SupportedLayouts;\n\tselection: string[];\n\tonChangeSelection: ( items: string[] ) => void;\n\tchildren?: ReactNode;\n\tconfig?: {\n\t\tperPageSizes: number[];\n\t};\n\titemListLabel?: string;\n\tempty?: ReactNode;\n} & ( Item extends ItemWithId\n\t? { getItemId?: ( item: Item ) => string }\n\t: { getItemId: ( item: Item ) => string } );\n\nconst defaultGetItemId = ( item: ItemWithId ) => item.id;\nconst EMPTY_ARRAY: any[] = [];\n\ntype DefaultUIProps = Pick<\n\tDataViewsPickerProps< any >,\n\t'search' | 'searchLabel'\n>;\n\nfunction DefaultUI( {\n\tsearch = true,\n\tsearchLabel = undefined,\n}: DefaultUIProps ) {\n\tconst { isShowingFilter } = useContext( DataViewsContext );\n\treturn (\n\t\t<>\n\t\t\t<HStack\n\t\t\t\talignment=\"top\"\n\t\t\t\tjustify=\"space-between\"\n\t\t\t\tclassName=\"dataviews__view-actions\"\n\t\t\t\tspacing={ 1 }\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\tjustify=\"start\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t\tclassName=\"dataviews__search\"\n\t\t\t\t>\n\t\t\t\t\t{ search && <DataViewsSearch label={ searchLabel } /> }\n\t\t\t\t\t<FiltersToggle />\n\t\t\t\t</HStack>\n\t\t\t\t<HStack\n\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\texpanded={ false }\n\t\t\t\t\tstyle={ { flexShrink: 0 } }\n\t\t\t\t>\n\t\t\t\t\t<DataViewsViewConfig />\n\t\t\t\t</HStack>\n\t\t\t</HStack>\n\t\t\t{ isShowingFilter && (\n\t\t\t\t<DataViewsFilters className=\"dataviews-filters__container\" />\n\t\t\t) }\n\t\t\t<DataViewsLayout />\n\t\t\t<DataViewsPickerFooter />\n\t\t</>\n\t);\n}\n\nfunction DataViewsPicker< Item >( {\n\tview,\n\tonChangeView,\n\tfields,\n\tsearch = true,\n\tsearchLabel = undefined,\n\tactions = EMPTY_ARRAY,\n\tdata,\n\tgetItemId = defaultGetItemId,\n\tisLoading = false,\n\tpaginationInfo,\n\tdefaultLayouts: defaultLayoutsProperty,\n\tselection,\n\tonChangeSelection,\n\tchildren,\n\tconfig = { perPageSizes: [ 10, 20, 50, 100 ] },\n\titemListLabel,\n\tempty,\n}: DataViewsPickerProps< Item > ) {\n\tconst { infiniteScrollHandler } = paginationInfo;\n\tconst containerRef = useRef< HTMLDivElement | null >( null );\n\tconst [ containerWidth, setContainerWidth ] = useState( 0 );\n\tconst resizeObserverRef = useResizeObserver(\n\t\t( resizeObserverEntries: any ) => {\n\t\t\tsetContainerWidth(\n\t\t\t\tresizeObserverEntries[ 0 ].borderBoxSize[ 0 ].inlineSize\n\t\t\t);\n\t\t},\n\t\t{ box: 'border-box' }\n\t);\n\tconst [ openedFilter, setOpenedFilter ] = useState< string | null >( null );\n\tfunction setSelectionWithChange( value: SelectionOrUpdater ) {\n\t\tconst newValue =\n\t\t\ttypeof value === 'function' ? value( selection ) : value;\n\t\tif ( onChangeSelection ) {\n\t\t\tonChangeSelection( newValue );\n\t\t}\n\t}\n\tconst _fields = useMemo( () => normalizeFields( fields ), [ fields ] );\n\tconst filters = useFilters( _fields, view );\n\tconst hasPrimaryOrLockedFilters = useMemo(\n\t\t() =>\n\t\t\t( filters || [] ).some(\n\t\t\t\t( filter ) => filter.isPrimary || filter.isLocked\n\t\t\t),\n\t\t[ filters ]\n\t);\n\tconst [ isShowingFilter, setIsShowingFilter ] = useState< boolean >(\n\t\thasPrimaryOrLockedFilters\n\t);\n\n\tuseEffect( () => {\n\t\tif ( hasPrimaryOrLockedFilters && ! isShowingFilter ) {\n\t\t\tsetIsShowingFilter( true );\n\t\t}\n\t}, [ hasPrimaryOrLockedFilters, isShowingFilter ] );\n\n\t// Attach scroll event listener for infinite scroll\n\tuseEffect( () => {\n\t\tif ( ! view.infiniteScrollEnabled || ! containerRef.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst handleScroll = throttle( ( event: unknown ) => {\n\t\t\tconst target = ( event as Event ).target as HTMLElement;\n\t\t\tconst scrollTop = target.scrollTop;\n\t\t\tconst scrollHeight = target.scrollHeight;\n\t\t\tconst clientHeight = target.clientHeight;\n\n\t\t\t// Check if user has scrolled near the bottom\n\t\t\tif ( scrollTop + clientHeight >= scrollHeight - 100 ) {\n\t\t\t\tinfiniteScrollHandler?.();\n\t\t\t}\n\t\t}, 100 ); // Throttle to 100ms\n\n\t\tconst container = containerRef.current;\n\t\tcontainer.addEventListener( 'scroll', handleScroll );\n\n\t\treturn () => {\n\t\t\tcontainer.removeEventListener( 'scroll', handleScroll );\n\t\t\thandleScroll.cancel(); // Cancel any pending throttled calls\n\t\t};\n\t}, [ infiniteScrollHandler, view.infiniteScrollEnabled ] );\n\n\t// Filter out DataViewsPicker layouts.\n\tconst defaultLayouts = useMemo(\n\t\t() =>\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries( defaultLayoutsProperty ).filter(\n\t\t\t\t\t( [ layoutType ] ) => {\n\t\t\t\t\t\treturn dataViewsPickerLayouts.some(\n\t\t\t\t\t\t\t( viewLayout ) => viewLayout.type === layoutType\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t),\n\t\t[ defaultLayoutsProperty ]\n\t);\n\n\tif ( ! defaultLayouts[ view.type ] ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<DataViewsContext.Provider\n\t\t\tvalue={ {\n\t\t\t\tview,\n\t\t\t\tonChangeView,\n\t\t\t\tfields: _fields,\n\t\t\t\tactions,\n\t\t\t\tdata,\n\t\t\t\tisLoading,\n\t\t\t\tpaginationInfo,\n\t\t\t\tisItemClickable,\n\t\t\t\tselection,\n\t\t\t\tonChangeSelection: setSelectionWithChange,\n\t\t\t\topenedFilter,\n\t\t\t\tsetOpenedFilter,\n\t\t\t\tgetItemId,\n\t\t\t\tcontainerWidth,\n\t\t\t\tcontainerRef,\n\t\t\t\tresizeObserverRef,\n\t\t\t\tdefaultLayouts,\n\t\t\t\tfilters,\n\t\t\t\tisShowingFilter,\n\t\t\t\tsetIsShowingFilter,\n\t\t\t\tconfig,\n\t\t\t\titemListLabel,\n\t\t\t\tempty,\n\t\t\t\thasInfiniteScrollHandler: !! infiniteScrollHandler,\n\t\t\t} }\n\t\t>\n\t\t\t<div className=\"dataviews-picker-wrapper\" ref={ containerRef }>\n\t\t\t\t{ children ?? (\n\t\t\t\t\t<DefaultUI search={ search } searchLabel={ searchLabel } />\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</DataViewsContext.Provider>\n\t);\n}\n\n// Populate the DataViews sub components\nconst DataViewsPickerSubComponents =\n\tDataViewsPicker as typeof DataViewsPicker & {\n\t\tBulkActionToolbar: typeof DataViewsPickerFooter;\n\t\tFilters: typeof DataViewsFilters;\n\t\tFiltersToggle: typeof FiltersToggle;\n\t\tLayout: typeof DataViewsLayout;\n\t\tLayoutSwitcher: typeof ViewTypeMenu;\n\t\tPagination: typeof DataViewsPagination;\n\t\tSearch: typeof DataViewsSearch;\n\t\tViewConfig: typeof DataviewsViewConfigDropdown;\n\t};\n\nDataViewsPickerSubComponents.BulkActionToolbar = DataViewsPickerFooter;\nDataViewsPickerSubComponents.Filters = DataViewsFilters;\nDataViewsPickerSubComponents.FiltersToggle = FiltersToggle;\nDataViewsPickerSubComponents.Layout = DataViewsLayout;\nDataViewsPickerSubComponents.LayoutSwitcher = ViewTypeMenu;\nDataViewsPickerSubComponents.Pagination = DataViewsPagination;\nDataViewsPickerSubComponents.Search = DataViewsSearch;\nDataViewsPickerSubComponents.ViewConfig = DataviewsViewConfigDropdown;\n\nexport default DataViewsPickerSubComponents;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_element","_compose","_dataviewsContext","_interopRequireDefault","_dataviewsLayouts","_dataviewsFilters","_dataviewsLayout","_footer","_dataviewsSearch","_dataviewsPagination","_dataviewsViewConfig","_interopRequireWildcard","_normalizeFields","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","isItemClickable","dataViewsPickerLayouts","VIEW_LAYOUTS","filter","viewLayout","isPicker","defaultGetItemId","item","id","EMPTY_ARRAY","DefaultUI","search","searchLabel","undefined","jsxs","Fragment","children","__experimentalHStack","alignment","justify","className","spacing","expanded","jsx","label","FiltersToggle","style","flexShrink","FiltersToggled","DataViewsPickerFooter","DataViewsPicker","view","onChangeView","fields","actions","data","getItemId","isLoading","paginationInfo","defaultLayouts","defaultLayoutsProperty","selection","onChangeSelection","config","perPageSizes","itemListLabel","empty","infiniteScrollHandler","containerRef","useRef","containerWidth","setContainerWidth","useState","resizeObserverRef","useResizeObserver","resizeObserverEntries","borderBoxSize","inlineSize","box","openedFilter","setOpenedFilter","setSelectionWithChange","value","newValue","_fields","useMemo","normalizeFields","filters","useFilters","hasPrimaryOrLockedFilters","some","isPrimary","isLocked","isShowingFilter","setIsShowingFilter","useEffect","infiniteScrollEnabled","current","handleScroll","throttle","event","target","scrollTop","scrollHeight","clientHeight","container","addEventListener","removeEventListener","cancel","fromEntries","entries","layoutType","type","Provider","hasInfiniteScrollHandler","ref","DataViewsPickerSubComponents","BulkActionToolbar","Filters","Layout","DataViewsLayout","LayoutSwitcher","ViewTypeMenu","Pagination","DataViewsPagination","Search","DataViewsSearch","ViewConfig","DataviewsViewConfigDropdown","_default","exports"],"sources":["@wordpress/dataviews/src/components/dataviews-picker/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __experimentalHStack as HStack } from '@wordpress/components';\nimport { useEffect, useMemo, useRef, useState } from '@wordpress/element';\nimport { useResizeObserver, throttle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport { VIEW_LAYOUTS } from '../../dataviews-layouts';\nimport {\n\tFilters,\n\tFiltersToggled,\n\tuseFilters,\n\tFiltersToggle,\n} from '../dataviews-filters';\nimport DataViewsLayout from '../dataviews-layout';\nimport { DataViewsPickerFooter } from './footer';\nimport DataViewsSearch from '../dataviews-search';\nimport { DataViewsPagination } from '../dataviews-pagination';\nimport DataViewsViewConfig, {\n\tDataviewsViewConfigDropdown,\n\tViewTypeMenu,\n} from '../dataviews-view-config';\nimport { normalizeFields } from '../../normalize-fields';\nimport type { ActionButton, Field, View, SupportedLayouts } from '../../types';\nimport type { SelectionOrUpdater } from '../../private-types';\ntype ItemWithId = { id: string };\n\nconst isItemClickable = () => false;\n\nconst dataViewsPickerLayouts = VIEW_LAYOUTS.filter(\n\t( viewLayout ) => viewLayout.isPicker\n);\n\ntype DataViewsPickerProps< Item > = {\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tfields: Field< Item >[];\n\tactions?: ActionButton< Item >[];\n\tsearch?: boolean;\n\tsearchLabel?: string;\n\tdata: Item[];\n\tisLoading?: boolean;\n\tpaginationInfo: {\n\t\ttotalItems: number;\n\t\ttotalPages: number;\n\t\tinfiniteScrollHandler?: () => void;\n\t};\n\tdefaultLayouts: SupportedLayouts;\n\tselection: string[];\n\tonChangeSelection: ( items: string[] ) => void;\n\tchildren?: ReactNode;\n\tconfig?: {\n\t\tperPageSizes: number[];\n\t};\n\titemListLabel?: string;\n\tempty?: ReactNode;\n} & ( Item extends ItemWithId\n\t? { getItemId?: ( item: Item ) => string }\n\t: { getItemId: ( item: Item ) => string } );\n\nconst defaultGetItemId = ( item: ItemWithId ) => item.id;\nconst EMPTY_ARRAY: any[] = [];\n\ntype DefaultUIProps = Pick<\n\tDataViewsPickerProps< any >,\n\t'search' | 'searchLabel'\n>;\n\nfunction DefaultUI( {\n\tsearch = true,\n\tsearchLabel = undefined,\n}: DefaultUIProps ) {\n\treturn (\n\t\t<>\n\t\t\t<HStack\n\t\t\t\talignment=\"top\"\n\t\t\t\tjustify=\"space-between\"\n\t\t\t\tclassName=\"dataviews__view-actions\"\n\t\t\t\tspacing={ 1 }\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\tjustify=\"start\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t\tclassName=\"dataviews__search\"\n\t\t\t\t>\n\t\t\t\t\t{ search && <DataViewsSearch label={ searchLabel } /> }\n\t\t\t\t\t<FiltersToggle />\n\t\t\t\t</HStack>\n\t\t\t\t<HStack\n\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\texpanded={ false }\n\t\t\t\t\tstyle={ { flexShrink: 0 } }\n\t\t\t\t>\n\t\t\t\t\t<DataViewsViewConfig />\n\t\t\t\t</HStack>\n\t\t\t</HStack>\n\t\t\t<FiltersToggled className=\"dataviews-filters__container\" />\n\t\t\t<DataViewsLayout />\n\t\t\t<DataViewsPickerFooter />\n\t\t</>\n\t);\n}\n\nfunction DataViewsPicker< Item >( {\n\tview,\n\tonChangeView,\n\tfields,\n\tsearch = true,\n\tsearchLabel = undefined,\n\tactions = EMPTY_ARRAY,\n\tdata,\n\tgetItemId = defaultGetItemId,\n\tisLoading = false,\n\tpaginationInfo,\n\tdefaultLayouts: defaultLayoutsProperty,\n\tselection,\n\tonChangeSelection,\n\tchildren,\n\tconfig = { perPageSizes: [ 10, 20, 50, 100 ] },\n\titemListLabel,\n\tempty,\n}: DataViewsPickerProps< Item > ) {\n\tconst { infiniteScrollHandler } = paginationInfo;\n\tconst containerRef = useRef< HTMLDivElement | null >( null );\n\tconst [ containerWidth, setContainerWidth ] = useState( 0 );\n\tconst resizeObserverRef = useResizeObserver(\n\t\t( resizeObserverEntries: any ) => {\n\t\t\tsetContainerWidth(\n\t\t\t\tresizeObserverEntries[ 0 ].borderBoxSize[ 0 ].inlineSize\n\t\t\t);\n\t\t},\n\t\t{ box: 'border-box' }\n\t);\n\tconst [ openedFilter, setOpenedFilter ] = useState< string | null >( null );\n\tfunction setSelectionWithChange( value: SelectionOrUpdater ) {\n\t\tconst newValue =\n\t\t\ttypeof value === 'function' ? value( selection ) : value;\n\t\tif ( onChangeSelection ) {\n\t\t\tonChangeSelection( newValue );\n\t\t}\n\t}\n\tconst _fields = useMemo( () => normalizeFields( fields ), [ fields ] );\n\tconst filters = useFilters( _fields, view );\n\tconst hasPrimaryOrLockedFilters = useMemo(\n\t\t() =>\n\t\t\t( filters || [] ).some(\n\t\t\t\t( filter ) => filter.isPrimary || filter.isLocked\n\t\t\t),\n\t\t[ filters ]\n\t);\n\tconst [ isShowingFilter, setIsShowingFilter ] = useState< boolean >(\n\t\thasPrimaryOrLockedFilters\n\t);\n\n\tuseEffect( () => {\n\t\tif ( hasPrimaryOrLockedFilters && ! isShowingFilter ) {\n\t\t\tsetIsShowingFilter( true );\n\t\t}\n\t}, [ hasPrimaryOrLockedFilters, isShowingFilter ] );\n\n\t// Attach scroll event listener for infinite scroll\n\tuseEffect( () => {\n\t\tif ( ! view.infiniteScrollEnabled || ! containerRef.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst handleScroll = throttle( ( event: unknown ) => {\n\t\t\tconst target = ( event as Event ).target as HTMLElement;\n\t\t\tconst scrollTop = target.scrollTop;\n\t\t\tconst scrollHeight = target.scrollHeight;\n\t\t\tconst clientHeight = target.clientHeight;\n\n\t\t\t// Check if user has scrolled near the bottom\n\t\t\tif ( scrollTop + clientHeight >= scrollHeight - 100 ) {\n\t\t\t\tinfiniteScrollHandler?.();\n\t\t\t}\n\t\t}, 100 ); // Throttle to 100ms\n\n\t\tconst container = containerRef.current;\n\t\tcontainer.addEventListener( 'scroll', handleScroll );\n\n\t\treturn () => {\n\t\t\tcontainer.removeEventListener( 'scroll', handleScroll );\n\t\t\thandleScroll.cancel(); // Cancel any pending throttled calls\n\t\t};\n\t}, [ infiniteScrollHandler, view.infiniteScrollEnabled ] );\n\n\t// Filter out DataViewsPicker layouts.\n\tconst defaultLayouts = useMemo(\n\t\t() =>\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries( defaultLayoutsProperty ).filter(\n\t\t\t\t\t( [ layoutType ] ) => {\n\t\t\t\t\t\treturn dataViewsPickerLayouts.some(\n\t\t\t\t\t\t\t( viewLayout ) => viewLayout.type === layoutType\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t),\n\t\t[ defaultLayoutsProperty ]\n\t);\n\n\tif ( ! defaultLayouts[ view.type ] ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<DataViewsContext.Provider\n\t\t\tvalue={ {\n\t\t\t\tview,\n\t\t\t\tonChangeView,\n\t\t\t\tfields: _fields,\n\t\t\t\tactions,\n\t\t\t\tdata,\n\t\t\t\tisLoading,\n\t\t\t\tpaginationInfo,\n\t\t\t\tisItemClickable,\n\t\t\t\tselection,\n\t\t\t\tonChangeSelection: setSelectionWithChange,\n\t\t\t\topenedFilter,\n\t\t\t\tsetOpenedFilter,\n\t\t\t\tgetItemId,\n\t\t\t\tcontainerWidth,\n\t\t\t\tcontainerRef,\n\t\t\t\tresizeObserverRef,\n\t\t\t\tdefaultLayouts,\n\t\t\t\tfilters,\n\t\t\t\tisShowingFilter,\n\t\t\t\tsetIsShowingFilter,\n\t\t\t\tconfig,\n\t\t\t\titemListLabel,\n\t\t\t\tempty,\n\t\t\t\thasInfiniteScrollHandler: !! infiniteScrollHandler,\n\t\t\t} }\n\t\t>\n\t\t\t<div className=\"dataviews-picker-wrapper\" ref={ containerRef }>\n\t\t\t\t{ children ?? (\n\t\t\t\t\t<DefaultUI search={ search } searchLabel={ searchLabel } />\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</DataViewsContext.Provider>\n\t);\n}\n\n// Populate the DataViews sub components\nconst DataViewsPickerSubComponents =\n\tDataViewsPicker as typeof DataViewsPicker & {\n\t\tBulkActionToolbar: typeof DataViewsPickerFooter;\n\t\tFilters: typeof Filters;\n\t\tFiltersToggled: typeof FiltersToggled;\n\t\tFiltersToggle: typeof FiltersToggle;\n\t\tLayout: typeof DataViewsLayout;\n\t\tLayoutSwitcher: typeof ViewTypeMenu;\n\t\tPagination: typeof DataViewsPagination;\n\t\tSearch: typeof DataViewsSearch;\n\t\tViewConfig: typeof DataviewsViewConfigDropdown;\n\t};\n\nDataViewsPickerSubComponents.BulkActionToolbar = DataViewsPickerFooter;\nDataViewsPickerSubComponents.Filters = Filters;\nDataViewsPickerSubComponents.FiltersToggled = FiltersToggled;\nDataViewsPickerSubComponents.FiltersToggle = FiltersToggle;\nDataViewsPickerSubComponents.Layout = DataViewsLayout;\nDataViewsPickerSubComponents.LayoutSwitcher = ViewTypeMenu;\nDataViewsPickerSubComponents.Pagination = DataViewsPagination;\nDataViewsPickerSubComponents.Search = DataViewsSearch;\nDataViewsPickerSubComponents.ViewConfig = DataviewsViewConfigDropdown;\n\nexport default DataViewsPickerSubComponents;\n"],"mappings":"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","ignoreList":[]}
@@ -404,8 +404,8 @@ function FieldControl() {
404
404
  } = (0, _element.useContext)(_dataviewsContext.default);
405
405
  const togglableFields = [view?.titleField, view?.mediaField, view?.descriptionField].filter(Boolean);
406
406
  const visibleFieldIds = (_view$fields2 = view.fields) !== null && _view$fields2 !== void 0 ? _view$fields2 : [];
407
- const hiddenFields = fields.filter(f => !visibleFieldIds.includes(f.id) && !togglableFields.includes(f.id) && f.type !== 'media');
408
- const visibleFields = visibleFieldIds.map(fieldId => fields.find(f => f.id === fieldId)).filter(isDefined);
407
+ const hiddenFields = fields.filter(f => !visibleFieldIds.includes(f.id) && !togglableFields.includes(f.id) && f.type !== 'media' && f.enableHiding !== false);
408
+ let visibleFields = visibleFieldIds.map(fieldId => fields.find(f => f.id === fieldId)).filter(isDefined);
409
409
  if (!visibleFields?.length && !hiddenFields?.length) {
410
410
  return null;
411
411
  }
@@ -452,7 +452,7 @@ function FieldControl() {
452
452
  }].filter(({
453
453
  field
454
454
  }) => isDefined(field));
455
- const visibleLockedFields = lockedFields.filter(({
455
+ let visibleLockedFields = lockedFields.filter(({
456
456
  field,
457
457
  isVisibleFlag
458
458
  }) => {
@@ -462,6 +462,25 @@ function FieldControl() {
462
462
  isDefined(field) && ((_view$isVisibleFlag = view[isVisibleFlag]) !== null && _view$isVisibleFlag !== void 0 ? _view$isVisibleFlag : true)
463
463
  );
464
464
  });
465
+
466
+ // If only one locked field is visible, prevent it from being hidden.
467
+ if (visibleLockedFields.length === 1) {
468
+ visibleLockedFields = visibleLockedFields.map(locked => ({
469
+ ...locked,
470
+ field: {
471
+ ...locked.field,
472
+ enableHiding: false
473
+ }
474
+ }));
475
+ }
476
+
477
+ // If no locked fields are visible but there are visibleFields, lock the last visible field.
478
+ if (visibleLockedFields.length === 0 && visibleFields.length === 1) {
479
+ visibleFields = [{
480
+ ...visibleFields[0],
481
+ enableHiding: false
482
+ }];
483
+ }
465
484
  const hiddenLockedFields = lockedFields.filter(({
466
485
  field,
467
486
  isVisibleFlag
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_element","_icons","_warning","_compose","_constants","_dataviewsLayouts","_dataviewsContext","_infiniteScrollToggle","_lockUnlock","_jsxRuntime","Menu","unlock","componentsPrivateApis","DATAVIEWS_CONFIG_POPOVER_PROPS","className","placement","offset","ViewTypeMenu","view","onChangeView","defaultLayouts","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","ItemsPerPageControl","infiniteScrollEnabled","perPageSizes","perPage","disabled","newItemsPerPage","newItemsPerPageNumber","undefined","parseInt","page","__experimentalToggleGroupControlOption","toString","PreviewOptions","previewOptions","onChangePreviewOption","onMenuOpenChange","activeOption","focusPreviewOptionsField","setTimeout","element","document","querySelector","HTMLElement","focus","onOpenChange","moreVertical","FieldItem","description","isVisible","isFirst","isLast","canMove","onToggleVisibility","onMoveUp","onMoveDown","isChangingPreviewOption","setIsChangingPreviewOption","useState","focusVisibilityField","__experimentalItem","__experimentalHStack","expanded","clsx","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","previewField","previewFields","previewFieldUI","_view$showMedia","isPreviewFieldVisible","showMedia","newPreviewId","lockedFields","isVisibleFlag","ui","visibleLockedFields","_view$isVisibleFlag","hiddenLockedFields","_view$isVisibleFlag2","__experimentalVStack","spacing","__experimentalItemGroup","isBordered","isSeparated","BaseControl","VisualLabel","style","margin","SettingsSection","title","__experimentalGrid","columns","gap","__experimentalHeading","level","__experimentalText","variant","DataviewsViewConfigDropdown","popoverId","useInstanceId","_DataViewsViewConfig","activeLayout","Dropdown","expandOnMobile","popoverProps","renderToggle","onToggle","isOpen","cog","renderContent","__experimentalDropdownContentWrapper","paddingSize","viewConfigOptions","default","DataViewsViewConfig","memo","_default","exports"],"sources":["@wordpress/dataviews/src/components/dataviews-view-config/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ChangeEvent, ReactNode } from 'react';\nimport clsx from 'clsx';\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, useState } from '@wordpress/element';\nimport {\n\tchevronDown,\n\tchevronUp,\n\tcog,\n\tseen,\n\tunseen,\n\tlock,\n\tmoreVertical,\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, View } from '../../types';\nimport DataViewsContext from '../dataviews-context';\nimport InfiniteScrollToggle from './infinite-scroll-toggle';\nimport { unlock } from '../../lock-unlock';\n\nconst { Menu } = unlock( componentsPrivateApis );\n\nconst DATAVIEWS_CONFIG_POPOVER_PROPS = {\n\tclassName: 'dataviews-config__popover',\n\tplacement: 'bottom-end',\n\toffset: 9,\n};\n\nexport function ViewTypeMenu() {\n\tconst { view, onChangeView, defaultLayouts } =\n\t\tuseContext( 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\tcase 'pickerGrid':\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\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} as View );\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\nfunction ItemsPerPageControl() {\n\tconst { view, config, onChangeView } = useContext( DataViewsContext );\n\tconst { infiniteScrollEnabled } = view;\n\tif (\n\t\t! config ||\n\t\t! config.perPageSizes ||\n\t\tconfig.perPageSizes.length < 2 ||\n\t\tconfig.perPageSizes.length > 6 ||\n\t\tinfiniteScrollEnabled\n\t) {\n\t\treturn null;\n\t}\n\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{ config.perPageSizes.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 PreviewOptions( {\n\tpreviewOptions,\n\tonChangePreviewOption,\n\tonMenuOpenChange,\n\tactiveOption,\n}: {\n\tpreviewOptions?: Array< { label: string; id: string } >;\n\tonChangePreviewOption?: ( newPreviewOption: string ) => void;\n\tonMenuOpenChange: ( isOpen: boolean ) => void;\n\tactiveOption?: string;\n} ) {\n\tconst focusPreviewOptionsField = ( id: string ) => {\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-${ id } .dataviews-field-control__field-preview-options-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\treturn (\n\t\t<Menu onOpenChange={ onMenuOpenChange }>\n\t\t\t<Menu.TriggerButton\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"dataviews-field-control__field-preview-options-button\"\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\tlabel={ __( 'Preview' ) }\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{ previewOptions?.map( ( { id, label } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Menu.RadioItem\n\t\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\t\tvalue={ id }\n\t\t\t\t\t\t\tchecked={ id === activeOption }\n\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\tonChangePreviewOption?.( id );\n\t\t\t\t\t\t\t\tfocusPreviewOptionsField( id );\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>{ 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}\nfunction FieldItem( {\n\tfield,\n\tlabel,\n\tdescription,\n\tisVisible,\n\tisFirst,\n\tisLast,\n\tcanMove = true,\n\tonToggleVisibility,\n\tonMoveUp,\n\tonMoveDown,\n\tpreviewOptions,\n\tonChangePreviewOption,\n}: {\n\tfield: NormalizedField< any >;\n\tlabel?: string;\n\tdescription?: string;\n\tisVisible: boolean;\n\tisFirst?: boolean;\n\tisLast?: boolean;\n\tcanMove?: boolean;\n\tonToggleVisibility?: () => void;\n\tonMoveUp?: () => void;\n\tonMoveDown?: () => void;\n\tpreviewOptions?: Array< { label: string; id: string } >;\n\tonChangePreviewOption?: ( newPreviewOption: string ) => void;\n} ) {\n\tconst [ isChangingPreviewOption, setIsChangingPreviewOption ] =\n\t\tuseState< boolean >( false );\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={ clsx(\n\t\t\t\t\t'dataviews-field-control__field',\n\t\t\t\t\t`dataviews-field-control__field-${ field.id }`,\n\t\t\t\t\t// The actions are hidden when the mouse is not hovering the item, or focus\n\t\t\t\t\t// is outside the item.\n\t\t\t\t\t// For actions that require a popover, a menu etc, that would mean that when the interactive element\n\t\t\t\t\t// opens and the focus goes there the actions would be hidden.\n\t\t\t\t\t// To avoid that we add a class to the item, that makes sure actions are visible while there is some\n\t\t\t\t\t// interaction with the item.\n\t\t\t\t\t{ 'is-interacting': isChangingPreviewOption }\n\t\t\t\t) }\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-sub-label-container\">\n\t\t\t\t\t<span className=\"dataviews-field-control__label\">\n\t\t\t\t\t\t{ label || field.label }\n\t\t\t\t\t</span>\n\t\t\t\t\t{ description && (\n\t\t\t\t\t\t<span className=\"dataviews-field-control__sub-label\">\n\t\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\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\t{ previewOptions && (\n\t\t\t\t\t\t<PreviewOptions\n\t\t\t\t\t\t\tpreviewOptions={ previewOptions }\n\t\t\t\t\t\t\tonChangePreviewOption={ onChangePreviewOption }\n\t\t\t\t\t\t\tonMenuOpenChange={ setIsChangingPreviewOption }\n\t\t\t\t\t\t\tactiveOption={ field.id }\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\t\tf.type !== 'media'\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 previewField = fields.find( ( f ) => f.id === view.mediaField );\n\tconst descriptionField = fields.find(\n\t\t( f ) => f.id === view.descriptionField\n\t);\n\n\tconst previewFields = fields.filter( ( f ) => f.type === 'media' );\n\n\tlet previewFieldUI;\n\tif ( previewFields.length > 1 ) {\n\t\tconst isPreviewFieldVisible =\n\t\t\tisDefined( previewField ) && ( view.showMedia ?? true );\n\t\tpreviewFieldUI = isDefined( previewField ) && (\n\t\t\t<FieldItem\n\t\t\t\tkey={ previewField.id }\n\t\t\t\tfield={ previewField }\n\t\t\t\tlabel={ __( 'Preview' ) }\n\t\t\t\tdescription={ previewField.label }\n\t\t\t\tisVisible={ isPreviewFieldVisible }\n\t\t\t\tonToggleVisibility={ () => {\n\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t...view,\n\t\t\t\t\t\tshowMedia: ! isPreviewFieldVisible,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tcanMove={ false }\n\t\t\t\tpreviewOptions={ previewFields.map( ( field ) => ( {\n\t\t\t\t\tlabel: field.label,\n\t\t\t\t\tid: field.id,\n\t\t\t\t} ) ) }\n\t\t\t\tonChangePreviewOption={ ( newPreviewId ) =>\n\t\t\t\t\tonChangeView( { ...view, mediaField: newPreviewId } )\n\t\t\t\t}\n\t\t\t/>\n\t\t);\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: previewField,\n\t\t\tisVisibleFlag: 'showMedia',\n\t\t\tui: previewFieldUI,\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< {\n\t\tfield: NormalizedField< any >;\n\t\tisVisibleFlag: string;\n\t\tui?: ReactNode;\n\t} >;\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< {\n\t\tfield: NormalizedField< any >;\n\t\tisVisibleFlag: string;\n\t\tui?: ReactNode;\n\t} >;\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, ui } ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\tui ?? (\n\t\t\t\t\t\t\t\t\t\t<FieldItem\n\t\t\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\t\t\tisVisible\n\t\t\t\t\t\t\t\t\t\t\tonToggleVisibility={ () => {\n\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...view,\n\t\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\t} );\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\tcanMove={ false }\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}\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, ui } ) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\tui ?? (\n\t\t\t\t\t\t\t\t\t\t\t\t<FieldItem\n\t\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\t\tfield={ field }\n\t\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\t\tonToggleVisibility={ () => {\n\t\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\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[ isVisibleFlag ]:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrue,\n\t\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\t} }\n\t\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\t/>\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\nexport function 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<InfiniteScrollToggle />\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\treturn (\n\t\t<>\n\t\t\t<ViewTypeMenu />\n\t\t\t<DataviewsViewConfigDropdown />\n\t\t</>\n\t);\n}\n\nconst DataViewsViewConfig = memo( _DataViewsViewConfig );\n\nexport default DataViewsViewConfig;\n"],"mappings":";;;;;;;;;AAIA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,WAAA,GAAAD,OAAA;AAmBA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AASA,IAAAK,QAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AAKA,IAAAO,UAAA,GAAAP,OAAA;AACA,IAAAQ,iBAAA,GAAAR,OAAA;AAEA,IAAAS,iBAAA,GAAAV,sBAAA,CAAAC,OAAA;AACA,IAAAU,qBAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,WAAA,GAAAX,OAAA;AAA2C,IAAAY,WAAA,GAAAZ,OAAA;AAlD3C;AACA;AACA;;AAIA;AACA;AACA;;AAkCA;AACA;AACA;;AAQA,MAAM;EAAEa;AAAK,CAAC,GAAG,IAAAC,kBAAM,EAAEC,uBAAsB,CAAC;AAEhD,MAAMC,8BAA8B,GAAG;EACtCC,SAAS,EAAE,2BAA2B;EACtCC,SAAS,EAAE,YAAY;EACvBC,MAAM,EAAE;AACT,CAAC;AAEM,SAASC,YAAYA,CAAA,EAAG;EAC9B,MAAM;IAAEC,IAAI;IAAEC,YAAY;IAAEC;EAAe,CAAC,GAC3C,IAAAC,mBAAU,EAAEC,yBAAiB,CAAC;EAC/B,MAAMC,gBAAgB,GAAGC,MAAM,CAACC,IAAI,CAAEL,cAAe,CAAC;EACtD,IAAKG,gBAAgB,CAACG,MAAM,IAAI,CAAC,EAAG;IACnC,OAAO,IAAI;EACZ;EACA,MAAMC,UAAU,GAAGC,8BAAY,CAACC,IAAI,CAAIC,CAAC,IAAMZ,IAAI,CAACa,IAAI,KAAKD,CAAC,CAACC,IAAK,CAAC;EACrE,oBACC,IAAAtB,WAAA,CAAAuB,IAAA,EAACtB,IAAI;IAAAuB,QAAA,gBACJ,IAAAxB,WAAA,CAAAyB,GAAA,EAACxB,IAAI,CAACyB,aAAa;MAClBC,MAAM,eACL,IAAA3B,WAAA,CAAAyB,GAAA,EAACpC,WAAA,CAAAuC,MAAM;QACNC,IAAI,EAAC,SAAS;QACdC,IAAI,EAAGZ,UAAU,EAAEY,IAAM;QACzBC,KAAK,EAAG,IAAAC,QAAE,EAAE,QAAS;MAAG,CACxB;IACD,CACD,CAAC,eACF,IAAAhC,WAAA,CAAAyB,GAAA,EAACxB,IAAI,CAACgC,OAAO;MAAAT,QAAA,EACVV,gBAAgB,CAACoB,GAAG,CAAIC,MAAM,IAAM;QACrC,MAAMC,MAAM,GAAGjB,8BAAY,CAACC,IAAI,CAC7BC,CAAC,IAAMA,CAAC,CAACC,IAAI,KAAKa,MACrB,CAAC;QACD,IAAK,CAAEC,MAAM,EAAG;UACf,OAAO,IAAI;QACZ;QACA,oBACC,IAAApC,WAAA,CAAAyB,GAAA,EAACxB,IAAI,CAACoC,SAAS;UAEdC,KAAK,EAAGH,MAAQ;UAChBI,IAAI,EAAC,6BAA6B;UAClCC,OAAO,EAAGL,MAAM,KAAK1B,IAAI,CAACa,IAAM;UAChCmB,WAAW;UACXC,QAAQ,EACPC,CAAkC,IAC9B;YACJ,QAASA,CAAC,CAACC,MAAM,CAACN,KAAK;cACtB,KAAK,MAAM;cACX,KAAK,MAAM;cACX,KAAK,OAAO;cACZ,KAAK,YAAY;gBAChB,MAAMO,iBAAiB,GAAG;kBAAE,GAAGpC;gBAAK,CAAC;gBACrC,IAAK,QAAQ,IAAIoC,iBAAiB,EAAG;kBACpC,OAAOA,iBAAiB,CAACV,MAAM;gBAChC;gBACA,OAAOzB,YAAY,CAAE;kBACpB,GAAGmC,iBAAiB;kBACpBvB,IAAI,EAAEqB,CAAC,CAACC,MAAM,CAACN,KAAK;kBACpB,GAAG3B,cAAc,CAAEgC,CAAC,CAACC,MAAM,CAACN,KAAK;gBAClC,CAAU,CAAC;YACb;YACAQ,UAAA,CAAAC,YAAA,gBAAAC,gBAAO,EAAE,kBAAmB,CAAC;UAC9B,CAAG;UAAAxB,QAAA,eAEH,IAAAxB,WAAA,CAAAyB,GAAA,EAACxB,IAAI,CAACgD,SAAS;YAAAzB,QAAA,EAAGY,MAAM,CAACL;UAAK,CAAkB;QAAC,GA1B3CI,MA2BS,CAAC;MAEnB,CAAE;IAAC,CACU,CAAC;EAAA,CACV,CAAC;AAET;AAEA,SAASe,gBAAgBA,CAAA,EAAG;EAC3B,MAAM;IAAEzC,IAAI;IAAE0C,MAAM;IAAEzC;EAAa,CAAC,GAAG,IAAAE,mBAAU,EAAEC,yBAAiB,CAAC;EACrE,MAAMuC,YAAY,GAAG,IAAAC,gBAAO,EAAE,MAAM;IACnC,MAAMC,cAAc,GAAGH,MAAM,CAACI,MAAM,CACjCC,KAAK,IAAMA,KAAK,CAACC,aAAa,KAAK,KACtC,CAAC;IACD,OAAOH,cAAc,CAACpB,GAAG,CAAIsB,KAAK,IAAM;MACvC,OAAO;QACNzB,KAAK,EAAEyB,KAAK,CAACzB,KAAK;QAClBO,KAAK,EAAEkB,KAAK,CAACE;MACd,CAAC;IACF,CAAE,CAAC;EACJ,CAAC,EAAE,CAAEP,MAAM,CAAG,CAAC;EAEf,oBACC,IAAAnD,WAAA,CAAAyB,GAAA,EAACpC,WAAA,CAAAsE,aAAa;IACbC,uBAAuB;IACvBC,qBAAqB;IACrB9B,KAAK,EAAG,IAAAC,QAAE,EAAE,SAAU,CAAG;IACzBM,KAAK,EAAG7B,IAAI,CAACqD,IAAI,EAAEN,KAAO;IAC1BO,OAAO,EAAGX,YAAc;IACxBV,QAAQ,EAAKJ,KAAa,IAAM;MAC/B5B,YAAY,CAAE;QACb,GAAGD,IAAI;QACPqD,IAAI,EAAE;UACLE,SAAS,EAAEvD,IAAI,EAAEqD,IAAI,EAAEE,SAAS,IAAI,MAAM;UAC1CR,KAAK,EAAElB;QACR,CAAC;QACD2B,UAAU,EAAE;MACb,CAAE,CAAC;IACJ;EAAG,CACH,CAAC;AAEJ;AAEA,SAASC,oBAAoBA,CAAA,EAAG;EAC/B,MAAM;IAAEzD,IAAI;IAAE0C,MAAM;IAAEzC;EAAa,CAAC,GAAG,IAAAE,mBAAU,EAAEC,yBAAiB,CAAC;EAErE,MAAMyC,cAAc,GAAGH,MAAM,CAACI,MAAM,CACjCC,KAAK,IAAMA,KAAK,CAACC,aAAa,KAAK,KACtC,CAAC;EACD,IAAKH,cAAc,CAACrC,MAAM,KAAK,CAAC,EAAG;IAClC,OAAO,IAAI;EACZ;EAEA,IAAIqB,KAAK,GAAG7B,IAAI,CAACqD,IAAI,EAAEE,SAAS;EAChC,IAAK,CAAE1B,KAAK,IAAI7B,IAAI,CAACqD,IAAI,EAAEN,KAAK,EAAG;IAClClB,KAAK,GAAG,MAAM;EACf;EACA,oBACC,IAAAtC,WAAA,CAAAyB,GAAA,EAACpC,WAAA,CAAA8E,gCAAkB;IAClB9D,SAAS,EAAC,uCAAuC;IACjDuD,uBAAuB;IACvBC,qBAAqB;IACrBO,OAAO;IACPrC,KAAK,EAAG,IAAAC,QAAE,EAAE,OAAQ,CAAG;IACvBM,KAAK,EAAGA,KAAO;IACfI,QAAQ,EAAK2B,YAAY,IAAM;MAC9B,IAAKA,YAAY,KAAK,KAAK,IAAIA,YAAY,KAAK,MAAM,EAAG;QACxD3D,YAAY,CAAE;UACb,GAAGD,IAAI;UACPqD,IAAI,EAAE;YACLE,SAAS,EAAEK,YAAY;YACvBb,KAAK,EACJ/C,IAAI,CAACqD,IAAI,EAAEN,KAAK;YAChB;YACAL,MAAM,CAAC/B,IAAI,CACRoC,KAAK,IAAMA,KAAK,CAACC,aAAa,KAAK,KACtC,CAAC,EAAEC,EAAE,IACL;UACF,CAAC;UACDO,UAAU,EAAE;QACb,CAAE,CAAC;QACH;MACD;MACAnB,UAAA,CAAAC,YAAA,gBAAAC,gBAAO,EAAE,mBAAoB,CAAC;IAC/B,CAAG;IAAAxB,QAAA,EAED8C,6BAAkB,CAACpC,GAAG,CAAI8B,SAAS,IAAM;MAC1C,oBACC,IAAAhE,WAAA,CAAAyB,GAAA,EAACpC,WAAA,CAAAkF,0CAA4B;QAE5BjC,KAAK,EAAG0B,SAAW;QACnBlC,IAAI,EAAG0C,oBAAS,CAAER,SAAS,CAAI;QAC/BjC,KAAK,EAAG0C,qBAAU,CAAET,SAAS;MAAI,GAH3BA,SAIN,CAAC;IAEJ,CAAE;EAAC,CACgB,CAAC;AAEvB;AAEA,SAASU,mBAAmBA,CAAA,EAAG;EAC9B,MAAM;IAAEjE,IAAI;IAAE2B,MAAM;IAAE1B;EAAa,CAAC,GAAG,IAAAE,mBAAU,EAAEC,yBAAiB,CAAC;EACrE,MAAM;IAAE8D;EAAsB,CAAC,GAAGlE,IAAI;EACtC,IACC,CAAE2B,MAAM,IACR,CAAEA,MAAM,CAACwC,YAAY,IACrBxC,MAAM,CAACwC,YAAY,CAAC3D,MAAM,GAAG,CAAC,IAC9BmB,MAAM,CAACwC,YAAY,CAAC3D,MAAM,GAAG,CAAC,IAC9B0D,qBAAqB,EACpB;IACD,OAAO,IAAI;EACZ;EAEA,oBACC,IAAA3E,WAAA,CAAAyB,GAAA,EAACpC,WAAA,CAAA8E,gCAAkB;IAClBP,uBAAuB;IACvBC,qBAAqB;IACrBO,OAAO;IACPrC,KAAK,EAAG,IAAAC,QAAE,EAAE,gBAAiB,CAAG;IAChCM,KAAK,EAAG7B,IAAI,CAACoE,OAAO,IAAI,EAAI;IAC5BC,QAAQ,EAAG,CAAErE,IAAI,EAAEqD,IAAI,EAAEN,KAAO;IAChCd,QAAQ,EAAKqC,eAAe,IAAM;MACjC,MAAMC,qBAAqB,GAC1B,OAAOD,eAAe,KAAK,QAAQ,IACnCA,eAAe,KAAKE,SAAS,GAC1BF,eAAe,GACfG,QAAQ,CAAEH,eAAe,EAAE,EAAG,CAAC;MACnCrE,YAAY,CAAE;QACb,GAAGD,IAAI;QACPoE,OAAO,EAAEG,qBAAqB;QAC9BG,IAAI,EAAE;MACP,CAAE,CAAC;IACJ,CAAG;IAAA3D,QAAA,EAEDY,MAAM,CAACwC,YAAY,CAAC1C,GAAG,CAAII,KAAK,IAAM;MACvC,oBACC,IAAAtC,WAAA,CAAAyB,GAAA,EAACpC,WAAA,CAAA+F,sCAAwB;QAExB9C,KAAK,EAAGA,KAAO;QACfP,KAAK,EAAGO,KAAK,CAAC+C,QAAQ,CAAC;MAAG,GAFpB/C,KAGN,CAAC;IAEJ,CAAE;EAAC,CACgB,CAAC;AAEvB;AAEA,SAASgD,cAAcA,CAAE;EACxBC,cAAc;EACdC,qBAAqB;EACrBC,gBAAgB;EAChBC;AAMD,CAAC,EAAG;EACH,MAAMC,wBAAwB,GAAKjC,EAAU,IAAM;IAClD;IACA;IACA;IACAkC,UAAU,CAAE,MAAM;MACjB,MAAMC,OAAO,GAAGC,QAAQ,CAACC,aAAa,CACrC,mCAAoCrC,EAAE,yDACvC,CAAC;MACD,IAAKmC,OAAO,YAAYG,WAAW,EAAG;QACrCH,OAAO,CAACI,KAAK,CAAC,CAAC;MAChB;IACD,CAAC,EAAE,EAAG,CAAC;EACR,CAAC;EACD,oBACC,IAAAjG,WAAA,CAAAuB,IAAA,EAACtB,IAAI;IAACiG,YAAY,EAAGT,gBAAkB;IAAAjE,QAAA,gBACtC,IAAAxB,WAAA,CAAAyB,GAAA,EAACxB,IAAI,CAACyB,aAAa;MAClBC,MAAM,eACL,IAAA3B,WAAA,CAAAyB,GAAA,EAACpC,WAAA,CAAAuC,MAAM;QACNvB,SAAS,EAAC,uDAAuD;QACjEwB,IAAI,EAAC,SAAS;QACdC,IAAI,EAAGqE,mBAAc;QACrBpE,KAAK,EAAG,IAAAC,QAAE,EAAE,SAAU;MAAG,CACzB;IACD,CACD,CAAC,eACF,IAAAhC,WAAA,CAAAyB,GAAA,EAACxB,IAAI,CAACgC,OAAO;MAAAT,QAAA,EACV+D,cAAc,EAAErD,GAAG,CAAE,CAAE;QAAEwB,EAAE;QAAE3B;MAAM,CAAC,KAAM;QAC3C,oBACC,IAAA/B,WAAA,CAAAyB,GAAA,EAACxB,IAAI,CAACoC,SAAS;UAEdC,KAAK,EAAGoB,EAAI;UACZlB,OAAO,EAAGkB,EAAE,KAAKgC,YAAc;UAC/BhD,QAAQ,EAAGA,CAAA,KAAM;YAChB8C,qBAAqB,GAAI9B,EAAG,CAAC;YAC7BiC,wBAAwB,CAAEjC,EAAG,CAAC;UAC/B,CAAG;UAAAlC,QAAA,eAEH,IAAAxB,WAAA,CAAAyB,GAAA,EAACxB,IAAI,CAACgD,SAAS;YAAAzB,QAAA,EAAGO;UAAK,CAAkB;QAAC,GARpC2B,EASS,CAAC;MAEnB,CAAE;IAAC,CACU,CAAC;EAAA,CACV,CAAC;AAET;AACA,SAAS0C,SAASA,CAAE;EACnB5C,KAAK;EACLzB,KAAK;EACLsE,WAAW;EACXC,SAAS;EACTC,OAAO;EACPC,MAAM;EACNC,OAAO,GAAG,IAAI;EACdC,kBAAkB;EAClBC,QAAQ;EACRC,UAAU;EACVrB,cAAc;EACdC;AAcD,CAAC,EAAG;EACH,MAAM,CAAEqB,uBAAuB,EAAEC,0BAA0B,CAAE,GAC5D,IAAAC,iBAAQ,EAAa,KAAM,CAAC;EAE7B,MAAMC,oBAAoB,GAAGA,CAAA,KAAM;IAClC;IACA;IACA;IACApB,UAAU,CAAE,MAAM;MACjB,MAAMC,OAAO,GAAGC,QAAQ,CAACC,aAAa,CACrC,mCAAoCvC,KAAK,CAACE,EAAE,oDAC7C,CAAC;MACD,IAAKmC,OAAO,YAAYG,WAAW,EAAG;QACrCH,OAAO,CAACI,KAAK,CAAC,CAAC;MAChB;IACD,CAAC,EAAE,EAAG,CAAC;EACR,CAAC;EAED,oBACC,IAAAjG,WAAA,CAAAyB,GAAA,EAACpC,WAAA,CAAA4H,kBAAI;IAAAzF,QAAA,eACJ,IAAAxB,WAAA,CAAAuB,IAAA,EAAClC,WAAA,CAAA6H,oBAAM;MACNC,QAAQ;MACR9G,SAAS,EAAG,IAAA+G,aAAI,EACf,gCAAgC,EAChC,kCAAmC5D,KAAK,CAACE,EAAE,EAAG;MAC9C;MACA;MACA;MACA;MACA;MACA;MACA;QAAE,gBAAgB,EAAEmD;MAAwB,CAC7C,CAAG;MACHQ,OAAO,EAAC,YAAY;MAAA7F,QAAA,gBAEpB,IAAAxB,WAAA,CAAAyB,GAAA;QAAMpB,SAAS,EAAC,+BAA+B;QAAAmB,QAAA,EAC5C,CAAEiF,OAAO,IAAI,CAAEjD,KAAK,CAAC8D,YAAY,iBAClC,IAAAtH,WAAA,CAAAyB,GAAA,EAACpC,WAAA,CAAAkI,IAAI;UAACzF,IAAI,EAAG0F;QAAM,CAAE;MACrB,CACI,CAAC,eACP,IAAAxH,WAAA,CAAAuB,IAAA;QAAMlB,SAAS,EAAC,oDAAoD;QAAAmB,QAAA,gBACnE,IAAAxB,WAAA,CAAAyB,GAAA;UAAMpB,SAAS,EAAC,gCAAgC;UAAAmB,QAAA,EAC7CO,KAAK,IAAIyB,KAAK,CAACzB;QAAK,CACjB,CAAC,EACLsE,WAAW,iBACZ,IAAArG,WAAA,CAAAyB,GAAA;UAAMpB,SAAS,EAAC,oCAAoC;UAAAmB,QAAA,EACjD6E;QAAW,CACR,CACN;MAAA,CACI,CAAC,eACP,IAAArG,WAAA,CAAAuB,IAAA,EAAClC,WAAA,CAAA6H,oBAAM;QACNG,OAAO,EAAC,UAAU;QAClBF,QAAQ,EAAG,KAAO;QAClB9G,SAAS,EAAC,kCAAkC;QAAAmB,QAAA,GAE1C8E,SAAS,iBACV,IAAAtG,WAAA,CAAAuB,IAAA,EAAAvB,WAAA,CAAAyH,QAAA;UAAAjG,QAAA,gBACC,IAAAxB,WAAA,CAAAyB,GAAA,EAACpC,WAAA,CAAAuC,MAAM;YACNkD,QAAQ,EAAGyB,OAAO,IAAI,CAAEE,OAAS;YACjCiB,sBAAsB;YACtB7F,IAAI,EAAC,SAAS;YACd8F,OAAO,EAAGhB,QAAU;YACpB7E,IAAI,EAAG8F,gBAAW;YAClB7F,KAAK,EACJwE,OAAO,IAAI,CAAEE,OAAO,GACjB,IAAAzE,QAAE,EAAE,8BAA+B,CAAC,GACpC,IAAA6F,aAAO,EACP;YACA,IAAA7F,QAAE,EAAE,YAAa,CAAC,EAClBwB,KAAK,CAACzB,KACN;UACH,CACD,CAAC,eACF,IAAA/B,WAAA,CAAAyB,GAAA,EAACpC,WAAA,CAAAuC,MAAM;YACNkD,QAAQ,EAAG0B,MAAM,IAAI,CAAEC,OAAS;YAChCiB,sBAAsB;YACtB7F,IAAI,EAAC,SAAS;YACd8F,OAAO,EAAGf,UAAY;YACtB9E,IAAI,EAAGgG,kBAAa;YACpB/F,KAAK,EACJyE,MAAM,IAAI,CAAEC,OAAO,GAChB,IAAAzE,QAAE,EAAE,gCAAiC,CAAC,GACtC,IAAA6F,aAAO,EACP;YACA,IAAA7F,QAAE,EAAE,cAAe,CAAC,EACpBwB,KAAK,CAACzB,KACN;UACH,CACD,CAAC;QAAA,CACD,CACF,EACC2E,kBAAkB,iBACnB,IAAA1G,WAAA,CAAAyB,GAAA,EAACpC,WAAA,CAAAuC,MAAM;UACNvB,SAAS,EAAC,kDAAkD;UAC5DyE,QAAQ,EAAG,CAAEtB,KAAK,CAAC8D,YAAc;UACjCI,sBAAsB;UACtB7F,IAAI,EAAC,SAAS;UACd8F,OAAO,EAAGA,CAAA,KAAM;YACfjB,kBAAkB,CAAC,CAAC;YACpBM,oBAAoB,CAAC,CAAC;UACvB,CAAG;UACHlF,IAAI,EAAGwE,SAAS,GAAGyB,aAAM,GAAGC,WAAM;UAClCjG,KAAK,EACJuE,SAAS,GACN,IAAAuB,aAAO,EACP;UACA,IAAAI,QAAE,EAAE,SAAS,EAAE,OAAQ,CAAC,EACxBzE,KAAK,CAACzB,KACN,CAAC,GACD,IAAA8F,aAAO,EACP;UACA,IAAAI,QAAE,EAAE,SAAS,EAAE,OAAQ,CAAC,EACxBzE,KAAK,CAACzB,KACN;QACH,CACD,CACD,EACCwD,cAAc,iBACf,IAAAvF,WAAA,CAAAyB,GAAA,EAAC6D,cAAc;UACdC,cAAc,EAAGA,cAAgB;UACjCC,qBAAqB,EAAGA,qBAAuB;UAC/CC,gBAAgB,EAAGqB,0BAA4B;UAC/CpB,YAAY,EAAGlC,KAAK,CAACE;QAAI,CACzB,CACD;MAAA,CACM,CAAC;IAAA,CACF;EAAC,CACJ,CAAC;AAET;AAEA,SAASwE,gBAAgBA,CAAE;EAC1BC,KAAK;EACL3E,KAAK;EACL/C,IAAI;EACJC;AAMD,CAAC,EAAG;EAAA,IAAA0H,YAAA;EACH,MAAMC,eAAe,IAAAD,YAAA,GAAG3H,IAAI,CAAC0C,MAAM,cAAAiF,YAAA,cAAAA,YAAA,GAAI,EAAE;EACzC,MAAM9B,SAAS,GACd6B,KAAK,KAAKlD,SAAS,IAAIoD,eAAe,CAACC,QAAQ,CAAE9E,KAAK,CAACE,EAAG,CAAC;EAE5D,oBACC,IAAA1D,WAAA,CAAAyB,GAAA,EAAC2E,SAAS;IACT5C,KAAK,EAAGA,KAAO;IACf8C,SAAS,EAAGA,SAAW;IACvBC,OAAO,EAAG4B,KAAK,KAAKlD,SAAS,IAAIkD,KAAK,GAAG,CAAG;IAC5C3B,MAAM,EACL2B,KAAK,KAAKlD,SAAS,IAAIkD,KAAK,KAAKE,eAAe,CAACpH,MAAM,GAAG,CAC1D;IACDyF,kBAAkB,EAAGA,CAAA,KAAM;MAC1BhG,YAAY,CAAE;QACb,GAAGD,IAAI;QACP0C,MAAM,EAAEmD,SAAS,GACd+B,eAAe,CAAC9E,MAAM,CACpBgF,OAAO,IAAMA,OAAO,KAAK/E,KAAK,CAACE,EACjC,CAAC,GACD,CAAE,GAAG2E,eAAe,EAAE7E,KAAK,CAACE,EAAE;MAClC,CAAE,CAAC;IACJ,CAAG;IACHiD,QAAQ,EACPwB,KAAK,KAAKlD,SAAS,GAChB,MAAM;MAAA,IAAAuD,qBAAA;MACN9H,YAAY,CAAE;QACb,GAAGD,IAAI;QACP0C,MAAM,EAAE,CACP,KAAAqF,qBAAA,GAAKH,eAAe,CAACI,KAAK,CACzB,CAAC,EACDN,KAAK,GAAG,CACT,CAAC,cAAAK,qBAAA,cAAAA,qBAAA,GAAI,EAAE,CAAE,EACThF,KAAK,CAACE,EAAE,EACR2E,eAAe,CAAEF,KAAK,GAAG,CAAC,CAAE,EAC5B,GAAGE,eAAe,CAACI,KAAK,CAAEN,KAAK,GAAG,CAAE,CAAC;MAEvC,CAAE,CAAC;IACH,CAAC,GACDlD,SACH;IACD2B,UAAU,EACTuB,KAAK,KAAKlD,SAAS,GAChB,MAAM;MAAA,IAAAyD,sBAAA;MACNhI,YAAY,CAAE;QACb,GAAGD,IAAI;QACP0C,MAAM,EAAE,CACP,KAAAuF,sBAAA,GAAKL,eAAe,CAACI,KAAK,CAAE,CAAC,EAAEN,KAAM,CAAC,cAAAO,sBAAA,cAAAA,sBAAA,GACrC,EAAE,CAAE,EACLL,eAAe,CAAEF,KAAK,GAAG,CAAC,CAAE,EAC5B3E,KAAK,CAACE,EAAE,EACR,GAAG2E,eAAe,CAACI,KAAK,CAAEN,KAAK,GAAG,CAAE,CAAC;MAEvC,CAAE,CAAC;IACH,CAAC,GACDlD;EACH,CACD,CAAC;AAEJ;AAEA,SAAS0D,SAASA,CAAOC,IAAmB,EAAc;EACzD,OAAO,CAAC,CAAEA,IAAI;AACf;AAEA,SAASC,YAAYA,CAAA,EAAG;EAAA,IAAAC,aAAA;EACvB,MAAM;IAAErI,IAAI;IAAE0C,MAAM;IAAEzC;EAAa,CAAC,GAAG,IAAAE,mBAAU,EAAEC,yBAAiB,CAAC;EAErE,MAAMkI,eAAe,GAAG,CACvBtI,IAAI,EAAEuI,UAAU,EAChBvI,IAAI,EAAEwI,UAAU,EAChBxI,IAAI,EAAEyI,gBAAgB,CACtB,CAAC3F,MAAM,CAAE4F,OAAQ,CAAC;EACnB,MAAMd,eAAe,IAAAS,aAAA,GAAGrI,IAAI,CAAC0C,MAAM,cAAA2F,aAAA,cAAAA,aAAA,GAAI,EAAE;EACzC,MAAMM,YAAY,GAAGjG,MAAM,CAACI,MAAM,CAC/B8F,CAAC,IACF,CAAEhB,eAAe,CAACC,QAAQ,CAAEe,CAAC,CAAC3F,EAAG,CAAC,IAClC,CAAEqF,eAAe,CAACT,QAAQ,CAAEe,CAAC,CAAC3F,EAAG,CAAC,IAClC2F,CAAC,CAAC/H,IAAI,KAAK,OACb,CAAC;EACD,MAAMgI,aAAa,GAAGjB,eAAe,CACnCnG,GAAG,CAAIqG,OAAO,IAAMpF,MAAM,CAAC/B,IAAI,CAAIiI,CAAC,IAAMA,CAAC,CAAC3F,EAAE,KAAK6E,OAAQ,CAAE,CAAC,CAC9DhF,MAAM,CAAEoF,SAAU,CAAC;EAErB,IAAK,CAAEW,aAAa,EAAErI,MAAM,IAAI,CAAEmI,YAAY,EAAEnI,MAAM,EAAG;IACxD,OAAO,IAAI;EACZ;EACA,MAAM+H,UAAU,GAAG7F,MAAM,CAAC/B,IAAI,CAAIiI,CAAC,IAAMA,CAAC,CAAC3F,EAAE,KAAKjD,IAAI,CAACuI,UAAW,CAAC;EACnE,MAAMO,YAAY,GAAGpG,MAAM,CAAC/B,IAAI,CAAIiI,CAAC,IAAMA,CAAC,CAAC3F,EAAE,KAAKjD,IAAI,CAACwI,UAAW,CAAC;EACrE,MAAMC,gBAAgB,GAAG/F,MAAM,CAAC/B,IAAI,CACjCiI,CAAC,IAAMA,CAAC,CAAC3F,EAAE,KAAKjD,IAAI,CAACyI,gBACxB,CAAC;EAED,MAAMM,aAAa,GAAGrG,MAAM,CAACI,MAAM,CAAI8F,CAAC,IAAMA,CAAC,CAAC/H,IAAI,KAAK,OAAQ,CAAC;EAElE,IAAImI,cAAc;EAClB,IAAKD,aAAa,CAACvI,MAAM,GAAG,CAAC,EAAG;IAAA,IAAAyI,eAAA;IAC/B,MAAMC,qBAAqB,GAC1BhB,SAAS,CAAEY,YAAa,CAAC,MAAAG,eAAA,GAAMjJ,IAAI,CAACmJ,SAAS,cAAAF,eAAA,cAAAA,eAAA,GAAI,IAAI,CAAE;IACxDD,cAAc,GAAGd,SAAS,CAAEY,YAAa,CAAC,iBACzC,IAAAvJ,WAAA,CAAAyB,GAAA,EAAC2E,SAAS;MAET5C,KAAK,EAAG+F,YAAc;MACtBxH,KAAK,EAAG,IAAAC,QAAE,EAAE,SAAU,CAAG;MACzBqE,WAAW,EAAGkD,YAAY,CAACxH,KAAO;MAClCuE,SAAS,EAAGqD,qBAAuB;MACnCjD,kBAAkB,EAAGA,CAAA,KAAM;QAC1BhG,YAAY,CAAE;UACb,GAAGD,IAAI;UACPmJ,SAAS,EAAE,CAAED;QACd,CAAE,CAAC;MACJ,CAAG;MACHlD,OAAO,EAAG,KAAO;MACjBlB,cAAc,EAAGiE,aAAa,CAACtH,GAAG,CAAIsB,KAAK,KAAQ;QAClDzB,KAAK,EAAEyB,KAAK,CAACzB,KAAK;QAClB2B,EAAE,EAAEF,KAAK,CAACE;MACX,CAAC,CAAG,CAAG;MACP8B,qBAAqB,EAAKqE,YAAY,IACrCnJ,YAAY,CAAE;QAAE,GAAGD,IAAI;QAAEwI,UAAU,EAAEY;MAAa,CAAE;IACpD,GAlBKN,YAAY,CAAC7F,EAmBnB,CACD;EACF;EACA,MAAMoG,YAAY,GAAG,CACpB;IACCtG,KAAK,EAAEwF,UAAU;IACjBe,aAAa,EAAE;EAChB,CAAC,EACD;IACCvG,KAAK,EAAE+F,YAAY;IACnBQ,aAAa,EAAE,WAAW;IAC1BC,EAAE,EAAEP;EACL,CAAC,EACD;IACCjG,KAAK,EAAE0F,gBAAgB;IACvBa,aAAa,EAAE;EAChB,CAAC,CACD,CAACxG,MAAM,CAAE,CAAE;IAAEC;EAAM,CAAC,KAAMmF,SAAS,CAAEnF,KAAM,CAAE,CAAC;EAC/C,MAAMyG,mBAAmB,GAAGH,YAAY,CAACvG,MAAM,CAC9C,CAAE;IAAEC,KAAK;IAAEuG;EAAc,CAAC;IAAA,IAAAG,mBAAA;IAAA;MACzB;MACAvB,SAAS,CAAEnF,KAAM,CAAC,MAAA0G,mBAAA,GAAMzJ,IAAI,CAAEsJ,aAAa,CAAE,cAAAG,mBAAA,cAAAA,mBAAA,GAAI,IAAI;IAAE;EAAA,CACzD,CAIG;EACH,MAAMC,kBAAkB,GAAGL,YAAY,CAACvG,MAAM,CAC7C,CAAE;IAAEC,KAAK;IAAEuG;EAAc,CAAC;IAAA,IAAAK,oBAAA;IAAA;MACzB;MACAzB,SAAS,CAAEnF,KAAM,CAAC,IAAI,GAAA4G,oBAAA,GAAI3J,IAAI,CAAEsJ,aAAa,CAAE,cAAAK,oBAAA,cAAAA,oBAAA,GAAI,IAAI;IAAE;EAAA,CAC3D,CAIG;EAEH,oBACC,IAAApK,WAAA,CAAAuB,IAAA,EAAClC,WAAA,CAAAgL,oBAAM;IAAChK,SAAS,EAAC,yBAAyB;IAACiK,OAAO,EAAG,CAAG;IAAA9I,QAAA,gBACxD,IAAAxB,WAAA,CAAAyB,GAAA,EAACpC,WAAA,CAAAgL,oBAAM;MAAChK,SAAS,EAAC,mCAAmC;MAACiK,OAAO,EAAG,CAAG;MAAA9I,QAAA,EAChE,CAAEyI,mBAAmB,CAAChJ,MAAM,GAAG,CAAC,IACjC,CAAC,CAAEqI,aAAa,EAAErI,MAAM,kBACxB,IAAAjB,WAAA,CAAAuB,IAAA,EAAClC,WAAA,CAAAkL,uBAAS;QAACC,UAAU;QAACC,WAAW;QAAAjJ,QAAA,GAC9ByI,mBAAmB,CAAC/H,GAAG,CACxB,CAAE;UAAEsB,KAAK;UAAEuG,aAAa;UAAEC;QAAG,CAAC,KAAM;UACnC,OACCA,EAAE,aAAFA,EAAE,cAAFA,EAAE,gBACD,IAAAhK,WAAA,CAAAyB,GAAA,EAAC2E,SAAS;YAET5C,KAAK,EAAGA,KAAO;YACf8C,SAAS;YACTI,kBAAkB,EAAGA,CAAA,KAAM;cAC1BhG,YAAY,CAAE;gBACb,GAAGD,IAAI;gBACP,CAAEsJ,aAAa,GAAI;cACpB,CAAE,CAAC;YACJ,CAAG;YACHtD,OAAO,EAAG;UAAO,GATXjD,KAAK,CAACE,EAUZ,CAAC;QAGL,CACD,CAAC,EAEC4F,aAAa,CAACpH,GAAG,CAAE,CAAEsB,KAAK,EAAE2E,KAAK,kBAClC,IAAAnI,WAAA,CAAAyB,GAAA,EAACyG,gBAAgB;UAEhB1E,KAAK,EAAGA,KAAO;UACf/C,IAAI,EAAGA,IAAM;UACbC,YAAY,EAAGA,YAAc;UAC7ByH,KAAK,EAAGA;QAAO,GAJT3E,KAAK,CAACE,EAKZ,CACA,CAAC;MAAA,CACO;IACX,CACM,CAAC,EAEP,CAAE,CAAC,CAAE0F,YAAY,EAAEnI,MAAM,IAAI,CAAC,CAAEkJ,kBAAkB,CAAClJ,MAAM,kBAC1D,IAAAjB,WAAA,CAAAuB,IAAA,EAAClC,WAAA,CAAAgL,oBAAM;MAACC,OAAO,EAAG,CAAG;MAAA9I,QAAA,gBACpB,IAAAxB,WAAA,CAAAyB,GAAA,EAACpC,WAAA,CAAAqL,WAAW,CAACC,WAAW;QAACC,KAAK,EAAG;UAAEC,MAAM,EAAE;QAAE,CAAG;QAAArJ,QAAA,EAC7C,IAAAQ,QAAE,EAAE,QAAS;MAAC,CACQ,CAAC,eAC1B,IAAAhC,WAAA,CAAAyB,GAAA,EAACpC,WAAA,CAAAgL,oBAAM;QACNhK,SAAS,EAAC,mCAAmC;QAC7CiK,OAAO,EAAG,CAAG;QAAA9I,QAAA,eAEb,IAAAxB,WAAA,CAAAuB,IAAA,EAAClC,WAAA,CAAAkL,uBAAS;UAACC,UAAU;UAACC,WAAW;UAAAjJ,QAAA,GAC9B2I,kBAAkB,CAAClJ,MAAM,GAAG,CAAC,IAC9BkJ,kBAAkB,CAACjI,GAAG,CACrB,CAAE;YAAEsB,KAAK;YAAEuG,aAAa;YAAEC;UAAG,CAAC,KAAM;YACnC,OACCA,EAAE,aAAFA,EAAE,cAAFA,EAAE,gBACD,IAAAhK,WAAA,CAAAyB,GAAA,EAAC2E,SAAS;cAET5C,KAAK,EAAGA,KAAO;cACf8C,SAAS,EAAG,KAAO;cACnBI,kBAAkB,EAAGA,CAAA,KAAM;gBAC1BhG,YAAY,CAAE;kBACb,GAAGD,IAAI;kBACP,CAAEsJ,aAAa,GACd;gBACF,CAAE,CAAC;cACJ,CAAG;cACHtD,OAAO,EAAG;YAAO,GAVXjD,KAAK,CAACE,EAWZ,CAAC;UAGL,CACD,CAAC,EACA0F,YAAY,CAAClH,GAAG,CAAIsB,KAAK,iBAC1B,IAAAxD,WAAA,CAAAyB,GAAA,EAACyG,gBAAgB;YAEhB1E,KAAK,EAAGA,KAAO;YACf/C,IAAI,EAAGA,IAAM;YACbC,YAAY,EAAGA;UAAc,GAHvB8C,KAAK,CAACE,EAIZ,CACA,CAAC;QAAA,CACO;MAAC,CACL,CAAC;IAAA,CACF,CACR;EAAA,CACM,CAAC;AAEX;AAEA,SAASoH,eAAeA,CAAE;EACzBC,KAAK;EACL1E,WAAW;EACX7E;AAKD,CAAC,EAAG;EACH,oBACC,IAAAxB,WAAA,CAAAuB,IAAA,EAAClC,WAAA,CAAA2L,kBAAI;IAACC,OAAO,EAAG,EAAI;IAAC5K,SAAS,EAAC,4BAA4B;IAAC6K,GAAG,EAAG,CAAG;IAAA1J,QAAA,gBACpE,IAAAxB,WAAA,CAAAuB,IAAA;MAAKlB,SAAS,EAAC,qCAAqC;MAAAmB,QAAA,gBACnD,IAAAxB,WAAA,CAAAyB,GAAA,EAACpC,WAAA,CAAA8L,qBAAO;QACPC,KAAK,EAAG,CAAG;QACX/K,SAAS,EAAC,mCAAmC;QAAAmB,QAAA,EAE3CuJ;MAAK,CACC,CAAC,EACR1E,WAAW,iBACZ,IAAArG,WAAA,CAAAyB,GAAA,EAACpC,WAAA,CAAAgM,kBAAI;QACJC,OAAO,EAAC,OAAO;QACfjL,SAAS,EAAC,yCAAyC;QAAAmB,QAAA,EAEjD6E;MAAW,CACR,CACN;IAAA,CACG,CAAC,eACN,IAAArG,WAAA,CAAAyB,GAAA,EAACpC,WAAA,CAAA2L,kBAAI;MACJC,OAAO,EAAG,CAAG;MACbC,GAAG,EAAG,CAAG;MACT7K,SAAS,EAAC,qCAAqC;MAAAmB,QAAA,EAE7CA;IAAQ,CACL,CAAC;EAAA,CACF,CAAC;AAET;AAEO,SAAS+J,2BAA2BA,CAAA,EAAG;EAC7C,MAAM;IAAE9K;EAAK,CAAC,GAAG,IAAAG,mBAAU,EAAEC,yBAAiB,CAAC;EAC/C,MAAM2K,SAAS,GAAG,IAAAC,sBAAa,EAC9BC,oBAAoB,EACpB,gCACD,CAAC;EACD,MAAMC,YAAY,GAAGxK,8BAAY,CAACC,IAAI,CACnCe,MAAM,IAAMA,MAAM,CAACb,IAAI,KAAKb,IAAI,CAACa,IACpC,CAAC;EACD,oBACC,IAAAtB,WAAA,CAAAyB,GAAA,EAACpC,WAAA,CAAAuM,QAAQ;IACRC,cAAc;IACdC,YAAY,EAAG;MACd,GAAG1L,8BAA8B;MACjCsD,EAAE,EAAE8H;IACL,CAAG;IACHO,YAAY,EAAGA,CAAE;MAAEC,QAAQ;MAAEC;IAAO,CAAC,KAAM;MAC1C,oBACC,IAAAjM,WAAA,CAAAyB,GAAA,EAACpC,WAAA,CAAAuC,MAAM;QACNC,IAAI,EAAC,SAAS;QACdC,IAAI,EAAGoK,UAAK;QACZnK,KAAK,EAAG,IAAAkG,QAAE,EAAE,cAAc,EAAE,wBAAyB,CAAG;QACxDN,OAAO,EAAGqE,QAAU;QACpB,iBAAgBC,MAAM,GAAG,MAAM,GAAG,OAAS;QAC3C,iBAAgBT;MAAW,CAC3B,CAAC;IAEJ,CAAG;IACHW,aAAa,EAAGA,CAAA,kBACf,IAAAnM,WAAA,CAAAyB,GAAA,EAACpC,WAAA,CAAA+M,oCAAsB;MACtBC,WAAW,EAAC,QAAQ;MACpBhM,SAAS,EAAC,2CAA2C;MAAAmB,QAAA,eAErD,IAAAxB,WAAA,CAAAuB,IAAA,EAAClC,WAAA,CAAAgL,oBAAM;QAAChK,SAAS,EAAC,uBAAuB;QAACiK,OAAO,EAAG,CAAG;QAAA9I,QAAA,gBACtD,IAAAxB,WAAA,CAAAuB,IAAA,EAACuJ,eAAe;UAACC,KAAK,EAAG,IAAA/I,QAAE,EAAE,YAAa,CAAG;UAAAR,QAAA,gBAC5C,IAAAxB,WAAA,CAAAuB,IAAA,EAAClC,WAAA,CAAA6H,oBAAM;YAACC,QAAQ;YAAC9G,SAAS,EAAC,mBAAmB;YAAAmB,QAAA,gBAC7C,IAAAxB,WAAA,CAAAyB,GAAA,EAACyB,gBAAgB,IAAE,CAAC,eACpB,IAAAlD,WAAA,CAAAyB,GAAA,EAACyC,oBAAoB,IAAE,CAAC;UAAA,CACjB,CAAC,EACP,CAAC,CAAEyH,YAAY,EAAEW,iBAAiB,iBACnC,IAAAtM,WAAA,CAAAyB,GAAA,EAACkK,YAAY,CAACW,iBAAiB,IAAE,CACjC,eACD,IAAAtM,WAAA,CAAAyB,GAAA,EAAC3B,qBAAA,CAAAyM,OAAoB,IAAE,CAAC,eACxB,IAAAvM,WAAA,CAAAyB,GAAA,EAACiD,mBAAmB,IAAE,CAAC;QAAA,CACP,CAAC,eAClB,IAAA1E,WAAA,CAAAyB,GAAA,EAACqJ,eAAe;UAACC,KAAK,EAAG,IAAA/I,QAAE,EAAE,YAAa,CAAG;UAAAR,QAAA,eAC5C,IAAAxB,WAAA,CAAAyB,GAAA,EAACoH,YAAY,IAAE;QAAC,CACA,CAAC;MAAA,CACX;IAAC,CACc;EACtB,CACH,CAAC;AAEJ;AAEA,SAAS6C,oBAAoBA,CAAA,EAAG;EAC/B,oBACC,IAAA1L,WAAA,CAAAuB,IAAA,EAAAvB,WAAA,CAAAyH,QAAA;IAAAjG,QAAA,gBACC,IAAAxB,WAAA,CAAAyB,GAAA,EAACjB,YAAY,IAAE,CAAC,eAChB,IAAAR,WAAA,CAAAyB,GAAA,EAAC8J,2BAA2B,IAAE,CAAC;EAAA,CAC9B,CAAC;AAEL;AAEA,MAAMiB,mBAAmB,GAAG,IAAAC,aAAI,EAAEf,oBAAqB,CAAC;AAAC,IAAAgB,QAAA,GAAAC,OAAA,CAAAJ,OAAA,GAE1CC,mBAAmB","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_element","_icons","_warning","_compose","_constants","_dataviewsLayouts","_dataviewsContext","_infiniteScrollToggle","_lockUnlock","_jsxRuntime","Menu","unlock","componentsPrivateApis","DATAVIEWS_CONFIG_POPOVER_PROPS","className","placement","offset","ViewTypeMenu","view","onChangeView","defaultLayouts","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","ItemsPerPageControl","infiniteScrollEnabled","perPageSizes","perPage","disabled","newItemsPerPage","newItemsPerPageNumber","undefined","parseInt","page","__experimentalToggleGroupControlOption","toString","PreviewOptions","previewOptions","onChangePreviewOption","onMenuOpenChange","activeOption","focusPreviewOptionsField","setTimeout","element","document","querySelector","HTMLElement","focus","onOpenChange","moreVertical","FieldItem","description","isVisible","isFirst","isLast","canMove","onToggleVisibility","onMoveUp","onMoveDown","isChangingPreviewOption","setIsChangingPreviewOption","useState","focusVisibilityField","__experimentalItem","__experimentalHStack","expanded","clsx","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","previewField","previewFields","previewFieldUI","_view$showMedia","isPreviewFieldVisible","showMedia","newPreviewId","lockedFields","isVisibleFlag","ui","visibleLockedFields","_view$isVisibleFlag","locked","hiddenLockedFields","_view$isVisibleFlag2","__experimentalVStack","spacing","__experimentalItemGroup","isBordered","isSeparated","BaseControl","VisualLabel","style","margin","SettingsSection","title","__experimentalGrid","columns","gap","__experimentalHeading","level","__experimentalText","variant","DataviewsViewConfigDropdown","popoverId","useInstanceId","_DataViewsViewConfig","activeLayout","Dropdown","expandOnMobile","popoverProps","renderToggle","onToggle","isOpen","cog","renderContent","__experimentalDropdownContentWrapper","paddingSize","viewConfigOptions","default","DataViewsViewConfig","memo","_default","exports"],"sources":["@wordpress/dataviews/src/components/dataviews-view-config/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ChangeEvent, ReactNode } from 'react';\nimport clsx from 'clsx';\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, useState } from '@wordpress/element';\nimport {\n\tchevronDown,\n\tchevronUp,\n\tcog,\n\tseen,\n\tunseen,\n\tlock,\n\tmoreVertical,\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, View } from '../../types';\nimport DataViewsContext from '../dataviews-context';\nimport InfiniteScrollToggle from './infinite-scroll-toggle';\nimport { unlock } from '../../lock-unlock';\n\nconst { Menu } = unlock( componentsPrivateApis );\n\nconst DATAVIEWS_CONFIG_POPOVER_PROPS = {\n\tclassName: 'dataviews-config__popover',\n\tplacement: 'bottom-end',\n\toffset: 9,\n};\n\nexport function ViewTypeMenu() {\n\tconst { view, onChangeView, defaultLayouts } =\n\t\tuseContext( 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\tcase 'pickerGrid':\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\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} as View );\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\nfunction ItemsPerPageControl() {\n\tconst { view, config, onChangeView } = useContext( DataViewsContext );\n\tconst { infiniteScrollEnabled } = view;\n\tif (\n\t\t! config ||\n\t\t! config.perPageSizes ||\n\t\tconfig.perPageSizes.length < 2 ||\n\t\tconfig.perPageSizes.length > 6 ||\n\t\tinfiniteScrollEnabled\n\t) {\n\t\treturn null;\n\t}\n\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{ config.perPageSizes.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 PreviewOptions( {\n\tpreviewOptions,\n\tonChangePreviewOption,\n\tonMenuOpenChange,\n\tactiveOption,\n}: {\n\tpreviewOptions?: Array< { label: string; id: string } >;\n\tonChangePreviewOption?: ( newPreviewOption: string ) => void;\n\tonMenuOpenChange: ( isOpen: boolean ) => void;\n\tactiveOption?: string;\n} ) {\n\tconst focusPreviewOptionsField = ( id: string ) => {\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-${ id } .dataviews-field-control__field-preview-options-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\treturn (\n\t\t<Menu onOpenChange={ onMenuOpenChange }>\n\t\t\t<Menu.TriggerButton\n\t\t\t\trender={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"dataviews-field-control__field-preview-options-button\"\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\tlabel={ __( 'Preview' ) }\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{ previewOptions?.map( ( { id, label } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Menu.RadioItem\n\t\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\t\tvalue={ id }\n\t\t\t\t\t\t\tchecked={ id === activeOption }\n\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\tonChangePreviewOption?.( id );\n\t\t\t\t\t\t\t\tfocusPreviewOptionsField( id );\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>{ 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}\nfunction FieldItem( {\n\tfield,\n\tlabel,\n\tdescription,\n\tisVisible,\n\tisFirst,\n\tisLast,\n\tcanMove = true,\n\tonToggleVisibility,\n\tonMoveUp,\n\tonMoveDown,\n\tpreviewOptions,\n\tonChangePreviewOption,\n}: {\n\tfield: NormalizedField< any >;\n\tlabel?: string;\n\tdescription?: string;\n\tisVisible: boolean;\n\tisFirst?: boolean;\n\tisLast?: boolean;\n\tcanMove?: boolean;\n\tonToggleVisibility?: () => void;\n\tonMoveUp?: () => void;\n\tonMoveDown?: () => void;\n\tpreviewOptions?: Array< { label: string; id: string } >;\n\tonChangePreviewOption?: ( newPreviewOption: string ) => void;\n} ) {\n\tconst [ isChangingPreviewOption, setIsChangingPreviewOption ] =\n\t\tuseState< boolean >( false );\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={ clsx(\n\t\t\t\t\t'dataviews-field-control__field',\n\t\t\t\t\t`dataviews-field-control__field-${ field.id }`,\n\t\t\t\t\t// The actions are hidden when the mouse is not hovering the item, or focus\n\t\t\t\t\t// is outside the item.\n\t\t\t\t\t// For actions that require a popover, a menu etc, that would mean that when the interactive element\n\t\t\t\t\t// opens and the focus goes there the actions would be hidden.\n\t\t\t\t\t// To avoid that we add a class to the item, that makes sure actions are visible while there is some\n\t\t\t\t\t// interaction with the item.\n\t\t\t\t\t{ 'is-interacting': isChangingPreviewOption }\n\t\t\t\t) }\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-sub-label-container\">\n\t\t\t\t\t<span className=\"dataviews-field-control__label\">\n\t\t\t\t\t\t{ label || field.label }\n\t\t\t\t\t</span>\n\t\t\t\t\t{ description && (\n\t\t\t\t\t\t<span className=\"dataviews-field-control__sub-label\">\n\t\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\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\t{ previewOptions && (\n\t\t\t\t\t\t<PreviewOptions\n\t\t\t\t\t\t\tpreviewOptions={ previewOptions }\n\t\t\t\t\t\t\tonChangePreviewOption={ onChangePreviewOption }\n\t\t\t\t\t\t\tonMenuOpenChange={ setIsChangingPreviewOption }\n\t\t\t\t\t\t\tactiveOption={ field.id }\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\t\tf.type !== 'media' &&\n\t\t\tf.enableHiding !== false\n\t);\n\tlet 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 previewField = fields.find( ( f ) => f.id === view.mediaField );\n\tconst descriptionField = fields.find(\n\t\t( f ) => f.id === view.descriptionField\n\t);\n\n\tconst previewFields = fields.filter( ( f ) => f.type === 'media' );\n\n\tlet previewFieldUI;\n\tif ( previewFields.length > 1 ) {\n\t\tconst isPreviewFieldVisible =\n\t\t\tisDefined( previewField ) && ( view.showMedia ?? true );\n\t\tpreviewFieldUI = isDefined( previewField ) && (\n\t\t\t<FieldItem\n\t\t\t\tkey={ previewField.id }\n\t\t\t\tfield={ previewField }\n\t\t\t\tlabel={ __( 'Preview' ) }\n\t\t\t\tdescription={ previewField.label }\n\t\t\t\tisVisible={ isPreviewFieldVisible }\n\t\t\t\tonToggleVisibility={ () => {\n\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t...view,\n\t\t\t\t\t\tshowMedia: ! isPreviewFieldVisible,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tcanMove={ false }\n\t\t\t\tpreviewOptions={ previewFields.map( ( field ) => ( {\n\t\t\t\t\tlabel: field.label,\n\t\t\t\t\tid: field.id,\n\t\t\t\t} ) ) }\n\t\t\t\tonChangePreviewOption={ ( newPreviewId ) =>\n\t\t\t\t\tonChangeView( { ...view, mediaField: newPreviewId } )\n\t\t\t\t}\n\t\t\t/>\n\t\t);\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: previewField,\n\t\t\tisVisibleFlag: 'showMedia',\n\t\t\tui: previewFieldUI,\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\tlet 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< {\n\t\tfield: NormalizedField< any >;\n\t\tisVisibleFlag: string;\n\t\tui?: ReactNode;\n\t} >;\n\n\t// If only one locked field is visible, prevent it from being hidden.\n\tif ( visibleLockedFields.length === 1 ) {\n\t\tvisibleLockedFields = visibleLockedFields.map( ( locked ) => ( {\n\t\t\t...locked,\n\t\t\tfield: { ...locked.field, enableHiding: false },\n\t\t} ) );\n\t}\n\n\t// If no locked fields are visible but there are visibleFields, lock the last visible field.\n\tif ( visibleLockedFields.length === 0 && visibleFields.length === 1 ) {\n\t\tvisibleFields = [ { ...visibleFields[ 0 ], enableHiding: false } ];\n\t}\n\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< {\n\t\tfield: NormalizedField< any >;\n\t\tisVisibleFlag: string;\n\t\tui?: ReactNode;\n\t} >;\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, ui } ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\tui ?? (\n\t\t\t\t\t\t\t\t\t\t<FieldItem\n\t\t\t\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\t\t\t\tisVisible\n\t\t\t\t\t\t\t\t\t\t\tonToggleVisibility={ () => {\n\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...view,\n\t\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\t} );\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\tcanMove={ false }\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}\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, ui } ) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\tui ?? (\n\t\t\t\t\t\t\t\t\t\t\t\t<FieldItem\n\t\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\t\tfield={ field }\n\t\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\t\tonToggleVisibility={ () => {\n\t\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\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[ isVisibleFlag ]:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttrue,\n\t\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\t} }\n\t\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\t/>\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\nexport function 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<InfiniteScrollToggle />\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\treturn (\n\t\t<>\n\t\t\t<ViewTypeMenu />\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":[]}