@wordpress/dataviews 8.0.1-next.e256d081a.0 → 9.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 (415) hide show
  1. package/CHANGELOG.md +40 -1
  2. package/README.md +203 -13
  3. package/build/components/dataform-context/index.js +1 -0
  4. package/build/components/dataform-context/index.js.map +1 -1
  5. package/build/components/dataviews/index.js +11 -1
  6. package/build/components/dataviews/index.js.map +1 -1
  7. package/build/components/dataviews-context/index.js +1 -0
  8. package/build/components/dataviews-context/index.js.map +1 -1
  9. package/build/components/dataviews-filters/input-widget.js +48 -4
  10. package/build/components/dataviews-filters/input-widget.js.map +1 -1
  11. package/build/components/dataviews-layout/index.js +5 -2
  12. package/build/components/dataviews-layout/index.js.map +1 -1
  13. package/build/components/dataviews-picker/footer.js +145 -0
  14. package/build/components/dataviews-picker/footer.js.map +1 -0
  15. package/build/components/dataviews-picker/index.js +201 -0
  16. package/build/components/dataviews-picker/index.js.map +1 -0
  17. package/build/components/dataviews-selection-checkbox/index.js +4 -2
  18. package/build/components/dataviews-selection-checkbox/index.js.map +1 -1
  19. package/build/components/dataviews-view-config/index.js +1 -0
  20. package/build/components/dataviews-view-config/index.js.map +1 -1
  21. package/build/constants.js +4 -1
  22. package/build/constants.js.map +1 -1
  23. package/build/dataform-controls/array.js +9 -7
  24. package/build/dataform-controls/array.js.map +1 -1
  25. package/build/dataform-controls/checkbox.js +40 -8
  26. package/build/dataform-controls/checkbox.js.map +1 -1
  27. package/build/dataform-controls/color.js +133 -0
  28. package/build/dataform-controls/color.js.map +1 -0
  29. package/build/dataform-controls/date.js +32 -24
  30. package/build/dataform-controls/date.js.map +1 -1
  31. package/build/dataform-controls/datetime.js +133 -19
  32. package/build/dataform-controls/datetime.js.map +1 -1
  33. package/build/dataform-controls/email.js +15 -44
  34. package/build/dataform-controls/email.js.map +1 -1
  35. package/build/dataform-controls/index.js +35 -2
  36. package/build/dataform-controls/index.js.map +1 -1
  37. package/build/dataform-controls/integer.js +47 -34
  38. package/build/dataform-controls/integer.js.map +1 -1
  39. package/build/dataform-controls/password.js +47 -0
  40. package/build/dataform-controls/password.js.map +1 -0
  41. package/build/dataform-controls/radio.js +42 -9
  42. package/build/dataform-controls/radio.js.map +1 -1
  43. package/build/dataform-controls/relative-date-control.js +6 -10
  44. package/build/dataform-controls/relative-date-control.js.map +1 -1
  45. package/build/dataform-controls/select.js +41 -10
  46. package/build/dataform-controls/select.js.map +1 -1
  47. package/build/dataform-controls/telephone.js +40 -0
  48. package/build/dataform-controls/telephone.js.map +1 -0
  49. package/build/dataform-controls/text.js +14 -43
  50. package/build/dataform-controls/text.js.map +1 -1
  51. package/build/dataform-controls/textarea.js +81 -0
  52. package/build/dataform-controls/textarea.js.map +1 -0
  53. package/build/dataform-controls/toggle-group.js +36 -6
  54. package/build/dataform-controls/toggle-group.js.map +1 -1
  55. package/build/dataform-controls/toggle.js +77 -0
  56. package/build/dataform-controls/toggle.js.map +1 -0
  57. package/build/dataform-controls/url.js +40 -0
  58. package/build/dataform-controls/url.js.map +1 -0
  59. package/build/dataform-controls/utils/validated-input.js +83 -0
  60. package/build/dataform-controls/utils/validated-input.js.map +1 -0
  61. package/build/dataforms-layouts/card/index.js +6 -7
  62. package/build/dataforms-layouts/card/index.js.map +1 -1
  63. package/build/dataforms-layouts/data-form-layout.js +16 -4
  64. package/build/dataforms-layouts/data-form-layout.js.map +1 -1
  65. package/build/dataforms-layouts/index.js +31 -1
  66. package/build/dataforms-layouts/index.js.map +1 -1
  67. package/build/dataforms-layouts/panel/dropdown.js +10 -14
  68. package/build/dataforms-layouts/panel/dropdown.js.map +1 -1
  69. package/build/dataforms-layouts/panel/index.js +24 -11
  70. package/build/dataforms-layouts/panel/index.js.map +1 -1
  71. package/build/dataforms-layouts/panel/modal.js +22 -27
  72. package/build/dataforms-layouts/panel/modal.js.map +1 -1
  73. package/build/dataforms-layouts/panel/summary-button.js +67 -0
  74. package/build/dataforms-layouts/panel/summary-button.js.map +1 -0
  75. package/build/dataforms-layouts/regular/index.js +7 -9
  76. package/build/dataforms-layouts/regular/index.js.map +1 -1
  77. package/build/dataforms-layouts/row/index.js +113 -0
  78. package/build/dataforms-layouts/row/index.js.map +1 -0
  79. package/build/dataviews-layouts/grid/index.js +21 -26
  80. package/build/dataviews-layouts/grid/index.js.map +1 -1
  81. package/build/dataviews-layouts/index.js +9 -1
  82. package/build/dataviews-layouts/index.js.map +1 -1
  83. package/build/dataviews-layouts/list/index.js +47 -2
  84. package/build/dataviews-layouts/list/index.js.map +1 -1
  85. package/build/dataviews-layouts/picker-grid/index.js +347 -0
  86. package/build/dataviews-layouts/picker-grid/index.js.map +1 -0
  87. package/build/dataviews-layouts/table/index.js +5 -17
  88. package/build/dataviews-layouts/table/index.js.map +1 -1
  89. package/build/dataviews-layouts/utils/get-data-by-group.js +23 -0
  90. package/build/dataviews-layouts/utils/get-data-by-group.js.map +1 -0
  91. package/build/dataviews-layouts/utils/grid-items.js +37 -0
  92. package/build/dataviews-layouts/utils/grid-items.js.map +1 -0
  93. package/build/dataviews-layouts/utils/preview-size-picker.js +81 -0
  94. package/build/dataviews-layouts/utils/preview-size-picker.js.map +1 -0
  95. package/build/field-types/boolean.js +1 -1
  96. package/build/field-types/boolean.js.map +1 -1
  97. package/build/field-types/color.js +113 -0
  98. package/build/field-types/color.js.map +1 -0
  99. package/build/field-types/index.js +16 -0
  100. package/build/field-types/index.js.map +1 -1
  101. package/build/field-types/password.js +51 -0
  102. package/build/field-types/password.js.map +1 -0
  103. package/build/field-types/telephone.js +57 -0
  104. package/build/field-types/telephone.js.map +1 -0
  105. package/build/field-types/url.js +57 -0
  106. package/build/field-types/url.js.map +1 -0
  107. package/build/normalize-fields.js +17 -0
  108. package/build/normalize-fields.js.map +1 -1
  109. package/build/normalize-form-fields.js +6 -0
  110. package/build/normalize-form-fields.js.map +1 -1
  111. package/build/types.js.map +1 -1
  112. package/build/validation.js +1 -1
  113. package/build/validation.js.map +1 -1
  114. package/build-module/components/dataform-context/index.js +1 -0
  115. package/build-module/components/dataform-context/index.js.map +1 -1
  116. package/build-module/components/dataviews/index.js +11 -1
  117. package/build-module/components/dataviews/index.js.map +1 -1
  118. package/build-module/components/dataviews-context/index.js +1 -0
  119. package/build-module/components/dataviews-context/index.js.map +1 -1
  120. package/build-module/components/dataviews-filters/input-widget.js +48 -4
  121. package/build-module/components/dataviews-filters/input-widget.js.map +1 -1
  122. package/build-module/components/dataviews-layout/index.js +5 -2
  123. package/build-module/components/dataviews-layout/index.js.map +1 -1
  124. package/build-module/components/dataviews-picker/footer.js +136 -0
  125. package/build-module/components/dataviews-picker/footer.js.map +1 -0
  126. package/build-module/components/dataviews-picker/index.js +191 -0
  127. package/build-module/components/dataviews-picker/index.js.map +1 -0
  128. package/build-module/components/dataviews-selection-checkbox/index.js +4 -2
  129. package/build-module/components/dataviews-selection-checkbox/index.js.map +1 -1
  130. package/build-module/components/dataviews-view-config/index.js +1 -0
  131. package/build-module/components/dataviews-view-config/index.js.map +1 -1
  132. package/build-module/constants.js +3 -0
  133. package/build-module/constants.js.map +1 -1
  134. package/build-module/dataform-controls/array.js +9 -7
  135. package/build-module/dataform-controls/array.js.map +1 -1
  136. package/build-module/dataform-controls/checkbox.js +41 -9
  137. package/build-module/dataform-controls/checkbox.js.map +1 -1
  138. package/build-module/dataform-controls/color.js +126 -0
  139. package/build-module/dataform-controls/color.js.map +1 -0
  140. package/build-module/dataform-controls/date.js +32 -24
  141. package/build-module/dataform-controls/date.js.map +1 -1
  142. package/build-module/dataform-controls/datetime.js +135 -21
  143. package/build-module/dataform-controls/datetime.js.map +1 -1
  144. package/build-module/dataform-controls/email.js +15 -45
  145. package/build-module/dataform-controls/email.js.map +1 -1
  146. package/build-module/dataform-controls/index.js +35 -2
  147. package/build-module/dataform-controls/index.js.map +1 -1
  148. package/build-module/dataform-controls/integer.js +46 -34
  149. package/build-module/dataform-controls/integer.js.map +1 -1
  150. package/build-module/dataform-controls/password.js +38 -0
  151. package/build-module/dataform-controls/password.js.map +1 -0
  152. package/build-module/dataform-controls/radio.js +44 -11
  153. package/build-module/dataform-controls/radio.js.map +1 -1
  154. package/build-module/dataform-controls/relative-date-control.js +6 -10
  155. package/build-module/dataform-controls/relative-date-control.js.map +1 -1
  156. package/build-module/dataform-controls/select.js +43 -12
  157. package/build-module/dataform-controls/select.js.map +1 -1
  158. package/build-module/dataform-controls/telephone.js +33 -0
  159. package/build-module/dataform-controls/telephone.js.map +1 -0
  160. package/build-module/dataform-controls/text.js +14 -44
  161. package/build-module/dataform-controls/text.js.map +1 -1
  162. package/build-module/dataform-controls/textarea.js +74 -0
  163. package/build-module/dataform-controls/textarea.js.map +1 -0
  164. package/build-module/dataform-controls/toggle-group.js +38 -8
  165. package/build-module/dataform-controls/toggle-group.js.map +1 -1
  166. package/build-module/dataform-controls/toggle.js +70 -0
  167. package/build-module/dataform-controls/toggle.js.map +1 -0
  168. package/build-module/dataform-controls/url.js +33 -0
  169. package/build-module/dataform-controls/url.js.map +1 -0
  170. package/build-module/dataform-controls/utils/validated-input.js +76 -0
  171. package/build-module/dataform-controls/utils/validated-input.js.map +1 -0
  172. package/build-module/dataforms-layouts/card/index.js +6 -7
  173. package/build-module/dataforms-layouts/card/index.js.map +1 -1
  174. package/build-module/dataforms-layouts/data-form-layout.js +14 -4
  175. package/build-module/dataforms-layouts/data-form-layout.js.map +1 -1
  176. package/build-module/dataforms-layouts/index.js +32 -1
  177. package/build-module/dataforms-layouts/index.js.map +1 -1
  178. package/build-module/dataforms-layouts/panel/dropdown.js +10 -15
  179. package/build-module/dataforms-layouts/panel/dropdown.js.map +1 -1
  180. package/build-module/dataforms-layouts/panel/index.js +24 -11
  181. package/build-module/dataforms-layouts/panel/index.js.map +1 -1
  182. package/build-module/dataforms-layouts/panel/modal.js +22 -28
  183. package/build-module/dataforms-layouts/panel/modal.js.map +1 -1
  184. package/build-module/dataforms-layouts/panel/summary-button.js +60 -0
  185. package/build-module/dataforms-layouts/panel/summary-button.js.map +1 -0
  186. package/build-module/dataforms-layouts/regular/index.js +8 -10
  187. package/build-module/dataforms-layouts/regular/index.js.map +1 -1
  188. package/build-module/dataforms-layouts/row/index.js +106 -0
  189. package/build-module/dataforms-layouts/row/index.js.map +1 -0
  190. package/build-module/dataviews-layouts/grid/index.js +22 -27
  191. package/build-module/dataviews-layouts/grid/index.js.map +1 -1
  192. package/build-module/dataviews-layouts/index.js +10 -2
  193. package/build-module/dataviews-layouts/index.js.map +1 -1
  194. package/build-module/dataviews-layouts/list/index.js +48 -3
  195. package/build-module/dataviews-layouts/list/index.js.map +1 -1
  196. package/build-module/dataviews-layouts/picker-grid/index.js +338 -0
  197. package/build-module/dataviews-layouts/picker-grid/index.js.map +1 -0
  198. package/build-module/dataviews-layouts/table/index.js +5 -17
  199. package/build-module/dataviews-layouts/table/index.js.map +1 -1
  200. package/build-module/dataviews-layouts/utils/get-data-by-group.js +17 -0
  201. package/build-module/dataviews-layouts/utils/get-data-by-group.js.map +1 -0
  202. package/build-module/dataviews-layouts/utils/grid-items.js +29 -0
  203. package/build-module/dataviews-layouts/utils/grid-items.js.map +1 -0
  204. package/build-module/dataviews-layouts/utils/preview-size-picker.js +73 -0
  205. package/build-module/dataviews-layouts/utils/preview-size-picker.js.map +1 -0
  206. package/build-module/field-types/boolean.js +1 -1
  207. package/build-module/field-types/boolean.js.map +1 -1
  208. package/build-module/field-types/color.js +107 -0
  209. package/build-module/field-types/color.js.map +1 -0
  210. package/build-module/field-types/index.js +16 -0
  211. package/build-module/field-types/index.js.map +1 -1
  212. package/build-module/field-types/password.js +46 -0
  213. package/build-module/field-types/password.js.map +1 -0
  214. package/build-module/field-types/telephone.js +51 -0
  215. package/build-module/field-types/telephone.js.map +1 -0
  216. package/build-module/field-types/url.js +51 -0
  217. package/build-module/field-types/url.js.map +1 -0
  218. package/build-module/normalize-fields.js +15 -0
  219. package/build-module/normalize-fields.js.map +1 -1
  220. package/build-module/normalize-form-fields.js +6 -0
  221. package/build-module/normalize-form-fields.js.map +1 -1
  222. package/build-module/types.js.map +1 -1
  223. package/build-module/validation.js +1 -1
  224. package/build-module/validation.js.map +1 -1
  225. package/build-style/style-rtl.css +261 -18
  226. package/build-style/style.css +261 -18
  227. package/build-types/components/dataform/stories/index.story.d.ts +21 -17
  228. package/build-types/components/dataform/stories/index.story.d.ts.map +1 -1
  229. package/build-types/components/dataform-context/index.d.ts.map +1 -1
  230. package/build-types/components/dataviews/index.d.ts +1 -1
  231. package/build-types/components/dataviews/index.d.ts.map +1 -1
  232. package/build-types/components/dataviews/stories/fixtures.d.ts +4 -2
  233. package/build-types/components/dataviews/stories/fixtures.d.ts.map +1 -1
  234. package/build-types/components/dataviews/stories/index.story.d.ts.map +1 -1
  235. package/build-types/components/dataviews-context/index.d.ts +1 -0
  236. package/build-types/components/dataviews-context/index.d.ts.map +1 -1
  237. package/build-types/components/dataviews-filters/input-widget.d.ts.map +1 -1
  238. package/build-types/components/dataviews-layout/index.d.ts.map +1 -1
  239. package/build-types/components/dataviews-picker/footer.d.ts +4 -0
  240. package/build-types/components/dataviews-picker/footer.d.ts.map +1 -0
  241. package/build-types/components/dataviews-picker/index.d.ts +55 -0
  242. package/build-types/components/dataviews-picker/index.d.ts.map +1 -0
  243. package/build-types/components/dataviews-picker/stories/index.story.d.ts +42 -0
  244. package/build-types/components/dataviews-picker/stories/index.story.d.ts.map +1 -0
  245. package/build-types/components/dataviews-selection-checkbox/index.d.ts +2 -1
  246. package/build-types/components/dataviews-selection-checkbox/index.d.ts.map +1 -1
  247. package/build-types/components/dataviews-view-config/index.d.ts.map +1 -1
  248. package/build-types/constants.d.ts +1 -0
  249. package/build-types/constants.d.ts.map +1 -1
  250. package/build-types/dataform-controls/array.d.ts.map +1 -1
  251. package/build-types/dataform-controls/checkbox.d.ts.map +1 -1
  252. package/build-types/dataform-controls/color.d.ts +6 -0
  253. package/build-types/dataform-controls/color.d.ts.map +1 -0
  254. package/build-types/dataform-controls/date.d.ts.map +1 -1
  255. package/build-types/dataform-controls/datetime.d.ts.map +1 -1
  256. package/build-types/dataform-controls/email.d.ts.map +1 -1
  257. package/build-types/dataform-controls/index.d.ts +1 -1
  258. package/build-types/dataform-controls/index.d.ts.map +1 -1
  259. package/build-types/dataform-controls/integer.d.ts.map +1 -1
  260. package/build-types/dataform-controls/password.d.ts +3 -0
  261. package/build-types/dataform-controls/password.d.ts.map +1 -0
  262. package/build-types/dataform-controls/radio.d.ts.map +1 -1
  263. package/build-types/dataform-controls/relative-date-control.d.ts +6 -5
  264. package/build-types/dataform-controls/relative-date-control.d.ts.map +1 -1
  265. package/build-types/dataform-controls/select.d.ts.map +1 -1
  266. package/build-types/dataform-controls/telephone.d.ts +6 -0
  267. package/build-types/dataform-controls/telephone.d.ts.map +1 -0
  268. package/build-types/dataform-controls/text.d.ts +1 -1
  269. package/build-types/dataform-controls/text.d.ts.map +1 -1
  270. package/build-types/dataform-controls/textarea.d.ts +6 -0
  271. package/build-types/dataform-controls/textarea.d.ts.map +1 -0
  272. package/build-types/dataform-controls/toggle-group.d.ts.map +1 -1
  273. package/build-types/dataform-controls/toggle.d.ts +6 -0
  274. package/build-types/dataform-controls/toggle.d.ts.map +1 -0
  275. package/build-types/dataform-controls/url.d.ts +6 -0
  276. package/build-types/dataform-controls/url.d.ts.map +1 -0
  277. package/build-types/dataform-controls/utils/validated-input.d.ts +20 -0
  278. package/build-types/dataform-controls/utils/validated-input.d.ts.map +1 -0
  279. package/build-types/dataforms-layouts/card/index.d.ts +0 -3
  280. package/build-types/dataforms-layouts/card/index.d.ts.map +1 -1
  281. package/build-types/dataforms-layouts/data-form-layout.d.ts +4 -1
  282. package/build-types/dataforms-layouts/data-form-layout.d.ts.map +1 -1
  283. package/build-types/dataforms-layouts/index.d.ts +10 -0
  284. package/build-types/dataforms-layouts/index.d.ts.map +1 -1
  285. package/build-types/dataforms-layouts/panel/dropdown.d.ts +2 -1
  286. package/build-types/dataforms-layouts/panel/dropdown.d.ts.map +1 -1
  287. package/build-types/dataforms-layouts/panel/index.d.ts.map +1 -1
  288. package/build-types/dataforms-layouts/panel/modal.d.ts +2 -1
  289. package/build-types/dataforms-layouts/panel/modal.d.ts.map +1 -1
  290. package/build-types/dataforms-layouts/panel/summary-button.d.ts +15 -0
  291. package/build-types/dataforms-layouts/panel/summary-button.d.ts.map +1 -0
  292. package/build-types/dataforms-layouts/regular/index.d.ts.map +1 -1
  293. package/build-types/dataforms-layouts/row/index.d.ts +6 -0
  294. package/build-types/dataforms-layouts/row/index.d.ts.map +1 -0
  295. package/build-types/dataviews-layouts/grid/index.d.ts.map +1 -1
  296. package/build-types/dataviews-layouts/index.d.ts +12 -1
  297. package/build-types/dataviews-layouts/index.d.ts.map +1 -1
  298. package/build-types/dataviews-layouts/list/index.d.ts.map +1 -1
  299. package/build-types/dataviews-layouts/picker-grid/index.d.ts +4 -0
  300. package/build-types/dataviews-layouts/picker-grid/index.d.ts.map +1 -0
  301. package/build-types/dataviews-layouts/table/index.d.ts.map +1 -1
  302. package/build-types/dataviews-layouts/utils/get-data-by-group.d.ts +6 -0
  303. package/build-types/dataviews-layouts/utils/get-data-by-group.d.ts.map +1 -0
  304. package/build-types/dataviews-layouts/utils/grid-items.d.ts +5 -0
  305. package/build-types/dataviews-layouts/utils/grid-items.d.ts.map +1 -0
  306. package/build-types/dataviews-layouts/utils/preview-size-picker.d.ts +2 -0
  307. package/build-types/dataviews-layouts/utils/preview-size-picker.d.ts.map +1 -0
  308. package/build-types/field-types/color.d.ts +20 -0
  309. package/build-types/field-types/color.d.ts.map +1 -0
  310. package/build-types/field-types/index.d.ts.map +1 -1
  311. package/build-types/field-types/password.d.ts +17 -0
  312. package/build-types/field-types/password.d.ts.map +1 -0
  313. package/build-types/field-types/stories/index.story.d.ts +85 -0
  314. package/build-types/field-types/stories/index.story.d.ts.map +1 -0
  315. package/build-types/field-types/telephone.d.ts +20 -0
  316. package/build-types/field-types/telephone.d.ts.map +1 -0
  317. package/build-types/field-types/url.d.ts +20 -0
  318. package/build-types/field-types/url.d.ts.map +1 -0
  319. package/build-types/normalize-fields.d.ts +3 -0
  320. package/build-types/normalize-fields.d.ts.map +1 -1
  321. package/build-types/normalize-form-fields.d.ts.map +1 -1
  322. package/build-types/test/dataviews-picker.d.ts +2 -0
  323. package/build-types/test/dataviews-picker.d.ts.map +1 -0
  324. package/build-types/types.d.ts +102 -8
  325. package/build-types/types.d.ts.map +1 -1
  326. package/build-types/validation.d.ts.map +1 -1
  327. package/build-wp/index.js +6380 -5012
  328. package/package.json +17 -15
  329. package/src/components/dataform/stories/index.story.tsx +822 -28
  330. package/src/components/dataform-context/index.tsx +1 -0
  331. package/src/components/dataviews/index.tsx +25 -1
  332. package/src/components/dataviews/stories/fixtures.tsx +100 -42
  333. package/src/components/dataviews/stories/index.story.tsx +16 -2
  334. package/src/components/dataviews/style.scss +4 -2
  335. package/src/components/dataviews-context/index.ts +3 -0
  336. package/src/components/dataviews-filters/input-widget.tsx +44 -5
  337. package/src/components/dataviews-layout/index.tsx +5 -3
  338. package/src/components/dataviews-picker/footer.tsx +207 -0
  339. package/src/components/dataviews-picker/index.tsx +284 -0
  340. package/src/components/dataviews-picker/stories/index.story.tsx +251 -0
  341. package/src/components/dataviews-picker/style.scss +10 -0
  342. package/src/components/dataviews-selection-checkbox/index.tsx +3 -0
  343. package/src/components/dataviews-view-config/index.tsx +1 -0
  344. package/src/constants.ts +3 -0
  345. package/src/dataform-controls/array.tsx +4 -6
  346. package/src/dataform-controls/checkbox.tsx +54 -7
  347. package/src/dataform-controls/color.tsx +148 -0
  348. package/src/dataform-controls/date.tsx +47 -21
  349. package/src/dataform-controls/datetime.tsx +171 -23
  350. package/src/dataform-controls/email.tsx +18 -52
  351. package/src/dataform-controls/index.tsx +38 -2
  352. package/src/dataform-controls/integer.tsx +82 -49
  353. package/src/dataform-controls/password.tsx +50 -0
  354. package/src/dataform-controls/radio.tsx +53 -11
  355. package/src/dataform-controls/relative-date-control.tsx +11 -10
  356. package/src/dataform-controls/select.tsx +53 -10
  357. package/src/dataform-controls/telephone.tsx +38 -0
  358. package/src/dataform-controls/text.tsx +12 -50
  359. package/src/dataform-controls/textarea.tsx +85 -0
  360. package/src/dataform-controls/toggle-group.tsx +50 -10
  361. package/src/dataform-controls/toggle.tsx +79 -0
  362. package/src/dataform-controls/url.tsx +38 -0
  363. package/src/dataform-controls/utils/validated-input.tsx +109 -0
  364. package/src/dataforms-layouts/card/index.tsx +5 -4
  365. package/src/dataforms-layouts/card/style.scss +7 -0
  366. package/src/dataforms-layouts/data-form-layout.tsx +15 -3
  367. package/src/dataforms-layouts/index.tsx +35 -0
  368. package/src/dataforms-layouts/panel/dropdown.tsx +12 -23
  369. package/src/dataforms-layouts/panel/index.tsx +39 -16
  370. package/src/dataforms-layouts/panel/modal.tsx +24 -30
  371. package/src/dataforms-layouts/panel/summary-button.tsx +92 -0
  372. package/src/dataforms-layouts/regular/index.tsx +9 -7
  373. package/src/dataforms-layouts/regular/style.scss +0 -6
  374. package/src/dataforms-layouts/row/index.tsx +115 -0
  375. package/src/dataforms-layouts/row/style.scss +3 -0
  376. package/src/dataviews-layouts/grid/index.tsx +47 -47
  377. package/src/dataviews-layouts/grid/style.scss +43 -20
  378. package/src/dataviews-layouts/index.ts +16 -2
  379. package/src/dataviews-layouts/list/index.tsx +74 -2
  380. package/src/dataviews-layouts/list/style.scss +8 -0
  381. package/src/dataviews-layouts/picker-grid/index.tsx +486 -0
  382. package/src/dataviews-layouts/picker-grid/style.scss +171 -0
  383. package/src/dataviews-layouts/table/index.tsx +10 -14
  384. package/src/dataviews-layouts/utils/get-data-by-group.ts +18 -0
  385. package/src/dataviews-layouts/utils/grid-items.scss +21 -0
  386. package/src/dataviews-layouts/utils/grid-items.tsx +35 -0
  387. package/src/dataviews-layouts/utils/preview-size-picker.tsx +87 -0
  388. package/src/field-types/boolean.tsx +1 -1
  389. package/src/field-types/color.tsx +115 -0
  390. package/src/field-types/index.tsx +20 -0
  391. package/src/field-types/password.tsx +46 -0
  392. package/src/field-types/stories/index.story.tsx +856 -0
  393. package/src/field-types/telephone.tsx +71 -0
  394. package/src/field-types/url.tsx +71 -0
  395. package/src/normalize-fields.ts +18 -0
  396. package/src/normalize-form-fields.ts +6 -0
  397. package/src/style.scss +4 -0
  398. package/src/test/dataform.tsx +2 -2
  399. package/src/test/dataviews-picker.tsx +478 -0
  400. package/src/test/dataviews.tsx +86 -0
  401. package/src/test/filter-and-sort-data-view.js +148 -138
  402. package/src/test/normalize-fields.ts +114 -0
  403. package/src/types.ts +130 -7
  404. package/src/validation.ts +5 -0
  405. package/tsconfig.tsbuildinfo +1 -1
  406. package/build/dataform-controls/boolean.js +0 -64
  407. package/build/dataform-controls/boolean.js.map +0 -1
  408. package/build-module/dataform-controls/boolean.js +0 -58
  409. package/build-module/dataform-controls/boolean.js.map +0 -1
  410. package/build-types/components/stories/index.story.d.ts +0 -63
  411. package/build-types/components/stories/index.story.d.ts.map +0 -1
  412. package/build-types/dataform-controls/boolean.d.ts +0 -6
  413. package/build-types/dataform-controls/boolean.d.ts.map +0 -1
  414. package/src/components/stories/index.story.tsx +0 -372
  415. package/src/dataform-controls/boolean.tsx +0 -61
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_i18n","_dataviewsContext","_interopRequireDefault","_dataviewsLayouts","_jsxRuntime","DataViewsLayout","className","actions","data","fields","getItemId","getItemLevel","isLoading","view","onChangeView","selection","onChangeSelection","setOpenedFilter","onClickItem","isItemClickable","renderItemLink","empty","__","useContext","DataViewsContext","ViewComponent","VIEW_LAYOUTS","find","v","type","component","jsx"],"sources":["@wordpress/dataviews/src/components/dataviews-layout/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ComponentType } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport { VIEW_LAYOUTS } from '../../dataviews-layouts';\nimport type { ViewBaseProps } from '../../types';\n\ntype DataViewsLayoutProps = {\n\tclassName?: string;\n};\n\nexport default function DataViewsLayout( { className }: DataViewsLayoutProps ) {\n\tconst {\n\t\tactions = [],\n\t\tdata,\n\t\tfields,\n\t\tgetItemId,\n\t\tgetItemLevel,\n\t\tisLoading,\n\t\tview,\n\t\tonChangeView,\n\t\tselection,\n\t\tonChangeSelection,\n\t\tsetOpenedFilter,\n\t\tonClickItem,\n\t\tisItemClickable,\n\t\trenderItemLink,\n\t\tempty = __( 'No results' ),\n\t} = useContext( DataViewsContext );\n\n\tconst ViewComponent = VIEW_LAYOUTS.find( ( v ) => v.type === view.type )\n\t\t?.component as ComponentType< ViewBaseProps< any > >;\n\n\treturn (\n\t\t<ViewComponent\n\t\t\tclassName={ className }\n\t\t\tactions={ actions }\n\t\t\tdata={ data }\n\t\t\tfields={ fields }\n\t\t\tgetItemId={ getItemId }\n\t\t\tgetItemLevel={ getItemLevel }\n\t\t\tisLoading={ isLoading }\n\t\t\tonChangeView={ onChangeView }\n\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\tselection={ selection }\n\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\tonClickItem={ onClickItem }\n\t\t\trenderItemLink={ renderItemLink }\n\t\t\tisItemClickable={ isItemClickable }\n\t\t\tview={ view }\n\t\t\tempty={ empty }\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;;AAQA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,iBAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAJ,OAAA;AAAuD,IAAAK,WAAA,GAAAL,OAAA;AAfvD;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;;AASe,SAASM,eAAeA,CAAE;EAAEC;AAAgC,CAAC,EAAG;EAC9E,MAAM;IACLC,OAAO,GAAG,EAAE;IACZC,IAAI;IACJC,MAAM;IACNC,SAAS;IACTC,YAAY;IACZC,SAAS;IACTC,IAAI;IACJC,YAAY;IACZC,SAAS;IACTC,iBAAiB;IACjBC,eAAe;IACfC,WAAW;IACXC,eAAe;IACfC,cAAc;IACdC,KAAK,GAAG,IAAAC,QAAE,EAAE,YAAa;EAC1B,CAAC,GAAG,IAAAC,mBAAU,EAAEC,yBAAiB,CAAC;EAElC,MAAMC,aAAa,GAAGC,8BAAY,CAACC,IAAI,CAAIC,CAAC,IAAMA,CAAC,CAACC,IAAI,KAAKhB,IAAI,CAACgB,IAAK,CAAC,EACrEC,SAAkD;EAErD,oBACC,IAAA1B,WAAA,CAAA2B,GAAA,EAACN,aAAa;IACbnB,SAAS,EAAGA,SAAW;IACvBC,OAAO,EAAGA,OAAS;IACnBC,IAAI,EAAGA,IAAM;IACbC,MAAM,EAAGA,MAAQ;IACjBC,SAAS,EAAGA,SAAW;IACvBC,YAAY,EAAGA,YAAc;IAC7BC,SAAS,EAAGA,SAAW;IACvBE,YAAY,EAAGA,YAAc;IAC7BE,iBAAiB,EAAGA,iBAAmB;IACvCD,SAAS,EAAGA,SAAW;IACvBE,eAAe,EAAGA,eAAiB;IACnCC,WAAW,EAAGA,WAAa;IAC3BE,cAAc,EAAGA,cAAgB;IACjCD,eAAe,EAAGA,eAAiB;IACnCN,IAAI,EAAGA,IAAM;IACbQ,KAAK,EAAGA;EAAO,CACf,CAAC;AAEJ","ignoreList":[]}
1
+ {"version":3,"names":["_element","require","_i18n","_dataviewsContext","_interopRequireDefault","_dataviewsLayouts","_jsxRuntime","DataViewsLayout","className","actions","data","fields","getItemId","getItemLevel","isLoading","view","onChangeView","selection","onChangeSelection","setOpenedFilter","onClickItem","isItemClickable","renderItemLink","defaultLayouts","empty","jsx","children","__","useContext","DataViewsContext","ViewComponent","VIEW_LAYOUTS","find","v","type","component"],"sources":["@wordpress/dataviews/src/components/dataviews-layout/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ComponentType } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport { VIEW_LAYOUTS } from '../../dataviews-layouts';\nimport type { ViewBaseProps } from '../../types';\n\ntype DataViewsLayoutProps = {\n\tclassName?: string;\n};\n\nexport default function DataViewsLayout( { className }: DataViewsLayoutProps ) {\n\tconst {\n\t\tactions = [],\n\t\tdata,\n\t\tfields,\n\t\tgetItemId,\n\t\tgetItemLevel,\n\t\tisLoading,\n\t\tview,\n\t\tonChangeView,\n\t\tselection,\n\t\tonChangeSelection,\n\t\tsetOpenedFilter,\n\t\tonClickItem,\n\t\tisItemClickable,\n\t\trenderItemLink,\n\t\tdefaultLayouts,\n\t\tempty = <p>{ __( 'No results' ) }</p>,\n\t} = useContext( DataViewsContext );\n\n\tconst ViewComponent = VIEW_LAYOUTS.find(\n\t\t( v ) => v.type === view.type && defaultLayouts[ v.type ]\n\t)?.component as ComponentType< ViewBaseProps< any > >;\n\n\treturn (\n\t\t<ViewComponent\n\t\t\tclassName={ className }\n\t\t\tactions={ actions }\n\t\t\tdata={ data }\n\t\t\tfields={ fields }\n\t\t\tgetItemId={ getItemId }\n\t\t\tgetItemLevel={ getItemLevel }\n\t\t\tisLoading={ isLoading }\n\t\t\tonChangeView={ onChangeView }\n\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\tselection={ selection }\n\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t\tonClickItem={ onClickItem }\n\t\t\trenderItemLink={ renderItemLink }\n\t\t\tisItemClickable={ isItemClickable }\n\t\t\tview={ view }\n\t\t\tempty={ empty }\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;;AAQA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAKA,IAAAE,iBAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAJ,OAAA;AAAuD,IAAAK,WAAA,GAAAL,OAAA;AAfvD;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;;AASe,SAASM,eAAeA,CAAE;EAAEC;AAAgC,CAAC,EAAG;EAC9E,MAAM;IACLC,OAAO,GAAG,EAAE;IACZC,IAAI;IACJC,MAAM;IACNC,SAAS;IACTC,YAAY;IACZC,SAAS;IACTC,IAAI;IACJC,YAAY;IACZC,SAAS;IACTC,iBAAiB;IACjBC,eAAe;IACfC,WAAW;IACXC,eAAe;IACfC,cAAc;IACdC,cAAc;IACdC,KAAK,gBAAG,IAAAlB,WAAA,CAAAmB,GAAA;MAAAC,QAAA,EAAK,IAAAC,QAAE,EAAE,YAAa;IAAC,CAAK;EACrC,CAAC,GAAG,IAAAC,mBAAU,EAAEC,yBAAiB,CAAC;EAElC,MAAMC,aAAa,GAAGC,8BAAY,CAACC,IAAI,CACpCC,CAAC,IAAMA,CAAC,CAACC,IAAI,KAAKnB,IAAI,CAACmB,IAAI,IAAIX,cAAc,CAAEU,CAAC,CAACC,IAAI,CACxD,CAAC,EAAEC,SAAkD;EAErD,oBACC,IAAA7B,WAAA,CAAAmB,GAAA,EAACK,aAAa;IACbtB,SAAS,EAAGA,SAAW;IACvBC,OAAO,EAAGA,OAAS;IACnBC,IAAI,EAAGA,IAAM;IACbC,MAAM,EAAGA,MAAQ;IACjBC,SAAS,EAAGA,SAAW;IACvBC,YAAY,EAAGA,YAAc;IAC7BC,SAAS,EAAGA,SAAW;IACvBE,YAAY,EAAGA,YAAc;IAC7BE,iBAAiB,EAAGA,iBAAmB;IACvCD,SAAS,EAAGA,SAAW;IACvBE,eAAe,EAAGA,eAAiB;IACnCC,WAAW,EAAGA,WAAa;IAC3BE,cAAc,EAAGA,cAAgB;IACjCD,eAAe,EAAGA,eAAiB;IACnCN,IAAI,EAAGA,IAAM;IACbS,KAAK,EAAGA;EAAO,CACf,CAAC;AAEJ","ignoreList":[]}
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.DataViewsPickerFooter = DataViewsPickerFooter;
8
+ exports.useIsMultiselectPicker = useIsMultiselectPicker;
9
+ var _components = require("@wordpress/components");
10
+ var _data = require("@wordpress/data");
11
+ var _element = require("@wordpress/element");
12
+ var _i18n = require("@wordpress/i18n");
13
+ var _dataviewsPagination = _interopRequireDefault(require("../dataviews-pagination"));
14
+ var _dataviewsContext = _interopRequireDefault(require("../dataviews-context"));
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ /**
17
+ * WordPress dependencies
18
+ */
19
+
20
+ /**
21
+ * Internal dependencies
22
+ */
23
+
24
+ const EMPTY_ARRAY = [];
25
+ function useIsMultiselectPicker(actions) {
26
+ return (0, _element.useMemo)(() => {
27
+ return actions?.every(action => action.supportsBulk);
28
+ }, [actions]);
29
+ }
30
+ function BulkSelectionCheckbox({
31
+ selection,
32
+ selectedItems,
33
+ onChangeSelection,
34
+ data,
35
+ getItemId
36
+ }) {
37
+ const areAllSelected = selectedItems.length === data.length;
38
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.CheckboxControl, {
39
+ className: "dataviews-view-table-selection-checkbox",
40
+ __nextHasNoMarginBottom: true,
41
+ checked: areAllSelected,
42
+ indeterminate: !areAllSelected && !!selectedItems.length,
43
+ onChange: () => {
44
+ if (areAllSelected) {
45
+ // Deselect all - remove the current page from the total selection.
46
+ onChangeSelection(selection.filter(id => !data.some(item => id === getItemId(item))));
47
+ } else {
48
+ // Select all - merge the current page into the total selection.
49
+ const selectionSet = new Set([...selection, ...data.map(item => getItemId(item))]);
50
+ onChangeSelection(Array.from(selectionSet));
51
+ }
52
+ },
53
+ "aria-label": areAllSelected ? (0, _i18n.__)('Deselect all') : (0, _i18n.__)('Select all')
54
+ });
55
+ }
56
+ function ActionButtons({
57
+ actions,
58
+ items,
59
+ selection
60
+ }) {
61
+ const registry = (0, _data.useRegistry)();
62
+ const [actionInProgress, setActionInProgress] = (0, _element.useState)(null);
63
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalHStack, {
64
+ expanded: false,
65
+ spacing: 1,
66
+ children: actions.map(action => {
67
+ // Only support actions with callbacks for DataViewsPicker.
68
+ // This is because many use cases of the picker will be already within modals.
69
+ if (!('callback' in action)) {
70
+ return null;
71
+ }
72
+ const {
73
+ id,
74
+ label,
75
+ icon,
76
+ isPrimary,
77
+ isDestructive,
78
+ callback
79
+ } = action;
80
+ const _label = typeof label === 'string' ? label : label(items);
81
+ const variant = isPrimary ? 'primary' : 'tertiary';
82
+ const isInProgress = id === actionInProgress;
83
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
84
+ accessibleWhenDisabled: true,
85
+ icon: icon,
86
+ disabled: isInProgress || !selection?.length,
87
+ isBusy: isInProgress,
88
+ onClick: async () => {
89
+ setActionInProgress(id);
90
+ await callback(items, {
91
+ registry
92
+ });
93
+ setActionInProgress(null);
94
+ },
95
+ size: "compact",
96
+ isDestructive: isDestructive,
97
+ variant: variant,
98
+ children: _label
99
+ }, id);
100
+ })
101
+ });
102
+ }
103
+ function DataViewsPickerFooter() {
104
+ const {
105
+ data,
106
+ selection,
107
+ onChangeSelection,
108
+ getItemId,
109
+ actions = EMPTY_ARRAY
110
+ } = (0, _element.useContext)(_dataviewsContext.default);
111
+ const selectionCount = selection.length;
112
+ const isMultiselect = useIsMultiselectPicker(actions);
113
+ const message = selectionCount > 0 ? (0, _i18n.sprintf)(/* translators: %d: number of items. */
114
+ (0, _i18n._n)('%d Item selected', '%d Items selected', selectionCount), selectionCount) : (0, _i18n.sprintf)(/* translators: %d: number of items. */
115
+ (0, _i18n._n)('%d Item', '%d Items', data.length), data.length);
116
+ const selectedItems = (0, _element.useMemo)(() => data.filter(item => selection.includes(getItemId(item))), [selection, getItemId, data]);
117
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
118
+ expanded: false,
119
+ justify: "space-between",
120
+ className: "dataviews-footer",
121
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
122
+ className: "dataviews-picker-footer__bulk-selection",
123
+ expanded: false,
124
+ spacing: 3,
125
+ children: [isMultiselect && /*#__PURE__*/(0, _jsxRuntime.jsx)(BulkSelectionCheckbox, {
126
+ selection: selection,
127
+ selectedItems: selectedItems,
128
+ onChangeSelection: onChangeSelection,
129
+ data: data,
130
+ getItemId: getItemId
131
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
132
+ className: "dataviews-bulk-actions-footer__item-count",
133
+ children: message
134
+ })]
135
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsPagination.default, {}), Boolean(actions?.length) && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
136
+ className: "dataviews-picker-footer__actions",
137
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ActionButtons, {
138
+ actions: actions,
139
+ items: selectedItems,
140
+ selection: selection
141
+ })
142
+ })]
143
+ });
144
+ }
145
+ //# sourceMappingURL=footer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_components","require","_data","_element","_i18n","_dataviewsPagination","_interopRequireDefault","_dataviewsContext","_jsxRuntime","EMPTY_ARRAY","useIsMultiselectPicker","actions","useMemo","every","action","supportsBulk","BulkSelectionCheckbox","selection","selectedItems","onChangeSelection","data","getItemId","areAllSelected","length","jsx","CheckboxControl","className","__nextHasNoMarginBottom","checked","indeterminate","onChange","filter","id","some","item","selectionSet","Set","map","Array","from","__","ActionButtons","items","registry","useRegistry","actionInProgress","setActionInProgress","useState","__experimentalHStack","expanded","spacing","children","label","icon","isPrimary","isDestructive","callback","_label","variant","isInProgress","Button","accessibleWhenDisabled","disabled","isBusy","onClick","size","DataViewsPickerFooter","useContext","DataViewsContext","selectionCount","isMultiselect","message","sprintf","_n","includes","jsxs","justify","default","Boolean"],"sources":["@wordpress/dataviews/src/components/dataviews-picker/footer.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tCheckboxControl,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { useRegistry } from '@wordpress/data';\nimport { useContext, useMemo, useState } from '@wordpress/element';\nimport { __, sprintf, _n } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport DataViewsPagination from '../dataviews-pagination';\nimport DataViewsContext from '../dataviews-context';\nimport type { SetSelection } from '../../private-types';\nimport type { Action } from '../../types';\n\nconst EMPTY_ARRAY: [] = [];\n\nexport function useIsMultiselectPicker< Item >(\n\tactions: Action< Item >[] | undefined\n) {\n\treturn useMemo( () => {\n\t\treturn actions?.every( ( action ) => action.supportsBulk );\n\t}, [ actions ] );\n}\n\nfunction BulkSelectionCheckbox< Item >( {\n\tselection,\n\tselectedItems,\n\tonChangeSelection,\n\tdata,\n\tgetItemId,\n}: {\n\tselection: string[];\n\tselectedItems: Item[];\n\tonChangeSelection: SetSelection;\n\tdata: Item[];\n\tgetItemId: ( item: Item ) => string;\n} ) {\n\tconst areAllSelected = selectedItems.length === data.length;\n\n\treturn (\n\t\t<CheckboxControl\n\t\t\tclassName=\"dataviews-view-table-selection-checkbox\"\n\t\t\t__nextHasNoMarginBottom\n\t\t\tchecked={ areAllSelected }\n\t\t\tindeterminate={ ! areAllSelected && !! selectedItems.length }\n\t\t\tonChange={ () => {\n\t\t\t\tif ( areAllSelected ) {\n\t\t\t\t\t// Deselect all - remove the current page from the total selection.\n\t\t\t\t\tonChangeSelection(\n\t\t\t\t\t\tselection.filter(\n\t\t\t\t\t\t\t( id ) =>\n\t\t\t\t\t\t\t\t! data.some(\n\t\t\t\t\t\t\t\t\t( item ) => id === getItemId( item )\n\t\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} else {\n\t\t\t\t\t// Select all - merge the current page into the total selection.\n\t\t\t\t\tconst selectionSet = new Set( [\n\t\t\t\t\t\t...selection,\n\t\t\t\t\t\t...data.map( ( item ) => getItemId( item ) ),\n\t\t\t\t\t] );\n\t\t\t\t\tonChangeSelection( Array.from( selectionSet ) );\n\t\t\t\t}\n\t\t\t} }\n\t\t\taria-label={\n\t\t\t\tareAllSelected ? __( 'Deselect all' ) : __( 'Select all' )\n\t\t\t}\n\t\t/>\n\t);\n}\n\nfunction ActionButtons< Item >( {\n\tactions,\n\titems,\n\tselection,\n}: {\n\tactions: Action< Item >[];\n\titems: Item[];\n\tselection: string[];\n} ) {\n\tconst registry = useRegistry();\n\tconst [ actionInProgress, setActionInProgress ] = useState< string | null >(\n\t\tnull\n\t);\n\n\treturn (\n\t\t<HStack expanded={ false } spacing={ 1 }>\n\t\t\t{ actions.map( ( action ) => {\n\t\t\t\t// Only support actions with callbacks for DataViewsPicker.\n\t\t\t\t// This is because many use cases of the picker will be already within modals.\n\t\t\t\tif ( ! ( 'callback' in action ) ) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tconst { id, label, icon, isPrimary, isDestructive, callback } =\n\t\t\t\t\taction;\n\n\t\t\t\tconst _label =\n\t\t\t\t\ttypeof label === 'string' ? label : label( items );\n\t\t\t\tconst variant = isPrimary ? 'primary' : 'tertiary';\n\t\t\t\tconst isInProgress = id === actionInProgress;\n\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tkey={ id }\n\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\tdisabled={ isInProgress || ! selection?.length }\n\t\t\t\t\t\tisBusy={ isInProgress }\n\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\tsetActionInProgress( id );\n\t\t\t\t\t\t\tawait callback( items, {\n\t\t\t\t\t\t\t\tregistry,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tsetActionInProgress( null );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\tisDestructive={ isDestructive }\n\t\t\t\t\t\tvariant={ variant }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ _label }\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</HStack>\n\t);\n}\n\nexport function DataViewsPickerFooter() {\n\tconst {\n\t\tdata,\n\t\tselection,\n\t\tonChangeSelection,\n\t\tgetItemId,\n\t\tactions = EMPTY_ARRAY,\n\t} = useContext( DataViewsContext );\n\n\tconst selectionCount = selection.length;\n\tconst isMultiselect = useIsMultiselectPicker( actions );\n\n\tconst message =\n\t\tselectionCount > 0\n\t\t\t? sprintf(\n\t\t\t\t\t/* translators: %d: number of items. */\n\t\t\t\t\t_n(\n\t\t\t\t\t\t'%d Item selected',\n\t\t\t\t\t\t'%d Items selected',\n\t\t\t\t\t\tselectionCount\n\t\t\t\t\t),\n\t\t\t\t\tselectionCount\n\t\t\t )\n\t\t\t: sprintf(\n\t\t\t\t\t/* translators: %d: number of items. */\n\t\t\t\t\t_n( '%d Item', '%d Items', data.length ),\n\t\t\t\t\tdata.length\n\t\t\t );\n\n\tconst selectedItems = useMemo(\n\t\t() =>\n\t\t\tdata.filter( ( item ) => selection.includes( getItemId( item ) ) ),\n\t\t[ selection, getItemId, data ]\n\t);\n\n\treturn (\n\t\t<HStack\n\t\t\texpanded={ false }\n\t\t\tjustify=\"space-between\"\n\t\t\tclassName=\"dataviews-footer\"\n\t\t>\n\t\t\t<HStack\n\t\t\t\tclassName=\"dataviews-picker-footer__bulk-selection\"\n\t\t\t\texpanded={ false }\n\t\t\t\tspacing={ 3 }\n\t\t\t>\n\t\t\t\t{ isMultiselect && (\n\t\t\t\t\t<BulkSelectionCheckbox\n\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\tselectedItems={ selectedItems }\n\t\t\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tgetItemId={ getItemId }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<span className=\"dataviews-bulk-actions-footer__item-count\">\n\t\t\t\t\t{ message }\n\t\t\t\t</span>\n\t\t\t</HStack>\n\t\t\t<DataViewsPagination />\n\t\t\t{ Boolean( actions?.length ) && (\n\t\t\t\t<div className=\"dataviews-picker-footer__actions\">\n\t\t\t\t\t<ActionButtons\n\t\t\t\t\t\tactions={ actions }\n\t\t\t\t\t\titems={ selectedItems }\n\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</HStack>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _components = require("@wordpress/components");
9
+ var _element = require("@wordpress/element");
10
+ var _compose = require("@wordpress/compose");
11
+ var _dataviewsContext = _interopRequireDefault(require("../dataviews-context"));
12
+ var _dataviewsLayouts = require("../../dataviews-layouts");
13
+ var _dataviewsFilters = _interopRequireWildcard(require("../dataviews-filters"));
14
+ var _dataviewsLayout = _interopRequireDefault(require("../dataviews-layout"));
15
+ var _footer = require("./footer");
16
+ var _dataviewsSearch = _interopRequireDefault(require("../dataviews-search"));
17
+ var _dataviewsPagination = require("../dataviews-pagination");
18
+ var _dataviewsViewConfig = _interopRequireWildcard(require("../dataviews-view-config"));
19
+ var _normalizeFields = require("../../normalize-fields");
20
+ var _jsxRuntime = require("react/jsx-runtime");
21
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
22
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
23
+ /**
24
+ * External dependencies
25
+ */
26
+
27
+ /**
28
+ * WordPress dependencies
29
+ */
30
+
31
+ /**
32
+ * Internal dependencies
33
+ */
34
+
35
+ const isItemClickable = () => false;
36
+ const dataViewsPickerLayouts = _dataviewsLayouts.VIEW_LAYOUTS.filter(viewLayout => viewLayout.isPicker);
37
+ const defaultGetItemId = item => item.id;
38
+ const EMPTY_ARRAY = [];
39
+ function DefaultUI({
40
+ search = true,
41
+ searchLabel = undefined
42
+ }) {
43
+ const {
44
+ isShowingFilter
45
+ } = (0, _element.useContext)(_dataviewsContext.default);
46
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
47
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
48
+ alignment: "top",
49
+ justify: "space-between",
50
+ className: "dataviews__view-actions",
51
+ spacing: 1,
52
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
53
+ justify: "start",
54
+ expanded: false,
55
+ className: "dataviews__search",
56
+ children: [search && /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsSearch.default, {
57
+ label: searchLabel
58
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsFilters.FiltersToggle, {})]
59
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalHStack, {
60
+ spacing: 1,
61
+ expanded: false,
62
+ style: {
63
+ flexShrink: 0
64
+ },
65
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsViewConfig.default, {})
66
+ })]
67
+ }), isShowingFilter && /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsFilters.default, {
68
+ className: "dataviews-filters__container"
69
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsLayout.default, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_footer.DataViewsPickerFooter, {})]
70
+ });
71
+ }
72
+ function DataViewsPicker({
73
+ view,
74
+ onChangeView,
75
+ fields,
76
+ search = true,
77
+ searchLabel = undefined,
78
+ actions = EMPTY_ARRAY,
79
+ data,
80
+ getItemId = defaultGetItemId,
81
+ isLoading = false,
82
+ paginationInfo,
83
+ defaultLayouts: defaultLayoutsProperty,
84
+ selection,
85
+ onChangeSelection,
86
+ children,
87
+ config = {
88
+ perPageSizes: [10, 20, 50, 100]
89
+ },
90
+ itemListLabel,
91
+ empty
92
+ }) {
93
+ const {
94
+ infiniteScrollHandler
95
+ } = paginationInfo;
96
+ const containerRef = (0, _element.useRef)(null);
97
+ const [containerWidth, setContainerWidth] = (0, _element.useState)(0);
98
+ const resizeObserverRef = (0, _compose.useResizeObserver)(resizeObserverEntries => {
99
+ setContainerWidth(resizeObserverEntries[0].borderBoxSize[0].inlineSize);
100
+ }, {
101
+ box: 'border-box'
102
+ });
103
+ const [openedFilter, setOpenedFilter] = (0, _element.useState)(null);
104
+ function setSelectionWithChange(value) {
105
+ const newValue = typeof value === 'function' ? value(selection) : value;
106
+ if (onChangeSelection) {
107
+ onChangeSelection(newValue);
108
+ }
109
+ }
110
+ const _fields = (0, _element.useMemo)(() => (0, _normalizeFields.normalizeFields)(fields), [fields]);
111
+ const filters = (0, _dataviewsFilters.useFilters)(_fields, view);
112
+ const hasPrimaryOrLockedFilters = (0, _element.useMemo)(() => (filters || []).some(filter => filter.isPrimary || filter.isLocked), [filters]);
113
+ const [isShowingFilter, setIsShowingFilter] = (0, _element.useState)(hasPrimaryOrLockedFilters);
114
+ (0, _element.useEffect)(() => {
115
+ if (hasPrimaryOrLockedFilters && !isShowingFilter) {
116
+ setIsShowingFilter(true);
117
+ }
118
+ }, [hasPrimaryOrLockedFilters, isShowingFilter]);
119
+
120
+ // Attach scroll event listener for infinite scroll
121
+ (0, _element.useEffect)(() => {
122
+ if (!view.infiniteScrollEnabled || !containerRef.current) {
123
+ return;
124
+ }
125
+ const handleScroll = (0, _compose.throttle)(event => {
126
+ const target = event.target;
127
+ const scrollTop = target.scrollTop;
128
+ const scrollHeight = target.scrollHeight;
129
+ const clientHeight = target.clientHeight;
130
+
131
+ // Check if user has scrolled near the bottom
132
+ if (scrollTop + clientHeight >= scrollHeight - 100) {
133
+ infiniteScrollHandler?.();
134
+ }
135
+ }, 100); // Throttle to 100ms
136
+
137
+ const container = containerRef.current;
138
+ container.addEventListener('scroll', handleScroll);
139
+ return () => {
140
+ container.removeEventListener('scroll', handleScroll);
141
+ handleScroll.cancel(); // Cancel any pending throttled calls
142
+ };
143
+ }, [infiniteScrollHandler, view.infiniteScrollEnabled]);
144
+
145
+ // Filter out DataViewsPicker layouts.
146
+ const defaultLayouts = (0, _element.useMemo)(() => Object.fromEntries(Object.entries(defaultLayoutsProperty).filter(([layoutType]) => {
147
+ return dataViewsPickerLayouts.some(viewLayout => viewLayout.type === layoutType);
148
+ })), [defaultLayoutsProperty]);
149
+ if (!defaultLayouts[view.type]) {
150
+ return null;
151
+ }
152
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsContext.default.Provider, {
153
+ value: {
154
+ view,
155
+ onChangeView,
156
+ fields: _fields,
157
+ actions,
158
+ data,
159
+ isLoading,
160
+ paginationInfo,
161
+ isItemClickable,
162
+ selection,
163
+ onChangeSelection: setSelectionWithChange,
164
+ openedFilter,
165
+ setOpenedFilter,
166
+ getItemId,
167
+ containerWidth,
168
+ containerRef,
169
+ resizeObserverRef,
170
+ defaultLayouts,
171
+ filters,
172
+ isShowingFilter,
173
+ setIsShowingFilter,
174
+ config,
175
+ itemListLabel,
176
+ empty,
177
+ hasInfiniteScrollHandler: !!infiniteScrollHandler
178
+ },
179
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
180
+ className: "dataviews-picker-wrapper",
181
+ ref: containerRef,
182
+ children: children !== null && children !== void 0 ? children : /*#__PURE__*/(0, _jsxRuntime.jsx)(DefaultUI, {
183
+ search: search,
184
+ searchLabel: searchLabel
185
+ })
186
+ })
187
+ });
188
+ }
189
+
190
+ // Populate the DataViews sub components
191
+ const DataViewsPickerSubComponents = DataViewsPicker;
192
+ DataViewsPickerSubComponents.BulkActionToolbar = _footer.DataViewsPickerFooter;
193
+ DataViewsPickerSubComponents.Filters = _dataviewsFilters.default;
194
+ DataViewsPickerSubComponents.FiltersToggle = _dataviewsFilters.FiltersToggle;
195
+ DataViewsPickerSubComponents.Layout = _dataviewsLayout.default;
196
+ DataViewsPickerSubComponents.LayoutSwitcher = _dataviewsViewConfig.ViewTypeMenu;
197
+ DataViewsPickerSubComponents.Pagination = _dataviewsPagination.DataViewsPagination;
198
+ DataViewsPickerSubComponents.Search = _dataviewsSearch.default;
199
+ DataViewsPickerSubComponents.ViewConfig = _dataviewsViewConfig.DataviewsViewConfigDropdown;
200
+ var _default = exports.default = DataViewsPickerSubComponents;
201
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_components","require","_element","_compose","_dataviewsContext","_interopRequireDefault","_dataviewsLayouts","_dataviewsFilters","_interopRequireWildcard","_dataviewsLayout","_footer","_dataviewsSearch","_dataviewsPagination","_dataviewsViewConfig","_normalizeFields","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","isItemClickable","dataViewsPickerLayouts","VIEW_LAYOUTS","filter","viewLayout","isPicker","defaultGetItemId","item","id","EMPTY_ARRAY","DefaultUI","search","searchLabel","undefined","isShowingFilter","useContext","DataViewsContext","jsxs","Fragment","children","__experimentalHStack","alignment","justify","className","spacing","expanded","jsx","label","FiltersToggle","style","flexShrink","DataViewsPickerFooter","DataViewsPicker","view","onChangeView","fields","actions","data","getItemId","isLoading","paginationInfo","defaultLayouts","defaultLayoutsProperty","selection","onChangeSelection","config","perPageSizes","itemListLabel","empty","infiniteScrollHandler","containerRef","useRef","containerWidth","setContainerWidth","useState","resizeObserverRef","useResizeObserver","resizeObserverEntries","borderBoxSize","inlineSize","box","openedFilter","setOpenedFilter","setSelectionWithChange","value","newValue","_fields","useMemo","normalizeFields","filters","useFilters","hasPrimaryOrLockedFilters","some","isPrimary","isLocked","setIsShowingFilter","useEffect","infiniteScrollEnabled","current","handleScroll","throttle","event","target","scrollTop","scrollHeight","clientHeight","container","addEventListener","removeEventListener","cancel","fromEntries","entries","layoutType","type","Provider","hasInfiniteScrollHandler","ref","DataViewsPickerSubComponents","BulkActionToolbar","Filters","DataViewsFilters","Layout","DataViewsLayout","LayoutSwitcher","ViewTypeMenu","Pagination","DataViewsPagination","Search","DataViewsSearch","ViewConfig","DataviewsViewConfigDropdown","_default","exports"],"sources":["@wordpress/dataviews/src/components/dataviews-picker/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __experimentalHStack as HStack } from '@wordpress/components';\nimport {\n\tuseContext,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from '@wordpress/element';\nimport { useResizeObserver, throttle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport { VIEW_LAYOUTS } from '../../dataviews-layouts';\nimport {\n\tdefault as DataViewsFilters,\n\tuseFilters,\n\tFiltersToggle,\n} from '../dataviews-filters';\nimport DataViewsLayout from '../dataviews-layout';\nimport { DataViewsPickerFooter } from './footer';\nimport DataViewsSearch from '../dataviews-search';\nimport { DataViewsPagination } from '../dataviews-pagination';\nimport DataViewsViewConfig, {\n\tDataviewsViewConfigDropdown,\n\tViewTypeMenu,\n} from '../dataviews-view-config';\nimport { normalizeFields } from '../../normalize-fields';\nimport type { ActionButton, Field, View, SupportedLayouts } from '../../types';\nimport type { SelectionOrUpdater } from '../../private-types';\ntype ItemWithId = { id: string };\n\nconst isItemClickable = () => false;\n\nconst dataViewsPickerLayouts = VIEW_LAYOUTS.filter(\n\t( viewLayout ) => viewLayout.isPicker\n);\n\ntype DataViewsPickerProps< Item > = {\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tfields: Field< Item >[];\n\tactions?: ActionButton< Item >[];\n\tsearch?: boolean;\n\tsearchLabel?: string;\n\tdata: Item[];\n\tisLoading?: boolean;\n\tpaginationInfo: {\n\t\ttotalItems: number;\n\t\ttotalPages: number;\n\t\tinfiniteScrollHandler?: () => void;\n\t};\n\tdefaultLayouts: SupportedLayouts;\n\tselection: string[];\n\tonChangeSelection: ( items: string[] ) => void;\n\tchildren?: ReactNode;\n\tconfig?: {\n\t\tperPageSizes: number[];\n\t};\n\titemListLabel?: string;\n\tempty?: ReactNode;\n} & ( Item extends ItemWithId\n\t? { getItemId?: ( item: Item ) => string }\n\t: { getItemId: ( item: Item ) => string } );\n\nconst defaultGetItemId = ( item: ItemWithId ) => item.id;\nconst EMPTY_ARRAY: any[] = [];\n\ntype DefaultUIProps = Pick<\n\tDataViewsPickerProps< any >,\n\t'search' | 'searchLabel'\n>;\n\nfunction DefaultUI( {\n\tsearch = true,\n\tsearchLabel = undefined,\n}: DefaultUIProps ) {\n\tconst { isShowingFilter } = useContext( DataViewsContext );\n\treturn (\n\t\t<>\n\t\t\t<HStack\n\t\t\t\talignment=\"top\"\n\t\t\t\tjustify=\"space-between\"\n\t\t\t\tclassName=\"dataviews__view-actions\"\n\t\t\t\tspacing={ 1 }\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\tjustify=\"start\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t\tclassName=\"dataviews__search\"\n\t\t\t\t>\n\t\t\t\t\t{ search && <DataViewsSearch label={ searchLabel } /> }\n\t\t\t\t\t<FiltersToggle />\n\t\t\t\t</HStack>\n\t\t\t\t<HStack\n\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\texpanded={ false }\n\t\t\t\t\tstyle={ { flexShrink: 0 } }\n\t\t\t\t>\n\t\t\t\t\t<DataViewsViewConfig />\n\t\t\t\t</HStack>\n\t\t\t</HStack>\n\t\t\t{ isShowingFilter && (\n\t\t\t\t<DataViewsFilters className=\"dataviews-filters__container\" />\n\t\t\t) }\n\t\t\t<DataViewsLayout />\n\t\t\t<DataViewsPickerFooter />\n\t\t</>\n\t);\n}\n\nfunction DataViewsPicker< Item >( {\n\tview,\n\tonChangeView,\n\tfields,\n\tsearch = true,\n\tsearchLabel = undefined,\n\tactions = EMPTY_ARRAY,\n\tdata,\n\tgetItemId = defaultGetItemId,\n\tisLoading = false,\n\tpaginationInfo,\n\tdefaultLayouts: defaultLayoutsProperty,\n\tselection,\n\tonChangeSelection,\n\tchildren,\n\tconfig = { perPageSizes: [ 10, 20, 50, 100 ] },\n\titemListLabel,\n\tempty,\n}: DataViewsPickerProps< Item > ) {\n\tconst { infiniteScrollHandler } = paginationInfo;\n\tconst containerRef = useRef< HTMLDivElement | null >( null );\n\tconst [ containerWidth, setContainerWidth ] = useState( 0 );\n\tconst resizeObserverRef = useResizeObserver(\n\t\t( resizeObserverEntries: any ) => {\n\t\t\tsetContainerWidth(\n\t\t\t\tresizeObserverEntries[ 0 ].borderBoxSize[ 0 ].inlineSize\n\t\t\t);\n\t\t},\n\t\t{ box: 'border-box' }\n\t);\n\tconst [ openedFilter, setOpenedFilter ] = useState< string | null >( null );\n\tfunction setSelectionWithChange( value: SelectionOrUpdater ) {\n\t\tconst newValue =\n\t\t\ttypeof value === 'function' ? value( selection ) : value;\n\t\tif ( onChangeSelection ) {\n\t\t\tonChangeSelection( newValue );\n\t\t}\n\t}\n\tconst _fields = useMemo( () => normalizeFields( fields ), [ fields ] );\n\tconst filters = useFilters( _fields, view );\n\tconst hasPrimaryOrLockedFilters = useMemo(\n\t\t() =>\n\t\t\t( filters || [] ).some(\n\t\t\t\t( filter ) => filter.isPrimary || filter.isLocked\n\t\t\t),\n\t\t[ filters ]\n\t);\n\tconst [ isShowingFilter, setIsShowingFilter ] = useState< boolean >(\n\t\thasPrimaryOrLockedFilters\n\t);\n\n\tuseEffect( () => {\n\t\tif ( hasPrimaryOrLockedFilters && ! isShowingFilter ) {\n\t\t\tsetIsShowingFilter( true );\n\t\t}\n\t}, [ hasPrimaryOrLockedFilters, isShowingFilter ] );\n\n\t// Attach scroll event listener for infinite scroll\n\tuseEffect( () => {\n\t\tif ( ! view.infiniteScrollEnabled || ! containerRef.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst handleScroll = throttle( ( event: unknown ) => {\n\t\t\tconst target = ( event as Event ).target as HTMLElement;\n\t\t\tconst scrollTop = target.scrollTop;\n\t\t\tconst scrollHeight = target.scrollHeight;\n\t\t\tconst clientHeight = target.clientHeight;\n\n\t\t\t// Check if user has scrolled near the bottom\n\t\t\tif ( scrollTop + clientHeight >= scrollHeight - 100 ) {\n\t\t\t\tinfiniteScrollHandler?.();\n\t\t\t}\n\t\t}, 100 ); // Throttle to 100ms\n\n\t\tconst container = containerRef.current;\n\t\tcontainer.addEventListener( 'scroll', handleScroll );\n\n\t\treturn () => {\n\t\t\tcontainer.removeEventListener( 'scroll', handleScroll );\n\t\t\thandleScroll.cancel(); // Cancel any pending throttled calls\n\t\t};\n\t}, [ infiniteScrollHandler, view.infiniteScrollEnabled ] );\n\n\t// Filter out DataViewsPicker layouts.\n\tconst defaultLayouts = useMemo(\n\t\t() =>\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries( defaultLayoutsProperty ).filter(\n\t\t\t\t\t( [ layoutType ] ) => {\n\t\t\t\t\t\treturn dataViewsPickerLayouts.some(\n\t\t\t\t\t\t\t( viewLayout ) => viewLayout.type === layoutType\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t),\n\t\t[ defaultLayoutsProperty ]\n\t);\n\n\tif ( ! defaultLayouts[ view.type ] ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<DataViewsContext.Provider\n\t\t\tvalue={ {\n\t\t\t\tview,\n\t\t\t\tonChangeView,\n\t\t\t\tfields: _fields,\n\t\t\t\tactions,\n\t\t\t\tdata,\n\t\t\t\tisLoading,\n\t\t\t\tpaginationInfo,\n\t\t\t\tisItemClickable,\n\t\t\t\tselection,\n\t\t\t\tonChangeSelection: setSelectionWithChange,\n\t\t\t\topenedFilter,\n\t\t\t\tsetOpenedFilter,\n\t\t\t\tgetItemId,\n\t\t\t\tcontainerWidth,\n\t\t\t\tcontainerRef,\n\t\t\t\tresizeObserverRef,\n\t\t\t\tdefaultLayouts,\n\t\t\t\tfilters,\n\t\t\t\tisShowingFilter,\n\t\t\t\tsetIsShowingFilter,\n\t\t\t\tconfig,\n\t\t\t\titemListLabel,\n\t\t\t\tempty,\n\t\t\t\thasInfiniteScrollHandler: !! infiniteScrollHandler,\n\t\t\t} }\n\t\t>\n\t\t\t<div className=\"dataviews-picker-wrapper\" ref={ containerRef }>\n\t\t\t\t{ children ?? (\n\t\t\t\t\t<DefaultUI search={ search } searchLabel={ searchLabel } />\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</DataViewsContext.Provider>\n\t);\n}\n\n// Populate the DataViews sub components\nconst DataViewsPickerSubComponents =\n\tDataViewsPicker as typeof DataViewsPicker & {\n\t\tBulkActionToolbar: typeof DataViewsPickerFooter;\n\t\tFilters: typeof DataViewsFilters;\n\t\tFiltersToggle: typeof FiltersToggle;\n\t\tLayout: typeof DataViewsLayout;\n\t\tLayoutSwitcher: typeof ViewTypeMenu;\n\t\tPagination: typeof DataViewsPagination;\n\t\tSearch: typeof DataViewsSearch;\n\t\tViewConfig: typeof DataviewsViewConfigDropdown;\n\t};\n\nDataViewsPickerSubComponents.BulkActionToolbar = DataViewsPickerFooter;\nDataViewsPickerSubComponents.Filters = DataViewsFilters;\nDataViewsPickerSubComponents.FiltersToggle = FiltersToggle;\nDataViewsPickerSubComponents.Layout = DataViewsLayout;\nDataViewsPickerSubComponents.LayoutSwitcher = ViewTypeMenu;\nDataViewsPickerSubComponents.Pagination = DataViewsPagination;\nDataViewsPickerSubComponents.Search = DataViewsSearch;\nDataViewsPickerSubComponents.ViewConfig = DataviewsViewConfigDropdown;\n\nexport default DataViewsPickerSubComponents;\n"],"mappings":"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","ignoreList":[]}
@@ -21,7 +21,8 @@ function DataViewsSelectionCheckbox({
21
21
  item,
22
22
  getItemId,
23
23
  titleField,
24
- disabled
24
+ disabled,
25
+ ...extraProps
25
26
  }) {
26
27
  const id = getItemId(item);
27
28
  const checked = !disabled && selection.includes(id);
@@ -41,7 +42,8 @@ function DataViewsSelectionCheckbox({
41
42
  return;
42
43
  }
43
44
  onChangeSelection(selection.includes(id) ? selection.filter(itemId => id !== itemId) : [...selection, id]);
44
- }
45
+ },
46
+ ...extraProps
45
47
  });
