@wordpress/dataviews 1.1.0 → 2.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 (176) hide show
  1. package/CHANGELOG.md +27 -5
  2. package/README.md +33 -30
  3. package/build/add-filter.js +30 -22
  4. package/build/add-filter.js.map +1 -1
  5. package/build/bulk-actions-toolbar.js +187 -0
  6. package/build/bulk-actions-toolbar.js.map +1 -0
  7. package/build/bulk-actions.js +75 -62
  8. package/build/bulk-actions.js.map +1 -1
  9. package/build/constants.js +17 -10
  10. package/build/constants.js.map +1 -1
  11. package/build/dataviews.js +64 -50
  12. package/build/dataviews.js.map +1 -1
  13. package/build/filter-and-sort-data-view.js +2 -2
  14. package/build/filter-and-sort-data-view.js.map +1 -1
  15. package/build/filter-summary.js +106 -96
  16. package/build/filter-summary.js.map +1 -1
  17. package/build/filters.js +18 -17
  18. package/build/filters.js.map +1 -1
  19. package/build/index.js.map +1 -1
  20. package/build/item-actions.js +101 -69
  21. package/build/item-actions.js.map +1 -1
  22. package/build/layouts.js.map +1 -1
  23. package/build/lock-unlock.js.map +1 -1
  24. package/build/normalize-fields.js.map +1 -1
  25. package/build/pagination.js +66 -57
  26. package/build/pagination.js.map +1 -1
  27. package/build/reset-filters.js +9 -4
  28. package/build/reset-filters.js.map +1 -1
  29. package/build/search-widget.js +108 -89
  30. package/build/search-widget.js.map +1 -1
  31. package/build/search.js +13 -6
  32. package/build/search.js.map +1 -1
  33. package/build/single-selection-checkbox.js +6 -2
  34. package/build/single-selection-checkbox.js.map +1 -1
  35. package/build/types.js.map +1 -1
  36. package/build/utils.js +3 -15
  37. package/build/utils.js.map +1 -1
  38. package/build/view-actions.js +168 -120
  39. package/build/view-actions.js.map +1 -1
  40. package/build/view-grid.js +119 -106
  41. package/build/view-grid.js.map +1 -1
  42. package/build/view-list.js +217 -83
  43. package/build/view-list.js.map +1 -1
  44. package/build/view-table.js +227 -199
  45. package/build/view-table.js.map +1 -1
  46. package/build-module/add-filter.js +30 -22
  47. package/build-module/add-filter.js.map +1 -1
  48. package/build-module/bulk-actions-toolbar.js +182 -0
  49. package/build-module/bulk-actions-toolbar.js.map +1 -0
  50. package/build-module/bulk-actions.js +77 -62
  51. package/build-module/bulk-actions.js.map +1 -1
  52. package/build-module/constants.js +16 -9
  53. package/build-module/constants.js.map +1 -1
  54. package/build-module/dataviews.js +65 -50
  55. package/build-module/dataviews.js.map +1 -1
  56. package/build-module/filter-and-sort-data-view.js +2 -2
  57. package/build-module/filter-and-sort-data-view.js.map +1 -1
  58. package/build-module/filter-summary.js +107 -97
  59. package/build-module/filter-summary.js.map +1 -1
  60. package/build-module/filters.js +18 -17
  61. package/build-module/filters.js.map +1 -1
  62. package/build-module/index.js.map +1 -1
  63. package/build-module/item-actions.js +102 -71
  64. package/build-module/item-actions.js.map +1 -1
  65. package/build-module/layouts.js.map +1 -1
  66. package/build-module/lock-unlock.js.map +1 -1
  67. package/build-module/normalize-fields.js.map +1 -1
  68. package/build-module/pagination.js +67 -57
  69. package/build-module/pagination.js.map +1 -1
  70. package/build-module/reset-filters.js +9 -4
  71. package/build-module/reset-filters.js.map +1 -1
  72. package/build-module/search-widget.js +109 -89
  73. package/build-module/search-widget.js.map +1 -1
  74. package/build-module/search.js +13 -6
  75. package/build-module/search.js.map +1 -1
  76. package/build-module/single-selection-checkbox.js +6 -2
  77. package/build-module/single-selection-checkbox.js.map +1 -1
  78. package/build-module/types.js.map +1 -1
  79. package/build-module/utils.js +2 -13
  80. package/build-module/utils.js.map +1 -1
  81. package/build-module/view-actions.js +170 -121
  82. package/build-module/view-actions.js.map +1 -1
  83. package/build-module/view-grid.js +121 -106
  84. package/build-module/view-grid.js.map +1 -1
  85. package/build-module/view-list.js +219 -85
  86. package/build-module/view-list.js.map +1 -1
  87. package/build-module/view-table.js +230 -201
  88. package/build-module/view-table.js.map +1 -1
  89. package/build-style/style-rtl.css +168 -44
  90. package/build-style/style.css +168 -44
  91. package/build-types/add-filter.d.ts +11 -0
  92. package/build-types/add-filter.d.ts.map +1 -0
  93. package/build-types/bulk-actions-toolbar.d.ts +12 -0
  94. package/build-types/bulk-actions-toolbar.d.ts.map +1 -0
  95. package/build-types/bulk-actions.d.ts +14 -0
  96. package/build-types/bulk-actions.d.ts.map +1 -0
  97. package/build-types/constants.d.ts +19 -32
  98. package/build-types/constants.d.ts.map +1 -1
  99. package/build-types/dataviews.d.ts +22 -0
  100. package/build-types/dataviews.d.ts.map +1 -0
  101. package/build-types/filter-and-sort-data-view.d.ts +3 -3
  102. package/build-types/filter-and-sort-data-view.d.ts.map +1 -1
  103. package/build-types/filter-summary.d.ts +14 -0
  104. package/build-types/filter-summary.d.ts.map +1 -0
  105. package/build-types/filters.d.ts +13 -0
  106. package/build-types/filters.d.ts.map +1 -0
  107. package/build-types/index.d.ts +4 -0
  108. package/build-types/index.d.ts.map +1 -0
  109. package/build-types/item-actions.d.ts +35 -0
  110. package/build-types/item-actions.d.ts.map +1 -0
  111. package/build-types/layouts.d.ts +24 -0
  112. package/build-types/layouts.d.ts.map +1 -0
  113. package/build-types/lock-unlock.d.ts +2 -0
  114. package/build-types/lock-unlock.d.ts.map +1 -0
  115. package/build-types/normalize-fields.d.ts +2 -2
  116. package/build-types/normalize-fields.d.ts.map +1 -1
  117. package/build-types/pagination.d.ts +16 -0
  118. package/build-types/pagination.d.ts.map +1 -0
  119. package/build-types/reset-filters.d.ts +13 -0
  120. package/build-types/reset-filters.d.ts.map +1 -0
  121. package/build-types/search-widget.d.ts +10 -0
  122. package/build-types/search-widget.d.ts.map +1 -0
  123. package/build-types/search.d.ts +13 -0
  124. package/build-types/search.d.ts.map +1 -0
  125. package/build-types/single-selection-checkbox.d.ts +17 -0
  126. package/build-types/single-selection-checkbox.d.ts.map +1 -0
  127. package/build-types/stories/fixtures.d.ts +114 -0
  128. package/build-types/stories/fixtures.d.ts.map +1 -0
  129. package/build-types/stories/index.story.d.ts +15 -0
  130. package/build-types/stories/index.story.d.ts.map +1 -0
  131. package/build-types/types.d.ts +221 -21
  132. package/build-types/types.d.ts.map +1 -1
  133. package/build-types/utils.d.ts +3 -0
  134. package/build-types/utils.d.ts.map +1 -0
  135. package/build-types/view-actions.d.ts +12 -0
  136. package/build-types/view-actions.d.ts.map +1 -0
  137. package/build-types/view-grid.d.ts +4 -0
  138. package/build-types/view-grid.d.ts.map +1 -0
  139. package/build-types/view-list.d.ts +4 -0
  140. package/build-types/view-list.d.ts.map +1 -0
  141. package/build-types/view-table.d.ts +5 -0
  142. package/build-types/view-table.d.ts.map +1 -0
  143. package/package.json +12 -13
  144. package/src/{add-filter.js → add-filter.tsx} +17 -1
  145. package/src/bulk-actions-toolbar.tsx +272 -0
  146. package/src/{bulk-actions.js → bulk-actions.tsx} +77 -17
  147. package/src/constants.ts +12 -5
  148. package/src/{dataviews.js → dataviews.tsx} +54 -14
  149. package/src/filter-and-sort-data-view.ts +13 -8
  150. package/src/{filter-summary.js → filter-summary.tsx} +38 -9
  151. package/src/{filters.js → filters.tsx} +18 -6
  152. package/src/{item-actions.js → item-actions.tsx} +119 -30
  153. package/src/normalize-fields.ts +4 -2
  154. package/src/{pagination.js → pagination.tsx} +29 -8
  155. package/src/{reset-filters.js → reset-filters.tsx} +17 -2
  156. package/src/{search-widget.js → search-widget.tsx} +27 -7
  157. package/src/{search.js → search.tsx} +22 -5
  158. package/src/{single-selection-checkbox.js → single-selection-checkbox.tsx} +17 -2
  159. package/src/style.scss +166 -43
  160. package/src/types.ts +286 -21
  161. package/src/{utils.js → utils.ts} +5 -13
  162. package/src/{view-actions.js → view-actions.tsx} +105 -49
  163. package/src/{view-grid.js → view-grid.tsx} +31 -18
  164. package/src/view-list.tsx +410 -0
  165. package/src/{view-table.js → view-table.tsx} +99 -40
  166. package/tsconfig.json +3 -4
  167. package/tsconfig.tsbuildinfo +1 -1
  168. package/build/dropdown-menu-helper.js +0 -71
  169. package/build/dropdown-menu-helper.js.map +0 -1
  170. package/build-module/dropdown-menu-helper.js +0 -64
  171. package/build-module/dropdown-menu-helper.js.map +0 -1
  172. package/src/dropdown-menu-helper.js +0 -61
  173. package/src/view-list.js +0 -207
  174. /package/src/{index.js → index.ts} +0 -0
  175. /package/src/{layouts.js → layouts.ts} +0 -0
  176. /package/src/{lock-unlock.js → lock-unlock.ts} +0 -0
