@wordpress/dataviews 9.1.1-next.f56bd8138.0 → 10.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 (805) hide show
  1. package/CHANGELOG.md +44 -1
  2. package/README.md +140 -38
  3. package/build/components/dataform/index.js +52 -28
  4. package/build/components/dataform/index.js.map +7 -1
  5. package/build/components/dataform-context/index.js +33 -25
  6. package/build/components/dataform-context/index.js.map +7 -1
  7. package/build/components/dataviews/index.js +193 -156
  8. package/build/components/dataviews/index.js.map +7 -1
  9. package/build/components/dataviews-bulk-actions/index.js +264 -155
  10. package/build/components/dataviews-bulk-actions/index.js.map +7 -1
  11. package/build/components/dataviews-context/index.js +40 -36
  12. package/build/components/dataviews-context/index.js.map +7 -1
  13. package/build/components/dataviews-filters/add-filter.js +78 -73
  14. package/build/components/dataviews-filters/add-filter.js.map +7 -1
  15. package/build/components/dataviews-filters/filter.js +473 -263
  16. package/build/components/dataviews-filters/filter.js.map +7 -1
  17. package/build/components/dataviews-filters/filters-toggled.js +46 -0
  18. package/build/components/dataviews-filters/filters-toggled.js.map +7 -0
  19. package/build/components/dataviews-filters/filters.js +101 -0
  20. package/build/components/dataviews-filters/filters.js.map +7 -0
  21. package/build/components/dataviews-filters/index.js +46 -197
  22. package/build/components/dataviews-filters/index.js.map +7 -1
  23. package/build/components/dataviews-filters/input-widget.js +88 -89
  24. package/build/components/dataviews-filters/input-widget.js.map +7 -1
  25. package/build/components/dataviews-filters/reset-filters.js +50 -34
  26. package/build/components/dataviews-filters/reset-filters.js.map +7 -1
  27. package/build/components/dataviews-filters/search-widget.js +301 -205
  28. package/build/components/dataviews-filters/search-widget.js.map +7 -1
  29. package/build/components/dataviews-filters/toggle.js +124 -0
  30. package/build/components/dataviews-filters/toggle.js.map +7 -0
  31. package/build/components/dataviews-filters/use-filters.js +74 -0
  32. package/build/components/dataviews-filters/use-filters.js.map +7 -0
  33. package/build/components/dataviews-filters/utils.js +26 -10
  34. package/build/components/dataviews-filters/utils.js.map +7 -1
  35. package/build/components/dataviews-footer/index.js +54 -33
  36. package/build/components/dataviews-footer/index.js.map +7 -1
  37. package/build/components/dataviews-item-actions/index.js +188 -150
  38. package/build/components/dataviews-item-actions/index.js.map +7 -1
  39. package/build/components/dataviews-layout/index.js +64 -49
  40. package/build/components/dataviews-layout/index.js.map +7 -1
  41. package/build/components/dataviews-pagination/index.js +143 -99
  42. package/build/components/dataviews-pagination/index.js.map +7 -1
  43. package/build/components/dataviews-picker/footer.js +152 -101
  44. package/build/components/dataviews-picker/footer.js.map +7 -1
  45. package/build/components/dataviews-picker/index.js +173 -147
  46. package/build/components/dataviews-picker/index.js.map +7 -1
  47. package/build/components/dataviews-search/index.js +63 -46
  48. package/build/components/dataviews-search/index.js.map +7 -1
  49. package/build/components/dataviews-selection-checkbox/index.js +45 -35
  50. package/build/components/dataviews-selection-checkbox/index.js.map +7 -1
  51. package/build/components/dataviews-view-config/index.js +587 -512
  52. package/build/components/dataviews-view-config/index.js.map +7 -1
  53. package/build/components/dataviews-view-config/infinite-scroll-toggle.js +56 -39
  54. package/build/components/dataviews-view-config/infinite-scroll-toggle.js.map +7 -1
  55. package/build/constants.js +215 -108
  56. package/build/constants.js.map +7 -1
  57. package/build/dataform-controls/array.js +109 -145
  58. package/build/dataform-controls/array.js.map +7 -1
  59. package/build/dataform-controls/checkbox.js +56 -66
  60. package/build/dataform-controls/checkbox.js.map +7 -1
  61. package/build/dataform-controls/color.js +112 -119
  62. package/build/dataform-controls/color.js.map +7 -1
  63. package/build/dataform-controls/date.js +531 -349
  64. package/build/dataform-controls/date.js.map +7 -1
  65. package/build/dataform-controls/datetime.js +189 -148
  66. package/build/dataform-controls/datetime.js.map +7 -1
  67. package/build/dataform-controls/email.js +52 -32
  68. package/build/dataform-controls/email.js.map +7 -1
  69. package/build/dataform-controls/index.js +83 -63
  70. package/build/dataform-controls/index.js.map +7 -1
  71. package/build/dataform-controls/integer.js +36 -129
  72. package/build/dataform-controls/integer.js.map +7 -1
  73. package/build/dataform-controls/number.js +39 -0
  74. package/build/dataform-controls/number.js.map +7 -0
  75. package/build/dataform-controls/password.js +66 -38
  76. package/build/dataform-controls/password.js.map +7 -1
  77. package/build/dataform-controls/radio.js +61 -64
  78. package/build/dataform-controls/radio.js.map +7 -1
  79. package/build/dataform-controls/select.js +70 -88
  80. package/build/dataform-controls/select.js.map +7 -1
  81. package/build/dataform-controls/telephone.js +52 -32
  82. package/build/dataform-controls/telephone.js.map +7 -1
  83. package/build/dataform-controls/text.js +52 -30
  84. package/build/dataform-controls/text.js.map +7 -1
  85. package/build/dataform-controls/textarea.js +62 -71
  86. package/build/dataform-controls/textarea.js.map +7 -1
  87. package/build/dataform-controls/toggle-group.js +73 -66
  88. package/build/dataform-controls/toggle-group.js.map +7 -1
  89. package/build/dataform-controls/toggle.js +57 -67
  90. package/build/dataform-controls/toggle.js.map +7 -1
  91. package/build/dataform-controls/url.js +52 -32
  92. package/build/dataform-controls/url.js.map +7 -1
  93. package/build/dataform-controls/utils/get-custom-validity.js +35 -0
  94. package/build/dataform-controls/utils/get-custom-validity.js.map +7 -0
  95. package/build/dataform-controls/utils/relative-date-control.js +122 -0
  96. package/build/dataform-controls/utils/relative-date-control.js.map +7 -0
  97. package/build/dataform-controls/utils/validated-input.js +67 -71
  98. package/build/dataform-controls/utils/validated-input.js.map +7 -1
  99. package/build/dataform-controls/utils/validated-number.js +167 -0
  100. package/build/dataform-controls/utils/validated-number.js.map +7 -0
  101. package/build/dataform-layouts/card/index.js +217 -0
  102. package/build/dataform-layouts/card/index.js.map +7 -0
  103. package/build/dataform-layouts/data-form-layout.js +95 -0
  104. package/build/dataform-layouts/data-form-layout.js.map +7 -0
  105. package/build/dataform-layouts/get-summary-fields.js +45 -0
  106. package/build/dataform-layouts/get-summary-fields.js.map +7 -0
  107. package/build/dataform-layouts/index.js +99 -0
  108. package/build/dataform-layouts/index.js.map +7 -0
  109. package/build/dataform-layouts/is-combined-field.js +31 -0
  110. package/build/dataform-layouts/is-combined-field.js.map +7 -0
  111. package/build/dataform-layouts/normalize-form-fields.js +104 -0
  112. package/build/dataform-layouts/normalize-form-fields.js.map +7 -0
  113. package/build/dataform-layouts/panel/dropdown.js +159 -0
  114. package/build/dataform-layouts/panel/dropdown.js.map +7 -0
  115. package/build/dataform-layouts/panel/index.js +152 -0
  116. package/build/dataform-layouts/panel/index.js.map +7 -0
  117. package/build/dataform-layouts/panel/modal.js +176 -0
  118. package/build/dataform-layouts/panel/modal.js.map +7 -0
  119. package/build/dataform-layouts/panel/summary-button.js +93 -0
  120. package/build/dataform-layouts/panel/summary-button.js.map +7 -0
  121. package/build/dataform-layouts/regular/index.js +139 -0
  122. package/build/dataform-layouts/regular/index.js.map +7 -0
  123. package/build/dataform-layouts/row/index.js +120 -0
  124. package/build/dataform-layouts/row/index.js.map +7 -0
  125. package/build/dataviews-layouts/grid/index.js +337 -278
  126. package/build/dataviews-layouts/grid/index.js.map +7 -1
  127. package/build/dataviews-layouts/grid/preview-size-picker.js +94 -69
  128. package/build/dataviews-layouts/grid/preview-size-picker.js.map +7 -1
  129. package/build/dataviews-layouts/index.js +75 -48
  130. package/build/dataviews-layouts/index.js.map +7 -1
  131. package/build/dataviews-layouts/list/index.js +441 -354
  132. package/build/dataviews-layouts/list/index.js.map +7 -1
  133. package/build/dataviews-layouts/picker-grid/index.js +366 -297
  134. package/build/dataviews-layouts/picker-grid/index.js.map +7 -1
  135. package/build/dataviews-layouts/table/column-header-menu.js +144 -133
  136. package/build/dataviews-layouts/table/column-header-menu.js.map +7 -1
  137. package/build/dataviews-layouts/table/column-primary.js +86 -66
  138. package/build/dataviews-layouts/table/column-primary.js.map +7 -1
  139. package/build/dataviews-layouts/table/density-picker.js +86 -46
  140. package/build/dataviews-layouts/table/density-picker.js.map +7 -1
  141. package/build/dataviews-layouts/table/index.js +354 -319
  142. package/build/dataviews-layouts/table/index.js.map +7 -1
  143. package/build/dataviews-layouts/table/use-is-horizontal-scroll-end.js +55 -47
  144. package/build/dataviews-layouts/table/use-is-horizontal-scroll-end.js.map +7 -1
  145. package/build/dataviews-layouts/utils/get-data-by-group.js +24 -13
  146. package/build/dataviews-layouts/utils/get-data-by-group.js.map +7 -1
  147. package/build/dataviews-layouts/utils/grid-items.js +51 -34
  148. package/build/dataviews-layouts/utils/grid-items.js.map +7 -1
  149. package/build/dataviews-layouts/utils/item-click-wrapper.js +53 -31
  150. package/build/dataviews-layouts/utils/item-click-wrapper.js.map +7 -1
  151. package/build/dataviews-layouts/utils/preview-size-picker.js +94 -69
  152. package/build/dataviews-layouts/utils/preview-size-picker.js.map +7 -1
  153. package/build/field-types/array.js +46 -41
  154. package/build/field-types/array.js.map +7 -1
  155. package/build/field-types/boolean.js +52 -47
  156. package/build/field-types/boolean.js.map +7 -1
  157. package/build/field-types/color.js +79 -81
  158. package/build/field-types/color.js.map +7 -1
  159. package/build/field-types/date.js +69 -48
  160. package/build/field-types/date.js.map +7 -1
  161. package/build/field-types/datetime.js +62 -43
  162. package/build/field-types/datetime.js.map +7 -1
  163. package/build/field-types/email.js +58 -47
  164. package/build/field-types/email.js.map +7 -1
  165. package/build/field-types/index.js +84 -89
  166. package/build/field-types/index.js.map +7 -1
  167. package/build/field-types/integer.js +68 -45
  168. package/build/field-types/integer.js.map +7 -1
  169. package/build/field-types/media.js +25 -27
  170. package/build/field-types/media.js.map +7 -1
  171. package/build/field-types/number.js +95 -0
  172. package/build/field-types/number.js.map +7 -0
  173. package/build/field-types/password.js +40 -39
  174. package/build/field-types/password.js.map +7 -1
  175. package/build/field-types/telephone.js +55 -45
  176. package/build/field-types/telephone.js.map +7 -1
  177. package/build/field-types/text.js +55 -46
  178. package/build/field-types/text.js.map +7 -1
  179. package/build/field-types/url.js +55 -45
  180. package/build/field-types/url.js.map +7 -1
  181. package/build/field-types/utils/render-from-elements.js +52 -0
  182. package/build/field-types/utils/render-from-elements.js.map +7 -0
  183. package/build/hooks/index.js +39 -0
  184. package/build/hooks/index.js.map +7 -0
  185. package/build/hooks/use-elements.js +63 -0
  186. package/build/hooks/use-elements.js.map +7 -0
  187. package/build/hooks/use-form-validity.js +426 -0
  188. package/build/hooks/use-form-validity.js.map +7 -0
  189. package/build/index.js +50 -45
  190. package/build/index.js.map +7 -1
  191. package/build/lock-unlock.js +31 -14
  192. package/build/lock-unlock.js.map +7 -1
  193. package/build/types/dataform.js +17 -0
  194. package/build/types/dataform.js.map +7 -0
  195. package/build/types/dataviews.js +17 -0
  196. package/build/types/dataviews.js.map +7 -0
  197. package/build/types/field-api.js +17 -0
  198. package/build/types/field-api.js.map +7 -0
  199. package/build/types/index.js +17 -0
  200. package/build/types/index.js.map +7 -0
  201. package/build/types/private.js +17 -0
  202. package/build/types/private.js.map +7 -0
  203. package/build/utils/filter-sort-and-paginate.js +285 -0
  204. package/build/utils/filter-sort-and-paginate.js.map +7 -0
  205. package/build/utils/has-elements.js +27 -0
  206. package/build/utils/has-elements.js.map +7 -0
  207. package/build/utils/normalize-fields.js +160 -0
  208. package/build/utils/normalize-fields.js.map +7 -0
  209. package/build-module/components/dataform/index.js +25 -25
  210. package/build-module/components/dataform/index.js.map +7 -1
  211. package/build-module/components/dataform-context/index.js +11 -19
  212. package/build-module/components/dataform-context/index.js.map +7 -1
  213. package/build-module/components/dataviews/index.js +156 -131
  214. package/build-module/components/dataviews/index.js.map +7 -1
  215. package/build-module/components/dataviews-bulk-actions/index.js +227 -140
  216. package/build-module/components/dataviews-bulk-actions/index.js.map +7 -1
  217. package/build-module/components/dataviews-context/index.js +20 -30
  218. package/build-module/components/dataviews-context/index.js.map +7 -1
  219. package/build-module/components/dataviews-filters/add-filter.js +60 -68
  220. package/build-module/components/dataviews-filters/add-filter.js.map +7 -1
  221. package/build-module/components/dataviews-filters/filter.js +454 -232
  222. package/build-module/components/dataviews-filters/filter.js.map +7 -1
  223. package/build-module/components/dataviews-filters/filters-toggled.js +16 -0
  224. package/build-module/components/dataviews-filters/filters-toggled.js.map +7 -0
  225. package/build-module/components/dataviews-filters/filters.js +71 -0
  226. package/build-module/components/dataviews-filters/filters.js.map +7 -0
  227. package/build-module/components/dataviews-filters/index.js +11 -187
  228. package/build-module/components/dataviews-filters/index.js.map +7 -1
  229. package/build-module/components/dataviews-filters/input-widget.js +57 -81
  230. package/build-module/components/dataviews-filters/input-widget.js.map +7 -1
  231. package/build-module/components/dataviews-filters/reset-filters.js +33 -30
  232. package/build-module/components/dataviews-filters/reset-filters.js.map +7 -1
  233. package/build-module/components/dataviews-filters/search-widget.js +276 -195
  234. package/build-module/components/dataviews-filters/search-widget.js.map +7 -1
  235. package/build-module/components/dataviews-filters/toggle.js +94 -0
  236. package/build-module/components/dataviews-filters/toggle.js.map +7 -0
  237. package/build-module/components/dataviews-filters/use-filters.js +54 -0
  238. package/build-module/components/dataviews-filters/use-filters.js.map +7 -0
  239. package/build-module/components/dataviews-filters/utils.js +5 -6
  240. package/build-module/components/dataviews-filters/utils.js.map +7 -1
  241. package/build-module/components/dataviews-footer/index.js +28 -26
  242. package/build-module/components/dataviews-footer/index.js.map +7 -1
  243. package/build-module/components/dataviews-item-actions/index.js +171 -144
  244. package/build-module/components/dataviews-item-actions/index.js.map +7 -1
  245. package/build-module/components/dataviews-layout/index.js +35 -42
  246. package/build-module/components/dataviews-layout/index.js.map +7 -1
  247. package/build-module/components/dataviews-pagination/index.js +115 -92
  248. package/build-module/components/dataviews-pagination/index.js.map +7 -1
  249. package/build-module/components/dataviews-picker/footer.js +122 -93
  250. package/build-module/components/dataviews-picker/footer.js.map +7 -1
  251. package/build-module/components/dataviews-picker/index.js +139 -125
  252. package/build-module/components/dataviews-picker/index.js.map +7 -1
  253. package/build-module/components/dataviews-search/index.js +30 -35
  254. package/build-module/components/dataviews-search/index.js.map +7 -1
  255. package/build-module/components/dataviews-selection-checkbox/index.js +28 -31
  256. package/build-module/components/dataviews-selection-checkbox/index.js.map +7 -1
  257. package/build-module/components/dataviews-view-config/index.js +579 -504
  258. package/build-module/components/dataviews-view-config/index.js.map +7 -1
  259. package/build-module/components/dataviews-view-config/infinite-scroll-toggle.js +28 -33
  260. package/build-module/components/dataviews-view-config/infinite-scroll-toggle.js.map +7 -1
  261. package/build-module/constants.js +157 -101
  262. package/build-module/constants.js.map +7 -1
  263. package/build-module/dataform-controls/array.js +82 -141
  264. package/build-module/dataform-controls/array.js.map +7 -1
  265. package/build-module/dataform-controls/checkbox.js +28 -61
  266. package/build-module/dataform-controls/checkbox.js.map +7 -1
  267. package/build-module/dataform-controls/color.js +89 -115
  268. package/build-module/dataform-controls/color.js.map +7 -1
  269. package/build-module/dataform-controls/date.js +524 -337
  270. package/build-module/dataform-controls/date.js.map +7 -1
  271. package/build-module/dataform-controls/datetime.js +162 -139
  272. package/build-module/dataform-controls/datetime.js.map +7 -1
  273. package/build-module/dataform-controls/email.js +28 -28
  274. package/build-module/dataform-controls/email.js.map +7 -1
  275. package/build-module/dataform-controls/index.js +36 -43
  276. package/build-module/dataform-controls/index.js.map +7 -1
  277. package/build-module/dataform-controls/integer.js +8 -123
  278. package/build-module/dataform-controls/integer.js.map +7 -1
  279. package/build-module/dataform-controls/number.js +9 -0
  280. package/build-module/dataform-controls/number.js.map +7 -0
  281. package/build-module/dataform-controls/password.js +37 -30
  282. package/build-module/dataform-controls/password.js.map +7 -1
  283. package/build-module/dataform-controls/radio.js +34 -60
  284. package/build-module/dataform-controls/radio.js.map +7 -1
  285. package/build-module/dataform-controls/select.js +43 -84
  286. package/build-module/dataform-controls/select.js.map +7 -1
  287. package/build-module/dataform-controls/telephone.js +28 -28
  288. package/build-module/dataform-controls/telephone.js.map +7 -1
  289. package/build-module/dataform-controls/text.js +25 -26
  290. package/build-module/dataform-controls/text.js.map +7 -1
  291. package/build-module/dataform-controls/textarea.js +35 -67
  292. package/build-module/dataform-controls/textarea.js.map +7 -1
  293. package/build-module/dataform-controls/toggle-group.js +50 -62
  294. package/build-module/dataform-controls/toggle-group.js.map +7 -1
  295. package/build-module/dataform-controls/toggle.js +29 -62
  296. package/build-module/dataform-controls/toggle.js.map +7 -1
  297. package/build-module/dataform-controls/url.js +28 -28
  298. package/build-module/dataform-controls/url.js.map +7 -1
  299. package/build-module/dataform-controls/utils/get-custom-validity.js +15 -0
  300. package/build-module/dataform-controls/utils/get-custom-validity.js.map +7 -0
  301. package/build-module/dataform-controls/utils/relative-date-control.js +97 -0
  302. package/build-module/dataform-controls/utils/relative-date-control.js.map +7 -0
  303. package/build-module/dataform-controls/utils/validated-input.js +40 -67
  304. package/build-module/dataform-controls/utils/validated-input.js.map +7 -1
  305. package/build-module/dataform-controls/utils/validated-number.js +142 -0
  306. package/build-module/dataform-controls/utils/validated-number.js.map +7 -0
  307. package/build-module/dataform-layouts/card/index.js +183 -0
  308. package/build-module/dataform-layouts/card/index.js.map +7 -0
  309. package/build-module/dataform-layouts/data-form-layout.js +61 -0
  310. package/build-module/dataform-layouts/data-form-layout.js.map +7 -0
  311. package/build-module/dataform-layouts/get-summary-fields.js +21 -0
  312. package/build-module/dataform-layouts/get-summary-fields.js.map +7 -0
  313. package/build-module/dataform-layouts/index.js +68 -0
  314. package/build-module/dataform-layouts/index.js.map +7 -0
  315. package/build-module/dataform-layouts/is-combined-field.js +7 -0
  316. package/build-module/dataform-layouts/is-combined-field.js.map +7 -0
  317. package/build-module/dataform-layouts/normalize-form-fields.js +79 -0
  318. package/build-module/dataform-layouts/normalize-form-fields.js.map +7 -0
  319. package/build-module/dataform-layouts/panel/dropdown.js +136 -0
  320. package/build-module/dataform-layouts/panel/dropdown.js.map +7 -0
  321. package/build-module/dataform-layouts/panel/index.js +125 -0
  322. package/build-module/dataform-layouts/panel/index.js.map +7 -0
  323. package/build-module/dataform-layouts/panel/modal.js +151 -0
  324. package/build-module/dataform-layouts/panel/modal.js.map +7 -0
  325. package/build-module/dataform-layouts/panel/summary-button.js +73 -0
  326. package/build-module/dataform-layouts/panel/summary-button.js.map +7 -0
  327. package/build-module/dataform-layouts/regular/index.js +115 -0
  328. package/build-module/dataform-layouts/regular/index.js.map +7 -0
  329. package/build-module/dataform-layouts/row/index.js +95 -0
  330. package/build-module/dataform-layouts/row/index.js.map +7 -0
  331. package/build-module/dataviews-layouts/grid/index.js +316 -267
  332. package/build-module/dataviews-layouts/grid/index.js.map +7 -1
  333. package/build-module/dataviews-layouts/grid/preview-size-picker.js +66 -63
  334. package/build-module/dataviews-layouts/grid/preview-size-picker.js.map +7 -1
  335. package/build-module/dataviews-layouts/index.js +53 -42
  336. package/build-module/dataviews-layouts/index.js.map +7 -1
  337. package/build-module/dataviews-layouts/list/index.js +422 -339
  338. package/build-module/dataviews-layouts/list/index.js.map +7 -1
  339. package/build-module/dataviews-layouts/picker-grid/index.js +344 -288
  340. package/build-module/dataviews-layouts/picker-grid/index.js.map +7 -1
  341. package/build-module/dataviews-layouts/table/column-header-menu.js +129 -127
  342. package/build-module/dataviews-layouts/table/column-header-menu.js.map +7 -1
  343. package/build-module/dataviews-layouts/table/column-primary.js +71 -62
  344. package/build-module/dataviews-layouts/table/column-primary.js.map +7 -1
  345. package/build-module/dataviews-layouts/table/density-picker.js +61 -40
  346. package/build-module/dataviews-layouts/table/density-picker.js.map +7 -1
  347. package/build-module/dataviews-layouts/table/index.js +326 -302
  348. package/build-module/dataviews-layouts/table/index.js.map +7 -1
  349. package/build-module/dataviews-layouts/table/use-is-horizontal-scroll-end.js +31 -40
  350. package/build-module/dataviews-layouts/table/use-is-horizontal-scroll-end.js.map +7 -1
  351. package/build-module/dataviews-layouts/utils/get-data-by-group.js +7 -10
  352. package/build-module/dataviews-layouts/utils/get-data-by-group.js.map +7 -1
  353. package/build-module/dataviews-layouts/utils/grid-items.js +19 -28
  354. package/build-module/dataviews-layouts/utils/grid-items.js.map +7 -1
  355. package/build-module/dataviews-layouts/utils/item-click-wrapper.js +32 -28
  356. package/build-module/dataviews-layouts/utils/item-click-wrapper.js.map +7 -1
  357. package/build-module/dataviews-layouts/utils/preview-size-picker.js +66 -63
  358. package/build-module/dataviews-layouts/utils/preview-size-picker.js.map +7 -1
  359. package/build-module/field-types/array.js +32 -37
  360. package/build-module/field-types/array.js.map +7 -1
  361. package/build-module/field-types/boolean.js +22 -41
  362. package/build-module/field-types/boolean.js.map +7 -1
  363. package/build-module/field-types/color.js +51 -72
  364. package/build-module/field-types/color.js.map +7 -1
  365. package/build-module/field-types/date.js +51 -44
  366. package/build-module/field-types/date.js.map +7 -1
  367. package/build-module/field-types/datetime.js +43 -39
  368. package/build-module/field-types/datetime.js.map +7 -1
  369. package/build-module/field-types/email.js +39 -42
  370. package/build-module/field-types/email.js.map +7 -1
  371. package/build-module/field-types/index.js +43 -72
  372. package/build-module/field-types/index.js.map +7 -1
  373. package/build-module/field-types/integer.js +52 -41
  374. package/build-module/field-types/integer.js.map +7 -1
  375. package/build-module/field-types/media.js +7 -23
  376. package/build-module/field-types/media.js.map +7 -1
  377. package/build-module/field-types/number.js +77 -0
  378. package/build-module/field-types/number.js.map +7 -0
  379. package/build-module/field-types/password.js +12 -36
  380. package/build-module/field-types/password.js.map +7 -1
  381. package/build-module/field-types/telephone.js +36 -40
  382. package/build-module/field-types/telephone.js.map +7 -1
  383. package/build-module/field-types/text.js +36 -41
  384. package/build-module/field-types/text.js.map +7 -1
  385. package/build-module/field-types/url.js +36 -40
  386. package/build-module/field-types/url.js.map +7 -1
  387. package/build-module/field-types/utils/render-from-elements.js +22 -0
  388. package/build-module/field-types/utils/render-from-elements.js.map +7 -0
  389. package/build-module/hooks/index.js +5 -0
  390. package/build-module/hooks/index.js.map +7 -0
  391. package/build-module/hooks/use-elements.js +43 -0
  392. package/build-module/hooks/use-elements.js.map +7 -0
  393. package/build-module/hooks/use-form-validity.js +392 -0
  394. package/build-module/hooks/use-form-validity.js.map +7 -0
  395. package/build-module/index.js +15 -7
  396. package/build-module/index.js.map +7 -1
  397. package/build-module/lock-unlock.js +8 -7
  398. package/build-module/lock-unlock.js.map +7 -1
  399. package/build-module/types/dataform.js +1 -0
  400. package/build-module/types/dataform.js.map +7 -0
  401. package/build-module/types/dataviews.js +1 -0
  402. package/build-module/types/dataviews.js.map +7 -0
  403. package/build-module/types/field-api.js +1 -0
  404. package/build-module/types/field-api.js.map +7 -0
  405. package/build-module/types/index.js +1 -0
  406. package/build-module/types/index.js.map +7 -0
  407. package/build-module/types/private.js +1 -0
  408. package/build-module/types/private.js.map +7 -0
  409. package/build-module/utils/filter-sort-and-paginate.js +278 -0
  410. package/build-module/utils/filter-sort-and-paginate.js.map +7 -0
  411. package/build-module/utils/has-elements.js +7 -0
  412. package/build-module/utils/has-elements.js.map +7 -0
  413. package/build-module/utils/normalize-fields.js +134 -0
  414. package/build-module/utils/normalize-fields.js.map +7 -0
  415. package/build-style/style-rtl.css +81 -217
  416. package/build-style/style.css +81 -217
  417. package/build-types/components/dataform/index.d.ts +1 -1
  418. package/build-types/components/dataform/index.d.ts.map +1 -1
  419. package/build-types/components/dataform-context/index.d.ts.map +1 -1
  420. package/build-types/components/dataviews/index.d.ts +3 -2
  421. package/build-types/components/dataviews/index.d.ts.map +1 -1
  422. package/build-types/components/dataviews-bulk-actions/index.d.ts +1 -1
  423. package/build-types/components/dataviews-bulk-actions/index.d.ts.map +1 -1
  424. package/build-types/components/dataviews-context/index.d.ts +1 -1
  425. package/build-types/components/dataviews-filters/filter.d.ts +1 -1
  426. package/build-types/components/dataviews-filters/filter.d.ts.map +1 -1
  427. package/build-types/components/dataviews-filters/filters-toggled.d.ts +5 -0
  428. package/build-types/components/dataviews-filters/filters-toggled.d.ts.map +1 -0
  429. package/build-types/components/dataviews-filters/filters.d.ts +6 -0
  430. package/build-types/components/dataviews-filters/filters.d.ts.map +1 -0
  431. package/build-types/components/dataviews-filters/index.d.ts +4 -8
  432. package/build-types/components/dataviews-filters/index.d.ts.map +1 -1
  433. package/build-types/components/dataviews-filters/search-widget.d.ts.map +1 -1
  434. package/build-types/components/dataviews-filters/toggle.d.ts +3 -0
  435. package/build-types/components/dataviews-filters/toggle.d.ts.map +1 -0
  436. package/build-types/components/dataviews-filters/use-filters.d.ts +4 -0
  437. package/build-types/components/dataviews-filters/use-filters.d.ts.map +1 -0
  438. package/build-types/components/dataviews-item-actions/index.d.ts.map +1 -1
  439. package/build-types/components/dataviews-picker/footer.d.ts.map +1 -1
  440. package/build-types/components/dataviews-picker/index.d.ts +3 -2
  441. package/build-types/components/dataviews-picker/index.d.ts.map +1 -1
  442. package/build-types/components/dataviews-selection-checkbox/index.d.ts +1 -1
  443. package/build-types/dataform-controls/array.d.ts +1 -1
  444. package/build-types/dataform-controls/array.d.ts.map +1 -1
  445. package/build-types/dataform-controls/checkbox.d.ts +1 -1
  446. package/build-types/dataform-controls/checkbox.d.ts.map +1 -1
  447. package/build-types/dataform-controls/color.d.ts +1 -1
  448. package/build-types/dataform-controls/color.d.ts.map +1 -1
  449. package/build-types/dataform-controls/date.d.ts +1 -1
  450. package/build-types/dataform-controls/date.d.ts.map +1 -1
  451. package/build-types/dataform-controls/datetime.d.ts +1 -1
  452. package/build-types/dataform-controls/datetime.d.ts.map +1 -1
  453. package/build-types/dataform-controls/email.d.ts +1 -1
  454. package/build-types/dataform-controls/email.d.ts.map +1 -1
  455. package/build-types/dataform-controls/index.d.ts.map +1 -1
  456. package/build-types/dataform-controls/integer.d.ts +4 -1
  457. package/build-types/dataform-controls/integer.d.ts.map +1 -1
  458. package/build-types/dataform-controls/number.d.ts +6 -0
  459. package/build-types/dataform-controls/number.d.ts.map +1 -0
  460. package/build-types/dataform-controls/password.d.ts +1 -1
  461. package/build-types/dataform-controls/password.d.ts.map +1 -1
  462. package/build-types/dataform-controls/radio.d.ts +1 -1
  463. package/build-types/dataform-controls/radio.d.ts.map +1 -1
  464. package/build-types/dataform-controls/select.d.ts +1 -1
  465. package/build-types/dataform-controls/select.d.ts.map +1 -1
  466. package/build-types/dataform-controls/telephone.d.ts +1 -1
  467. package/build-types/dataform-controls/telephone.d.ts.map +1 -1
  468. package/build-types/dataform-controls/text.d.ts +1 -1
  469. package/build-types/dataform-controls/text.d.ts.map +1 -1
  470. package/build-types/dataform-controls/textarea.d.ts +1 -1
  471. package/build-types/dataform-controls/textarea.d.ts.map +1 -1
  472. package/build-types/dataform-controls/toggle-group.d.ts +1 -1
  473. package/build-types/dataform-controls/toggle-group.d.ts.map +1 -1
  474. package/build-types/dataform-controls/toggle.d.ts +1 -1
  475. package/build-types/dataform-controls/toggle.d.ts.map +1 -1
  476. package/build-types/dataform-controls/url.d.ts +1 -1
  477. package/build-types/dataform-controls/url.d.ts.map +1 -1
  478. package/build-types/dataform-controls/utils/get-custom-validity.d.ts +9 -0
  479. package/build-types/dataform-controls/utils/get-custom-validity.d.ts.map +1 -0
  480. package/build-types/dataform-controls/utils/relative-date-control.d.ts +5 -0
  481. package/build-types/dataform-controls/utils/relative-date-control.d.ts.map +1 -0
  482. package/build-types/dataform-controls/utils/validated-input.d.ts +1 -1
  483. package/build-types/dataform-controls/utils/validated-input.d.ts.map +1 -1
  484. package/build-types/dataform-controls/utils/validated-number.d.ts +9 -0
  485. package/build-types/dataform-controls/utils/validated-number.d.ts.map +1 -0
  486. package/build-types/{dataforms-layouts → dataform-layouts}/card/index.d.ts +1 -1
  487. package/build-types/dataform-layouts/card/index.d.ts.map +1 -0
  488. package/build-types/{dataforms-layouts → dataform-layouts}/data-form-layout.d.ts +5 -3
  489. package/build-types/dataform-layouts/data-form-layout.d.ts.map +1 -0
  490. package/build-types/dataform-layouts/get-summary-fields.d.ts +12 -0
  491. package/build-types/dataform-layouts/get-summary-fields.d.ts.map +1 -0
  492. package/build-types/{dataforms-layouts → dataform-layouts}/index.d.ts +0 -5
  493. package/build-types/dataform-layouts/index.d.ts.map +1 -0
  494. package/build-types/dataform-layouts/is-combined-field.d.ts.map +1 -0
  495. package/build-types/{normalize-form-fields.d.ts → dataform-layouts/normalize-form-fields.d.ts} +1 -1
  496. package/build-types/dataform-layouts/normalize-form-fields.d.ts.map +1 -0
  497. package/build-types/{dataforms-layouts → dataform-layouts}/panel/dropdown.d.ts +8 -7
  498. package/build-types/dataform-layouts/panel/dropdown.d.ts.map +1 -0
  499. package/build-types/{dataforms-layouts → dataform-layouts}/panel/index.d.ts +1 -1
  500. package/build-types/dataform-layouts/panel/index.d.ts.map +1 -0
  501. package/build-types/{dataforms-layouts → dataform-layouts}/panel/modal.d.ts +5 -5
  502. package/build-types/dataform-layouts/panel/modal.d.ts.map +1 -0
  503. package/build-types/dataform-layouts/panel/summary-button.d.ts.map +1 -0
  504. package/build-types/{dataforms-layouts → dataform-layouts}/regular/index.d.ts +1 -1
  505. package/build-types/dataform-layouts/regular/index.d.ts.map +1 -0
  506. package/build-types/{dataforms-layouts → dataform-layouts}/row/index.d.ts +1 -1
  507. package/build-types/dataform-layouts/row/index.d.ts.map +1 -0
  508. package/build-types/dataviews-layouts/list/index.d.ts.map +1 -1
  509. package/build-types/dataviews-layouts/picker-grid/index.d.ts.map +1 -1
  510. package/build-types/dataviews-layouts/utils/item-click-wrapper.d.ts +1 -1
  511. package/build-types/dataviews-layouts/utils/item-click-wrapper.d.ts.map +1 -1
  512. package/build-types/field-types/array.d.ts.map +1 -1
  513. package/build-types/field-types/boolean.d.ts +2 -1
  514. package/build-types/field-types/boolean.d.ts.map +1 -1
  515. package/build-types/field-types/color.d.ts +2 -1
  516. package/build-types/field-types/color.d.ts.map +1 -1
  517. package/build-types/field-types/date.d.ts +4 -3
  518. package/build-types/field-types/date.d.ts.map +1 -1
  519. package/build-types/field-types/datetime.d.ts +3 -2
  520. package/build-types/field-types/datetime.d.ts.map +1 -1
  521. package/build-types/field-types/email.d.ts +3 -2
  522. package/build-types/field-types/email.d.ts.map +1 -1
  523. package/build-types/field-types/index.d.ts.map +1 -1
  524. package/build-types/field-types/integer.d.ts +2 -1
  525. package/build-types/field-types/integer.d.ts.map +1 -1
  526. package/build-types/field-types/media.d.ts +2 -5
  527. package/build-types/field-types/media.d.ts.map +1 -1
  528. package/build-types/field-types/number.d.ts +21 -0
  529. package/build-types/field-types/number.d.ts.map +1 -0
  530. package/build-types/field-types/password.d.ts +4 -3
  531. package/build-types/field-types/password.d.ts.map +1 -1
  532. package/build-types/field-types/telephone.d.ts +4 -3
  533. package/build-types/field-types/telephone.d.ts.map +1 -1
  534. package/build-types/field-types/text.d.ts +4 -3
  535. package/build-types/field-types/text.d.ts.map +1 -1
  536. package/build-types/field-types/url.d.ts +4 -3
  537. package/build-types/field-types/url.d.ts.map +1 -1
  538. package/build-types/field-types/utils/render-from-elements.d.ts +6 -0
  539. package/build-types/field-types/utils/render-from-elements.d.ts.map +1 -0
  540. package/build-types/hooks/index.d.ts +5 -0
  541. package/build-types/hooks/index.d.ts.map +1 -0
  542. package/build-types/hooks/use-elements.d.ts +12 -0
  543. package/build-types/hooks/use-elements.d.ts.map +1 -0
  544. package/build-types/hooks/use-form-validity.d.ts +16 -0
  545. package/build-types/hooks/use-form-validity.d.ts.map +1 -0
  546. package/build-types/index.d.ts +2 -2
  547. package/build-types/index.d.ts.map +1 -1
  548. package/build-types/{components/dataform/stories/index.story.d.ts → stories/dataform.story.d.ts} +16 -6
  549. package/build-types/stories/dataform.story.d.ts.map +1 -0
  550. package/build-types/{components/dataviews-picker/stories/index.story.d.ts → stories/dataviews-picker.story.d.ts} +2 -2
  551. package/build-types/stories/dataviews-picker.story.d.ts.map +1 -0
  552. package/build-types/{components/dataviews/stories/fixtures.d.ts → stories/dataviews.fixtures.d.ts} +2 -2
  553. package/build-types/stories/dataviews.fixtures.d.ts.map +1 -0
  554. package/build-types/{components/dataviews/stories/index.story.d.ts → stories/dataviews.story.d.ts} +3 -3
  555. package/build-types/stories/dataviews.story.d.ts.map +1 -0
  556. package/build-types/stories/field-types.story.d.ts +157 -0
  557. package/build-types/stories/field-types.story.d.ts.map +1 -0
  558. package/build-types/test/use-form-validity.d.ts +2 -0
  559. package/build-types/test/use-form-validity.d.ts.map +1 -0
  560. package/build-types/types/dataform.d.ts +112 -0
  561. package/build-types/types/dataform.d.ts.map +1 -0
  562. package/build-types/types/dataviews.d.ts +341 -0
  563. package/build-types/types/dataviews.d.ts.map +1 -0
  564. package/build-types/types/field-api.d.ts +298 -0
  565. package/build-types/types/field-api.d.ts.map +1 -0
  566. package/build-types/types/index.d.ts +4 -0
  567. package/build-types/types/index.d.ts.map +1 -0
  568. package/build-types/{private-types.d.ts → types/private.d.ts} +1 -1
  569. package/build-types/types/private.d.ts.map +1 -0
  570. package/build-types/{filter-and-sort-data-view.d.ts → utils/filter-sort-and-paginate.d.ts} +3 -3
  571. package/build-types/utils/filter-sort-and-paginate.d.ts.map +1 -0
  572. package/build-types/utils/has-elements.d.ts +6 -0
  573. package/build-types/utils/has-elements.d.ts.map +1 -0
  574. package/build-types/utils/normalize-fields.d.ts +9 -0
  575. package/build-types/utils/normalize-fields.d.ts.map +1 -0
  576. package/build-wp/index.js +3241 -2787
  577. package/package.json +16 -18
  578. package/src/components/dataform/index.tsx +9 -3
  579. package/src/components/dataform-context/index.tsx +3 -1
  580. package/src/components/dataviews/index.tsx +10 -16
  581. package/src/components/dataviews/style.scss +4 -0
  582. package/src/components/dataviews-bulk-actions/index.tsx +1 -2
  583. package/src/components/dataviews-bulk-actions/style.scss +3 -0
  584. package/src/components/dataviews-context/index.ts +1 -1
  585. package/src/components/dataviews-filters/filter.tsx +11 -5
  586. package/src/components/dataviews-filters/filters-toggled.tsx +20 -0
  587. package/src/components/dataviews-filters/filters.tsx +73 -0
  588. package/src/components/dataviews-filters/index.tsx +4 -246
  589. package/src/components/dataviews-filters/search-widget.tsx +30 -3
  590. package/src/components/dataviews-filters/style.scss +21 -6
  591. package/src/components/dataviews-filters/toggle.tsx +118 -0
  592. package/src/components/dataviews-filters/use-filters.ts +75 -0
  593. package/src/components/dataviews-footer/style.scss +4 -0
  594. package/src/components/dataviews-item-actions/index.tsx +6 -2
  595. package/src/components/dataviews-item-actions/style.scss +3 -0
  596. package/src/components/dataviews-pagination/style.scss +3 -0
  597. package/src/components/dataviews-picker/footer.tsx +2 -4
  598. package/src/components/dataviews-picker/index.tsx +10 -16
  599. package/src/components/dataviews-picker/style.scss +2 -0
  600. package/src/components/dataviews-selection-checkbox/index.tsx +1 -1
  601. package/src/components/dataviews-selection-checkbox/style.scss +3 -0
  602. package/src/components/dataviews-view-config/style.scss +3 -0
  603. package/src/dataform-controls/array.tsx +16 -82
  604. package/src/dataform-controls/checkbox.tsx +5 -41
  605. package/src/dataform-controls/color.tsx +5 -37
  606. package/src/dataform-controls/date.tsx +375 -238
  607. package/src/dataform-controls/datetime.tsx +92 -60
  608. package/src/dataform-controls/email.tsx +2 -0
  609. package/src/dataform-controls/index.tsx +4 -1
  610. package/src/dataform-controls/integer.tsx +3 -179
  611. package/src/dataform-controls/number.tsx +10 -0
  612. package/src/dataform-controls/password.tsx +2 -0
  613. package/src/dataform-controls/radio.tsx +24 -55
  614. package/src/dataform-controls/select.tsx +14 -61
  615. package/src/dataform-controls/style.scss +2 -0
  616. package/src/dataform-controls/telephone.tsx +2 -0
  617. package/src/dataform-controls/text.tsx +2 -0
  618. package/src/dataform-controls/textarea.tsx +6 -42
  619. package/src/dataform-controls/toggle-group.tsx +38 -64
  620. package/src/dataform-controls/toggle.tsx +6 -42
  621. package/src/dataform-controls/url.tsx +2 -0
  622. package/src/dataform-controls/utils/get-custom-validity.ts +24 -0
  623. package/src/dataform-controls/{relative-date-control.tsx → utils/relative-date-control.tsx} +37 -25
  624. package/src/dataform-controls/utils/validated-input.tsx +4 -40
  625. package/src/dataform-controls/utils/validated-number.tsx +171 -0
  626. package/src/{dataforms-layouts → dataform-layouts}/card/index.tsx +106 -8
  627. package/src/dataform-layouts/card/style.scss +24 -0
  628. package/src/{dataforms-layouts → dataform-layouts}/data-form-layout.tsx +22 -5
  629. package/src/dataform-layouts/get-summary-fields.ts +42 -0
  630. package/src/{dataforms-layouts → dataform-layouts}/index.tsx +32 -2
  631. package/src/{normalize-form-fields.ts → dataform-layouts/normalize-form-fields.ts} +28 -1
  632. package/src/{dataforms-layouts → dataform-layouts}/panel/dropdown.tsx +36 -15
  633. package/src/{dataforms-layouts → dataform-layouts}/panel/index.tsx +88 -55
  634. package/src/{dataforms-layouts → dataform-layouts}/panel/modal.tsx +42 -31
  635. package/src/{dataforms-layouts → dataform-layouts}/panel/style.scss +3 -0
  636. package/src/{dataforms-layouts → dataform-layouts}/regular/index.tsx +5 -1
  637. package/src/{dataforms-layouts → dataform-layouts}/regular/style.scss +2 -0
  638. package/src/{dataforms-layouts → dataform-layouts}/row/index.tsx +9 -4
  639. package/src/dataform-layouts/style.scss +5 -0
  640. package/src/dataviews-layouts/grid/index.tsx +1 -1
  641. package/src/dataviews-layouts/grid/style.scss +8 -3
  642. package/src/dataviews-layouts/list/index.tsx +0 -2
  643. package/src/dataviews-layouts/list/style.scss +3 -0
  644. package/src/dataviews-layouts/picker-grid/index.tsx +16 -9
  645. package/src/dataviews-layouts/picker-grid/style.scss +8 -4
  646. package/src/dataviews-layouts/table/column-header-menu.tsx +1 -1
  647. package/src/dataviews-layouts/table/index.tsx +1 -1
  648. package/src/dataviews-layouts/table/style.scss +9 -0
  649. package/src/dataviews-layouts/utils/grid-items.scss +2 -0
  650. package/src/dataviews-layouts/utils/item-click-wrapper.tsx +40 -2
  651. package/src/field-types/array.tsx +1 -0
  652. package/src/field-types/boolean.tsx +4 -3
  653. package/src/field-types/color.tsx +4 -10
  654. package/src/field-types/{date.ts → date.tsx} +5 -16
  655. package/src/field-types/datetime.tsx +8 -21
  656. package/src/field-types/email.tsx +7 -11
  657. package/src/field-types/index.tsx +13 -23
  658. package/src/field-types/integer.tsx +7 -11
  659. package/src/field-types/media.tsx +3 -17
  660. package/src/field-types/number.tsx +92 -0
  661. package/src/field-types/password.tsx +8 -21
  662. package/src/field-types/telephone.tsx +8 -21
  663. package/src/field-types/text.tsx +8 -21
  664. package/src/field-types/url.tsx +8 -21
  665. package/src/field-types/utils/render-from-elements.tsx +29 -0
  666. package/src/hooks/index.ts +4 -0
  667. package/src/hooks/use-elements.ts +66 -0
  668. package/src/hooks/use-form-validity.ts +571 -0
  669. package/src/index.ts +2 -2
  670. package/src/{components/dataform/stories/index.story.tsx → stories/dataform.story.tsx} +455 -63
  671. package/src/{components/dataviews-picker/stories/index.story.tsx → stories/dataviews-picker.story.tsx} +5 -9
  672. package/src/{components/dataviews/stories/fixtures.tsx → stories/dataviews.fixtures.tsx} +36 -5
  673. package/src/{components/dataviews/stories/index.story.tsx → stories/dataviews.story.tsx} +8 -9
  674. package/src/{field-types/stories/index.story.tsx → stories/field-types.story.tsx} +244 -48
  675. package/src/style.scss +19 -18
  676. package/src/test/dataform.tsx +36 -0
  677. package/src/test/dataviews-picker.tsx +1 -1
  678. package/src/test/dataviews.tsx +1 -2
  679. package/src/test/{filter-and-sort-data-view.js → filter-sort-and-paginate.js} +63 -16
  680. package/src/test/normalize-fields.ts +23 -1
  681. package/src/test/normalize-form-fields.ts +54 -5
  682. package/src/test/use-form-validity.ts +546 -0
  683. package/src/types/dataform.ts +144 -0
  684. package/src/types/dataviews.ts +443 -0
  685. package/src/types/field-api.ts +381 -0
  686. package/src/types/index.ts +3 -0
  687. package/src/{filter-and-sort-data-view.ts → utils/filter-sort-and-paginate.ts} +4 -4
  688. package/src/utils/has-elements.ts +11 -0
  689. package/src/{normalize-fields.ts → utils/normalize-fields.ts} +13 -8
  690. package/tsconfig.tsbuildinfo +1 -1
  691. package/build/dataform-controls/relative-date-control.js +0 -105
  692. package/build/dataform-controls/relative-date-control.js.map +0 -1
  693. package/build/dataforms-layouts/card/index.js +0 -136
  694. package/build/dataforms-layouts/card/index.js.map +0 -1
  695. package/build/dataforms-layouts/data-form-layout.js +0 -71
  696. package/build/dataforms-layouts/data-form-layout.js.map +0 -1
  697. package/build/dataforms-layouts/index.js +0 -58
  698. package/build/dataforms-layouts/index.js.map +0 -1
  699. package/build/dataforms-layouts/is-combined-field.js +0 -14
  700. package/build/dataforms-layouts/is-combined-field.js.map +0 -1
  701. package/build/dataforms-layouts/panel/dropdown.js +0 -120
  702. package/build/dataforms-layouts/panel/dropdown.js.map +0 -1
  703. package/build/dataforms-layouts/panel/index.js +0 -126
  704. package/build/dataforms-layouts/panel/index.js.map +0 -1
  705. package/build/dataforms-layouts/panel/modal.js +0 -120
  706. package/build/dataforms-layouts/panel/modal.js.map +0 -1
  707. package/build/dataforms-layouts/panel/summary-button.js +0 -67
  708. package/build/dataforms-layouts/panel/summary-button.js.map +0 -1
  709. package/build/dataforms-layouts/regular/index.js +0 -116
  710. package/build/dataforms-layouts/regular/index.js.map +0 -1
  711. package/build/dataforms-layouts/row/index.js +0 -113
  712. package/build/dataforms-layouts/row/index.js.map +0 -1
  713. package/build/filter-and-sort-data-view.js +0 -313
  714. package/build/filter-and-sort-data-view.js.map +0 -1
  715. package/build/normalize-fields.js +0 -155
  716. package/build/normalize-fields.js.map +0 -1
  717. package/build/normalize-form-fields.js +0 -81
  718. package/build/normalize-form-fields.js.map +0 -1
  719. package/build/private-types.js +0 -6
  720. package/build/private-types.js.map +0 -1
  721. package/build/types.js +0 -6
  722. package/build/types.js.map +0 -1
  723. package/build/utils.js +0 -22
  724. package/build/utils.js.map +0 -1
  725. package/build/validation.js +0 -61
  726. package/build/validation.js.map +0 -1
  727. package/build-module/dataform-controls/relative-date-control.js +0 -96
  728. package/build-module/dataform-controls/relative-date-control.js.map +0 -1
  729. package/build-module/dataforms-layouts/card/index.js +0 -127
  730. package/build-module/dataforms-layouts/card/index.js.map +0 -1
  731. package/build-module/dataforms-layouts/data-form-layout.js +0 -62
  732. package/build-module/dataforms-layouts/data-form-layout.js.map +0 -1
  733. package/build-module/dataforms-layouts/index.js +0 -51
  734. package/build-module/dataforms-layouts/index.js.map +0 -1
  735. package/build-module/dataforms-layouts/is-combined-field.js +0 -8
  736. package/build-module/dataforms-layouts/is-combined-field.js.map +0 -1
  737. package/build-module/dataforms-layouts/panel/dropdown.js +0 -113
  738. package/build-module/dataforms-layouts/panel/dropdown.js.map +0 -1
  739. package/build-module/dataforms-layouts/panel/index.js +0 -119
  740. package/build-module/dataforms-layouts/panel/index.js.map +0 -1
  741. package/build-module/dataforms-layouts/panel/modal.js +0 -113
  742. package/build-module/dataforms-layouts/panel/modal.js.map +0 -1
  743. package/build-module/dataforms-layouts/panel/summary-button.js +0 -60
  744. package/build-module/dataforms-layouts/panel/summary-button.js.map +0 -1
  745. package/build-module/dataforms-layouts/regular/index.js +0 -109
  746. package/build-module/dataforms-layouts/regular/index.js.map +0 -1
  747. package/build-module/dataforms-layouts/row/index.js +0 -106
  748. package/build-module/dataforms-layouts/row/index.js.map +0 -1
  749. package/build-module/filter-and-sort-data-view.js +0 -305
  750. package/build-module/filter-and-sort-data-view.js.map +0 -1
  751. package/build-module/normalize-fields.js +0 -145
  752. package/build-module/normalize-fields.js.map +0 -1
  753. package/build-module/normalize-form-fields.js +0 -73
  754. package/build-module/normalize-form-fields.js.map +0 -1
  755. package/build-module/private-types.js +0 -2
  756. package/build-module/private-types.js.map +0 -1
  757. package/build-module/types.js +0 -2
  758. package/build-module/types.js.map +0 -1
  759. package/build-module/utils.js +0 -16
  760. package/build-module/utils.js.map +0 -1
  761. package/build-module/validation.js +0 -54
  762. package/build-module/validation.js.map +0 -1
  763. package/build-types/components/dataform/stories/index.story.d.ts.map +0 -1
  764. package/build-types/components/dataviews/stories/fixtures.d.ts.map +0 -1
  765. package/build-types/components/dataviews/stories/index.story.d.ts.map +0 -1
  766. package/build-types/components/dataviews-picker/stories/index.story.d.ts.map +0 -1
  767. package/build-types/dataform-controls/relative-date-control.d.ts +0 -47
  768. package/build-types/dataform-controls/relative-date-control.d.ts.map +0 -1
  769. package/build-types/dataforms-layouts/card/index.d.ts.map +0 -1
  770. package/build-types/dataforms-layouts/data-form-layout.d.ts.map +0 -1
  771. package/build-types/dataforms-layouts/index.d.ts.map +0 -1
  772. package/build-types/dataforms-layouts/is-combined-field.d.ts.map +0 -1
  773. package/build-types/dataforms-layouts/panel/dropdown.d.ts.map +0 -1
  774. package/build-types/dataforms-layouts/panel/index.d.ts.map +0 -1
  775. package/build-types/dataforms-layouts/panel/modal.d.ts.map +0 -1
  776. package/build-types/dataforms-layouts/panel/summary-button.d.ts.map +0 -1
  777. package/build-types/dataforms-layouts/regular/index.d.ts.map +0 -1
  778. package/build-types/dataforms-layouts/row/index.d.ts.map +0 -1
  779. package/build-types/field-types/stories/index.story.d.ts +0 -85
  780. package/build-types/field-types/stories/index.story.d.ts.map +0 -1
  781. package/build-types/filter-and-sort-data-view.d.ts.map +0 -1
  782. package/build-types/normalize-fields.d.ts +0 -12
  783. package/build-types/normalize-fields.d.ts.map +0 -1
  784. package/build-types/normalize-form-fields.d.ts.map +0 -1
  785. package/build-types/private-types.d.ts.map +0 -1
  786. package/build-types/test/validation.d.ts +0 -2
  787. package/build-types/test/validation.d.ts.map +0 -1
  788. package/build-types/types.d.ts +0 -688
  789. package/build-types/types.d.ts.map +0 -1
  790. package/build-types/utils.d.ts +0 -6
  791. package/build-types/utils.d.ts.map +0 -1
  792. package/build-types/validation.d.ts +0 -12
  793. package/build-types/validation.d.ts.map +0 -1
  794. package/src/dataforms-layouts/card/style.scss +0 -10
  795. package/src/test/validation.ts +0 -312
  796. package/src/types.ts +0 -891
  797. package/src/utils.ts +0 -15
  798. package/src/validation.ts +0 -91
  799. /package/build-types/{dataforms-layouts → dataform-layouts}/is-combined-field.d.ts +0 -0
  800. /package/build-types/{dataforms-layouts → dataform-layouts}/panel/summary-button.d.ts +0 -0
  801. /package/src/{dataforms-layouts → dataform-layouts}/is-combined-field.ts +0 -0
  802. /package/src/{dataforms-layouts → dataform-layouts}/panel/summary-button.tsx +0 -0
  803. /package/src/{dataforms-layouts → dataform-layouts}/row/style.scss +0 -0
  804. /package/src/{components/dataviews/stories/style.css → stories/dataviews.style.css} +0 -0
  805. /package/src/{private-types.tsx → types/private.ts} +0 -0
