@wordpress/dataviews 4.6.0 → 4.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/README.md +596 -89
- package/build/components/dataform-combined-edit/index.js +12 -6
- package/build/components/dataform-combined-edit/index.js.map +1 -1
- package/build/components/dataviews/index.js +8 -1
- package/build/components/dataviews/index.js.map +1 -1
- package/build/components/dataviews-bulk-actions/index.js +6 -6
- package/build/components/dataviews-bulk-actions/index.js.map +1 -1
- package/build/components/dataviews-context/index.js +2 -0
- package/build/components/dataviews-context/index.js.map +1 -1
- package/build/components/dataviews-filters/add-filter.js +7 -7
- package/build/components/dataviews-filters/add-filter.js.map +1 -1
- package/build/components/dataviews-filters/index.js +2 -2
- package/build/components/dataviews-filters/index.js.map +1 -1
- package/build/components/dataviews-item-actions/index.js +11 -11
- package/build/components/dataviews-item-actions/index.js.map +1 -1
- package/build/components/dataviews-layout/index.js +5 -1
- package/build/components/dataviews-layout/index.js.map +1 -1
- package/build/components/dataviews-selection-checkbox/index.js +1 -2
- package/build/components/dataviews-selection-checkbox/index.js.map +1 -1
- package/build/components/dataviews-view-config/index.js +6 -6
- package/build/components/dataviews-view-config/index.js.map +1 -1
- package/build/components/form-field-visibility/index.js +32 -0
- package/build/components/form-field-visibility/index.js.map +1 -0
- package/build/dataforms-layouts/panel/index.js +9 -3
- package/build/dataforms-layouts/panel/index.js.map +1 -1
- package/build/dataforms-layouts/regular/index.js +8 -2
- package/build/dataforms-layouts/regular/index.js.map +1 -1
- package/build/dataviews-layouts/grid/index.js +14 -3
- package/build/dataviews-layouts/grid/index.js.map +1 -1
- package/build/dataviews-layouts/list/index.js +10 -12
- package/build/dataviews-layouts/list/index.js.map +1 -1
- package/build/dataviews-layouts/table/column-header-menu.js +18 -18
- package/build/dataviews-layouts/table/column-header-menu.js.map +1 -1
- package/build/dataviews-layouts/table/index.js +22 -5
- package/build/dataviews-layouts/table/index.js.map +1 -1
- package/build/dataviews-layouts/utils/get-clickable-item-props.js +25 -0
- package/build/dataviews-layouts/utils/get-clickable-item-props.js.map +1 -0
- package/build/normalize-fields.js +16 -3
- package/build/normalize-fields.js.map +1 -1
- package/build/types.js.map +1 -1
- package/build/validation.js +9 -0
- package/build/validation.js.map +1 -1
- package/build-module/components/dataform-combined-edit/index.js +12 -6
- package/build-module/components/dataform-combined-edit/index.js.map +1 -1
- package/build-module/components/dataviews/index.js +8 -1
- package/build-module/components/dataviews/index.js.map +1 -1
- package/build-module/components/dataviews-bulk-actions/index.js +6 -6
- package/build-module/components/dataviews-bulk-actions/index.js.map +1 -1
- package/build-module/components/dataviews-context/index.js +2 -0
- package/build-module/components/dataviews-context/index.js.map +1 -1
- package/build-module/components/dataviews-filters/add-filter.js +6 -6
- package/build-module/components/dataviews-filters/add-filter.js.map +1 -1
- package/build-module/components/dataviews-filters/index.js +4 -4
- package/build-module/components/dataviews-filters/index.js.map +1 -1
- package/build-module/components/dataviews-item-actions/index.js +10 -10
- package/build-module/components/dataviews-item-actions/index.js.map +1 -1
- package/build-module/components/dataviews-layout/index.js +5 -1
- package/build-module/components/dataviews-layout/index.js.map +1 -1
- package/build-module/components/dataviews-selection-checkbox/index.js +1 -2
- package/build-module/components/dataviews-selection-checkbox/index.js.map +1 -1
- package/build-module/components/dataviews-view-config/index.js +6 -6
- package/build-module/components/dataviews-view-config/index.js.map +1 -1
- package/build-module/components/form-field-visibility/index.js +26 -0
- package/build-module/components/form-field-visibility/index.js.map +1 -0
- package/build-module/dataforms-layouts/panel/index.js +9 -4
- package/build-module/dataforms-layouts/panel/index.js.map +1 -1
- package/build-module/dataforms-layouts/regular/index.js +7 -2
- package/build-module/dataforms-layouts/regular/index.js.map +1 -1
- package/build-module/dataviews-layouts/grid/index.js +14 -3
- package/build-module/dataviews-layouts/grid/index.js.map +1 -1
- package/build-module/dataviews-layouts/list/index.js +11 -13
- package/build-module/dataviews-layouts/list/index.js.map +1 -1
- package/build-module/dataviews-layouts/table/column-header-menu.js +18 -18
- package/build-module/dataviews-layouts/table/column-header-menu.js.map +1 -1
- package/build-module/dataviews-layouts/table/index.js +22 -5
- package/build-module/dataviews-layouts/table/index.js.map +1 -1
- package/build-module/dataviews-layouts/utils/get-clickable-item-props.js +19 -0
- package/build-module/dataviews-layouts/utils/get-clickable-item-props.js.map +1 -0
- package/build-module/normalize-fields.js +15 -3
- package/build-module/normalize-fields.js.map +1 -1
- package/build-module/types.js.map +1 -1
- package/build-module/validation.js +9 -0
- package/build-module/validation.js.map +1 -1
- package/build-style/style-rtl.css +15 -6
- package/build-style/style.css +15 -6
- package/build-types/components/dataform/stories/index.story.d.ts.map +1 -1
- package/build-types/components/dataform-combined-edit/index.d.ts.map +1 -1
- package/build-types/components/dataviews/index.d.ts +3 -1
- package/build-types/components/dataviews/index.d.ts.map +1 -1
- package/build-types/components/dataviews-context/index.d.ts +2 -0
- package/build-types/components/dataviews-context/index.d.ts.map +1 -1
- package/build-types/components/dataviews-filters/add-filter.d.ts +1 -1
- package/build-types/components/dataviews-filters/add-filter.d.ts.map +1 -1
- package/build-types/components/dataviews-item-actions/index.d.ts +2 -2
- package/build-types/components/dataviews-item-actions/index.d.ts.map +1 -1
- package/build-types/components/dataviews-layout/index.d.ts.map +1 -1
- package/build-types/components/dataviews-selection-checkbox/index.d.ts.map +1 -1
- package/build-types/components/dataviews-view-config/index.d.ts.map +1 -1
- package/build-types/components/form-field-visibility/index.d.ts +11 -0
- package/build-types/components/form-field-visibility/index.d.ts.map +1 -0
- package/build-types/dataforms-layouts/panel/index.d.ts.map +1 -1
- package/build-types/dataforms-layouts/regular/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/grid/index.d.ts +1 -1
- package/build-types/dataviews-layouts/grid/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/list/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/table/column-header-menu.d.ts.map +1 -1
- package/build-types/dataviews-layouts/table/index.d.ts +1 -1
- package/build-types/dataviews-layouts/table/index.d.ts.map +1 -1
- package/build-types/dataviews-layouts/utils/get-clickable-item-props.d.ts +14 -0
- package/build-types/dataviews-layouts/utils/get-clickable-item-props.d.ts.map +1 -0
- package/build-types/lock-unlock.d.ts +1 -1
- package/build-types/lock-unlock.d.ts.map +1 -1
- package/build-types/normalize-fields.d.ts.map +1 -1
- package/build-types/types.d.ts +11 -6
- package/build-types/types.d.ts.map +1 -1
- package/build-types/validation.d.ts +9 -0
- package/build-types/validation.d.ts.map +1 -1
- package/package.json +12 -11
- package/src/components/dataform/stories/index.story.tsx +19 -3
- package/src/components/dataform-combined-edit/index.tsx +10 -7
- package/src/components/dataform-combined-edit/style.scss +4 -0
- package/src/components/dataviews/index.tsx +10 -1
- package/src/components/dataviews/style.scss +9 -3
- package/src/components/dataviews-bulk-actions/index.tsx +6 -6
- package/src/components/dataviews-context/index.ts +4 -0
- package/src/components/dataviews-filters/add-filter.tsx +8 -10
- package/src/components/dataviews-filters/index.tsx +4 -4
- package/src/components/dataviews-item-actions/index.tsx +15 -15
- package/src/components/dataviews-layout/index.tsx +4 -0
- package/src/components/dataviews-selection-checkbox/index.tsx +3 -2
- package/src/components/dataviews-view-config/index.tsx +8 -10
- package/src/components/form-field-visibility/index.tsx +32 -0
- package/src/dataforms-layouts/panel/index.tsx +11 -5
- package/src/dataforms-layouts/regular/index.tsx +9 -3
- package/src/dataviews-layouts/grid/index.tsx +29 -5
- package/src/dataviews-layouts/grid/style.scss +5 -0
- package/src/dataviews-layouts/list/index.tsx +10 -12
- package/src/dataviews-layouts/list/style.scss +1 -7
- package/src/dataviews-layouts/table/column-header-menu.tsx +31 -35
- package/src/dataviews-layouts/table/index.tsx +34 -3
- package/src/dataviews-layouts/utils/get-clickable-item-props.ts +22 -0
- package/src/normalize-fields.ts +17 -2
- package/src/test/normalize-fields.ts +45 -0
- package/src/types.ts +13 -2
- package/src/validation.ts +9 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
7
|
exports.default = void 0;
|
|
7
8
|
var _components = require("@wordpress/components");
|
|
9
|
+
var _formFieldVisibility = _interopRequireDefault(require("../form-field-visibility"));
|
|
8
10
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
11
|
/**
|
|
10
12
|
* WordPress dependencies
|
|
@@ -42,12 +44,16 @@ function DataFormCombinedEdit({
|
|
|
42
44
|
id
|
|
43
45
|
}) => id === fieldId)).filter(childField => !!childField);
|
|
44
46
|
const children = visibleChildren.map(child => {
|
|
45
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_formFieldVisibility.default, {
|
|
48
|
+
data: data,
|
|
49
|
+
field: child,
|
|
50
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
51
|
+
className: "dataforms-combined-edit__field",
|
|
52
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(child.Edit, {
|
|
53
|
+
data: data,
|
|
54
|
+
field: child,
|
|
55
|
+
onChange: onChange
|
|
56
|
+
})
|
|
51
57
|
})
|
|
52
58
|
}, child.id);
|
|
53
59
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_jsxRuntime","Header","title","jsx","__experimentalVStack","className","spacing","children","jsxs","__experimentalHStack","alignment","__experimentalHeading","level","size","__experimentalSpacer","DataFormCombinedEdit","field","data","onChange","hideLabelFromVision","_field$children","visibleChildren","map","fieldId","fields","find","id","filter","childField","child","Edit","Stack","direction","HStack","VStack","Fragment","label","as","_default","exports"
|
|
1
|
+
{"version":3,"names":["_components","require","_formFieldVisibility","_interopRequireDefault","_jsxRuntime","Header","title","jsx","__experimentalVStack","className","spacing","children","jsxs","__experimentalHStack","alignment","__experimentalHeading","level","size","__experimentalSpacer","DataFormCombinedEdit","field","data","onChange","hideLabelFromVision","_field$children","visibleChildren","map","fieldId","fields","find","id","filter","childField","child","default","Edit","Stack","direction","HStack","VStack","Fragment","label","as","_default","exports"],"sources":["@wordpress/dataviews/src/components/dataform-combined-edit/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalHeading as Heading,\n\t__experimentalSpacer as Spacer,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport type { DataFormCombinedEditProps, NormalizedField } from '../../types';\nimport FormFieldVisibility from '../form-field-visibility';\n\nfunction Header( { title }: { title: string } ) {\n\treturn (\n\t\t<VStack className=\"dataforms-layouts__dropdown-header\" spacing={ 4 }>\n\t\t\t<HStack alignment=\"center\">\n\t\t\t\t<Heading level={ 2 } size={ 13 }>\n\t\t\t\t\t{ title }\n\t\t\t\t</Heading>\n\t\t\t\t<Spacer />\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n\nfunction DataFormCombinedEdit< Item >( {\n\tfield,\n\tdata,\n\tonChange,\n\thideLabelFromVision,\n}: DataFormCombinedEditProps< Item > ) {\n\tconst className = 'dataforms-combined-edit';\n\tconst visibleChildren = ( field.children ?? [] )\n\t\t.map( ( fieldId ) => field.fields.find( ( { id } ) => id === fieldId ) )\n\t\t.filter(\n\t\t\t( childField ): childField is NormalizedField< Item > =>\n\t\t\t\t!! childField\n\t\t);\n\tconst children = visibleChildren.map( ( child ) => {\n\t\treturn (\n\t\t\t<FormFieldVisibility key={ child.id } data={ data } field={ child }>\n\t\t\t\t<div className=\"dataforms-combined-edit__field\">\n\t\t\t\t\t<child.Edit\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tfield={ child }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</FormFieldVisibility>\n\t\t);\n\t} );\n\n\tconst Stack = field.direction === 'horizontal' ? HStack : VStack;\n\n\treturn (\n\t\t<>\n\t\t\t{ ! hideLabelFromVision && <Header title={ field.label } /> }\n\t\t\t<Stack spacing={ 4 } className={ className } as=\"fieldset\">\n\t\t\t\t{ children }\n\t\t\t</Stack>\n\t\t</>\n\t);\n}\n\nexport default DataFormCombinedEdit;\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAWA,IAAAC,oBAAA,GAAAC,sBAAA,CAAAF,OAAA;AAA2D,IAAAG,WAAA,GAAAH,OAAA;AAd3D;AACA;AACA;;AAQA;AACA;AACA;;AAIA,SAASI,MAAMA,CAAE;EAAEC;AAAyB,CAAC,EAAG;EAC/C,oBACC,IAAAF,WAAA,CAAAG,GAAA,EAACP,WAAA,CAAAQ,oBAAM;IAACC,SAAS,EAAC,oCAAoC;IAACC,OAAO,EAAG,CAAG;IAAAC,QAAA,eACnE,IAAAP,WAAA,CAAAQ,IAAA,EAACZ,WAAA,CAAAa,oBAAM;MAACC,SAAS,EAAC,QAAQ;MAAAH,QAAA,gBACzB,IAAAP,WAAA,CAAAG,GAAA,EAACP,WAAA,CAAAe,qBAAO;QAACC,KAAK,EAAG,CAAG;QAACC,IAAI,EAAG,EAAI;QAAAN,QAAA,EAC7BL;MAAK,CACC,CAAC,eACV,IAAAF,WAAA,CAAAG,GAAA,EAACP,WAAA,CAAAkB,oBAAM,IAAE,CAAC;IAAA,CACH;EAAC,CACF,CAAC;AAEX;AAEA,SAASC,oBAAoBA,CAAU;EACtCC,KAAK;EACLC,IAAI;EACJC,QAAQ;EACRC;AACkC,CAAC,EAAG;EAAA,IAAAC,eAAA;EACtC,MAAMf,SAAS,GAAG,yBAAyB;EAC3C,MAAMgB,eAAe,GAAG,EAAAD,eAAA,GAAEJ,KAAK,CAACT,QAAQ,cAAAa,eAAA,cAAAA,eAAA,GAAI,EAAE,EAC5CE,GAAG,CAAIC,OAAO,IAAMP,KAAK,CAACQ,MAAM,CAACC,IAAI,CAAE,CAAE;IAAEC;EAAG,CAAC,KAAMA,EAAE,KAAKH,OAAQ,CAAE,CAAC,CACvEI,MAAM,CACJC,UAAU,IACX,CAAC,CAAEA,UACL,CAAC;EACF,MAAMrB,QAAQ,GAAGc,eAAe,CAACC,GAAG,CAAIO,KAAK,IAAM;IAClD,oBACC,IAAA7B,WAAA,CAAAG,GAAA,EAACL,oBAAA,CAAAgC,OAAmB;MAAkBb,IAAI,EAAGA,IAAM;MAACD,KAAK,EAAGa,KAAO;MAAAtB,QAAA,eAClE,IAAAP,WAAA,CAAAG,GAAA;QAAKE,SAAS,EAAC,gCAAgC;QAAAE,QAAA,eAC9C,IAAAP,WAAA,CAAAG,GAAA,EAAC0B,KAAK,CAACE,IAAI;UACVd,IAAI,EAAGA,IAAM;UACbD,KAAK,EAAGa,KAAO;UACfX,QAAQ,EAAGA;QAAU,CACrB;MAAC,CACE;IAAC,GAPoBW,KAAK,CAACH,EAQZ,CAAC;EAExB,CAAE,CAAC;EAEH,MAAMM,KAAK,GAAGhB,KAAK,CAACiB,SAAS,KAAK,YAAY,GAAGC,gCAAM,GAAGC,gCAAM;EAEhE,oBACC,IAAAnC,WAAA,CAAAQ,IAAA,EAAAR,WAAA,CAAAoC,QAAA;IAAA7B,QAAA,GACG,CAAEY,mBAAmB,iBAAI,IAAAnB,WAAA,CAAAG,GAAA,EAACF,MAAM;MAACC,KAAK,EAAGc,KAAK,CAACqB;IAAO,CAAE,CAAC,eAC3D,IAAArC,WAAA,CAAAG,GAAA,EAAC6B,KAAK;MAAC1B,OAAO,EAAG,CAAG;MAACD,SAAS,EAAGA,SAAW;MAACiC,EAAE,EAAC,UAAU;MAAA/B,QAAA,EACvDA;IAAQ,CACJ,CAAC;EAAA,CACP,CAAC;AAEL;AAAC,IAAAgC,QAAA,GAAAC,OAAA,CAAAV,OAAA,GAEcf,oBAAoB","ignoreList":[]}
|
|
@@ -30,13 +30,16 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
|
|
|
30
30
|
*/
|
|
31
31
|
|
|
32
32
|
const defaultGetItemId = item => item.id;
|
|
33
|
+
const defaultIsItemClickable = () => false;
|
|
34
|
+
const defaultOnClickItem = () => {};
|
|
35
|
+
const EMPTY_ARRAY = [];
|
|
33
36
|
function DataViews({
|
|
34
37
|
view,
|
|
35
38
|
onChangeView,
|
|
36
39
|
fields,
|
|
37
40
|
search = true,
|
|
38
41
|
searchLabel = undefined,
|
|
39
|
-
actions =
|
|
42
|
+
actions = EMPTY_ARRAY,
|
|
40
43
|
data,
|
|
41
44
|
getItemId = defaultGetItemId,
|
|
42
45
|
isLoading = false,
|
|
@@ -44,6 +47,8 @@ function DataViews({
|
|
|
44
47
|
defaultLayouts,
|
|
45
48
|
selection: selectionProperty,
|
|
46
49
|
onChangeSelection,
|
|
50
|
+
onClickItem = defaultOnClickItem,
|
|
51
|
+
isItemClickable = defaultIsItemClickable,
|
|
47
52
|
header
|
|
48
53
|
}) {
|
|
49
54
|
const [selectionState, setSelectionState] = (0, _element.useState)([]);
|
|
@@ -80,6 +85,8 @@ function DataViews({
|
|
|
80
85
|
openedFilter,
|
|
81
86
|
setOpenedFilter,
|
|
82
87
|
getItemId,
|
|
88
|
+
isItemClickable,
|
|
89
|
+
onClickItem,
|
|
83
90
|
density
|
|
84
91
|
},
|
|
85
92
|
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_element","_dataviewsContext","_interopRequireDefault","_dataviewsFilters","_interopRequireWildcard","_dataviewsLayout","_dataviewsFooter","_dataviewsSearch","_dataviewsViewConfig","_normalizeFields","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","defaultGetItemId","item","id","DataViews","view","onChangeView","fields","search","searchLabel","undefined","actions","data","getItemId","isLoading","paginationInfo","defaultLayouts","selection","selectionProperty","onChangeSelection","header","selectionState","setSelectionState","useState","density","setDensity","isUncontrolled","openedFilter","setOpenedFilter","setSelectionWithChange","value","newValue","_fields","useMemo","normalizeFields","_selection","filter","some","filters","useFilters","isShowingFilter","setIsShowingFilter","isPrimary","jsx","Provider","children","jsxs","className","__experimentalHStack","alignment","justify","spacing","expanded","label","FilterVisibilityToggle","style","flexShrink"],"sources":["@wordpress/dataviews/src/components/dataviews/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 { useMemo, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport {\n\tdefault as DataViewsFilters,\n\tuseFilters,\n\tFilterVisibilityToggle,\n} from '../dataviews-filters';\nimport DataViewsLayout from '../dataviews-layout';\nimport DataViewsFooter from '../dataviews-footer';\nimport DataViewsSearch from '../dataviews-search';\nimport DataViewsViewConfig from '../dataviews-view-config';\nimport { normalizeFields } from '../../normalize-fields';\nimport type { Action, Field, View, SupportedLayouts } from '../../types';\nimport type { SelectionOrUpdater } from '../../private-types';\n\ntype ItemWithId = { id: string };\n\ntype DataViewsProps< Item > = {\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tfields: Field< Item >[];\n\tsearch?: boolean;\n\tsearchLabel?: string;\n\tactions?: Action< Item >[];\n\tdata: Item[];\n\tisLoading?: boolean;\n\tpaginationInfo: {\n\t\ttotalItems: number;\n\t\ttotalPages: number;\n\t};\n\tdefaultLayouts: SupportedLayouts;\n\tselection?: string[];\n\tonChangeSelection?: ( items: string[] ) => void;\n\theader?: ReactNode;\n} & ( Item extends ItemWithId\n\t? { getItemId?: ( item: Item ) => string }\n\t: { getItemId: ( item: Item ) => string } );\n\nconst defaultGetItemId = ( item: ItemWithId ) => item.id;\n\nexport default function DataViews< Item >( {\n\tview,\n\tonChangeView,\n\tfields,\n\tsearch = true,\n\tsearchLabel = undefined,\n\tactions = [],\n\tdata,\n\tgetItemId = defaultGetItemId,\n\tisLoading = false,\n\tpaginationInfo,\n\tdefaultLayouts,\n\tselection: selectionProperty,\n\tonChangeSelection,\n\theader,\n}: DataViewsProps< Item > ) {\n\tconst [ selectionState, setSelectionState ] = useState< string[] >( [] );\n\tconst [ density, setDensity ] = useState< number >( 0 );\n\tconst isUncontrolled =\n\t\tselectionProperty === undefined || onChangeSelection === undefined;\n\tconst selection = isUncontrolled ? selectionState : selectionProperty;\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 ( isUncontrolled ) {\n\t\t\tsetSelectionState( newValue );\n\t\t}\n\t\tif ( onChangeSelection ) {\n\t\t\tonChangeSelection( newValue );\n\t\t}\n\t}\n\tconst _fields = useMemo( () => normalizeFields( fields ), [ fields ] );\n\tconst _selection = useMemo( () => {\n\t\treturn selection.filter( ( id ) =>\n\t\t\tdata.some( ( item ) => getItemId( item ) === id )\n\t\t);\n\t}, [ selection, data, getItemId ] );\n\n\tconst filters = useFilters( _fields, view );\n\tconst [ isShowingFilter, setIsShowingFilter ] = useState< boolean >( () =>\n\t\t( filters || [] ).some( ( filter ) => filter.isPrimary )\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\tselection: _selection,\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\tdensity,\n\t\t\t} }\n\t\t>\n\t\t\t<div className=\"dataviews-wrapper\">\n\t\t\t\t<HStack\n\t\t\t\t\talignment=\"top\"\n\t\t\t\t\tjustify=\"space-between\"\n\t\t\t\t\tclassName=\"dataviews__view-actions\"\n\t\t\t\t\tspacing={ 1 }\n\t\t\t\t>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tjustify=\"start\"\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\tclassName=\"dataviews__search\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ search && <DataViewsSearch label={ searchLabel } /> }\n\t\t\t\t\t\t<FilterVisibilityToggle\n\t\t\t\t\t\t\tfilters={ filters }\n\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\t\t\t\tsetIsShowingFilter={ setIsShowingFilter }\n\t\t\t\t\t\t\tisShowingFilter={ isShowingFilter }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</HStack>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\tstyle={ { flexShrink: 0 } }\n\t\t\t\t\t>\n\t\t\t\t\t\t<DataViewsViewConfig\n\t\t\t\t\t\t\tdefaultLayouts={ defaultLayouts }\n\t\t\t\t\t\t\tdensity={ density }\n\t\t\t\t\t\t\tsetDensity={ setDensity }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ header }\n\t\t\t\t\t</HStack>\n\t\t\t\t</HStack>\n\t\t\t\t{ isShowingFilter && <DataViewsFilters /> }\n\t\t\t\t<DataViewsLayout />\n\t\t\t\t<DataViewsFooter />\n\t\t\t</div>\n\t\t</DataViewsContext.Provider>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_components","require","_element","_dataviewsContext","_interopRequireDefault","_dataviewsFilters","_interopRequireWildcard","_dataviewsLayout","_dataviewsFooter","_dataviewsSearch","_dataviewsViewConfig","_normalizeFields","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","defaultGetItemId","item","id","defaultIsItemClickable","defaultOnClickItem","EMPTY_ARRAY","DataViews","view","onChangeView","fields","search","searchLabel","undefined","actions","data","getItemId","isLoading","paginationInfo","defaultLayouts","selection","selectionProperty","onChangeSelection","onClickItem","isItemClickable","header","selectionState","setSelectionState","useState","density","setDensity","isUncontrolled","openedFilter","setOpenedFilter","setSelectionWithChange","value","newValue","_fields","useMemo","normalizeFields","_selection","filter","some","filters","useFilters","isShowingFilter","setIsShowingFilter","isPrimary","jsx","Provider","children","jsxs","className","__experimentalHStack","alignment","justify","spacing","expanded","label","FilterVisibilityToggle","style","flexShrink"],"sources":["@wordpress/dataviews/src/components/dataviews/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 { useMemo, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport {\n\tdefault as DataViewsFilters,\n\tuseFilters,\n\tFilterVisibilityToggle,\n} from '../dataviews-filters';\nimport DataViewsLayout from '../dataviews-layout';\nimport DataViewsFooter from '../dataviews-footer';\nimport DataViewsSearch from '../dataviews-search';\nimport DataViewsViewConfig from '../dataviews-view-config';\nimport { normalizeFields } from '../../normalize-fields';\nimport type { Action, Field, View, SupportedLayouts } from '../../types';\nimport type { SelectionOrUpdater } from '../../private-types';\n\ntype ItemWithId = { id: string };\n\ntype DataViewsProps< Item > = {\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tfields: Field< Item >[];\n\tsearch?: boolean;\n\tsearchLabel?: string;\n\tactions?: Action< Item >[];\n\tdata: Item[];\n\tisLoading?: boolean;\n\tpaginationInfo: {\n\t\ttotalItems: number;\n\t\ttotalPages: number;\n\t};\n\tdefaultLayouts: SupportedLayouts;\n\tselection?: string[];\n\tonChangeSelection?: ( items: string[] ) => void;\n\tonClickItem?: ( item: Item ) => void;\n\tisItemClickable?: ( item: Item ) => boolean;\n\theader?: 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 defaultIsItemClickable = () => false;\nconst defaultOnClickItem = () => {};\nconst EMPTY_ARRAY: any[] = [];\n\nexport default function DataViews< 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,\n\tselection: selectionProperty,\n\tonChangeSelection,\n\tonClickItem = defaultOnClickItem,\n\tisItemClickable = defaultIsItemClickable,\n\theader,\n}: DataViewsProps< Item > ) {\n\tconst [ selectionState, setSelectionState ] = useState< string[] >( [] );\n\tconst [ density, setDensity ] = useState< number >( 0 );\n\tconst isUncontrolled =\n\t\tselectionProperty === undefined || onChangeSelection === undefined;\n\tconst selection = isUncontrolled ? selectionState : selectionProperty;\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 ( isUncontrolled ) {\n\t\t\tsetSelectionState( newValue );\n\t\t}\n\t\tif ( onChangeSelection ) {\n\t\t\tonChangeSelection( newValue );\n\t\t}\n\t}\n\tconst _fields = useMemo( () => normalizeFields( fields ), [ fields ] );\n\tconst _selection = useMemo( () => {\n\t\treturn selection.filter( ( id ) =>\n\t\t\tdata.some( ( item ) => getItemId( item ) === id )\n\t\t);\n\t}, [ selection, data, getItemId ] );\n\n\tconst filters = useFilters( _fields, view );\n\tconst [ isShowingFilter, setIsShowingFilter ] = useState< boolean >( () =>\n\t\t( filters || [] ).some( ( filter ) => filter.isPrimary )\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\tselection: _selection,\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\tisItemClickable,\n\t\t\t\tonClickItem,\n\t\t\t\tdensity,\n\t\t\t} }\n\t\t>\n\t\t\t<div className=\"dataviews-wrapper\">\n\t\t\t\t<HStack\n\t\t\t\t\talignment=\"top\"\n\t\t\t\t\tjustify=\"space-between\"\n\t\t\t\t\tclassName=\"dataviews__view-actions\"\n\t\t\t\t\tspacing={ 1 }\n\t\t\t\t>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tjustify=\"start\"\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\tclassName=\"dataviews__search\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ search && <DataViewsSearch label={ searchLabel } /> }\n\t\t\t\t\t\t<FilterVisibilityToggle\n\t\t\t\t\t\t\tfilters={ filters }\n\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\t\t\t\tsetIsShowingFilter={ setIsShowingFilter }\n\t\t\t\t\t\t\tisShowingFilter={ isShowingFilter }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</HStack>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\tstyle={ { flexShrink: 0 } }\n\t\t\t\t\t>\n\t\t\t\t\t\t<DataViewsViewConfig\n\t\t\t\t\t\t\tdefaultLayouts={ defaultLayouts }\n\t\t\t\t\t\t\tdensity={ density }\n\t\t\t\t\t\t\tsetDensity={ setDensity }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ header }\n\t\t\t\t\t</HStack>\n\t\t\t\t</HStack>\n\t\t\t\t{ isShowingFilter && <DataViewsFilters /> }\n\t\t\t\t<DataViewsLayout />\n\t\t\t\t<DataViewsFooter />\n\t\t\t</div>\n\t\t</DataViewsContext.Provider>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -172,7 +172,7 @@ function FooterContent({
|
|
|
172
172
|
getItemId
|
|
173
173
|
}) {
|
|
174
174
|
const [actionInProgress, setActionInProgress] = (0, _element.useState)(null);
|
|
175
|
-
const
|
|
175
|
+
const footerContentRef = (0, _element.useRef)(null);
|
|
176
176
|
const bulkActions = (0, _element.useMemo)(() => actions.filter(action => action.supportsBulk), [actions]);
|
|
177
177
|
const selectableItems = (0, _element.useMemo)(() => {
|
|
178
178
|
return data.filter(item => {
|
|
@@ -186,14 +186,14 @@ function FooterContent({
|
|
|
186
186
|
return action.supportsBulk && action.icon && selectedItems.some(item => !action.isEligible || action.isEligible(item));
|
|
187
187
|
}), [actions, selectedItems]);
|
|
188
188
|
if (!actionInProgress) {
|
|
189
|
-
if (
|
|
190
|
-
|
|
189
|
+
if (footerContentRef.current) {
|
|
190
|
+
footerContentRef.current = null;
|
|
191
191
|
}
|
|
192
192
|
return renderFooterContent(data, actions, getItemId, selection, actionsToShow, selectedItems, actionInProgress, setActionInProgress, onChangeSelection);
|
|
193
|
-
} else if (!
|
|
194
|
-
|
|
193
|
+
} else if (!footerContentRef.current) {
|
|
194
|
+
footerContentRef.current = renderFooterContent(data, actions, getItemId, selection, actionsToShow, selectedItems, actionInProgress, setActionInProgress, onChangeSelection);
|
|
195
195
|
}
|
|
196
|
-
return
|
|
196
|
+
return footerContentRef.current;
|
|
197
197
|
}
|
|
198
198
|
function BulkActionsFooter() {
|
|
199
199
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_i18n","_element","_data","_icons","_dataviewsContext","_interopRequireDefault","_dataviewsItemActions","_jsxRuntime","useHasAPossibleBulkAction","actions","item","useMemo","some","action","supportsBulk","isEligible","useSomeItemHasAPossibleBulkAction","data","BulkSelectionCheckbox","selection","onChangeSelection","getItemId","selectableItems","filter","selectedItems","includes","areAllSelected","length","jsx","CheckboxControl","className","__nextHasNoMarginBottom","checked","indeterminate","onChange","map","__","ActionTrigger","onClick","isBusy","items","label","Button","disabled","accessibleWhenDisabled","icon","isDestructive","size","tooltipPosition","EMPTY_ARRAY","ActionButton","actionInProgress","setActionInProgress","registry","useRegistry","selectedEligibleItems","ActionWithModal","id","callback","renderFooterContent","actionsToShow","message","sprintf","_n","jsxs","__experimentalHStack","expanded","spacing","children","closeSmall","showTooltip","FooterContent","useState","footerContent","useRef","bulkActions","current","BulkActionsFooter","useContext","DataViewsContext"],"sources":["@wordpress/dataviews/src/components/dataviews-bulk-actions/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tCheckboxControl,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { useMemo, useState, useRef, useContext } from '@wordpress/element';\nimport { useRegistry } from '@wordpress/data';\nimport { closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport { ActionWithModal } from '../dataviews-item-actions';\nimport type { Action } from '../../types';\nimport type { SetSelection } from '../../private-types';\nimport type { ActionTriggerProps } from '../dataviews-item-actions';\n\nexport function useHasAPossibleBulkAction< Item >(\n\tactions: Action< Item >[],\n\titem: Item\n) {\n\treturn useMemo( () => {\n\t\treturn actions.some( ( action ) => {\n\t\t\treturn (\n\t\t\t\taction.supportsBulk &&\n\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t);\n\t\t} );\n\t}, [ actions, item ] );\n}\n\nexport function useSomeItemHasAPossibleBulkAction< Item >(\n\tactions: Action< Item >[],\n\tdata: Item[]\n) {\n\treturn useMemo( () => {\n\t\treturn data.some( ( item ) => {\n\t\t\treturn actions.some( ( action ) => {\n\t\t\t\treturn (\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t\t);\n\t\t\t} );\n\t\t} );\n\t}, [ actions, data ] );\n}\n\ninterface BulkSelectionCheckboxProps< Item > {\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\tdata: Item[];\n\tactions: Action< Item >[];\n\tgetItemId: ( item: Item ) => string;\n}\n\nexport function BulkSelectionCheckbox< Item >( {\n\tselection,\n\tonChangeSelection,\n\tdata,\n\tactions,\n\tgetItemId,\n}: BulkSelectionCheckboxProps< Item > ) {\n\tconst selectableItems = useMemo( () => {\n\t\treturn data.filter( ( item ) => {\n\t\t\treturn actions.some(\n\t\t\t\t( action ) =>\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t);\n\t\t} );\n\t}, [ data, actions ] );\n\tconst selectedItems = data.filter(\n\t\t( item ) =>\n\t\t\tselection.includes( getItemId( item ) ) &&\n\t\t\tselectableItems.includes( item )\n\t);\n\tconst areAllSelected = selectedItems.length === selectableItems.length;\n\treturn (\n\t\t<CheckboxControl\n\t\t\tclassName=\"dataviews-view-table-selection-checkbox\"\n\t\t\t__nextHasNoMarginBottom\n\t\t\tchecked={ areAllSelected }\n\t\t\tindeterminate={ ! areAllSelected && !! selectedItems.length }\n\t\t\tonChange={ () => {\n\t\t\t\tif ( areAllSelected ) {\n\t\t\t\t\tonChangeSelection( [] );\n\t\t\t\t} else {\n\t\t\t\t\tonChangeSelection(\n\t\t\t\t\t\tselectableItems.map( ( item ) => getItemId( item ) )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} }\n\t\t\taria-label={\n\t\t\t\tareAllSelected ? __( 'Deselect all' ) : __( 'Select all' )\n\t\t\t}\n\t\t/>\n\t);\n}\n\ninterface ActionButtonProps< Item > {\n\taction: Action< Item >;\n\tselectedItems: Item[];\n\tactionInProgress: string | null;\n\tsetActionInProgress: ( actionId: string | null ) => void;\n}\n\ninterface ToolbarContentProps< Item > {\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\tdata: Item[];\n\tactions: Action< Item >[];\n\tgetItemId: ( item: Item ) => string;\n}\n\nfunction ActionTrigger< Item >( {\n\taction,\n\tonClick,\n\tisBusy,\n\titems,\n}: ActionTriggerProps< Item > ) {\n\tconst label =\n\t\ttypeof action.label === 'string' ? action.label : action.label( items );\n\treturn (\n\t\t<Button\n\t\t\tdisabled={ isBusy }\n\t\t\taccessibleWhenDisabled\n\t\t\tlabel={ label }\n\t\t\ticon={ action.icon }\n\t\t\tisDestructive={ action.isDestructive }\n\t\t\tsize=\"compact\"\n\t\t\tonClick={ onClick }\n\t\t\tisBusy={ isBusy }\n\t\t\ttooltipPosition=\"top\"\n\t\t/>\n\t);\n}\n\nconst EMPTY_ARRAY: [] = [];\n\nfunction ActionButton< Item >( {\n\taction,\n\tselectedItems,\n\tactionInProgress,\n\tsetActionInProgress,\n}: ActionButtonProps< Item > ) {\n\tconst registry = useRegistry();\n\tconst selectedEligibleItems = useMemo( () => {\n\t\treturn selectedItems.filter( ( item ) => {\n\t\t\treturn ! action.isEligible || action.isEligible( item );\n\t\t} );\n\t}, [ action, selectedItems ] );\n\tif ( 'RenderModal' in action ) {\n\t\treturn (\n\t\t\t<ActionWithModal\n\t\t\t\tkey={ action.id }\n\t\t\t\taction={ action }\n\t\t\t\titems={ selectedEligibleItems }\n\t\t\t\tActionTrigger={ ActionTrigger }\n\t\t\t/>\n\t\t);\n\t}\n\treturn (\n\t\t<ActionTrigger\n\t\t\tkey={ action.id }\n\t\t\taction={ action }\n\t\t\tonClick={ async () => {\n\t\t\t\tsetActionInProgress( action.id );\n\t\t\t\tawait action.callback( selectedItems, {\n\t\t\t\t\tregistry,\n\t\t\t\t} );\n\t\t\t\tsetActionInProgress( null );\n\t\t\t} }\n\t\t\titems={ selectedEligibleItems }\n\t\t\tisBusy={ actionInProgress === action.id }\n\t\t/>\n\t);\n}\n\nfunction renderFooterContent< Item >(\n\tdata: Item[],\n\tactions: Action< Item >[],\n\tgetItemId: ( item: Item ) => string,\n\tselection: string[],\n\tactionsToShow: Action< Item >[],\n\tselectedItems: Item[],\n\tactionInProgress: string | null,\n\tsetActionInProgress: ( actionId: string | null ) => void,\n\tonChangeSelection: SetSelection\n) {\n\tconst message =\n\t\tselectedItems.length > 0\n\t\t\t? sprintf(\n\t\t\t\t\t/* translators: %d: number of items. */\n\t\t\t\t\t_n(\n\t\t\t\t\t\t'%d Item selected',\n\t\t\t\t\t\t'%d Items selected',\n\t\t\t\t\t\tselectedItems.length\n\t\t\t\t\t),\n\t\t\t\t\tselectedItems.length\n\t\t\t )\n\t\t\t: sprintf(\n\t\t\t\t\t/* translators: %d: number of items. */\n\t\t\t\t\t_n( '%d Item', '%d Items', data.length ),\n\t\t\t\t\tdata.length\n\t\t\t );\n\treturn (\n\t\t<HStack\n\t\t\texpanded={ false }\n\t\t\tclassName=\"dataviews-bulk-actions-footer__container\"\n\t\t\tspacing={ 3 }\n\t\t>\n\t\t\t<BulkSelectionCheckbox\n\t\t\t\tselection={ selection }\n\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\tdata={ data }\n\t\t\t\tactions={ actions }\n\t\t\t\tgetItemId={ getItemId }\n\t\t\t/>\n\t\t\t<span className=\"dataviews-bulk-actions-footer__item-count\">\n\t\t\t\t{ message }\n\t\t\t</span>\n\t\t\t<HStack\n\t\t\t\tclassName=\"dataviews-bulk-actions-footer__action-buttons\"\n\t\t\t\texpanded={ false }\n\t\t\t\tspacing={ 1 }\n\t\t\t>\n\t\t\t\t{ actionsToShow.map( ( action ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ActionButton\n\t\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\t\tselectedItems={ selectedItems }\n\t\t\t\t\t\t\tactionInProgress={ actionInProgress }\n\t\t\t\t\t\t\tsetActionInProgress={ setActionInProgress }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t\t{ selectedItems.length > 0 && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\tlabel={ __( 'Cancel' ) }\n\t\t\t\t\t\tdisabled={ !! actionInProgress }\n\t\t\t\t\t\taccessibleWhenDisabled={ false }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonChangeSelection( EMPTY_ARRAY );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</HStack>\n\t);\n}\n\nfunction FooterContent< Item >( {\n\tselection,\n\tactions,\n\tonChangeSelection,\n\tdata,\n\tgetItemId,\n}: ToolbarContentProps< Item > ) {\n\tconst [ actionInProgress, setActionInProgress ] = useState< string | null >(\n\t\tnull\n\t);\n\tconst footerContent = useRef< JSX.Element | null >( null );\n\n\tconst bulkActions = useMemo(\n\t\t() => actions.filter( ( action ) => action.supportsBulk ),\n\t\t[ actions ]\n\t);\n\tconst selectableItems = useMemo( () => {\n\t\treturn data.filter( ( item ) => {\n\t\t\treturn bulkActions.some(\n\t\t\t\t( action ) => ! action.isEligible || action.isEligible( item )\n\t\t\t);\n\t\t} );\n\t}, [ data, bulkActions ] );\n\n\tconst selectedItems = useMemo( () => {\n\t\treturn data.filter(\n\t\t\t( item ) =>\n\t\t\t\tselection.includes( getItemId( item ) ) &&\n\t\t\t\tselectableItems.includes( item )\n\t\t);\n\t}, [ selection, data, getItemId, selectableItems ] );\n\n\tconst actionsToShow = useMemo(\n\t\t() =>\n\t\t\tactions.filter( ( action ) => {\n\t\t\t\treturn (\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\taction.icon &&\n\t\t\t\t\tselectedItems.some(\n\t\t\t\t\t\t( item ) =>\n\t\t\t\t\t\t\t! action.isEligible || action.isEligible( item )\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} ),\n\t\t[ actions, selectedItems ]\n\t);\n\tif ( ! actionInProgress ) {\n\t\tif ( footerContent.current ) {\n\t\t\tfooterContent.current = null;\n\t\t}\n\t\treturn renderFooterContent(\n\t\t\tdata,\n\t\t\tactions,\n\t\t\tgetItemId,\n\t\t\tselection,\n\t\t\tactionsToShow,\n\t\t\tselectedItems,\n\t\t\tactionInProgress,\n\t\t\tsetActionInProgress,\n\t\t\tonChangeSelection\n\t\t);\n\t} else if ( ! footerContent.current ) {\n\t\tfooterContent.current = renderFooterContent(\n\t\t\tdata,\n\t\t\tactions,\n\t\t\tgetItemId,\n\t\t\tselection,\n\t\t\tactionsToShow,\n\t\t\tselectedItems,\n\t\t\tactionInProgress,\n\t\t\tsetActionInProgress,\n\t\t\tonChangeSelection\n\t\t);\n\t}\n\treturn footerContent.current;\n}\n\nexport function BulkActionsFooter() {\n\tconst {\n\t\tdata,\n\t\tselection,\n\t\tactions = EMPTY_ARRAY,\n\t\tonChangeSelection,\n\t\tgetItemId,\n\t} = useContext( DataViewsContext );\n\treturn (\n\t\t<FooterContent\n\t\t\tselection={ selection }\n\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\tdata={ data }\n\t\t\tactions={ actions }\n\t\t\tgetItemId={ getItemId }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_components","require","_i18n","_element","_data","_icons","_dataviewsContext","_interopRequireDefault","_dataviewsItemActions","_jsxRuntime","useHasAPossibleBulkAction","actions","item","useMemo","some","action","supportsBulk","isEligible","useSomeItemHasAPossibleBulkAction","data","BulkSelectionCheckbox","selection","onChangeSelection","getItemId","selectableItems","filter","selectedItems","includes","areAllSelected","length","jsx","CheckboxControl","className","__nextHasNoMarginBottom","checked","indeterminate","onChange","map","__","ActionTrigger","onClick","isBusy","items","label","Button","disabled","accessibleWhenDisabled","icon","isDestructive","size","tooltipPosition","EMPTY_ARRAY","ActionButton","actionInProgress","setActionInProgress","registry","useRegistry","selectedEligibleItems","ActionWithModal","id","callback","renderFooterContent","actionsToShow","message","sprintf","_n","jsxs","__experimentalHStack","expanded","spacing","children","closeSmall","showTooltip","FooterContent","useState","footerContentRef","useRef","bulkActions","current","BulkActionsFooter","useContext","DataViewsContext"],"sources":["@wordpress/dataviews/src/components/dataviews-bulk-actions/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tCheckboxControl,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { useMemo, useState, useRef, useContext } from '@wordpress/element';\nimport { useRegistry } from '@wordpress/data';\nimport { closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport { ActionWithModal } from '../dataviews-item-actions';\nimport type { Action } from '../../types';\nimport type { SetSelection } from '../../private-types';\nimport type { ActionTriggerProps } from '../dataviews-item-actions';\n\nexport function useHasAPossibleBulkAction< Item >(\n\tactions: Action< Item >[],\n\titem: Item\n) {\n\treturn useMemo( () => {\n\t\treturn actions.some( ( action ) => {\n\t\t\treturn (\n\t\t\t\taction.supportsBulk &&\n\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t);\n\t\t} );\n\t}, [ actions, item ] );\n}\n\nexport function useSomeItemHasAPossibleBulkAction< Item >(\n\tactions: Action< Item >[],\n\tdata: Item[]\n) {\n\treturn useMemo( () => {\n\t\treturn data.some( ( item ) => {\n\t\t\treturn actions.some( ( action ) => {\n\t\t\t\treturn (\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t\t);\n\t\t\t} );\n\t\t} );\n\t}, [ actions, data ] );\n}\n\ninterface BulkSelectionCheckboxProps< Item > {\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\tdata: Item[];\n\tactions: Action< Item >[];\n\tgetItemId: ( item: Item ) => string;\n}\n\nexport function BulkSelectionCheckbox< Item >( {\n\tselection,\n\tonChangeSelection,\n\tdata,\n\tactions,\n\tgetItemId,\n}: BulkSelectionCheckboxProps< Item > ) {\n\tconst selectableItems = useMemo( () => {\n\t\treturn data.filter( ( item ) => {\n\t\t\treturn actions.some(\n\t\t\t\t( action ) =>\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t);\n\t\t} );\n\t}, [ data, actions ] );\n\tconst selectedItems = data.filter(\n\t\t( item ) =>\n\t\t\tselection.includes( getItemId( item ) ) &&\n\t\t\tselectableItems.includes( item )\n\t);\n\tconst areAllSelected = selectedItems.length === selectableItems.length;\n\treturn (\n\t\t<CheckboxControl\n\t\t\tclassName=\"dataviews-view-table-selection-checkbox\"\n\t\t\t__nextHasNoMarginBottom\n\t\t\tchecked={ areAllSelected }\n\t\t\tindeterminate={ ! areAllSelected && !! selectedItems.length }\n\t\t\tonChange={ () => {\n\t\t\t\tif ( areAllSelected ) {\n\t\t\t\t\tonChangeSelection( [] );\n\t\t\t\t} else {\n\t\t\t\t\tonChangeSelection(\n\t\t\t\t\t\tselectableItems.map( ( item ) => getItemId( item ) )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} }\n\t\t\taria-label={\n\t\t\t\tareAllSelected ? __( 'Deselect all' ) : __( 'Select all' )\n\t\t\t}\n\t\t/>\n\t);\n}\n\ninterface ActionButtonProps< Item > {\n\taction: Action< Item >;\n\tselectedItems: Item[];\n\tactionInProgress: string | null;\n\tsetActionInProgress: ( actionId: string | null ) => void;\n}\n\ninterface ToolbarContentProps< Item > {\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\tdata: Item[];\n\tactions: Action< Item >[];\n\tgetItemId: ( item: Item ) => string;\n}\n\nfunction ActionTrigger< Item >( {\n\taction,\n\tonClick,\n\tisBusy,\n\titems,\n}: ActionTriggerProps< Item > ) {\n\tconst label =\n\t\ttypeof action.label === 'string' ? action.label : action.label( items );\n\treturn (\n\t\t<Button\n\t\t\tdisabled={ isBusy }\n\t\t\taccessibleWhenDisabled\n\t\t\tlabel={ label }\n\t\t\ticon={ action.icon }\n\t\t\tisDestructive={ action.isDestructive }\n\t\t\tsize=\"compact\"\n\t\t\tonClick={ onClick }\n\t\t\tisBusy={ isBusy }\n\t\t\ttooltipPosition=\"top\"\n\t\t/>\n\t);\n}\n\nconst EMPTY_ARRAY: [] = [];\n\nfunction ActionButton< Item >( {\n\taction,\n\tselectedItems,\n\tactionInProgress,\n\tsetActionInProgress,\n}: ActionButtonProps< Item > ) {\n\tconst registry = useRegistry();\n\tconst selectedEligibleItems = useMemo( () => {\n\t\treturn selectedItems.filter( ( item ) => {\n\t\t\treturn ! action.isEligible || action.isEligible( item );\n\t\t} );\n\t}, [ action, selectedItems ] );\n\tif ( 'RenderModal' in action ) {\n\t\treturn (\n\t\t\t<ActionWithModal\n\t\t\t\tkey={ action.id }\n\t\t\t\taction={ action }\n\t\t\t\titems={ selectedEligibleItems }\n\t\t\t\tActionTrigger={ ActionTrigger }\n\t\t\t/>\n\t\t);\n\t}\n\treturn (\n\t\t<ActionTrigger\n\t\t\tkey={ action.id }\n\t\t\taction={ action }\n\t\t\tonClick={ async () => {\n\t\t\t\tsetActionInProgress( action.id );\n\t\t\t\tawait action.callback( selectedItems, {\n\t\t\t\t\tregistry,\n\t\t\t\t} );\n\t\t\t\tsetActionInProgress( null );\n\t\t\t} }\n\t\t\titems={ selectedEligibleItems }\n\t\t\tisBusy={ actionInProgress === action.id }\n\t\t/>\n\t);\n}\n\nfunction renderFooterContent< Item >(\n\tdata: Item[],\n\tactions: Action< Item >[],\n\tgetItemId: ( item: Item ) => string,\n\tselection: string[],\n\tactionsToShow: Action< Item >[],\n\tselectedItems: Item[],\n\tactionInProgress: string | null,\n\tsetActionInProgress: ( actionId: string | null ) => void,\n\tonChangeSelection: SetSelection\n) {\n\tconst message =\n\t\tselectedItems.length > 0\n\t\t\t? sprintf(\n\t\t\t\t\t/* translators: %d: number of items. */\n\t\t\t\t\t_n(\n\t\t\t\t\t\t'%d Item selected',\n\t\t\t\t\t\t'%d Items selected',\n\t\t\t\t\t\tselectedItems.length\n\t\t\t\t\t),\n\t\t\t\t\tselectedItems.length\n\t\t\t )\n\t\t\t: sprintf(\n\t\t\t\t\t/* translators: %d: number of items. */\n\t\t\t\t\t_n( '%d Item', '%d Items', data.length ),\n\t\t\t\t\tdata.length\n\t\t\t );\n\treturn (\n\t\t<HStack\n\t\t\texpanded={ false }\n\t\t\tclassName=\"dataviews-bulk-actions-footer__container\"\n\t\t\tspacing={ 3 }\n\t\t>\n\t\t\t<BulkSelectionCheckbox\n\t\t\t\tselection={ selection }\n\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\tdata={ data }\n\t\t\t\tactions={ actions }\n\t\t\t\tgetItemId={ getItemId }\n\t\t\t/>\n\t\t\t<span className=\"dataviews-bulk-actions-footer__item-count\">\n\t\t\t\t{ message }\n\t\t\t</span>\n\t\t\t<HStack\n\t\t\t\tclassName=\"dataviews-bulk-actions-footer__action-buttons\"\n\t\t\t\texpanded={ false }\n\t\t\t\tspacing={ 1 }\n\t\t\t>\n\t\t\t\t{ actionsToShow.map( ( action ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ActionButton\n\t\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\t\tselectedItems={ selectedItems }\n\t\t\t\t\t\t\tactionInProgress={ actionInProgress }\n\t\t\t\t\t\t\tsetActionInProgress={ setActionInProgress }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t\t{ selectedItems.length > 0 && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\tlabel={ __( 'Cancel' ) }\n\t\t\t\t\t\tdisabled={ !! actionInProgress }\n\t\t\t\t\t\taccessibleWhenDisabled={ false }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonChangeSelection( EMPTY_ARRAY );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</HStack>\n\t);\n}\n\nfunction FooterContent< Item >( {\n\tselection,\n\tactions,\n\tonChangeSelection,\n\tdata,\n\tgetItemId,\n}: ToolbarContentProps< Item > ) {\n\tconst [ actionInProgress, setActionInProgress ] = useState< string | null >(\n\t\tnull\n\t);\n\tconst footerContentRef = useRef< JSX.Element | null >( null );\n\n\tconst bulkActions = useMemo(\n\t\t() => actions.filter( ( action ) => action.supportsBulk ),\n\t\t[ actions ]\n\t);\n\tconst selectableItems = useMemo( () => {\n\t\treturn data.filter( ( item ) => {\n\t\t\treturn bulkActions.some(\n\t\t\t\t( action ) => ! action.isEligible || action.isEligible( item )\n\t\t\t);\n\t\t} );\n\t}, [ data, bulkActions ] );\n\n\tconst selectedItems = useMemo( () => {\n\t\treturn data.filter(\n\t\t\t( item ) =>\n\t\t\t\tselection.includes( getItemId( item ) ) &&\n\t\t\t\tselectableItems.includes( item )\n\t\t);\n\t}, [ selection, data, getItemId, selectableItems ] );\n\n\tconst actionsToShow = useMemo(\n\t\t() =>\n\t\t\tactions.filter( ( action ) => {\n\t\t\t\treturn (\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\taction.icon &&\n\t\t\t\t\tselectedItems.some(\n\t\t\t\t\t\t( item ) =>\n\t\t\t\t\t\t\t! action.isEligible || action.isEligible( item )\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} ),\n\t\t[ actions, selectedItems ]\n\t);\n\tif ( ! actionInProgress ) {\n\t\tif ( footerContentRef.current ) {\n\t\t\tfooterContentRef.current = null;\n\t\t}\n\t\treturn renderFooterContent(\n\t\t\tdata,\n\t\t\tactions,\n\t\t\tgetItemId,\n\t\t\tselection,\n\t\t\tactionsToShow,\n\t\t\tselectedItems,\n\t\t\tactionInProgress,\n\t\t\tsetActionInProgress,\n\t\t\tonChangeSelection\n\t\t);\n\t} else if ( ! footerContentRef.current ) {\n\t\tfooterContentRef.current = renderFooterContent(\n\t\t\tdata,\n\t\t\tactions,\n\t\t\tgetItemId,\n\t\t\tselection,\n\t\t\tactionsToShow,\n\t\t\tselectedItems,\n\t\t\tactionInProgress,\n\t\t\tsetActionInProgress,\n\t\t\tonChangeSelection\n\t\t);\n\t}\n\treturn footerContentRef.current;\n}\n\nexport function BulkActionsFooter() {\n\tconst {\n\t\tdata,\n\t\tselection,\n\t\tactions = EMPTY_ARRAY,\n\t\tonChangeSelection,\n\t\tgetItemId,\n\t} = useContext( DataViewsContext );\n\treturn (\n\t\t<FooterContent\n\t\t\tselection={ selection }\n\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\tdata={ data }\n\t\t\tactions={ actions }\n\t\t\tgetItemId={ getItemId }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -30,6 +30,8 @@ const DataViewsContext = (0, _element.createContext)({
|
|
|
30
30
|
setOpenedFilter: () => {},
|
|
31
31
|
openedFilter: null,
|
|
32
32
|
getItemId: item => item.id,
|
|
33
|
+
onClickItem: () => {},
|
|
34
|
+
isItemClickable: () => false,
|
|
33
35
|
density: 0
|
|
34
36
|
});
|
|
35
37
|
var _default = exports.default = DataViewsContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_constants","DataViewsContext","createContext","view","type","LAYOUT_TABLE","onChangeView","fields","data","paginationInfo","totalItems","totalPages","selection","onChangeSelection","setOpenedFilter","openedFilter","getItemId","item","id","density","_default","exports","default"],"sources":["@wordpress/dataviews/src/components/dataviews-context/index.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { View, Action, NormalizedField } from '../../types';\nimport type { SetSelection } from '../../private-types';\nimport { LAYOUT_TABLE } from '../../constants';\n\ntype DataViewsContextType< Item > = {\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tfields: NormalizedField< Item >[];\n\tactions?: Action< Item >[];\n\tdata: Item[];\n\tisLoading?: boolean;\n\tpaginationInfo: {\n\t\ttotalItems: number;\n\t\ttotalPages: number;\n\t};\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\topenedFilter: string | null;\n\tsetOpenedFilter: ( openedFilter: string | null ) => void;\n\tgetItemId: ( item: Item ) => string;\n\tdensity: number;\n};\n\nconst DataViewsContext = createContext< DataViewsContextType< any > >( {\n\tview: { type: LAYOUT_TABLE },\n\tonChangeView: () => {},\n\tfields: [],\n\tdata: [],\n\tpaginationInfo: {\n\t\ttotalItems: 0,\n\t\ttotalPages: 0,\n\t},\n\tselection: [],\n\tonChangeSelection: () => {},\n\tsetOpenedFilter: () => {},\n\topenedFilter: null,\n\tgetItemId: ( item ) => item.id,\n\tdensity: 0,\n} );\n\nexport default DataViewsContext;\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AAOA,IAAAC,UAAA,GAAAD,OAAA;AAVA;AACA;AACA;;AAGA;AACA;AACA;;
|
|
1
|
+
{"version":3,"names":["_element","require","_constants","DataViewsContext","createContext","view","type","LAYOUT_TABLE","onChangeView","fields","data","paginationInfo","totalItems","totalPages","selection","onChangeSelection","setOpenedFilter","openedFilter","getItemId","item","id","onClickItem","isItemClickable","density","_default","exports","default"],"sources":["@wordpress/dataviews/src/components/dataviews-context/index.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { View, Action, NormalizedField } from '../../types';\nimport type { SetSelection } from '../../private-types';\nimport { LAYOUT_TABLE } from '../../constants';\n\ntype DataViewsContextType< Item > = {\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tfields: NormalizedField< Item >[];\n\tactions?: Action< Item >[];\n\tdata: Item[];\n\tisLoading?: boolean;\n\tpaginationInfo: {\n\t\ttotalItems: number;\n\t\ttotalPages: number;\n\t};\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\topenedFilter: string | null;\n\tsetOpenedFilter: ( openedFilter: string | null ) => void;\n\tgetItemId: ( item: Item ) => string;\n\tonClickItem: ( item: Item ) => void;\n\tisItemClickable: ( item: Item ) => boolean;\n\tdensity: number;\n};\n\nconst DataViewsContext = createContext< DataViewsContextType< any > >( {\n\tview: { type: LAYOUT_TABLE },\n\tonChangeView: () => {},\n\tfields: [],\n\tdata: [],\n\tpaginationInfo: {\n\t\ttotalItems: 0,\n\t\ttotalPages: 0,\n\t},\n\tselection: [],\n\tonChangeSelection: () => {},\n\tsetOpenedFilter: () => {},\n\topenedFilter: null,\n\tgetItemId: ( item ) => item.id,\n\tonClickItem: () => {},\n\tisItemClickable: () => false,\n\tdensity: 0,\n} );\n\nexport default DataViewsContext;\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AAOA,IAAAC,UAAA,GAAAD,OAAA;AAVA;AACA;AACA;;AAGA;AACA;AACA;;AA0BA,MAAME,gBAAgB,GAAG,IAAAC,sBAAa,EAAiC;EACtEC,IAAI,EAAE;IAAEC,IAAI,EAAEC;EAAa,CAAC;EAC5BC,YAAY,EAAEA,CAAA,KAAM,CAAC,CAAC;EACtBC,MAAM,EAAE,EAAE;EACVC,IAAI,EAAE,EAAE;EACRC,cAAc,EAAE;IACfC,UAAU,EAAE,CAAC;IACbC,UAAU,EAAE;EACb,CAAC;EACDC,SAAS,EAAE,EAAE;EACbC,iBAAiB,EAAEA,CAAA,KAAM,CAAC,CAAC;EAC3BC,eAAe,EAAEA,CAAA,KAAM,CAAC,CAAC;EACzBC,YAAY,EAAE,IAAI;EAClBC,SAAS,EAAIC,IAAI,IAAMA,IAAI,CAACC,EAAE;EAC9BC,WAAW,EAAEA,CAAA,KAAM,CAAC,CAAC;EACrBC,eAAe,EAAEA,CAAA,KAAM,KAAK;EAC5BC,OAAO,EAAE;AACV,CAAE,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEWvB,gBAAgB","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.AddFilterMenu = AddFilterMenu;
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _components = require("@wordpress/components");
|
|
9
9
|
var _i18n = require("@wordpress/i18n");
|
|
@@ -23,9 +23,9 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
23
23
|
*/
|
|
24
24
|
|
|
25
25
|
const {
|
|
26
|
-
|
|
26
|
+
Menu
|
|
27
27
|
} = (0, _lockUnlock.unlock)(_components.privateApis);
|
|
28
|
-
function
|
|
28
|
+
function AddFilterMenu({
|
|
29
29
|
filters,
|
|
30
30
|
view,
|
|
31
31
|
onChangeView,
|
|
@@ -33,10 +33,10 @@ function AddFilterDropdownMenu({
|
|
|
33
33
|
trigger
|
|
34
34
|
}) {
|
|
35
35
|
const inactiveFilters = filters.filter(filter => !filter.isVisible);
|
|
36
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
36
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu, {
|
|
37
37
|
trigger: trigger,
|
|
38
38
|
children: inactiveFilters.map(filter => {
|
|
39
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
39
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.Item, {
|
|
40
40
|
onClick: () => {
|
|
41
41
|
setOpenedFilter(filter.field);
|
|
42
42
|
onChangeView({
|
|
@@ -49,7 +49,7 @@ function AddFilterDropdownMenu({
|
|
|
49
49
|
}]
|
|
50
50
|
});
|
|
51
51
|
},
|
|
52
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
52
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.ItemLabel, {
|
|
53
53
|
children: filter.name
|
|
54
54
|
})
|
|
55
55
|
}, filter.field);
|
|
@@ -68,7 +68,7 @@ function AddFilter({
|
|
|
68
68
|
return null;
|
|
69
69
|
}
|
|
70
70
|
const inactiveFilters = filters.filter(filter => !filter.isVisible);
|
|
71
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
71
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(AddFilterMenu, {
|
|
72
72
|
trigger: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
73
73
|
accessibleWhenDisabled: true,
|
|
74
74
|
size: "compact",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_i18n","_element","_lockUnlock","_jsxRuntime","
|
|
1
|
+
{"version":3,"names":["_components","require","_i18n","_element","_lockUnlock","_jsxRuntime","Menu","unlock","componentsPrivateApis","AddFilterMenu","filters","view","onChangeView","setOpenedFilter","trigger","inactiveFilters","filter","isVisible","jsx","children","map","Item","onClick","field","page","value","undefined","operator","operators","ItemLabel","name","AddFilter","ref","length","every","isPrimary","Button","accessibleWhenDisabled","size","className","variant","disabled","__","_default","exports","default","forwardRef"],"sources":["@wordpress/dataviews/src/components/dataviews-filters/add-filter.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { Ref } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tprivateApis as componentsPrivateApis,\n\tButton,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport type { NormalizedFilter, View } from '../../types';\n\nconst { Menu } = unlock( componentsPrivateApis );\n\ninterface AddFilterProps {\n\tfilters: NormalizedFilter[];\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tsetOpenedFilter: ( filter: string | null ) => void;\n}\n\nexport function AddFilterMenu( {\n\tfilters,\n\tview,\n\tonChangeView,\n\tsetOpenedFilter,\n\ttrigger,\n}: AddFilterProps & {\n\ttrigger: React.ReactNode;\n} ) {\n\tconst inactiveFilters = filters.filter( ( filter ) => ! filter.isVisible );\n\treturn (\n\t\t<Menu trigger={ trigger }>\n\t\t\t{ inactiveFilters.map( ( filter ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Menu.Item\n\t\t\t\t\t\tkey={ filter.field }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetOpenedFilter( filter.field );\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\tpage: 1,\n\t\t\t\t\t\t\t\tfilters: [\n\t\t\t\t\t\t\t\t\t...( view.filters || [] ),\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tfield: filter.field,\n\t\t\t\t\t\t\t\t\t\tvalue: undefined,\n\t\t\t\t\t\t\t\t\t\toperator: filter.operators[ 0 ],\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Menu.ItemLabel>{ filter.name }</Menu.ItemLabel>\n\t\t\t\t\t</Menu.Item>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</Menu>\n\t);\n}\n\nfunction AddFilter(\n\t{ filters, view, onChangeView, setOpenedFilter }: AddFilterProps,\n\tref: Ref< HTMLButtonElement >\n) {\n\tif ( ! filters.length || filters.every( ( { isPrimary } ) => isPrimary ) ) {\n\t\treturn null;\n\t}\n\tconst inactiveFilters = filters.filter( ( filter ) => ! filter.isVisible );\n\treturn (\n\t\t<AddFilterMenu\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\tclassName=\"dataviews-filters-button\"\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\tdisabled={ ! inactiveFilters.length }\n\t\t\t\t\tref={ ref }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Add filter' ) }\n\t\t\t\t</Button>\n\t\t\t}\n\t\t\t{ ...{ filters, view, onChangeView, setOpenedFilter } }\n\t\t/>\n\t);\n}\n\nexport default forwardRef( AddFilter );\n"],"mappings":";;;;;;;AAQA,IAAAA,WAAA,GAAAC,OAAA;AAIA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAKA,IAAAG,WAAA,GAAAH,OAAA;AAA2C,IAAAI,WAAA,GAAAJ,OAAA;AAlB3C;AACA;AACA;;AAGA;AACA;AACA;;AAQA;AACA;AACA;;AAIA,MAAM;EAAEK;AAAK,CAAC,GAAG,IAAAC,kBAAM,EAAEC,uBAAsB,CAAC;AASzC,SAASC,aAAaA,CAAE;EAC9BC,OAAO;EACPC,IAAI;EACJC,YAAY;EACZC,eAAe;EACfC;AAGD,CAAC,EAAG;EACH,MAAMC,eAAe,GAAGL,OAAO,CAACM,MAAM,CAAIA,MAAM,IAAM,CAAEA,MAAM,CAACC,SAAU,CAAC;EAC1E,oBACC,IAAAZ,WAAA,CAAAa,GAAA,EAACZ,IAAI;IAACQ,OAAO,EAAGA,OAAS;IAAAK,QAAA,EACtBJ,eAAe,CAACK,GAAG,CAAIJ,MAAM,IAAM;MACpC,oBACC,IAAAX,WAAA,CAAAa,GAAA,EAACZ,IAAI,CAACe,IAAI;QAETC,OAAO,EAAGA,CAAA,KAAM;UACfT,eAAe,CAAEG,MAAM,CAACO,KAAM,CAAC;UAC/BX,YAAY,CAAE;YACb,GAAGD,IAAI;YACPa,IAAI,EAAE,CAAC;YACPd,OAAO,EAAE,CACR,IAAKC,IAAI,CAACD,OAAO,IAAI,EAAE,CAAE,EACzB;cACCa,KAAK,EAAEP,MAAM,CAACO,KAAK;cACnBE,KAAK,EAAEC,SAAS;cAChBC,QAAQ,EAAEX,MAAM,CAACY,SAAS,CAAE,CAAC;YAC9B,CAAC;UAEH,CAAE,CAAC;QACJ,CAAG;QAAAT,QAAA,eAEH,IAAAd,WAAA,CAAAa,GAAA,EAACZ,IAAI,CAACuB,SAAS;UAAAV,QAAA,EAAGH,MAAM,CAACc;QAAI,CAAkB;MAAC,GAjB1Cd,MAAM,CAACO,KAkBH,CAAC;IAEd,CAAE;EAAC,CACE,CAAC;AAET;AAEA,SAASQ,SAASA,CACjB;EAAErB,OAAO;EAAEC,IAAI;EAAEC,YAAY;EAAEC;AAAgC,CAAC,EAChEmB,GAA6B,EAC5B;EACD,IAAK,CAAEtB,OAAO,CAACuB,MAAM,IAAIvB,OAAO,CAACwB,KAAK,CAAE,CAAE;IAAEC;EAAU,CAAC,KAAMA,SAAU,CAAC,EAAG;IAC1E,OAAO,IAAI;EACZ;EACA,MAAMpB,eAAe,GAAGL,OAAO,CAACM,MAAM,CAAIA,MAAM,IAAM,CAAEA,MAAM,CAACC,SAAU,CAAC;EAC1E,oBACC,IAAAZ,WAAA,CAAAa,GAAA,EAACT,aAAa;IACbK,OAAO,eACN,IAAAT,WAAA,CAAAa,GAAA,EAAClB,WAAA,CAAAoC,MAAM;MACNC,sBAAsB;MACtBC,IAAI,EAAC,SAAS;MACdC,SAAS,EAAC,0BAA0B;MACpCC,OAAO,EAAC,UAAU;MAClBC,QAAQ,EAAG,CAAE1B,eAAe,CAACkB,MAAQ;MACrCD,GAAG,EAAGA,GAAK;MAAAb,QAAA,EAET,IAAAuB,QAAE,EAAE,YAAa;IAAC,CACb,CACR;IACMhC,OAAO;IAAEC,IAAI;IAAEC,YAAY;IAAEC;EAAe,CACnD,CAAC;AAEJ;AAAC,IAAA8B,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc,IAAAC,mBAAU,EAAEf,SAAU,CAAC","ignoreList":[]}
|
|
@@ -82,7 +82,7 @@ function FilterVisibilityToggle({
|
|
|
82
82
|
return null;
|
|
83
83
|
}
|
|
84
84
|
if (!hasVisibleFilters) {
|
|
85
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_addFilter.
|
|
85
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_addFilter.AddFilterMenu, {
|
|
86
86
|
filters: filters,
|
|
87
87
|
view: view,
|
|
88
88
|
onChangeView: onChangeViewWithFilterVisibility,
|
|
@@ -103,7 +103,7 @@ function FilterVisibilityToggle({
|
|
|
103
103
|
className: "dataviews-filters__visibility-toggle",
|
|
104
104
|
size: "compact",
|
|
105
105
|
icon: _icons.funnel,
|
|
106
|
-
label: (0, _i18n.
|
|
106
|
+
label: (0, _i18n._x)('Filter', 'verb'),
|
|
107
107
|
onClick: () => {
|
|
108
108
|
if (!isShowingFilter) {
|
|
109
109
|
setOpenedFilter(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_components","_icons","_i18n","_filterSummary","_interopRequireDefault","_addFilter","_interopRequireWildcard","_resetFilters","_dataviewsContext","_utils","_constants","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","useFilters","fields","view","useMemo","filters","forEach","field","elements","length","operators","sanitizeOperators","isPrimary","filterBy","push","id","name","label","singleSelection","some","op","OPERATOR_IS","OPERATOR_IS_NOT","includes","isVisible","f","ALL_OPERATORS","operator","sort","b","localeCompare","FilterVisibilityToggle","onChangeView","setOpenedFilter","isShowingFilter","setIsShowingFilter","onChangeViewWithFilterVisibility","useCallback","_view","visibleFilters","filter","hasVisibleFilters","jsx","AddFilterDropdownMenu","trigger","Button","className","size","icon","funnel","__","isPressed","jsxs","children","onClick","Filters","openedFilter","useContext","DataViewsContext","addFilterRef","useRef","addFilter","ref","filterComponents","map","__experimentalHStack","justify","style","width","wrap","_default","exports","memo"],"sources":["@wordpress/dataviews/src/components/dataviews-filters/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tmemo,\n\tuseContext,\n\tuseRef,\n\tuseMemo,\n\tuseCallback,\n} from '@wordpress/element';\nimport { __experimentalHStack as HStack, Button } from '@wordpress/components';\nimport { funnel } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport FilterSummary from './filter-summary';\nimport { default as AddFilter, AddFilterDropdownMenu } from './add-filter';\nimport ResetFilters from './reset-filters';\nimport DataViewsContext from '../dataviews-context';\nimport { sanitizeOperators } from '../../utils';\nimport { ALL_OPERATORS, OPERATOR_IS, OPERATOR_IS_NOT } from '../../constants';\nimport type { NormalizedFilter, NormalizedField, View } from '../../types';\n\nexport function useFilters( fields: NormalizedField< any >[], view: View ) {\n\treturn useMemo( () => {\n\t\tconst filters: NormalizedFilter[] = [];\n\t\tfields.forEach( ( field ) => {\n\t\t\tif ( ! field.elements?.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst operators = sanitizeOperators( field );\n\t\t\tif ( operators.length === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst isPrimary = !! field.filterBy?.isPrimary;\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\t[ OPERATOR_IS, OPERATOR_IS_NOT ].includes( op )\n\t\t\t\t),\n\t\t\t\toperators,\n\t\t\t\tisVisible:\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} );\n\t\t} );\n\t\t// Sort filters by primary property. We need the primary filters to be first.\n\t\t// Then we sort by name.\n\t\tfilters.sort( ( a, b ) => {\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 function FilterVisibilityToggle( {\n\tfilters,\n\tview,\n\tonChangeView,\n\tsetOpenedFilter,\n\tisShowingFilter,\n\tsetIsShowingFilter,\n}: {\n\tfilters: NormalizedFilter[];\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tsetOpenedFilter: ( filter: string | null ) => void;\n\tisShowingFilter: boolean;\n\tsetIsShowingFilter: React.Dispatch< React.SetStateAction< boolean > >;\n} ) {\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\tif ( ! hasVisibleFilters ) {\n\t\treturn (\n\t\t\t<AddFilterDropdownMenu\n\t\t\t\tfilters={ filters }\n\t\t\t\tview={ view }\n\t\t\t\tonChangeView={ onChangeViewWithFilterVisibility }\n\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\ttrigger={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"dataviews-filters__visibility-toggle\"\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ticon={ funnel }\n\t\t\t\t\t\tlabel={ __( 'Add filter' ) }\n\t\t\t\t\t\tisPressed={ false }\n\t\t\t\t\t\taria-expanded={ false }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t/>\n\t\t);\n\t}\n\treturn (\n\t\t<div className=\"dataviews-filters__container-visibility-toggle\">\n\t\t\t<Button\n\t\t\t\tclassName=\"dataviews-filters__visibility-toggle\"\n\t\t\t\tsize=\"compact\"\n\t\t\t\ticon={ funnel }\n\t\t\t\tlabel={ __( 'Toggle filter display' ) }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tif ( ! isShowingFilter ) {\n\t\t\t\t\t\tsetOpenedFilter( null );\n\t\t\t\t\t}\n\t\t\t\t\tsetIsShowingFilter( ! isShowingFilter );\n\t\t\t\t} }\n\t\t\t\tisPressed={ isShowingFilter }\n\t\t\t\taria-expanded={ isShowingFilter }\n\t\t\t/>\n\t\t\t{ hasVisibleFilters && !! view.filters?.length && (\n\t\t\t\t<span className=\"dataviews-filters-toggle__count\">\n\t\t\t\t\t{ view.filters?.length }\n\t\t\t\t</span>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nfunction Filters() {\n\tconst { fields, view, onChangeView, openedFilter, setOpenedFilter } =\n\t\tuseContext( DataViewsContext );\n\tconst addFilterRef = useRef< HTMLButtonElement >( null );\n\tconst filters = useFilters( fields, view );\n\tconst addFilter = (\n\t\t<AddFilter\n\t\t\tkey=\"add-filter\"\n\t\t\tfilters={ filters }\n\t\t\tview={ view }\n\t\t\tonChangeView={ onChangeView }\n\t\t\tref={ addFilterRef }\n\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t/>\n\t);\n\tconst visibleFilters = filters.filter( ( filter ) => filter.isVisible );\n\tif ( visibleFilters.length === 0 ) {\n\t\treturn null;\n\t}\n\tconst filterComponents = [\n\t\t...visibleFilters.map( ( filter ) => {\n\t\t\treturn (\n\t\t\t\t<FilterSummary\n\t\t\t\t\tkey={ filter.field }\n\t\t\t\t\tfilter={ filter }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\taddFilterRef={ addFilterRef }\n\t\t\t\t\topenedFilter={ openedFilter }\n\t\t\t\t/>\n\t\t\t);\n\t\t} ),\n\t\taddFilter,\n\t];\n\n\tfilterComponents.push(\n\t\t<ResetFilters\n\t\t\tkey=\"reset-filters\"\n\t\t\tfilters={ filters }\n\t\t\tview={ view }\n\t\t\tonChangeView={ onChangeView }\n\t\t/>\n\t);\n\n\treturn (\n\t\t<HStack\n\t\t\tjustify=\"flex-start\"\n\t\t\tstyle={ { width: 'fit-content' } }\n\t\t\tclassName=\"dataviews-filters__container\"\n\t\t\twrap\n\t\t>\n\t\t\t{ filterComponents }\n\t\t</HStack>\n\t);\n}\n\nexport default memo( Filters );\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_element","require","_components","_icons","_i18n","_filterSummary","_interopRequireDefault","_addFilter","_interopRequireWildcard","_resetFilters","_dataviewsContext","_utils","_constants","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","useFilters","fields","view","useMemo","filters","forEach","field","elements","length","operators","sanitizeOperators","isPrimary","filterBy","push","id","name","label","singleSelection","some","op","OPERATOR_IS","OPERATOR_IS_NOT","includes","isVisible","f","ALL_OPERATORS","operator","sort","b","localeCompare","FilterVisibilityToggle","onChangeView","setOpenedFilter","isShowingFilter","setIsShowingFilter","onChangeViewWithFilterVisibility","useCallback","_view","visibleFilters","filter","hasVisibleFilters","jsx","AddFilterMenu","trigger","Button","className","size","icon","funnel","__","isPressed","jsxs","children","_x","onClick","Filters","openedFilter","useContext","DataViewsContext","addFilterRef","useRef","addFilter","ref","filterComponents","map","__experimentalHStack","justify","style","width","wrap","_default","exports","memo"],"sources":["@wordpress/dataviews/src/components/dataviews-filters/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tmemo,\n\tuseContext,\n\tuseRef,\n\tuseMemo,\n\tuseCallback,\n} from '@wordpress/element';\nimport { __experimentalHStack as HStack, Button } from '@wordpress/components';\nimport { funnel } from '@wordpress/icons';\nimport { __, _x } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport FilterSummary from './filter-summary';\nimport { default as AddFilter, AddFilterMenu } from './add-filter';\nimport ResetFilters from './reset-filters';\nimport DataViewsContext from '../dataviews-context';\nimport { sanitizeOperators } from '../../utils';\nimport { ALL_OPERATORS, OPERATOR_IS, OPERATOR_IS_NOT } from '../../constants';\nimport type { NormalizedFilter, NormalizedField, View } from '../../types';\n\nexport function useFilters( fields: NormalizedField< any >[], view: View ) {\n\treturn useMemo( () => {\n\t\tconst filters: NormalizedFilter[] = [];\n\t\tfields.forEach( ( field ) => {\n\t\t\tif ( ! field.elements?.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst operators = sanitizeOperators( field );\n\t\t\tif ( operators.length === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst isPrimary = !! field.filterBy?.isPrimary;\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\t[ OPERATOR_IS, OPERATOR_IS_NOT ].includes( op )\n\t\t\t\t),\n\t\t\t\toperators,\n\t\t\t\tisVisible:\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} );\n\t\t} );\n\t\t// Sort filters by primary property. We need the primary filters to be first.\n\t\t// Then we sort by name.\n\t\tfilters.sort( ( a, b ) => {\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 function FilterVisibilityToggle( {\n\tfilters,\n\tview,\n\tonChangeView,\n\tsetOpenedFilter,\n\tisShowingFilter,\n\tsetIsShowingFilter,\n}: {\n\tfilters: NormalizedFilter[];\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tsetOpenedFilter: ( filter: string | null ) => void;\n\tisShowingFilter: boolean;\n\tsetIsShowingFilter: React.Dispatch< React.SetStateAction< boolean > >;\n} ) {\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\tif ( ! hasVisibleFilters ) {\n\t\treturn (\n\t\t\t<AddFilterMenu\n\t\t\t\tfilters={ filters }\n\t\t\t\tview={ view }\n\t\t\t\tonChangeView={ onChangeViewWithFilterVisibility }\n\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\ttrigger={\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"dataviews-filters__visibility-toggle\"\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\ticon={ funnel }\n\t\t\t\t\t\tlabel={ __( 'Add filter' ) }\n\t\t\t\t\t\tisPressed={ false }\n\t\t\t\t\t\taria-expanded={ false }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t/>\n\t\t);\n\t}\n\treturn (\n\t\t<div className=\"dataviews-filters__container-visibility-toggle\">\n\t\t\t<Button\n\t\t\t\tclassName=\"dataviews-filters__visibility-toggle\"\n\t\t\t\tsize=\"compact\"\n\t\t\t\ticon={ funnel }\n\t\t\t\tlabel={ _x( 'Filter', 'verb' ) }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tif ( ! isShowingFilter ) {\n\t\t\t\t\t\tsetOpenedFilter( null );\n\t\t\t\t\t}\n\t\t\t\t\tsetIsShowingFilter( ! isShowingFilter );\n\t\t\t\t} }\n\t\t\t\tisPressed={ isShowingFilter }\n\t\t\t\taria-expanded={ isShowingFilter }\n\t\t\t/>\n\t\t\t{ hasVisibleFilters && !! view.filters?.length && (\n\t\t\t\t<span className=\"dataviews-filters-toggle__count\">\n\t\t\t\t\t{ view.filters?.length }\n\t\t\t\t</span>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nfunction Filters() {\n\tconst { fields, view, onChangeView, openedFilter, setOpenedFilter } =\n\t\tuseContext( DataViewsContext );\n\tconst addFilterRef = useRef< HTMLButtonElement >( null );\n\tconst filters = useFilters( fields, view );\n\tconst addFilter = (\n\t\t<AddFilter\n\t\t\tkey=\"add-filter\"\n\t\t\tfilters={ filters }\n\t\t\tview={ view }\n\t\t\tonChangeView={ onChangeView }\n\t\t\tref={ addFilterRef }\n\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t/>\n\t);\n\tconst visibleFilters = filters.filter( ( filter ) => filter.isVisible );\n\tif ( visibleFilters.length === 0 ) {\n\t\treturn null;\n\t}\n\tconst filterComponents = [\n\t\t...visibleFilters.map( ( filter ) => {\n\t\t\treturn (\n\t\t\t\t<FilterSummary\n\t\t\t\t\tkey={ filter.field }\n\t\t\t\t\tfilter={ filter }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\taddFilterRef={ addFilterRef }\n\t\t\t\t\topenedFilter={ openedFilter }\n\t\t\t\t/>\n\t\t\t);\n\t\t} ),\n\t\taddFilter,\n\t];\n\n\tfilterComponents.push(\n\t\t<ResetFilters\n\t\t\tkey=\"reset-filters\"\n\t\t\tfilters={ filters }\n\t\t\tview={ view }\n\t\t\tonChangeView={ onChangeView }\n\t\t/>\n\t);\n\n\treturn (\n\t\t<HStack\n\t\t\tjustify=\"flex-start\"\n\t\t\tstyle={ { width: 'fit-content' } }\n\t\t\tclassName=\"dataviews-filters__container\"\n\t\t\twrap\n\t\t>\n\t\t\t{ filterComponents }\n\t\t</HStack>\n\t);\n}\n\nexport default memo( Filters );\n"],"mappings":";;;;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AAOA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAKA,IAAAI,cAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,UAAA,GAAAC,uBAAA,CAAAP,OAAA;AACA,IAAAQ,aAAA,GAAAH,sBAAA,CAAAL,OAAA;AACA,IAAAS,iBAAA,GAAAJ,sBAAA,CAAAL,OAAA;AACA,IAAAU,MAAA,GAAAV,OAAA;AACA,IAAAW,UAAA,GAAAX,OAAA;AAA8E,IAAAY,WAAA,GAAAZ,OAAA;AAAA,SAAAa,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAP,wBAAAO,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAtB9E;AACA;AACA;;AAYA;AACA;AACA;;AASO,SAASW,UAAUA,CAAEC,MAAgC,EAAEC,IAAU,EAAG;EAC1E,OAAO,IAAAC,gBAAO,EAAE,MAAM;IACrB,MAAMC,OAA2B,GAAG,EAAE;IACtCH,MAAM,CAACI,OAAO,CAAIC,KAAK,IAAM;MAC5B,IAAK,CAAEA,KAAK,CAACC,QAAQ,EAAEC,MAAM,EAAG;QAC/B;MACD;MAEA,MAAMC,SAAS,GAAG,IAAAC,wBAAiB,EAAEJ,KAAM,CAAC;MAC5C,IAAKG,SAAS,CAACD,MAAM,KAAK,CAAC,EAAG;QAC7B;MACD;MAEA,MAAMG,SAAS,GAAG,CAAC,CAAEL,KAAK,CAACM,QAAQ,EAAED,SAAS;MAC9CP,OAAO,CAACS,IAAI,CAAE;QACbP,KAAK,EAAEA,KAAK,CAACQ,EAAE;QACfC,IAAI,EAAET,KAAK,CAACU,KAAK;QACjBT,QAAQ,EAAED,KAAK,CAACC,QAAQ;QACxBU,eAAe,EAAER,SAAS,CAACS,IAAI,CAAIC,EAAE,IACpC,CAAEC,sBAAW,EAAEC,0BAAe,CAAE,CAACC,QAAQ,CAAEH,EAAG,CAC/C,CAAC;QACDV,SAAS;QACTc,SAAS,EACRZ,SAAS,IACT,CAAC,CAAET,IAAI,CAACE,OAAO,EAAEc,IAAI,CAClBM,CAAC,IACFA,CAAC,CAAClB,KAAK,KAAKA,KAAK,CAACQ,EAAE,IACpBW,wBAAa,CAACH,QAAQ,CAAEE,CAAC,CAACE,QAAS,CACrC,CAAC;QACFf;MACD,CAAE,CAAC;IACJ,CAAE,CAAC;IACH;IACA;IACAP,OAAO,CAACuB,IAAI,CAAE,CAAEpC,CAAC,EAAEqC,CAAC,KAAM;MACzB,IAAKrC,CAAC,CAACoB,SAAS,IAAI,CAAEiB,CAAC,CAACjB,SAAS,EAAG;QACnC,OAAO,CAAC,CAAC;MACV;MACA,IAAK,CAAEpB,CAAC,CAACoB,SAAS,IAAIiB,CAAC,CAACjB,SAAS,EAAG;QACnC,OAAO,CAAC;MACT;MACA,OAAOpB,CAAC,CAACwB,IAAI,CAACc,aAAa,CAAED,CAAC,CAACb,IAAK,CAAC;IACtC,CAAE,CAAC;IACH,OAAOX,OAAO;EACf,CAAC,EAAE,CAAEH,MAAM,EAAEC,IAAI,CAAG,CAAC;AACtB;AAEO,SAAS4B,sBAAsBA,CAAE;EACvC1B,OAAO;EACPF,IAAI;EACJ6B,YAAY;EACZC,eAAe;EACfC,eAAe;EACfC;AAQD,CAAC,EAAG;EACH,MAAMC,gCAAgC,GAAG,IAAAC,oBAAW,EACjDC,KAAW,IAAM;IAClBN,YAAY,CAAEM,KAAM,CAAC;IACrBH,kBAAkB,CAAE,IAAK,CAAC;EAC3B,CAAC,EACD,CAAEH,YAAY,EAAEG,kBAAkB,CACnC,CAAC;EACD,MAAMI,cAAc,GAAGlC,OAAO,CAACmC,MAAM,CAAIA,MAAM,IAAMA,MAAM,CAAChB,SAAU,CAAC;EAEvE,MAAMiB,iBAAiB,GAAG,CAAC,CAAEF,cAAc,CAAC9B,MAAM;EAClD,IAAKJ,OAAO,CAACI,MAAM,KAAK,CAAC,EAAG;IAC3B,OAAO,IAAI;EACZ;EACA,IAAK,CAAEgC,iBAAiB,EAAG;IAC1B,oBACC,IAAA7D,WAAA,CAAA8D,GAAA,EAACpE,UAAA,CAAAqE,aAAa;MACbtC,OAAO,EAAGA,OAAS;MACnBF,IAAI,EAAGA,IAAM;MACb6B,YAAY,EAAGI,gCAAkC;MACjDH,eAAe,EAAGA,eAAiB;MACnCW,OAAO,eACN,IAAAhE,WAAA,CAAA8D,GAAA,EAACzE,WAAA,CAAA4E,MAAM;QACNC,SAAS,EAAC,sCAAsC;QAChDC,IAAI,EAAC,SAAS;QACdC,IAAI,EAAGC,aAAQ;QACfhC,KAAK,EAAG,IAAAiC,QAAE,EAAE,YAAa,CAAG;QAC5BC,SAAS,EAAG,KAAO;QACnB,iBAAgB;MAAO,CACvB;IACD,CACD,CAAC;EAEJ;EACA,oBACC,IAAAvE,WAAA,CAAAwE,IAAA;IAAKN,SAAS,EAAC,gDAAgD;IAAAO,QAAA,gBAC9D,IAAAzE,WAAA,CAAA8D,GAAA,EAACzE,WAAA,CAAA4E,MAAM;MACNC,SAAS,EAAC,sCAAsC;MAChDC,IAAI,EAAC,SAAS;MACdC,IAAI,EAAGC,aAAQ;MACfhC,KAAK,EAAG,IAAAqC,QAAE,EAAE,QAAQ,EAAE,MAAO,CAAG;MAChCC,OAAO,EAAGA,CAAA,KAAM;QACf,IAAK,CAAErB,eAAe,EAAG;UACxBD,eAAe,CAAE,IAAK,CAAC;QACxB;QACAE,kBAAkB,CAAE,CAAED,eAAgB,CAAC;MACxC,CAAG;MACHiB,SAAS,EAAGjB,eAAiB;MAC7B,iBAAgBA;IAAiB,CACjC,CAAC,EACAO,iBAAiB,IAAI,CAAC,CAAEtC,IAAI,CAACE,OAAO,EAAEI,MAAM,iBAC7C,IAAA7B,WAAA,CAAA8D,GAAA;MAAMI,SAAS,EAAC,iCAAiC;MAAAO,QAAA,EAC9ClD,IAAI,CAACE,OAAO,EAAEI;IAAM,CACjB,CACN;EAAA,CACG,CAAC;AAER;AAEA,SAAS+C,OAAOA,CAAA,EAAG;EAClB,MAAM;IAAEtD,MAAM;IAAEC,IAAI;IAAE6B,YAAY;IAAEyB,YAAY;IAAExB;EAAgB,CAAC,GAClE,IAAAyB,mBAAU,EAAEC,yBAAiB,CAAC;EAC/B,MAAMC,YAAY,GAAG,IAAAC,eAAM,EAAuB,IAAK,CAAC;EACxD,MAAMxD,OAAO,GAAGJ,UAAU,CAAEC,MAAM,EAAEC,IAAK,CAAC;EAC1C,MAAM2D,SAAS,gBACd,IAAAlF,WAAA,CAAA8D,GAAA,EAACpE,UAAA,CAAAa,OAAS;IAETkB,OAAO,EAAGA,OAAS;IACnBF,IAAI,EAAGA,IAAM;IACb6B,YAAY,EAAGA,YAAc;IAC7B+B,GAAG,EAAGH,YAAc;IACpB3B,eAAe,EAAGA;EAAiB,GAL/B,YAMJ,CACD;EACD,MAAMM,cAAc,GAAGlC,OAAO,CAACmC,MAAM,CAAIA,MAAM,IAAMA,MAAM,CAAChB,SAAU,CAAC;EACvE,IAAKe,cAAc,CAAC9B,MAAM,KAAK,CAAC,EAAG;IAClC,OAAO,IAAI;EACZ;EACA,MAAMuD,gBAAgB,GAAG,CACxB,GAAGzB,cAAc,CAAC0B,GAAG,CAAIzB,MAAM,IAAM;IACpC,oBACC,IAAA5D,WAAA,CAAA8D,GAAA,EAACtE,cAAA,CAAAe,OAAa;MAEbqD,MAAM,EAAGA,MAAQ;MACjBrC,IAAI,EAAGA,IAAM;MACb6B,YAAY,EAAGA,YAAc;MAC7B4B,YAAY,EAAGA,YAAc;MAC7BH,YAAY,EAAGA;IAAc,GALvBjB,MAAM,CAACjC,KAMb,CAAC;EAEJ,CAAE,CAAC,EACHuD,SAAS,CACT;EAEDE,gBAAgB,CAAClD,IAAI,cACpB,IAAAlC,WAAA,CAAA8D,GAAA,EAAClE,aAAA,CAAAW,OAAY;IAEZkB,OAAO,EAAGA,OAAS;IACnBF,IAAI,EAAGA,IAAM;IACb6B,YAAY,EAAGA;EAAc,GAHzB,eAIJ,CACF,CAAC;EAED,oBACC,IAAApD,WAAA,CAAA8D,GAAA,EAACzE,WAAA,CAAAiG,oBAAM;IACNC,OAAO,EAAC,YAAY;IACpBC,KAAK,EAAG;MAAEC,KAAK,EAAE;IAAc,CAAG;IAClCvB,SAAS,EAAC,8BAA8B;IACxCwB,IAAI;IAAAjB,QAAA,EAEFW;EAAgB,CACX,CAAC;AAEX;AAAC,IAAAO,QAAA,GAAAC,OAAA,CAAArF,OAAA,GAEc,IAAAsF,aAAI,EAAEjB,OAAQ,CAAC","ignoreList":[]}
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.ActionModal = ActionModal;
|
|
7
7
|
exports.ActionWithModal = ActionWithModal;
|
|
8
|
-
exports.
|
|
8
|
+
exports.ActionsMenuGroup = ActionsMenuGroup;
|
|
9
9
|
exports.default = ItemActions;
|
|
10
10
|
var _components = require("@wordpress/components");
|
|
11
11
|
var _i18n = require("@wordpress/i18n");
|
|
@@ -27,7 +27,7 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
27
27
|
*/
|
|
28
28
|
|
|
29
29
|
const {
|
|
30
|
-
|
|
30
|
+
Menu,
|
|
31
31
|
kebabCase
|
|
32
32
|
} = (0, _lockUnlock.unlock)(_components.privateApis);
|
|
33
33
|
function ButtonTrigger({
|
|
@@ -44,16 +44,16 @@ function ButtonTrigger({
|
|
|
44
44
|
onClick: onClick
|
|
45
45
|
});
|
|
46
46
|
}
|
|
47
|
-
function
|
|
47
|
+
function MenuItemTrigger({
|
|
48
48
|
action,
|
|
49
49
|
onClick,
|
|
50
50
|
items
|
|
51
51
|
}) {
|
|
52
52
|
const label = typeof action.label === 'string' ? action.label : action.label(items);
|
|
53
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
53
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.Item, {
|
|
54
54
|
onClick: onClick,
|
|
55
55
|
hideOnClick: !('RenderModal' in action),
|
|
56
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
56
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.ItemLabel, {
|
|
57
57
|
children: label
|
|
58
58
|
})
|
|
59
59
|
});
|
|
@@ -102,21 +102,21 @@ function ActionWithModal({
|
|
|
102
102
|
})]
|
|
103
103
|
});
|
|
104
104
|
}
|
|
105
|
-
function
|
|
105
|
+
function ActionsMenuGroup({
|
|
106
106
|
actions,
|
|
107
107
|
item
|
|
108
108
|
}) {
|
|
109
109
|
const registry = (0, _data.useRegistry)();
|
|
110
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
110
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.Group, {
|
|
111
111
|
children: actions.map(action => {
|
|
112
112
|
if ('RenderModal' in action) {
|
|
113
113
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ActionWithModal, {
|
|
114
114
|
action: action,
|
|
115
115
|
items: [item],
|
|
116
|
-
ActionTrigger:
|
|
116
|
+
ActionTrigger: MenuItemTrigger
|
|
117
117
|
}, action.id);
|
|
118
118
|
}
|
|
119
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
119
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(MenuItemTrigger, {
|
|
120
120
|
action: action,
|
|
121
121
|
onClick: () => {
|
|
122
122
|
action.callback([item], {
|
|
@@ -188,7 +188,7 @@ function CompactItemActions({
|
|
|
188
188
|
item,
|
|
189
189
|
actions
|
|
190
190
|
}) {
|
|
191
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
191
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu, {
|
|
192
192
|
trigger: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
193
193
|
size: "compact",
|
|
194
194
|
icon: _icons.moreVertical,
|
|
@@ -198,7 +198,7 @@ function CompactItemActions({
|
|
|
198
198
|
className: "dataviews-all-actions-button"
|
|
199
199
|
}),
|
|
200
200
|
placement: "bottom-end",
|
|
201
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
201
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ActionsMenuGroup, {
|
|
202
202
|
actions: actions,
|
|
203
203
|
item: item
|
|
204
204
|
})
|