@wordpress/dataviews 2.2.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +5 -5
  3. package/build/add-filter.js +1 -1
  4. package/build/add-filter.js.map +1 -1
  5. package/build/bulk-actions-toolbar.js +0 -1
  6. package/build/bulk-actions-toolbar.js.map +1 -1
  7. package/build/bulk-actions.js +1 -1
  8. package/build/bulk-actions.js.map +1 -1
  9. package/build/dataform.js +78 -0
  10. package/build/dataform.js.map +1 -0
  11. package/build/dataviews.js +17 -28
  12. package/build/dataviews.js.map +1 -1
  13. package/build/filter-and-sort-data-view.js +4 -1
  14. package/build/filter-and-sort-data-view.js.map +1 -1
  15. package/build/filter-summary.js +6 -5
  16. package/build/filter-summary.js.map +1 -1
  17. package/build/filters.js +1 -1
  18. package/build/filters.js.map +1 -1
  19. package/build/index.js +7 -0
  20. package/build/index.js.map +1 -1
  21. package/build/item-actions.js +1 -1
  22. package/build/item-actions.js.map +1 -1
  23. package/build/normalize-fields.js.map +1 -1
  24. package/build/pagination.js +2 -2
  25. package/build/pagination.js.map +1 -1
  26. package/build/private-types.js +6 -0
  27. package/build/private-types.js.map +1 -0
  28. package/build/reset-filters.js +1 -1
  29. package/build/reset-filters.js.map +1 -1
  30. package/build/search-widget.js +8 -6
  31. package/build/search-widget.js.map +1 -1
  32. package/build/single-selection-checkbox.js +5 -16
  33. package/build/single-selection-checkbox.js.map +1 -1
  34. package/build/types.js.map +1 -1
  35. package/build/utils.js.map +1 -1
  36. package/build/view-actions.js +76 -65
  37. package/build/view-actions.js.map +1 -1
  38. package/build/view-grid.js +7 -19
  39. package/build/view-grid.js.map +1 -1
  40. package/build/view-list.js +6 -5
  41. package/build/view-list.js.map +1 -1
  42. package/build/view-table.js +11 -20
  43. package/build/view-table.js.map +1 -1
  44. package/build-module/add-filter.js +1 -1
  45. package/build-module/add-filter.js.map +1 -1
  46. package/build-module/bulk-actions-toolbar.js +0 -1
  47. package/build-module/bulk-actions-toolbar.js.map +1 -1
  48. package/build-module/bulk-actions.js +1 -1
  49. package/build-module/bulk-actions.js.map +1 -1
  50. package/build-module/dataform.js +72 -0
  51. package/build-module/dataform.js.map +1 -0
  52. package/build-module/dataviews.js +15 -28
  53. package/build-module/dataviews.js.map +1 -1
  54. package/build-module/filter-and-sort-data-view.js +4 -1
  55. package/build-module/filter-and-sort-data-view.js.map +1 -1
  56. package/build-module/filter-summary.js +6 -5
  57. package/build-module/filter-summary.js.map +1 -1
  58. package/build-module/filters.js +1 -1
  59. package/build-module/filters.js.map +1 -1
  60. package/build-module/index.js +1 -0
  61. package/build-module/index.js.map +1 -1
  62. package/build-module/item-actions.js +1 -1
  63. package/build-module/item-actions.js.map +1 -1
  64. package/build-module/normalize-fields.js.map +1 -1
  65. package/build-module/pagination.js +2 -2
  66. package/build-module/pagination.js.map +1 -1
  67. package/build-module/private-types.js +2 -0
  68. package/build-module/private-types.js.map +1 -0
  69. package/build-module/reset-filters.js +1 -1
  70. package/build-module/reset-filters.js.map +1 -1
  71. package/build-module/search-widget.js +8 -6
  72. package/build-module/search-widget.js.map +1 -1
  73. package/build-module/single-selection-checkbox.js +5 -16
  74. package/build-module/single-selection-checkbox.js.map +1 -1
  75. package/build-module/types.js.map +1 -1
  76. package/build-module/utils.js.map +1 -1
  77. package/build-module/view-actions.js +80 -68
  78. package/build-module/view-actions.js.map +1 -1
  79. package/build-module/view-grid.js +7 -19
  80. package/build-module/view-grid.js.map +1 -1
  81. package/build-module/view-list.js +6 -5
  82. package/build-module/view-list.js.map +1 -1
  83. package/build-module/view-table.js +11 -20
  84. package/build-module/view-table.js.map +1 -1
  85. package/build-style/style-rtl.css +8 -24
  86. package/build-style/style.css +8 -24
  87. package/build-types/bulk-actions-toolbar.d.ts +5 -4
  88. package/build-types/bulk-actions-toolbar.d.ts.map +1 -1
  89. package/build-types/bulk-actions.d.ts +7 -6
  90. package/build-types/bulk-actions.d.ts.map +1 -1
  91. package/build-types/dataform.d.ts +17 -0
  92. package/build-types/dataform.d.ts.map +1 -0
  93. package/build-types/dataviews.d.ts +14 -7
  94. package/build-types/dataviews.d.ts.map +1 -1
  95. package/build-types/filter-and-sort-data-view.d.ts +2 -2
  96. package/build-types/filter-and-sort-data-view.d.ts.map +1 -1
  97. package/build-types/filter-summary.d.ts.map +1 -1
  98. package/build-types/filters.d.ts +3 -3
  99. package/build-types/filters.d.ts.map +1 -1
  100. package/build-types/index.d.ts +1 -0
  101. package/build-types/index.d.ts.map +1 -1
  102. package/build-types/item-actions.d.ts +10 -10
  103. package/build-types/item-actions.d.ts.map +1 -1
  104. package/build-types/normalize-fields.d.ts +2 -2
  105. package/build-types/normalize-fields.d.ts.map +1 -1
  106. package/build-types/private-types.d.ts +3 -0
  107. package/build-types/private-types.d.ts.map +1 -0
  108. package/build-types/single-selection-checkbox.d.ts +5 -5
  109. package/build-types/single-selection-checkbox.d.ts.map +1 -1
  110. package/build-types/stories/fixtures.d.ts +14 -1
  111. package/build-types/stories/fixtures.d.ts.map +1 -1
  112. package/build-types/stories/index.story.d.ts +15 -1
  113. package/build-types/stories/index.story.d.ts.map +1 -1
  114. package/build-types/types.d.ts +68 -27
  115. package/build-types/types.d.ts.map +1 -1
  116. package/build-types/utils.d.ts +2 -2
  117. package/build-types/utils.d.ts.map +1 -1
  118. package/build-types/view-actions.d.ts +4 -4
  119. package/build-types/view-actions.d.ts.map +1 -1
  120. package/build-types/view-grid.d.ts +2 -2
  121. package/build-types/view-grid.d.ts.map +1 -1
  122. package/build-types/view-list.d.ts +2 -2
  123. package/build-types/view-list.d.ts.map +1 -1
  124. package/build-types/view-table.d.ts +2 -2
  125. package/build-types/view-table.d.ts.map +1 -1
  126. package/package.json +10 -10
  127. package/src/add-filter.tsx +1 -1
  128. package/src/bulk-actions-toolbar.tsx +13 -13
  129. package/src/bulk-actions.tsx +18 -13
  130. package/src/dataform.tsx +106 -0
  131. package/src/dataviews.tsx +43 -49
  132. package/src/filter-and-sort-data-view.ts +13 -3
  133. package/src/filter-summary.tsx +18 -12
  134. package/src/filters.tsx +4 -4
  135. package/src/index.ts +1 -0
  136. package/src/item-actions.tsx +15 -16
  137. package/src/normalize-fields.ts +5 -3
  138. package/src/pagination.tsx +2 -2
  139. package/src/private-types.tsx +2 -0
  140. package/src/reset-filters.tsx +1 -1
  141. package/src/search-widget.tsx +6 -6
  142. package/src/single-selection-checkbox.tsx +14 -29
  143. package/src/stories/fixtures.js +17 -1
  144. package/src/stories/index.story.js +15 -28
  145. package/src/style.scss +10 -22
  146. package/src/test/filter-and-sort-data-view.js +16 -1
  147. package/src/types.ts +68 -34
  148. package/src/utils.ts +2 -4
  149. package/src/view-actions.tsx +105 -102
  150. package/src/view-grid.tsx +21 -38
  151. package/src/view-list.tsx +12 -15
  152. package/src/view-table.tsx +31 -42
  153. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,72 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+
