@wordpress/dataviews 0.2.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 (84) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/LICENSE.md +788 -0
  3. package/README.md +224 -0
  4. package/build/add-filter.js +90 -0
  5. package/build/add-filter.js.map +1 -0
  6. package/build/constants.js +55 -0
  7. package/build/constants.js.map +1 -0
  8. package/build/dataviews.js +93 -0
  9. package/build/dataviews.js.map +1 -0
  10. package/build/filter-summary.js +137 -0
  11. package/build/filter-summary.js.map +1 -0
  12. package/build/filters.js +75 -0
  13. package/build/filters.js.map +1 -0
  14. package/build/index.js +21 -0
  15. package/build/index.js.map +1 -0
  16. package/build/item-actions.js +185 -0
  17. package/build/item-actions.js.map +1 -0
  18. package/build/lock-unlock.js +18 -0
  19. package/build/lock-unlock.js.map +1 -0
  20. package/build/pagination.js +123 -0
  21. package/build/pagination.js.map +1 -0
  22. package/build/reset-filters.js +33 -0
  23. package/build/reset-filters.js.map +1 -0
  24. package/build/search.js +46 -0
  25. package/build/search.js.map +1 -0
  26. package/build/view-actions.js +223 -0
  27. package/build/view-actions.js.map +1 -0
  28. package/build/view-grid.js +80 -0
  29. package/build/view-grid.js.map +1 -0
  30. package/build/view-list.js +83 -0
  31. package/build/view-list.js.map +1 -0
  32. package/build/view-table.js +286 -0
  33. package/build/view-table.js.map +1 -0
  34. package/build-module/add-filter.js +83 -0
  35. package/build-module/add-filter.js.map +1 -0
  36. package/build-module/constants.js +41 -0
  37. package/build-module/constants.js.map +1 -0
  38. package/build-module/dataviews.js +85 -0
  39. package/build-module/dataviews.js.map +1 -0
  40. package/build-module/filter-summary.js +130 -0
  41. package/build-module/filter-summary.js.map +1 -0
  42. package/build-module/filters.js +67 -0
  43. package/build-module/filters.js.map +1 -0
  44. package/build-module/index.js +3 -0
  45. package/build-module/index.js.map +1 -0
  46. package/build-module/item-actions.js +178 -0
  47. package/build-module/item-actions.js.map +1 -0
  48. package/build-module/lock-unlock.js +9 -0
  49. package/build-module/lock-unlock.js.map +1 -0
  50. package/build-module/pagination.js +115 -0
  51. package/build-module/pagination.js.map +1 -0
  52. package/build-module/reset-filters.js +26 -0
  53. package/build-module/reset-filters.js.map +1 -0
  54. package/build-module/search.js +39 -0
  55. package/build-module/search.js.map +1 -0
  56. package/build-module/view-actions.js +216 -0
  57. package/build-module/view-actions.js.map +1 -0
  58. package/build-module/view-grid.js +72 -0
  59. package/build-module/view-grid.js.map +1 -0
  60. package/build-module/view-list.js +75 -0
  61. package/build-module/view-list.js.map +1 -0
  62. package/build-module/view-table.js +277 -0
  63. package/build-module/view-table.js.map +1 -0
  64. package/build-style/style-rtl.css +325 -0
  65. package/build-style/style.css +325 -0
  66. package/package.json +49 -0
  67. package/src/add-filter.js +106 -0
  68. package/src/constants.js +50 -0
  69. package/src/dataviews.js +99 -0
  70. package/src/filter-summary.js +221 -0
  71. package/src/filters.js +84 -0
  72. package/src/index.js +2 -0
  73. package/src/item-actions.js +211 -0
  74. package/src/lock-unlock.js +10 -0
  75. package/src/pagination.js +144 -0
  76. package/src/reset-filters.js +26 -0
  77. package/src/search.js +38 -0
  78. package/src/stories/fixtures.js +126 -0
  79. package/src/stories/index.story.js +137 -0
  80. package/src/style.scss +245 -0
  81. package/src/view-actions.js +298 -0
  82. package/src/view-grid.js +100 -0
  83. package/src/view-list.js +99 -0
  84. package/src/view-table.js +425 -0
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = Filters;
8
+ var _react = require("react");
9
+ var _filterSummary = _interopRequireDefault(require("./filter-summary"));
10
+ var _addFilter = _interopRequireDefault(require("./add-filter"));
11
+ var _resetFilters = _interopRequireDefault(require("./reset-filters"));
12
+ var _constants = require("./constants");
13
+ /**
14
+ * Internal dependencies
15
+ */
16
+
17
+ const operatorsFromField = field => {
18
+ let operators = field.filterBy?.operators;
19
+ if (!operators || !Array.isArray(operators)) {
20
+ operators = [_constants.OPERATOR_IN, _constants.OPERATOR_NOT_IN];
21
+ }
22
+ return operators.filter(operator => [_constants.OPERATOR_IN, _constants.OPERATOR_NOT_IN].includes(operator));
23
+ };
24
+ function Filters({
25
+ fields,
26
+ view,
27
+ onChangeView
28
+ }) {
29
+ const filters = [];
30
+ fields.forEach(field => {
31
+ if (!field.type) {
32
+ return;
33
+ }
34
+ const operators = operatorsFromField(field);
35
+ if (operators.length === 0) {
36
+ return;
37
+ }
38
+ switch (field.type) {
39
+ case _constants.ENUMERATION_TYPE:
40
+ filters.push({
41
+ field: field.id,
42
+ name: field.header,
43
+ elements: field.elements || [],
44
+ operators,
45
+ isVisible: view.filters.some(f => f.field === field.id && [_constants.OPERATOR_IN, _constants.OPERATOR_NOT_IN].includes(f.operator))
46
+ });
47
+ }
48
+ });
49
+ const filterComponents = filters.map(filter => {
50
+ if (!filter.isVisible) {
51
+ return null;
52
+ }
53
+ return (0, _react.createElement)(_filterSummary.default, {
54
+ key: filter.field + '.' + filter.operator,
55
+ filter: filter,
56
+ view: view,
57
+ onChangeView: onChangeView
58
+ });
59
+ });
60
+ filterComponents.push((0, _react.createElement)(_addFilter.default, {
61
+ key: "add-filter",
62
+ fields: fields,
63
+ view: view,
64
+ onChangeView: onChangeView
65
+ }));
66
+ if (filterComponents.length > 1) {
67
+ filterComponents.push((0, _react.createElement)(_resetFilters.default, {
68
+ key: "reset-filters",
69
+ view: view,
70
+ onChangeView: onChangeView
71
+ }));
72
+ }
73
+ return filterComponents;
74
+ }
75
+ //# sourceMappingURL=filters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_filterSummary","_interopRequireDefault","require","_addFilter","_resetFilters","_constants","operatorsFromField","field","operators","filterBy","Array","isArray","OPERATOR_IN","OPERATOR_NOT_IN","filter","operator","includes","Filters","fields","view","onChangeView","filters","forEach","type","length","ENUMERATION_TYPE","push","id","name","header","elements","isVisible","some","f","filterComponents","map","_react","createElement","default","key"],"sources":["@wordpress/dataviews/src/filters.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport FilterSummary from './filter-summary';\nimport AddFilter from './add-filter';\nimport ResetFilters from './reset-filters';\nimport { ENUMERATION_TYPE, OPERATOR_IN, OPERATOR_NOT_IN } from './constants';\n\nconst operatorsFromField = ( field ) => {\n\tlet operators = field.filterBy?.operators;\n\tif ( ! operators || ! Array.isArray( operators ) ) {\n\t\toperators = [ OPERATOR_IN, OPERATOR_NOT_IN ];\n\t}\n\treturn operators.filter( ( operator ) =>\n\t\t[ OPERATOR_IN, OPERATOR_NOT_IN ].includes( operator )\n\t);\n};\n\nexport default function Filters( { fields, view, onChangeView } ) {\n\tconst filters = [];\n\tfields.forEach( ( field ) => {\n\t\tif ( ! field.type ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst operators = operatorsFromField( field );\n\t\tif ( operators.length === 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tswitch ( field.type ) {\n\t\t\tcase ENUMERATION_TYPE:\n\t\t\t\tfilters.push( {\n\t\t\t\t\tfield: field.id,\n\t\t\t\t\tname: field.header,\n\t\t\t\t\telements: field.elements || [],\n\t\t\t\t\toperators,\n\t\t\t\t\tisVisible: view.filters.some(\n\t\t\t\t\t\t( f ) =>\n\t\t\t\t\t\t\tf.field === field.id &&\n\t\t\t\t\t\t\t[ OPERATOR_IN, OPERATOR_NOT_IN ].includes(\n\t\t\t\t\t\t\t\tf.operator\n\t\t\t\t\t\t\t)\n\t\t\t\t\t),\n\t\t\t\t} );\n\t\t}\n\t} );\n\n\tconst filterComponents = filters.map( ( filter ) => {\n\t\tif ( ! filter.isVisible ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<FilterSummary\n\t\t\t\tkey={ filter.field + '.' + filter.operator }\n\t\t\t\tfilter={ filter }\n\t\t\t\tview={ view }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t/>\n\t\t);\n\t} );\n\n\tfilterComponents.push(\n\t\t<AddFilter\n\t\t\tkey=\"add-filter\"\n\t\t\tfields={ fields }\n\t\t\tview={ view }\n\t\t\tonChangeView={ onChangeView }\n\t\t/>\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\tview={ view }\n\t\t\t\tonChangeView={ onChangeView }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn filterComponents;\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,cAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,aAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AANA;AACA;AACA;;AAMA,MAAMI,kBAAkB,GAAKC,KAAK,IAAM;EACvC,IAAIC,SAAS,GAAGD,KAAK,CAACE,QAAQ,EAAED,SAAS;EACzC,IAAK,CAAEA,SAAS,IAAI,CAAEE,KAAK,CAACC,OAAO,CAAEH,SAAU,CAAC,EAAG;IAClDA,SAAS,GAAG,CAAEI,sBAAW,EAAEC,0BAAe,CAAE;EAC7C;EACA,OAAOL,SAAS,CAACM,MAAM,CAAIC,QAAQ,IAClC,CAAEH,sBAAW,EAAEC,0BAAe,CAAE,CAACG,QAAQ,CAAED,QAAS,CACrD,CAAC;AACF,CAAC;AAEc,SAASE,OAAOA,CAAE;EAAEC,MAAM;EAAEC,IAAI;EAAEC;AAAa,CAAC,EAAG;EACjE,MAAMC,OAAO,GAAG,EAAE;EAClBH,MAAM,CAACI,OAAO,CAAIf,KAAK,IAAM;IAC5B,IAAK,CAAEA,KAAK,CAACgB,IAAI,EAAG;MACnB;IACD;IAEA,MAAMf,SAAS,GAAGF,kBAAkB,CAAEC,KAAM,CAAC;IAC7C,IAAKC,SAAS,CAACgB,MAAM,KAAK,CAAC,EAAG;MAC7B;IACD;IAEA,QAASjB,KAAK,CAACgB,IAAI;MAClB,KAAKE,2BAAgB;QACpBJ,OAAO,CAACK,IAAI,CAAE;UACbnB,KAAK,EAAEA,KAAK,CAACoB,EAAE;UACfC,IAAI,EAAErB,KAAK,CAACsB,MAAM;UAClBC,QAAQ,EAAEvB,KAAK,CAACuB,QAAQ,IAAI,EAAE;UAC9BtB,SAAS;UACTuB,SAAS,EAAEZ,IAAI,CAACE,OAAO,CAACW,IAAI,CACzBC,CAAC,IACFA,CAAC,CAAC1B,KAAK,KAAKA,KAAK,CAACoB,EAAE,IACpB,CAAEf,sBAAW,EAAEC,0BAAe,CAAE,CAACG,QAAQ,CACxCiB,CAAC,CAAClB,QACH,CACF;QACD,CAAE,CAAC;IACL;EACD,CAAE,CAAC;EAEH,MAAMmB,gBAAgB,GAAGb,OAAO,CAACc,GAAG,CAAIrB,MAAM,IAAM;IACnD,IAAK,CAAEA,MAAM,CAACiB,SAAS,EAAG;MACzB,OAAO,IAAI;IACZ;IAEA,OACC,IAAAK,MAAA,CAAAC,aAAA,EAACrC,cAAA,CAAAsC,OAAa;MACbC,GAAG,EAAGzB,MAAM,CAACP,KAAK,GAAG,GAAG,GAAGO,MAAM,CAACC,QAAU;MAC5CD,MAAM,EAAGA,MAAQ;MACjBK,IAAI,EAAGA,IAAM;MACbC,YAAY,EAAGA;IAAc,CAC7B,CAAC;EAEJ,CAAE,CAAC;EAEHc,gBAAgB,CAACR,IAAI,CACpB,IAAAU,MAAA,CAAAC,aAAA,EAAClC,UAAA,CAAAmC,OAAS;IACTC,GAAG,EAAC,YAAY;IAChBrB,MAAM,EAAGA,MAAQ;IACjBC,IAAI,EAAGA,IAAM;IACbC,YAAY,EAAGA;EAAc,CAC7B,CACF,CAAC;EAED,IAAKc,gBAAgB,CAACV,MAAM,GAAG,CAAC,EAAG;IAClCU,gBAAgB,CAACR,IAAI,CACpB,IAAAU,MAAA,CAAAC,aAAA,EAACjC,aAAA,CAAAkC,OAAY;MACZC,GAAG,EAAC,eAAe;MACnBpB,IAAI,EAAGA,IAAM;MACbC,YAAY,EAAGA;IAAc,CAC7B,CACF,CAAC;EACF;EAEA,OAAOc,gBAAgB;AACxB"}
package/build/index.js ADDED
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ Object.defineProperty(exports, "DataViews", {
8
+ enumerable: true,
9
+ get: function () {
10
+ return _dataviews.default;
11
+ }
12
+ });
13
+ Object.defineProperty(exports, "VIEW_LAYOUTS", {
14
+ enumerable: true,
15
+ get: function () {
16
+ return _constants.VIEW_LAYOUTS;
17
+ }
18
+ });
19
+ var _dataviews = _interopRequireDefault(require("./dataviews"));
20
+ var _constants = require("./constants");
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_dataviews","_interopRequireDefault","require","_constants"],"sources":["@wordpress/dataviews/src/index.js"],"sourcesContent":["export { default as DataViews } from './dataviews';\nexport { VIEW_LAYOUTS } from './constants';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA"}
@@ -0,0 +1,185 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = ItemActions;
7
+ var _react = require("react");
8
+ var _components = require("@wordpress/components");
9
+ var _i18n = require("@wordpress/i18n");
10
+ var _element = require("@wordpress/element");
11
+ var _icons = require("@wordpress/icons");
12
+ var _lockUnlock = require("./lock-unlock");
13
+ /**
14
+ * WordPress dependencies
15
+ */
16
+
17
+ /**
18
+ * Internal dependencies
19
+ */
20
+
21
+ const {
22
+ DropdownMenuV2Ariakit: DropdownMenu,
23
+ DropdownMenuGroupV2Ariakit: DropdownMenuGroup,
24
+ DropdownMenuItemV2Ariakit: DropdownMenuItem,
25
+ DropdownMenuItemLabelV2Ariakit: DropdownMenuItemLabel
26
+ } = (0, _lockUnlock.unlock)(_components.privateApis);
27
+ function ButtonTrigger({
28
+ action,
29
+ onClick
30
+ }) {
31
+ return (0, _react.createElement)(_components.Button, {
32
+ label: action.label,
33
+ icon: action.icon,
34
+ isDestructive: action.isDestructive,
35
+ size: "compact",
36
+ onClick: onClick
37
+ });
38
+ }
39
+ function DropdownMenuItemTrigger({
40
+ action,
41
+ onClick
42
+ }) {
43
+ return (0, _react.createElement)(DropdownMenuItem, {
44
+ onClick: onClick,
45
+ hideOnClick: !action.RenderModal
46
+ }, (0, _react.createElement)(DropdownMenuItemLabel, null, action.label));
47
+ }
48
+ function ActionWithModal({
49
+ action,
50
+ item,
51
+ ActionTrigger
52
+ }) {
53
+ const [isModalOpen, setIsModalOpen] = (0, _element.useState)(false);
54
+ const actionTriggerProps = {
55
+ action,
56
+ onClick: () => setIsModalOpen(true)
57
+ };
58
+ const {
59
+ RenderModal,
60
+ hideModalHeader
61
+ } = action;
62
+ return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(ActionTrigger, {
63
+ ...actionTriggerProps
64
+ }), isModalOpen && (0, _react.createElement)(_components.Modal, {
65
+ title: !hideModalHeader && action.label,
66
+ __experimentalHideHeader: !!hideModalHeader,
67
+ onRequestClose: () => {
68
+ setIsModalOpen(false);
69
+ },
70
+ overlayClassName: "dataviews-action-modal"
71
+ }, (0, _react.createElement)(RenderModal, {
72
+ item: item,
73
+ closeModal: () => setIsModalOpen(false)
74
+ })));
75
+ }
76
+ function ActionsDropdownMenuGroup({
77
+ actions,
78
+ item
79
+ }) {
80
+ return (0, _react.createElement)(DropdownMenuGroup, null, actions.map(action => {
81
+ if (!!action.RenderModal) {
82
+ return (0, _react.createElement)(ActionWithModal, {
83
+ key: action.id,
84
+ action: action,
85
+ item: item,
86
+ ActionTrigger: DropdownMenuItemTrigger
87
+ });
88
+ }
89
+ return (0, _react.createElement)(DropdownMenuItemTrigger, {
90
+ key: action.id,
91
+ action: action,
92
+ onClick: () => action.callback(item)
93
+ });
94
+ }));
95
+ }
96
+ function ItemActions({
97
+ item,
98
+ actions,
99
+ isCompact
100
+ }) {
101
+ const {
102
+ primaryActions,
103
+ secondaryActions
104
+ } = (0, _element.useMemo)(() => {
105
+ return actions.reduce((accumulator, action) => {
106
+ // If an action is eligible for all items, doesn't need
107
+ // to provide the `isEligible` function.
108
+ if (action.isEligible && !action.isEligible(item)) {
109
+ return accumulator;
110
+ }
111
+ if (action.isPrimary && !!action.icon) {
112
+ accumulator.primaryActions.push(action);
113
+ } else {
114
+ accumulator.secondaryActions.push(action);
115
+ }
116
+ return accumulator;
117
+ }, {
118
+ primaryActions: [],
119
+ secondaryActions: []
120
+ });
121
+ }, [actions, item]);
122
+ if (!primaryActions.length && !secondaryActions.length) {
123
+ return null;
124
+ }
125
+ if (isCompact) {
126
+ return (0, _react.createElement)(CompactItemActions, {
127
+ item: item,
128
+ primaryActions: primaryActions,
129
+ secondaryActions: secondaryActions
130
+ });
131
+ }
132
+ return (0, _react.createElement)(_components.__experimentalHStack, {
133
+ spacing: 1,
134
+ justify: "flex-end",
135
+ style: {
136
+ flexShrink: '0',
137
+ width: 'auto'
138
+ }
139
+ }, !!primaryActions.length && primaryActions.map(action => {
140
+ if (!!action.RenderModal) {
141
+ return (0, _react.createElement)(ActionWithModal, {
142
+ key: action.id,
143
+ action: action,
144
+ item: item,
145
+ ActionTrigger: ButtonTrigger
146
+ });
147
+ }
148
+ return (0, _react.createElement)(ButtonTrigger, {
149
+ key: action.id,
150
+ action: action,
151
+ onClick: () => action.callback(item)
152
+ });
153
+ }), !!secondaryActions.length && (0, _react.createElement)(DropdownMenu, {
154
+ trigger: (0, _react.createElement)(_components.Button, {
155
+ size: "compact",
156
+ icon: _icons.moreVertical,
157
+ label: (0, _i18n.__)('Actions')
158
+ }),
159
+ placement: "bottom-end"
160
+ }, (0, _react.createElement)(ActionsDropdownMenuGroup, {
161
+ actions: secondaryActions,
162
+ item: item
163
+ })));
164
+ }
165
+ function CompactItemActions({
166
+ item,
167
+ primaryActions,
168
+ secondaryActions
169
+ }) {
170
+ return (0, _react.createElement)(DropdownMenu, {
171
+ trigger: (0, _react.createElement)(_components.Button, {
172
+ size: "compact",
173
+ icon: _icons.moreVertical,
174
+ label: (0, _i18n.__)('Actions')
175
+ }),
176
+ placement: "bottom-end"
177
+ }, !!primaryActions.length && (0, _react.createElement)(ActionsDropdownMenuGroup, {
178
+ actions: primaryActions,
179
+ item: item
180
+ }), !!secondaryActions.length && (0, _react.createElement)(ActionsDropdownMenuGroup, {
181
+ actions: secondaryActions,
182
+ item: item
183
+ }));
184
+ }
185
+ //# sourceMappingURL=item-actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_components","require","_i18n","_element","_icons","_lockUnlock","DropdownMenuV2Ariakit","DropdownMenu","DropdownMenuGroupV2Ariakit","DropdownMenuGroup","DropdownMenuItemV2Ariakit","DropdownMenuItem","DropdownMenuItemLabelV2Ariakit","DropdownMenuItemLabel","unlock","componentsPrivateApis","ButtonTrigger","action","onClick","_react","createElement","Button","label","icon","isDestructive","size","DropdownMenuItemTrigger","hideOnClick","RenderModal","ActionWithModal","item","ActionTrigger","isModalOpen","setIsModalOpen","useState","actionTriggerProps","hideModalHeader","Fragment","Modal","title","__experimentalHideHeader","onRequestClose","overlayClassName","closeModal","ActionsDropdownMenuGroup","actions","map","key","id","callback","ItemActions","isCompact","primaryActions","secondaryActions","useMemo","reduce","accumulator","isEligible","isPrimary","push","length","CompactItemActions","__experimentalHStack","spacing","justify","style","flexShrink","width","trigger","moreVertical","__","placement"],"sources":["@wordpress/dataviews/src/item-actions.js"],"sourcesContent":["/**\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';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\n\nconst {\n\tDropdownMenuV2Ariakit: DropdownMenu,\n\tDropdownMenuGroupV2Ariakit: DropdownMenuGroup,\n\tDropdownMenuItemV2Ariakit: DropdownMenuItem,\n\tDropdownMenuItemLabelV2Ariakit: DropdownMenuItemLabel,\n} = unlock( componentsPrivateApis );\n\nfunction ButtonTrigger( { action, onClick } ) {\n\treturn (\n\t\t<Button\n\t\t\tlabel={ action.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( { action, onClick } ) {\n\treturn (\n\t\t<DropdownMenuItem\n\t\t\tonClick={ onClick }\n\t\t\thideOnClick={ ! action.RenderModal }\n\t\t>\n\t\t\t<DropdownMenuItemLabel>{ action.label }</DropdownMenuItemLabel>\n\t\t</DropdownMenuItem>\n\t);\n}\n\nfunction ActionWithModal( { action, item, ActionTrigger } ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst actionTriggerProps = {\n\t\taction,\n\t\tonClick: () => setIsModalOpen( true ),\n\t};\n\tconst { RenderModal, hideModalHeader } = action;\n\treturn (\n\t\t<>\n\t\t\t<ActionTrigger { ...actionTriggerProps } />\n\t\t\t{ isModalOpen && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ ! hideModalHeader && action.label }\n\t\t\t\t\t__experimentalHideHeader={ !! hideModalHeader }\n\t\t\t\t\tonRequestClose={ () => {\n\t\t\t\t\t\tsetIsModalOpen( false );\n\t\t\t\t\t} }\n\t\t\t\t\toverlayClassName=\"dataviews-action-modal\"\n\t\t\t\t>\n\t\t\t\t\t<RenderModal\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\tcloseModal={ () => setIsModalOpen( false ) }\n\t\t\t\t\t/>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction ActionsDropdownMenuGroup( { actions, item } ) {\n\treturn (\n\t\t<DropdownMenuGroup>\n\t\t\t{ actions.map( ( action ) => {\n\t\t\t\tif ( !! action.RenderModal ) {\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\titem={ 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={ () => action.callback( 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, actions, isCompact } ) {\n\tconst { primaryActions, secondaryActions } = useMemo( () => {\n\t\treturn actions.reduce(\n\t\t\t( accumulator, action ) => {\n\t\t\t\t// If an action is eligible for all items, doesn't need\n\t\t\t\t// to provide the `isEligible` function.\n\t\t\t\tif ( action.isEligible && ! action.isEligible( item ) ) {\n\t\t\t\t\treturn accumulator;\n\t\t\t\t}\n\t\t\t\tif ( action.isPrimary && !! action.icon ) {\n\t\t\t\t\taccumulator.primaryActions.push( action );\n\t\t\t\t} else {\n\t\t\t\t\taccumulator.secondaryActions.push( action );\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t},\n\t\t\t{ primaryActions: [], secondaryActions: [] }\n\t\t);\n\t}, [ actions, item ] );\n\tif ( ! primaryActions.length && ! secondaryActions.length ) {\n\t\treturn null;\n\t}\n\tif ( isCompact ) {\n\t\treturn (\n\t\t\t<CompactItemActions\n\t\t\t\titem={ item }\n\t\t\t\tprimaryActions={ primaryActions }\n\t\t\t\tsecondaryActions={ secondaryActions }\n\t\t\t/>\n\t\t);\n\t}\n\treturn (\n\t\t<HStack\n\t\t\tspacing={ 1 }\n\t\t\tjustify=\"flex-end\"\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 ( !! action.RenderModal ) {\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\titem={ 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={ () => action.callback( item ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t{ !! secondaryActions.length && (\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ttrigger={\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t\tplacement=\"bottom-end\"\n\t\t\t\t>\n\t\t\t\t\t<ActionsDropdownMenuGroup\n\t\t\t\t\t\tactions={ secondaryActions }\n\t\t\t\t\t\titem={ item }\n\t\t\t\t\t/>\n\t\t\t\t</DropdownMenu>\n\t\t\t) }\n\t\t</HStack>\n\t);\n}\n\nfunction CompactItemActions( { item, primaryActions, secondaryActions } ) {\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/>\n\t\t\t}\n\t\t\tplacement=\"bottom-end\"\n\t\t>\n\t\t\t{ !! primaryActions.length && (\n\t\t\t\t<ActionsDropdownMenuGroup\n\t\t\t\t\tactions={ primaryActions }\n\t\t\t\t\titem={ item }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ !! secondaryActions.length && (\n\t\t\t\t<ActionsDropdownMenuGroup\n\t\t\t\t\tactions={ secondaryActions }\n\t\t\t\t\titem={ item }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n"],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.unlock = exports.lock = void 0;
7
+ var _privateApis = require("@wordpress/private-apis");
8
+ /**
9
+ * WordPress dependencies
10
+ */
11
+
12
+ const {
13
+ lock,
14
+ unlock
15
+ } = (0, _privateApis.__dangerousOptInToUnstableAPIsOnlyForCoreModules)('I know using unstable features means my theme or plugin will inevitably break in the next version of WordPress.', '@wordpress/dataviews');
16
+ exports.unlock = unlock;
17
+ exports.lock = lock;
18
+ //# sourceMappingURL=lock-unlock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_privateApis","require","lock","unlock","__dangerousOptInToUnstableAPIsOnlyForCoreModules","exports"],"sources":["@wordpress/dataviews/src/lock-unlock.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __dangerousOptInToUnstableAPIsOnlyForCoreModules } from '@wordpress/private-apis';\n\nexport const { lock, unlock } =\n\t__dangerousOptInToUnstableAPIsOnlyForCoreModules(\n\t\t'I know using unstable features means my theme or plugin will inevitably break in the next version of WordPress.',\n\t\t'@wordpress/dataviews'\n\t);\n"],"mappings":";;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGO,MAAM;EAAEC,IAAI;EAAEC;AAAO,CAAC,GAC5B,IAAAC,6DAAgD,EAC/C,iHAAiH,EACjH,sBACD,CAAC;AAACC,OAAA,CAAAF,MAAA,GAAAA,MAAA;AAAAE,OAAA,CAAAH,IAAA,GAAAA,IAAA"}
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = require("react");
8
+ var _components = require("@wordpress/components");
9
+ var _element = require("@wordpress/element");
10
+ var _i18n = require("@wordpress/i18n");
11
+ var _icons = require("@wordpress/icons");
12
+ /**
13
+ * WordPress dependencies
14
+ */
15
+
16
+ function Pagination({
17
+ view,
18
+ onChangeView,
19
+ paginationInfo: {
20
+ totalItems = 0,
21
+ totalPages
22
+ }
23
+ }) {
24
+ if (!totalItems || !totalPages) {
25
+ return null;
26
+ }
27
+ return (0, _react.createElement)(_components.__experimentalHStack, {
28
+ expanded: false,
29
+ spacing: 3,
30
+ justify: "space-between",
31
+ className: "dataviews-pagination"
32
+ }, (0, _react.createElement)(_components.__experimentalText, {
33
+ variant: "muted"
34
+ },
35
+ // translators: %s: Total number of entries.
36
+ (0, _i18n.sprintf)(
37
+ // translators: %s: Total number of entries.
38
+ (0, _i18n._n)('%s item', '%s items', totalItems), totalItems)), !!totalItems && totalPages !== 1 && (0, _react.createElement)(_components.__experimentalHStack, {
39
+ expanded: false,
40
+ spacing: 3
41
+ }, (0, _react.createElement)(_components.__experimentalHStack, {
42
+ justify: "flex-start",
43
+ expanded: false,
44
+ spacing: 1
45
+ }, (0, _react.createElement)(_components.Button, {
46
+ onClick: () => onChangeView({
47
+ ...view,
48
+ page: 1
49
+ }),
50
+ disabled: view.page === 1,
51
+ __experimentalIsFocusable: true,
52
+ label: (0, _i18n.__)('First page'),
53
+ icon: _icons.previous,
54
+ showTooltip: true,
55
+ size: "compact"
56
+ }), (0, _react.createElement)(_components.Button, {
57
+ onClick: () => onChangeView({
58
+ ...view,
59
+ page: view.page - 1
60
+ }),
61
+ disabled: view.page === 1,
62
+ __experimentalIsFocusable: true,
63
+ label: (0, _i18n.__)('Previous page'),
64
+ icon: _icons.chevronLeft,
65
+ showTooltip: true,
66
+ size: "compact"
67
+ })), (0, _react.createElement)(_components.__experimentalHStack, {
68
+ justify: "flex-start",
69
+ expanded: false,
70
+ spacing: 2
71
+ }, (0, _element.createInterpolateElement)((0, _i18n.sprintf)(
72
+ // translators: %1$s: Current page number, %2$s: Total number of pages.
73
+ (0, _i18n._x)('<CurrenPageControl /> of %2$s', 'paging'), view.page, totalPages), {
74
+ CurrenPageControl: (0, _react.createElement)(_components.__experimentalNumberControl, {
75
+ "aria-label": (0, _i18n.__)('Current page'),
76
+ min: 1,
77
+ max: totalPages,
78
+ onChange: value => {
79
+ const _value = +value;
80
+ if (!_value || _value < 1 || _value > totalPages) {
81
+ return;
82
+ }
83
+ onChangeView({
84
+ ...view,
85
+ page: _value
86
+ });
87
+ },
88
+ step: "1",
89
+ value: view.page,
90
+ isDragEnabled: false,
91
+ spinControls: "none"
92
+ })
93
+ })), (0, _react.createElement)(_components.__experimentalHStack, {
94
+ justify: "flex-start",
95
+ expanded: false,
96
+ spacing: 1
97
+ }, (0, _react.createElement)(_components.Button, {
98
+ onClick: () => onChangeView({
99
+ ...view,
100
+ page: view.page + 1
101
+ }),
102
+ disabled: view.page >= totalPages,
103
+ __experimentalIsFocusable: true,
104
+ label: (0, _i18n.__)('Next page'),
105
+ icon: _icons.chevronRight,
106
+ showTooltip: true,
107
+ size: "compact"
108
+ }), (0, _react.createElement)(_components.Button, {
109
+ onClick: () => onChangeView({
110
+ ...view,
111
+ page: totalPages
112
+ }),
113
+ disabled: view.page >= totalPages,
114
+ __experimentalIsFocusable: true,
115
+ label: (0, _i18n.__)('Last page'),
116
+ icon: _icons.next,
117
+ showTooltip: true,
118
+ size: "compact"
119
+ }))));
120
+ }
121
+ var _default = Pagination;
122
+ exports.default = _default;
123
+ //# sourceMappingURL=pagination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_components","require","_element","_i18n","_icons","Pagination","view","onChangeView","paginationInfo","totalItems","totalPages","_react","createElement","__experimentalHStack","expanded","spacing","justify","className","__experimentalText","variant","sprintf","_n","Button","onClick","page","disabled","__experimentalIsFocusable","label","__","icon","previous","showTooltip","size","chevronLeft","createInterpolateElement","_x","CurrenPageControl","__experimentalNumberControl","min","max","onChange","value","_value","step","isDragEnabled","spinControls","chevronRight","next","_default","exports","default"],"sources":["@wordpress/dataviews/src/pagination.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalHStack as HStack,\n\t__experimentalText as Text,\n\t__experimentalNumberControl as NumberControl,\n} from '@wordpress/components';\nimport { createInterpolateElement } from '@wordpress/element';\nimport { sprintf, __, _x, _n } from '@wordpress/i18n';\nimport { chevronRight, chevronLeft, previous, next } from '@wordpress/icons';\n\nfunction Pagination( {\n\tview,\n\tonChangeView,\n\tpaginationInfo: { totalItems = 0, totalPages },\n} ) {\n\tif ( ! totalItems || ! totalPages ) {\n\t\treturn null;\n\t}\n\treturn (\n\t\t<HStack\n\t\t\texpanded={ false }\n\t\t\tspacing={ 3 }\n\t\t\tjustify=\"space-between\"\n\t\t\tclassName=\"dataviews-pagination\"\n\t\t>\n\t\t\t<Text variant=\"muted\">\n\t\t\t\t{\n\t\t\t\t\t// translators: %s: Total number of entries.\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: Total number of entries.\n\t\t\t\t\t\t_n( '%s item', '%s items', totalItems ),\n\t\t\t\t\t\ttotalItems\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t</Text>\n\t\t\t{ !! totalItems && totalPages !== 1 && (\n\t\t\t\t<HStack expanded={ false } spacing={ 3 }>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tonChangeView( { ...view, page: 1 } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdisabled={ view.page === 1 }\n\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t\tlabel={ __( 'First page' ) }\n\t\t\t\t\t\t\ticon={ previous }\n\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tonChangeView( { ...view, page: view.page - 1 } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdisabled={ view.page === 1 }\n\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t\tlabel={ __( 'Previous page' ) }\n\t\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</HStack>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// translators: %1$s: Current page number, %2$s: Total number of pages.\n\t\t\t\t\t\t\t\t_x( '<CurrenPageControl /> of %2$s', 'paging' ),\n\t\t\t\t\t\t\t\tview.page,\n\t\t\t\t\t\t\t\ttotalPages\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tCurrenPageControl: (\n\t\t\t\t\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t\t\t\t\taria-label={ __( 'Current page' ) }\n\t\t\t\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\t\t\t\tmax={ totalPages }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\t\t\tconst _value = +value;\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! _value ||\n\t\t\t\t\t\t\t\t\t\t\t\t_value < 1 ||\n\t\t\t\t\t\t\t\t\t\t\t\t_value > totalPages\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}\n\t\t\t\t\t\t\t\t\t\t\tonChangeView( {\n\t\t\t\t\t\t\t\t\t\t\t\t...view,\n\t\t\t\t\t\t\t\t\t\t\t\tpage: _value,\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\tstep=\"1\"\n\t\t\t\t\t\t\t\t\t\tvalue={ view.page }\n\t\t\t\t\t\t\t\t\t\tisDragEnabled={ false }\n\t\t\t\t\t\t\t\t\t\tspinControls=\"none\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t</HStack>\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tonChangeView( { ...view, page: view.page + 1 } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdisabled={ view.page >= totalPages }\n\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t\tlabel={ __( 'Next page' ) }\n\t\t\t\t\t\t\ticon={ chevronRight }\n\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tonChangeView( { ...view, page: totalPages } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdisabled={ view.page >= totalPages }\n\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t\tlabel={ __( 'Last page' ) }\n\t\t\t\t\t\t\ticon={ next }\n\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</HStack>\n\t\t\t\t</HStack>\n\t\t\t) }\n\t\t</HStack>\n\t);\n}\n\nexport default Pagination;\n"],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = require("react");
8
+ var _components = require("@wordpress/components");
9
+ var _i18n = require("@wordpress/i18n");
10
+ /**
11
+ * WordPress dependencies
12
+ */
13
+ var _default = ({
14
+ view,
15
+ onChangeView
16
+ }) => {
17
+ return (0, _react.createElement)(_components.Button, {
18
+ disabled: view.search === '' && view.filters?.length === 0,
19
+ __experimentalIsFocusable: true,
20
+ size: "compact",
21
+ variant: "tertiary",
22
+ onClick: () => {
23
+ onChangeView(currentView => ({
24
+ ...currentView,
25
+ page: 1,
26
+ search: '',
27
+ filters: []
28
+ }));
29
+ }
30
+ }, (0, _i18n.__)('Reset filters'));
31
+ };
32
+ exports.default = _default;
33
+ //# sourceMappingURL=reset-filters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_components","require","_i18n","_default","view","onChangeView","_react","createElement","Button","disabled","search","filters","length","__experimentalIsFocusable","size","variant","onClick","currentView","page","__","exports","default"],"sources":["@wordpress/dataviews/src/reset-filters.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\nexport default ( { view, onChangeView } ) => {\n\treturn (\n\t\t<Button\n\t\t\tdisabled={ view.search === '' && view.filters?.length === 0 }\n\t\t\t__experimentalIsFocusable\n\t\t\tsize=\"compact\"\n\t\t\tvariant=\"tertiary\"\n\t\t\tonClick={ () => {\n\t\t\t\tonChangeView( ( currentView ) => ( {\n\t\t\t\t\t...currentView,\n\t\t\t\t\tpage: 1,\n\t\t\t\t\tsearch: '',\n\t\t\t\t\tfilters: [],\n\t\t\t\t} ) );\n\t\t\t} }\n\t\t>\n\t\t\t{ __( 'Reset filters' ) }\n\t\t</Button>\n\t);\n};\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAJA;AACA;AACA;AAFA,IAAAE,QAAA,GAMeA,CAAE;EAAEC,IAAI;EAAEC;AAAa,CAAC,KAAM;EAC5C,OACC,IAAAC,MAAA,CAAAC,aAAA,EAACP,WAAA,CAAAQ,MAAM;IACNC,QAAQ,EAAGL,IAAI,CAACM,MAAM,KAAK,EAAE,IAAIN,IAAI,CAACO,OAAO,EAAEC,MAAM,KAAK,CAAG;IAC7DC,yBAAyB;IACzBC,IAAI,EAAC,SAAS;IACdC,OAAO,EAAC,UAAU;IAClBC,OAAO,EAAGA,CAAA,KAAM;MACfX,YAAY,CAAIY,WAAW,KAAQ;QAClC,GAAGA,WAAW;QACdC,IAAI,EAAE,CAAC;QACPR,MAAM,EAAE,EAAE;QACVC,OAAO,EAAE;MACV,CAAC,CAAG,CAAC;IACN;EAAG,GAED,IAAAQ,QAAE,EAAE,eAAgB,CACf,CAAC;AAEX,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAlB,QAAA"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = Search;
7
+ var _react = require("react");
8
+ var _i18n = require("@wordpress/i18n");
9
+ var _element = require("@wordpress/element");
10
+ var _components = require("@wordpress/components");
11
+ var _compose = require("@wordpress/compose");
12
+ /**
13
+ * WordPress dependencies
14
+ */
15
+
16
+ function Search({
17
+ label,
18
+ view,
19
+ onChangeView
20
+ }) {
21
+ const [search, setSearch, debouncedSearch] = (0, _compose.useDebouncedInput)(view.search);
22
+ (0, _element.useEffect)(() => {
23
+ setSearch(view.search);
24
+ }, [view]);
25
+ const onChangeViewRef = (0, _element.useRef)(onChangeView);
26
+ (0, _element.useEffect)(() => {
27
+ onChangeViewRef.current = onChangeView;
28
+ }, [onChangeView]);
29
+ (0, _element.useEffect)(() => {
30
+ onChangeViewRef.current(currentView => ({
31
+ ...currentView,
32
+ page: 1,
33
+ search: debouncedSearch
34
+ }));
35
+ }, [debouncedSearch]);
36
+ const searchLabel = label || (0, _i18n.__)('Filter list');
37
+ return (0, _react.createElement)(_components.SearchControl, {
38
+ __nextHasNoMarginBottom: true,
39
+ onChange: setSearch,
40
+ value: search,
41
+ label: searchLabel,
42
+ placeholder: searchLabel,
43
+ size: "compact"
44
+ });
45
+ }
46
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_i18n","require","_element","_components","_compose","Search","label","view","onChangeView","search","setSearch","debouncedSearch","useDebouncedInput","useEffect","onChangeViewRef","useRef","current","currentView","page","searchLabel","__","_react","createElement","SearchControl","__nextHasNoMarginBottom","onChange","value","placeholder","size"],"sources":["@wordpress/dataviews/src/search.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useEffect, useRef } from '@wordpress/element';\nimport { SearchControl } from '@wordpress/components';\nimport { useDebouncedInput } from '@wordpress/compose';\n\nexport default function Search( { label, view, onChangeView } ) {\n\tconst [ search, setSearch, debouncedSearch ] = useDebouncedInput(\n\t\tview.search\n\t);\n\tuseEffect( () => {\n\t\tsetSearch( view.search );\n\t}, [ view ] );\n\tconst onChangeViewRef = useRef( onChangeView );\n\tuseEffect( () => {\n\t\tonChangeViewRef.current = onChangeView;\n\t}, [ onChangeView ] );\n\tuseEffect( () => {\n\t\tonChangeViewRef.current( ( currentView ) => ( {\n\t\t\t...currentView,\n\t\t\tpage: 1,\n\t\t\tsearch: debouncedSearch,\n\t\t} ) );\n\t}, [ debouncedSearch ] );\n\tconst searchLabel = label || __( 'Filter list' );\n\treturn (\n\t\t<SearchControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\tonChange={ setSearch }\n\t\t\tvalue={ search }\n\t\t\tlabel={ searchLabel }\n\t\t\tplaceholder={ searchLabel }\n\t\t\tsize=\"compact\"\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AANA;AACA;AACA;;AAMe,SAASI,MAAMA,CAAE;EAAEC,KAAK;EAAEC,IAAI;EAAEC;AAAa,CAAC,EAAG;EAC/D,MAAM,CAAEC,MAAM,EAAEC,SAAS,EAAEC,eAAe,CAAE,GAAG,IAAAC,0BAAiB,EAC/DL,IAAI,CAACE,MACN,CAAC;EACD,IAAAI,kBAAS,EAAE,MAAM;IAChBH,SAAS,CAAEH,IAAI,CAACE,MAAO,CAAC;EACzB,CAAC,EAAE,CAAEF,IAAI,CAAG,CAAC;EACb,MAAMO,eAAe,GAAG,IAAAC,eAAM,EAAEP,YAAa,CAAC;EAC9C,IAAAK,kBAAS,EAAE,MAAM;IAChBC,eAAe,CAACE,OAAO,GAAGR,YAAY;EACvC,CAAC,EAAE,CAAEA,YAAY,CAAG,CAAC;EACrB,IAAAK,kBAAS,EAAE,MAAM;IAChBC,eAAe,CAACE,OAAO,CAAIC,WAAW,KAAQ;MAC7C,GAAGA,WAAW;MACdC,IAAI,EAAE,CAAC;MACPT,MAAM,EAAEE;IACT,CAAC,CAAG,CAAC;EACN,CAAC,EAAE,CAAEA,eAAe,CAAG,CAAC;EACxB,MAAMQ,WAAW,GAAGb,KAAK,IAAI,IAAAc,QAAE,EAAE,aAAc,CAAC;EAChD,OACC,IAAAC,MAAA,CAAAC,aAAA,EAACnB,WAAA,CAAAoB,aAAa;IACbC,uBAAuB;IACvBC,QAAQ,EAAGf,SAAW;IACtBgB,KAAK,EAAGjB,MAAQ;IAChBH,KAAK,EAAGa,WAAa;IACrBQ,WAAW,EAAGR,WAAa;IAC3BS,IAAI,EAAC;EAAS,CACd,CAAC;AAEJ"}