@@ -1,71 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.DropdownMenuRadioItemCustom = void 0;
7
- var _react = require("react");
8
- var _components = require("@wordpress/components");
9
- var _element = require("@wordpress/element");
10
- var _primitives = require("@wordpress/primitives");
11
- var _lockUnlock = require("./lock-unlock");
12
- /**
13
- * WordPress dependencies
14
- */
15
-
16
- /**
17
- * Internal dependencies
18
- */
19
-
20
- const {
21
- DropdownMenuItemV2: DropdownMenuItem
22
- } = (0, _lockUnlock.unlock)(_components.privateApis);
23
- const radioCheck = (0, _react.createElement)(_primitives.SVG, {
24
- xmlns: "http://www.w3.org/2000/svg",
25
- viewBox: "0 0 24 24"
26
- }, (0, _react.createElement)(_primitives.Circle, {
27
- cx: 12,
28
- cy: 12,
29
- r: 3
30
- }));
31
-
32
- /**
33
- * A custom implementation of a radio menu item using the standard menu item
34
- * component, which allows deselecting selected values.
35
- */
36
- const DropdownMenuRadioItemCustom = exports.DropdownMenuRadioItemCustom = (0, _element.forwardRef)(function DropdownMenuRadioItemCustom({
37
- checked,
38
- name,
39
- value,
40
- hideOnClick,
41
- onChange,
42
- onClick,
43
- ...props
44
- }, ref) {
45
- const onClickHandler = e => {
46
- onClick?.(e);
47
- onChange?.({
48
- ...e,
49
- target: {
50
- ...e.target,
51
- value
52
- }
53
- });
54
- };
55
- return (0, _react.createElement)(DropdownMenuItem, {
56
- ref: ref,
57
- role: "menuitemradio",
58
- name: name,
59
- "aria-checked": checked,
60
- hideOnClick: !!hideOnClick,
61
- prefix: checked ? (0, _react.createElement)(_components.Icon, {
62
- icon: radioCheck
63
- }) : (0, _react.createElement)("span", {
64
- className: "dataviews-filters__custom-menu-radio-item-prefix",
65
- "aria-hidden": "true"
66
- }),
67
- onClick: onClickHandler,
68
- ...props
69
- });
70
- });
71
- //# sourceMappingURL=dropdown-menu-helper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_components","require","_element","_primitives","_lockUnlock","DropdownMenuItemV2","DropdownMenuItem","unlock","componentsPrivateApis","radioCheck","_react","createElement","SVG","xmlns","viewBox","Circle","cx","cy","r","DropdownMenuRadioItemCustom","exports","forwardRef","checked","name","value","hideOnClick","onChange","onClick","props","ref","onClickHandler","e","target","role","prefix","Icon","icon","className"],"sources":["@wordpress/dataviews/src/dropdown-menu-helper.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tIcon,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { forwardRef } from '@wordpress/element';\nimport { SVG, Circle } from '@wordpress/primitives';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\n\nconst { DropdownMenuItemV2: DropdownMenuItem } = unlock(\n\tcomponentsPrivateApis\n);\n\nconst radioCheck = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Circle cx={ 12 } cy={ 12 } r={ 3 }></Circle>\n\t</SVG>\n);\n\n/**\n * A custom implementation of a radio menu item using the standard menu item\n * component, which allows deselecting selected values.\n */\nexport const DropdownMenuRadioItemCustom = forwardRef(\n\tfunction DropdownMenuRadioItemCustom(\n\t\t{ checked, name, value, hideOnClick, onChange, onClick, ...props },\n\t\tref\n\t) {\n\t\tconst onClickHandler = ( e ) => {\n\t\t\tonClick?.( e );\n\t\t\tonChange?.( { ...e, target: { ...e.target, value } } );\n\t\t};\n\t\treturn (\n\t\t\t<DropdownMenuItem\n\t\t\t\tref={ ref }\n\t\t\t\trole=\"menuitemradio\"\n\t\t\t\tname={ name }\n\t\t\t\taria-checked={ checked }\n\t\t\t\thideOnClick={ !! hideOnClick }\n\t\t\t\tprefix={\n\t\t\t\t\tchecked ? (\n\t\t\t\t\t\t<Icon icon={ radioCheck } />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName=\"dataviews-filters__custom-menu-radio-item-prefix\"\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t></span>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tonClick={ onClickHandler }\n\t\t\t\t{ ...props }\n\t\t\t/>\n\t\t);\n\t}\n);\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAIA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAKA,IAAAG,WAAA,GAAAH,OAAA;AAbA;AACA;AACA;;AAQA;AACA;AACA;;AAGA,MAAM;EAAEI,kBAAkB,EAAEC;AAAiB,CAAC,GAAG,IAAAC,kBAAM,EACtDC,uBACD,CAAC;AAED,MAAMC,UAAU,GACf,IAAAC,MAAA,CAAAC,aAAA,EAACR,WAAA,CAAAS,GAAG;EAACC,KAAK,EAAC,4BAA4B;EAACC,OAAO,EAAC;AAAW,GAC1D,IAAAJ,MAAA,CAAAC,aAAA,EAACR,WAAA,CAAAY,MAAM;EAACC,EAAE,EAAG,EAAI;EAACC,EAAE,EAAG,EAAI;EAACC,CAAC,EAAG;AAAG,CAAS,CACxC,CACL;;AAED;AACA;AACA;AACA;AACO,MAAMC,2BAA2B,GAAAC,OAAA,CAAAD,2BAAA,GAAG,IAAAE,mBAAU,EACpD,SAASF,2BAA2BA,CACnC;EAAEG,OAAO;EAAEC,IAAI;EAAEC,KAAK;EAAEC,WAAW;EAAEC,QAAQ;EAAEC,OAAO;EAAE,GAAGC;AAAM,CAAC,EAClEC,GAAG,EACF;EACD,MAAMC,cAAc,GAAKC,CAAC,IAAM;IAC/BJ,OAAO,GAAII,CAAE,CAAC;IACdL,QAAQ,GAAI;MAAE,GAAGK,CAAC;MAAEC,MAAM,EAAE;QAAE,GAAGD,CAAC,CAACC,MAAM;QAAER;MAAM;IAAE,CAAE,CAAC;EACvD,CAAC;EACD,OACC,IAAAd,MAAA,CAAAC,aAAA,EAACL,gBAAgB;IAChBuB,GAAG,EAAGA,GAAK;IACXI,IAAI,EAAC,eAAe;IACpBV,IAAI,EAAGA,IAAM;IACb,gBAAeD,OAAS;IACxBG,WAAW,EAAG,CAAC,CAAEA,WAAa;IAC9BS,MAAM,EACLZ,OAAO,GACN,IAAAZ,MAAA,CAAAC,aAAA,EAACX,WAAA,CAAAmC,IAAI;MAACC,IAAI,EAAG3B;IAAY,CAAE,CAAC,GAE5B,IAAAC,MAAA,CAAAC,aAAA;MACC0B,SAAS,EAAC,kDAAkD;MAC5D,eAAY;IAAM,CACZ,CAER;IACDV,OAAO,EAAGG,cAAgB;IAAA,GACrBF;EAAK,CACV,CAAC;AAEJ,CACD,CAAC","ignoreList":[]}
@@ -1,64 +0,0 @@
1
- import { createElement } from "react";
2
- /**
3
- * WordPress dependencies
4
- */
5
- import { Icon, privateApis as componentsPrivateApis } from '@wordpress/components';
6
- import { forwardRef } from '@wordpress/element';
7
- import { SVG, Circle } from '@wordpress/primitives';
8
-
9
- /**
10
- * Internal dependencies
11
- */
12
- import { unlock } from './lock-unlock';
13
- const {
14
- DropdownMenuItemV2: DropdownMenuItem
15
- } = unlock(componentsPrivateApis);
16
- const radioCheck = createElement(SVG, {
17
- xmlns: "http://www.w3.org/2000/svg",
18
- viewBox: "0 0 24 24"
19
- }, createElement(Circle, {
20
- cx: 12,
21
- cy: 12,
22
- r: 3
23
- }));
24
-
25
- /**
26
- * A custom implementation of a radio menu item using the standard menu item
27
- * component, which allows deselecting selected values.
28
- */
29
- export const DropdownMenuRadioItemCustom = forwardRef(function DropdownMenuRadioItemCustom({
30
- checked,
31
- name,
32
- value,
33
- hideOnClick,
34
- onChange,
35
- onClick,
36
- ...props
37
- }, ref) {
38
- const onClickHandler = e => {
39
- onClick?.(e);
40
- onChange?.({
41
- ...e,
42
- target: {
43
- ...e.target,
44
- value
45
- }
46
- });
47
- };
48
- return createElement(DropdownMenuItem, {
49
- ref: ref,
50
- role: "menuitemradio",
51
- name: name,
52
- "aria-checked": checked,
53
- hideOnClick: !!hideOnClick,
54
- prefix: checked ? createElement(Icon, {
55
- icon: radioCheck
56
- }) : createElement("span", {
57
- className: "dataviews-filters__custom-menu-radio-item-prefix",
58
- "aria-hidden": "true"
59
- }),
60
- onClick: onClickHandler,
61
- ...props
62
- });
63
- });
64
- //# sourceMappingURL=dropdown-menu-helper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["Icon","privateApis","componentsPrivateApis","forwardRef","SVG","Circle","unlock","DropdownMenuItemV2","DropdownMenuItem","radioCheck","createElement","xmlns","viewBox","cx","cy","r","DropdownMenuRadioItemCustom","checked","name","value","hideOnClick","onChange","onClick","props","ref","onClickHandler","e","target","role","prefix","icon","className"],"sources":["@wordpress/dataviews/src/dropdown-menu-helper.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tIcon,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { forwardRef } from '@wordpress/element';\nimport { SVG, Circle } from '@wordpress/primitives';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from './lock-unlock';\n\nconst { DropdownMenuItemV2: DropdownMenuItem } = unlock(\n\tcomponentsPrivateApis\n);\n\nconst radioCheck = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Circle cx={ 12 } cy={ 12 } r={ 3 }></Circle>\n\t</SVG>\n);\n\n/**\n * A custom implementation of a radio menu item using the standard menu item\n * component, which allows deselecting selected values.\n */\nexport const DropdownMenuRadioItemCustom = forwardRef(\n\tfunction DropdownMenuRadioItemCustom(\n\t\t{ checked, name, value, hideOnClick, onChange, onClick, ...props },\n\t\tref\n\t) {\n\t\tconst onClickHandler = ( e ) => {\n\t\t\tonClick?.( e );\n\t\t\tonChange?.( { ...e, target: { ...e.target, value } } );\n\t\t};\n\t\treturn (\n\t\t\t<DropdownMenuItem\n\t\t\t\tref={ ref }\n\t\t\t\trole=\"menuitemradio\"\n\t\t\t\tname={ name }\n\t\t\t\taria-checked={ checked }\n\t\t\t\thideOnClick={ !! hideOnClick }\n\t\t\t\tprefix={\n\t\t\t\t\tchecked ? (\n\t\t\t\t\t\t<Icon icon={ radioCheck } />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName=\"dataviews-filters__custom-menu-radio-item-prefix\"\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t></span>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tonClick={ onClickHandler }\n\t\t\t\t{ ...props }\n\t\t\t/>\n\t\t);\n\t}\n);\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,IAAI,EACJC,WAAW,IAAIC,qBAAqB,QAC9B,uBAAuB;AAC9B,SAASC,UAAU,QAAQ,oBAAoB;AAC/C,SAASC,GAAG,EAAEC,MAAM,QAAQ,uBAAuB;;AAEnD;AACA;AACA;AACA,SAASC,MAAM,QAAQ,eAAe;AAEtC,MAAM;EAAEC,kBAAkB,EAAEC;AAAiB,CAAC,GAAGF,MAAM,CACtDJ,qBACD,CAAC;AAED,MAAMO,UAAU,GACfC,aAAA,CAACN,GAAG;EAACO,KAAK,EAAC,4BAA4B;EAACC,OAAO,EAAC;AAAW,GAC1DF,aAAA,CAACL,MAAM;EAACQ,EAAE,EAAG,EAAI;EAACC,EAAE,EAAG,EAAI;EAACC,CAAC,EAAG;AAAG,CAAS,CACxC,CACL;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMC,2BAA2B,GAAGb,UAAU,CACpD,SAASa,2BAA2BA,CACnC;EAAEC,OAAO;EAAEC,IAAI;EAAEC,KAAK;EAAEC,WAAW;EAAEC,QAAQ;EAAEC,OAAO;EAAE,GAAGC;AAAM,CAAC,EAClEC,GAAG,EACF;EACD,MAAMC,cAAc,GAAKC,CAAC,IAAM;IAC/BJ,OAAO,GAAII,CAAE,CAAC;IACdL,QAAQ,GAAI;MAAE,GAAGK,CAAC;MAAEC,MAAM,EAAE;QAAE,GAAGD,CAAC,CAACC,MAAM;QAAER;MAAM;IAAE,CAAE,CAAC;EACvD,CAAC;EACD,OACCT,aAAA,CAACF,gBAAgB;IAChBgB,GAAG,EAAGA,GAAK;IACXI,IAAI,EAAC,eAAe;IACpBV,IAAI,EAAGA,IAAM;IACb,gBAAeD,OAAS;IACxBG,WAAW,EAAG,CAAC,CAAEA,WAAa;IAC9BS,MAAM,EACLZ,OAAO,GACNP,aAAA,CAACV,IAAI;MAAC8B,IAAI,EAAGrB;IAAY,CAAE,CAAC,GAE5BC,aAAA;MACCqB,SAAS,EAAC,kDAAkD;MAC5D,eAAY;IAAM,CACZ,CAER;IACDT,OAAO,EAAGG,cAAgB;IAAA,GACrBF;EAAK,CACV,CAAC;AAEJ,CACD,CAAC","ignoreList":[]}
@@ -1,61 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import {
5
- Icon,
6
- privateApis as componentsPrivateApis,
7
- } from '@wordpress/components';
8
- import { forwardRef } from '@wordpress/element';
9
- import { SVG, Circle } from '@wordpress/primitives';
10
-
11
- /**
12
- * Internal dependencies
13
- */
14
- import { unlock } from './lock-unlock';
15
-
16
- const { DropdownMenuItemV2: DropdownMenuItem } = unlock(
17
- componentsPrivateApis
18
- );
19
-
20
- const radioCheck = (
21
- <SVG xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
22
- <Circle cx={ 12 } cy={ 12 } r={ 3 }></Circle>
23
- </SVG>
24
- );
25
-
26
- /**
27
- * A custom implementation of a radio menu item using the standard menu item
28
- * component, which allows deselecting selected values.
29
- */
30
- export const DropdownMenuRadioItemCustom = forwardRef(
31
- function DropdownMenuRadioItemCustom(
32
- { checked, name, value, hideOnClick, onChange, onClick, ...props },
33
- ref
34
- ) {
35
- const onClickHandler = ( e ) => {
36
- onClick?.( e );
37
- onChange?.( { ...e, target: { ...e.target, value } } );
38
- };
39
- return (
40
- <DropdownMenuItem
41
- ref={ ref }
42
- role="menuitemradio"
43
- name={ name }
44
- aria-checked={ checked }
45
- hideOnClick={ !! hideOnClick }
46
- prefix={
47
- checked ? (
48
- <Icon icon={ radioCheck } />
49
- ) : (
50
- <span
51
- className="dataviews-filters__custom-menu-radio-item-prefix"
52
- aria-hidden="true"
53
- ></span>
54
- )
55
- }
56
- onClick={ onClickHandler }
57
- { ...props }
58
- />
59
- );
60
- }
61
- );
package/src/view-list.js DELETED
@@ -1,207 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import classNames from 'classnames';
5
-
6
- /**
7
- * WordPress dependencies
8
- */
9
- import { useInstanceId } from '@wordpress/compose';
10
- import {
11
- __experimentalHStack as HStack,
12
- __experimentalVStack as VStack,
13
- privateApis as componentsPrivateApis,
14
- Spinner,
15
- VisuallyHidden,
16
- } from '@wordpress/components';
17
- import { useCallback, useEffect, useRef } from '@wordpress/element';
18
- import { __ } from '@wordpress/i18n';
19
-
20
- /**
21
- * Internal dependencies
22
- */
23
- import { unlock } from './lock-unlock';
24
-
25
- const {
26
- useCompositeStoreV2: useCompositeStore,
27
- CompositeV2: Composite,
28
- CompositeItemV2: CompositeItem,
29
- CompositeRowV2: CompositeRow,
30
- } = unlock( componentsPrivateApis );
31
-
32
- function ListItem( {
33
- id,
34
- item,
35
- isSelected,
36
- onSelect,
37
- mediaField,
38
- primaryField,
39
- visibleFields,
40
- } ) {
41
- const itemRef = useRef( null );
42
- const labelId = `${ id }-label`;
43
- const descriptionId = `${ id }-description`;
44
-
45
- useEffect( () => {
46
- if ( isSelected ) {
47
- itemRef.current?.scrollIntoView( {
48
- behavior: 'auto',
49
- block: 'nearest',
50
- inline: 'nearest',
51
- } );
52
- }
53
- }, [ isSelected ] );
54
-
55
- return (
56
- <CompositeRow
57
- ref={ itemRef }
58
- render={ <li /> }
59
- role="row"
60
- className={ classNames( {
61
- 'is-selected': isSelected,
62
- } ) }
63
- >
64
- <HStack className="dataviews-view-list__item-wrapper">
65
- <div role="gridcell">
66
- <CompositeItem
67
- render={ <div /> }
68
- role="button"
69
- id={ id }
70
- aria-pressed={ isSelected }
71
- aria-labelledby={ labelId }
72
- aria-describedby={ descriptionId }
73
- className="dataviews-view-list__item"
74
- onClick={ () => onSelect( item ) }
75
- >
76
- <HStack
77
- spacing={ 3 }
78
- justify="start"
79
- alignment="flex-start"
80
- >
81
- <div className="dataviews-view-list__media-wrapper">
82
- { mediaField?.render( { item } ) || (
83
- <div className="dataviews-view-list__media-placeholder"></div>
84
- ) }
85
- </div>
86
- <VStack spacing={ 1 }>
87
- <span
88
- className="dataviews-view-list__primary-field"
89
- id={ labelId }
90
- >
91
- { primaryField?.render( { item } ) }
92
- </span>
93
- <div
94
- className="dataviews-view-list__fields"
95
- id={ descriptionId }
96
- >
97
- { visibleFields.map( ( field ) => (
98
- <div
99
- key={ field.id }
100
- className="dataviews-view-list__field"
101
- >
102
- <VisuallyHidden
103
- as="span"
104
- className="dataviews-view-list__field-label"
105
- >
106
- { field.header }
107
- </VisuallyHidden>
108
- <span className="dataviews-view-list__field-value">
109
- { field.render( { item } ) }
110
- </span>
111
- </div>
112
- ) ) }
113
- </div>
114
- </VStack>
115
- </HStack>
116
- </CompositeItem>
117
- </div>
118
- </HStack>
119
- </CompositeRow>
120
- );
121
- }
122
-
123
- export default function ViewList( {
124
- view,
125
- fields,
126
- data,
127
- isLoading,
128
- getItemId,
129
- onSelectionChange,
130
- selection,
131
- id: preferredId,
132
- } ) {
133
- const baseId = useInstanceId( ViewList, 'view-list', preferredId );
134
- const selectedItem = data?.findLast( ( item ) =>
135
- selection.includes( item.id )
136
- );
137
-
138
- const mediaField = fields.find(
139
- ( field ) => field.id === view.layout.mediaField
140
- );
141
- const primaryField = fields.find(
142
- ( field ) => field.id === view.layout.primaryField
143
- );
144
- const visibleFields = fields.filter(
145
- ( field ) =>
146
- ! view.hiddenFields.includes( field.id ) &&
147
- ! [ view.layout.primaryField, view.layout.mediaField ].includes(
148
- field.id
149
- )
150
- );
151
-
152
- const onSelect = useCallback(
153
- ( item ) => onSelectionChange( [ item ] ),
154
- [ onSelectionChange ]
155
- );
156
-
157
- const getItemDomId = useCallback(
158
- ( item ) => ( item ? `${ baseId }-${ getItemId( item ) }` : undefined ),
159
- [ baseId, getItemId ]
160
- );
161
-
162
- const store = useCompositeStore( {
163
- defaultActiveId: getItemDomId( selectedItem ),
164
- } );
165
-
166
- const hasData = data?.length;
167
- if ( ! hasData ) {
168
- return (
169
- <div
170
- className={ classNames( {
171
- 'dataviews-loading': isLoading,
172
- 'dataviews-no-results': ! hasData && ! isLoading,
173
- } ) }
174
- >
175
- { ! hasData && (
176
- <p>{ isLoading ? <Spinner /> : __( 'No results' ) }</p>
177
- ) }
178
- </div>
179
- );
180
- }
181
-
182
- return (
183
- <Composite
184
- id={ baseId }
185
- render={ <ul /> }
186
- className="dataviews-view-list"
187
- role="grid"
188
- store={ store }
189
- >
190
- { data.map( ( item ) => {
191
- const id = getItemDomId( item );
192
- return (
193
- <ListItem
194
- key={ id }
195
- id={ id }
196
- item={ item }
197
- isSelected={ item === selectedItem }
198
- onSelect={ onSelect }
199
- mediaField={ mediaField }
200
- primaryField={ primaryField }
201
- visibleFields={ visibleFields }
202
- />
203
- );
204
- } ) }
205
- </Composite>
206
- );
207
- }
File without changes
File without changes
File without changes