5
+ /**
6
+ * WordPress dependencies
7
+ */
8
+ import { TextControl } from '@wordpress/components';
9
+ import { useCallback, useMemo } from '@wordpress/element';
10
+
11
+ /**
12
+ * Internal dependencies
13
+ */
14
+
15
+ import { normalizeFields } from './normalize-fields';
16
+ import { jsx as _jsx } from "react/jsx-runtime";
17
+ function DataFormTextControl({
18
+ data,
19
+ field,
20
+ onChange
21
+ }) {
22
+ const {
23
+ id,
24
+ header,
25
+ placeholder
26
+ } = field;
27
+ const value = field.getValue({
28
+ item: data
29
+ });
30
+ const onChangeControl = useCallback(newValue => onChange(prevItem => ({
31
+ ...prevItem,
32
+ [id]: newValue
33
+ })), [id, onChange]);
34
+ return /*#__PURE__*/_jsx(TextControl, {
35
+ label: header,
36
+ placeholder: placeholder,
37
+ value: value,
38
+ onChange: onChangeControl,
39
+ __next40pxDefaultSize: true
40
+ });
41
+ }
42
+ const controls = {
43
+ text: DataFormTextControl
44
+ };
45
+ function getControlForField(field) {
46
+ if (!field.type) {
47
+ return null;
48
+ }
49
+ if (!Object.keys(controls).includes(field.type)) {
50
+ return null;
51
+ }
52
+ return controls[field.type];
53
+ }
54
+ export default function DataForm({
55
+ data,
56
+ fields,
57
+ form,
58
+ onChange
59
+ }) {
60
+ const visibleFields = useMemo(() => normalizeFields(fields.filter(({
61
+ id
62
+ }) => !!form.visibleFields?.includes(id))), [fields, form.visibleFields]);
63
+ return visibleFields.map(field => {
64
+ const DataFormControl = getControlForField(field);
65
+ return DataFormControl ? /*#__PURE__*/_jsx(DataFormControl, {
66
+ data: data,
67
+ field: field,
68
+ onChange: onChange
69
+ }, field.id) : null;
70
+ });
71
+ }
72
+ //# sourceMappingURL=dataform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TextControl","useCallback","useMemo","normalizeFields","jsx","_jsx","DataFormTextControl","data","field","onChange","id","header","placeholder","value","getValue","item","onChangeControl","newValue","prevItem","label","__next40pxDefaultSize","controls","text","getControlForField","type","Object","keys","includes","DataForm","fields","form","visibleFields","filter","map","DataFormControl"],"sources":["@wordpress/dataviews/src/dataform.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { Dispatch, SetStateAction } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { TextControl } from '@wordpress/components';\nimport { useCallback, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { Form, Field, NormalizedField } from './types';\nimport { normalizeFields } from './normalize-fields';\n\ntype DataFormProps< Item > = {\n\tdata: Item;\n\tfields: Field< Item >[];\n\tform: Form;\n\tonChange: Dispatch< SetStateAction< Item > >;\n};\n\ntype DataFormControlProps< Item > = {\n\tdata: Item;\n\tfield: NormalizedField< Item >;\n\tonChange: Dispatch< SetStateAction< Item > >;\n};\n\nfunction DataFormTextControl< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n}: DataFormControlProps< Item > ) {\n\tconst { id, header, placeholder } = field;\n\tconst value = field.getValue( { item: data } );\n\n\tconst onChangeControl = useCallback(\n\t\t( newValue: string ) =>\n\t\t\tonChange( ( prevItem: Item ) => ( {\n\t\t\t\t...prevItem,\n\t\t\t\t[ id ]: newValue,\n\t\t\t} ) ),\n\t\t[ id, onChange ]\n\t);\n\n\treturn (\n\t\t<TextControl\n\t\t\tlabel={ header }\n\t\t\tplaceholder={ placeholder }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChangeControl }\n\t\t\t__next40pxDefaultSize\n\t\t/>\n\t);\n}\n\nconst controls: {\n\t[ key: string ]: < Item >(\n\t\tprops: DataFormControlProps< Item >\n\t) => JSX.Element;\n} = {\n\ttext: DataFormTextControl,\n};\n\nfunction getControlForField< Item >( field: NormalizedField< Item > ) {\n\tif ( ! field.type ) {\n\t\treturn null;\n\t}\n\n\tif ( ! Object.keys( controls ).includes( field.type ) ) {\n\t\treturn null;\n\t}\n\n\treturn controls[ field.type ];\n}\n\nexport default function DataForm< Item >( {\n\tdata,\n\tfields,\n\tform,\n\tonChange,\n}: DataFormProps< Item > ) {\n\tconst visibleFields = useMemo(\n\t\t() =>\n\t\t\tnormalizeFields(\n\t\t\t\tfields.filter(\n\t\t\t\t\t( { id } ) => !! form.visibleFields?.includes( id )\n\t\t\t\t)\n\t\t\t),\n\t\t[ fields, form.visibleFields ]\n\t);\n\n\treturn visibleFields.map( ( field ) => {\n\t\tconst DataFormControl = getControlForField( field );\n\t\treturn DataFormControl ? (\n\t\t\t<DataFormControl\n\t\t\t\tkey={ field.id }\n\t\t\t\tdata={ data }\n\t\t\t\tfield={ field }\n\t\t\t\tonChange={ onChange }\n\t\t\t/>\n\t\t) : null;\n\t} );\n}\n"],"mappings":"AAAA;AACA;AACA;;AAGA;AACA;AACA;AACA,SAASA,WAAW,QAAQ,uBAAuB;AACnD,SAASC,WAAW,EAAEC,OAAO,QAAQ,oBAAoB;;AAEzD;AACA;AACA;;AAEA,SAASC,eAAe,QAAQ,oBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAerD,SAASC,mBAAmBA,CAAU;EACrCC,IAAI;EACJC,KAAK;EACLC;AAC6B,CAAC,EAAG;EACjC,MAAM;IAAEC,EAAE;IAAEC,MAAM;IAAEC;EAAY,CAAC,GAAGJ,KAAK;EACzC,MAAMK,KAAK,GAAGL,KAAK,CAACM,QAAQ,CAAE;IAAEC,IAAI,EAAER;EAAK,CAAE,CAAC;EAE9C,MAAMS,eAAe,GAAGf,WAAW,CAChCgB,QAAgB,IACjBR,QAAQ,CAAIS,QAAc,KAAQ;IACjC,GAAGA,QAAQ;IACX,CAAER,EAAE,GAAIO;EACT,CAAC,CAAG,CAAC,EACN,CAAEP,EAAE,EAAED,QAAQ,CACf,CAAC;EAED,oBACCJ,IAAA,CAACL,WAAW;IACXmB,KAAK,EAAGR,MAAQ;IAChBC,WAAW,EAAGA,WAAa;IAC3BC,KAAK,EAAGA,KAAO;IACfJ,QAAQ,EAAGO,eAAiB;IAC5BI,qBAAqB;EAAA,CACrB,CAAC;AAEJ;AAEA,MAAMC,QAIL,GAAG;EACHC,IAAI,EAAEhB;AACP,CAAC;AAED,SAASiB,kBAAkBA,CAAUf,KAA8B,EAAG;EACrE,IAAK,CAAEA,KAAK,CAACgB,IAAI,EAAG;IACnB,OAAO,IAAI;EACZ;EAEA,IAAK,CAAEC,MAAM,CAACC,IAAI,CAAEL,QAAS,CAAC,CAACM,QAAQ,CAAEnB,KAAK,CAACgB,IAAK,CAAC,EAAG;IACvD,OAAO,IAAI;EACZ;EAEA,OAAOH,QAAQ,CAAEb,KAAK,CAACgB,IAAI,CAAE;AAC9B;AAEA,eAAe,SAASI,QAAQA,CAAU;EACzCrB,IAAI;EACJsB,MAAM;EACNC,IAAI;EACJrB;AACsB,CAAC,EAAG;EAC1B,MAAMsB,aAAa,GAAG7B,OAAO,CAC5B,MACCC,eAAe,CACd0B,MAAM,CAACG,MAAM,CACZ,CAAE;IAAEtB;EAAG,CAAC,KAAM,CAAC,CAAEoB,IAAI,CAACC,aAAa,EAAEJ,QAAQ,CAAEjB,EAAG,CACnD,CACD,CAAC,EACF,CAAEmB,MAAM,EAAEC,IAAI,CAACC,aAAa,CAC7B,CAAC;EAED,OAAOA,aAAa,CAACE,GAAG,CAAIzB,KAAK,IAAM;IACtC,MAAM0B,eAAe,GAAGX,kBAAkB,CAAEf,KAAM,CAAC;IACnD,OAAO0B,eAAe,gBACrB7B,IAAA,CAAC6B,eAAe;MAEf3B,IAAI,EAAGA,IAAM;MACbC,KAAK,EAAGA,KAAO;MACfC,QAAQ,EAAGA;IAAU,GAHfD,KAAK,CAACE,EAIZ,CAAC,GACC,IAAI;EACT,CAAE,CAAC;AACJ","ignoreList":[]}
@@ -6,7 +6,7 @@
6
6
  * WordPress dependencies
7
7
  */
8
8
  import { __experimentalHStack as HStack } from '@wordpress/components';
9
- import { useMemo, useState, useCallback } from '@wordpress/element';
9
+ import { useMemo, useState } from '@wordpress/element';
10
10
 
11
11
  /**
12
12
  * Internal dependencies
@@ -17,22 +17,13 @@ import Filters from './filters';
17
17
  import Search from './search';
18
18
  import { LAYOUT_TABLE, LAYOUT_GRID } from './constants';
19
19
  import { VIEW_LAYOUTS } from './layouts';
20
- import BulkActions from './bulk-actions';
20
+ import { default as BulkActions, useSomeItemHasAPossibleBulkAction } from './bulk-actions';
21
21
  import { normalizeFields } from './normalize-fields';
22
22
  import BulkActionsToolbar from './bulk-actions-toolbar';
23
23
  import { jsx as _jsx } from "react/jsx-runtime";
24
24
  import { jsxs as _jsxs } from "react/jsx-runtime";
25
25
  const defaultGetItemId = item => item.id;
26
26
  const defaultOnSelectionChange = () => {};
27
- function useSomeItemHasAPossibleBulkAction(actions, data) {
28
- return useMemo(() => {
29
- return data.some(item => {
30
- return actions.some(action => {
31
- return action.supportsBulk && (!action.isEligible || action.isEligible(item));
32
- });
33
- });
34
- }, [actions, data]);
35
- }
36
27
  export default function DataViews({
37
28
  view,
38
29
  onChangeView,
@@ -44,25 +35,21 @@ export default function DataViews({
44
35
  getItemId = defaultGetItemId,
45
36
  isLoading = false,
46
37
  paginationInfo,
47
- supportedLayouts,
38
+ defaultLayouts,
48
39
  selection: selectionProperty,
49
40
  setSelection: setSelectionProperty,
50
41
  onSelectionChange = defaultOnSelectionChange
51
42
  }) {
52
43
  const [selectionState, setSelectionState] = useState([]);
53
- let selection, setSelection;
54
- if (selectionProperty !== undefined && setSelectionProperty !== undefined) {
55
- selection = selectionProperty;
56
- setSelection = setSelectionProperty;
57
- } else {
58
- selection = selectionState;
59
- setSelection = setSelectionState;
60
- }
44
+ const isUncontrolled = selectionProperty === undefined || setSelectionProperty === undefined;
45
+ const selection = isUncontrolled ? selectionState : selectionProperty;
46
+ const setSelection = isUncontrolled ? setSelectionState : setSelectionProperty;
61
47
  const [openedFilter, setOpenedFilter] = useState(null);
62
- const onSetSelection = useCallback(items => {
63
- setSelection(items.map(item => getItemId(item)));
64
- onSelectionChange(items);
65
- }, [setSelection, getItemId, onSelectionChange]);
48
+ function setSelectionWithChange(value) {
49
+ const newValue = typeof value === 'function' ? value(selection) : value;
50
+ onSelectionChange(data.filter(item => newValue.includes(getItemId(item))));
51
+ return setSelection(value);
52
+ }
66
53
  const ViewComponent = VIEW_LAYOUTS.find(v => v.type === view.type)?.component;
67
54
  const _fields = useMemo(() => normalizeFields(fields), [fields]);
68
55
  const hasPossibleBulkAction = useSomeItemHasAPossibleBulkAction(actions, data);
@@ -93,14 +80,14 @@ export default function DataViews({
93
80
  }), [LAYOUT_TABLE, LAYOUT_GRID].includes(view.type) && hasPossibleBulkAction && /*#__PURE__*/_jsx(BulkActions, {
94
81
  actions: actions,
95
82
  data: data,
96
- onSelectionChange: onSetSelection,
83
+ onSelectionChange: setSelectionWithChange,
97
84
  selection: _selection,
98
85
  getItemId: getItemId
99
86
  }), /*#__PURE__*/_jsx(ViewActions, {
100
87
  fields: _fields,
101
88
  view: view,
102
89
  onChangeView: onChangeView,
103
- supportedLayouts: supportedLayouts
90
+ defaultLayouts: defaultLayouts
104
91
  })]