@@ -1,22 +1,15 @@
1
- /**
2
- * External dependencies
3
- */
4
-
5
- /**
6
- * WordPress dependencies
7
- */
8
- import { Button, CheckboxControl, __experimentalHStack as HStack } from '@wordpress/components';
9
- import { __, sprintf, _n } from '@wordpress/i18n';
10
- import { useMemo, useState, useRef, useContext } from '@wordpress/element';
11
- import { useRegistry } from '@wordpress/data';
12
- import { closeSmall } from '@wordpress/icons';
13
-
14
- /**
15
- * Internal dependencies
16
- */
17
- import DataViewsContext from '../dataviews-context';
18
- import { ActionModal } from '../dataviews-item-actions';
19
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import {
3
+ Button,
4
+ CheckboxControl,
5
+ __experimentalHStack as HStack
6
+ } from "@wordpress/components";
7
+ import { __, sprintf, _n } from "@wordpress/i18n";
8
+ import { useMemo, useState, useRef, useContext } from "@wordpress/element";
9
+ import { useRegistry } from "@wordpress/data";
10
+ import { closeSmall } from "@wordpress/icons";
11
+ import DataViewsContext from "../dataviews-context";
12
+ import { ActionModal } from "../dataviews-item-actions";
20
13
  function ActionWithModal({
21
14
  action,
22
15
  items,
@@ -30,33 +23,35 @@ function ActionWithModal({
30
23
  },
31
24
  items
32
25
  };
33
- return /*#__PURE__*/_jsxs(_Fragment, {
34
- children: [/*#__PURE__*/_jsx(ActionTriggerComponent, {
35
- ...actionTriggerProps
36
- }), isModalOpen && /*#__PURE__*/_jsx(ActionModal, {
37
- action: action,
38
- items: items,
39
- closeModal: () => setIsModalOpen(false)
40
- })]
41
- });
26
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
27
+ /* @__PURE__ */ jsx(ActionTriggerComponent, { ...actionTriggerProps }),
28
+ isModalOpen && /* @__PURE__ */ jsx(
29
+ ActionModal,
30
+ {
31
+ action,
32
+ items,
33
+ closeModal: () => setIsModalOpen(false)
34
+ }
35
+ )
36
+ ] });
42
37
  }