46
48
  }
47
49
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_i18n","_jsxRuntime","DataViewsSelectionCheckbox","selection","onChangeSelection","item","getItemId","titleField","disabled","id","checked","includes","selectionLabel","getValue","__","jsx","CheckboxControl","className","__nextHasNoMarginBottom","onChange","filter","itemId"],"sources":["@wordpress/dataviews/src/components/dataviews-selection-checkbox/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { CheckboxControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { SetSelection } from '../../private-types';\nimport type { NormalizedField } from '../../types';\n\ninterface DataViewsSelectionCheckboxProps< Item > {\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\titem: Item;\n\tgetItemId: ( item: Item ) => string;\n\ttitleField?: NormalizedField< Item >;\n\tdisabled: boolean;\n}\n\nexport default function DataViewsSelectionCheckbox< Item >( {\n\tselection,\n\tonChangeSelection,\n\titem,\n\tgetItemId,\n\ttitleField,\n\tdisabled,\n}: DataViewsSelectionCheckboxProps< Item > ) {\n\tconst id = getItemId( item );\n\tconst checked = ! disabled && selection.includes( id );\n\n\t// Fallback label to ensure accessibility\n\tconst selectionLabel =\n\t\ttitleField?.getValue?.( { item } ) || __( '(no title)' );\n\n\treturn (\n\t\t<CheckboxControl\n\t\t\tclassName=\"dataviews-selection-checkbox\"\n\t\t\t__nextHasNoMarginBottom\n\t\t\taria-label={ selectionLabel }\n\t\t\taria-disabled={ disabled }\n\t\t\tchecked={ checked }\n\t\t\tonChange={ () => {\n\t\t\t\tif ( disabled ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tonChangeSelection(\n\t\t\t\t\tselection.includes( id )\n\t\t\t\t\t\t? selection.filter( ( itemId ) => id !== itemId )\n\t\t\t\t\t\t: [ ...selection, id ]\n\t\t\t\t);\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAAqC,IAAAE,WAAA,GAAAF,OAAA;AAJrC;AACA;AACA;;AAIA;AACA;AACA;;AAae,SAASG,0BAA0BA,CAAU;EAC3DC,SAAS;EACTC,iBAAiB;EACjBC,IAAI;EACJC,SAAS;EACTC,UAAU;EACVC;AACwC,CAAC,EAAG;EAC5C,MAAMC,EAAE,GAAGH,SAAS,CAAED,IAAK,CAAC;EAC5B,MAAMK,OAAO,GAAG,CAAEF,QAAQ,IAAIL,SAAS,CAACQ,QAAQ,CAAEF,EAAG,CAAC;;EAEtD;EACA,MAAMG,cAAc,GACnBL,UAAU,EAAEM,QAAQ,GAAI;IAAER;EAAK,CAAE,CAAC,IAAI,IAAAS,QAAE,EAAE,YAAa,CAAC;EAEzD,oBACC,IAAAb,WAAA,CAAAc,GAAA,EAACjB,WAAA,CAAAkB,eAAe;IACfC,SAAS,EAAC,8BAA8B;IACxCC,uBAAuB;IACvB,cAAaN,cAAgB;IAC7B,iBAAgBJ,QAAU;IAC1BE,OAAO,EAAGA,OAAS;IACnBS,QAAQ,EAAGA,CAAA,KAAM;MAChB,IAAKX,QAAQ,EAAG;QACf;MACD;MAEAJ,iBAAiB,CAChBD,SAAS,CAACQ,QAAQ,CAAEF,EAAG,CAAC,GACrBN,SAAS,CAACiB,MAAM,CAAIC,MAAM,IAAMZ,EAAE,KAAKY,MAAO,CAAC,GAC/C,CAAE,GAAGlB,SAAS,EAAEM,EAAE,CACtB,CAAC;IACF;EAAG,CACH,CAAC;AAEJ","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_i18n","_jsxRuntime","DataViewsSelectionCheckbox","selection","onChangeSelection","item","getItemId","titleField","disabled","extraProps","id","checked","includes","selectionLabel","getValue","__","jsx","CheckboxControl","className","__nextHasNoMarginBottom","onChange","filter","itemId"],"sources":["@wordpress/dataviews/src/components/dataviews-selection-checkbox/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { CheckboxControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { SetSelection } from '../../private-types';\nimport type { NormalizedField } from '../../types';\n\ninterface DataViewsSelectionCheckboxProps< Item > {\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\titem: Item;\n\tgetItemId: ( item: Item ) => string;\n\ttitleField?: NormalizedField< Item >;\n\tdisabled: boolean;\n\ttabIndex?: number;\n}\n\nexport default function DataViewsSelectionCheckbox< Item >( {\n\tselection,\n\tonChangeSelection,\n\titem,\n\tgetItemId,\n\ttitleField,\n\tdisabled,\n\t...extraProps\n}: DataViewsSelectionCheckboxProps< Item > ) {\n\tconst id = getItemId( item );\n\tconst checked = ! disabled && selection.includes( id );\n\n\t// Fallback label to ensure accessibility\n\tconst selectionLabel =\n\t\ttitleField?.getValue?.( { item } ) || __( '(no title)' );\n\n\treturn (\n\t\t<CheckboxControl\n\t\t\tclassName=\"dataviews-selection-checkbox\"\n\t\t\t__nextHasNoMarginBottom\n\t\t\taria-label={ selectionLabel }\n\t\t\taria-disabled={ disabled }\n\t\t\tchecked={ checked }\n\t\t\tonChange={ () => {\n\t\t\t\tif ( disabled ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tonChangeSelection(\n\t\t\t\t\tselection.includes( id )\n\t\t\t\t\t\t? selection.filter( ( itemId ) => id !== itemId )\n\t\t\t\t\t\t: [ ...selection, id ]\n\t\t\t\t);\n\t\t\t} }\n\t\t\t{ ...extraProps }\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAAqC,IAAAE,WAAA,GAAAF,OAAA;AAJrC;AACA;AACA;;AAIA;AACA;AACA;;AAce,SAASG,0BAA0BA,CAAU;EAC3DC,SAAS;EACTC,iBAAiB;EACjBC,IAAI;EACJC,SAAS;EACTC,UAAU;EACVC,QAAQ;EACR,GAAGC;AACqC,CAAC,EAAG;EAC5C,MAAMC,EAAE,GAAGJ,SAAS,CAAED,IAAK,CAAC;EAC5B,MAAMM,OAAO,GAAG,CAAEH,QAAQ,IAAIL,SAAS,CAACS,QAAQ,CAAEF,EAAG,CAAC;;EAEtD;EACA,MAAMG,cAAc,GACnBN,UAAU,EAAEO,QAAQ,GAAI;IAAET;EAAK,CAAE,CAAC,IAAI,IAAAU,QAAE,EAAE,YAAa,CAAC;EAEzD,oBACC,IAAAd,WAAA,CAAAe,GAAA,EAAClB,WAAA,CAAAmB,eAAe;IACfC,SAAS,EAAC,8BAA8B;IACxCC,uBAAuB;IACvB,cAAaN,cAAgB;IAC7B,iBAAgBL,QAAU;IAC1BG,OAAO,EAAGA,OAAS;IACnBS,QAAQ,EAAGA,CAAA,KAAM;MAChB,IAAKZ,QAAQ,EAAG;QACf;MACD;MAEAJ,iBAAiB,CAChBD,SAAS,CAACS,QAAQ,CAAEF,EAAG,CAAC,GACrBP,SAAS,CAACkB,MAAM,CAAIC,MAAM,IAAMZ,EAAE,KAAKY,MAAO,CAAC,GAC/C,CAAE,GAAGnB,SAAS,EAAEO,EAAE,CACtB,CAAC;IACF,CAAG;IAAA,GACED;EAAU,CACf,CAAC;AAEJ","ignoreList":[]}
@@ -74,6 +74,7 @@ function ViewTypeMenu() {
74
74
  case 'list':
75
75
  case 'grid':
76
76
  case 'table':
77
+ case 'pickerGrid':
77
78
  const viewWithoutLayout = {
78
79
  ...view
79
80
  };