105
92
  }), /*#__PURE__*/_jsx(ViewComponent, {
106
93
  actions: actions,
@@ -109,7 +96,7 @@ export default function DataViews({
109
96
  getItemId: getItemId,
110
97
  isLoading: isLoading,
111
98
  onChangeView: onChangeView,
112
- onSelectionChange: onSetSelection,
99
+ onSelectionChange: setSelectionWithChange,
113
100
  selection: _selection,
114
101
  setOpenedFilter: setOpenedFilter,
115
102
  view: view
@@ -121,7 +108,7 @@ export default function DataViews({
121
108
  data: data,
122
109
  actions: actions,
123
110
  selection: _selection,
124
- onSelectionChange: onSetSelection,
111
+ onSelectionChange: setSelectionWithChange,
125
112
  getItemId: getItemId
126
113
  })]
127
114
  });
@@ -1 +1 @@
1
- {"version":3,"names":["__experimentalHStack","HStack","useMemo","useState","useCallback","Pagination","ViewActions","Filters","Search","LAYOUT_TABLE","LAYOUT_GRID","VIEW_LAYOUTS","BulkActions","normalizeFields","BulkActionsToolbar","jsx","_jsx","jsxs","_jsxs","defaultGetItemId","item","id","defaultOnSelectionChange","useSomeItemHasAPossibleBulkAction","actions","data","some","action","supportsBulk","isEligible","DataViews","view","onChangeView","fields","search","searchLabel","undefined","getItemId","isLoading","paginationInfo","supportedLayouts","selection","selectionProperty","setSelection","setSelectionProperty","onSelectionChange","selectionState","setSelectionState","openedFilter","setOpenedFilter","onSetSelection","items","map","ViewComponent","find","v","type","component","_fields","hasPossibleBulkAction","_selection","filter","className","children","alignment","justify","wrap","label","includes"],"sources":["@wordpress/dataviews/src/dataviews.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ComponentType } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __experimentalHStack as HStack } from '@wordpress/components';\nimport { useMemo, useState, useCallback } 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 { LAYOUT_TABLE, LAYOUT_GRID } from './constants';\nimport { VIEW_LAYOUTS } from './layouts';\nimport BulkActions from './bulk-actions';\nimport { normalizeFields } from './normalize-fields';\nimport BulkActionsToolbar from './bulk-actions-toolbar';\nimport type { Action, AnyItem, Field, View, ViewBaseProps } from './types';\n\ninterface DataViewsProps< Item extends AnyItem > {\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\tgetItemId?: ( item: Item ) => string;\n\tisLoading?: boolean;\n\tpaginationInfo: {\n\t\ttotalItems: number;\n\t\ttotalPages: number;\n\t};\n\tsupportedLayouts: string[];\n\tselection?: string[];\n\tsetSelection?: ( selection: string[] ) => void;\n\tonSelectionChange?: ( items: Item[] ) => void;\n}\n\nconst defaultGetItemId = ( item: AnyItem ) => item.id;\nconst defaultOnSelectionChange = () => {};\n\nfunction useSomeItemHasAPossibleBulkAction< Item extends AnyItem >(\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\nexport default function DataViews< Item extends AnyItem >( {\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\tselection: selectionProperty,\n\tsetSelection: setSelectionProperty,\n\tonSelectionChange = defaultOnSelectionChange,\n}: DataViewsProps< Item > ) {\n\tconst [ selectionState, setSelectionState ] = useState< string[] >( [] );\n\tlet selection, setSelection;\n\tif (\n\t\tselectionProperty !== undefined &&\n\t\tsetSelectionProperty !== undefined\n\t) {\n\t\tselection = selectionProperty;\n\t\tsetSelection = setSelectionProperty;\n\t} else {\n\t\tselection = selectionState;\n\t\tsetSelection = setSelectionState;\n\t}\n\tconst [ openedFilter, setOpenedFilter ] = useState< string | null >( null );\n\n\tconst onSetSelection = useCallback(\n\t\t( items: Item[] ) => {\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( ( v ) => v.type === view.type )\n\t\t?.component as ComponentType< ViewBaseProps< Item > >;\n\tconst _fields = useMemo( () => normalizeFields( fields ), [ fields ] );\n\n\tconst hasPossibleBulkAction = useSomeItemHasAPossibleBulkAction(\n\t\tactions,\n\t\tdata\n\t);\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\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\tactions={ actions }\n\t\t\t\tdata={ data }\n\t\t\t\tfields={ _fields }\n\t\t\t\tgetItemId={ getItemId }\n\t\t\t\tisLoading={ isLoading }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\tonSelectionChange={ onSetSelection }\n\t\t\t\tselection={ _selection }\n\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\tview={ view }\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\t{ [ LAYOUT_TABLE, LAYOUT_GRID ].includes( view.type ) &&\n\t\t\t\thasPossibleBulkAction && (\n\t\t\t\t\t<BulkActionsToolbar\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\tselection={ _selection }\n\t\t\t\t\t\tonSelectionChange={ onSetSelection }\n\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__experimentalHStack","HStack","useMemo","useState","Pagination","ViewActions","Filters","Search","LAYOUT_TABLE","LAYOUT_GRID","VIEW_LAYOUTS","default","BulkActions","useSomeItemHasAPossibleBulkAction","normalizeFields","BulkActionsToolbar","jsx","_jsx","jsxs","_jsxs","defaultGetItemId","item","id","defaultOnSelectionChange","DataViews","view","onChangeView","fields","search","searchLabel","undefined","actions","data","getItemId","isLoading","paginationInfo","defaultLayouts","selection","selectionProperty","setSelection","setSelectionProperty","onSelectionChange","selectionState","setSelectionState","isUncontrolled","openedFilter","setOpenedFilter","setSelectionWithChange","value","newValue","filter","includes","ViewComponent","find","v","type","component","_fields","hasPossibleBulkAction","_selection","some","className","children","alignment","justify","wrap","label"],"sources":["@wordpress/dataviews/src/dataviews.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ComponentType } 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 Pagination from './pagination';\nimport ViewActions from './view-actions';\nimport Filters from './filters';\nimport Search from './search';\nimport { LAYOUT_TABLE, LAYOUT_GRID } from './constants';\nimport { VIEW_LAYOUTS } from './layouts';\nimport {\n\tdefault as BulkActions,\n\tuseSomeItemHasAPossibleBulkAction,\n} from './bulk-actions';\nimport { normalizeFields } from './normalize-fields';\nimport BulkActionsToolbar from './bulk-actions-toolbar';\nimport type {\n\tAction,\n\tField,\n\tView,\n\tViewBaseProps,\n\tSupportedLayouts,\n} from './types';\nimport type { SetSelection, 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\tsetSelection?: SetSelection;\n\tonSelectionChange?: ( items: Item[] ) => void;\n} & ( Item extends ItemWithId\n\t? { getItemId?: ( item: Item ) => string }\n\t: { getItemId: ( item: Item ) => string } );\n\nconst defaultGetItemId = ( item: ItemWithId ) => item.id;\n\nconst defaultOnSelectionChange = () => {};\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\tsetSelection: setSelectionProperty,\n\tonSelectionChange = defaultOnSelectionChange,\n}: DataViewsProps< Item > ) {\n\tconst [ selectionState, setSelectionState ] = useState< string[] >( [] );\n\tconst isUncontrolled =\n\t\tselectionProperty === undefined || setSelectionProperty === undefined;\n\tconst selection = isUncontrolled ? selectionState : selectionProperty;\n\tconst setSelection = isUncontrolled\n\t\t? setSelectionState\n\t\t: setSelectionProperty;\n\tconst [ openedFilter, setOpenedFilter ] = useState< string | null >( null );\n\n\tfunction setSelectionWithChange( value: SelectionOrUpdater ) {\n\t\tconst newValue =\n\t\t\ttypeof value === 'function' ? value( selection ) : value;\n\t\tonSelectionChange(\n\t\t\tdata.filter( ( item ) => newValue.includes( getItemId( item ) ) )\n\t\t);\n\t\treturn setSelection( value );\n\t}\n\n\tconst ViewComponent = VIEW_LAYOUTS.find( ( v ) => v.type === view.type )\n\t\t?.component as ComponentType< ViewBaseProps< Item > >;\n\tconst _fields = useMemo( () => normalizeFields( fields ), [ fields ] );\n\n\tconst hasPossibleBulkAction = useSomeItemHasAPossibleBulkAction(\n\t\tactions,\n\t\tdata\n\t);\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\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={ setSelectionWithChange }\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\tdefaultLayouts={ defaultLayouts }\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t\t<ViewComponent\n\t\t\t\tactions={ actions }\n\t\t\t\tdata={ data }\n\t\t\t\tfields={ _fields }\n\t\t\t\tgetItemId={ getItemId }\n\t\t\t\tisLoading={ isLoading }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\tonSelectionChange={ setSelectionWithChange }\n\t\t\t\tselection={ _selection }\n\t\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\t\tview={ view }\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\t{ [ LAYOUT_TABLE, LAYOUT_GRID ].includes( view.type ) &&\n\t\t\t\thasPossibleBulkAction && (\n\t\t\t\t\t<BulkActionsToolbar\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\tselection={ _selection }\n\t\t\t\t\t\tonSelectionChange={ setSelectionWithChange }\n\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -45,7 +45,7 @@ export function filterSortAndPaginate(data, view, fields) {
45
45
  }).some(field => field.includes(normalizedSearch));
46
46
  });
47
47
  }
