@wordpress/dataviews 0.7.0 → 0.9.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 +17 -0
- package/README.md +49 -18
- package/build/constants.js +28 -10
- package/build/constants.js.map +1 -1
- package/build/dataviews.js +3 -7
- package/build/dataviews.js.map +1 -1
- package/build/filter-and-sort-data-view.js +147 -0
- package/build/filter-and-sort-data-view.js.map +1 -0
- package/build/filter-summary.js +33 -12
- package/build/filter-summary.js.map +1 -1
- package/build/filters.js +11 -16
- package/build/filters.js.map +1 -1
- package/build/index.js +3 -9
- package/build/index.js.map +1 -1
- package/build/item-actions.js +20 -39
- package/build/item-actions.js.map +1 -1
- package/build/normalize-fields.js +25 -0
- package/build/normalize-fields.js.map +1 -0
- package/build/pagination.js +2 -2
- package/build/pagination.js.map +1 -1
- package/build/search-widget.js +34 -10
- package/build/search-widget.js.map +1 -1
- package/build/utils.js +25 -67
- package/build/utils.js.map +1 -1
- package/build/view-grid.js +25 -12
- package/build/view-grid.js.map +1 -1
- package/build/view-list.js +122 -58
- package/build/view-list.js.map +1 -1
- package/build/view-table.js +53 -8
- package/build/view-table.js.map +1 -1
- package/build-module/constants.js +27 -9
- package/build-module/constants.js.map +1 -1
- package/build-module/dataviews.js +3 -7
- package/build-module/dataviews.js.map +1 -1
- package/build-module/filter-and-sort-data-view.js +139 -0
- package/build-module/filter-and-sort-data-view.js.map +1 -0
- package/build-module/filter-summary.js +34 -13
- package/build-module/filter-summary.js.map +1 -1
- package/build-module/filters.js +12 -17
- package/build-module/filters.js.map +1 -1
- package/build-module/index.js +1 -1
- package/build-module/index.js.map +1 -1
- package/build-module/item-actions.js +20 -39
- package/build-module/item-actions.js.map +1 -1
- package/build-module/normalize-fields.js +19 -0
- package/build-module/normalize-fields.js.map +1 -0
- package/build-module/pagination.js +2 -2
- package/build-module/pagination.js.map +1 -1
- package/build-module/search-widget.js +35 -11
- package/build-module/search-widget.js.map +1 -1
- package/build-module/utils.js +25 -66
- package/build-module/utils.js.map +1 -1
- package/build-module/view-grid.js +26 -13
- package/build-module/view-grid.js.map +1 -1
- package/build-module/view-list.js +124 -60
- package/build-module/view-list.js.map +1 -1
- package/build-module/view-table.js +55 -10
- package/build-module/view-table.js.map +1 -1
- package/build-style/style-rtl.css +41 -11
- package/build-style/style.css +41 -11
- package/package.json +11 -11
- package/src/constants.js +35 -9
- package/src/dataviews.js +3 -7
- package/src/filter-and-sort-data-view.js +154 -0
- package/src/filter-summary.js +76 -23
- package/src/filters.js +20 -26
- package/src/index.js +1 -1
- package/src/item-actions.js +19 -55
- package/src/normalize-fields.js +17 -0
- package/src/pagination.js +2 -2
- package/src/search-widget.js +63 -21
- package/src/stories/fixtures.js +87 -2
- package/src/stories/index.story.js +5 -74
- package/src/style.scss +53 -14
- package/src/test/filter-and-sort-data-view.js +276 -0
- package/src/utils.js +38 -56
- package/src/view-grid.js +36 -11
- package/src/view-list.js +159 -69
- package/src/view-table.js +71 -9
package/build/view-list.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classnames","_interopRequireDefault","require","_compose","_components","_keycodes","_icons","_i18n","ViewList","view","fields","data","isLoading","getItemId","onSelectionChange","onDetailsChange","selection","deferredRendering","shownData","useAsyncList","step","usedData","mediaField","find","field","id","layout","primaryField","visibleFields","filter","hiddenFields","includes","onEnter","item","event","keyCode","ENTER","SPACE","hasData","length","_react","createElement","className","classNames","Spinner","__","map","key","__experimentalHStack","role","tabIndex","onKeyDown","onClick","spacing","justify","alignment","render","__experimentalVStack","Button","icon","info","label","size"],"sources":["@wordpress/dataviews/src/view-list.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useAsyncList } from '@wordpress/compose';\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tButton,\n\tSpinner,\n} from '@wordpress/components';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\nimport { info } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\n\nexport default function ViewList( {\n\tview,\n\tfields,\n\tdata,\n\tisLoading,\n\tgetItemId,\n\tonSelectionChange,\n\tonDetailsChange,\n\tselection,\n\tdeferredRendering,\n} ) {\n\tconst shownData = useAsyncList( data, { step: 3 } );\n\tconst usedData = deferredRendering ? shownData : data;\n\tconst mediaField = fields.find(\n\t\t( field ) => field.id === view.layout.mediaField\n\t);\n\tconst primaryField = fields.find(\n\t\t( field ) => field.id === view.layout.primaryField\n\t);\n\tconst visibleFields = fields.filter(\n\t\t( field ) =>\n\t\t\t! view.hiddenFields.includes( field.id ) &&\n\t\t\t! [ view.layout.primaryField, view.layout.mediaField ].includes(\n\t\t\t\tfield.id\n\t\t\t)\n\t);\n\n\tconst onEnter = ( item ) => ( event ) => {\n\t\tconst { keyCode } = event;\n\t\tif ( [ ENTER, SPACE ].includes( keyCode ) ) {\n\t\t\tonSelectionChange( [ item ] );\n\t\t}\n\t};\n\n\tconst hasData = usedData?.length;\n\tif ( ! hasData ) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={ classNames( {\n\t\t\t\t\t'dataviews-loading': isLoading,\n\t\t\t\t\t'dataviews-no-results': ! hasData && ! isLoading,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ ! hasData && (\n\t\t\t\t\t<p>{ isLoading ? <Spinner /> : __( 'No results' ) }</p>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<ul className=\"dataviews-view-list\">\n\t\t\t{ usedData.map( ( item ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<li\n\t\t\t\t\t\tkey={ getItemId( item ) }\n\t\t\t\t\t\tclassName={ classNames( {\n\t\t\t\t\t\t\t'is-selected': selection.includes( item.id ),\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<HStack className=\"dataviews-view-list__item-wrapper\">\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\t\t\ttabIndex={ 0 }\n\t\t\t\t\t\t\t\taria-pressed={ selection.includes( item.id ) }\n\t\t\t\t\t\t\t\tonKeyDown={ onEnter( item ) }\n\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__item\"\n\t\t\t\t\t\t\t\tonClick={ () => onSelectionChange( [ item ] ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\t\t\tspacing={ 3 }\n\t\t\t\t\t\t\t\t\tjustify=\"start\"\n\t\t\t\t\t\t\t\t\talignment=\"flex-start\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div className=\"dataviews-view-list__media-wrapper\">\n\t\t\t\t\t\t\t\t\t\t{ mediaField?.render( { item } ) || (\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"dataviews-view-list__media-placeholder\"></div>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t\t\t\t\t\t\t<span className=\"dataviews-view-list__primary-field\">\n\t\t\t\t\t\t\t\t\t\t\t{ primaryField?.render( { item } ) }\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t<div className=\"dataviews-view-list__fields\">\n\t\t\t\t\t\t\t\t\t\t\t{ visibleFields.map( ( field ) => {\n\t\t\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span\n\t\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\t\tclassName=\"dataviews-view-list__field\"\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\t\t{ field.render( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\titem,\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</span>\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</div>\n\t\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{ onDetailsChange && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__details-button\"\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\tonDetailsChange( [ item ] )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\ticon={ info }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'View details' ) }\n\t\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t</li>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</ul>\n\t);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_classnames","_interopRequireDefault","require","_compose","_components","_element","_icons","_i18n","_lockUnlock","useCompositeStoreV2","useCompositeStore","CompositeV2","Composite","CompositeItemV2","CompositeItem","CompositeRowV2","CompositeRow","unlock","componentsPrivateApis","ListItem","id","item","isSelected","onSelect","onDetailsChange","mediaField","primaryField","visibleFields","itemRef","useRef","labelId","descriptionId","useEffect","current","scrollIntoView","behavior","block","inline","_react","createElement","ref","render","role","className","classNames","__experimentalHStack","onClick","spacing","justify","alignment","__experimentalVStack","map","field","key","VisuallyHidden","as","header","Button","icon","info","label","__","size","ViewList","view","fields","data","isLoading","getItemId","onSelectionChange","selection","deferredRendering","preferredId","baseId","useInstanceId","shownData","useAsyncList","step","usedData","selectedItem","findLast","includes","find","layout","filter","hiddenFields","useCallback","getItemDomId","undefined","store","defaultActiveId","hasData","length","Spinner"],"sources":["@wordpress/dataviews/src/view-list.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useAsyncList, useInstanceId } from '@wordpress/compose';\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tprivateApis as componentsPrivateApis,\n\tButton,\n\tSpinner,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { useCallback, useEffect, useRef } from '@wordpress/element';\nimport { info } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\n\nconst {\n\tuseCompositeStoreV2: useCompositeStore,\n\tCompositeV2: Composite,\n\tCompositeItemV2: CompositeItem,\n\tCompositeRowV2: CompositeRow,\n} = unlock( componentsPrivateApis );\n\nfunction ListItem( {\n\tid,\n\titem,\n\tisSelected,\n\tonSelect,\n\tonDetailsChange,\n\tmediaField,\n\tprimaryField,\n\tvisibleFields,\n} ) {\n\tconst itemRef = useRef( null );\n\tconst labelId = `${ id }-label`;\n\tconst descriptionId = `${ id }-description`;\n\n\tuseEffect( () => {\n\t\tif ( isSelected ) {\n\t\t\titemRef.current?.scrollIntoView( {\n\t\t\t\tbehavior: 'auto',\n\t\t\t\tblock: 'nearest',\n\t\t\t\tinline: 'nearest',\n\t\t\t} );\n\t\t}\n\t}, [ isSelected ] );\n\n\treturn (\n\t\t<CompositeRow\n\t\t\tref={ itemRef }\n\t\t\trender={ <li /> }\n\t\t\trole=\"row\"\n\t\t\tclassName={ classNames( {\n\t\t\t\t'is-selected': isSelected,\n\t\t\t} ) }\n\t\t>\n\t\t\t<HStack className=\"dataviews-view-list__item-wrapper\">\n\t\t\t\t<div role=\"gridcell\">\n\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\trender={ <div /> }\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\tid={ id }\n\t\t\t\t\t\taria-pressed={ isSelected }\n\t\t\t\t\t\taria-labelledby={ labelId }\n\t\t\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\t\t\tclassName=\"dataviews-view-list__item\"\n\t\t\t\t\t\tonClick={ () => onSelect( item ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<HStack\n\t\t\t\t\t\t\tspacing={ 3 }\n\t\t\t\t\t\t\tjustify=\"start\"\n\t\t\t\t\t\t\talignment=\"flex-start\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div className=\"dataviews-view-list__media-wrapper\">\n\t\t\t\t\t\t\t\t{ mediaField?.render( { item } ) || (\n\t\t\t\t\t\t\t\t\t<div className=\"dataviews-view-list__media-placeholder\"></div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<VStack spacing={ 1 }>\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__primary-field\"\n\t\t\t\t\t\t\t\t\tid={ labelId }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ primaryField?.render( { item } ) }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__fields\"\n\t\t\t\t\t\t\t\t\tid={ descriptionId }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ visibleFields.map( ( field ) => (\n\t\t\t\t\t\t\t\t\t\t<div\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\tclassName=\"dataviews-view-list__field\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<VisuallyHidden\n\t\t\t\t\t\t\t\t\t\t\t\tas=\"span\"\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-list__field-label\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"dataviews-view-list__field-value\">\n\t\t\t\t\t\t\t\t\t\t\t\t{ field.render( { item } ) }\n\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</HStack>\n\t\t\t\t\t</CompositeItem>\n\t\t\t\t</div>\n\t\t\t\t{ onDetailsChange && (\n\t\t\t\t\t<div role=\"gridcell\">\n\t\t\t\t\t\t<CompositeItem\n\t\t\t\t\t\t\trender={ <Button /> }\n\t\t\t\t\t\t\tclassName=\"dataviews-view-list__details-button\"\n\t\t\t\t\t\t\tonClick={ () => onDetailsChange( [ item ] ) }\n\t\t\t\t\t\t\ticon={ info }\n\t\t\t\t\t\t\tlabel={ __( 'View details' ) }\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</CompositeRow>\n\t);\n}\n\nexport default function ViewList( {\n\tview,\n\tfields,\n\tdata,\n\tisLoading,\n\tgetItemId,\n\tonSelectionChange,\n\tonDetailsChange,\n\tselection,\n\tdeferredRendering,\n\tid: preferredId,\n} ) {\n\tconst baseId = useInstanceId( ViewList, 'view-list', preferredId );\n\tconst shownData = useAsyncList( data, { step: 3 } );\n\tconst usedData = deferredRendering ? shownData : data;\n\tconst selectedItem = usedData?.findLast( ( item ) =>\n\t\tselection.includes( item.id )\n\t);\n\n\tconst mediaField = fields.find(\n\t\t( field ) => field.id === view.layout.mediaField\n\t);\n\tconst primaryField = fields.find(\n\t\t( field ) => field.id === view.layout.primaryField\n\t);\n\tconst visibleFields = fields.filter(\n\t\t( field ) =>\n\t\t\t! view.hiddenFields.includes( field.id ) &&\n\t\t\t! [ view.layout.primaryField, view.layout.mediaField ].includes(\n\t\t\t\tfield.id\n\t\t\t)\n\t);\n\n\tconst onSelect = useCallback(\n\t\t( item ) => onSelectionChange( [ item ] ),\n\t\t[ onSelectionChange ]\n\t);\n\n\tconst getItemDomId = useCallback(\n\t\t( item ) => ( item ? `${ baseId }-${ getItemId( item ) }` : undefined ),\n\t\t[ baseId, getItemId ]\n\t);\n\n\tconst store = useCompositeStore( {\n\t\tdefaultActiveId: getItemDomId( selectedItem ),\n\t} );\n\n\tconst hasData = usedData?.length;\n\tif ( ! hasData ) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={ classNames( {\n\t\t\t\t\t'dataviews-loading': isLoading,\n\t\t\t\t\t'dataviews-no-results': ! hasData && ! isLoading,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t{ ! hasData && (\n\t\t\t\t\t<p>{ isLoading ? <Spinner /> : __( 'No results' ) }</p>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Composite\n\t\t\tid={ baseId }\n\t\t\trender={ <ul /> }\n\t\t\tclassName=\"dataviews-view-list\"\n\t\t\trole=\"grid\"\n\t\t\tstore={ store }\n\t\t>\n\t\t\t{ usedData.map( ( item ) => {\n\t\t\t\tconst id = getItemDomId( item );\n\t\t\t\treturn (\n\t\t\t\t\t<ListItem\n\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\tid={ id }\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tisSelected={ item === selectedItem }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tonDetailsChange={ onDetailsChange }\n\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\tprimaryField={ primaryField }\n\t\t\t\t\t\tvisibleFields={ visibleFields }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</Composite>\n\t);\n}\n"],"mappings":"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"}
|
package/build/view-table.js
CHANGED
|
@@ -38,7 +38,7 @@ const {
|
|
|
38
38
|
DropdownMenuItemLabelV2: DropdownMenuItemLabel,
|
|
39
39
|
DropdownMenuSeparatorV2: DropdownMenuSeparator
|
|
40
40
|
} = (0, _lockUnlock.unlock)(_components.privateApis);
|
|
41
|
-
function
|
|
41
|
+
function WithDropDownMenuSeparators({
|
|
42
42
|
children
|
|
43
43
|
}) {
|
|
44
44
|
return _element.Children.toArray(children).filter(Boolean).map((child, i) => (0, _react.createElement)(_element.Fragment, {
|
|
@@ -64,7 +64,7 @@ const HeaderMenu = (0, _element.forwardRef)(function HeaderMenu({
|
|
|
64
64
|
// 1. If the field is not already part of a view's filters.
|
|
65
65
|
// 2. If the field meets the type and operator requirements.
|
|
66
66
|
// 3. If it's not primary. If it is, it should be already visible.
|
|
67
|
-
const canAddFilter = !view.filters?.some(_filter => field.id === _filter.field) && field.
|
|
67
|
+
const canAddFilter = !view.filters?.some(_filter => field.id === _filter.field) && !!field.elements?.length && !!operators.length && !field.filterBy?.isPrimary;
|
|
68
68
|
if (!isSortable && !isHidable && !canAddFilter) {
|
|
69
69
|
return field.header;
|
|
70
70
|
}
|
|
@@ -81,7 +81,7 @@ const HeaderMenu = (0, _element.forwardRef)(function HeaderMenu({
|
|
|
81
81
|
style: {
|
|
82
82
|
minWidth: '240px'
|
|
83
83
|
}
|
|
84
|
-
}, (0, _react.createElement)(
|
|
84
|
+
}, (0, _react.createElement)(WithDropDownMenuSeparators, null, isSortable && (0, _react.createElement)(DropdownMenuGroup, null, Object.entries(_constants.SORTING_DIRECTIONS).map(([direction, info]) => {
|
|
85
85
|
const isChecked = isSorted && view.sort.direction === direction;
|
|
86
86
|
const value = `${field.id}-${direction}`;
|
|
87
87
|
return (0, _react.createElement)(DropdownMenuRadioItem, {
|
|
@@ -174,10 +174,45 @@ function TableRow({
|
|
|
174
174
|
data
|
|
175
175
|
}) {
|
|
176
176
|
const hasPossibleBulkAction = (0, _bulkActions.useHasAPossibleBulkAction)(actions, item);
|
|
177
|
+
const isSelected = selection.includes(id);
|
|
178
|
+
const [isHovered, setIsHovered] = (0, _element.useState)(false);
|
|
179
|
+
const handleMouseEnter = () => {
|
|
180
|
+
setIsHovered(true);
|
|
181
|
+
};
|
|
182
|
+
const handleMouseLeave = () => {
|
|
183
|
+
setIsHovered(false);
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
// Will be set to true if `onTouchStart` fires. This happens before
|
|
187
|
+
// `onClick` and can be used to exclude touchscreen devices from certain
|
|
188
|
+
// behaviours.
|
|
189
|
+
const isTouchDevice = (0, _element.useRef)(false);
|
|
177
190
|
return (0, _react.createElement)("tr", {
|
|
178
191
|
className: (0, _classnames.default)('dataviews-view-table__row', {
|
|
179
|
-
'is-selected': hasPossibleBulkAction &&
|
|
180
|
-
|
|
192
|
+
'is-selected': hasPossibleBulkAction && isSelected,
|
|
193
|
+
'is-hovered': isHovered,
|
|
194
|
+
'has-bulk-actions': hasPossibleBulkAction
|
|
195
|
+
}),
|
|
196
|
+
onMouseEnter: handleMouseEnter,
|
|
197
|
+
onMouseLeave: handleMouseLeave,
|
|
198
|
+
onTouchStart: () => {
|
|
199
|
+
isTouchDevice.current = true;
|
|
200
|
+
},
|
|
201
|
+
onClick: () => {
|
|
202
|
+
if (!isTouchDevice.current && document.getSelection().type !== 'Range') {
|
|
203
|
+
if (!isSelected) {
|
|
204
|
+
onSelectionChange(data.filter(_item => {
|
|
205
|
+
const itemId = getItemId?.(_item);
|
|
206
|
+
return itemId === id || selection.includes(itemId);
|
|
207
|
+
}));
|
|
208
|
+
} else {
|
|
209
|
+
onSelectionChange(data.filter(_item => {
|
|
210
|
+
const itemId = getItemId?.(_item);
|
|
211
|
+
return itemId !== id && selection.includes(itemId);
|
|
212
|
+
}));
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
181
216
|
}, hasBulkActions && (0, _react.createElement)("td", {
|
|
182
217
|
className: "dataviews-view-table__checkbox-column",
|
|
183
218
|
style: {
|
|
@@ -208,12 +243,22 @@ function TableRow({
|
|
|
208
243
|
})
|
|
209
244
|
}, field.render({
|
|
210
245
|
item
|
|
211
|
-
})))), !!actions?.length &&
|
|
212
|
-
|
|
246
|
+
})))), !!actions?.length &&
|
|
247
|
+
// Disable reason: we are not making the element interactive,
|
|
248
|
+
// but preventing any click events from bubbling up to the
|
|
249
|
+
// table row. This allows us to add a click handler to the row
|
|
250
|
+
// itself (to toggle row selection) without erroneously
|
|
251
|
+
// intercepting click events from ItemActions.
|
|
252
|
+
|
|
253
|
+
/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */
|
|
254
|
+
(0, _react.createElement)("td", {
|
|
255
|
+
className: "dataviews-view-table__actions-column",
|
|
256
|
+
onClick: e => e.stopPropagation()
|
|
213
257
|
}, (0, _react.createElement)(_itemActions.default, {
|
|
214
258
|
item: item,
|
|
215
259
|
actions: actions
|
|
216
|
-
}))
|
|
260
|
+
}))
|
|
261
|
+
/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */);
|
|
217
262
|
}
|
|
218
263
|
function ViewTable({
|
|
219
264
|
view,
|
package/build/view-table.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classnames","_interopRequireDefault","require","_i18n","_compose","_icons","_components","_element","_singleSelectionCheckbox","_lockUnlock","_itemActions","_utils","_constants","_bulkActions","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuRadioItemV2","DropdownMenuRadioItem","DropdownMenuItemLabelV2","DropdownMenuItemLabel","DropdownMenuSeparatorV2","DropdownMenuSeparator","unlock","componentsPrivateApis","WithSeparators","children","Children","toArray","filter","Boolean","map","child","i","_react","createElement","Fragment","key","sortArrows","asc","desc","HeaderMenu","forwardRef","field","view","onChangeView","onHide","setOpenedFilter","ref","isHidable","enableHiding","isSortable","enableSorting","isSorted","sort","id","operators","sanitizeOperators","canAddFilter","filters","some","_filter","type","ENUMERATION_TYPE","length","filterBy","isPrimary","header","align","trigger","Button","size","className","variant","direction","style","minWidth","Object","entries","SORTING_DIRECTIONS","info","isChecked","value","name","checked","onChange","label","prefix","Icon","icon","funnel","onClick","page","undefined","operator","__","unseen","hiddenFields","concat","BulkSelectionCheckbox","selection","onSelectionChange","data","actions","selectableItems","useMemo","item","action","supportsBulk","isEligible","areAllSelected","CheckboxControl","__nextHasNoMarginBottom","indeterminate","TableRow","hasBulkActions","visibleFields","primaryField","getItemId","hasPossibleBulkAction","useHasAPossibleBulkAction","classnames","includes","width","default","disabled","maxWidth","render","ViewTable","fields","isLoading","deferredRendering","headerMenuRefs","useRef","Map","headerMenuToFocusRef","nextHeaderMenuToFocus","setNextHeaderMenuToFocus","useState","useSomeItemHasAPossibleBulkAction","useEffect","current","focus","asyncData","useAsyncList","tableNoticeId","useId","hidden","get","fallback","node","layout","mediaField","usedData","hasData","sortValues","find","scope","index","set","delete","Spinner","_default","exports"],"sources":["@wordpress/dataviews/src/view-table.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useAsyncList } from '@wordpress/compose';\nimport { unseen, funnel } from '@wordpress/icons';\nimport {\n\tButton,\n\tIcon,\n\tprivateApis as componentsPrivateApis,\n\tCheckboxControl,\n\tSpinner,\n} from '@wordpress/components';\nimport {\n\tforwardRef,\n\tuseEffect,\n\tuseId,\n\tuseRef,\n\tuseState,\n\tChildren,\n\tFragment,\n\tuseMemo,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport SingleSelectionCheckbox from './single-selection-checkbox';\nimport { unlock } from './lock-unlock';\nimport ItemActions from './item-actions';\nimport { sanitizeOperators } from './utils';\nimport { ENUMERATION_TYPE, SORTING_DIRECTIONS } from './constants';\nimport {\n\tuseSomeItemHasAPossibleBulkAction,\n\tuseHasAPossibleBulkAction,\n} from './bulk-actions';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuGroupV2: DropdownMenuGroup,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuRadioItemV2: DropdownMenuRadioItem,\n\tDropdownMenuItemLabelV2: DropdownMenuItemLabel,\n\tDropdownMenuSeparatorV2: DropdownMenuSeparator,\n} = unlock( componentsPrivateApis );\n\nfunction WithSeparators( { children } ) {\n\treturn Children.toArray( children )\n\t\t.filter( Boolean )\n\t\t.map( ( child, i ) => (\n\t\t\t<Fragment key={ i }>\n\t\t\t\t{ i > 0 && <DropdownMenuSeparator /> }\n\t\t\t\t{ child }\n\t\t\t</Fragment>\n\t\t) );\n}\n\nconst sortArrows = { asc: '↑', desc: '↓' };\n\nconst HeaderMenu = forwardRef( function HeaderMenu(\n\t{ field, view, onChangeView, onHide, setOpenedFilter },\n\tref\n) {\n\tconst isHidable = field.enableHiding !== false;\n\tconst isSortable = field.enableSorting !== false;\n\tconst isSorted = view.sort?.field === field.id;\n\tconst operators = sanitizeOperators( field );\n\t// Filter can be added:\n\t// 1. If the field is not already part of a view's filters.\n\t// 2. If the field meets the type and operator requirements.\n\t// 3. If it's not primary. If it is, it should be already visible.\n\tconst canAddFilter =\n\t\t! view.filters?.some( ( _filter ) => field.id === _filter.field ) &&\n\t\tfield.type === ENUMERATION_TYPE &&\n\t\t!! operators.length &&\n\t\t! field.filterBy?.isPrimary;\n\tif ( ! isSortable && ! isHidable && ! canAddFilter ) {\n\t\treturn field.header;\n\t}\n\treturn (\n\t\t<DropdownMenu\n\t\t\talign=\"start\"\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\tclassName=\"dataviews-view-table-header-button\"\n\t\t\t\t\tref={ ref }\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t>\n\t\t\t\t\t{ field.header }\n\t\t\t\t\t{ isSorted && (\n\t\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t\t{ isSorted && sortArrows[ view.sort.direction ] }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</Button>\n\t\t\t}\n\t\t\tstyle={ { minWidth: '240px' } }\n\t\t>\n\t\t\t<WithSeparators>\n\t\t\t\t{ isSortable && (\n\t\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t\t{ Object.entries( SORTING_DIRECTIONS ).map(\n\t\t\t\t\t\t\t( [ direction, info ] ) => {\n\t\t\t\t\t\t\t\tconst isChecked =\n\t\t\t\t\t\t\t\t\tisSorted &&\n\t\t\t\t\t\t\t\t\tview.sort.direction === direction;\n\n\t\t\t\t\t\t\t\tconst value = `${ field.id }-${ direction }`;\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<DropdownMenuRadioItem\n\t\t\t\t\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\t\t\t\t\t// All sorting radio items share the same name, so that\n\t\t\t\t\t\t\t\t\t\t// selecting a sorting option automatically deselects the\n\t\t\t\t\t\t\t\t\t\t// previously selected one, even if it is displayed in\n\t\t\t\t\t\t\t\t\t\t// another submenu. The field and direction are passed via\n\t\t\t\t\t\t\t\t\t\t// the `value` prop.\n\t\t\t\t\t\t\t\t\t\tname=\"view-table-sorting\"\n\t\t\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\t\t\tchecked={ isChecked }\n\t\t\t\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\tsort: {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfield: field.id,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdirection,\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\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t{ info.label }\n\t\t\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t</DropdownMenuRadioItem>\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</DropdownMenuGroup>\n\t\t\t\t) }\n\t\t\t\t{ canAddFilter && (\n\t\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\t\tprefix={ <Icon icon={ funnel } /> }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetOpenedFilter( field.id );\n\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t\t\tfilters: [\n\t\t\t\t\t\t\t\t\t\t...( view.filters || [] ),\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tfield: field.id,\n\t\t\t\t\t\t\t\t\t\t\tvalue: undefined,\n\t\t\t\t\t\t\t\t\t\t\toperator: operators[ 0 ],\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\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t{ __( 'Add filter' ) }\n\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t</DropdownMenuGroup>\n\t\t\t\t) }\n\t\t\t\t{ isHidable && (\n\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\tprefix={ <Icon icon={ unseen } /> }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonHide( 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\thiddenFields: view.hiddenFields.concat(\n\t\t\t\t\t\t\t\t\tfield.id\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<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t{ __( 'Hide' ) }\n\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t) }\n\t\t\t</WithSeparators>\n\t\t</DropdownMenu>\n\t);\n} );\n\nfunction BulkSelectionCheckbox( {\n\tselection,\n\tonSelectionChange,\n\tdata,\n\tactions,\n} ) {\n\tconst selectableItems = useMemo( () => {\n\t\treturn data.filter( ( item ) => {\n\t\t\treturn actions.some(\n\t\t\t\t( action ) => action.supportsBulk && action.isEligible( item )\n\t\t\t);\n\t\t} );\n\t}, [ data, actions ] );\n\tconst areAllSelected = selection.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 && selection.length }\n\t\t\tonChange={ () => {\n\t\t\t\tif ( areAllSelected ) {\n\t\t\t\t\tonSelectionChange( [] );\n\t\t\t\t} else {\n\t\t\t\t\tonSelectionChange( selectableItems );\n\t\t\t\t}\n\t\t\t} }\n\t\t\tlabel={ areAllSelected ? __( 'Deselect all' ) : __( 'Select all' ) }\n\t\t/>\n\t);\n}\n\nfunction TableRow( {\n\thasBulkActions,\n\titem,\n\tactions,\n\tid,\n\tvisibleFields,\n\tprimaryField,\n\tselection,\n\tgetItemId,\n\tonSelectionChange,\n\tdata,\n} ) {\n\tconst hasPossibleBulkAction = useHasAPossibleBulkAction( actions, item );\n\treturn (\n\t\t<tr\n\t\t\tclassName={ classnames( 'dataviews-view-table__row', {\n\t\t\t\t'is-selected':\n\t\t\t\t\thasPossibleBulkAction && selection.includes( id ),\n\t\t\t} ) }\n\t\t>\n\t\t\t{ hasBulkActions && (\n\t\t\t\t<td\n\t\t\t\t\tclassName=\"dataviews-view-table__checkbox-column\"\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\twidth: 20,\n\t\t\t\t\t\tminWidth: 20,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<div className=\"dataviews-view-table__cell-content-wrapper\">\n\t\t\t\t\t\t<SingleSelectionCheckbox\n\t\t\t\t\t\t\tid={ id }\n\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\tprimaryField={ primaryField }\n\t\t\t\t\t\t\tdisabled={ ! hasPossibleBulkAction }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</td>\n\t\t\t) }\n\t\t\t{ visibleFields.map( ( field ) => (\n\t\t\t\t<td\n\t\t\t\t\tkey={ field.id }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\twidth: field.width || undefined,\n\t\t\t\t\t\tminWidth: field.minWidth || undefined,\n\t\t\t\t\t\tmaxWidth: field.maxWidth || undefined,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'dataviews-view-table__cell-content-wrapper',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'dataviews-view-table__primary-field':\n\t\t\t\t\t\t\t\t\tprimaryField?.id === field.id,\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{ field.render( {\n\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</div>\n\t\t\t\t</td>\n\t\t\t) ) }\n\t\t\t{ !! actions?.length && (\n\t\t\t\t<td className=\"dataviews-view-table__actions-column\">\n\t\t\t\t\t<ItemActions item={ item } actions={ actions } />\n\t\t\t\t</td>\n\t\t\t) }\n\t\t</tr>\n\t);\n}\n\nfunction ViewTable( {\n\tview,\n\tonChangeView,\n\tfields,\n\tactions,\n\tdata,\n\tgetItemId,\n\tisLoading = false,\n\tdeferredRendering,\n\tselection,\n\tonSelectionChange,\n\tsetOpenedFilter,\n} ) {\n\tconst headerMenuRefs = useRef( new Map() );\n\tconst headerMenuToFocusRef = useRef();\n\tconst [ nextHeaderMenuToFocus, setNextHeaderMenuToFocus ] = useState();\n\tconst hasBulkActions = useSomeItemHasAPossibleBulkAction( actions, data );\n\n\tuseEffect( () => {\n\t\tif ( headerMenuToFocusRef.current ) {\n\t\t\theaderMenuToFocusRef.current.focus();\n\t\t\theaderMenuToFocusRef.current = undefined;\n\t\t}\n\t} );\n\n\tconst asyncData = useAsyncList( data );\n\tconst tableNoticeId = useId();\n\n\tif ( nextHeaderMenuToFocus ) {\n\t\t// If we need to force focus, we short-circuit rendering here\n\t\t// to prevent any additional work while we handle that.\n\t\t// Clearing out the focus directive is necessary to make sure\n\t\t// future renders don't cause unexpected focus jumps.\n\t\theaderMenuToFocusRef.current = nextHeaderMenuToFocus;\n\t\tsetNextHeaderMenuToFocus();\n\t\treturn;\n\t}\n\n\tconst onHide = ( field ) => {\n\t\tconst hidden = headerMenuRefs.current.get( field.id );\n\t\tconst fallback = headerMenuRefs.current.get( hidden.fallback );\n\t\tsetNextHeaderMenuToFocus( fallback?.node );\n\t};\n\tconst visibleFields = fields.filter(\n\t\t( field ) =>\n\t\t\t! view.hiddenFields.includes( field.id ) &&\n\t\t\t! [ view.layout.mediaField ].includes( field.id )\n\t);\n\tconst usedData = deferredRendering ? asyncData : data;\n\tconst hasData = !! usedData?.length;\n\tconst sortValues = { asc: 'ascending', desc: 'descending' };\n\n\tconst primaryField = fields.find(\n\t\t( field ) => field.id === view.layout.primaryField\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<table\n\t\t\t\tclassName=\"dataviews-view-table\"\n\t\t\t\taria-busy={ isLoading }\n\t\t\t\taria-describedby={ tableNoticeId }\n\t\t\t>\n\t\t\t\t<thead>\n\t\t\t\t\t<tr className=\"dataviews-view-table__row\">\n\t\t\t\t\t\t{ hasBulkActions && (\n\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\tclassName=\"dataviews-view-table__checkbox-column\"\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\twidth: 20,\n\t\t\t\t\t\t\t\t\tminWidth: 20,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tdata-field-id=\"selection\"\n\t\t\t\t\t\t\t\tscope=\"col\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<BulkSelectionCheckbox\n\t\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ visibleFields.map( ( field, index ) => (\n\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\twidth: field.width || undefined,\n\t\t\t\t\t\t\t\t\tminWidth: field.minWidth || undefined,\n\t\t\t\t\t\t\t\t\tmaxWidth: field.maxWidth || undefined,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tdata-field-id={ field.id }\n\t\t\t\t\t\t\t\taria-sort={\n\t\t\t\t\t\t\t\t\tview.sort?.field === field.id &&\n\t\t\t\t\t\t\t\t\tsortValues[ view.sort.direction ]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tscope=\"col\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<HeaderMenu\n\t\t\t\t\t\t\t\t\tref={ ( node ) => {\n\t\t\t\t\t\t\t\t\t\tif ( node ) {\n\t\t\t\t\t\t\t\t\t\t\theaderMenuRefs.current.set(\n\t\t\t\t\t\t\t\t\t\t\t\tfield.id,\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\t\tnode,\n\t\t\t\t\t\t\t\t\t\t\t\t\tfallback:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvisibleFields[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? index - 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t]?.id,\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} else {\n\t\t\t\t\t\t\t\t\t\t\theaderMenuRefs.current.delete(\n\t\t\t\t\t\t\t\t\t\t\t\tfield.id\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\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\tonHide={ onHide }\n\t\t\t\t\t\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t{ !! actions?.length && (\n\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\tdata-field-id=\"actions\"\n\t\t\t\t\t\t\t\tclassName=\"dataviews-view-table__actions-column\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span className=\"dataviews-view-table-header\">\n\t\t\t\t\t\t\t\t\t{ __( 'Actions' ) }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t\t<tbody>\n\t\t\t\t\t{ hasData &&\n\t\t\t\t\t\tusedData.map( ( item, index ) => (\n\t\t\t\t\t\t\t<TableRow\n\t\t\t\t\t\t\t\tkey={ getItemId( item ) }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\thasBulkActions={ hasBulkActions }\n\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\tid={ getItemId( item ) || index }\n\t\t\t\t\t\t\t\tvisibleFields={ visibleFields }\n\t\t\t\t\t\t\t\tprimaryField={ primaryField }\n\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t\t<div\n\t\t\t\tclassName={ classnames( {\n\t\t\t\t\t'dataviews-loading': isLoading,\n\t\t\t\t\t'dataviews-no-results': ! hasData && ! isLoading,\n\t\t\t\t} ) }\n\t\t\t\tid={ tableNoticeId }\n\t\t\t>\n\t\t\t\t{ ! hasData && (\n\t\t\t\t\t<p>{ isLoading ? <Spinner /> : __( 'No results' ) }</p>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default ViewTable;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_classnames","_interopRequireDefault","require","_i18n","_compose","_icons","_components","_element","_singleSelectionCheckbox","_lockUnlock","_itemActions","_utils","_constants","_bulkActions","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuRadioItemV2","DropdownMenuRadioItem","DropdownMenuItemLabelV2","DropdownMenuItemLabel","DropdownMenuSeparatorV2","DropdownMenuSeparator","unlock","componentsPrivateApis","WithDropDownMenuSeparators","children","Children","toArray","filter","Boolean","map","child","i","_react","createElement","Fragment","key","sortArrows","asc","desc","HeaderMenu","forwardRef","field","view","onChangeView","onHide","setOpenedFilter","ref","isHidable","enableHiding","isSortable","enableSorting","isSorted","sort","id","operators","sanitizeOperators","canAddFilter","filters","some","_filter","elements","length","filterBy","isPrimary","header","align","trigger","Button","size","className","variant","direction","style","minWidth","Object","entries","SORTING_DIRECTIONS","info","isChecked","value","name","checked","onChange","label","prefix","Icon","icon","funnel","onClick","page","undefined","operator","__","unseen","hiddenFields","concat","BulkSelectionCheckbox","selection","onSelectionChange","data","actions","selectableItems","useMemo","item","action","supportsBulk","isEligible","areAllSelected","CheckboxControl","__nextHasNoMarginBottom","indeterminate","TableRow","hasBulkActions","visibleFields","primaryField","getItemId","hasPossibleBulkAction","useHasAPossibleBulkAction","isSelected","includes","isHovered","setIsHovered","useState","handleMouseEnter","handleMouseLeave","isTouchDevice","useRef","classnames","onMouseEnter","onMouseLeave","onTouchStart","current","document","getSelection","type","_item","itemId","width","default","disabled","maxWidth","render","e","stopPropagation","ViewTable","fields","isLoading","deferredRendering","headerMenuRefs","Map","headerMenuToFocusRef","nextHeaderMenuToFocus","setNextHeaderMenuToFocus","useSomeItemHasAPossibleBulkAction","useEffect","focus","asyncData","useAsyncList","tableNoticeId","useId","hidden","get","fallback","node","layout","mediaField","usedData","hasData","sortValues","find","scope","index","set","delete","Spinner","_default","exports"],"sources":["@wordpress/dataviews/src/view-table.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useAsyncList } from '@wordpress/compose';\nimport { unseen, funnel } from '@wordpress/icons';\nimport {\n\tButton,\n\tIcon,\n\tprivateApis as componentsPrivateApis,\n\tCheckboxControl,\n\tSpinner,\n} from '@wordpress/components';\nimport {\n\tforwardRef,\n\tuseEffect,\n\tuseId,\n\tuseRef,\n\tuseState,\n\tuseMemo,\n\tChildren,\n\tFragment,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport SingleSelectionCheckbox from './single-selection-checkbox';\nimport { unlock } from './lock-unlock';\nimport ItemActions from './item-actions';\nimport { sanitizeOperators } from './utils';\nimport { SORTING_DIRECTIONS } from './constants';\nimport {\n\tuseSomeItemHasAPossibleBulkAction,\n\tuseHasAPossibleBulkAction,\n} from './bulk-actions';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuGroupV2: DropdownMenuGroup,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuRadioItemV2: DropdownMenuRadioItem,\n\tDropdownMenuItemLabelV2: DropdownMenuItemLabel,\n\tDropdownMenuSeparatorV2: DropdownMenuSeparator,\n} = unlock( componentsPrivateApis );\n\nfunction WithDropDownMenuSeparators( { children } ) {\n\treturn Children.toArray( children )\n\t\t.filter( Boolean )\n\t\t.map( ( child, i ) => (\n\t\t\t<Fragment key={ i }>\n\t\t\t\t{ i > 0 && <DropdownMenuSeparator /> }\n\t\t\t\t{ child }\n\t\t\t</Fragment>\n\t\t) );\n}\n\nconst sortArrows = { asc: '↑', desc: '↓' };\n\nconst HeaderMenu = forwardRef( function HeaderMenu(\n\t{ field, view, onChangeView, onHide, setOpenedFilter },\n\tref\n) {\n\tconst isHidable = field.enableHiding !== false;\n\tconst isSortable = field.enableSorting !== false;\n\tconst isSorted = view.sort?.field === field.id;\n\tconst operators = sanitizeOperators( field );\n\t// Filter can be added:\n\t// 1. If the field is not already part of a view's filters.\n\t// 2. If the field meets the type and operator requirements.\n\t// 3. If it's not primary. If it is, it should be already visible.\n\tconst canAddFilter =\n\t\t! view.filters?.some( ( _filter ) => field.id === _filter.field ) &&\n\t\t!! field.elements?.length &&\n\t\t!! operators.length &&\n\t\t! field.filterBy?.isPrimary;\n\tif ( ! isSortable && ! isHidable && ! canAddFilter ) {\n\t\treturn field.header;\n\t}\n\treturn (\n\t\t<DropdownMenu\n\t\t\talign=\"start\"\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\tclassName=\"dataviews-view-table-header-button\"\n\t\t\t\t\tref={ ref }\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t>\n\t\t\t\t\t{ field.header }\n\t\t\t\t\t{ isSorted && (\n\t\t\t\t\t\t<span aria-hidden=\"true\">\n\t\t\t\t\t\t\t{ isSorted && sortArrows[ view.sort.direction ] }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</Button>\n\t\t\t}\n\t\t\tstyle={ { minWidth: '240px' } }\n\t\t>\n\t\t\t<WithDropDownMenuSeparators>\n\t\t\t\t{ isSortable && (\n\t\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t\t{ Object.entries( SORTING_DIRECTIONS ).map(\n\t\t\t\t\t\t\t( [ direction, info ] ) => {\n\t\t\t\t\t\t\t\tconst isChecked =\n\t\t\t\t\t\t\t\t\tisSorted &&\n\t\t\t\t\t\t\t\t\tview.sort.direction === direction;\n\n\t\t\t\t\t\t\t\tconst value = `${ field.id }-${ direction }`;\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<DropdownMenuRadioItem\n\t\t\t\t\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\t\t\t\t\t// All sorting radio items share the same name, so that\n\t\t\t\t\t\t\t\t\t\t// selecting a sorting option automatically deselects the\n\t\t\t\t\t\t\t\t\t\t// previously selected one, even if it is displayed in\n\t\t\t\t\t\t\t\t\t\t// another submenu. The field and direction are passed via\n\t\t\t\t\t\t\t\t\t\t// the `value` prop.\n\t\t\t\t\t\t\t\t\t\tname=\"view-table-sorting\"\n\t\t\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\t\t\tchecked={ isChecked }\n\t\t\t\t\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\tsort: {\n\t\t\t\t\t\t\t\t\t\t\t\t\tfield: field.id,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdirection,\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\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t\t\t{ info.label }\n\t\t\t\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t\t</DropdownMenuRadioItem>\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</DropdownMenuGroup>\n\t\t\t\t) }\n\t\t\t\t{ canAddFilter && (\n\t\t\t\t\t<DropdownMenuGroup>\n\t\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\t\tprefix={ <Icon icon={ funnel } /> }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetOpenedFilter( field.id );\n\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t\t\tfilters: [\n\t\t\t\t\t\t\t\t\t\t...( view.filters || [] ),\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tfield: field.id,\n\t\t\t\t\t\t\t\t\t\t\tvalue: undefined,\n\t\t\t\t\t\t\t\t\t\t\toperator: operators[ 0 ],\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\t\t\t\t\t\t\t<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t\t{ __( 'Add filter' ) }\n\t\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t</DropdownMenuGroup>\n\t\t\t\t) }\n\t\t\t\t{ isHidable && (\n\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\tprefix={ <Icon icon={ unseen } /> }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonHide( 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\thiddenFields: view.hiddenFields.concat(\n\t\t\t\t\t\t\t\t\tfield.id\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<DropdownMenuItemLabel>\n\t\t\t\t\t\t\t{ __( 'Hide' ) }\n\t\t\t\t\t\t</DropdownMenuItemLabel>\n\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t) }\n\t\t\t</WithDropDownMenuSeparators>\n\t\t</DropdownMenu>\n\t);\n} );\n\nfunction BulkSelectionCheckbox( {\n\tselection,\n\tonSelectionChange,\n\tdata,\n\tactions,\n} ) {\n\tconst selectableItems = useMemo( () => {\n\t\treturn data.filter( ( item ) => {\n\t\t\treturn actions.some(\n\t\t\t\t( action ) => action.supportsBulk && action.isEligible( item )\n\t\t\t);\n\t\t} );\n\t}, [ data, actions ] );\n\tconst areAllSelected = selection.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 && selection.length }\n\t\t\tonChange={ () => {\n\t\t\t\tif ( areAllSelected ) {\n\t\t\t\t\tonSelectionChange( [] );\n\t\t\t\t} else {\n\t\t\t\t\tonSelectionChange( selectableItems );\n\t\t\t\t}\n\t\t\t} }\n\t\t\tlabel={ areAllSelected ? __( 'Deselect all' ) : __( 'Select all' ) }\n\t\t/>\n\t);\n}\n\nfunction TableRow( {\n\thasBulkActions,\n\titem,\n\tactions,\n\tid,\n\tvisibleFields,\n\tprimaryField,\n\tselection,\n\tgetItemId,\n\tonSelectionChange,\n\tdata,\n} ) {\n\tconst hasPossibleBulkAction = useHasAPossibleBulkAction( actions, item );\n\tconst isSelected = selection.includes( id );\n\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\n\tconst handleMouseEnter = () => {\n\t\tsetIsHovered( true );\n\t};\n\n\tconst handleMouseLeave = () => {\n\t\tsetIsHovered( false );\n\t};\n\n\t// Will be set to true if `onTouchStart` fires. This happens before\n\t// `onClick` and can be used to exclude touchscreen devices from certain\n\t// behaviours.\n\tconst isTouchDevice = useRef( false );\n\n\treturn (\n\t\t<tr\n\t\t\tclassName={ classnames( 'dataviews-view-table__row', {\n\t\t\t\t'is-selected': hasPossibleBulkAction && isSelected,\n\t\t\t\t'is-hovered': isHovered,\n\t\t\t\t'has-bulk-actions': hasPossibleBulkAction,\n\t\t\t} ) }\n\t\t\tonMouseEnter={ handleMouseEnter }\n\t\t\tonMouseLeave={ handleMouseLeave }\n\t\t\tonTouchStart={ () => {\n\t\t\t\tisTouchDevice.current = true;\n\t\t\t} }\n\t\t\tonClick={ () => {\n\t\t\t\tif (\n\t\t\t\t\t! isTouchDevice.current &&\n\t\t\t\t\tdocument.getSelection().type !== 'Range'\n\t\t\t\t) {\n\t\t\t\t\tif ( ! isSelected ) {\n\t\t\t\t\t\tonSelectionChange(\n\t\t\t\t\t\t\tdata.filter( ( _item ) => {\n\t\t\t\t\t\t\t\tconst itemId = getItemId?.( _item );\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\titemId === id ||\n\t\t\t\t\t\t\t\t\tselection.includes( itemId )\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} else {\n\t\t\t\t\t\tonSelectionChange(\n\t\t\t\t\t\t\tdata.filter( ( _item ) => {\n\t\t\t\t\t\t\t\tconst itemId = getItemId?.( _item );\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\titemId !== id &&\n\t\t\t\t\t\t\t\t\tselection.includes( itemId )\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}\n\t\t\t} }\n\t\t>\n\t\t\t{ hasBulkActions && (\n\t\t\t\t<td\n\t\t\t\t\tclassName=\"dataviews-view-table__checkbox-column\"\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\twidth: 20,\n\t\t\t\t\t\tminWidth: 20,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<div className=\"dataviews-view-table__cell-content-wrapper\">\n\t\t\t\t\t\t<SingleSelectionCheckbox\n\t\t\t\t\t\t\tid={ id }\n\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\tprimaryField={ primaryField }\n\t\t\t\t\t\t\tdisabled={ ! hasPossibleBulkAction }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</td>\n\t\t\t) }\n\t\t\t{ visibleFields.map( ( field ) => (\n\t\t\t\t<td\n\t\t\t\t\tkey={ field.id }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\twidth: field.width || undefined,\n\t\t\t\t\t\tminWidth: field.minWidth || undefined,\n\t\t\t\t\t\tmaxWidth: field.maxWidth || undefined,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'dataviews-view-table__cell-content-wrapper',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'dataviews-view-table__primary-field':\n\t\t\t\t\t\t\t\t\tprimaryField?.id === field.id,\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{ field.render( {\n\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</div>\n\t\t\t\t</td>\n\t\t\t) ) }\n\t\t\t{ !! actions?.length && (\n\t\t\t\t// Disable reason: we are not making the element interactive,\n\t\t\t\t// but preventing any click events from bubbling up to the\n\t\t\t\t// table row. This allows us to add a click handler to the row\n\t\t\t\t// itself (to toggle row selection) without erroneously\n\t\t\t\t// intercepting click events from ItemActions.\n\n\t\t\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t\t\t<td\n\t\t\t\t\tclassName=\"dataviews-view-table__actions-column\"\n\t\t\t\t\tonClick={ ( e ) => e.stopPropagation() }\n\t\t\t\t>\n\t\t\t\t\t<ItemActions item={ item } actions={ actions } />\n\t\t\t\t</td>\n\t\t\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t\t) }\n\t\t</tr>\n\t);\n}\n\nfunction ViewTable( {\n\tview,\n\tonChangeView,\n\tfields,\n\tactions,\n\tdata,\n\tgetItemId,\n\tisLoading = false,\n\tdeferredRendering,\n\tselection,\n\tonSelectionChange,\n\tsetOpenedFilter,\n} ) {\n\tconst headerMenuRefs = useRef( new Map() );\n\tconst headerMenuToFocusRef = useRef();\n\tconst [ nextHeaderMenuToFocus, setNextHeaderMenuToFocus ] = useState();\n\tconst hasBulkActions = useSomeItemHasAPossibleBulkAction( actions, data );\n\n\tuseEffect( () => {\n\t\tif ( headerMenuToFocusRef.current ) {\n\t\t\theaderMenuToFocusRef.current.focus();\n\t\t\theaderMenuToFocusRef.current = undefined;\n\t\t}\n\t} );\n\n\tconst asyncData = useAsyncList( data );\n\tconst tableNoticeId = useId();\n\n\tif ( nextHeaderMenuToFocus ) {\n\t\t// If we need to force focus, we short-circuit rendering here\n\t\t// to prevent any additional work while we handle that.\n\t\t// Clearing out the focus directive is necessary to make sure\n\t\t// future renders don't cause unexpected focus jumps.\n\t\theaderMenuToFocusRef.current = nextHeaderMenuToFocus;\n\t\tsetNextHeaderMenuToFocus();\n\t\treturn;\n\t}\n\n\tconst onHide = ( field ) => {\n\t\tconst hidden = headerMenuRefs.current.get( field.id );\n\t\tconst fallback = headerMenuRefs.current.get( hidden.fallback );\n\t\tsetNextHeaderMenuToFocus( fallback?.node );\n\t};\n\tconst visibleFields = fields.filter(\n\t\t( field ) =>\n\t\t\t! view.hiddenFields.includes( field.id ) &&\n\t\t\t! [ view.layout.mediaField ].includes( field.id )\n\t);\n\tconst usedData = deferredRendering ? asyncData : data;\n\tconst hasData = !! usedData?.length;\n\tconst sortValues = { asc: 'ascending', desc: 'descending' };\n\n\tconst primaryField = fields.find(\n\t\t( field ) => field.id === view.layout.primaryField\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<table\n\t\t\t\tclassName=\"dataviews-view-table\"\n\t\t\t\taria-busy={ isLoading }\n\t\t\t\taria-describedby={ tableNoticeId }\n\t\t\t>\n\t\t\t\t<thead>\n\t\t\t\t\t<tr className=\"dataviews-view-table__row\">\n\t\t\t\t\t\t{ hasBulkActions && (\n\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\tclassName=\"dataviews-view-table__checkbox-column\"\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\twidth: 20,\n\t\t\t\t\t\t\t\t\tminWidth: 20,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tdata-field-id=\"selection\"\n\t\t\t\t\t\t\t\tscope=\"col\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<BulkSelectionCheckbox\n\t\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ visibleFields.map( ( field, index ) => (\n\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\t\twidth: field.width || undefined,\n\t\t\t\t\t\t\t\t\tminWidth: field.minWidth || undefined,\n\t\t\t\t\t\t\t\t\tmaxWidth: field.maxWidth || undefined,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tdata-field-id={ field.id }\n\t\t\t\t\t\t\t\taria-sort={\n\t\t\t\t\t\t\t\t\tview.sort?.field === field.id &&\n\t\t\t\t\t\t\t\t\tsortValues[ view.sort.direction ]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tscope=\"col\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<HeaderMenu\n\t\t\t\t\t\t\t\t\tref={ ( node ) => {\n\t\t\t\t\t\t\t\t\t\tif ( node ) {\n\t\t\t\t\t\t\t\t\t\t\theaderMenuRefs.current.set(\n\t\t\t\t\t\t\t\t\t\t\t\tfield.id,\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\t\tnode,\n\t\t\t\t\t\t\t\t\t\t\t\t\tfallback:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvisibleFields[\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tindex > 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? index - 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t]?.id,\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} else {\n\t\t\t\t\t\t\t\t\t\t\theaderMenuRefs.current.delete(\n\t\t\t\t\t\t\t\t\t\t\t\tfield.id\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\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\tonHide={ onHide }\n\t\t\t\t\t\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t{ !! actions?.length && (\n\t\t\t\t\t\t\t<th\n\t\t\t\t\t\t\t\tdata-field-id=\"actions\"\n\t\t\t\t\t\t\t\tclassName=\"dataviews-view-table__actions-column\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span className=\"dataviews-view-table-header\">\n\t\t\t\t\t\t\t\t\t{ __( 'Actions' ) }\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</th>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t\t<tbody>\n\t\t\t\t\t{ hasData &&\n\t\t\t\t\t\tusedData.map( ( item, index ) => (\n\t\t\t\t\t\t\t<TableRow\n\t\t\t\t\t\t\t\tkey={ getItemId( item ) }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\thasBulkActions={ hasBulkActions }\n\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\tid={ getItemId( item ) || index }\n\t\t\t\t\t\t\t\tvisibleFields={ visibleFields }\n\t\t\t\t\t\t\t\tprimaryField={ primaryField }\n\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t\t<div\n\t\t\t\tclassName={ classnames( {\n\t\t\t\t\t'dataviews-loading': isLoading,\n\t\t\t\t\t'dataviews-no-results': ! hasData && ! isLoading,\n\t\t\t\t} ) }\n\t\t\t\tid={ tableNoticeId }\n\t\t\t>\n\t\t\t\t{ ! hasData && (\n\t\t\t\t\t<p>{ isLoading ? <Spinner /> : __( 'No results' ) }</p>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default ViewTable;\n"],"mappings":"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"}
|
|
@@ -11,20 +11,38 @@ import ViewTable from './view-table';
|
|
|
11
11
|
import ViewGrid from './view-grid';
|
|
12
12
|
import ViewList from './view-list';
|
|
13
13
|
|
|
14
|
-
// Field types.
|
|
15
|
-
export const ENUMERATION_TYPE = 'enumeration';
|
|
16
|
-
|
|
17
14
|
// Filter operators.
|
|
18
|
-
export const
|
|
19
|
-
export const
|
|
15
|
+
export const OPERATOR_IS = 'is';
|
|
16
|
+
export const OPERATOR_IS_NOT = 'isNot';
|
|
17
|
+
export const OPERATOR_IS_ANY = 'isAny';
|
|
18
|
+
export const OPERATOR_IS_NONE = 'isNone';
|
|
19
|
+
export const OPERATOR_IS_ALL = 'isAll';
|
|
20
|
+
export const OPERATOR_IS_NOT_ALL = 'isNotAll';
|
|
21
|
+
export const ALL_OPERATORS = [OPERATOR_IS, OPERATOR_IS_NOT, OPERATOR_IS_ANY, OPERATOR_IS_NONE, OPERATOR_IS_ALL, OPERATOR_IS_NOT_ALL];
|
|
20
22
|
export const OPERATORS = {
|
|
21
|
-
[
|
|
22
|
-
key: '
|
|
23
|
+
[OPERATOR_IS]: {
|
|
24
|
+
key: 'is-filter',
|
|
23
25
|
label: __('Is')
|
|
24
26
|
},
|
|
25
|
-
[
|
|
26
|
-
key: 'not-
|
|
27
|
+
[OPERATOR_IS_NOT]: {
|
|
28
|
+
key: 'is-not-filter',
|
|
27
29
|
label: __('Is not')
|
|
30
|
+
},
|
|
31
|
+
[OPERATOR_IS_ANY]: {
|
|
32
|
+
key: 'is-any-filter',
|
|
33
|
+
label: __('Is any')
|
|
34
|
+
},
|
|
35
|
+
[OPERATOR_IS_NONE]: {
|
|
36
|
+
key: 'is-none-filter',
|
|
37
|
+
label: __('Is none')
|
|
38
|
+
},
|
|
39
|
+
[OPERATOR_IS_ALL]: {
|
|
40
|
+
key: 'is-all-filter',
|
|
41
|
+
label: __('Is all')
|
|
42
|
+
},
|
|
43
|
+
[OPERATOR_IS_NOT_ALL]: {
|
|
44
|
+
key: 'is-not-all-filter',
|
|
45
|
+
label: __('Is not all')
|
|
28
46
|
}
|
|
29
47
|
};
|
|
30
48
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","isRTL","blockTable","category","formatListBullets","formatListBulletsRTL","ViewTable","ViewGrid","ViewList","
|
|
1
|
+
{"version":3,"names":["__","isRTL","blockTable","category","formatListBullets","formatListBulletsRTL","ViewTable","ViewGrid","ViewList","OPERATOR_IS","OPERATOR_IS_NOT","OPERATOR_IS_ANY","OPERATOR_IS_NONE","OPERATOR_IS_ALL","OPERATOR_IS_NOT_ALL","ALL_OPERATORS","OPERATORS","key","label","SORTING_DIRECTIONS","asc","desc","LAYOUT_TABLE","LAYOUT_GRID","LAYOUT_LIST","VIEW_LAYOUTS","type","component","icon"],"sources":["@wordpress/dataviews/src/constants.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport {\n\tblockTable,\n\tcategory,\n\tformatListBullets,\n\tformatListBulletsRTL,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport ViewTable from './view-table';\nimport ViewGrid from './view-grid';\nimport ViewList from './view-list';\n\n// Filter operators.\nexport const OPERATOR_IS = 'is';\nexport const OPERATOR_IS_NOT = 'isNot';\nexport const OPERATOR_IS_ANY = 'isAny';\nexport const OPERATOR_IS_NONE = 'isNone';\nexport const OPERATOR_IS_ALL = 'isAll';\nexport const OPERATOR_IS_NOT_ALL = 'isNotAll';\n\nexport const ALL_OPERATORS = [\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_NOT_ALL,\n];\nexport const OPERATORS = {\n\t[ OPERATOR_IS ]: {\n\t\tkey: 'is-filter',\n\t\tlabel: __( 'Is' ),\n\t},\n\t[ OPERATOR_IS_NOT ]: {\n\t\tkey: 'is-not-filter',\n\t\tlabel: __( 'Is not' ),\n\t},\n\t[ OPERATOR_IS_ANY ]: {\n\t\tkey: 'is-any-filter',\n\t\tlabel: __( 'Is any' ),\n\t},\n\t[ OPERATOR_IS_NONE ]: {\n\t\tkey: 'is-none-filter',\n\t\tlabel: __( 'Is none' ),\n\t},\n\t[ OPERATOR_IS_ALL ]: {\n\t\tkey: 'is-all-filter',\n\t\tlabel: __( 'Is all' ),\n\t},\n\t[ OPERATOR_IS_NOT_ALL ]: {\n\t\tkey: 'is-not-all-filter',\n\t\tlabel: __( 'Is not all' ),\n\t},\n};\n\n// Sorting\nexport const SORTING_DIRECTIONS = {\n\tasc: { label: __( 'Sort ascending' ) },\n\tdesc: { label: __( 'Sort descending' ) },\n};\n\n// View layouts.\nexport const LAYOUT_TABLE = 'table';\nexport const LAYOUT_GRID = 'grid';\nexport const LAYOUT_LIST = 'list';\n\nexport const VIEW_LAYOUTS = [\n\t{\n\t\ttype: LAYOUT_TABLE,\n\t\tlabel: __( 'Table' ),\n\t\tcomponent: ViewTable,\n\t\ticon: blockTable,\n\t},\n\t{\n\t\ttype: LAYOUT_GRID,\n\t\tlabel: __( 'Grid' ),\n\t\tcomponent: ViewGrid,\n\t\ticon: category,\n\t},\n\t{\n\t\ttype: LAYOUT_LIST,\n\t\tlabel: __( 'List' ),\n\t\tcomponent: ViewList,\n\t\ticon: isRTL() ? formatListBulletsRTL : formatListBullets,\n\t},\n];\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,EAAEC,KAAK,QAAQ,iBAAiB;AAC3C,SACCC,UAAU,EACVC,QAAQ,EACRC,iBAAiB,EACjBC,oBAAoB,QACd,kBAAkB;;AAEzB;AACA;AACA;AACA,OAAOC,SAAS,MAAM,cAAc;AACpC,OAAOC,QAAQ,MAAM,aAAa;AAClC,OAAOC,QAAQ,MAAM,aAAa;;AAElC;AACA,OAAO,MAAMC,WAAW,GAAG,IAAI;AAC/B,OAAO,MAAMC,eAAe,GAAG,OAAO;AACtC,OAAO,MAAMC,eAAe,GAAG,OAAO;AACtC,OAAO,MAAMC,gBAAgB,GAAG,QAAQ;AACxC,OAAO,MAAMC,eAAe,GAAG,OAAO;AACtC,OAAO,MAAMC,mBAAmB,GAAG,UAAU;AAE7C,OAAO,MAAMC,aAAa,GAAG,CAC5BN,WAAW,EACXC,eAAe,EACfC,eAAe,EACfC,gBAAgB,EAChBC,eAAe,EACfC,mBAAmB,CACnB;AACD,OAAO,MAAME,SAAS,GAAG;EACxB,CAAEP,WAAW,GAAI;IAChBQ,GAAG,EAAE,WAAW;IAChBC,KAAK,EAAElB,EAAE,CAAE,IAAK;EACjB,CAAC;EACD,CAAEU,eAAe,GAAI;IACpBO,GAAG,EAAE,eAAe;IACpBC,KAAK,EAAElB,EAAE,CAAE,QAAS;EACrB,CAAC;EACD,CAAEW,eAAe,GAAI;IACpBM,GAAG,EAAE,eAAe;IACpBC,KAAK,EAAElB,EAAE,CAAE,QAAS;EACrB,CAAC;EACD,CAAEY,gBAAgB,GAAI;IACrBK,GAAG,EAAE,gBAAgB;IACrBC,KAAK,EAAElB,EAAE,CAAE,SAAU;EACtB,CAAC;EACD,CAAEa,eAAe,GAAI;IACpBI,GAAG,EAAE,eAAe;IACpBC,KAAK,EAAElB,EAAE,CAAE,QAAS;EACrB,CAAC;EACD,CAAEc,mBAAmB,GAAI;IACxBG,GAAG,EAAE,mBAAmB;IACxBC,KAAK,EAAElB,EAAE,CAAE,YAAa;EACzB;AACD,CAAC;;AAED;AACA,OAAO,MAAMmB,kBAAkB,GAAG;EACjCC,GAAG,EAAE;IAAEF,KAAK,EAAElB,EAAE,CAAE,gBAAiB;EAAE,CAAC;EACtCqB,IAAI,EAAE;IAAEH,KAAK,EAAElB,EAAE,CAAE,iBAAkB;EAAE;AACxC,CAAC;;AAED;AACA,OAAO,MAAMsB,YAAY,GAAG,OAAO;AACnC,OAAO,MAAMC,WAAW,GAAG,MAAM;AACjC,OAAO,MAAMC,WAAW,GAAG,MAAM;AAEjC,OAAO,MAAMC,YAAY,GAAG,CAC3B;EACCC,IAAI,EAAEJ,YAAY;EAClBJ,KAAK,EAAElB,EAAE,CAAE,OAAQ,CAAC;EACpB2B,SAAS,EAAErB,SAAS;EACpBsB,IAAI,EAAE1B;AACP,CAAC,EACD;EACCwB,IAAI,EAAEH,WAAW;EACjBL,KAAK,EAAElB,EAAE,CAAE,MAAO,CAAC;EACnB2B,SAAS,EAAEpB,QAAQ;EACnBqB,IAAI,EAAEzB;AACP,CAAC,EACD;EACCuB,IAAI,EAAEF,WAAW;EACjBN,KAAK,EAAElB,EAAE,CAAE,MAAO,CAAC;EACnB2B,SAAS,EAAEnB,QAAQ;EACnBoB,IAAI,EAAE3B,KAAK,CAAC,CAAC,GAAGI,oBAAoB,GAAGD;AACxC,CAAC,CACD"}
|
|
@@ -14,6 +14,7 @@ import Filters from './filters';
|
|
|
14
14
|
import Search from './search';
|
|
15
15
|
import { VIEW_LAYOUTS, LAYOUT_TABLE, LAYOUT_GRID } from './constants';
|
|
16
16
|
import BulkActions from './bulk-actions';
|
|
17
|
+
import { normalizeFields } from './normalize-fields';
|
|
17
18
|
const defaultGetItemId = item => item.id;
|
|
18
19
|
const defaultOnSelectionChange = () => {};
|
|
19
20
|
function useSomeItemHasAPossibleBulkAction(actions, data) {
|
|
@@ -31,7 +32,7 @@ export default function DataViews({
|
|
|
31
32
|
fields,
|
|
32
33
|
search = true,
|
|
33
34
|
searchLabel = undefined,
|
|
34
|
-
actions,
|
|
35
|
+
actions = [],
|
|
35
36
|
data,
|
|
36
37
|
getItemId = defaultGetItemId,
|
|
37
38
|
isLoading = false,
|
|
@@ -55,12 +56,7 @@ export default function DataViews({
|
|
|
55
56
|
onSelectionChange(items);
|
|
56
57
|
}, [setSelection, getItemId, onSelectionChange]);
|
|
57
58
|
const ViewComponent = VIEW_LAYOUTS.find(v => v.type === view.type).component;
|
|
58
|
-
const _fields = useMemo(() =>
|
|
59
|
-
return fields.map(field => ({
|
|
60
|
-
...field,
|
|
61
|
-
render: field.render || field.getValue
|
|
62
|
-
}));
|
|
63
|
-
}, [fields]);
|
|
59
|
+
const _fields = useMemo(() => normalizeFields(fields), [fields]);
|
|
64
60
|
const hasPossibleBulkAction = useSomeItemHasAPossibleBulkAction(actions, data);
|
|
65
61
|
return createElement("div", {
|
|
66
62
|
className: "dataviews-wrapper"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__experimentalHStack","HStack","useMemo","useState","useCallback","useEffect","Pagination","ViewActions","Filters","Search","VIEW_LAYOUTS","LAYOUT_TABLE","LAYOUT_GRID","BulkActions","defaultGetItemId","item","id","defaultOnSelectionChange","useSomeItemHasAPossibleBulkAction","actions","data","some","action","supportsBulk","isEligible","DataViews","view","onChangeView","fields","search","searchLabel","undefined","getItemId","isLoading","paginationInfo","supportedLayouts","onSelectionChange","onDetailsChange","deferredRendering","selection","setSelection","openedFilter","setOpenedFilter","length","newSelection","filter","includes","onSetSelection","items","map","ViewComponent","find","v","type","component","_fields","
|
|
1
|
+
{"version":3,"names":["__experimentalHStack","HStack","useMemo","useState","useCallback","useEffect","Pagination","ViewActions","Filters","Search","VIEW_LAYOUTS","LAYOUT_TABLE","LAYOUT_GRID","BulkActions","normalizeFields","defaultGetItemId","item","id","defaultOnSelectionChange","useSomeItemHasAPossibleBulkAction","actions","data","some","action","supportsBulk","isEligible","DataViews","view","onChangeView","fields","search","searchLabel","undefined","getItemId","isLoading","paginationInfo","supportedLayouts","onSelectionChange","onDetailsChange","deferredRendering","selection","setSelection","openedFilter","setOpenedFilter","length","newSelection","filter","includes","onSetSelection","items","map","ViewComponent","find","v","type","component","_fields","hasPossibleBulkAction","createElement","className","alignment","justify","wrap","label"],"sources":["@wordpress/dataviews/src/dataviews.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalHStack as HStack } from '@wordpress/components';\nimport { useMemo, useState, useCallback, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Pagination from './pagination';\nimport ViewActions from './view-actions';\nimport Filters from './filters';\nimport Search from './search';\nimport { VIEW_LAYOUTS, LAYOUT_TABLE, LAYOUT_GRID } from './constants';\nimport BulkActions from './bulk-actions';\nimport { normalizeFields } from './normalize-fields';\n\nconst defaultGetItemId = ( item ) => item.id;\nconst defaultOnSelectionChange = () => {};\n\nfunction useSomeItemHasAPossibleBulkAction( actions, data ) {\n\treturn useMemo( () => {\n\t\treturn data.some( ( item ) => {\n\t\t\treturn actions.some( ( action ) => {\n\t\t\t\treturn action.supportsBulk && action.isEligible( item );\n\t\t\t} );\n\t\t} );\n\t}, [ actions, data ] );\n}\n\nexport default function DataViews( {\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\tsupportedLayouts,\n\tonSelectionChange = defaultOnSelectionChange,\n\tonDetailsChange = null,\n\tdeferredRendering = false,\n} ) {\n\tconst [ selection, setSelection ] = useState( [] );\n\tconst [ openedFilter, setOpenedFilter ] = useState( null );\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\tselection.length > 0 &&\n\t\t\tselection.some(\n\t\t\t\t( id ) => ! data.some( ( item ) => getItemId( item ) === id )\n\t\t\t)\n\t\t) {\n\t\t\tconst newSelection = selection.filter( ( id ) =>\n\t\t\t\tdata.some( ( item ) => getItemId( item ) === id )\n\t\t\t);\n\t\t\tsetSelection( newSelection );\n\t\t\tonSelectionChange(\n\t\t\t\tdata.filter( ( item ) =>\n\t\t\t\t\tnewSelection.includes( getItemId( item ) )\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}, [ selection, data, getItemId, onSelectionChange ] );\n\n\tconst onSetSelection = useCallback(\n\t\t( items ) => {\n\t\t\tsetSelection( items.map( ( item ) => getItemId( item ) ) );\n\t\t\tonSelectionChange( items );\n\t\t},\n\t\t[ setSelection, getItemId, onSelectionChange ]\n\t);\n\n\tconst ViewComponent = VIEW_LAYOUTS.find(\n\t\t( v ) => v.type === view.type\n\t).component;\n\tconst _fields = useMemo( () => normalizeFields( fields ), [ fields ] );\n\n\tconst hasPossibleBulkAction = useSomeItemHasAPossibleBulkAction(\n\t\tactions,\n\t\tdata\n\t);\n\treturn (\n\t\t<div className=\"dataviews-wrapper\">\n\t\t\t<HStack\n\t\t\t\talignment=\"top\"\n\t\t\t\tjustify=\"start\"\n\t\t\t\tclassName=\"dataviews-filters__view-actions\"\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\tjustify=\"start\"\n\t\t\t\t\tclassName=\"dataviews-filters__container\"\n\t\t\t\t\twrap\n\t\t\t\t>\n\t\t\t\t\t{ search && (\n\t\t\t\t\t\t<Search\n\t\t\t\t\t\t\tlabel={ searchLabel }\n\t\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<Filters\n\t\t\t\t\t\tfields={ _fields }\n\t\t\t\t\t\tview={ view }\n\t\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\t\topenedFilter={ openedFilter }\n\t\t\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\t\t/>\n\t\t\t\t</HStack>\n\t\t\t\t{ [ LAYOUT_TABLE, LAYOUT_GRID ].includes( view.type ) &&\n\t\t\t\t\thasPossibleBulkAction && (\n\t\t\t\t\t\t<BulkActions\n\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\tonSelectionChange={ onSetSelection }\n\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t<ViewActions\n\t\t\t\t\tfields={ _fields }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\tsupportedLayouts={ supportedLayouts }\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t\t<ViewComponent\n\t\t\t\tfields={ _fields }\n\t\t\t\tview={ view }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\tactions={ actions }\n\t\t\t\tdata={ data }\n\t\t\t\tgetItemId={ getItemId }\n\t\t\t\tisLoading={ isLoading }\n\t\t\t\tonSelectionChange={ onSetSelection }\n\t\t\t\tonDetailsChange={ onDetailsChange }\n\t\t\t\tselection={ selection }\n\t\t\t\tdeferredRendering={ deferredRendering }\n\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t/>\n\t\t\t<Pagination\n\t\t\t\tview={ view }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\tpaginationInfo={ paginationInfo }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,oBAAoB,IAAIC,MAAM,QAAQ,uBAAuB;AACtE,SAASC,OAAO,EAAEC,QAAQ,EAAEC,WAAW,EAAEC,SAAS,QAAQ,oBAAoB;;AAE9E;AACA;AACA;AACA,OAAOC,UAAU,MAAM,cAAc;AACrC,OAAOC,WAAW,MAAM,gBAAgB;AACxC,OAAOC,OAAO,MAAM,WAAW;AAC/B,OAAOC,MAAM,MAAM,UAAU;AAC7B,SAASC,YAAY,EAAEC,YAAY,EAAEC,WAAW,QAAQ,aAAa;AACrE,OAAOC,WAAW,MAAM,gBAAgB;AACxC,SAASC,eAAe,QAAQ,oBAAoB;AAEpD,MAAMC,gBAAgB,GAAKC,IAAI,IAAMA,IAAI,CAACC,EAAE;AAC5C,MAAMC,wBAAwB,GAAGA,CAAA,KAAM,CAAC,CAAC;AAEzC,SAASC,iCAAiCA,CAAEC,OAAO,EAAEC,IAAI,EAAG;EAC3D,OAAOnB,OAAO,CAAE,MAAM;IACrB,OAAOmB,IAAI,CAACC,IAAI,CAAIN,IAAI,IAAM;MAC7B,OAAOI,OAAO,CAACE,IAAI,CAAIC,MAAM,IAAM;QAClC,OAAOA,MAAM,CAACC,YAAY,IAAID,MAAM,CAACE,UAAU,CAAET,IAAK,CAAC;MACxD,CAAE,CAAC;IACJ,CAAE,CAAC;EACJ,CAAC,EAAE,CAAEI,OAAO,EAAEC,IAAI,CAAG,CAAC;AACvB;AAEA,eAAe,SAASK,SAASA,CAAE;EAClCC,IAAI;EACJC,YAAY;EACZC,MAAM;EACNC,MAAM,GAAG,IAAI;EACbC,WAAW,GAAGC,SAAS;EACvBZ,OAAO,GAAG,EAAE;EACZC,IAAI;EACJY,SAAS,GAAGlB,gBAAgB;EAC5BmB,SAAS,GAAG,KAAK;EACjBC,cAAc;EACdC,gBAAgB;EAChBC,iBAAiB,GAAGnB,wBAAwB;EAC5CoB,eAAe,GAAG,IAAI;EACtBC,iBAAiB,GAAG;AACrB,CAAC,EAAG;EACH,MAAM,CAAEC,SAAS,EAAEC,YAAY,CAAE,GAAGtC,QAAQ,CAAE,EAAG,CAAC;EAClD,MAAM,CAAEuC,YAAY,EAAEC,eAAe,CAAE,GAAGxC,QAAQ,CAAE,IAAK,CAAC;EAE1DE,SAAS,CAAE,MAAM;IAChB,IACCmC,SAAS,CAACI,MAAM,GAAG,CAAC,IACpBJ,SAAS,CAAClB,IAAI,CACXL,EAAE,IAAM,CAAEI,IAAI,CAACC,IAAI,CAAIN,IAAI,IAAMiB,SAAS,CAAEjB,IAAK,CAAC,KAAKC,EAAG,CAC7D,CAAC,EACA;MACD,MAAM4B,YAAY,GAAGL,SAAS,CAACM,MAAM,CAAI7B,EAAE,IAC1CI,IAAI,CAACC,IAAI,CAAIN,IAAI,IAAMiB,SAAS,CAAEjB,IAAK,CAAC,KAAKC,EAAG,CACjD,CAAC;MACDwB,YAAY,CAAEI,YAAa,CAAC;MAC5BR,iBAAiB,CAChBhB,IAAI,CAACyB,MAAM,CAAI9B,IAAI,IAClB6B,YAAY,CAACE,QAAQ,CAAEd,SAAS,CAAEjB,IAAK,CAAE,CAC1C,CACD,CAAC;IACF;EACD,CAAC,EAAE,CAAEwB,SAAS,EAAEnB,IAAI,EAAEY,SAAS,EAAEI,iBAAiB,CAAG,CAAC;EAEtD,MAAMW,cAAc,GAAG5C,WAAW,CAC/B6C,KAAK,IAAM;IACZR,YAAY,CAAEQ,KAAK,CAACC,GAAG,CAAIlC,IAAI,IAAMiB,SAAS,CAAEjB,IAAK,CAAE,CAAE,CAAC;IAC1DqB,iBAAiB,CAAEY,KAAM,CAAC;EAC3B,CAAC,EACD,CAAER,YAAY,EAAER,SAAS,EAAEI,iBAAiB,CAC7C,CAAC;EAED,MAAMc,aAAa,GAAGzC,YAAY,CAAC0C,IAAI,CACpCC,CAAC,IAAMA,CAAC,CAACC,IAAI,KAAK3B,IAAI,CAAC2B,IAC1B,CAAC,CAACC,SAAS;EACX,MAAMC,OAAO,GAAGtD,OAAO,CAAE,MAAMY,eAAe,CAAEe,MAAO,CAAC,EAAE,CAAEA,MAAM,CAAG,CAAC;EAEtE,MAAM4B,qBAAqB,GAAGtC,iCAAiC,CAC9DC,OAAO,EACPC,IACD,CAAC;EACD,OACCqC,aAAA;IAAKC,SAAS,EAAC;EAAmB,GACjCD,aAAA,CAACzD,MAAM;IACN2D,SAAS,EAAC,KAAK;IACfC,OAAO,EAAC,OAAO;IACfF,SAAS,EAAC;EAAiC,GAE3CD,aAAA,CAACzD,MAAM;IACN4D,OAAO,EAAC,OAAO;IACfF,SAAS,EAAC,8BAA8B;IACxCG,IAAI;EAAA,GAEFhC,MAAM,IACP4B,aAAA,CAACjD,MAAM;IACNsD,KAAK,EAAGhC,WAAa;IACrBJ,IAAI,EAAGA,IAAM;IACbC,YAAY,EAAGA;EAAc,CAC7B,CACD,EACD8B,aAAA,CAAClD,OAAO;IACPqB,MAAM,EAAG2B,OAAS;IAClB7B,IAAI,EAAGA,IAAM;IACbC,YAAY,EAAGA,YAAc;IAC7Bc,YAAY,EAAGA,YAAc;IAC7BC,eAAe,EAAGA;EAAiB,CACnC,CACM,CAAC,EACP,CAAEhC,YAAY,EAAEC,WAAW,CAAE,CAACmC,QAAQ,CAAEpB,IAAI,CAAC2B,IAAK,CAAC,IACpDG,qBAAqB,IACpBC,aAAA,CAAC7C,WAAW;IACXO,OAAO,EAAGA,OAAS;IACnBC,IAAI,EAAGA,IAAM;IACbgB,iBAAiB,EAAGW,cAAgB;IACpCR,SAAS,EAAGA,SAAW;IACvBP,SAAS,EAAGA;EAAW,CACvB,CACD,EACFyB,aAAA,CAACnD,WAAW;IACXsB,MAAM,EAAG2B,OAAS;IAClB7B,IAAI,EAAGA,IAAM;IACbC,YAAY,EAAGA,YAAc;IAC7BQ,gBAAgB,EAAGA;EAAkB,CACrC,CACM,CAAC,EACTsB,aAAA,CAACP,aAAa;IACbtB,MAAM,EAAG2B,OAAS;IAClB7B,IAAI,EAAGA,IAAM;IACbC,YAAY,EAAGA,YAAc;IAC7BR,OAAO,EAAGA,OAAS;IACnBC,IAAI,EAAGA,IAAM;IACbY,SAAS,EAAGA,SAAW;IACvBC,SAAS,EAAGA,SAAW;IACvBG,iBAAiB,EAAGW,cAAgB;IACpCV,eAAe,EAAGA,eAAiB;IACnCE,SAAS,EAAGA,SAAW;IACvBD,iBAAiB,EAAGA,iBAAmB;IACvCI,eAAe,EAAGA;EAAiB,CACnC,CAAC,EACFe,aAAA,CAACpD,UAAU;IACVqB,IAAI,EAAGA,IAAM;IACbC,YAAY,EAAGA,YAAc;IAC7BO,cAAc,EAAGA;EAAgB,CACjC,CACG,CAAC;AAER"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import removeAccents from 'remove-accents';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Internal dependencies
|
|
8
|
+
*/
|
|
9
|
+
import { OPERATOR_IS, OPERATOR_IS_NOT, OPERATOR_IS_NONE, OPERATOR_IS_ANY, OPERATOR_IS_ALL, OPERATOR_IS_NOT_ALL } from './constants';
|
|
10
|
+
import { normalizeFields } from './normalize-fields';
|
|
11
|
+
function normalizeSearchInput(input = '') {
|
|
12
|
+
return removeAccents(input.trim().toLowerCase());
|
|
13
|
+
}
|
|
14
|
+
const EMPTY_ARRAY = [];
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Applies the filtering, sorting and pagination to the raw data based on the view configuration.
|
|
18
|
+
*
|
|
19
|
+
* @param {any[]} data Raw data.
|
|
20
|
+
* @param {Object} view View config.
|
|
21
|
+
* @param {Object[]} fields Fields config.
|
|
22
|
+
*
|
|
23
|
+
* @return {Object} { data: any[], paginationInfo: { totalItems: number, totalPages: number } }
|
|
24
|
+
*/
|
|
25
|
+
export function filterSortAndPaginate(data, view, fields) {
|
|
26
|
+
if (!data) {
|
|
27
|
+
return {
|
|
28
|
+
data: EMPTY_ARRAY,
|
|
29
|
+
paginationInfo: {
|
|
30
|
+
totalItems: 0,
|
|
31
|
+
totalPages: 0
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
const _fields = normalizeFields(fields);
|
|
36
|
+
let filteredData = [...data];
|
|
37
|
+
// Handle global search.
|
|
38
|
+
if (view.search) {
|
|
39
|
+
const normalizedSearch = normalizeSearchInput(view.search);
|
|
40
|
+
filteredData = filteredData.filter(item => {
|
|
41
|
+
return _fields.filter(field => field.enableGlobalSearch).map(field => {
|
|
42
|
+
return normalizeSearchInput(field.getValue({
|
|
43
|
+
item
|
|
44
|
+
}));
|
|
45
|
+
}).some(field => field.includes(normalizedSearch));
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
if (view.filters.length > 0) {
|
|
49
|
+
view.filters.forEach(filter => {
|
|
50
|
+
const field = _fields.find(_field => _field.id === filter.field);
|
|
51
|
+
if (filter.operator === OPERATOR_IS_ANY && filter?.value?.length > 0) {
|
|
52
|
+
filteredData = filteredData.filter(item => {
|
|
53
|
+
const fieldValue = field.getValue({
|
|
54
|
+
item
|
|
55
|
+
});
|
|
56
|
+
if (Array.isArray(fieldValue)) {
|
|
57
|
+
return filter.value.some(filterValue => fieldValue.includes(filterValue));
|
|
58
|
+
} else if (typeof fieldValue === 'string') {
|
|
59
|
+
return filter.value.includes(fieldValue);
|
|
60
|
+
}
|
|
61
|
+
return false;
|
|
62
|
+
});
|
|
63
|
+
} else if (filter.operator === OPERATOR_IS_NONE && filter?.value?.length > 0) {
|
|
64
|
+
filteredData = filteredData.filter(item => {
|
|
65
|
+
const fieldValue = field.getValue({
|
|
66
|
+
item
|
|
67
|
+
});
|
|
68
|
+
if (Array.isArray(fieldValue)) {
|
|
69
|
+
return !filter.value.some(filterValue => fieldValue.includes(filterValue));
|
|
70
|
+
} else if (typeof fieldValue === 'string') {
|
|
71
|
+
return !filter.value.includes(fieldValue);
|
|
72
|
+
}
|
|
73
|
+
return false;
|
|
74
|
+
});
|
|
75
|
+
} else if (filter.operator === OPERATOR_IS_ALL && filter?.value?.length > 0) {
|
|
76
|
+
filteredData = filteredData.filter(item => {
|
|
77
|
+
return filter.value.every(value => {
|
|
78
|
+
return field.getValue({
|
|
79
|
+
item
|
|
80
|
+
}).includes(value);
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
} else if (filter.operator === OPERATOR_IS_NOT_ALL && filter?.value?.length > 0) {
|
|
84
|
+
filteredData = filteredData.filter(item => {
|
|
85
|
+
return filter.value.every(value => {
|
|
86
|
+
return !field.getValue({
|
|
87
|
+
item
|
|
88
|
+
}).includes(value);
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
} else if (filter.operator === OPERATOR_IS) {
|
|
92
|
+
filteredData = filteredData.filter(item => {
|
|
93
|
+
return filter.value === field.getValue({
|
|
94
|
+
item
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
} else if (filter.operator === OPERATOR_IS_NOT) {
|
|
98
|
+
filteredData = filteredData.filter(item => {
|
|
99
|
+
return filter.value !== field.getValue({
|
|
100
|
+
item
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// Handle sorting.
|
|
108
|
+
if (view.sort) {
|
|
109
|
+
const fieldId = view.sort.field;
|
|
110
|
+
const fieldToSort = _fields.find(field => {
|
|
111
|
+
return field.id === fieldId;
|
|
112
|
+
});
|
|
113
|
+
filteredData.sort((a, b) => {
|
|
114
|
+
var _fieldToSort$getValue, _fieldToSort$getValue2;
|
|
115
|
+
const valueA = (_fieldToSort$getValue = fieldToSort.getValue({
|
|
116
|
+
item: a
|
|
117
|
+
})) !== null && _fieldToSort$getValue !== void 0 ? _fieldToSort$getValue : '';
|
|
118
|
+
const valueB = (_fieldToSort$getValue2 = fieldToSort.getValue({
|
|
119
|
+
item: b
|
|
120
|
+
})) !== null && _fieldToSort$getValue2 !== void 0 ? _fieldToSort$getValue2 : '';
|
|
121
|
+
return view.sort.direction === 'asc' ? valueA.localeCompare(valueB) : valueB.localeCompare(valueA);
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// Handle pagination.
|
|
126
|
+
const hasPagination = view.page && view.perPage;
|
|
127
|
+
const start = hasPagination ? (view.page - 1) * view.perPage : 0;
|
|
128
|
+
const totalItems = filteredData?.length || 0;
|
|
129
|
+
const totalPages = hasPagination ? Math.ceil(totalItems / view.perPage) : 1;
|
|
130
|
+
filteredData = hasPagination ? filteredData?.slice(start, start + view.perPage) : filteredData;
|
|
131
|
+
return {
|
|
132
|
+
data: filteredData,
|
|
133
|
+
paginationInfo: {
|
|
134
|
+
totalItems,
|
|
135
|
+
totalPages
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=filter-and-sort-data-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["removeAccents","OPERATOR_IS","OPERATOR_IS_NOT","OPERATOR_IS_NONE","OPERATOR_IS_ANY","OPERATOR_IS_ALL","OPERATOR_IS_NOT_ALL","normalizeFields","normalizeSearchInput","input","trim","toLowerCase","EMPTY_ARRAY","filterSortAndPaginate","data","view","fields","paginationInfo","totalItems","totalPages","_fields","filteredData","search","normalizedSearch","filter","item","field","enableGlobalSearch","map","getValue","some","includes","filters","length","forEach","find","_field","id","operator","value","fieldValue","Array","isArray","filterValue","every","sort","fieldId","fieldToSort","a","b","_fieldToSort$getValue","_fieldToSort$getValue2","valueA","valueB","direction","localeCompare","hasPagination","page","perPage","start","Math","ceil","slice"],"sources":["@wordpress/dataviews/src/filter-and-sort-data-view.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport removeAccents from 'remove-accents';\n\n/**\n * Internal dependencies\n */\nimport {\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_NOT_ALL,\n} from './constants';\nimport { normalizeFields } from './normalize-fields';\n\nfunction normalizeSearchInput( input = '' ) {\n\treturn removeAccents( input.trim().toLowerCase() );\n}\n\nconst EMPTY_ARRAY = [];\n\n/**\n * Applies the filtering, sorting and pagination to the raw data based on the view configuration.\n *\n * @param {any[]} data Raw data.\n * @param {Object} view View config.\n * @param {Object[]} fields Fields config.\n *\n * @return {Object} { data: any[], paginationInfo: { totalItems: number, totalPages: number } }\n */\nexport function filterSortAndPaginate( data, view, fields ) {\n\tif ( ! data ) {\n\t\treturn {\n\t\t\tdata: EMPTY_ARRAY,\n\t\t\tpaginationInfo: { totalItems: 0, totalPages: 0 },\n\t\t};\n\t}\n\tconst _fields = normalizeFields( fields );\n\tlet filteredData = [ ...data ];\n\t// Handle global search.\n\tif ( view.search ) {\n\t\tconst normalizedSearch = normalizeSearchInput( view.search );\n\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\treturn _fields\n\t\t\t\t.filter( ( field ) => field.enableGlobalSearch )\n\t\t\t\t.map( ( field ) => {\n\t\t\t\t\treturn normalizeSearchInput( field.getValue( { item } ) );\n\t\t\t\t} )\n\t\t\t\t.some( ( field ) => field.includes( normalizedSearch ) );\n\t\t} );\n\t}\n\n\tif ( view.filters.length > 0 ) {\n\t\tview.filters.forEach( ( filter ) => {\n\t\t\tconst field = _fields.find(\n\t\t\t\t( _field ) => _field.id === filter.field\n\t\t\t);\n\t\t\tif (\n\t\t\t\tfilter.operator === OPERATOR_IS_ANY &&\n\t\t\t\tfilter?.value?.length > 0\n\t\t\t) {\n\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\tif ( Array.isArray( fieldValue ) ) {\n\t\t\t\t\t\treturn filter.value.some( ( filterValue ) =>\n\t\t\t\t\t\t\tfieldValue.includes( filterValue )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if ( typeof fieldValue === 'string' ) {\n\t\t\t\t\t\treturn filter.value.includes( fieldValue );\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t} );\n\t\t\t} else if (\n\t\t\t\tfilter.operator === OPERATOR_IS_NONE &&\n\t\t\t\tfilter?.value?.length > 0\n\t\t\t) {\n\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\tif ( Array.isArray( fieldValue ) ) {\n\t\t\t\t\t\treturn ! filter.value.some( ( filterValue ) =>\n\t\t\t\t\t\t\tfieldValue.includes( filterValue )\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if ( typeof fieldValue === 'string' ) {\n\t\t\t\t\t\treturn ! filter.value.includes( fieldValue );\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t} );\n\t\t\t} else if (\n\t\t\t\tfilter.operator === OPERATOR_IS_ALL &&\n\t\t\t\tfilter?.value?.length > 0\n\t\t\t) {\n\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\treturn filter.value.every( ( value ) => {\n\t\t\t\t\t\treturn field.getValue( { item } ).includes( value );\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t} else if (\n\t\t\t\tfilter.operator === OPERATOR_IS_NOT_ALL &&\n\t\t\t\tfilter?.value?.length > 0\n\t\t\t) {\n\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\treturn filter.value.every( ( value ) => {\n\t\t\t\t\t\treturn ! field.getValue( { item } ).includes( value );\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t} else if ( filter.operator === OPERATOR_IS ) {\n\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\treturn filter.value === field.getValue( { item } );\n\t\t\t\t} );\n\t\t\t} else if ( filter.operator === OPERATOR_IS_NOT ) {\n\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\treturn filter.value !== field.getValue( { item } );\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t}\n\n\t// Handle sorting.\n\tif ( view.sort ) {\n\t\tconst fieldId = view.sort.field;\n\t\tconst fieldToSort = _fields.find( ( field ) => {\n\t\t\treturn field.id === fieldId;\n\t\t} );\n\t\tfilteredData.sort( ( a, b ) => {\n\t\t\tconst valueA = fieldToSort.getValue( { item: a } ) ?? '';\n\t\t\tconst valueB = fieldToSort.getValue( { item: b } ) ?? '';\n\t\t\treturn view.sort.direction === 'asc'\n\t\t\t\t? valueA.localeCompare( valueB )\n\t\t\t\t: valueB.localeCompare( valueA );\n\t\t} );\n\t}\n\n\t// Handle pagination.\n\tconst hasPagination = view.page && view.perPage;\n\tconst start = hasPagination ? ( view.page - 1 ) * view.perPage : 0;\n\tconst totalItems = filteredData?.length || 0;\n\tconst totalPages = hasPagination\n\t\t? Math.ceil( totalItems / view.perPage )\n\t\t: 1;\n\tfilteredData = hasPagination\n\t\t? filteredData?.slice( start, start + view.perPage )\n\t\t: filteredData;\n\n\treturn {\n\t\tdata: filteredData,\n\t\tpaginationInfo: {\n\t\t\ttotalItems,\n\t\t\ttotalPages,\n\t\t},\n\t};\n}\n"],"mappings":"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"}
|