43
- export function useHasAPossibleBulkAction(actions, item) {
38
+ function useHasAPossibleBulkAction(actions, item) {
44
39
  return useMemo(() => {
45
- return actions.some(action => {
40
+ return actions.some((action) => {
46
41
  return action.supportsBulk && (!action.isEligible || action.isEligible(item));
47
42
  });
48
43
  }, [actions, item]);
49
44
  }
50
- export function useSomeItemHasAPossibleBulkAction(actions, data) {
45
+ function useSomeItemHasAPossibleBulkAction(actions, data) {
51
46
  return useMemo(() => {
52
- return data.some(item => {
53
- return actions.some(action => {
47
+ return data.some((item) => {
48
+ return actions.some((action) => {
54
49
  return action.supportsBulk && (!action.isEligible || action.isEligible(item));
55
50
  });
56
51
  });
57
52
  }, [actions, data]);
58
53
  }
59
- export function BulkSelectionCheckbox({
54
+ function BulkSelectionCheckbox({
60
55
  selection,
61
56
  onChangeSelection,
62
57
  data,
@@ -64,26 +59,35 @@ export function BulkSelectionCheckbox({
64
59
  getItemId
65
60
  }) {
66
61
  const selectableItems = useMemo(() => {
67
- return data.filter(item => {
68
- return actions.some(action => action.supportsBulk && (!action.isEligible || action.isEligible(item)));
62
+ return data.filter((item) => {
63
+ return actions.some(
64
+ (action) => action.supportsBulk && (!action.isEligible || action.isEligible(item))
65
+ );
69
66
  });
70
67
  }, [data, actions]);
71
- const selectedItems = data.filter(item => selection.includes(getItemId(item)) && selectableItems.includes(item));
68
+ const selectedItems = data.filter(
69
+ (item) => selection.includes(getItemId(item)) && selectableItems.includes(item)
70
+ );
72
71
  const areAllSelected = selectedItems.length === selectableItems.length;
73
- return /*#__PURE__*/_jsx(CheckboxControl, {
74
- className: "dataviews-view-table-selection-checkbox",
75
- __nextHasNoMarginBottom: true,
76
- checked: areAllSelected,
77
- indeterminate: !areAllSelected && !!selectedItems.length,
78
- onChange: () => {
79
- if (areAllSelected) {
80
- onChangeSelection([]);
81
- } else {
82
- onChangeSelection(selectableItems.map(item => getItemId(item)));
83
- }
84
- },
85
- "aria-label": areAllSelected ? __('Deselect all') : __('Select all')
86
- });
72
+ return /* @__PURE__ */ jsx(
73
+ CheckboxControl,
74
+ {
75
+ className: "dataviews-view-table-selection-checkbox",
76
+ __nextHasNoMarginBottom: true,
77
+ checked: areAllSelected,
78
+ indeterminate: !areAllSelected && !!selectedItems.length,
79
+ onChange: () => {
80
+ if (areAllSelected) {
81
+ onChangeSelection([]);
82
+ } else {
83
+ onChangeSelection(
84
+ selectableItems.map((item) => getItemId(item))
85
+ );
86
+ }
87
+ },
88
+ "aria-label": areAllSelected ? __("Deselect all") : __("Select all")
89
+ }
90
+ );
87
91
  }
88
92
  function ActionTrigger({
89
93
  action,
@@ -91,18 +95,20 @@ function ActionTrigger({
91
95
  isBusy,
92
96
  items
93
97
  }) {
94
- const label = typeof action.label === 'string' ? action.label : action.label(items);
95
- return /*#__PURE__*/_jsx(Button, {
96
- disabled: isBusy,
97
- accessibleWhenDisabled: true,
98
- label: label,
99
- icon: action.icon,
100
- isDestructive: action.isDestructive,
101
- size: "compact",
102
- onClick: onClick,
103
- isBusy: isBusy,
104
- tooltipPosition: "top"
105
- });
98
+ const label = typeof action.label === "string" ? action.label : action.label(items);
99
+ return /* @__PURE__ */ jsx(
100
+ Button,
101
+ {
102
+ disabled: isBusy,
103
+ accessibleWhenDisabled: true,
104
+ label,
105
+ icon: action.icon,
106
+ size: "compact",
107
+ onClick,
108
+ isBusy,
109
+ tooltipPosition: "top"
110
+ }
111
+ );
106
112
  }
107
113
  const EMPTY_ARRAY = [];
108
114
  function ActionButton({
@@ -113,72 +119,110 @@ function ActionButton({
113
119
  }) {
114
120
  const registry = useRegistry();
115
121
  const selectedEligibleItems = useMemo(() => {
116
- return selectedItems.filter(item => {
122
+ return selectedItems.filter((item) => {
117
123
  return !action.isEligible || action.isEligible(item);
118
124
  });
119
125
  }, [action, selectedItems]);
120
- if ('RenderModal' in action) {
121
- return /*#__PURE__*/_jsx(ActionWithModal, {
122
- action: action,
123
- items: selectedEligibleItems,
124
- ActionTriggerComponent: ActionTrigger
125
- }, action.id);
126
+ if ("RenderModal" in action) {
127
+ return /* @__PURE__ */ jsx(
128
+ ActionWithModal,
129
+ {
130
+ action,
131
+ items: selectedEligibleItems,
132
+ ActionTriggerComponent: ActionTrigger
133
+ },
134
+ action.id
135
+ );
126
136
  }
127
- return /*#__PURE__*/_jsx(ActionTrigger, {
128
- action: action,
129
- onClick: async () => {
130
- setActionInProgress(action.id);
131
- await action.callback(selectedItems, {
132
- registry
133
- });
134
- setActionInProgress(null);
137
+ return /* @__PURE__ */ jsx(
138
+ ActionTrigger,
139
+ {
140
+ action,
141
+ onClick: async () => {
142
+ setActionInProgress(action.id);
143
+ await action.callback(selectedItems, {
144
+ registry
145
+ });
146
+ setActionInProgress(null);
147
+ },
148
+ items: selectedEligibleItems,
149
+ isBusy: actionInProgress === action.id
135
150
  },
136
- items: selectedEligibleItems,
137
- isBusy: actionInProgress === action.id
138
- }, action.id);
151
+ action.id
152
+ );
139
153
  }
140
154
  function renderFooterContent(data, actions, getItemId, selection, actionsToShow, selectedItems, actionInProgress, setActionInProgress, onChangeSelection) {
141
- const message = selectedItems.length > 0 ? sprintf(/* translators: %d: number of items. */
142
- _n('%d Item selected', '%d Items selected', selectedItems.length), selectedItems.length) : sprintf(/* translators: %d: number of items. */
143
- _n('%d Item', '%d Items', data.length), data.length);
144
- return /*#__PURE__*/_jsxs(HStack, {
145
- expanded: false,
146
- className: "dataviews-bulk-actions-footer__container",
147
- spacing: 3,
148
- children: [/*#__PURE__*/_jsx(BulkSelectionCheckbox, {
149
- selection: selection,
150
- onChangeSelection: onChangeSelection,
151
- data: data,
152
- actions: actions,
153
- getItemId: getItemId
154
- }), /*#__PURE__*/_jsx("span", {
155
- className: "dataviews-bulk-actions-footer__item-count",
156
- children: message
157
- }), /*#__PURE__*/_jsxs(HStack, {
158
- className: "dataviews-bulk-actions-footer__action-buttons",
155
+ const message = selectedItems.length > 0 ? sprintf(
156
+ /* translators: %d: number of items. */
157
+ _n(
158
+ "%d Item selected",
159
+ "%d Items selected",
160
+ selectedItems.length
161
+ ),
162
+ selectedItems.length
163
+ ) : sprintf(
164
+ /* translators: %d: number of items. */
165
+ _n("%d Item", "%d Items", data.length),
166
+ data.length
167
+ );
168
+ return /* @__PURE__ */ jsxs(
169
+ HStack,
170
+ {
159
171
  expanded: false,
160
- spacing: 1,
161
- children: [actionsToShow.map(action => {
162
- return /*#__PURE__*/_jsx(ActionButton, {
163
- action: action,
164
- selectedItems: selectedItems,
165
- actionInProgress: actionInProgress,
166
- setActionInProgress: setActionInProgress
167
- }, action.id);
168
- }), selectedItems.length > 0 && /*#__PURE__*/_jsx(Button, {
169
- icon: closeSmall,
170
- showTooltip: true,
171
- tooltipPosition: "top",
172
- size: "compact",
173
- label: __('Cancel'),
174
- disabled: !!actionInProgress,
175
- accessibleWhenDisabled: false,
176
- onClick: () => {
177
- onChangeSelection(EMPTY_ARRAY);
178
- }
179
- })]
180
- })]
181
- });
172
+ className: "dataviews-bulk-actions-footer__container",
173
+ spacing: 3,
174
+ children: [
175
+ /* @__PURE__ */ jsx(
176
+ BulkSelectionCheckbox,
177
+ {
178
+ selection,
179
+ onChangeSelection,
180
+ data,
181
+ actions,
182
+ getItemId
183
+ }
184
+ ),
185
+ /* @__PURE__ */ jsx("span", { className: "dataviews-bulk-actions-footer__item-count", children: message }),
186
+ /* @__PURE__ */ jsxs(
187
+ HStack,
188
+ {
189
+ className: "dataviews-bulk-actions-footer__action-buttons",
190
+ expanded: false,
191
+ spacing: 1,
192
+ children: [
193
+ actionsToShow.map((action) => {
194
+ return /* @__PURE__ */ jsx(
195
+ ActionButton,
196
+ {
197
+ action,
198
+ selectedItems,
199
+ actionInProgress,
200
+ setActionInProgress
201
+ },
202
+ action.id
203
+ );
204
+ }),
205
+ selectedItems.length > 0 && /* @__PURE__ */ jsx(
206
+ Button,
207
+ {
208
+ icon: closeSmall,
209
+ showTooltip: true,
210
+ tooltipPosition: "top",
211
+ size: "compact",
212
+ label: __("Cancel"),
213
+ disabled: !!actionInProgress,
214
+ accessibleWhenDisabled: false,
215
+ onClick: () => {
216
+ onChangeSelection(EMPTY_ARRAY);
217
+ }
218
+ }
219
+ )
220
+ ]
221
+ }
222
+ )
223
+ ]
224
+ }
225
+ );
182
226
  }
183
227
  function FooterContent({
184
228
  selection,
@@ -187,31 +231,65 @@ function FooterContent({
187
231
  data,
188
232
  getItemId
189
233
  }) {
190
- const [actionInProgress, setActionInProgress] = useState(null);
234
+ const [actionInProgress, setActionInProgress] = useState(
235
+ null
236
+ );
191
237
  const footerContentRef = useRef(null);
192
- const bulkActions = useMemo(() => actions.filter(action => action.supportsBulk), [actions]);
238
+ const bulkActions = useMemo(
239
+ () => actions.filter((action) => action.supportsBulk),
240
+ [actions]
241
+ );
193
242
  const selectableItems = useMemo(() => {
194
- return data.filter(item => {
195
- return bulkActions.some(action => !action.isEligible || action.isEligible(item));
243
+ return data.filter((item) => {
244
+ return bulkActions.some(
245
+ (action) => !action.isEligible || action.isEligible(item)
246
+ );
196
247
  });
197
248
  }, [data, bulkActions]);
198
249
  const selectedItems = useMemo(() => {
199
- return data.filter(item => selection.includes(getItemId(item)) && selectableItems.includes(item));
250
+ return data.filter(
251
+ (item) => selection.includes(getItemId(item)) && selectableItems.includes(item)
252
+ );
200
253
  }, [selection, data, getItemId, selectableItems]);
201
- const actionsToShow = useMemo(() => actions.filter(action => {
202
- return action.supportsBulk && action.icon && selectedItems.some(item => !action.isEligible || action.isEligible(item));
203
- }), [actions, selectedItems]);
254
+ const actionsToShow = useMemo(
255
+ () => actions.filter((action) => {
256
+ return action.supportsBulk && action.icon && selectedItems.some(
257
+ (item) => !action.isEligible || action.isEligible(item)
258
+ );
259
+ }),
260
+ [actions, selectedItems]
261
+ );
204
262
  if (!actionInProgress) {
205
263
  if (footerContentRef.current) {
206
264
  footerContentRef.current = null;
207
265
  }
208
- return renderFooterContent(data, actions, getItemId, selection, actionsToShow, selectedItems, actionInProgress, setActionInProgress, onChangeSelection);
266
+ return renderFooterContent(
267
+ data,
268
+ actions,
269
+ getItemId,
270
+ selection,
271
+ actionsToShow,
272
+ selectedItems,
273
+ actionInProgress,
274
+ setActionInProgress,
275
+ onChangeSelection
276
+ );
209
277
  } else if (!footerContentRef.current) {
210
- footerContentRef.current = renderFooterContent(data, actions, getItemId, selection, actionsToShow, selectedItems, actionInProgress, setActionInProgress, onChangeSelection);
278
+ footerContentRef.current = renderFooterContent(
279
+ data,
280
+ actions,
281
+ getItemId,
282
+ selection,
283
+ actionsToShow,
284
+ selectedItems,
285
+ actionInProgress,
286
+ setActionInProgress,
287
+ onChangeSelection
288
+ );
211
289
  }
212
290
  return footerContentRef.current;
213
291
  }
214
- export function BulkActionsFooter() {
292
+ function BulkActionsFooter() {
215
293
  const {
216
294
  data,
217
295
  selection,
@@ -219,12 +297,21 @@ export function BulkActionsFooter() {
219
297
  onChangeSelection,
220
298
  getItemId
221
299
  } = useContext(DataViewsContext);
222
- return /*#__PURE__*/_jsx(FooterContent, {
223
- selection: selection,
224
- onChangeSelection: onChangeSelection,
225
- data: data,
226
- actions: actions,
227
- getItemId: getItemId
228
- });
300
+ return /* @__PURE__ */ jsx(
301
+ FooterContent,
302
+ {
303
+ selection,
304
+ onChangeSelection,
305
+ data,
306
+ actions,
307
+ getItemId
308
+ }
309
+ );
229
310
  }
230
- //# sourceMappingURL=index.js.map
311
+ export {
312
+ BulkActionsFooter,
313
+ BulkSelectionCheckbox,
314
+ useHasAPossibleBulkAction,
315
+ useSomeItemHasAPossibleBulkAction
316
+ };
317
+ //# sourceMappingURL=index.js.map
@@ -1 +1,7 @@
1
- {"version":3,"names":["Button","CheckboxControl","__experimentalHStack","HStack","__","sprintf","_n","useMemo","useState","useRef","useContext","useRegistry","closeSmall","DataViewsContext","ActionModal","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ActionWithModal","action","items","ActionTriggerComponent","isModalOpen","setIsModalOpen","actionTriggerProps","onClick","children","closeModal","useHasAPossibleBulkAction","actions","item","some","supportsBulk","isEligible","useSomeItemHasAPossibleBulkAction","data","BulkSelectionCheckbox","selection","onChangeSelection","getItemId","selectableItems","filter","selectedItems","includes","areAllSelected","length","className","__nextHasNoMarginBottom","checked","indeterminate","onChange","map","ActionTrigger","isBusy","label","disabled","accessibleWhenDisabled","icon","isDestructive","size","tooltipPosition","EMPTY_ARRAY","ActionButton","actionInProgress","setActionInProgress","registry","selectedEligibleItems","id","callback","renderFooterContent","actionsToShow","message","expanded","spacing","showTooltip","FooterContent","footerContentRef","bulkActions","current","BulkActionsFooter"],"sources":["@wordpress/dataviews/src/components/dataviews-bulk-actions/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactElement } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tCheckboxControl,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { useMemo, useState, useRef, useContext } from '@wordpress/element';\nimport { useRegistry } from '@wordpress/data';\nimport { closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport { ActionModal } from '../dataviews-item-actions';\nimport type { Action, ActionModal as ActionModalType } from '../../types';\nimport type { SetSelection } from '../../private-types';\nimport type { ActionTriggerProps } from '../dataviews-item-actions';\n\ninterface ActionWithModalProps< Item > {\n\taction: ActionModalType< Item >;\n\titems: Item[];\n\tActionTriggerComponent: (\n\t\tprops: ActionTriggerProps< Item >\n\t) => ReactElement;\n}\n\nfunction ActionWithModal< Item >( {\n\taction,\n\titems,\n\tActionTriggerComponent,\n}: ActionWithModalProps< Item > ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst actionTriggerProps = {\n\t\taction,\n\t\tonClick: () => {\n\t\t\tsetIsModalOpen( true );\n\t\t},\n\t\titems,\n\t};\n\treturn (\n\t\t<>\n\t\t\t<ActionTriggerComponent { ...actionTriggerProps } />\n\t\t\t{ isModalOpen && (\n\t\t\t\t<ActionModal\n\t\t\t\t\taction={ action }\n\t\t\t\t\titems={ items }\n\t\t\t\t\tcloseModal={ () => setIsModalOpen( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport function useHasAPossibleBulkAction< Item >(\n\tactions: Action< Item >[],\n\titem: Item\n) {\n\treturn useMemo( () => {\n\t\treturn actions.some( ( action ) => {\n\t\t\treturn (\n\t\t\t\taction.supportsBulk &&\n\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t);\n\t\t} );\n\t}, [ actions, item ] );\n}\n\nexport function useSomeItemHasAPossibleBulkAction< Item >(\n\tactions: Action< Item >[],\n\tdata: Item[]\n) {\n\treturn useMemo( () => {\n\t\treturn data.some( ( item ) => {\n\t\t\treturn actions.some( ( action ) => {\n\t\t\t\treturn (\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t\t);\n\t\t\t} );\n\t\t} );\n\t}, [ actions, data ] );\n}\n\ninterface BulkSelectionCheckboxProps< Item > {\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\tdata: Item[];\n\tactions: Action< Item >[];\n\tgetItemId: ( item: Item ) => string;\n}\n\nexport function BulkSelectionCheckbox< Item >( {\n\tselection,\n\tonChangeSelection,\n\tdata,\n\tactions,\n\tgetItemId,\n}: BulkSelectionCheckboxProps< Item > ) {\n\tconst selectableItems = useMemo( () => {\n\t\treturn data.filter( ( item ) => {\n\t\t\treturn actions.some(\n\t\t\t\t( action ) =>\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t);\n\t\t} );\n\t}, [ data, actions ] );\n\tconst selectedItems = data.filter(\n\t\t( item ) =>\n\t\t\tselection.includes( getItemId( item ) ) &&\n\t\t\tselectableItems.includes( item )\n\t);\n\tconst areAllSelected = selectedItems.length === selectableItems.length;\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\tonChangeSelection( [] );\n\t\t\t\t} else {\n\t\t\t\t\tonChangeSelection(\n\t\t\t\t\t\tselectableItems.map( ( item ) => getItemId( item ) )\n\t\t\t\t\t);\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\ninterface ActionButtonProps< Item > {\n\taction: Action< Item >;\n\tselectedItems: Item[];\n\tactionInProgress: string | null;\n\tsetActionInProgress: ( actionId: string | null ) => void;\n}\n\ninterface ToolbarContentProps< Item > {\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\tdata: Item[];\n\tactions: Action< Item >[];\n\tgetItemId: ( item: Item ) => string;\n}\n\nfunction ActionTrigger< Item >( {\n\taction,\n\tonClick,\n\tisBusy,\n\titems,\n}: ActionTriggerProps< Item > ) {\n\tconst label =\n\t\ttypeof action.label === 'string' ? action.label : action.label( items );\n\treturn (\n\t\t<Button\n\t\t\tdisabled={ isBusy }\n\t\t\taccessibleWhenDisabled\n\t\t\tlabel={ label }\n\t\t\ticon={ action.icon }\n\t\t\tisDestructive={ action.isDestructive }\n\t\t\tsize=\"compact\"\n\t\t\tonClick={ onClick }\n\t\t\tisBusy={ isBusy }\n\t\t\ttooltipPosition=\"top\"\n\t\t/>\n\t);\n}\n\nconst EMPTY_ARRAY: [] = [];\n\nfunction ActionButton< Item >( {\n\taction,\n\tselectedItems,\n\tactionInProgress,\n\tsetActionInProgress,\n}: ActionButtonProps< Item > ) {\n\tconst registry = useRegistry();\n\tconst selectedEligibleItems = useMemo( () => {\n\t\treturn selectedItems.filter( ( item ) => {\n\t\t\treturn ! action.isEligible || action.isEligible( item );\n\t\t} );\n\t}, [ action, selectedItems ] );\n\tif ( 'RenderModal' in action ) {\n\t\treturn (\n\t\t\t<ActionWithModal\n\t\t\t\tkey={ action.id }\n\t\t\t\taction={ action }\n\t\t\t\titems={ selectedEligibleItems }\n\t\t\t\tActionTriggerComponent={ ActionTrigger }\n\t\t\t/>\n\t\t);\n\t}\n\treturn (\n\t\t<ActionTrigger\n\t\t\tkey={ action.id }\n\t\t\taction={ action }\n\t\t\tonClick={ async () => {\n\t\t\t\tsetActionInProgress( action.id );\n\t\t\t\tawait action.callback( selectedItems, {\n\t\t\t\t\tregistry,\n\t\t\t\t} );\n\t\t\t\tsetActionInProgress( null );\n\t\t\t} }\n\t\t\titems={ selectedEligibleItems }\n\t\t\tisBusy={ actionInProgress === action.id }\n\t\t/>\n\t);\n}\n\nfunction renderFooterContent< Item >(\n\tdata: Item[],\n\tactions: Action< Item >[],\n\tgetItemId: ( item: Item ) => string,\n\tselection: string[],\n\tactionsToShow: Action< Item >[],\n\tselectedItems: Item[],\n\tactionInProgress: string | null,\n\tsetActionInProgress: ( actionId: string | null ) => void,\n\tonChangeSelection: SetSelection\n) {\n\tconst message =\n\t\tselectedItems.length > 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\tselectedItems.length\n\t\t\t\t\t),\n\t\t\t\t\tselectedItems.length\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\treturn (\n\t\t<HStack\n\t\t\texpanded={ false }\n\t\t\tclassName=\"dataviews-bulk-actions-footer__container\"\n\t\t\tspacing={ 3 }\n\t\t>\n\t\t\t<BulkSelectionCheckbox\n\t\t\t\tselection={ selection }\n\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\tdata={ data }\n\t\t\t\tactions={ actions }\n\t\t\t\tgetItemId={ getItemId }\n\t\t\t/>\n\t\t\t<span className=\"dataviews-bulk-actions-footer__item-count\">\n\t\t\t\t{ message }\n\t\t\t</span>\n\t\t\t<HStack\n\t\t\t\tclassName=\"dataviews-bulk-actions-footer__action-buttons\"\n\t\t\t\texpanded={ false }\n\t\t\t\tspacing={ 1 }\n\t\t\t>\n\t\t\t\t{ actionsToShow.map( ( action ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ActionButton\n\t\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\t\tselectedItems={ selectedItems }\n\t\t\t\t\t\t\tactionInProgress={ actionInProgress }\n\t\t\t\t\t\t\tsetActionInProgress={ setActionInProgress }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t\t{ selectedItems.length > 0 && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\tlabel={ __( 'Cancel' ) }\n\t\t\t\t\t\tdisabled={ !! actionInProgress }\n\t\t\t\t\t\taccessibleWhenDisabled={ false }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonChangeSelection( EMPTY_ARRAY );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</HStack>\n\t);\n}\n\nfunction FooterContent< Item >( {\n\tselection,\n\tactions,\n\tonChangeSelection,\n\tdata,\n\tgetItemId,\n}: ToolbarContentProps< Item > ) {\n\tconst [ actionInProgress, setActionInProgress ] = useState< string | null >(\n\t\tnull\n\t);\n\tconst footerContentRef = useRef< JSX.Element | null >( null );\n\n\tconst bulkActions = useMemo(\n\t\t() => actions.filter( ( action ) => action.supportsBulk ),\n\t\t[ actions ]\n\t);\n\tconst selectableItems = useMemo( () => {\n\t\treturn data.filter( ( item ) => {\n\t\t\treturn bulkActions.some(\n\t\t\t\t( action ) => ! action.isEligible || action.isEligible( item )\n\t\t\t);\n\t\t} );\n\t}, [ data, bulkActions ] );\n\n\tconst selectedItems = useMemo( () => {\n\t\treturn data.filter(\n\t\t\t( item ) =>\n\t\t\t\tselection.includes( getItemId( item ) ) &&\n\t\t\t\tselectableItems.includes( item )\n\t\t);\n\t}, [ selection, data, getItemId, selectableItems ] );\n\n\tconst actionsToShow = useMemo(\n\t\t() =>\n\t\t\tactions.filter( ( action ) => {\n\t\t\t\treturn (\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\taction.icon &&\n\t\t\t\t\tselectedItems.some(\n\t\t\t\t\t\t( item ) =>\n\t\t\t\t\t\t\t! action.isEligible || action.isEligible( item )\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} ),\n\t\t[ actions, selectedItems ]\n\t);\n\tif ( ! actionInProgress ) {\n\t\tif ( footerContentRef.current ) {\n\t\t\tfooterContentRef.current = null;\n\t\t}\n\t\treturn renderFooterContent(\n\t\t\tdata,\n\t\t\tactions,\n\t\t\tgetItemId,\n\t\t\tselection,\n\t\t\tactionsToShow,\n\t\t\tselectedItems,\n\t\t\tactionInProgress,\n\t\t\tsetActionInProgress,\n\t\t\tonChangeSelection\n\t\t);\n\t} else if ( ! footerContentRef.current ) {\n\t\tfooterContentRef.current = renderFooterContent(\n\t\t\tdata,\n\t\t\tactions,\n\t\t\tgetItemId,\n\t\t\tselection,\n\t\t\tactionsToShow,\n\t\t\tselectedItems,\n\t\t\tactionInProgress,\n\t\t\tsetActionInProgress,\n\t\t\tonChangeSelection\n\t\t);\n\t}\n\treturn footerContentRef.current;\n}\n\nexport function BulkActionsFooter() {\n\tconst {\n\t\tdata,\n\t\tselection,\n\t\tactions = EMPTY_ARRAY,\n\t\tonChangeSelection,\n\t\tgetItemId,\n\t} = useContext( DataViewsContext );\n\treturn (\n\t\t<FooterContent\n\t\t\tselection={ selection }\n\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\tdata={ data }\n\t\t\tactions={ actions }\n\t\t\tgetItemId={ getItemId }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/dataviews-bulk-actions/index.tsx"],
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport type { ReactElement } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tCheckboxControl,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { __, sprintf, _n } from '@wordpress/i18n';\nimport { useMemo, useState, useRef, useContext } from '@wordpress/element';\nimport { useRegistry } from '@wordpress/data';\nimport { closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport { ActionModal } from '../dataviews-item-actions';\nimport type { Action, ActionModal as ActionModalType } from '../../types';\nimport type { SetSelection } from '../../types/private';\nimport type { ActionTriggerProps } from '../dataviews-item-actions';\n\ninterface ActionWithModalProps< Item > {\n\taction: ActionModalType< Item >;\n\titems: Item[];\n\tActionTriggerComponent: (\n\t\tprops: ActionTriggerProps< Item >\n\t) => ReactElement;\n}\n\nfunction ActionWithModal< Item >( {\n\taction,\n\titems,\n\tActionTriggerComponent,\n}: ActionWithModalProps< Item > ) {\n\tconst [ isModalOpen, setIsModalOpen ] = useState( false );\n\tconst actionTriggerProps = {\n\t\taction,\n\t\tonClick: () => {\n\t\t\tsetIsModalOpen( true );\n\t\t},\n\t\titems,\n\t};\n\treturn (\n\t\t<>\n\t\t\t<ActionTriggerComponent { ...actionTriggerProps } />\n\t\t\t{ isModalOpen && (\n\t\t\t\t<ActionModal\n\t\t\t\t\taction={ action }\n\t\t\t\t\titems={ items }\n\t\t\t\t\tcloseModal={ () => setIsModalOpen( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport function useHasAPossibleBulkAction< Item >(\n\tactions: Action< Item >[],\n\titem: Item\n) {\n\treturn useMemo( () => {\n\t\treturn actions.some( ( action ) => {\n\t\t\treturn (\n\t\t\t\taction.supportsBulk &&\n\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t);\n\t\t} );\n\t}, [ actions, item ] );\n}\n\nexport function useSomeItemHasAPossibleBulkAction< Item >(\n\tactions: Action< Item >[],\n\tdata: Item[]\n) {\n\treturn useMemo( () => {\n\t\treturn data.some( ( item ) => {\n\t\t\treturn actions.some( ( action ) => {\n\t\t\t\treturn (\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t\t);\n\t\t\t} );\n\t\t} );\n\t}, [ actions, data ] );\n}\n\ninterface BulkSelectionCheckboxProps< Item > {\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\tdata: Item[];\n\tactions: Action< Item >[];\n\tgetItemId: ( item: Item ) => string;\n}\n\nexport function BulkSelectionCheckbox< Item >( {\n\tselection,\n\tonChangeSelection,\n\tdata,\n\tactions,\n\tgetItemId,\n}: BulkSelectionCheckboxProps< Item > ) {\n\tconst selectableItems = useMemo( () => {\n\t\treturn data.filter( ( item ) => {\n\t\t\treturn actions.some(\n\t\t\t\t( action ) =>\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\t( ! action.isEligible || action.isEligible( item ) )\n\t\t\t);\n\t\t} );\n\t}, [ data, actions ] );\n\tconst selectedItems = data.filter(\n\t\t( item ) =>\n\t\t\tselection.includes( getItemId( item ) ) &&\n\t\t\tselectableItems.includes( item )\n\t);\n\tconst areAllSelected = selectedItems.length === selectableItems.length;\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\tonChangeSelection( [] );\n\t\t\t\t} else {\n\t\t\t\t\tonChangeSelection(\n\t\t\t\t\t\tselectableItems.map( ( item ) => getItemId( item ) )\n\t\t\t\t\t);\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\ninterface ActionButtonProps< Item > {\n\taction: Action< Item >;\n\tselectedItems: Item[];\n\tactionInProgress: string | null;\n\tsetActionInProgress: ( actionId: string | null ) => void;\n}\n\ninterface ToolbarContentProps< Item > {\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\tdata: Item[];\n\tactions: Action< Item >[];\n\tgetItemId: ( item: Item ) => string;\n}\n\nfunction ActionTrigger< Item >( {\n\taction,\n\tonClick,\n\tisBusy,\n\titems,\n}: ActionTriggerProps< Item > ) {\n\tconst label =\n\t\ttypeof action.label === 'string' ? action.label : action.label( items );\n\treturn (\n\t\t<Button\n\t\t\tdisabled={ isBusy }\n\t\t\taccessibleWhenDisabled\n\t\t\tlabel={ label }\n\t\t\ticon={ action.icon }\n\t\t\tsize=\"compact\"\n\t\t\tonClick={ onClick }\n\t\t\tisBusy={ isBusy }\n\t\t\ttooltipPosition=\"top\"\n\t\t/>\n\t);\n}\n\nconst EMPTY_ARRAY: [] = [];\n\nfunction ActionButton< Item >( {\n\taction,\n\tselectedItems,\n\tactionInProgress,\n\tsetActionInProgress,\n}: ActionButtonProps< Item > ) {\n\tconst registry = useRegistry();\n\tconst selectedEligibleItems = useMemo( () => {\n\t\treturn selectedItems.filter( ( item ) => {\n\t\t\treturn ! action.isEligible || action.isEligible( item );\n\t\t} );\n\t}, [ action, selectedItems ] );\n\tif ( 'RenderModal' in action ) {\n\t\treturn (\n\t\t\t<ActionWithModal\n\t\t\t\tkey={ action.id }\n\t\t\t\taction={ action }\n\t\t\t\titems={ selectedEligibleItems }\n\t\t\t\tActionTriggerComponent={ ActionTrigger }\n\t\t\t/>\n\t\t);\n\t}\n\treturn (\n\t\t<ActionTrigger\n\t\t\tkey={ action.id }\n\t\t\taction={ action }\n\t\t\tonClick={ async () => {\n\t\t\t\tsetActionInProgress( action.id );\n\t\t\t\tawait action.callback( selectedItems, {\n\t\t\t\t\tregistry,\n\t\t\t\t} );\n\t\t\t\tsetActionInProgress( null );\n\t\t\t} }\n\t\t\titems={ selectedEligibleItems }\n\t\t\tisBusy={ actionInProgress === action.id }\n\t\t/>\n\t);\n}\n\nfunction renderFooterContent< Item >(\n\tdata: Item[],\n\tactions: Action< Item >[],\n\tgetItemId: ( item: Item ) => string,\n\tselection: string[],\n\tactionsToShow: Action< Item >[],\n\tselectedItems: Item[],\n\tactionInProgress: string | null,\n\tsetActionInProgress: ( actionId: string | null ) => void,\n\tonChangeSelection: SetSelection\n) {\n\tconst message =\n\t\tselectedItems.length > 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\tselectedItems.length\n\t\t\t\t\t),\n\t\t\t\t\tselectedItems.length\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\treturn (\n\t\t<HStack\n\t\t\texpanded={ false }\n\t\t\tclassName=\"dataviews-bulk-actions-footer__container\"\n\t\t\tspacing={ 3 }\n\t\t>\n\t\t\t<BulkSelectionCheckbox\n\t\t\t\tselection={ selection }\n\t\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\t\tdata={ data }\n\t\t\t\tactions={ actions }\n\t\t\t\tgetItemId={ getItemId }\n\t\t\t/>\n\t\t\t<span className=\"dataviews-bulk-actions-footer__item-count\">\n\t\t\t\t{ message }\n\t\t\t</span>\n\t\t\t<HStack\n\t\t\t\tclassName=\"dataviews-bulk-actions-footer__action-buttons\"\n\t\t\t\texpanded={ false }\n\t\t\t\tspacing={ 1 }\n\t\t\t>\n\t\t\t\t{ actionsToShow.map( ( action ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ActionButton\n\t\t\t\t\t\t\tkey={ action.id }\n\t\t\t\t\t\t\taction={ action }\n\t\t\t\t\t\t\tselectedItems={ selectedItems }\n\t\t\t\t\t\t\tactionInProgress={ actionInProgress }\n\t\t\t\t\t\t\tsetActionInProgress={ setActionInProgress }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t\t{ selectedItems.length > 0 && (\n\t\t\t\t\t<Button\n\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\ttooltipPosition=\"top\"\n\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\tlabel={ __( 'Cancel' ) }\n\t\t\t\t\t\tdisabled={ !! actionInProgress }\n\t\t\t\t\t\taccessibleWhenDisabled={ false }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonChangeSelection( EMPTY_ARRAY );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</HStack>\n\t);\n}\n\nfunction FooterContent< Item >( {\n\tselection,\n\tactions,\n\tonChangeSelection,\n\tdata,\n\tgetItemId,\n}: ToolbarContentProps< Item > ) {\n\tconst [ actionInProgress, setActionInProgress ] = useState< string | null >(\n\t\tnull\n\t);\n\tconst footerContentRef = useRef< JSX.Element | null >( null );\n\n\tconst bulkActions = useMemo(\n\t\t() => actions.filter( ( action ) => action.supportsBulk ),\n\t\t[ actions ]\n\t);\n\tconst selectableItems = useMemo( () => {\n\t\treturn data.filter( ( item ) => {\n\t\t\treturn bulkActions.some(\n\t\t\t\t( action ) => ! action.isEligible || action.isEligible( item )\n\t\t\t);\n\t\t} );\n\t}, [ data, bulkActions ] );\n\n\tconst selectedItems = useMemo( () => {\n\t\treturn data.filter(\n\t\t\t( item ) =>\n\t\t\t\tselection.includes( getItemId( item ) ) &&\n\t\t\t\tselectableItems.includes( item )\n\t\t);\n\t}, [ selection, data, getItemId, selectableItems ] );\n\n\tconst actionsToShow = useMemo(\n\t\t() =>\n\t\t\tactions.filter( ( action ) => {\n\t\t\t\treturn (\n\t\t\t\t\taction.supportsBulk &&\n\t\t\t\t\taction.icon &&\n\t\t\t\t\tselectedItems.some(\n\t\t\t\t\t\t( item ) =>\n\t\t\t\t\t\t\t! action.isEligible || action.isEligible( item )\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} ),\n\t\t[ actions, selectedItems ]\n\t);\n\tif ( ! actionInProgress ) {\n\t\tif ( footerContentRef.current ) {\n\t\t\tfooterContentRef.current = null;\n\t\t}\n\t\treturn renderFooterContent(\n\t\t\tdata,\n\t\t\tactions,\n\t\t\tgetItemId,\n\t\t\tselection,\n\t\t\tactionsToShow,\n\t\t\tselectedItems,\n\t\t\tactionInProgress,\n\t\t\tsetActionInProgress,\n\t\t\tonChangeSelection\n\t\t);\n\t} else if ( ! footerContentRef.current ) {\n\t\tfooterContentRef.current = renderFooterContent(\n\t\t\tdata,\n\t\t\tactions,\n\t\t\tgetItemId,\n\t\t\tselection,\n\t\t\tactionsToShow,\n\t\t\tselectedItems,\n\t\t\tactionInProgress,\n\t\t\tsetActionInProgress,\n\t\t\tonChangeSelection\n\t\t);\n\t}\n\treturn footerContentRef.current;\n}\n\nexport function BulkActionsFooter() {\n\tconst {\n\t\tdata,\n\t\tselection,\n\t\tactions = EMPTY_ARRAY,\n\t\tonChangeSelection,\n\t\tgetItemId,\n\t} = useContext( DataViewsContext );\n\treturn (\n\t\t<FooterContent\n\t\t\tselection={ selection }\n\t\t\tonChangeSelection={ onChangeSelection }\n\t\t\tdata={ data }\n\t\t\tactions={ actions }\n\t\t\tgetItemId={ getItemId }\n\t\t/>\n\t);\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,22 +1,9 @@
1
- /**
2
- * External dependencies
3
- */
4
-
5
- /**
6
- * WordPress dependencies
7
- */
8
- import { createContext, createRef } from '@wordpress/element';
9
-
10
- /**
11
- * Internal dependencies
12
- */
13
-
14
- import { LAYOUT_TABLE } from '../../constants';
1
+ import { createContext, createRef } from "@wordpress/element";
2
+ import { LAYOUT_TABLE } from "../../constants";
15
3
  const DataViewsContext = createContext({
16
- view: {
17
- type: LAYOUT_TABLE
4
+ view: { type: LAYOUT_TABLE },
5
+ onChangeView: () => {
18
6
  },
19
- onChangeView: () => {},
20
7
  fields: [],
21
8
  data: [],
22
9
  paginationInfo: {
@@ -24,28 +11,31 @@ const DataViewsContext = createContext({
24
11
  totalPages: 0
25
12
  },
26
13
  selection: [],
27
- onChangeSelection: () => {},
28
- setOpenedFilter: () => {},
14
+ onChangeSelection: () => {
15
+ },
16
+ setOpenedFilter: () => {
17
+ },
29
18
  openedFilter: null,
30
- getItemId: item => item.id,
19
+ getItemId: (item) => item.id,
31
20
  isItemClickable: () => true,
32
- renderItemLink: undefined,
21
+ renderItemLink: void 0,
33
22
  containerWidth: 0,
34
23
  containerRef: createRef(),
35
- resizeObserverRef: () => {},
36
- defaultLayouts: {
37
- list: {},
38
- grid: {},
39
- table: {}
24
+ resizeObserverRef: () => {
40
25
  },
26
+ defaultLayouts: { list: {}, grid: {}, table: {} },
41
27
  filters: [],
42
28
  isShowingFilter: false,
43
- setIsShowingFilter: () => {},
29
+ setIsShowingFilter: () => {
30
+ },
44
31
  hasInfiniteScrollHandler: false,
45
32
  config: {
46
33
  perPageSizes: []
47
34
  }
48
35
  });
49
- DataViewsContext.displayName = 'DataViewsContext';
50
- export default DataViewsContext;
51
- //# sourceMappingURL=index.js.map
36
+ DataViewsContext.displayName = "DataViewsContext";
37
+ var dataviews_context_default = DataViewsContext;
38
+ export {
39
+ dataviews_context_default as default
40
+ };
41
+ //# sourceMappingURL=index.js.map
@@ -1 +1,7 @@
1
- {"version":3,"names":["createContext","createRef","LAYOUT_TABLE","DataViewsContext","view","type","onChangeView","fields","data","paginationInfo","totalItems","totalPages","selection","onChangeSelection","setOpenedFilter","openedFilter","getItemId","item","id","isItemClickable","renderItemLink","undefined","containerWidth","containerRef","resizeObserverRef","defaultLayouts","list","grid","table","filters","isShowingFilter","setIsShowingFilter","hasInfiniteScrollHandler","config","perPageSizes","displayName"],"sources":["@wordpress/dataviews/src/components/dataviews-context/index.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ComponentProps, ReactElement, ReactNode } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { createContext, createRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tView,\n\tAction,\n\tNormalizedField,\n\tSupportedLayouts,\n\tNormalizedFilter,\n} from '../../types';\nimport type { SetSelection } from '../../private-types';\nimport { LAYOUT_TABLE } from '../../constants';\n\ntype DataViewsContextType< Item > = {\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tfields: NormalizedField< Item >[];\n\tactions?: Action< Item >[];\n\tdata: Item[];\n\tisLoading?: boolean;\n\tpaginationInfo: {\n\t\ttotalItems: number;\n\t\ttotalPages: number;\n\t};\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\topenedFilter: string | null;\n\tsetOpenedFilter: ( openedFilter: string | null ) => void;\n\tgetItemId: ( item: Item ) => string;\n\tgetItemLevel?: ( item: Item ) => number;\n\tonClickItem?: ( item: Item ) => void;\n\trenderItemLink?: (\n\t\tprops: {\n\t\t\titem: Item;\n\t\t} & ComponentProps< 'a' >\n\t) => ReactElement;\n\tisItemClickable: ( item: Item ) => boolean;\n\tcontainerWidth: number;\n\tcontainerRef: React.MutableRefObject< HTMLDivElement | null >;\n\tresizeObserverRef:\n\t\t| ( ( element?: HTMLDivElement | null ) => void )\n\t\t| React.RefObject< HTMLDivElement >;\n\tdefaultLayouts: SupportedLayouts;\n\tfilters: NormalizedFilter[];\n\tisShowingFilter: boolean;\n\tsetIsShowingFilter: ( value: boolean ) => void;\n\tconfig: { perPageSizes: number[] };\n\tempty?: ReactNode;\n\thasInfiniteScrollHandler: boolean;\n\titemListLabel?: string;\n};\n\nconst DataViewsContext = createContext< DataViewsContextType< any > >( {\n\tview: { type: LAYOUT_TABLE },\n\tonChangeView: () => {},\n\tfields: [],\n\tdata: [],\n\tpaginationInfo: {\n\t\ttotalItems: 0,\n\t\ttotalPages: 0,\n\t},\n\tselection: [],\n\tonChangeSelection: () => {},\n\tsetOpenedFilter: () => {},\n\topenedFilter: null,\n\tgetItemId: ( item ) => item.id,\n\tisItemClickable: () => true,\n\trenderItemLink: undefined,\n\tcontainerWidth: 0,\n\tcontainerRef: createRef(),\n\tresizeObserverRef: () => {},\n\tdefaultLayouts: { list: {}, grid: {}, table: {} },\n\tfilters: [],\n\tisShowingFilter: false,\n\tsetIsShowingFilter: () => {},\n\thasInfiniteScrollHandler: false,\n\tconfig: {\n\t\tperPageSizes: [],\n\t},\n} );\n\nDataViewsContext.displayName = 'DataViewsContext';\n\nexport default DataViewsContext;\n"],"mappings":"AAAA;AACA;AACA;;AAGA;AACA;AACA;AACA,SAASA,aAAa,EAAEC,SAAS,QAAQ,oBAAoB;;AAE7D;AACA;AACA;;AASA,SAASC,YAAY,QAAQ,iBAAiB;AAyC9C,MAAMC,gBAAgB,GAAGH,aAAa,CAAiC;EACtEI,IAAI,EAAE;IAAEC,IAAI,EAAEH;EAAa,CAAC;EAC5BI,YAAY,EAAEA,CAAA,KAAM,CAAC,CAAC;EACtBC,MAAM,EAAE,EAAE;EACVC,IAAI,EAAE,EAAE;EACRC,cAAc,EAAE;IACfC,UAAU,EAAE,CAAC;IACbC,UAAU,EAAE;EACb,CAAC;EACDC,SAAS,EAAE,EAAE;EACbC,iBAAiB,EAAEA,CAAA,KAAM,CAAC,CAAC;EAC3BC,eAAe,EAAEA,CAAA,KAAM,CAAC,CAAC;EACzBC,YAAY,EAAE,IAAI;EAClBC,SAAS,EAAIC,IAAI,IAAMA,IAAI,CAACC,EAAE;EAC9BC,eAAe,EAAEA,CAAA,KAAM,IAAI;EAC3BC,cAAc,EAAEC,SAAS;EACzBC,cAAc,EAAE,CAAC;EACjBC,YAAY,EAAEtB,SAAS,CAAC,CAAC;EACzBuB,iBAAiB,EAAEA,CAAA,KAAM,CAAC,CAAC;EAC3BC,cAAc,EAAE;IAAEC,IAAI,EAAE,CAAC,CAAC;IAAEC,IAAI,EAAE,CAAC,CAAC;IAAEC,KAAK,EAAE,CAAC;EAAE,CAAC;EACjDC,OAAO,EAAE,EAAE;EACXC,eAAe,EAAE,KAAK;EACtBC,kBAAkB,EAAEA,CAAA,KAAM,CAAC,CAAC;EAC5BC,wBAAwB,EAAE,KAAK;EAC/BC,MAAM,EAAE;IACPC,YAAY,EAAE;EACf;AACD,CAAE,CAAC;AAEH/B,gBAAgB,CAACgC,WAAW,GAAG,kBAAkB;AAEjD,eAAehC,gBAAgB","ignoreList":[]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/dataviews-context/index.ts"],
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport type { ComponentProps, ReactElement, ReactNode } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { createContext, createRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tView,\n\tAction,\n\tNormalizedField,\n\tSupportedLayouts,\n\tNormalizedFilter,\n} from '../../types';\nimport type { SetSelection } from '../../types/private';\nimport { LAYOUT_TABLE } from '../../constants';\n\ntype DataViewsContextType< Item > = {\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tfields: NormalizedField< Item >[];\n\tactions?: Action< Item >[];\n\tdata: Item[];\n\tisLoading?: boolean;\n\tpaginationInfo: {\n\t\ttotalItems: number;\n\t\ttotalPages: number;\n\t};\n\tselection: string[];\n\tonChangeSelection: SetSelection;\n\topenedFilter: string | null;\n\tsetOpenedFilter: ( openedFilter: string | null ) => void;\n\tgetItemId: ( item: Item ) => string;\n\tgetItemLevel?: ( item: Item ) => number;\n\tonClickItem?: ( item: Item ) => void;\n\trenderItemLink?: (\n\t\tprops: {\n\t\t\titem: Item;\n\t\t} & ComponentProps< 'a' >\n\t) => ReactElement;\n\tisItemClickable: ( item: Item ) => boolean;\n\tcontainerWidth: number;\n\tcontainerRef: React.MutableRefObject< HTMLDivElement | null >;\n\tresizeObserverRef:\n\t\t| ( ( element?: HTMLDivElement | null ) => void )\n\t\t| React.RefObject< HTMLDivElement >;\n\tdefaultLayouts: SupportedLayouts;\n\tfilters: NormalizedFilter[];\n\tisShowingFilter: boolean;\n\tsetIsShowingFilter: ( value: boolean ) => void;\n\tconfig: { perPageSizes: number[] };\n\tempty?: ReactNode;\n\thasInfiniteScrollHandler: boolean;\n\titemListLabel?: string;\n};\n\nconst DataViewsContext = createContext< DataViewsContextType< any > >( {\n\tview: { type: LAYOUT_TABLE },\n\tonChangeView: () => {},\n\tfields: [],\n\tdata: [],\n\tpaginationInfo: {\n\t\ttotalItems: 0,\n\t\ttotalPages: 0,\n\t},\n\tselection: [],\n\tonChangeSelection: () => {},\n\tsetOpenedFilter: () => {},\n\topenedFilter: null,\n\tgetItemId: ( item ) => item.id,\n\tisItemClickable: () => true,\n\trenderItemLink: undefined,\n\tcontainerWidth: 0,\n\tcontainerRef: createRef(),\n\tresizeObserverRef: () => {},\n\tdefaultLayouts: { list: {}, grid: {}, table: {} },\n\tfilters: [],\n\tisShowingFilter: false,\n\tsetIsShowingFilter: () => {},\n\thasInfiniteScrollHandler: false,\n\tconfig: {\n\t\tperPageSizes: [],\n\t},\n} );\n\nDataViewsContext.displayName = 'DataViewsContext';\n\nexport default DataViewsContext;\n"],
5
+ "mappings": "AAQA,SAAS,eAAe,iBAAiB;AAazC,SAAS,oBAAoB;AAyC7B,MAAM,mBAAmB,cAA8C;AAAA,EACtE,MAAM,EAAE,MAAM,aAAa;AAAA,EAC3B,cAAc,MAAM;AAAA,EAAC;AAAA,EACrB,QAAQ,CAAC;AAAA,EACT,MAAM,CAAC;AAAA,EACP,gBAAgB;AAAA,IACf,YAAY;AAAA,IACZ,YAAY;AAAA,EACb;AAAA,EACA,WAAW,CAAC;AAAA,EACZ,mBAAmB,MAAM;AAAA,EAAC;AAAA,EAC1B,iBAAiB,MAAM;AAAA,EAAC;AAAA,EACxB,cAAc;AAAA,EACd,WAAW,CAAE,SAAU,KAAK;AAAA,EAC5B,iBAAiB,MAAM;AAAA,EACvB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,cAAc,UAAU;AAAA,EACxB,mBAAmB,MAAM;AAAA,EAAC;AAAA,EAC1B,gBAAgB,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE;AAAA,EAChD,SAAS,CAAC;AAAA,EACV,iBAAiB;AAAA,EACjB,oBAAoB,MAAM;AAAA,EAAC;AAAA,EAC3B,0BAA0B;AAAA,EAC1B,QAAQ;AAAA,IACP,cAAc,CAAC;AAAA,EAChB;AACD,CAAE;AAEF,iBAAiB,cAAc;AAE/B,IAAO,4BAAQ;",
6
+ "names": []
7
+ }