48
- if (view.filters.length > 0) {
48
+ if (view.filters && view.filters?.length > 0) {
49
49
  view.filters.forEach(filter => {
50
50
  const field = _fields.find(_field => _field.id === filter.field);
51
51
  if (field) {
@@ -121,6 +121,9 @@ export function filterSortAndPaginate(data, view, fields) {
121
121
  const valueB = (_fieldToSort$getValue2 = fieldToSort.getValue({
122
122
  item: b
123
123
  })) !== null && _fieldToSort$getValue2 !== void 0 ? _fieldToSort$getValue2 : '';
124
+ if (typeof valueA === 'number' && typeof valueB === 'number') {
125
+ return view.sort?.direction === 'asc' ? valueA - valueB : valueB - valueA;
126
+ }
124
127
  return view.sort?.direction === 'asc' ? valueA.localeCompare(valueB) : valueB.localeCompare(valueA);
125
128
  });
126
129
  }
@@ -1 +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","page","undefined","perPage","start","Math","ceil","slice"],"sources":["@wordpress/dataviews/src/filter-and-sort-data-view.ts"],"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';\nimport type { Field, AnyItem, View } from './types';\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 data Raw data.\n * @param view View config.\n * @param fields Fields config.\n *\n * @return Filtered, sorted and paginated data.\n */\nexport function filterSortAndPaginate< Item extends AnyItem >(\n\tdata: Item[],\n\tview: View,\n\tfields: Field< Item >[]\n): {\n\tdata: Item[];\n\tpaginationInfo: { totalItems: number; totalPages: number };\n} {\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 ( field ) {\n\t\t\t\tif (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_ANY &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\tif ( Array.isArray( fieldValue ) ) {\n\t\t\t\t\t\t\treturn filter.value.some( ( filterValue: any ) =>\n\t\t\t\t\t\t\t\tfieldValue.includes( filterValue )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( typeof fieldValue === 'string' ) {\n\t\t\t\t\t\t\treturn filter.value.includes( fieldValue );\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_NONE &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\tif ( Array.isArray( fieldValue ) ) {\n\t\t\t\t\t\t\treturn ! filter.value.some( ( filterValue: any ) =>\n\t\t\t\t\t\t\t\tfieldValue.includes( filterValue )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( typeof fieldValue === 'string' ) {\n\t\t\t\t\t\t\treturn ! filter.value.includes( fieldValue );\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_ALL &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value.every( ( value: any ) => {\n\t\t\t\t\t\t\treturn field\n\t\t\t\t\t\t\t\t.getValue( { item } )\n\t\t\t\t\t\t\t\t?.includes( value );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_NOT_ALL &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value.every( ( value: any ) => {\n\t\t\t\t\t\t\treturn ! field\n\t\t\t\t\t\t\t\t.getValue( { item } )\n\t\t\t\t\t\t\t\t?.includes( value );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t} else if ( filter.operator === OPERATOR_IS ) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value === field.getValue( { item } );\n\t\t\t\t\t} );\n\t\t\t\t} else if ( filter.operator === OPERATOR_IS_NOT ) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value !== field.getValue( { item } );\n\t\t\t\t\t} );\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\tif ( fieldToSort ) {\n\t\t\tfilteredData.sort( ( a, b ) => {\n\t\t\t\tconst valueA = fieldToSort.getValue( { item: a } ) ?? '';\n\t\t\t\tconst valueB = fieldToSort.getValue( { item: b } ) ?? '';\n\t\t\t\treturn view.sort?.direction === 'asc'\n\t\t\t\t\t? valueA.localeCompare( valueB )\n\t\t\t\t\t: valueB.localeCompare( valueA );\n\t\t\t} );\n\t\t}\n\t}\n\n\t// Handle pagination.\n\tlet totalItems = filteredData.length;\n\tlet totalPages = 1;\n\tif ( view.page !== undefined && view.perPage !== undefined ) {\n\t\tconst start = ( view.page - 1 ) * view.perPage;\n\t\ttotalItems = filteredData?.length || 0;\n\t\ttotalPages = Math.ceil( totalItems / view.perPage );\n\t\tfilteredData = filteredData?.slice( start, start + view.perPage );\n\t}\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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","ignoreList":[]}
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","page","undefined","perPage","start","Math","ceil","slice"],"sources":["@wordpress/dataviews/src/filter-and-sort-data-view.ts"],"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';\nimport type { Field, View } from './types';\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 data Raw data.\n * @param view View config.\n * @param fields Fields config.\n *\n * @return Filtered, sorted and paginated data.\n */\nexport function filterSortAndPaginate< Item >(\n\tdata: Item[],\n\tview: View,\n\tfields: Field< Item >[]\n): {\n\tdata: Item[];\n\tpaginationInfo: { totalItems: number; totalPages: number };\n} {\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 && 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 ( field ) {\n\t\t\t\tif (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_ANY &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\tif ( Array.isArray( fieldValue ) ) {\n\t\t\t\t\t\t\treturn filter.value.some( ( filterValue: any ) =>\n\t\t\t\t\t\t\t\tfieldValue.includes( filterValue )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( typeof fieldValue === 'string' ) {\n\t\t\t\t\t\t\treturn filter.value.includes( fieldValue );\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_NONE &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\tif ( Array.isArray( fieldValue ) ) {\n\t\t\t\t\t\t\treturn ! filter.value.some( ( filterValue: any ) =>\n\t\t\t\t\t\t\t\tfieldValue.includes( filterValue )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( typeof fieldValue === 'string' ) {\n\t\t\t\t\t\t\treturn ! filter.value.includes( fieldValue );\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_ALL &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value.every( ( value: any ) => {\n\t\t\t\t\t\t\treturn field\n\t\t\t\t\t\t\t\t.getValue( { item } )\n\t\t\t\t\t\t\t\t?.includes( value );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_NOT_ALL &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value.every( ( value: any ) => {\n\t\t\t\t\t\t\treturn ! field\n\t\t\t\t\t\t\t\t.getValue( { item } )\n\t\t\t\t\t\t\t\t?.includes( value );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t} else if ( filter.operator === OPERATOR_IS ) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value === field.getValue( { item } );\n\t\t\t\t\t} );\n\t\t\t\t} else if ( filter.operator === OPERATOR_IS_NOT ) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value !== field.getValue( { item } );\n\t\t\t\t\t} );\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\tif ( fieldToSort ) {\n\t\t\tfilteredData.sort( ( a, b ) => {\n\t\t\t\tconst valueA = fieldToSort.getValue( { item: a } ) ?? '';\n\t\t\t\tconst valueB = fieldToSort.getValue( { item: b } ) ?? '';\n\n\t\t\t\tif (\n\t\t\t\t\ttypeof valueA === 'number' &&\n\t\t\t\t\ttypeof valueB === 'number'\n\t\t\t\t) {\n\t\t\t\t\treturn view.sort?.direction === 'asc'\n\t\t\t\t\t\t? valueA - valueB\n\t\t\t\t\t\t: valueB - valueA;\n\t\t\t\t}\n\n\t\t\t\treturn view.sort?.direction === 'asc'\n\t\t\t\t\t? valueA.localeCompare( valueB )\n\t\t\t\t\t: valueB.localeCompare( valueA );\n\t\t\t} );\n\t\t}\n\t}\n\n\t// Handle pagination.\n\tlet totalItems = filteredData.length;\n\tlet totalPages = 1;\n\tif ( view.page !== undefined && view.perPage !== undefined ) {\n\t\tconst start = ( view.page - 1 ) * view.perPage;\n\t\ttotalItems = filteredData?.length || 0;\n\t\ttotalPages = Math.ceil( totalItems / view.perPage );\n\t\tfilteredData = filteredData?.slice( start, start + view.perPage );\n\t}\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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","ignoreList":[]}
@@ -71,7 +71,7 @@ function OperatorSelector({
71
71
  value: operator,
72
72
  label: OPERATORS[operator]?.label
73
73
  }));
74
- const currentFilter = view.filters.find(_filter => _filter.field === filter.field);
74
+ const currentFilter = view.filters?.find(_filter => _filter.field === filter.field);
75
75
  const value = currentFilter?.operator || filter.operators[0];
76
76
  return operatorOptions.length > 1 && /*#__PURE__*/_jsxs(HStack, {
77
77
  spacing: 2,
@@ -85,8 +85,9 @@ function OperatorSelector({
85
85
  value: value,
86
86
  options: operatorOptions,
87
87
  onChange: newValue => {
88
+ var _view$filters, _view$filters2;
88
89
  const operator = newValue;
89
- const newFilters = currentFilter ? [...view.filters.map(_filter => {
90
+ const newFilters = currentFilter ? [...((_view$filters = view.filters) !== null && _view$filters !== void 0 ? _view$filters : []).map(_filter => {
90
91
  if (_filter.field === filter.field) {
91
92
  return {
92
93
  ..._filter,
@@ -94,7 +95,7 @@ function OperatorSelector({
94
95
  };
95
96
  }
96
97
  return _filter;
97
- })] : [...view.filters, {
98
+ })] : [...((_view$filters2 = view.filters) !== null && _view$filters2 !== void 0 ? _view$filters2 : []), {
98
99
  field: filter.field,
99
100
  operator,
100
101
  value: undefined
@@ -122,7 +123,7 @@ export default function FilterSummary({
122
123
  view,
123
124
  onChangeView
124
125
  } = commonProps;
125
- const filterInView = view.filters.find(f => f.field === filter.field);
126
+ const filterInView = view.filters?.find(f => f.field === filter.field);
126
127
  const activeElements = filter.elements.filter(element => {
127
128
  if (filter.singleSelection) {
128
129
  return element.value === filterInView?.value;
@@ -185,7 +186,7 @@ export default function FilterSummary({
185
186
  onChangeView({
186
187
  ...view,
187
188
  page: 1,
188
- filters: view.filters.filter(_filter => _filter.field !== filter.field)
189
+ filters: view.filters?.filter(_filter => _filter.field !== filter.field)
189
190
  });
190
191
  // If the filter is not primary and can be removed, it will be added
191
192
  // back to the available filters from `Add filter` component.
@@ -1 +1 @@
1
- {"version":3,"names":["clsx","Dropdown","__experimentalVStack","VStack","__experimentalHStack","HStack","FlexItem","SelectControl","Tooltip","Icon","__","sprintf","useRef","createInterpolateElement","closeSmall","ENTER","SPACE","SearchWidget","OPERATORS","OPERATOR_IS","OPERATOR_IS_NOT","OPERATOR_IS_ANY","OPERATOR_IS_NONE","OPERATOR_IS_ALL","OPERATOR_IS_NOT_ALL","jsx","_jsx","jsxs","_jsxs","FilterText","activeElements","filterInView","filter","undefined","length","name","filterTextWrappers","Name","className","Value","operator","map","element","label","join","OperatorSelector","view","onChangeView","operatorOptions","operators","value","currentFilter","filters","find","_filter","field","spacing","justify","children","options","onChange","newValue","newFilters","page","size","__nextHasNoMarginBottom","hideLabelFromVision","FilterSummary","addFilterRef","openedFilter","commonProps","toggleRef","f","elements","singleSelection","includes","isPrimary","hasValues","canResetOrRemove","defaultOpen","contentClassName","popoverProps","placement","role","onClose","current","focus","renderToggle","isOpen","onToggle","text","toLowerCase","tabIndex","onClick","onKeyDown","event","key","preventDefault","ref","icon","renderContent"],"sources":["@wordpress/dataviews/src/filter-summary.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport type { RefObject } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tDropdown,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\tFlexItem,\n\tSelectControl,\n\tTooltip,\n\tIcon,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useRef, createInterpolateElement } from '@wordpress/element';\nimport { closeSmall } from '@wordpress/icons';\n\nconst ENTER = 'Enter';\nconst SPACE = ' ';\n\n/**\n * Internal dependencies\n */\nimport SearchWidget from './search-widget';\nimport {\n\tOPERATORS,\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} from './constants';\nimport type { Filter, NormalizedFilter, Operator, Option, View } from './types';\n\ninterface FilterTextProps {\n\tactiveElements: Option[];\n\tfilterInView?: Filter;\n\tfilter: NormalizedFilter;\n}\n\ninterface OperatorSelectorProps {\n\tfilter: NormalizedFilter;\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n}\n\ninterface FilterSummaryProps extends OperatorSelectorProps {\n\taddFilterRef: RefObject< HTMLButtonElement >;\n\topenedFilter: string | null;\n}\n\nconst FilterText = ( {\n\tactiveElements,\n\tfilterInView,\n\tfilter,\n}: FilterTextProps ) => {\n\tif ( activeElements === undefined || activeElements.length === 0 ) {\n\t\treturn filter.name;\n\t}\n\n\tconst filterTextWrappers = {\n\t\tName: <span className=\"dataviews-filter-summary__filter-text-name\" />,\n\t\tValue: <span className=\"dataviews-filter-summary__filter-text-value\" />,\n\t};\n\n\tif ( filterInView?.operator === OPERATOR_IS_ANY ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is any: Admin, Editor\". */\n\t\t\t\t__( '<Name>%1$s is any: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements.map( ( element ) => element.label ).join( ', ' )\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IS_NONE ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is none: Admin, Editor\". */\n\t\t\t\t__( '<Name>%1$s is none: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements.map( ( element ) => element.label ).join( ', ' )\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IS_ALL ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is all: Admin, Editor\". */\n\t\t\t\t__( '<Name>%1$s is all: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements.map( ( element ) => element.label ).join( ', ' )\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IS_NOT_ALL ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is not all: Admin, Editor\". */\n\t\t\t\t__( '<Name>%1$s is not all: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements.map( ( element ) => element.label ).join( ', ' )\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IS ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is: Admin\". */\n\t\t\t\t__( '<Name>%1$s is: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IS_NOT ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is not: Admin\". */\n\t\t\t\t__( '<Name>%1$s is not: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\treturn sprintf(\n\t\t/* translators: 1: Filter name e.g.: \"Unknown status for Author\". */\n\t\t__( 'Unknown status for %1$s' ),\n\t\tfilter.name\n\t);\n};\n\nfunction OperatorSelector( {\n\tfilter,\n\tview,\n\tonChangeView,\n}: OperatorSelectorProps ) {\n\tconst operatorOptions = filter.operators?.map( ( operator ) => ( {\n\t\tvalue: operator,\n\t\tlabel: OPERATORS[ operator ]?.label,\n\t} ) );\n\tconst currentFilter = view.filters.find(\n\t\t( _filter ) => _filter.field === filter.field\n\t);\n\tconst value = currentFilter?.operator || filter.operators[ 0 ];\n\treturn (\n\t\toperatorOptions.length > 1 && (\n\t\t\t<HStack\n\t\t\t\tspacing={ 2 }\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t\tclassName=\"dataviews-filter-summary__operators-container\"\n\t\t\t>\n\t\t\t\t<FlexItem className=\"dataviews-filter-summary__operators-filter-name\">\n\t\t\t\t\t{ filter.name }\n\t\t\t\t</FlexItem>\n\n\t\t\t\t<SelectControl\n\t\t\t\t\tlabel={ __( 'Conditions' ) }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\toptions={ operatorOptions }\n\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\tconst operator = newValue as Operator;\n\t\t\t\t\t\tconst newFilters = currentFilter\n\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t...view.filters.map( ( _filter ) => {\n\t\t\t\t\t\t\t\t\t\tif ( _filter.field === filter.field ) {\n\t\t\t\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t\t\t\t..._filter,\n\t\t\t\t\t\t\t\t\t\t\t\toperator,\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\treturn _filter;\n\t\t\t\t\t\t\t\t\t} ),\n\t\t\t\t\t\t\t ]\n\t\t\t\t\t\t\t: [\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\toperator,\n\t\t\t\t\t\t\t\t\t\tvalue: undefined,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t ];\n\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\tfilters: newFilters,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\thideLabelFromVision\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t)\n\t);\n}\n\nexport default function FilterSummary( {\n\taddFilterRef,\n\topenedFilter,\n\t...commonProps\n}: FilterSummaryProps ) {\n\tconst toggleRef = useRef< HTMLDivElement >( null );\n\tconst { filter, view, onChangeView } = commonProps;\n\tconst filterInView = view.filters.find( ( f ) => f.field === filter.field );\n\tconst activeElements = filter.elements.filter( ( element ) => {\n\t\tif ( filter.singleSelection ) {\n\t\t\treturn element.value === filterInView?.value;\n\t\t}\n\t\treturn filterInView?.value?.includes( element.value );\n\t} );\n\tconst isPrimary = filter.isPrimary;\n\tconst hasValues = filterInView?.value !== undefined;\n\tconst canResetOrRemove = ! isPrimary || hasValues;\n\treturn (\n\t\t<Dropdown\n\t\t\tdefaultOpen={ openedFilter === filter.field }\n\t\t\tcontentClassName=\"dataviews-filter-summary__popover\"\n\t\t\tpopoverProps={ { placement: 'bottom-start', role: 'dialog' } }\n\t\t\tonClose={ () => {\n\t\t\t\ttoggleRef.current?.focus();\n\t\t\t} }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<div className=\"dataviews-filter-summary__chip-container\">\n\t\t\t\t\t<Tooltip\n\t\t\t\t\t\ttext={ sprintf(\n\t\t\t\t\t\t\t/* translators: 1: Filter name. */\n\t\t\t\t\t\t\t__( 'Filter by: %1$s' ),\n\t\t\t\t\t\t\tfilter.name.toLowerCase()\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t'dataviews-filter-summary__chip',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t'has-reset': canResetOrRemove,\n\t\t\t\t\t\t\t\t\t'has-values': hasValues,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\t\ttabIndex={ 0 }\n\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\tif ( [ ENTER, SPACE ].includes( event.key ) ) {\n\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taria-pressed={ isOpen }\n\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\tref={ toggleRef }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<FilterText\n\t\t\t\t\t\t\t\tactiveElements={ activeElements }\n\t\t\t\t\t\t\t\tfilterInView={ filterInView }\n\t\t\t\t\t\t\t\tfilter={ filter }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t\t{ canResetOrRemove && (\n\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\ttext={ isPrimary ? __( 'Reset' ) : __( 'Remove' ) }\n\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'dataviews-filter-summary__chip-remove',\n\t\t\t\t\t\t\t\t\t{ 'has-values': hasValues }\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t\t\t\tfilters: view.filters.filter(\n\t\t\t\t\t\t\t\t\t\t\t( _filter ) =>\n\t\t\t\t\t\t\t\t\t\t\t\t_filter.field !== filter.field\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// If the filter is not primary and can be removed, it will be added\n\t\t\t\t\t\t\t\t\t// back to the available filters from `Add filter` component.\n\t\t\t\t\t\t\t\t\tif ( ! isPrimary ) {\n\t\t\t\t\t\t\t\t\t\taddFilterRef.current?.focus();\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t// If is primary, focus the toggle button.\n\t\t\t\t\t\t\t\t\t\ttoggleRef.current?.focus();\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\t\t<Icon icon={ closeSmall } />\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\trenderContent={ () => {\n\t\t\t\treturn (\n\t\t\t\t\t<VStack spacing={ 0 } justify=\"flex-start\">\n\t\t\t\t\t\t<OperatorSelector { ...commonProps } />\n\t\t\t\t\t\t<SearchWidget { ...commonProps } />\n\t\t\t\t\t</VStack>\n\t\t\t\t);\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clsx","Dropdown","__experimentalVStack","VStack","__experimentalHStack","HStack","FlexItem","SelectControl","Tooltip","Icon","__","sprintf","useRef","createInterpolateElement","closeSmall","ENTER","SPACE","SearchWidget","OPERATORS","OPERATOR_IS","OPERATOR_IS_NOT","OPERATOR_IS_ANY","OPERATOR_IS_NONE","OPERATOR_IS_ALL","OPERATOR_IS_NOT_ALL","jsx","_jsx","jsxs","_jsxs","FilterText","activeElements","filterInView","filter","undefined","length","name","filterTextWrappers","Name","className","Value","operator","map","element","label","join","OperatorSelector","view","onChangeView","operatorOptions","operators","value","currentFilter","filters","find","_filter","field","spacing","justify","children","options","onChange","newValue","_view$filters","_view$filters2","newFilters","page","size","__nextHasNoMarginBottom","hideLabelFromVision","FilterSummary","addFilterRef","openedFilter","commonProps","toggleRef","f","elements","singleSelection","includes","isPrimary","hasValues","canResetOrRemove","defaultOpen","contentClassName","popoverProps","placement","role","onClose","current","focus","renderToggle","isOpen","onToggle","text","toLowerCase","tabIndex","onClick","onKeyDown","event","key","preventDefault","ref","icon","renderContent"],"sources":["@wordpress/dataviews/src/filter-summary.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport type { RefObject } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tDropdown,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\tFlexItem,\n\tSelectControl,\n\tTooltip,\n\tIcon,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useRef, createInterpolateElement } from '@wordpress/element';\nimport { closeSmall } from '@wordpress/icons';\n\nconst ENTER = 'Enter';\nconst SPACE = ' ';\n\n/**\n * Internal dependencies\n */\nimport SearchWidget from './search-widget';\nimport {\n\tOPERATORS,\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} from './constants';\nimport type { Filter, NormalizedFilter, Operator, Option, View } from './types';\n\ninterface FilterTextProps {\n\tactiveElements: Option[];\n\tfilterInView?: Filter;\n\tfilter: NormalizedFilter;\n}\n\ninterface OperatorSelectorProps {\n\tfilter: NormalizedFilter;\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n}\n\ninterface FilterSummaryProps extends OperatorSelectorProps {\n\taddFilterRef: RefObject< HTMLButtonElement >;\n\topenedFilter: string | null;\n}\n\nconst FilterText = ( {\n\tactiveElements,\n\tfilterInView,\n\tfilter,\n}: FilterTextProps ) => {\n\tif ( activeElements === undefined || activeElements.length === 0 ) {\n\t\treturn filter.name;\n\t}\n\n\tconst filterTextWrappers = {\n\t\tName: <span className=\"dataviews-filter-summary__filter-text-name\" />,\n\t\tValue: <span className=\"dataviews-filter-summary__filter-text-value\" />,\n\t};\n\n\tif ( filterInView?.operator === OPERATOR_IS_ANY ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is any: Admin, Editor\". */\n\t\t\t\t__( '<Name>%1$s is any: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements.map( ( element ) => element.label ).join( ', ' )\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IS_NONE ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is none: Admin, Editor\". */\n\t\t\t\t__( '<Name>%1$s is none: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements.map( ( element ) => element.label ).join( ', ' )\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IS_ALL ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is all: Admin, Editor\". */\n\t\t\t\t__( '<Name>%1$s is all: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements.map( ( element ) => element.label ).join( ', ' )\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IS_NOT_ALL ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is not all: Admin, Editor\". */\n\t\t\t\t__( '<Name>%1$s is not all: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements.map( ( element ) => element.label ).join( ', ' )\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IS ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is: Admin\". */\n\t\t\t\t__( '<Name>%1$s is: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\tif ( filterInView?.operator === OPERATOR_IS_NOT ) {\n\t\treturn createInterpolateElement(\n\t\t\tsprintf(\n\t\t\t\t/* translators: 1: Filter name. 3: Filter value. e.g.: \"Author is not: Admin\". */\n\t\t\t\t__( '<Name>%1$s is not: </Name><Value>%2$s</Value>' ),\n\t\t\t\tfilter.name,\n\t\t\t\tactiveElements[ 0 ].label\n\t\t\t),\n\t\t\tfilterTextWrappers\n\t\t);\n\t}\n\n\treturn sprintf(\n\t\t/* translators: 1: Filter name e.g.: \"Unknown status for Author\". */\n\t\t__( 'Unknown status for %1$s' ),\n\t\tfilter.name\n\t);\n};\n\nfunction OperatorSelector( {\n\tfilter,\n\tview,\n\tonChangeView,\n}: OperatorSelectorProps ) {\n\tconst operatorOptions = filter.operators?.map( ( operator ) => ( {\n\t\tvalue: operator,\n\t\tlabel: OPERATORS[ operator ]?.label,\n\t} ) );\n\tconst currentFilter = view.filters?.find(\n\t\t( _filter ) => _filter.field === filter.field\n\t);\n\tconst value = currentFilter?.operator || filter.operators[ 0 ];\n\treturn (\n\t\toperatorOptions.length > 1 && (\n\t\t\t<HStack\n\t\t\t\tspacing={ 2 }\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t\tclassName=\"dataviews-filter-summary__operators-container\"\n\t\t\t>\n\t\t\t\t<FlexItem className=\"dataviews-filter-summary__operators-filter-name\">\n\t\t\t\t\t{ filter.name }\n\t\t\t\t</FlexItem>\n\n\t\t\t\t<SelectControl\n\t\t\t\t\tlabel={ __( 'Conditions' ) }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\toptions={ operatorOptions }\n\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\tconst operator = newValue as Operator;\n\t\t\t\t\t\tconst newFilters = currentFilter\n\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t...( view.filters ?? [] ).map(\n\t\t\t\t\t\t\t\t\t\t( _filter ) => {\n\t\t\t\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t\t\t\t_filter.field === filter.field\n\t\t\t\t\t\t\t\t\t\t\t) {\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..._filter,\n\t\t\t\t\t\t\t\t\t\t\t\t\toperator,\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\treturn _filter;\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 ]\n\t\t\t\t\t\t\t: [\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\toperator,\n\t\t\t\t\t\t\t\t\t\tvalue: undefined,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t ];\n\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\tfilters: newFilters,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\thideLabelFromVision\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t)\n\t);\n}\n\nexport default function FilterSummary( {\n\taddFilterRef,\n\topenedFilter,\n\t...commonProps\n}: FilterSummaryProps ) {\n\tconst toggleRef = useRef< HTMLDivElement >( null );\n\tconst { filter, view, onChangeView } = commonProps;\n\tconst filterInView = view.filters?.find(\n\t\t( f ) => f.field === filter.field\n\t);\n\tconst activeElements = filter.elements.filter( ( element ) => {\n\t\tif ( filter.singleSelection ) {\n\t\t\treturn element.value === filterInView?.value;\n\t\t}\n\t\treturn filterInView?.value?.includes( element.value );\n\t} );\n\tconst isPrimary = filter.isPrimary;\n\tconst hasValues = filterInView?.value !== undefined;\n\tconst canResetOrRemove = ! isPrimary || hasValues;\n\treturn (\n\t\t<Dropdown\n\t\t\tdefaultOpen={ openedFilter === filter.field }\n\t\t\tcontentClassName=\"dataviews-filter-summary__popover\"\n\t\t\tpopoverProps={ { placement: 'bottom-start', role: 'dialog' } }\n\t\t\tonClose={ () => {\n\t\t\t\ttoggleRef.current?.focus();\n\t\t\t} }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<div className=\"dataviews-filter-summary__chip-container\">\n\t\t\t\t\t<Tooltip\n\t\t\t\t\t\ttext={ sprintf(\n\t\t\t\t\t\t\t/* translators: 1: Filter name. */\n\t\t\t\t\t\t\t__( 'Filter by: %1$s' ),\n\t\t\t\t\t\t\tfilter.name.toLowerCase()\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t'dataviews-filter-summary__chip',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t'has-reset': canResetOrRemove,\n\t\t\t\t\t\t\t\t\t'has-values': hasValues,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\t\ttabIndex={ 0 }\n\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\tif ( [ ENTER, SPACE ].includes( event.key ) ) {\n\t\t\t\t\t\t\t\t\tonToggle();\n\t\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taria-pressed={ isOpen }\n\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\tref={ toggleRef }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<FilterText\n\t\t\t\t\t\t\t\tactiveElements={ activeElements }\n\t\t\t\t\t\t\t\tfilterInView={ filterInView }\n\t\t\t\t\t\t\t\tfilter={ filter }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Tooltip>\n\t\t\t\t\t{ canResetOrRemove && (\n\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\ttext={ isPrimary ? __( 'Reset' ) : __( 'Remove' ) }\n\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'dataviews-filter-summary__chip-remove',\n\t\t\t\t\t\t\t\t\t{ 'has-values': hasValues }\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\tpage: 1,\n\t\t\t\t\t\t\t\t\t\tfilters: view.filters?.filter(\n\t\t\t\t\t\t\t\t\t\t\t( _filter ) =>\n\t\t\t\t\t\t\t\t\t\t\t\t_filter.field !== filter.field\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// If the filter is not primary and can be removed, it will be added\n\t\t\t\t\t\t\t\t\t// back to the available filters from `Add filter` component.\n\t\t\t\t\t\t\t\t\tif ( ! isPrimary ) {\n\t\t\t\t\t\t\t\t\t\taddFilterRef.current?.focus();\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t// If is primary, focus the toggle button.\n\t\t\t\t\t\t\t\t\t\ttoggleRef.current?.focus();\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\t\t<Icon icon={ closeSmall } />\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\trenderContent={ () => {\n\t\t\t\treturn (\n\t\t\t\t\t<VStack spacing={ 0 } justify=\"flex-start\">\n\t\t\t\t\t\t<OperatorSelector { ...commonProps } />\n\t\t\t\t\t\t<SearchWidget { ...commonProps } />\n\t\t\t\t\t</VStack>\n\t\t\t\t);\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -37,7 +37,7 @@ function _Filters({
37
37
  elements: field.elements,
38
38
  singleSelection: operators.some(op => [OPERATOR_IS, OPERATOR_IS_NOT].includes(op)),
39
39
  operators,
40
- isVisible: isPrimary || view.filters.some(f => f.field === field.id && ALL_OPERATORS.includes(f.operator)),
40
+ isVisible: isPrimary || !!view.filters?.some(f => f.field === field.id && ALL_OPERATORS.includes(f.operator)),
41
41
  isPrimary
42
42
  });
43
43
  });
@@ -1 +1 @@
1
- {"version":3,"names":["memo","useRef","__experimentalHStack","HStack","FilterSummary","AddFilter","ResetFilters","sanitizeOperators","ALL_OPERATORS","OPERATOR_IS","OPERATOR_IS_NOT","jsx","_jsx","_Filters","fields","view","onChangeView","openedFilter","setOpenedFilter","addFilterRef","filters","forEach","field","elements","length","operators","isPrimary","filterBy","push","id","name","header","singleSelection","some","op","includes","isVisible","f","operator","sort","a","b","localeCompare","addFilter","ref","filterComponents","map","filter","justify","style","width","wrap","children","Filters"],"sources":["@wordpress/dataviews/src/filters.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { memo, useRef } from '@wordpress/element';\nimport { __experimentalHStack as HStack } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport FilterSummary from './filter-summary';\nimport AddFilter from './add-filter';\nimport ResetFilters from './reset-filters';\nimport { sanitizeOperators } from './utils';\nimport { ALL_OPERATORS, OPERATOR_IS, OPERATOR_IS_NOT } from './constants';\nimport type { AnyItem, NormalizedField, NormalizedFilter, View } from './types';\n\ninterface FiltersProps< Item extends AnyItem > {\n\tfields: NormalizedField< Item >[];\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\topenedFilter: string | null;\n\tsetOpenedFilter: ( openedFilter: string | null ) => void;\n}\n\nfunction _Filters< Item extends AnyItem >( {\n\tfields,\n\tview,\n\tonChangeView,\n\topenedFilter,\n\tsetOpenedFilter,\n}: FiltersProps< Item > ) {\n\tconst addFilterRef = useRef< HTMLButtonElement >( null );\n\tconst filters: NormalizedFilter[] = [];\n\tfields.forEach( ( field ) => {\n\t\tif ( ! field.elements?.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst operators = sanitizeOperators( field );\n\t\tif ( operators.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isPrimary = !! field.filterBy?.isPrimary;\n\t\tfilters.push( {\n\t\t\tfield: field.id,\n\t\t\tname: field.header,\n\t\t\telements: field.elements,\n\t\t\tsingleSelection: operators.some( ( op ) =>\n\t\t\t\t[ OPERATOR_IS, OPERATOR_IS_NOT ].includes( op )\n\t\t\t),\n\t\t\toperators,\n\t\t\tisVisible:\n\t\t\t\tisPrimary ||\n\t\t\t\tview.filters.some(\n\t\t\t\t\t( f ) =>\n\t\t\t\t\t\tf.field === field.id &&\n\t\t\t\t\t\tALL_OPERATORS.includes( f.operator )\n\t\t\t\t),\n\t\t\tisPrimary,\n\t\t} );\n\t} );\n\t// Sort filters by primary property. We need the primary filters to be first.\n\t// Then we sort by name.\n\tfilters.sort( ( a, b ) => {\n\t\tif ( a.isPrimary && ! b.isPrimary ) {\n\t\t\treturn -1;\n\t\t}\n\t\tif ( ! a.isPrimary && b.isPrimary ) {\n\t\t\treturn 1;\n\t\t}\n\t\treturn a.name.localeCompare( b.name );\n\t} );\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 filterComponents = [\n\t\t...filters.map( ( filter ) => {\n\t\t\tif ( ! filter.isVisible ) {\n\t\t\t\treturn null;\n\t\t\t}\n\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\tif ( filterComponents.length > 1 ) {\n\t\tfilterComponents.push(\n\t\t\t<ResetFilters\n\t\t\t\tkey=\"reset-filters\"\n\t\t\t\tfilters={ filters }\n\t\t\t\tview={ view }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<HStack justify=\"flex-start\" style={ { width: 'fit-content' } } wrap>\n\t\t\t{ filterComponents }\n\t\t</HStack>\n\t);\n}\n\n// A type assertion is used here to keep the type argument.\nconst Filters = memo( _Filters ) as typeof _Filters;\n\nexport default Filters;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["memo","useRef","__experimentalHStack","HStack","FilterSummary","AddFilter","ResetFilters","sanitizeOperators","ALL_OPERATORS","OPERATOR_IS","OPERATOR_IS_NOT","jsx","_jsx","_Filters","fields","view","onChangeView","openedFilter","setOpenedFilter","addFilterRef","filters","forEach","field","elements","length","operators","isPrimary","filterBy","push","id","name","header","singleSelection","some","op","includes","isVisible","f","operator","sort","a","b","localeCompare","addFilter","ref","filterComponents","map","filter","justify","style","width","wrap","children","Filters"],"sources":["@wordpress/dataviews/src/filters.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { memo, useRef } from '@wordpress/element';\nimport { __experimentalHStack as HStack } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport FilterSummary from './filter-summary';\nimport AddFilter from './add-filter';\nimport ResetFilters from './reset-filters';\nimport { sanitizeOperators } from './utils';\nimport { ALL_OPERATORS, OPERATOR_IS, OPERATOR_IS_NOT } from './constants';\nimport type { NormalizedField, NormalizedFilter, View } from './types';\n\ninterface FiltersProps< Item > {\n\tfields: NormalizedField< Item >[];\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\topenedFilter: string | null;\n\tsetOpenedFilter: ( openedFilter: string | null ) => void;\n}\n\nfunction _Filters< Item >( {\n\tfields,\n\tview,\n\tonChangeView,\n\topenedFilter,\n\tsetOpenedFilter,\n}: FiltersProps< Item > ) {\n\tconst addFilterRef = useRef< HTMLButtonElement >( null );\n\tconst filters: NormalizedFilter[] = [];\n\tfields.forEach( ( field ) => {\n\t\tif ( ! field.elements?.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst operators = sanitizeOperators( field );\n\t\tif ( operators.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isPrimary = !! field.filterBy?.isPrimary;\n\t\tfilters.push( {\n\t\t\tfield: field.id,\n\t\t\tname: field.header,\n\t\t\telements: field.elements,\n\t\t\tsingleSelection: operators.some( ( op ) =>\n\t\t\t\t[ OPERATOR_IS, OPERATOR_IS_NOT ].includes( op )\n\t\t\t),\n\t\t\toperators,\n\t\t\tisVisible:\n\t\t\t\tisPrimary ||\n\t\t\t\t!! view.filters?.some(\n\t\t\t\t\t( f ) =>\n\t\t\t\t\t\tf.field === field.id &&\n\t\t\t\t\t\tALL_OPERATORS.includes( f.operator )\n\t\t\t\t),\n\t\t\tisPrimary,\n\t\t} );\n\t} );\n\t// Sort filters by primary property. We need the primary filters to be first.\n\t// Then we sort by name.\n\tfilters.sort( ( a, b ) => {\n\t\tif ( a.isPrimary && ! b.isPrimary ) {\n\t\t\treturn -1;\n\t\t}\n\t\tif ( ! a.isPrimary && b.isPrimary ) {\n\t\t\treturn 1;\n\t\t}\n\t\treturn a.name.localeCompare( b.name );\n\t} );\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 filterComponents = [\n\t\t...filters.map( ( filter ) => {\n\t\t\tif ( ! filter.isVisible ) {\n\t\t\t\treturn null;\n\t\t\t}\n\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\tif ( filterComponents.length > 1 ) {\n\t\tfilterComponents.push(\n\t\t\t<ResetFilters\n\t\t\t\tkey=\"reset-filters\"\n\t\t\t\tfilters={ filters }\n\t\t\t\tview={ view }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<HStack justify=\"flex-start\" style={ { width: 'fit-content' } } wrap>\n\t\t\t{ filterComponents }\n\t\t</HStack>\n\t);\n}\n\n// A type assertion is used here to keep the type argument.\nconst Filters = memo( _Filters ) as typeof _Filters;\n\nexport default Filters;\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,5 @@
1
1
  export { default as DataViews } from './dataviews';
2
2
  export { VIEW_LAYOUTS } from './layouts';
3
3
  export { filterSortAndPaginate } from './filter-and-sort-data-view';
4
+ export { default as DataForm } from './dataform';
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["default","DataViews","VIEW_LAYOUTS","filterSortAndPaginate"],"sources":["@wordpress/dataviews/src/index.ts"],"sourcesContent":["export { default as DataViews } from './dataviews';\nexport { VIEW_LAYOUTS } from './layouts';\nexport { filterSortAndPaginate } from './filter-and-sort-data-view';\nexport type * from './types';\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,SAAS,QAAQ,aAAa;AAClD,SAASC,YAAY,QAAQ,WAAW;AACxC,SAASC,qBAAqB,QAAQ,6BAA6B","ignoreList":[]}
1
+ {"version":3,"names":["default","DataViews","VIEW_LAYOUTS","filterSortAndPaginate","DataForm"],"sources":["@wordpress/dataviews/src/index.ts"],"sourcesContent":["export { default as DataViews } from './dataviews';\nexport { VIEW_LAYOUTS } from './layouts';\nexport { filterSortAndPaginate } from './filter-and-sort-data-view';\nexport type * from './types';\nexport { default as DataForm } from './dataform';\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,SAAS,QAAQ,aAAa;AAClD,SAASC,YAAY,QAAQ,WAAW;AACxC,SAASC,qBAAqB,QAAQ,6BAA6B;AAEnE,SAASH,OAAO,IAAII,QAAQ,QAAQ,YAAY","ignoreList":[]}
@@ -188,7 +188,7 @@ function CompactItemActions({
188
188
  size: "compact",
189
189
  icon: moreVertical,
190
190
  label: __('Actions'),
191
- __experimentalIsFocusable: true,
191
+ accessibleWhenDisabled: true,
192
192
  disabled: !actions.length,
193
193
  className: "dataviews-all-actions-button"
194
194
  }),
@@ -1 +1 @@
1
- {"version":3,"names":["Button","Modal","__experimentalHStack","HStack","privateApis","componentsPrivateApis","__","useMemo","useState","moreVertical","useRegistry","unlock","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuItemLabelV2","DropdownMenuItemLabel","kebabCase","ButtonTrigger","action","onClick","items","label","icon","isDestructive","size","DropdownMenuItemTrigger","hideOnClick","children","ActionModal","closeModal","title","modalHeader","__experimentalHideHeader","hideModalHeader","onRequestClose","focusOnMount","overlayClassName","id","RenderModal","ActionWithModal","ActionTrigger","isBusy","isModalOpen","setIsModalOpen","actionTriggerProps","ActionsDropdownMenuGroup","actions","item","registry","map","callback","ItemActions","isCompact","primaryActions","eligibleActions","_eligibleActions","filter","isEligible","_primaryActions","isPrimary","CompactItemActions","spacing","justify","className","style","flexShrink","width","length","trigger","__experimentalIsFocusable","disabled","placement"],"sources":["@wordpress/dataviews/src/item-actions.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { MouseEventHandler, ReactElement } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tModal,\n\t__experimentalHStack as HStack,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo, useState } from '@wordpress/element';\nimport { moreVertical } from '@wordpress/icons';\nimport { useRegistry } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\nimport type { Action, ActionModal as ActionModalType, AnyItem } from './types';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuGroupV2: DropdownMenuGroup,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuItemLabelV2: DropdownMenuItemLabel,\n\tkebabCase,\n} = unlock( componentsPrivateApis );\n\nexport interface ActionTriggerProps< Item extends AnyItem > {\n\taction: Action< Item >;\n\tonClick: MouseEventHandler;\n\tisBusy?: boolean;\n\titems: Item[];\n}\n\ninterface ActionModalProps< Item extends AnyItem > {\n\taction: ActionModalType< Item >;\n\titems: Item[];\n\tcloseModal?: () => void;\n}\n\ninterface ActionWithModalProps< Item extends AnyItem >\n\textends ActionModalProps< Item > {\n\tActionTrigger: ( props: ActionTriggerProps< Item > ) => ReactElement;\n\tisBusy?: boolean;\n}\n\ninterface ActionsDropdownMenuGroupProps< Item extends AnyItem > {\n\tactions: Action< Item >[];\n\titem: Item;\n}\n\ninterface ItemActionsProps< Item extends AnyItem > {\n\titem: Item;\n\tactions: Action< Item >[];\n\tisCompact?: boolean;\n}\n\ninterface CompactItemActionsProps< Item extends AnyItem > {\n\titem: Item;\n\tactions: Action< Item >[];\n}\n\nfunction ButtonTrigger< Item extends AnyItem >( {\n\taction,\n\tonClick,\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\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/>\n\t);\n}\n\nfunction DropdownMenuItemTrigger< Item extends AnyItem >( {\n\taction,\n\tonClick,\n\titems,\n}: ActionTriggerProps< Item > ) {\n\tconst label =\n\t\ttypeof action.label === 'string' ? action.label : action.label( items );\n\treturn (\n\t\t<DropdownMenuItem\n\t\t\tonClick={ onClick }\n\t\t\thideOnClick={ ! ( 'RenderModal' in action ) }\n\t\t>\n\t\t\t<DropdownMenuItemLabel>{ label }</DropdownMenuItemLabel>\n\t\t</DropdownMenuItem>\n\t);\n}\n\nexport function ActionModal< Item extends AnyItem >( {\n\taction,\n\titems,\n\tcloseModal,\n}: ActionModalProps< Item > ) {\n\tconst label =\n\t\ttypeof action.label === 'string' ? action.label : action.label( items );\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ action.modalHeader || label }\n\t\t\t__experimentalHideHeader={ !! action.hideModalHeader }\n\t\t\tonRequestClose={ closeModal ?? ( () => {} ) }\n\t\t\tfocusOnMount=\"firstContentElement\"\n\t\t\tsize=\"small\"\n\t\t\toverlayClassName={ `dataviews-action-modal dataviews-action-modal__${ kebabCase(\n\t\t\t\taction.id\n\t\t\t) }` }\n\t\t>\n\t\t\t<action.RenderModal items={ items } closeModal={ closeModal } />\n\t\t</Modal>\n\t);\n}\n\nexport function ActionWithModal< Item extends AnyItem >( {\n\taction,\n\titems,\n\tActionTrigger,\n\tisBusy,\n}: ActionWithModalProps< Item > ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst actionTriggerProps = {\n\t\taction,\n\t\tonClick: () => {\n\t\t\tsetIsModalOpen( true );\n\t\t},\n\t\titems,\n\t\tisBusy,\n\t};\n\treturn (\n\t\t<>\n\t\t\t<ActionTrigger { ...actionTriggerProps } />\n\t\t\t{ isModalOpen && (\n\t\t\t\t<ActionModal\n\t\t\t\t\taction={ action }\n\t\t\t\t\titems={ items }\n\t\t\t\t\tcloseModal={ () => setIsModalOpen( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport function ActionsDropdownMenuGroup< Item extends AnyItem >( {\n\tactions,\n\titem,\n}: ActionsDropdownMenuGroupProps< Item > ) {\n\tconst registry = useRegistry();\n\treturn (\n\t\t<DropdownMenuGroup>\n\t\t\t{ actions.map( ( action ) => {\n\t\t\t\tif ( 'RenderModal' in action ) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ActionWithModal\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\titems={ [ item ] }\n\t\t\t\t\t\t\tActionTrigger={ DropdownMenuItemTrigger }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuItemTrigger\n\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\taction.callback( [ item ], { registry } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenuGroup>\n\t);\n}\n\nexport default function ItemActions< Item extends AnyItem >( {\n\titem,\n\tactions,\n\tisCompact,\n}: ItemActionsProps< Item > ) {\n\tconst registry = useRegistry();\n\tconst { primaryActions, eligibleActions } = useMemo( () => {\n\t\t// If an action is eligible for all items, doesn't need\n\t\t// to provide the `isEligible` function.\n\t\tconst _eligibleActions = actions.filter(\n\t\t\t( action ) => ! action.isEligible || action.isEligible( item )\n\t\t);\n\t\tconst _primaryActions = _eligibleActions.filter(\n\t\t\t( action ) => action.isPrimary && !! action.icon\n\t\t);\n\t\treturn {\n\t\t\tprimaryActions: _primaryActions,\n\t\t\teligibleActions: _eligibleActions,\n\t\t};\n\t}, [ actions, item ] );\n\tif ( isCompact ) {\n\t\treturn <CompactItemActions item={ item } actions={ eligibleActions } />;\n\t}\n\treturn (\n\t\t<HStack\n\t\t\tspacing={ 1 }\n\t\t\tjustify=\"flex-end\"\n\t\t\tclassName=\"dataviews-item-actions\"\n\t\t\tstyle={ {\n\t\t\t\tflexShrink: '0',\n\t\t\t\twidth: 'auto',\n\t\t\t} }\n\t\t>\n\t\t\t{ !! primaryActions.length &&\n\t\t\t\tprimaryActions.map( ( action ) => {\n\t\t\t\t\tif ( 'RenderModal' in action ) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<ActionWithModal\n\t\t\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\t\t\t\tActionTrigger={ ButtonTrigger }\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\treturn (\n\t\t\t\t\t\t<ButtonTrigger\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\tonClick={ () => {\n\t\t\t\t\t\t\t\taction.callback( [ item ], { registry } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t<CompactItemActions item={ item } actions={ eligibleActions } />\n\t\t</HStack>\n\t);\n}\n\nfunction CompactItemActions< Item extends AnyItem >( {\n\titem,\n\tactions,\n}: CompactItemActionsProps< Item > ) {\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\tdisabled={ ! actions.length }\n\t\t\t\t\tclassName=\"dataviews-all-actions-button\"\n\t\t\t\t/>\n\t\t\t}\n\t\t\tplacement=\"bottom-end\"\n\t\t>\n\t\t\t<ActionsDropdownMenuGroup actions={ actions } item={ item } />\n\t\t</DropdownMenu>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Button","Modal","__experimentalHStack","HStack","privateApis","componentsPrivateApis","__","useMemo","useState","moreVertical","useRegistry","unlock","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DropdownMenuV2","DropdownMenu","DropdownMenuGroupV2","DropdownMenuGroup","DropdownMenuItemV2","DropdownMenuItem","DropdownMenuItemLabelV2","DropdownMenuItemLabel","kebabCase","ButtonTrigger","action","onClick","items","label","icon","isDestructive","size","DropdownMenuItemTrigger","hideOnClick","children","ActionModal","closeModal","title","modalHeader","__experimentalHideHeader","hideModalHeader","onRequestClose","focusOnMount","overlayClassName","id","RenderModal","ActionWithModal","ActionTrigger","isBusy","isModalOpen","setIsModalOpen","actionTriggerProps","ActionsDropdownMenuGroup","actions","item","registry","map","callback","ItemActions","isCompact","primaryActions","eligibleActions","_eligibleActions","filter","isEligible","_primaryActions","isPrimary","CompactItemActions","spacing","justify","className","style","flexShrink","width","length","trigger","accessibleWhenDisabled","disabled","placement"],"sources":["@wordpress/dataviews/src/item-actions.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { MouseEventHandler, ReactElement } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tModal,\n\t__experimentalHStack as HStack,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useMemo, useState } from '@wordpress/element';\nimport { moreVertical } from '@wordpress/icons';\nimport { useRegistry } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\nimport type { Action, ActionModal as ActionModalType } from './types';\n\nconst {\n\tDropdownMenuV2: DropdownMenu,\n\tDropdownMenuGroupV2: DropdownMenuGroup,\n\tDropdownMenuItemV2: DropdownMenuItem,\n\tDropdownMenuItemLabelV2: DropdownMenuItemLabel,\n\tkebabCase,\n} = unlock( componentsPrivateApis );\n\nexport interface ActionTriggerProps< Item > {\n\taction: Action< Item >;\n\tonClick: MouseEventHandler;\n\tisBusy?: boolean;\n\titems: Item[];\n}\n\ninterface ActionModalProps< Item > {\n\taction: ActionModalType< Item >;\n\titems: Item[];\n\tcloseModal?: () => void;\n}\n\ninterface ActionWithModalProps< Item > extends ActionModalProps< Item > {\n\tActionTrigger: ( props: ActionTriggerProps< Item > ) => ReactElement;\n\tisBusy?: boolean;\n}\n\ninterface ActionsDropdownMenuGroupProps< Item > {\n\tactions: Action< Item >[];\n\titem: Item;\n}\n\ninterface ItemActionsProps< Item > {\n\titem: Item;\n\tactions: Action< Item >[];\n\tisCompact?: boolean;\n}\n\ninterface CompactItemActionsProps< Item > {\n\titem: Item;\n\tactions: Action< Item >[];\n}\n\nfunction ButtonTrigger< Item >( {\n\taction,\n\tonClick,\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\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/>\n\t);\n}\n\nfunction DropdownMenuItemTrigger< Item >( {\n\taction,\n\tonClick,\n\titems,\n}: ActionTriggerProps< Item > ) {\n\tconst label =\n\t\ttypeof action.label === 'string' ? action.label : action.label( items );\n\treturn (\n\t\t<DropdownMenuItem\n\t\t\tonClick={ onClick }\n\t\t\thideOnClick={ ! ( 'RenderModal' in action ) }\n\t\t>\n\t\t\t<DropdownMenuItemLabel>{ label }</DropdownMenuItemLabel>\n\t\t</DropdownMenuItem>\n\t);\n}\n\nexport function ActionModal< Item >( {\n\taction,\n\titems,\n\tcloseModal,\n}: ActionModalProps< Item > ) {\n\tconst label =\n\t\ttypeof action.label === 'string' ? action.label : action.label( items );\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ action.modalHeader || label }\n\t\t\t__experimentalHideHeader={ !! action.hideModalHeader }\n\t\t\tonRequestClose={ closeModal ?? ( () => {} ) }\n\t\t\tfocusOnMount=\"firstContentElement\"\n\t\t\tsize=\"small\"\n\t\t\toverlayClassName={ `dataviews-action-modal dataviews-action-modal__${ kebabCase(\n\t\t\t\taction.id\n\t\t\t) }` }\n\t\t>\n\t\t\t<action.RenderModal items={ items } closeModal={ closeModal } />\n\t\t</Modal>\n\t);\n}\n\nexport function ActionWithModal< Item >( {\n\taction,\n\titems,\n\tActionTrigger,\n\tisBusy,\n}: ActionWithModalProps< Item > ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst actionTriggerProps = {\n\t\taction,\n\t\tonClick: () => {\n\t\t\tsetIsModalOpen( true );\n\t\t},\n\t\titems,\n\t\tisBusy,\n\t};\n\treturn (\n\t\t<>\n\t\t\t<ActionTrigger { ...actionTriggerProps } />\n\t\t\t{ isModalOpen && (\n\t\t\t\t<ActionModal\n\t\t\t\t\taction={ action }\n\t\t\t\t\titems={ items }\n\t\t\t\t\tcloseModal={ () => setIsModalOpen( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport function ActionsDropdownMenuGroup< Item >( {\n\tactions,\n\titem,\n}: ActionsDropdownMenuGroupProps< Item > ) {\n\tconst registry = useRegistry();\n\treturn (\n\t\t<DropdownMenuGroup>\n\t\t\t{ actions.map( ( action ) => {\n\t\t\t\tif ( 'RenderModal' in action ) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ActionWithModal\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\titems={ [ item ] }\n\t\t\t\t\t\t\tActionTrigger={ DropdownMenuItemTrigger }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenuItemTrigger\n\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\taction.callback( [ item ], { registry } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</DropdownMenuGroup>\n\t);\n}\n\nexport default function ItemActions< Item >( {\n\titem,\n\tactions,\n\tisCompact,\n}: ItemActionsProps< Item > ) {\n\tconst registry = useRegistry();\n\tconst { primaryActions, eligibleActions } = useMemo( () => {\n\t\t// If an action is eligible for all items, doesn't need\n\t\t// to provide the `isEligible` function.\n\t\tconst _eligibleActions = actions.filter(\n\t\t\t( action ) => ! action.isEligible || action.isEligible( item )\n\t\t);\n\t\tconst _primaryActions = _eligibleActions.filter(\n\t\t\t( action ) => action.isPrimary && !! action.icon\n\t\t);\n\t\treturn {\n\t\t\tprimaryActions: _primaryActions,\n\t\t\teligibleActions: _eligibleActions,\n\t\t};\n\t}, [ actions, item ] );\n\tif ( isCompact ) {\n\t\treturn <CompactItemActions item={ item } actions={ eligibleActions } />;\n\t}\n\treturn (\n\t\t<HStack\n\t\t\tspacing={ 1 }\n\t\t\tjustify=\"flex-end\"\n\t\t\tclassName=\"dataviews-item-actions\"\n\t\t\tstyle={ {\n\t\t\t\tflexShrink: '0',\n\t\t\t\twidth: 'auto',\n\t\t\t} }\n\t\t>\n\t\t\t{ !! primaryActions.length &&\n\t\t\t\tprimaryActions.map( ( action ) => {\n\t\t\t\t\tif ( 'RenderModal' in action ) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<ActionWithModal\n\t\t\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\t\t\t\tActionTrigger={ ButtonTrigger }\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\treturn (\n\t\t\t\t\t\t<ButtonTrigger\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\tonClick={ () => {\n\t\t\t\t\t\t\t\taction.callback( [ item ], { registry } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\titems={ [ item ] }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t<CompactItemActions item={ item } actions={ eligibleActions } />\n\t\t</HStack>\n\t);\n}\n\nfunction CompactItemActions< Item >( {\n\titem,\n\tactions,\n}: CompactItemActionsProps< Item > ) {\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttrigger={\n\t\t\t\t<Button\n\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\tdisabled={ ! actions.length }\n\t\t\t\t\tclassName=\"dataviews-all-actions-button\"\n\t\t\t\t/>\n\t\t\t}\n\t\t\tplacement=\"bottom-end\"\n\t\t>\n\t\t\t<ActionsDropdownMenuGroup actions={ actions } item={ item } />\n\t\t</DropdownMenu>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["normalizeFields","fields","map","field","getValue","item","id","header","render"],"sources":["@wordpress/dataviews/src/normalize-fields.ts"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport type { Field, AnyItem, NormalizedField } from './types';\n\n/**\n * Apply default values and normalize the fields config.\n *\n * @param fields Fields config.\n * @return Normalized fields config.\n */\nexport function normalizeFields< Item extends AnyItem >(\n\tfields: Field< Item >[]\n): NormalizedField< Item >[] {\n\treturn fields.map( ( field ) => {\n\t\tconst getValue = field.getValue || ( ( { item } ) => item[ field.id ] );\n\n\t\treturn {\n\t\t\t...field,\n\t\t\theader: field.header || field.id,\n\t\t\tgetValue,\n\t\t\trender: field.render || getValue,\n\t\t};\n\t} );\n}\n"],"mappings":"AAAA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,eAAeA,CAC9BC,MAAuB,EACK;EAC5B,OAAOA,MAAM,CAACC,GAAG,CAAIC,KAAK,IAAM;IAC/B,MAAMC,QAAQ,GAAGD,KAAK,CAACC,QAAQ,KAAM,CAAE;MAAEC;IAAK,CAAC,KAAMA,IAAI,CAAEF,KAAK,CAACG,EAAE,CAAE,CAAE;IAEvE,OAAO;MACN,GAAGH,KAAK;MACRI,MAAM,EAAEJ,KAAK,CAACI,MAAM,IAAIJ,KAAK,CAACG,EAAE;MAChCF,QAAQ;MACRI,MAAM,EAAEL,KAAK,CAACK,MAAM,IAAIJ;IACzB,CAAC;EACF,CAAE,CAAC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["normalizeFields","fields","map","field","getValue","item","id","header","render"],"sources":["@wordpress/dataviews/src/normalize-fields.ts"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport type { Field, NormalizedField, ItemRecord } from './types';\n\n/**\n * Apply default values and normalize the fields config.\n *\n * @param fields Fields config.\n * @return Normalized fields config.\n */\nexport function normalizeFields< Item >(\n\tfields: Field< Item >[]\n): NormalizedField< Item >[] {\n\treturn fields.map( ( field ) => {\n\t\tconst getValue =\n\t\t\tfield.getValue ||\n\t\t\t( ( { item }: { item: ItemRecord } ) => item[ field.id ] );\n\n\t\treturn {\n\t\t\t...field,\n\t\t\theader: field.header || field.id,\n\t\t\tgetValue,\n\t\t\trender: field.render || getValue,\n\t\t};\n\t} );\n}\n"],"mappings":"AAAA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,eAAeA,CAC9BC,MAAuB,EACK;EAC5B,OAAOA,MAAM,CAACC,GAAG,CAAIC,KAAK,IAAM;IAC/B,MAAMC,QAAQ,GACbD,KAAK,CAACC,QAAQ,KACZ,CAAE;MAAEC;IAA2B,CAAC,KAAMA,IAAI,CAAEF,KAAK,CAACG,EAAE,CAAE,CAAE;IAE3D,OAAO;MACN,GAAGH,KAAK;MACRI,MAAM,EAAEJ,KAAK,CAACI,MAAM,IAAIJ,KAAK,CAACG,EAAE;MAChCF,QAAQ;MACRI,MAAM,EAAEL,KAAK,CAACK,MAAM,IAAIJ;IACzB,CAAC;EACF,CAAE,CAAC;AACJ","ignoreList":[]}