@wordpress/dataviews 4.1.0 → 4.3.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 (223) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +77 -29
  3. package/build/components/dataviews/index.js +10 -14
  4. package/build/components/dataviews/index.js.map +1 -1
  5. package/build/components/dataviews-bulk-actions/index.js +145 -141
  6. package/build/components/dataviews-bulk-actions/index.js.map +1 -1
  7. package/build/components/dataviews-filters/add-filter.js +4 -6
  8. package/build/components/dataviews-filters/add-filter.js.map +1 -1
  9. package/build/components/dataviews-filters/index.js +3 -0
  10. package/build/components/dataviews-filters/index.js.map +1 -1
  11. package/build/components/dataviews-filters/search-widget.js +30 -23
  12. package/build/components/dataviews-filters/search-widget.js.map +1 -1
  13. package/build/components/dataviews-footer/index.js +45 -0
  14. package/build/components/dataviews-footer/index.js.map +1 -0
  15. package/build/components/dataviews-item-actions/index.js +5 -8
  16. package/build/components/dataviews-item-actions/index.js.map +1 -1
  17. package/build/components/dataviews-pagination/index.js +27 -19
  18. package/build/components/dataviews-pagination/index.js.map +1 -1
  19. package/build/components/dataviews-view-config/index.js +197 -41
  20. package/build/components/dataviews-view-config/index.js.map +1 -1
  21. package/build/dataform-controls/datetime.js +49 -0
  22. package/build/dataform-controls/datetime.js.map +1 -0
  23. package/build/dataform-controls/index.js +50 -0
  24. package/build/dataform-controls/index.js.map +1 -0
  25. package/build/dataform-controls/integer.js +45 -0
  26. package/build/dataform-controls/integer.js.map +1 -0
  27. package/build/dataform-controls/radio.js +45 -0
  28. package/build/dataform-controls/radio.js.map +1 -0
  29. package/build/dataform-controls/select.js +58 -0
  30. package/build/dataform-controls/select.js.map +1 -0
  31. package/build/dataform-controls/text.js +45 -0
  32. package/build/dataform-controls/text.js.map +1 -0
  33. package/build/dataforms-layouts/panel/index.js +10 -4
  34. package/build/dataforms-layouts/panel/index.js.map +1 -1
  35. package/build/dataforms-layouts/regular/index.js +6 -3
  36. package/build/dataforms-layouts/regular/index.js.map +1 -1
  37. package/build/dataviews-layouts/grid/density-picker.js +23 -52
  38. package/build/dataviews-layouts/grid/density-picker.js.map +1 -1
  39. package/build/dataviews-layouts/grid/index.js +1 -1
  40. package/build/dataviews-layouts/grid/index.js.map +1 -1
  41. package/build/dataviews-layouts/index.js +48 -2
  42. package/build/dataviews-layouts/index.js.map +1 -1
  43. package/build/dataviews-layouts/list/index.js +124 -80
  44. package/build/dataviews-layouts/list/index.js.map +1 -1
  45. package/build/dataviews-layouts/table/column-header-menu.js +52 -57
  46. package/build/dataviews-layouts/table/column-header-menu.js.map +1 -1
  47. package/build/dataviews-layouts/table/index.js +7 -35
  48. package/build/dataviews-layouts/table/index.js.map +1 -1
  49. package/build/field-types/datetime.js +30 -0
  50. package/build/field-types/datetime.js.map +1 -0
  51. package/build/field-types/index.js +4 -0
  52. package/build/field-types/index.js.map +1 -1
  53. package/build/field-types/integer.js +1 -60
  54. package/build/field-types/integer.js.map +1 -1
  55. package/build/field-types/text.js +1 -60
  56. package/build/field-types/text.js.map +1 -1
  57. package/build/normalize-fields.js +10 -9
  58. package/build/normalize-fields.js.map +1 -1
  59. package/build/types.js.map +1 -1
  60. package/build-module/components/dataviews/index.js +10 -14
  61. package/build-module/components/dataviews/index.js.map +1 -1
  62. package/build-module/components/dataviews-bulk-actions/index.js +145 -143
  63. package/build-module/components/dataviews-bulk-actions/index.js.map +1 -1
  64. package/build-module/components/dataviews-filters/add-filter.js +4 -6
  65. package/build-module/components/dataviews-filters/add-filter.js.map +1 -1
  66. package/build-module/components/dataviews-filters/index.js +3 -0
  67. package/build-module/components/dataviews-filters/index.js.map +1 -1
  68. package/build-module/components/dataviews-filters/search-widget.js +30 -23
  69. package/build-module/components/dataviews-filters/search-widget.js.map +1 -1
  70. package/build-module/components/dataviews-footer/index.js +38 -0
  71. package/build-module/components/dataviews-footer/index.js.map +1 -0
  72. package/build-module/components/dataviews-item-actions/index.js +5 -8
  73. package/build-module/components/dataviews-item-actions/index.js.map +1 -1
  74. package/build-module/components/dataviews-pagination/index.js +28 -20
  75. package/build-module/components/dataviews-pagination/index.js.map +1 -1
  76. package/build-module/components/dataviews-view-config/index.js +203 -47
  77. package/build-module/components/dataviews-view-config/index.js.map +1 -1
  78. package/build-module/dataform-controls/datetime.js +43 -0
  79. package/build-module/dataform-controls/datetime.js.map +1 -0
  80. package/build-module/dataform-controls/index.js +42 -0
  81. package/build-module/dataform-controls/index.js.map +1 -0
  82. package/build-module/dataform-controls/integer.js +38 -0
  83. package/build-module/dataform-controls/integer.js.map +1 -0
  84. package/build-module/dataform-controls/radio.js +38 -0
  85. package/build-module/dataform-controls/radio.js.map +1 -0
  86. package/build-module/dataform-controls/select.js +51 -0
  87. package/build-module/dataform-controls/select.js.map +1 -0
  88. package/build-module/dataform-controls/text.js +38 -0
  89. package/build-module/dataform-controls/text.js.map +1 -0
  90. package/build-module/dataforms-layouts/panel/index.js +10 -4
  91. package/build-module/dataforms-layouts/panel/index.js.map +1 -1
  92. package/build-module/dataforms-layouts/regular/index.js +6 -3
  93. package/build-module/dataforms-layouts/regular/index.js.map +1 -1
  94. package/build-module/dataviews-layouts/grid/density-picker.js +25 -56
  95. package/build-module/dataviews-layouts/grid/density-picker.js.map +1 -1
  96. package/build-module/dataviews-layouts/grid/index.js +1 -1
  97. package/build-module/dataviews-layouts/grid/index.js.map +1 -1
  98. package/build-module/dataviews-layouts/index.js +45 -1
  99. package/build-module/dataviews-layouts/index.js.map +1 -1
  100. package/build-module/dataviews-layouts/list/index.js +125 -80
  101. package/build-module/dataviews-layouts/list/index.js.map +1 -1
  102. package/build-module/dataviews-layouts/table/column-header-menu.js +52 -57
  103. package/build-module/dataviews-layouts/table/column-header-menu.js.map +1 -1
  104. package/build-module/dataviews-layouts/table/index.js +9 -37
  105. package/build-module/dataviews-layouts/table/index.js.map +1 -1
  106. package/build-module/field-types/datetime.js +24 -0
  107. package/build-module/field-types/datetime.js.map +1 -0
  108. package/build-module/field-types/index.js +4 -0
  109. package/build-module/field-types/index.js.map +1 -1
  110. package/build-module/field-types/integer.js +2 -60
  111. package/build-module/field-types/integer.js.map +1 -1
  112. package/build-module/field-types/text.js +2 -60
  113. package/build-module/field-types/text.js.map +1 -1
  114. package/build-module/normalize-fields.js +11 -9
  115. package/build-module/normalize-fields.js.map +1 -1
  116. package/build-module/types.js.map +1 -1
  117. package/build-style/style-rtl.css +93 -80
  118. package/build-style/style.css +93 -80
  119. package/build-types/components/dataform/stories/index.story.d.ts.map +1 -1
  120. package/build-types/components/dataviews/index.d.ts.map +1 -1
  121. package/build-types/components/dataviews/stories/fixtures.d.ts +28 -113
  122. package/build-types/components/dataviews/stories/fixtures.d.ts.map +1 -1
  123. package/build-types/components/dataviews/stories/index.story.d.ts +12 -44
  124. package/build-types/components/dataviews/stories/index.story.d.ts.map +1 -1
  125. package/build-types/components/dataviews-bulk-actions/index.d.ts +11 -1
  126. package/build-types/components/dataviews-bulk-actions/index.d.ts.map +1 -1
  127. package/build-types/components/dataviews-filters/add-filter.d.ts.map +1 -1
  128. package/build-types/components/dataviews-filters/index.d.ts +1 -1
  129. package/build-types/components/dataviews-filters/index.d.ts.map +1 -1
  130. package/build-types/components/dataviews-filters/search-widget.d.ts.map +1 -1
  131. package/build-types/components/dataviews-footer/index.d.ts +2 -0
  132. package/build-types/components/dataviews-footer/index.d.ts.map +1 -0
  133. package/build-types/components/dataviews-item-actions/index.d.ts.map +1 -1
  134. package/build-types/components/dataviews-pagination/index.d.ts.map +1 -1
  135. package/build-types/components/dataviews-view-config/index.d.ts +4 -3
  136. package/build-types/components/dataviews-view-config/index.d.ts.map +1 -1
  137. package/build-types/dataform-controls/datetime.d.ts +6 -0
  138. package/build-types/dataform-controls/datetime.d.ts.map +1 -0
  139. package/build-types/dataform-controls/index.d.ts +11 -0
  140. package/build-types/dataform-controls/index.d.ts.map +1 -0
  141. package/build-types/dataform-controls/integer.d.ts +6 -0
  142. package/build-types/dataform-controls/integer.d.ts.map +1 -0
  143. package/build-types/dataform-controls/radio.d.ts +6 -0
  144. package/build-types/dataform-controls/radio.d.ts.map +1 -0
  145. package/build-types/dataform-controls/select.d.ts +6 -0
  146. package/build-types/dataform-controls/select.d.ts.map +1 -0
  147. package/build-types/dataform-controls/text.d.ts +6 -0
  148. package/build-types/dataform-controls/text.d.ts.map +1 -0
  149. package/build-types/dataforms-layouts/panel/index.d.ts.map +1 -1
  150. package/build-types/dataforms-layouts/regular/index.d.ts.map +1 -1
  151. package/build-types/dataviews-layouts/grid/density-picker.d.ts.map +1 -1
  152. package/build-types/dataviews-layouts/index.d.ts +4 -2
  153. package/build-types/dataviews-layouts/index.d.ts.map +1 -1
  154. package/build-types/dataviews-layouts/list/index.d.ts.map +1 -1
  155. package/build-types/dataviews-layouts/table/column-header-menu.d.ts.map +1 -1
  156. package/build-types/dataviews-layouts/table/index.d.ts.map +1 -1
  157. package/build-types/field-types/datetime.d.ts +13 -0
  158. package/build-types/field-types/datetime.d.ts.map +1 -0
  159. package/build-types/field-types/index.d.ts +1 -1
  160. package/build-types/field-types/index.d.ts.map +1 -1
  161. package/build-types/field-types/integer.d.ts +2 -3
  162. package/build-types/field-types/integer.d.ts.map +1 -1
  163. package/build-types/field-types/text.d.ts +2 -3
  164. package/build-types/field-types/text.d.ts.map +1 -1
  165. package/build-types/normalize-fields.d.ts.map +1 -1
  166. package/build-types/types.d.ts +43 -21
  167. package/build-types/types.d.ts.map +1 -1
  168. package/package.json +12 -12
  169. package/src/components/dataform/stories/index.story.tsx +43 -2
  170. package/src/components/dataviews/index.tsx +14 -18
  171. package/src/components/dataviews/stories/fixtures.tsx +690 -0
  172. package/src/components/dataviews/stories/index.story.tsx +164 -0
  173. package/src/components/dataviews/style.scss +2 -12
  174. package/src/components/dataviews-bulk-actions/index.tsx +264 -213
  175. package/src/components/dataviews-bulk-actions/style.scss +9 -4
  176. package/src/components/dataviews-filters/add-filter.tsx +7 -11
  177. package/src/components/dataviews-filters/index.tsx +3 -0
  178. package/src/components/dataviews-filters/search-widget.tsx +46 -25
  179. package/src/components/dataviews-filters/style.scss +13 -3
  180. package/src/components/dataviews-footer/index.tsx +50 -0
  181. package/src/components/dataviews-footer/style.scss +40 -0
  182. package/src/components/dataviews-item-actions/index.tsx +8 -14
  183. package/src/components/dataviews-pagination/index.tsx +40 -21
  184. package/src/components/dataviews-pagination/style.scss +7 -21
  185. package/src/components/dataviews-view-config/index.tsx +297 -69
  186. package/src/components/dataviews-view-config/style.scss +25 -0
  187. package/src/dataform-controls/datetime.tsx +43 -0
  188. package/src/dataform-controls/index.tsx +61 -0
  189. package/src/dataform-controls/integer.tsx +38 -0
  190. package/src/dataform-controls/radio.tsx +42 -0
  191. package/src/dataform-controls/select.tsx +52 -0
  192. package/src/dataform-controls/style.scss +4 -0
  193. package/src/dataform-controls/text.tsx +40 -0
  194. package/src/dataforms-layouts/panel/index.tsx +8 -2
  195. package/src/dataforms-layouts/regular/index.tsx +6 -2
  196. package/src/dataviews-layouts/grid/density-picker.tsx +33 -67
  197. package/src/dataviews-layouts/grid/index.tsx +1 -1
  198. package/src/dataviews-layouts/grid/style.scss +1 -5
  199. package/src/dataviews-layouts/index.ts +63 -2
  200. package/src/dataviews-layouts/list/index.tsx +199 -123
  201. package/src/dataviews-layouts/list/style.scss +10 -4
  202. package/src/dataviews-layouts/table/column-header-menu.tsx +86 -90
  203. package/src/dataviews-layouts/table/index.tsx +8 -65
  204. package/src/dataviews-layouts/table/style.scss +0 -5
  205. package/src/field-types/datetime.tsx +28 -0
  206. package/src/field-types/index.tsx +5 -0
  207. package/src/field-types/integer.tsx +2 -71
  208. package/src/field-types/text.tsx +2 -70
  209. package/src/normalize-fields.ts +10 -10
  210. package/src/style.scss +2 -1
  211. package/src/test/filter-and-sort-data-view.js +28 -0
  212. package/src/types.ts +56 -32
  213. package/tsconfig.tsbuildinfo +1 -1
  214. package/build/components/dataviews-bulk-actions-toolbar/index.js +0 -207
  215. package/build/components/dataviews-bulk-actions-toolbar/index.js.map +0 -1
  216. package/build-module/components/dataviews-bulk-actions-toolbar/index.js +0 -201
  217. package/build-module/components/dataviews-bulk-actions-toolbar/index.js.map +0 -1
  218. package/build-types/components/dataviews-bulk-actions-toolbar/index.d.ts +0 -2
  219. package/build-types/components/dataviews-bulk-actions-toolbar/index.d.ts.map +0 -1
  220. package/src/components/dataviews/stories/fixtures.js +0 -222
  221. package/src/components/dataviews/stories/index.story.js +0 -65
  222. package/src/components/dataviews-bulk-actions-toolbar/index.tsx +0 -288
  223. package/src/components/dataviews-bulk-actions-toolbar/style.scss +0 -45
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = Radio;
7
+ var _components = require("@wordpress/components");
8
+ var _element = require("@wordpress/element");
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ /**
11
+ * WordPress dependencies
12
+ */
13
+
14
+ /**
15
+ * Internal dependencies
16
+ */
17
+
18
+ function Radio({
19
+ data,
20
+ field,
21
+ onChange,
22
+ hideLabelFromVision
23
+ }) {
24
+ const {
25
+ id,
26
+ label
27
+ } = field;
28
+ const value = field.getValue({
29
+ item: data
30
+ });
31
+ const onChangeControl = (0, _element.useCallback)(newValue => onChange({
32
+ [id]: newValue
33
+ }), [id, onChange]);
34
+ if (field.elements) {
35
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.RadioControl, {
36
+ label: label,
37
+ onChange: onChangeControl,
38
+ options: field.elements,
39
+ selected: value,
40
+ hideLabelFromVision: hideLabelFromVision
41
+ });
42
+ }
43
+ return null;
44
+ }
45
+ //# sourceMappingURL=radio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_components","require","_element","_jsxRuntime","Radio","data","field","onChange","hideLabelFromVision","id","label","value","getValue","item","onChangeControl","useCallback","newValue","elements","jsx","RadioControl","options","selected"],"sources":["@wordpress/dataviews/src/dataform-controls/radio.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { RadioControl } from '@wordpress/components';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { DataFormControlProps } from '../types';\n\nexport default function Radio< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\thideLabelFromVision,\n}: DataFormControlProps< Item > ) {\n\tconst { id, label } = field;\n\tconst value = field.getValue( { item: data } );\n\n\tconst onChangeControl = useCallback(\n\t\t( newValue: string ) =>\n\t\t\tonChange( {\n\t\t\t\t[ id ]: newValue,\n\t\t\t} ),\n\t\t[ id, onChange ]\n\t);\n\n\tif ( field.elements ) {\n\t\treturn (\n\t\t\t<RadioControl\n\t\t\t\tlabel={ label }\n\t\t\t\tonChange={ onChangeControl }\n\t\t\t\toptions={ field.elements }\n\t\t\t\tselected={ value }\n\t\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn null;\n}\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAAiD,IAAAE,WAAA,GAAAF,OAAA;AAJjD;AACA;AACA;;AAIA;AACA;AACA;;AAGe,SAASG,KAAKA,CAAU;EACtCC,IAAI;EACJC,KAAK;EACLC,QAAQ;EACRC;AAC6B,CAAC,EAAG;EACjC,MAAM;IAAEC,EAAE;IAAEC;EAAM,CAAC,GAAGJ,KAAK;EAC3B,MAAMK,KAAK,GAAGL,KAAK,CAACM,QAAQ,CAAE;IAAEC,IAAI,EAAER;EAAK,CAAE,CAAC;EAE9C,MAAMS,eAAe,GAAG,IAAAC,oBAAW,EAChCC,QAAgB,IACjBT,QAAQ,CAAE;IACT,CAAEE,EAAE,GAAIO;EACT,CAAE,CAAC,EACJ,CAAEP,EAAE,EAAEF,QAAQ,CACf,CAAC;EAED,IAAKD,KAAK,CAACW,QAAQ,EAAG;IACrB,oBACC,IAAAd,WAAA,CAAAe,GAAA,EAAClB,WAAA,CAAAmB,YAAY;MACZT,KAAK,EAAGA,KAAO;MACfH,QAAQ,EAAGO,eAAiB;MAC5BM,OAAO,EAAGd,KAAK,CAACW,QAAU;MAC1BI,QAAQ,EAAGV,KAAO;MAClBH,mBAAmB,EAAGA;IAAqB,CAC3C,CAAC;EAEJ;EAEA,OAAO,IAAI;AACZ","ignoreList":[]}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = Select;
7
+ var _components = require("@wordpress/components");
8
+ var _element = require("@wordpress/element");
9
+ var _i18n = require("@wordpress/i18n");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ /**
12
+ * WordPress dependencies
13
+ */
14
+
15
+ /**
16
+ * Internal dependencies
17
+ */
18
+
19
+ function Select({
20
+ data,
21
+ field,
22
+ onChange,
23
+ hideLabelFromVision
24
+ }) {
25
+ var _field$getValue, _field$elements;
26
+ const {
27
+ id,
28
+ label
29
+ } = field;
30
+ const value = (_field$getValue = field.getValue({
31
+ item: data
32
+ })) !== null && _field$getValue !== void 0 ? _field$getValue : '';
33
+ const onChangeControl = (0, _element.useCallback)(newValue => onChange({
34
+ [id]: newValue
35
+ }), [id, onChange]);
36
+ const elements = [
37
+ /*
38
+ * Value can be undefined when:
39
+ *
40
+ * - the field is not required
41
+ * - in bulk editing
42
+ *
43
+ */
44
+ {
45
+ label: (0, _i18n.__)('Select item'),
46
+ value: ''
47
+ }, ...((_field$elements = field?.elements) !== null && _field$elements !== void 0 ? _field$elements : [])];
48
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.SelectControl, {
49
+ label: label,
50
+ value: value,
51
+ options: elements,
52
+ onChange: onChangeControl,
53
+ __next40pxDefaultSize: true,
54
+ __nextHasNoMarginBottom: true,
55
+ hideLabelFromVision: hideLabelFromVision
56
+ });
57
+ }
58
+ //# sourceMappingURL=select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_components","require","_element","_i18n","_jsxRuntime","Select","data","field","onChange","hideLabelFromVision","_field$getValue","_field$elements","id","label","value","getValue","item","onChangeControl","useCallback","newValue","elements","__","jsx","SelectControl","options","__next40pxDefaultSize","__nextHasNoMarginBottom"],"sources":["@wordpress/dataviews/src/dataform-controls/select.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { SelectControl } from '@wordpress/components';\nimport { useCallback } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { DataFormControlProps } from '../types';\n\nexport default function Select< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\thideLabelFromVision,\n}: DataFormControlProps< Item > ) {\n\tconst { id, label } = field;\n\tconst value = field.getValue( { item: data } ) ?? '';\n\tconst onChangeControl = useCallback(\n\t\t( newValue: any ) =>\n\t\t\tonChange( {\n\t\t\t\t[ id ]: newValue,\n\t\t\t} ),\n\t\t[ id, onChange ]\n\t);\n\n\tconst elements = [\n\t\t/*\n\t\t * Value can be undefined when:\n\t\t *\n\t\t * - the field is not required\n\t\t * - in bulk editing\n\t\t *\n\t\t */\n\t\t{ label: __( 'Select item' ), value: '' },\n\t\t...( field?.elements ?? [] ),\n\t];\n\n\treturn (\n\t\t<SelectControl\n\t\t\tlabel={ label }\n\t\t\tvalue={ value }\n\t\t\toptions={ elements }\n\t\t\tonChange={ onChangeControl }\n\t\t\t__next40pxDefaultSize\n\t\t\t__nextHasNoMarginBottom\n\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAAqC,IAAAG,WAAA,GAAAH,OAAA;AALrC;AACA;AACA;;AAKA;AACA;AACA;;AAGe,SAASI,MAAMA,CAAU;EACvCC,IAAI;EACJC,KAAK;EACLC,QAAQ;EACRC;AAC6B,CAAC,EAAG;EAAA,IAAAC,eAAA,EAAAC,eAAA;EACjC,MAAM;IAAEC,EAAE;IAAEC;EAAM,CAAC,GAAGN,KAAK;EAC3B,MAAMO,KAAK,IAAAJ,eAAA,GAAGH,KAAK,CAACQ,QAAQ,CAAE;IAAEC,IAAI,EAAEV;EAAK,CAAE,CAAC,cAAAI,eAAA,cAAAA,eAAA,GAAI,EAAE;EACpD,MAAMO,eAAe,GAAG,IAAAC,oBAAW,EAChCC,QAAa,IACdX,QAAQ,CAAE;IACT,CAAEI,EAAE,GAAIO;EACT,CAAE,CAAC,EACJ,CAAEP,EAAE,EAAEJ,QAAQ,CACf,CAAC;EAED,MAAMY,QAAQ,GAAG;EAChB;AACF;AACA;AACA;AACA;AACA;AACA;EACE;IAAEP,KAAK,EAAE,IAAAQ,QAAE,EAAE,aAAc,CAAC;IAAEP,KAAK,EAAE;EAAG,CAAC,EACzC,KAAAH,eAAA,GAAKJ,KAAK,EAAEa,QAAQ,cAAAT,eAAA,cAAAA,eAAA,GAAI,EAAE,CAAE,CAC5B;EAED,oBACC,IAAAP,WAAA,CAAAkB,GAAA,EAACtB,WAAA,CAAAuB,aAAa;IACbV,KAAK,EAAGA,KAAO;IACfC,KAAK,EAAGA,KAAO;IACfU,OAAO,EAAGJ,QAAU;IACpBZ,QAAQ,EAAGS,eAAiB;IAC5BQ,qBAAqB;IACrBC,uBAAuB;IACvBjB,mBAAmB,EAAGA;EAAqB,CAC3C,CAAC;AAEJ","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = Text;
7
+ var _components = require("@wordpress/components");
8
+ var _element = require("@wordpress/element");
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ /**
11
+ * WordPress dependencies
12
+ */
13
+
14
+ /**
15
+ * Internal dependencies
16
+ */
17
+
18
+ function Text({
19
+ data,
20
+ field,
21
+ onChange,
22
+ hideLabelFromVision
23
+ }) {
24
+ const {
25
+ id,
26
+ label,
27
+ placeholder
28
+ } = field;
29
+ const value = field.getValue({
30
+ item: data
31
+ });
32
+ const onChangeControl = (0, _element.useCallback)(newValue => onChange({
33
+ [id]: newValue
34
+ }), [id, onChange]);
35
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.TextControl, {
36
+ label: label,
37
+ placeholder: placeholder,
38
+ value: value !== null && value !== void 0 ? value : '',
39
+ onChange: onChangeControl,
40
+ __next40pxDefaultSize: true,
41
+ __nextHasNoMarginBottom: true,
42
+ hideLabelFromVision: hideLabelFromVision
43
+ });
44
+ }
45
+ //# sourceMappingURL=text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_components","require","_element","_jsxRuntime","Text","data","field","onChange","hideLabelFromVision","id","label","placeholder","value","getValue","item","onChangeControl","useCallback","newValue","jsx","TextControl","__next40pxDefaultSize","__nextHasNoMarginBottom"],"sources":["@wordpress/dataviews/src/dataform-controls/text.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { TextControl } from '@wordpress/components';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { DataFormControlProps } from '../types';\n\nexport default function Text< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\thideLabelFromVision,\n}: DataFormControlProps< Item > ) {\n\tconst { id, label, placeholder } = field;\n\tconst value = field.getValue( { item: data } );\n\n\tconst onChangeControl = useCallback(\n\t\t( newValue: string ) =>\n\t\t\tonChange( {\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={ label }\n\t\t\tplaceholder={ placeholder }\n\t\t\tvalue={ value ?? '' }\n\t\t\tonChange={ onChangeControl }\n\t\t\t__next40pxDefaultSize\n\t\t\t__nextHasNoMarginBottom\n\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAAiD,IAAAE,WAAA,GAAAF,OAAA;AAJjD;AACA;AACA;;AAIA;AACA;AACA;;AAGe,SAASG,IAAIA,CAAU;EACrCC,IAAI;EACJC,KAAK;EACLC,QAAQ;EACRC;AAC6B,CAAC,EAAG;EACjC,MAAM;IAAEC,EAAE;IAAEC,KAAK;IAAEC;EAAY,CAAC,GAAGL,KAAK;EACxC,MAAMM,KAAK,GAAGN,KAAK,CAACO,QAAQ,CAAE;IAAEC,IAAI,EAAET;EAAK,CAAE,CAAC;EAE9C,MAAMU,eAAe,GAAG,IAAAC,oBAAW,EAChCC,QAAgB,IACjBV,QAAQ,CAAE;IACT,CAAEE,EAAE,GAAIQ;EACT,CAAE,CAAC,EACJ,CAAER,EAAE,EAAEF,QAAQ,CACf,CAAC;EAED,oBACC,IAAAJ,WAAA,CAAAe,GAAA,EAAClB,WAAA,CAAAmB,WAAW;IACXT,KAAK,EAAGA,KAAO;IACfC,WAAW,EAAGA,WAAa;IAC3BC,KAAK,EAAGA,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,EAAI;IACrBL,QAAQ,EAAGQ,eAAiB;IAC5BK,qBAAqB;IACrBC,uBAAuB;IACvBb,mBAAmB,EAAGA;EAAqB,CAC3C,CAAC;AAEJ","ignoreList":[]}
@@ -31,7 +31,10 @@ function DropdownHeader({
31
31
  level: 2,
32
32
  size: 13,
33
33
  children: title
34
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalSpacer, {}), onClose && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
34
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalSpacer, {}), onClose && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button
35
+ // TODO: Switch to `true` (40px size) if possible
36
+ , {
37
+ __next40pxDefaultSize: false,
35
38
  className: "dataforms-layouts-panel__dropdown-header-action",
36
39
  label: (0, _i18n.__)('Close'),
37
40
  icon: _icons.closeSmall,
@@ -112,9 +115,12 @@ function FormPanel({
112
115
  form,
113
116
  onChange
114
117
  }) {
115
- const visibleFields = (0, _element.useMemo)(() => (0, _normalizeFields.normalizeFields)(fields.filter(({
116
- id
117
- }) => !!form.fields?.includes(id))), [fields, form.fields]);
118
+ const visibleFields = (0, _element.useMemo)(() => {
119
+ var _form$fields;
120
+ return (0, _normalizeFields.normalizeFields)(((_form$fields = form.fields) !== null && _form$fields !== void 0 ? _form$fields : []).map(fieldId => fields.find(({
121
+ id
122
+ }) => id === fieldId)).filter(field => !!field));
123
+ }, [fields, form.fields]);
118
124
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalVStack, {
119
125
  spacing: 2,
120
126
  children: visibleFields.map(field => {
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_element","_i18n","_icons","_normalizeFields","_jsxRuntime","DropdownHeader","title","onClose","jsx","__experimentalVStack","className","spacing","children","jsxs","__experimentalHStack","alignment","__experimentalHeading","level","size","__experimentalSpacer","Button","label","__","icon","closeSmall","onClick","FormField","data","field","onChange","popoverAnchor","setPopoverAnchor","useState","popoverProps","useMemo","anchor","placement","offset","shift","ref","Dropdown","contentClassName","focusOnMount","toggleProps","variant","tooltipPosition","renderToggle","isOpen","onToggle","sprintf","render","item","renderContent","Fragment","Edit","hideLabelFromVision","id","FormPanel","fields","form","visibleFields","normalizeFields","filter","includes","map"],"sources":["@wordpress/dataviews/src/dataforms-layouts/panel/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalSpacer as Spacer,\n\tDropdown,\n\tButton,\n} from '@wordpress/components';\nimport { useState, useMemo } from '@wordpress/element';\nimport { sprintf, __ } from '@wordpress/i18n';\nimport { closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { normalizeFields } from '../../normalize-fields';\nimport type { DataFormProps, NormalizedField } from '../../types';\n\ninterface FormFieldProps< Item > {\n\tdata: Item;\n\tfield: NormalizedField< Item >;\n\tonChange: ( value: any ) => void;\n}\n\nfunction DropdownHeader( {\n\ttitle,\n\tonClose,\n}: {\n\ttitle: string;\n\tonClose: () => void;\n} ) {\n\treturn (\n\t\t<VStack\n\t\t\tclassName=\"dataforms-layouts-panel__dropdown-header\"\n\t\t\tspacing={ 4 }\n\t\t>\n\t\t\t<HStack alignment=\"center\">\n\t\t\t\t<Heading level={ 2 } size={ 13 }>\n\t\t\t\t\t{ title }\n\t\t\t\t</Heading>\n\t\t\t\t<Spacer />\n\t\t\t\t{ onClose && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"dataforms-layouts-panel__dropdown-header-action\"\n\t\t\t\t\t\tlabel={ __( 'Close' ) }\n\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n\nfunction FormField< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n}: FormFieldProps< Item > ) {\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState< HTMLElement | null >(\n\t\tnull\n\t);\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t// Anchor the popover to the middle of the entire row so that it doesn't\n\t\t\t// move around when the label changes.\n\t\t\tanchor: popoverAnchor,\n\t\t\tplacement: 'left-start',\n\t\t\toffset: 36,\n\t\t\tshift: true,\n\t\t} ),\n\t\t[ popoverAnchor ]\n\t);\n\n\treturn (\n\t\t<HStack\n\t\t\tref={ setPopoverAnchor }\n\t\t\tclassName=\"dataforms-layouts-panel__field\"\n\t\t>\n\t\t\t<div className=\"dataforms-layouts-panel__field-label\">\n\t\t\t\t{ field.label }\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<Dropdown\n\t\t\t\t\tcontentClassName=\"dataforms-layouts-panel__field-dropdown\"\n\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\tfocusOnMount\n\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\tsize: 'compact',\n\t\t\t\t\t\tvariant: 'tertiary',\n\t\t\t\t\t\ttooltipPosition: 'middle left',\n\t\t\t\t\t} }\n\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"dataforms-layouts-panel__field-control\"\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Field name.\n\t\t\t\t\t\t\t\t__( 'Edit %s' ),\n\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<field.render item={ data } />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<DropdownHeader\n\t\t\t\t\t\t\t\ttitle={ field.label }\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<field.Edit\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</HStack>\n\t);\n}\n\nexport default function FormPanel< 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( ( { id } ) => !! form.fields?.includes( id ) )\n\t\t\t),\n\t\t[ fields, form.fields ]\n\t);\n\n\treturn (\n\t\t<VStack spacing={ 2 }>\n\t\t\t{ visibleFields.map( ( field ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<FormField\n\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</VStack>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_element","_i18n","_icons","_normalizeFields","_jsxRuntime","DropdownHeader","title","onClose","jsx","__experimentalVStack","className","spacing","children","jsxs","__experimentalHStack","alignment","__experimentalHeading","level","size","__experimentalSpacer","Button","__next40pxDefaultSize","label","__","icon","closeSmall","onClick","FormField","data","field","onChange","popoverAnchor","setPopoverAnchor","useState","popoverProps","useMemo","anchor","placement","offset","shift","ref","Dropdown","contentClassName","focusOnMount","toggleProps","variant","tooltipPosition","renderToggle","isOpen","onToggle","sprintf","render","item","renderContent","Fragment","Edit","hideLabelFromVision","id","FormPanel","fields","form","visibleFields","_form$fields","normalizeFields","map","fieldId","find","filter"],"sources":["@wordpress/dataviews/src/dataforms-layouts/panel/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalSpacer as Spacer,\n\tDropdown,\n\tButton,\n} from '@wordpress/components';\nimport { useState, useMemo } from '@wordpress/element';\nimport { sprintf, __ } from '@wordpress/i18n';\nimport { closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { normalizeFields } from '../../normalize-fields';\nimport type { DataFormProps, NormalizedField, Field } from '../../types';\n\ninterface FormFieldProps< Item > {\n\tdata: Item;\n\tfield: NormalizedField< Item >;\n\tonChange: ( value: any ) => void;\n}\n\nfunction DropdownHeader( {\n\ttitle,\n\tonClose,\n}: {\n\ttitle: string;\n\tonClose: () => void;\n} ) {\n\treturn (\n\t\t<VStack\n\t\t\tclassName=\"dataforms-layouts-panel__dropdown-header\"\n\t\t\tspacing={ 4 }\n\t\t>\n\t\t\t<HStack alignment=\"center\">\n\t\t\t\t<Heading level={ 2 } size={ 13 }>\n\t\t\t\t\t{ title }\n\t\t\t\t</Heading>\n\t\t\t\t<Spacer />\n\t\t\t\t{ onClose && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\t// TODO: Switch to `true` (40px size) if possible\n\t\t\t\t\t\t__next40pxDefaultSize={ false }\n\t\t\t\t\t\tclassName=\"dataforms-layouts-panel__dropdown-header-action\"\n\t\t\t\t\t\tlabel={ __( 'Close' ) }\n\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n\nfunction FormField< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n}: FormFieldProps< Item > ) {\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState< HTMLElement | null >(\n\t\tnull\n\t);\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t// Anchor the popover to the middle of the entire row so that it doesn't\n\t\t\t// move around when the label changes.\n\t\t\tanchor: popoverAnchor,\n\t\t\tplacement: 'left-start',\n\t\t\toffset: 36,\n\t\t\tshift: true,\n\t\t} ),\n\t\t[ popoverAnchor ]\n\t);\n\n\treturn (\n\t\t<HStack\n\t\t\tref={ setPopoverAnchor }\n\t\t\tclassName=\"dataforms-layouts-panel__field\"\n\t\t>\n\t\t\t<div className=\"dataforms-layouts-panel__field-label\">\n\t\t\t\t{ field.label }\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<Dropdown\n\t\t\t\t\tcontentClassName=\"dataforms-layouts-panel__field-dropdown\"\n\t\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\t\tfocusOnMount\n\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\tsize: 'compact',\n\t\t\t\t\t\tvariant: 'tertiary',\n\t\t\t\t\t\ttooltipPosition: 'middle left',\n\t\t\t\t\t} }\n\t\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"dataforms-layouts-panel__field-control\"\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t\t// translators: %s: Field name.\n\t\t\t\t\t\t\t\t__( 'Edit %s' ),\n\t\t\t\t\t\t\t\tfield.label\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<field.render item={ data } />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<DropdownHeader\n\t\t\t\t\t\t\t\ttitle={ field.label }\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<field.Edit\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</HStack>\n\t);\n}\n\nexport default function FormPanel< 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\t( form.fields ?? [] )\n\t\t\t\t\t.map( ( fieldId ) =>\n\t\t\t\t\t\tfields.find( ( { id } ) => id === fieldId )\n\t\t\t\t\t)\n\t\t\t\t\t.filter( ( field ): field is Field< Item > => !! field )\n\t\t\t),\n\t\t[ fields, form.fields ]\n\t);\n\n\treturn (\n\t\t<VStack spacing={ 2 }>\n\t\t\t{ visibleFields.map( ( field ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<FormField\n\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</VStack>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -22,9 +22,12 @@ function FormRegular({
22
22
  form,
23
23
  onChange
24
24
  }) {
25
- const visibleFields = (0, _element.useMemo)(() => (0, _normalizeFields.normalizeFields)(fields.filter(({
26
- id
27
- }) => !!form.fields?.includes(id))), [fields, form.fields]);
25
+ const visibleFields = (0, _element.useMemo)(() => {
26
+ var _form$fields;
27
+ return (0, _normalizeFields.normalizeFields)(((_form$fields = form.fields) !== null && _form$fields !== void 0 ? _form$fields : []).map(fieldId => fields.find(({
28
+ id
29
+ }) => id === fieldId)).filter(field => !!field));
30
+ }, [fields, form.fields]);
28
31
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalVStack, {
29
32
  spacing: 4,
30
33
  children: visibleFields.map(field => {
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_element","_normalizeFields","_jsxRuntime","FormRegular","data","fields","form","onChange","visibleFields","useMemo","normalizeFields","filter","id","includes","jsx","__experimentalVStack","spacing","children","map","field","Edit"],"sources":["@wordpress/dataviews/src/dataforms-layouts/regular/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalVStack as VStack } from '@wordpress/components';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { normalizeFields } from '../../normalize-fields';\nimport type { DataFormProps } from '../../types';\n\nexport default function FormRegular< 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( ( { id } ) => !! form.fields?.includes( id ) )\n\t\t\t),\n\t\t[ fields, form.fields ]\n\t);\n\n\treturn (\n\t\t<VStack spacing={ 4 }>\n\t\t\t{ visibleFields.map( ( field ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<field.Edit\n\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</VStack>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAKA,IAAAE,gBAAA,GAAAF,OAAA;AAAyD,IAAAG,WAAA,GAAAH,OAAA;AATzD;AACA;AACA;;AAIA;AACA;AACA;;AAIe,SAASI,WAAWA,CAAU;EAC5CC,IAAI;EACJC,MAAM;EACNC,IAAI;EACJC;AACsB,CAAC,EAAG;EAC1B,MAAMC,aAAa,GAAG,IAAAC,gBAAO,EAC5B,MACC,IAAAC,gCAAe,EACdL,MAAM,CAACM,MAAM,CAAE,CAAE;IAAEC;EAAG,CAAC,KAAM,CAAC,CAAEN,IAAI,CAACD,MAAM,EAAEQ,QAAQ,CAAED,EAAG,CAAE,CAC7D,CAAC,EACF,CAAEP,MAAM,EAAEC,IAAI,CAACD,MAAM,CACtB,CAAC;EAED,oBACC,IAAAH,WAAA,CAAAY,GAAA,EAAChB,WAAA,CAAAiB,oBAAM;IAACC,OAAO,EAAG,CAAG;IAAAC,QAAA,EAClBT,aAAa,CAACU,GAAG,CAAIC,KAAK,IAAM;MACjC,oBACC,IAAAjB,WAAA,CAAAY,GAAA,EAACK,KAAK,CAACC,IAAI;QAEVhB,IAAI,EAAGA,IAAM;QACbe,KAAK,EAAGA,KAAO;QACfZ,QAAQ,EAAGA;MAAU,GAHfY,KAAK,CAACP,EAIZ,CAAC;IAEJ,CAAE;EAAC,CACI,CAAC;AAEX","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_element","_normalizeFields","_jsxRuntime","FormRegular","data","fields","form","onChange","visibleFields","useMemo","_form$fields","normalizeFields","map","fieldId","find","id","filter","field","jsx","__experimentalVStack","spacing","children","Edit"],"sources":["@wordpress/dataviews/src/dataforms-layouts/regular/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalVStack as VStack } from '@wordpress/components';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { normalizeFields } from '../../normalize-fields';\nimport type { DataFormProps, Field } from '../../types';\n\nexport default function FormRegular< 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\t( form.fields ?? [] )\n\t\t\t\t\t.map( ( fieldId ) =>\n\t\t\t\t\t\tfields.find( ( { id } ) => id === fieldId )\n\t\t\t\t\t)\n\t\t\t\t\t.filter( ( field ): field is Field< Item > => !! field )\n\t\t\t),\n\t\t[ fields, form.fields ]\n\t);\n\n\treturn (\n\t\t<VStack spacing={ 4 }>\n\t\t\t{ visibleFields.map( ( field ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<field.Edit\n\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tfield={ field }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</VStack>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAKA,IAAAE,gBAAA,GAAAF,OAAA;AAAyD,IAAAG,WAAA,GAAAH,OAAA;AATzD;AACA;AACA;;AAIA;AACA;AACA;;AAIe,SAASI,WAAWA,CAAU;EAC5CC,IAAI;EACJC,MAAM;EACNC,IAAI;EACJC;AACsB,CAAC,EAAG;EAC1B,MAAMC,aAAa,GAAG,IAAAC,gBAAO,EAC5B;IAAA,IAAAC,YAAA;IAAA,OACC,IAAAC,gCAAe,EACd,EAAAD,YAAA,GAAEJ,IAAI,CAACD,MAAM,cAAAK,YAAA,cAAAA,YAAA,GAAI,EAAE,EACjBE,GAAG,CAAIC,OAAO,IACdR,MAAM,CAACS,IAAI,CAAE,CAAE;MAAEC;IAAG,CAAC,KAAMA,EAAE,KAAKF,OAAQ,CAC3C,CAAC,CACAG,MAAM,CAAIC,KAAK,IAA8B,CAAC,CAAEA,KAAM,CACzD,CAAC;EAAA,GACF,CAAEZ,MAAM,EAAEC,IAAI,CAACD,MAAM,CACtB,CAAC;EAED,oBACC,IAAAH,WAAA,CAAAgB,GAAA,EAACpB,WAAA,CAAAqB,oBAAM;IAACC,OAAO,EAAG,CAAG;IAAAC,QAAA,EAClBb,aAAa,CAACI,GAAG,CAAIK,KAAK,IAAM;MACjC,oBACC,IAAAf,WAAA,CAAAgB,GAAA,EAACD,KAAK,CAACK,IAAI;QAEVlB,IAAI,EAAGA,IAAM;QACba,KAAK,EAAGA,KAAO;QACfV,QAAQ,EAAGA;MAAU,GAHfU,KAAK,CAACF,EAIZ,CAAC;IAEJ,CAAE;EAAC,CACI,CAAC;AAEX","ignoreList":[]}
@@ -7,7 +7,6 @@ exports.default = DensityPicker;
7
7
  var _components = require("@wordpress/components");
8
8
  var _i18n = require("@wordpress/i18n");
9
9
  var _compose = require("@wordpress/compose");
10
- var _icons = require("@wordpress/icons");
11
10
  var _element = require("@wordpress/element");
12
11
  var _jsxRuntime = require("react/jsx-runtime");
13
12
  /**
@@ -64,18 +63,6 @@ function useViewPortBreakpoint() {
64
63
  }
65
64
  return null;
66
65
  }
67
-
68
- // Value is number from 0 to 100 representing how big an item is in the grid
69
- // 100 being the biggest and 0 being the smallest.
70
- // The size is relative to the viewport size, if one a given viewport the
71
- // number of allowed items in a grid is 3 to 6 a 0 ( the smallest ) will mean that the grid will
72
- // have 6 items in a row, a 100 ( the biggest ) will mean that the grid will have 3 items in a row.
73
- // A value of 75 will mean that the grid will have 4 items in a row.
74
- function getRangeValue(density, breakValues) {
75
- const inverseDensity = breakValues.max - density;
76
- const max = breakValues.max - breakValues.min;
77
- return Math.round(inverseDensity * 100 / max);
78
- }
79
66
  function DensityPicker({
80
67
  density,
81
68
  setDensity
@@ -96,48 +83,32 @@ function DensityPicker({
96
83
  return _density;
97
84
  });
98
85
  }, [setDensity, viewport]);
86
+ const breakValues = viewportBreaks[viewport || 'mobile'];
87
+ const densityToUse = density || breakValues.default;
88
+ const marks = (0, _element.useMemo)(() => Array.from({
89
+ length: breakValues.max - breakValues.min + 1
90
+ }, (_, i) => {
91
+ return {
92
+ value: breakValues.min + i
93
+ };
94
+ }), [breakValues]);
99
95
  if (!viewport) {
100
96
  return null;
101
97
  }
102
- const breakValues = viewportBreaks[viewport];
103
- const densityToUse = density || breakValues.default;
104
- const rangeValue = getRangeValue(densityToUse, breakValues);
105
- const step = 100 / (breakValues.max - breakValues.min + 1);
106
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
107
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
108
- size: "compact",
109
- icon: _icons.reset,
110
- disabled: rangeValue <= 0,
111
- accessibleWhenDisabled: true,
112
- label: (0, _i18n.__)('Decrease size'),
113
- onClick: () => {
114
- setDensity(densityToUse + 1);
115
- }
116
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.RangeControl, {
117
- __nextHasNoMarginBottom: true,
118
- showTooltip: false,
119
- className: "dataviews-density-picker__range-control",
120
- label: (0, _i18n.__)('Item size'),
121
- hideLabelFromVision: true,
122
- value: rangeValue,
123
- min: 0,
124
- max: 100,
125
- withInputField: false,
126
- onChange: (value = 0) => {
127
- const inverseValue = 100 - value;
128
- setDensity(Math.round(inverseValue * (breakValues.max - breakValues.min) / 100 + breakValues.min));
129
- },
130
- step: step
131
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
132
- size: "compact",
133
- icon: _icons.plus,
134
- disabled: rangeValue >= 100,
135
- accessibleWhenDisabled: true,
136
- label: (0, _i18n.__)('Increase size'),
137
- onClick: () => {
138
- setDensity(densityToUse - 1);
139
- }
140
- })]
98
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.RangeControl, {
99
+ __nextHasNoMarginBottom: true,
100
+ __next40pxDefaultSize: true,
101
+ showTooltip: false,
102
+ label: (0, _i18n.__)('Preview size'),
103
+ value: breakValues.max + breakValues.min - densityToUse,
104
+ marks: marks,
105
+ min: breakValues.min,
106
+ max: breakValues.max,
107
+ withInputField: false,
108
+ onChange: (value = 0) => {
109
+ setDensity(breakValues.max + breakValues.min - value);
110
+ },
111
+ step: 1
141
112
  });
142
113
  }
143
114
  //# sourceMappingURL=density-picker.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_i18n","_compose","_icons","_element","_jsxRuntime","viewportBreaks","xhuge","min","max","default","huge","xlarge","large","mobile","useViewPortBreakpoint","isXHuge","useViewportMatch","isHuge","isXlarge","isLarge","isMobile","getRangeValue","density","breakValues","inverseDensity","Math","round","DensityPicker","setDensity","viewport","useEffect","_density","densityToUse","rangeValue","step","jsxs","Fragment","children","jsx","Button","size","icon","reset","disabled","accessibleWhenDisabled","label","__","onClick","RangeControl","__nextHasNoMarginBottom","showTooltip","className","hideLabelFromVision","value","withInputField","onChange","inverseValue","plus"],"sources":["@wordpress/dataviews/src/dataviews-layouts/grid/density-picker.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { RangeControl, Button } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { plus, reset } from '@wordpress/icons';\nimport { useEffect } from '@wordpress/element';\n\nconst viewportBreaks = {\n\txhuge: { min: 3, max: 6, default: 5 },\n\thuge: { min: 2, max: 4, default: 4 },\n\txlarge: { min: 2, max: 3, default: 3 },\n\tlarge: { min: 1, max: 2, default: 2 },\n\tmobile: { min: 1, max: 2, default: 2 },\n};\n\nfunction useViewPortBreakpoint() {\n\tconst isXHuge = useViewportMatch( 'xhuge', '>=' );\n\tconst isHuge = useViewportMatch( 'huge', '>=' );\n\tconst isXlarge = useViewportMatch( 'xlarge', '>=' );\n\tconst isLarge = useViewportMatch( 'large', '>=' );\n\tconst isMobile = useViewportMatch( 'mobile', '>=' );\n\n\tif ( isXHuge ) {\n\t\treturn 'xhuge';\n\t}\n\tif ( isHuge ) {\n\t\treturn 'huge';\n\t}\n\tif ( isXlarge ) {\n\t\treturn 'xlarge';\n\t}\n\tif ( isLarge ) {\n\t\treturn 'large';\n\t}\n\tif ( isMobile ) {\n\t\treturn 'mobile';\n\t}\n\treturn null;\n}\n\n// Value is number from 0 to 100 representing how big an item is in the grid\n// 100 being the biggest and 0 being the smallest.\n// The size is relative to the viewport size, if one a given viewport the\n// number of allowed items in a grid is 3 to 6 a 0 ( the smallest ) will mean that the grid will\n// have 6 items in a row, a 100 ( the biggest ) will mean that the grid will have 3 items in a row.\n// A value of 75 will mean that the grid will have 4 items in a row.\nfunction getRangeValue(\n\tdensity: number,\n\tbreakValues: { min: number; max: number; default: number }\n) {\n\tconst inverseDensity = breakValues.max - density;\n\tconst max = breakValues.max - breakValues.min;\n\treturn Math.round( ( inverseDensity * 100 ) / max );\n}\n\nexport default function DensityPicker( {\n\tdensity,\n\tsetDensity,\n}: {\n\tdensity: number;\n\tsetDensity: React.Dispatch< React.SetStateAction< number > >;\n} ) {\n\tconst viewport = useViewPortBreakpoint();\n\tuseEffect( () => {\n\t\tsetDensity( ( _density ) => {\n\t\t\tif ( ! viewport || ! _density ) {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\tconst breakValues = viewportBreaks[ viewport ];\n\t\t\tif ( _density < breakValues.min ) {\n\t\t\t\treturn breakValues.min;\n\t\t\t}\n\t\t\tif ( _density > breakValues.max ) {\n\t\t\t\treturn breakValues.max;\n\t\t\t}\n\t\t\treturn _density;\n\t\t} );\n\t}, [ setDensity, viewport ] );\n\tif ( ! viewport ) {\n\t\treturn null;\n\t}\n\tconst breakValues = viewportBreaks[ viewport ];\n\tconst densityToUse = density || breakValues.default;\n\tconst rangeValue = getRangeValue( densityToUse, breakValues );\n\n\tconst step = 100 / ( breakValues.max - breakValues.min + 1 );\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\tsize=\"compact\"\n\t\t\t\ticon={ reset }\n\t\t\t\tdisabled={ rangeValue <= 0 }\n\t\t\t\taccessibleWhenDisabled\n\t\t\t\tlabel={ __( 'Decrease size' ) }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetDensity( densityToUse + 1 );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<RangeControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tshowTooltip={ false }\n\t\t\t\tclassName=\"dataviews-density-picker__range-control\"\n\t\t\t\tlabel={ __( 'Item size' ) }\n\t\t\t\thideLabelFromVision\n\t\t\t\tvalue={ rangeValue }\n\t\t\t\tmin={ 0 }\n\t\t\t\tmax={ 100 }\n\t\t\t\twithInputField={ false }\n\t\t\t\tonChange={ ( value = 0 ) => {\n\t\t\t\t\tconst inverseValue = 100 - value;\n\t\t\t\t\tsetDensity(\n\t\t\t\t\t\tMath.round(\n\t\t\t\t\t\t\t( inverseValue *\n\t\t\t\t\t\t\t\t( breakValues.max - breakValues.min ) ) /\n\t\t\t\t\t\t\t\t100 +\n\t\t\t\t\t\t\t\tbreakValues.min\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t\tstep={ step }\n\t\t\t/>\n\t\t\t<Button\n\t\t\t\tsize=\"compact\"\n\t\t\t\ticon={ plus }\n\t\t\t\tdisabled={ rangeValue >= 100 }\n\t\t\t\taccessibleWhenDisabled\n\t\t\t\tlabel={ __( 'Increase size' ) }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetDensity( densityToUse - 1 );\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":["_components","require","_i18n","_compose","_element","_jsxRuntime","viewportBreaks","xhuge","min","max","default","huge","xlarge","large","mobile","useViewPortBreakpoint","isXHuge","useViewportMatch","isHuge","isXlarge","isLarge","isMobile","DensityPicker","density","setDensity","viewport","useEffect","_density","breakValues","densityToUse","marks","useMemo","Array","from","length","_","i","value","jsx","RangeControl","__nextHasNoMarginBottom","__next40pxDefaultSize","showTooltip","label","__","withInputField","onChange","step"],"sources":["@wordpress/dataviews/src/dataviews-layouts/grid/density-picker.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { RangeControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { useEffect, useMemo } from '@wordpress/element';\n\nconst viewportBreaks = {\n\txhuge: { min: 3, max: 6, default: 5 },\n\thuge: { min: 2, max: 4, default: 4 },\n\txlarge: { min: 2, max: 3, default: 3 },\n\tlarge: { min: 1, max: 2, default: 2 },\n\tmobile: { min: 1, max: 2, default: 2 },\n};\n\nfunction useViewPortBreakpoint() {\n\tconst isXHuge = useViewportMatch( 'xhuge', '>=' );\n\tconst isHuge = useViewportMatch( 'huge', '>=' );\n\tconst isXlarge = useViewportMatch( 'xlarge', '>=' );\n\tconst isLarge = useViewportMatch( 'large', '>=' );\n\tconst isMobile = useViewportMatch( 'mobile', '>=' );\n\n\tif ( isXHuge ) {\n\t\treturn 'xhuge';\n\t}\n\tif ( isHuge ) {\n\t\treturn 'huge';\n\t}\n\tif ( isXlarge ) {\n\t\treturn 'xlarge';\n\t}\n\tif ( isLarge ) {\n\t\treturn 'large';\n\t}\n\tif ( isMobile ) {\n\t\treturn 'mobile';\n\t}\n\treturn null;\n}\n\nexport default function DensityPicker( {\n\tdensity,\n\tsetDensity,\n}: {\n\tdensity: number;\n\tsetDensity: React.Dispatch< React.SetStateAction< number > >;\n} ) {\n\tconst viewport = useViewPortBreakpoint();\n\tuseEffect( () => {\n\t\tsetDensity( ( _density ) => {\n\t\t\tif ( ! viewport || ! _density ) {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\tconst breakValues = viewportBreaks[ viewport ];\n\t\t\tif ( _density < breakValues.min ) {\n\t\t\t\treturn breakValues.min;\n\t\t\t}\n\t\t\tif ( _density > breakValues.max ) {\n\t\t\t\treturn breakValues.max;\n\t\t\t}\n\t\t\treturn _density;\n\t\t} );\n\t}, [ setDensity, viewport ] );\n\tconst breakValues = viewportBreaks[ viewport || 'mobile' ];\n\tconst densityToUse = density || breakValues.default;\n\n\tconst marks = useMemo(\n\t\t() =>\n\t\t\tArray.from(\n\t\t\t\t{ length: breakValues.max - breakValues.min + 1 },\n\t\t\t\t( _, i ) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tvalue: breakValues.min + i,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t),\n\t\t[ breakValues ]\n\t);\n\n\tif ( ! viewport ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<RangeControl\n\t\t\t__nextHasNoMarginBottom\n\t\t\t__next40pxDefaultSize\n\t\t\tshowTooltip={ false }\n\t\t\tlabel={ __( 'Preview size' ) }\n\t\t\tvalue={ breakValues.max + breakValues.min - densityToUse }\n\t\t\tmarks={ marks }\n\t\t\tmin={ breakValues.min }\n\t\t\tmax={ breakValues.max }\n\t\t\twithInputField={ false }\n\t\t\tonChange={ ( value = 0 ) => {\n\t\t\t\tsetDensity( breakValues.max + breakValues.min - value );\n\t\t\t} }\n\t\t\tstep={ 1 }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -111,7 +111,7 @@ function GridItem({
111
111
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
112
112
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.FlexItem, {
113
113
  className: "dataviews-view-grid__field-name",
114
- children: field.label
114
+ children: field.header
115
115
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.FlexItem, {
116
116
  className: "dataviews-view-grid__field-value",
117
117
  style: {
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_dataviewsItemActions","_dataviewsSelectionCheckbox","_dataviewsBulkActions","_jsxRuntime","GridItem","selection","onChangeSelection","getItemId","item","actions","mediaField","primaryField","visibleFields","badgeFields","columnFields","hasBulkAction","useHasAPossibleBulkAction","id","isSelected","includes","renderedMediaField","render","jsx","renderedPrimaryField","jsxs","__experimentalVStack","spacing","className","clsx","onClickCapture","event","ctrlKey","metaKey","stopPropagation","preventDefault","filter","itemId","children","default","disabled","__experimentalHStack","justify","isCompact","length","wrap","alignment","map","field","FlexItem","Flex","gap","expanded","style","height","direction","Fragment","label","maxHeight","ViewGrid","data","fields","isLoading","view","density","find","layout","viewFields","reduce","accumulator","key","push","hasData","gridStyle","gridTemplateColumns","__experimentalGrid","columns","Spinner","__"],"sources":["@wordpress/dataviews/src/dataviews-layouts/grid/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalGrid as Grid,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tSpinner,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ItemActions from '../../components/dataviews-item-actions';\nimport SingleSelectionCheckbox from '../../components/dataviews-selection-checkbox';\nimport { useHasAPossibleBulkAction } from '../../components/dataviews-bulk-actions';\nimport type { Action, NormalizedField, ViewGridProps } from '../../types';\nimport type { SetSelection } from '../../private-types';\n\ninterface GridItemProps< Item > {\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\tgetItemId: ( item: Item ) => string;\n\titem: Item;\n\tactions: Action< Item >[];\n\tmediaField?: NormalizedField< Item >;\n\tprimaryField?: NormalizedField< Item >;\n\tvisibleFields: NormalizedField< Item >[];\n\tbadgeFields: NormalizedField< Item >[];\n\tcolumnFields?: string[];\n}\n\nfunction GridItem< Item >( {\n\tselection,\n\tonChangeSelection,\n\tgetItemId,\n\titem,\n\tactions,\n\tmediaField,\n\tprimaryField,\n\tvisibleFields,\n\tbadgeFields,\n\tcolumnFields,\n}: GridItemProps< Item > ) {\n\tconst hasBulkAction = useHasAPossibleBulkAction( actions, item );\n\tconst id = getItemId( item );\n\tconst isSelected = selection.includes( id );\n\tconst renderedMediaField = mediaField?.render ? (\n\t\t<mediaField.render item={ item } />\n\t) : null;\n\tconst renderedPrimaryField = primaryField?.render ? (\n\t\t<primaryField.render item={ item } />\n\t) : null;\n\treturn (\n\t\t<VStack\n\t\t\tspacing={ 0 }\n\t\t\tkey={ id }\n\t\t\tclassName={ clsx( 'dataviews-view-grid__card', {\n\t\t\t\t'is-selected': hasBulkAction && isSelected,\n\t\t\t} ) }\n\t\t\tonClickCapture={ ( event ) => {\n\t\t\t\tif ( event.ctrlKey || event.metaKey ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tif ( ! hasBulkAction ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tonChangeSelection(\n\t\t\t\t\t\tselection.includes( id )\n\t\t\t\t\t\t\t? selection.filter( ( itemId ) => id !== itemId )\n\t\t\t\t\t\t\t: [ ...selection, id ]\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} }\n\t\t>\n\t\t\t<div className=\"dataviews-view-grid__media\">\n\t\t\t\t{ renderedMediaField }\n\t\t\t</div>\n\t\t\t<SingleSelectionCheckbox\n\t\t\t\titem={ item }\n\t\t\t\tselection={ selection }\n\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\tgetItemId={ getItemId }\n\t\t\t\tprimaryField={ primaryField }\n\t\t\t\tdisabled={ ! hasBulkAction }\n\t\t\t/>\n\t\t\t<HStack\n\t\t\t\tjustify=\"space-between\"\n\t\t\t\tclassName=\"dataviews-view-grid__title-actions\"\n\t\t\t>\n\t\t\t\t<HStack className=\"dataviews-view-grid__primary-field\">\n\t\t\t\t\t{ renderedPrimaryField }\n\t\t\t\t</HStack>\n\t\t\t\t<ItemActions item={ item } actions={ actions } isCompact />\n\t\t\t</HStack>\n\t\t\t{ !! badgeFields?.length && (\n\t\t\t\t<HStack\n\t\t\t\t\tclassName=\"dataviews-view-grid__badge-fields\"\n\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\twrap\n\t\t\t\t\talignment=\"top\"\n\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t>\n\t\t\t\t\t{ badgeFields.map( ( field ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field-value\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<field.render item={ item } />\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</HStack>\n\t\t\t) }\n\t\t\t{ !! visibleFields?.length && (\n\t\t\t\t<VStack className=\"dataviews-view-grid__fields\" spacing={ 1 }>\n\t\t\t\t\t{ visibleFields.map( ( field ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'dataviews-view-grid__field',\n\t\t\t\t\t\t\t\t\tcolumnFields?.includes( field.id )\n\t\t\t\t\t\t\t\t\t\t? 'is-column'\n\t\t\t\t\t\t\t\t\t\t: 'is-row'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tgap={ 1 }\n\t\t\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\t\t\texpanded\n\t\t\t\t\t\t\t\tstyle={ { height: 'auto' } }\n\t\t\t\t\t\t\t\tdirection={\n\t\t\t\t\t\t\t\t\tcolumnFields?.includes( field.id )\n\t\t\t\t\t\t\t\t\t\t? 'column'\n\t\t\t\t\t\t\t\t\t\t: 'row'\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<>\n\t\t\t\t\t\t\t\t\t<FlexItem className=\"dataviews-view-grid__field-name\">\n\t\t\t\t\t\t\t\t\t\t{ field.label }\n\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field-value\"\n\t\t\t\t\t\t\t\t\t\tstyle={ { maxHeight: 'none' } }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<field.render item={ item } />\n\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</VStack>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport default function ViewGrid< Item >( {\n\tactions,\n\tdata,\n\tfields,\n\tgetItemId,\n\tisLoading,\n\tonChangeSelection,\n\tselection,\n\tview,\n\tdensity,\n}: ViewGridProps< Item > ) {\n\tconst mediaField = fields.find(\n\t\t( field ) => field.id === view.layout?.mediaField\n\t);\n\tconst primaryField = fields.find(\n\t\t( field ) => field.id === view.layout?.primaryField\n\t);\n\tconst viewFields = view.fields || fields.map( ( field ) => field.id );\n\tconst { visibleFields, badgeFields } = fields.reduce(\n\t\t( accumulator: Record< string, NormalizedField< Item >[] >, field ) => {\n\t\t\tif (\n\t\t\t\t! viewFields.includes( field.id ) ||\n\t\t\t\t[\n\t\t\t\t\tview.layout?.mediaField,\n\t\t\t\t\tview?.layout?.primaryField,\n\t\t\t\t].includes( field.id )\n\t\t\t) {\n\t\t\t\treturn accumulator;\n\t\t\t}\n\t\t\t// If the field is a badge field, add it to the badgeFields array\n\t\t\t// otherwise add it to the rest visibleFields array.\n\t\t\tconst key = view.layout?.badgeFields?.includes( field.id )\n\t\t\t\t? 'badgeFields'\n\t\t\t\t: 'visibleFields';\n\t\t\taccumulator[ key ].push( field );\n\t\t\treturn accumulator;\n\t\t},\n\t\t{ visibleFields: [], badgeFields: [] }\n\t);\n\tconst hasData = !! data?.length;\n\tconst gridStyle = density\n\t\t? { gridTemplateColumns: `repeat(${ density }, minmax(0, 1fr))` }\n\t\t: {};\n\treturn (\n\t\t<>\n\t\t\t{ hasData && (\n\t\t\t\t<Grid\n\t\t\t\t\tgap={ 8 }\n\t\t\t\t\tcolumns={ 2 }\n\t\t\t\t\talignment=\"top\"\n\t\t\t\t\tclassName=\"dataviews-view-grid\"\n\t\t\t\t\tstyle={ gridStyle }\n\t\t\t\t\taria-busy={ isLoading }\n\t\t\t\t>\n\t\t\t\t\t{ data.map( ( item ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<GridItem\n\t\t\t\t\t\t\t\tkey={ getItemId( item ) }\n\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\t\t\tprimaryField={ primaryField }\n\t\t\t\t\t\t\t\tvisibleFields={ visibleFields }\n\t\t\t\t\t\t\t\tbadgeFields={ badgeFields }\n\t\t\t\t\t\t\t\tcolumnFields={ view.layout?.columnFields }\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</Grid>\n\t\t\t) }\n\t\t\t{ ! hasData && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t\t'dataviews-loading': isLoading,\n\t\t\t\t\t\t'dataviews-no-results': ! isLoading,\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t<p>{ isLoading ? <Spinner /> : __( 'No results' ) }</p>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_dataviewsItemActions","_dataviewsSelectionCheckbox","_dataviewsBulkActions","_jsxRuntime","GridItem","selection","onChangeSelection","getItemId","item","actions","mediaField","primaryField","visibleFields","badgeFields","columnFields","hasBulkAction","useHasAPossibleBulkAction","id","isSelected","includes","renderedMediaField","render","jsx","renderedPrimaryField","jsxs","__experimentalVStack","spacing","className","clsx","onClickCapture","event","ctrlKey","metaKey","stopPropagation","preventDefault","filter","itemId","children","default","disabled","__experimentalHStack","justify","isCompact","length","wrap","alignment","map","field","FlexItem","Flex","gap","expanded","style","height","direction","Fragment","header","maxHeight","ViewGrid","data","fields","isLoading","view","density","find","layout","viewFields","reduce","accumulator","key","push","hasData","gridStyle","gridTemplateColumns","__experimentalGrid","columns","Spinner","__"],"sources":["@wordpress/dataviews/src/dataviews-layouts/grid/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalGrid as Grid,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\tSpinner,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ItemActions from '../../components/dataviews-item-actions';\nimport SingleSelectionCheckbox from '../../components/dataviews-selection-checkbox';\nimport { useHasAPossibleBulkAction } from '../../components/dataviews-bulk-actions';\nimport type { Action, NormalizedField, ViewGridProps } from '../../types';\nimport type { SetSelection } from '../../private-types';\n\ninterface GridItemProps< Item > {\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\tgetItemId: ( item: Item ) => string;\n\titem: Item;\n\tactions: Action< Item >[];\n\tmediaField?: NormalizedField< Item >;\n\tprimaryField?: NormalizedField< Item >;\n\tvisibleFields: NormalizedField< Item >[];\n\tbadgeFields: NormalizedField< Item >[];\n\tcolumnFields?: string[];\n}\n\nfunction GridItem< Item >( {\n\tselection,\n\tonChangeSelection,\n\tgetItemId,\n\titem,\n\tactions,\n\tmediaField,\n\tprimaryField,\n\tvisibleFields,\n\tbadgeFields,\n\tcolumnFields,\n}: GridItemProps< Item > ) {\n\tconst hasBulkAction = useHasAPossibleBulkAction( actions, item );\n\tconst id = getItemId( item );\n\tconst isSelected = selection.includes( id );\n\tconst renderedMediaField = mediaField?.render ? (\n\t\t<mediaField.render item={ item } />\n\t) : null;\n\tconst renderedPrimaryField = primaryField?.render ? (\n\t\t<primaryField.render item={ item } />\n\t) : null;\n\treturn (\n\t\t<VStack\n\t\t\tspacing={ 0 }\n\t\t\tkey={ id }\n\t\t\tclassName={ clsx( 'dataviews-view-grid__card', {\n\t\t\t\t'is-selected': hasBulkAction && isSelected,\n\t\t\t} ) }\n\t\t\tonClickCapture={ ( event ) => {\n\t\t\t\tif ( event.ctrlKey || event.metaKey ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tif ( ! hasBulkAction ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tonChangeSelection(\n\t\t\t\t\t\tselection.includes( id )\n\t\t\t\t\t\t\t? selection.filter( ( itemId ) => id !== itemId )\n\t\t\t\t\t\t\t: [ ...selection, id ]\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} }\n\t\t>\n\t\t\t<div className=\"dataviews-view-grid__media\">\n\t\t\t\t{ renderedMediaField }\n\t\t\t</div>\n\t\t\t<SingleSelectionCheckbox\n\t\t\t\titem={ item }\n\t\t\t\tselection={ selection }\n\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\tgetItemId={ getItemId }\n\t\t\t\tprimaryField={ primaryField }\n\t\t\t\tdisabled={ ! hasBulkAction }\n\t\t\t/>\n\t\t\t<HStack\n\t\t\t\tjustify=\"space-between\"\n\t\t\t\tclassName=\"dataviews-view-grid__title-actions\"\n\t\t\t>\n\t\t\t\t<HStack className=\"dataviews-view-grid__primary-field\">\n\t\t\t\t\t{ renderedPrimaryField }\n\t\t\t\t</HStack>\n\t\t\t\t<ItemActions item={ item } actions={ actions } isCompact />\n\t\t\t</HStack>\n\t\t\t{ !! badgeFields?.length && (\n\t\t\t\t<HStack\n\t\t\t\t\tclassName=\"dataviews-view-grid__badge-fields\"\n\t\t\t\t\tspacing={ 2 }\n\t\t\t\t\twrap\n\t\t\t\t\talignment=\"top\"\n\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t>\n\t\t\t\t\t{ badgeFields.map( ( field ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field-value\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<field.render item={ item } />\n\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</HStack>\n\t\t\t) }\n\t\t\t{ !! visibleFields?.length && (\n\t\t\t\t<VStack className=\"dataviews-view-grid__fields\" spacing={ 1 }>\n\t\t\t\t\t{ visibleFields.map( ( field ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Flex\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'dataviews-view-grid__field',\n\t\t\t\t\t\t\t\t\tcolumnFields?.includes( field.id )\n\t\t\t\t\t\t\t\t\t\t? 'is-column'\n\t\t\t\t\t\t\t\t\t\t: 'is-row'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tkey={ field.id }\n\t\t\t\t\t\t\t\tgap={ 1 }\n\t\t\t\t\t\t\t\tjustify=\"flex-start\"\n\t\t\t\t\t\t\t\texpanded\n\t\t\t\t\t\t\t\tstyle={ { height: 'auto' } }\n\t\t\t\t\t\t\t\tdirection={\n\t\t\t\t\t\t\t\t\tcolumnFields?.includes( field.id )\n\t\t\t\t\t\t\t\t\t\t? 'column'\n\t\t\t\t\t\t\t\t\t\t: 'row'\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<>\n\t\t\t\t\t\t\t\t\t<FlexItem className=\"dataviews-view-grid__field-name\">\n\t\t\t\t\t\t\t\t\t\t{ field.header }\n\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t\t<FlexItem\n\t\t\t\t\t\t\t\t\t\tclassName=\"dataviews-view-grid__field-value\"\n\t\t\t\t\t\t\t\t\t\tstyle={ { maxHeight: 'none' } }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<field.render item={ item } />\n\t\t\t\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</VStack>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n\nexport default function ViewGrid< Item >( {\n\tactions,\n\tdata,\n\tfields,\n\tgetItemId,\n\tisLoading,\n\tonChangeSelection,\n\tselection,\n\tview,\n\tdensity,\n}: ViewGridProps< Item > ) {\n\tconst mediaField = fields.find(\n\t\t( field ) => field.id === view.layout?.mediaField\n\t);\n\tconst primaryField = fields.find(\n\t\t( field ) => field.id === view.layout?.primaryField\n\t);\n\tconst viewFields = view.fields || fields.map( ( field ) => field.id );\n\tconst { visibleFields, badgeFields } = fields.reduce(\n\t\t( accumulator: Record< string, NormalizedField< Item >[] >, field ) => {\n\t\t\tif (\n\t\t\t\t! viewFields.includes( field.id ) ||\n\t\t\t\t[\n\t\t\t\t\tview.layout?.mediaField,\n\t\t\t\t\tview?.layout?.primaryField,\n\t\t\t\t].includes( field.id )\n\t\t\t) {\n\t\t\t\treturn accumulator;\n\t\t\t}\n\t\t\t// If the field is a badge field, add it to the badgeFields array\n\t\t\t// otherwise add it to the rest visibleFields array.\n\t\t\tconst key = view.layout?.badgeFields?.includes( field.id )\n\t\t\t\t? 'badgeFields'\n\t\t\t\t: 'visibleFields';\n\t\t\taccumulator[ key ].push( field );\n\t\t\treturn accumulator;\n\t\t},\n\t\t{ visibleFields: [], badgeFields: [] }\n\t);\n\tconst hasData = !! data?.length;\n\tconst gridStyle = density\n\t\t? { gridTemplateColumns: `repeat(${ density }, minmax(0, 1fr))` }\n\t\t: {};\n\treturn (\n\t\t<>\n\t\t\t{ hasData && (\n\t\t\t\t<Grid\n\t\t\t\t\tgap={ 8 }\n\t\t\t\t\tcolumns={ 2 }\n\t\t\t\t\talignment=\"top\"\n\t\t\t\t\tclassName=\"dataviews-view-grid\"\n\t\t\t\t\tstyle={ gridStyle }\n\t\t\t\t\taria-busy={ isLoading }\n\t\t\t\t>\n\t\t\t\t\t{ data.map( ( item ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<GridItem\n\t\t\t\t\t\t\t\tkey={ getItemId( item ) }\n\t\t\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\t\t\tmediaField={ mediaField }\n\t\t\t\t\t\t\t\tprimaryField={ primaryField }\n\t\t\t\t\t\t\t\tvisibleFields={ visibleFields }\n\t\t\t\t\t\t\t\tbadgeFields={ badgeFields }\n\t\t\t\t\t\t\t\tcolumnFields={ view.layout?.columnFields }\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</Grid>\n\t\t\t) }\n\t\t\t{ ! hasData && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={ clsx( {\n\t\t\t\t\t\t'dataviews-loading': isLoading,\n\t\t\t\t\t\t'dataviews-no-results': ! isLoading,\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t<p>{ isLoading ? <Spinner /> : __( 'No results' ) }</p>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.VIEW_LAYOUTS = void 0;
8
- exports.getMandatoryFields = getMandatoryFields;
8
+ exports.getHiddenFieldIds = getHiddenFieldIds;
9
+ exports.getNotHidableFieldIds = getNotHidableFieldIds;
10
+ exports.getVisibleFieldIds = getVisibleFieldIds;
9
11
  var _i18n = require("@wordpress/i18n");
10
12
  var _icons = require("@wordpress/icons");
11
13
  var _table = _interopRequireDefault(require("./table"));
@@ -36,7 +38,7 @@ const VIEW_LAYOUTS = exports.VIEW_LAYOUTS = [{
36
38
  component: _list.default,
37
39
  icon: (0, _i18n.isRTL)() ? _icons.formatListBulletsRTL : _icons.formatListBullets
38
40
  }];
39
- function getMandatoryFields(view) {
41
+ function getNotHidableFieldIds(view) {
40
42
  if (view.type === 'table') {
41
43
  var _view$layout$combined;
42
44
  return [view.layout?.primaryField].concat((_view$layout$combined = view.layout?.combinedFields?.flatMap(field => field.children)) !== null && _view$layout$combined !== void 0 ? _view$layout$combined : []).filter(item => !!item);
@@ -49,4 +51,48 @@ function getMandatoryFields(view) {
49
51
  }
50
52
  return [];
51
53
  }
54
+ function getCombinedFieldIds(view) {
55
+ const combinedFields = [];
56
+ if (view.type === _constants.LAYOUT_TABLE && view.layout?.combinedFields) {
57
+ view.layout.combinedFields.forEach(combination => {
58
+ combinedFields.push(...combination.children);
59
+ });
60
+ }
61
+ return combinedFields;
62
+ }
63
+ function getVisibleFieldIds(view, fields) {
64
+ const fieldsToExclude = getCombinedFieldIds(view);
65
+ if (view.fields) {
66
+ return view.fields.filter(id => !fieldsToExclude.includes(id));
67
+ }
68
+ const visibleFields = [];
69
+ if (view.type === _constants.LAYOUT_TABLE && view.layout?.combinedFields) {
70
+ visibleFields.push(...view.layout.combinedFields.map(({
71
+ id
72
+ }) => id));
73
+ }
74
+ visibleFields.push(...fields.filter(({
75
+ id
76
+ }) => !fieldsToExclude.includes(id)).map(({
77
+ id
78
+ }) => id));
79
+ return visibleFields;
80
+ }
81
+ function getHiddenFieldIds(view, fields) {
82
+ const fieldsToExclude = [...getCombinedFieldIds(view), ...getVisibleFieldIds(view, fields)];
83
+
84
+ // The media field does not need to be in the view.fields to be displayed.
85
+ if (view.type === _constants.LAYOUT_GRID && view.layout?.mediaField) {
86
+ fieldsToExclude.push(view.layout?.mediaField);
87
+ }
88
+ if (view.type === _constants.LAYOUT_LIST && view.layout?.mediaField) {
89
+ fieldsToExclude.push(view.layout?.mediaField);
90
+ }
91
+ return fields.filter(({
92
+ id,
93
+ enableHiding
94
+ }) => !fieldsToExclude.includes(id) && enableHiding).map(({
95
+ id
96
+ }) => id);
97
+ }
52
98
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_icons","_table","_interopRequireDefault","_grid","_list","_constants","VIEW_LAYOUTS","exports","type","LAYOUT_TABLE","label","__","component","ViewTable","icon","blockTable","LAYOUT_GRID","ViewGrid","category","LAYOUT_LIST","ViewList","isRTL","formatListBulletsRTL","formatListBullets","getMandatoryFields","view","_view$layout$combined","layout","primaryField","concat","combinedFields","flatMap","field","children","filter","item","mediaField"],"sources":["@wordpress/dataviews/src/dataviews-layouts/index.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport {\n\tblockTable,\n\tcategory,\n\tformatListBullets,\n\tformatListBulletsRTL,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport ViewTable from './table';\nimport ViewGrid from './grid';\nimport ViewList from './list';\nimport { LAYOUT_GRID, LAYOUT_LIST, LAYOUT_TABLE } from '../constants';\nimport type { View } from '../types';\n\nexport const VIEW_LAYOUTS = [\n\t{\n\t\ttype: LAYOUT_TABLE,\n\t\tlabel: __( 'Table' ),\n\t\tcomponent: ViewTable,\n\t\ticon: blockTable,\n\t},\n\t{\n\t\ttype: LAYOUT_GRID,\n\t\tlabel: __( 'Grid' ),\n\t\tcomponent: ViewGrid,\n\t\ticon: category,\n\t},\n\t{\n\t\ttype: LAYOUT_LIST,\n\t\tlabel: __( 'List' ),\n\t\tcomponent: ViewList,\n\t\ticon: isRTL() ? formatListBulletsRTL : formatListBullets,\n\t},\n];\n\nexport function getMandatoryFields( view: View ): string[] {\n\tif ( view.type === 'table' ) {\n\t\treturn [ view.layout?.primaryField ]\n\t\t\t.concat(\n\t\t\t\tview.layout?.combinedFields?.flatMap(\n\t\t\t\t\t( field ) => field.children\n\t\t\t\t) ?? []\n\t\t\t)\n\t\t\t.filter( ( item ): item is string => !! item );\n\t}\n\n\tif ( view.type === 'grid' ) {\n\t\treturn [ view.layout?.primaryField, view.layout?.mediaField ].filter(\n\t\t\t( item ): item is string => !! item\n\t\t);\n\t}\n\n\tif ( view.type === 'list' ) {\n\t\treturn [ view.layout?.primaryField, view.layout?.mediaField ].filter(\n\t\t\t( item ): item is string => !! item\n\t\t);\n\t}\n\n\treturn [];\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAUA,IAAAE,MAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,KAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,KAAA,GAAAF,sBAAA,CAAAH,OAAA;AACA,IAAAM,UAAA,GAAAN,OAAA;AAjBA;AACA;AACA;;AASA;AACA;AACA;;AAOO,MAAMO,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,CAC3B;EACCE,IAAI,EAAEC,uBAAY;EAClBC,KAAK,EAAE,IAAAC,QAAE,EAAE,OAAQ,CAAC;EACpBC,SAAS,EAAEC,cAAS;EACpBC,IAAI,EAAEC;AACP,CAAC,EACD;EACCP,IAAI,EAAEQ,sBAAW;EACjBN,KAAK,EAAE,IAAAC,QAAE,EAAE,MAAO,CAAC;EACnBC,SAAS,EAAEK,aAAQ;EACnBH,IAAI,EAAEI;AACP,CAAC,EACD;EACCV,IAAI,EAAEW,sBAAW;EACjBT,KAAK,EAAE,IAAAC,QAAE,EAAE,MAAO,CAAC;EACnBC,SAAS,EAAEQ,aAAQ;EACnBN,IAAI,EAAE,IAAAO,WAAK,EAAC,CAAC,GAAGC,2BAAoB,GAAGC;AACxC,CAAC,CACD;AAEM,SAASC,kBAAkBA,CAAEC,IAAU,EAAa;EAC1D,IAAKA,IAAI,CAACjB,IAAI,KAAK,OAAO,EAAG;IAAA,IAAAkB,qBAAA;IAC5B,OAAO,CAAED,IAAI,CAACE,MAAM,EAAEC,YAAY,CAAE,CAClCC,MAAM,EAAAH,qBAAA,GACND,IAAI,CAACE,MAAM,EAAEG,cAAc,EAAEC,OAAO,CACjCC,KAAK,IAAMA,KAAK,CAACC,QACpB,CAAC,cAAAP,qBAAA,cAAAA,qBAAA,GAAI,EACN,CAAC,CACAQ,MAAM,CAAIC,IAAI,IAAsB,CAAC,CAAEA,IAAK,CAAC;EAChD;EAEA,IAAKV,IAAI,CAACjB,IAAI,KAAK,MAAM,EAAG;IAC3B,OAAO,CAAEiB,IAAI,CAACE,MAAM,EAAEC,YAAY,EAAEH,IAAI,CAACE,MAAM,EAAES,UAAU,CAAE,CAACF,MAAM,CACjEC,IAAI,IAAsB,CAAC,CAAEA,IAChC,CAAC;EACF;EAEA,IAAKV,IAAI,CAACjB,IAAI,KAAK,MAAM,EAAG;IAC3B,OAAO,CAAEiB,IAAI,CAACE,MAAM,EAAEC,YAAY,EAAEH,IAAI,CAACE,MAAM,EAAES,UAAU,CAAE,CAACF,MAAM,CACjEC,IAAI,IAAsB,CAAC,CAAEA,IAChC,CAAC;EACF;EAEA,OAAO,EAAE;AACV","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_icons","_table","_interopRequireDefault","_grid","_list","_constants","VIEW_LAYOUTS","exports","type","LAYOUT_TABLE","label","__","component","ViewTable","icon","blockTable","LAYOUT_GRID","ViewGrid","category","LAYOUT_LIST","ViewList","isRTL","formatListBulletsRTL","formatListBullets","getNotHidableFieldIds","view","_view$layout$combined","layout","primaryField","concat","combinedFields","flatMap","field","children","filter","item","mediaField","getCombinedFieldIds","forEach","combination","push","getVisibleFieldIds","fields","fieldsToExclude","id","includes","visibleFields","map","getHiddenFieldIds","enableHiding"],"sources":["@wordpress/dataviews/src/dataviews-layouts/index.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport {\n\tblockTable,\n\tcategory,\n\tformatListBullets,\n\tformatListBulletsRTL,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport ViewTable from './table';\nimport ViewGrid from './grid';\nimport ViewList from './list';\nimport { LAYOUT_GRID, LAYOUT_LIST, LAYOUT_TABLE } from '../constants';\nimport type { View, Field } from '../types';\n\nexport const VIEW_LAYOUTS = [\n\t{\n\t\ttype: LAYOUT_TABLE,\n\t\tlabel: __( 'Table' ),\n\t\tcomponent: ViewTable,\n\t\ticon: blockTable,\n\t},\n\t{\n\t\ttype: LAYOUT_GRID,\n\t\tlabel: __( 'Grid' ),\n\t\tcomponent: ViewGrid,\n\t\ticon: category,\n\t},\n\t{\n\t\ttype: LAYOUT_LIST,\n\t\tlabel: __( 'List' ),\n\t\tcomponent: ViewList,\n\t\ticon: isRTL() ? formatListBulletsRTL : formatListBullets,\n\t},\n];\n\nexport function getNotHidableFieldIds( view: View ): string[] {\n\tif ( view.type === 'table' ) {\n\t\treturn [ view.layout?.primaryField ]\n\t\t\t.concat(\n\t\t\t\tview.layout?.combinedFields?.flatMap(\n\t\t\t\t\t( field ) => field.children\n\t\t\t\t) ?? []\n\t\t\t)\n\t\t\t.filter( ( item ): item is string => !! item );\n\t}\n\n\tif ( view.type === 'grid' ) {\n\t\treturn [ view.layout?.primaryField, view.layout?.mediaField ].filter(\n\t\t\t( item ): item is string => !! item\n\t\t);\n\t}\n\n\tif ( view.type === 'list' ) {\n\t\treturn [ view.layout?.primaryField, view.layout?.mediaField ].filter(\n\t\t\t( item ): item is string => !! item\n\t\t);\n\t}\n\n\treturn [];\n}\n\nfunction getCombinedFieldIds( view: View ): string[] {\n\tconst combinedFields: string[] = [];\n\tif ( view.type === LAYOUT_TABLE && view.layout?.combinedFields ) {\n\t\tview.layout.combinedFields.forEach( ( combination ) => {\n\t\t\tcombinedFields.push( ...combination.children );\n\t\t} );\n\t}\n\treturn combinedFields;\n}\n\nexport function getVisibleFieldIds(\n\tview: View,\n\tfields: Field< any >[]\n): string[] {\n\tconst fieldsToExclude = getCombinedFieldIds( view );\n\n\tif ( view.fields ) {\n\t\treturn view.fields.filter( ( id ) => ! fieldsToExclude.includes( id ) );\n\t}\n\n\tconst visibleFields = [];\n\tif ( view.type === LAYOUT_TABLE && view.layout?.combinedFields ) {\n\t\tvisibleFields.push(\n\t\t\t...view.layout.combinedFields.map( ( { id } ) => id )\n\t\t);\n\t}\n\tvisibleFields.push(\n\t\t...fields\n\t\t\t.filter( ( { id } ) => ! fieldsToExclude.includes( id ) )\n\t\t\t.map( ( { id } ) => id )\n\t);\n\n\treturn visibleFields;\n}\n\nexport function getHiddenFieldIds(\n\tview: View,\n\tfields: Field< any >[]\n): string[] {\n\tconst fieldsToExclude = [\n\t\t...getCombinedFieldIds( view ),\n\t\t...getVisibleFieldIds( view, fields ),\n\t];\n\n\t// The media field does not need to be in the view.fields to be displayed.\n\tif ( view.type === LAYOUT_GRID && view.layout?.mediaField ) {\n\t\tfieldsToExclude.push( view.layout?.mediaField );\n\t}\n\n\tif ( view.type === LAYOUT_LIST && view.layout?.mediaField ) {\n\t\tfieldsToExclude.push( view.layout?.mediaField );\n\t}\n\n\treturn fields\n\t\t.filter(\n\t\t\t( { id, enableHiding } ) =>\n\t\t\t\t! fieldsToExclude.includes( id ) && enableHiding\n\t\t)\n\t\t.map( ( { id } ) => id );\n}\n"],"mappings":"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","ignoreList":[]}