@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,72 +1,83 @@
1
- /**
2
- * External dependencies
3
- */
4
-
5
- /**
6
- * WordPress dependencies
7
- */
8
- import { __experimentalHStack as HStack } from '@wordpress/components';
9
- import { useContext, useEffect, useMemo, useRef, useState } from '@wordpress/element';
10
- import { useResizeObserver, throttle } from '@wordpress/compose';
11
-
12
- /**
13
- * Internal dependencies
14
- */
15
- import DataViewsContext from '../dataviews-context';
16
- import { VIEW_LAYOUTS } from '../../dataviews-layouts';
17
- import { default as DataViewsFilters, useFilters, FiltersToggle } from '../dataviews-filters';
18
- import DataViewsLayout from '../dataviews-layout';
19
- import DataViewsFooter from '../dataviews-footer';
20
- import DataViewsSearch from '../dataviews-search';
21
- import { BulkActionsFooter } from '../dataviews-bulk-actions';
22
- import { DataViewsPagination } from '../dataviews-pagination';
23
- import DataViewsViewConfig, { DataviewsViewConfigDropdown, ViewTypeMenu } from '../dataviews-view-config';
24
- import { normalizeFields } from '../../normalize-fields';
25
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
26
- const defaultGetItemId = item => item.id;
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import { __experimentalHStack as HStack } from "@wordpress/components";
3
+ import { useEffect, useMemo, useRef, useState } from "@wordpress/element";
4
+ import { useResizeObserver, throttle } from "@wordpress/compose";
5
+ import DataViewsContext from "../dataviews-context";
6
+ import { VIEW_LAYOUTS } from "../../dataviews-layouts";
7
+ import {
8
+ Filters,
9
+ FiltersToggled,
10
+ useFilters,
11
+ FiltersToggle
12
+ } from "../dataviews-filters";
13
+ import DataViewsLayout from "../dataviews-layout";
14
+ import DataViewsFooter from "../dataviews-footer";
15
+ import DataViewsSearch from "../dataviews-search";
16
+ import { BulkActionsFooter } from "../dataviews-bulk-actions";
17
+ import { DataViewsPagination } from "../dataviews-pagination";
18
+ import DataViewsViewConfig, {
19
+ DataviewsViewConfigDropdown,
20
+ ViewTypeMenu
21
+ } from "../dataviews-view-config";
22
+ import normalizeFields from "../../utils/normalize-fields";
23
+ const defaultGetItemId = (item) => item.id;
27
24
  const defaultIsItemClickable = () => true;
28
25
  const EMPTY_ARRAY = [];
29
- const dataViewsLayouts = VIEW_LAYOUTS.filter(viewLayout => !viewLayout.isPicker);
26
+ const dataViewsLayouts = VIEW_LAYOUTS.filter(
27
+ (viewLayout) => !viewLayout.isPicker
28
+ );
30
29
  function DefaultUI({
31
30
  header,
32
31
  search = true,
33
- searchLabel = undefined
32
+ searchLabel = void 0
34
33
  }) {
35
- const {
36
- isShowingFilter
37
- } = useContext(DataViewsContext);
38
- return /*#__PURE__*/_jsxs(_Fragment, {
39
- children: [/*#__PURE__*/_jsxs(HStack, {
40
- alignment: "top",
41
- justify: "space-between",
42
- className: "dataviews__view-actions",
43
- spacing: 1,
44
- children: [/*#__PURE__*/_jsxs(HStack, {
45
- justify: "start",
46
- expanded: false,
47
- className: "dataviews__search",
48
- children: [search && /*#__PURE__*/_jsx(DataViewsSearch, {
49
- label: searchLabel
50
- }), /*#__PURE__*/_jsx(FiltersToggle, {})]
51
- }), /*#__PURE__*/_jsxs(HStack, {
34
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
35
+ /* @__PURE__ */ jsxs(
36
+ HStack,
37
+ {
38
+ alignment: "top",
39
+ justify: "space-between",
40
+ className: "dataviews__view-actions",
52
41
  spacing: 1,
53
- expanded: false,
54
- style: {
55
- flexShrink: 0
56
- },
57
- children: [/*#__PURE__*/_jsx(DataViewsViewConfig, {}), header]
58
- })]
59
- }), isShowingFilter && /*#__PURE__*/_jsx(DataViewsFilters, {
60
- className: "dataviews-filters__container"
61
- }), /*#__PURE__*/_jsx(DataViewsLayout, {}), /*#__PURE__*/_jsx(DataViewsFooter, {})]
62
- });
42
+ children: [
43
+ /* @__PURE__ */ jsxs(
44
+ HStack,
45
+ {
46
+ justify: "start",
47
+ expanded: false,
48
+ className: "dataviews__search",
49
+ children: [
50
+ search && /* @__PURE__ */ jsx(DataViewsSearch, { label: searchLabel }),
51
+ /* @__PURE__ */ jsx(FiltersToggle, {})
52
+ ]
53
+ }
54
+ ),
55
+ /* @__PURE__ */ jsxs(
56
+ HStack,
57
+ {
58
+ spacing: 1,
59
+ expanded: false,
60
+ style: { flexShrink: 0 },
61
+ children: [
62
+ /* @__PURE__ */ jsx(DataViewsViewConfig, {}),
63
+ header
64
+ ]
65
+ }
66
+ )
67
+ ]
68
+ }
69
+ ),
70
+ /* @__PURE__ */ jsx(FiltersToggled, { className: "dataviews-filters__container" }),
71
+ /* @__PURE__ */ jsx(DataViewsLayout, {}),
72
+ /* @__PURE__ */ jsx(DataViewsFooter, {})
73
+ ] });
63
74
  }
64
75
  function DataViews({
65
76
  view,
66
77
  onChangeView,
67
78
  fields,
68
79
  search = true,
69
- searchLabel = undefined,
80
+ searchLabel = void 0,
70
81
  actions = EMPTY_ARRAY,
71
82
  data,
72
83
  getItemId = defaultGetItemId,
@@ -81,27 +92,26 @@ function DataViews({
81
92
  isItemClickable = defaultIsItemClickable,
82
93
  header,
83
94
  children,
84
- config = {
85
- perPageSizes: [10, 20, 50, 100]
86
- },
95
+ config = { perPageSizes: [10, 20, 50, 100] },
87
96
  empty
88
97
  }) {
89
- const {
90
- infiniteScrollHandler
91
- } = paginationInfo;
98
+ const { infiniteScrollHandler } = paginationInfo;
92
99
  const containerRef = useRef(null);
93
100
  const [containerWidth, setContainerWidth] = useState(0);
94
- const resizeObserverRef = useResizeObserver(resizeObserverEntries => {
95
- setContainerWidth(resizeObserverEntries[0].borderBoxSize[0].inlineSize);
96
- }, {
97
- box: 'border-box'
98
- });
101
+ const resizeObserverRef = useResizeObserver(
102
+ (resizeObserverEntries) => {
103
+ setContainerWidth(
104
+ resizeObserverEntries[0].borderBoxSize[0].inlineSize
105
+ );
106
+ },
107
+ { box: "border-box" }
108
+ );
99
109
  const [selectionState, setSelectionState] = useState([]);
100
- const isUncontrolled = selectionProperty === undefined || onChangeSelection === undefined;
110
+ const isUncontrolled = selectionProperty === void 0 || onChangeSelection === void 0;
101
111
  const selection = isUncontrolled ? selectionState : selectionProperty;
102
112
  const [openedFilter, setOpenedFilter] = useState(null);
103
113
  function setSelectionWithChange(value) {
104
- const newValue = typeof value === 'function' ? value(selection) : value;
114
+ const newValue = typeof value === "function" ? value(selection) : value;
105
115
  if (isUncontrolled) {
106
116
  setSelectionState(newValue);
107
117
  }
@@ -111,94 +121,106 @@ function DataViews({
111
121
  }
112
122
  const _fields = useMemo(() => normalizeFields(fields), [fields]);
113
123
  const _selection = useMemo(() => {
114
- return selection.filter(id => data.some(item => getItemId(item) === id));
124
+ return selection.filter(
125
+ (id) => data.some((item) => getItemId(item) === id)
126
+ );
115
127
  }, [selection, data, getItemId]);
116
128
  const filters = useFilters(_fields, view);
117
- const hasPrimaryOrLockedFilters = useMemo(() => (filters || []).some(filter => filter.isPrimary || filter.isLocked), [filters]);
118
- const [isShowingFilter, setIsShowingFilter] = useState(hasPrimaryOrLockedFilters);
129
+ const hasPrimaryOrLockedFilters = useMemo(
130
+ () => (filters || []).some(
131
+ (filter) => filter.isPrimary || filter.isLocked
132
+ ),
133
+ [filters]
134
+ );
135
+ const [isShowingFilter, setIsShowingFilter] = useState(
136
+ hasPrimaryOrLockedFilters
137
+ );
119
138
  useEffect(() => {
120
139
  if (hasPrimaryOrLockedFilters && !isShowingFilter) {
121
140
  setIsShowingFilter(true);
122
141
  }
123
142
  }, [hasPrimaryOrLockedFilters, isShowingFilter]);
124
-
125
- // Attach scroll event listener for infinite scroll
126
143
  useEffect(() => {
127
144
  if (!view.infiniteScrollEnabled || !containerRef.current) {
128
145
  return;
129
146
  }
130
- const handleScroll = throttle(event => {
147
+ const handleScroll = throttle((event) => {
131
148
  const target = event.target;
132
149
  const scrollTop = target.scrollTop;
133
150
  const scrollHeight = target.scrollHeight;
134
151
  const clientHeight = target.clientHeight;
135
-
136
- // Check if user has scrolled near the bottom
137
152
  if (scrollTop + clientHeight >= scrollHeight - 100) {
138
153
  infiniteScrollHandler?.();
139
154
  }
140
- }, 100); // Throttle to 100ms
141
-
155
+ }, 100);
142
156
  const container = containerRef.current;
143
- container.addEventListener('scroll', handleScroll);
157
+ container.addEventListener("scroll", handleScroll);
144
158
  return () => {
145
- container.removeEventListener('scroll', handleScroll);
146
- handleScroll.cancel(); // Cancel any pending throttled calls
159
+ container.removeEventListener("scroll", handleScroll);
160
+ handleScroll.cancel();
147
161
  };
148
162
  }, [infiniteScrollHandler, view.infiniteScrollEnabled]);
149
-
150
- // Filter out DataViewsPicker layouts.
151
- const defaultLayouts = useMemo(() => Object.fromEntries(Object.entries(defaultLayoutsProperty).filter(([layoutType]) => {
152
- return dataViewsLayouts.some(viewLayout => viewLayout.type === layoutType);
153
- })), [defaultLayoutsProperty]);
163
+ const defaultLayouts = useMemo(
164
+ () => Object.fromEntries(
165
+ Object.entries(defaultLayoutsProperty).filter(
166
+ ([layoutType]) => {
167
+ return dataViewsLayouts.some(
168
+ (viewLayout) => viewLayout.type === layoutType
169
+ );
170
+ }
171
+ )
172
+ ),
173
+ [defaultLayoutsProperty]
174
+ );
154
175
  if (!defaultLayouts[view.type]) {
155
176
  return null;
156
177
  }
157
- return /*#__PURE__*/_jsx(DataViewsContext.Provider, {
158
- value: {
159
- view,
160
- onChangeView,
161
- fields: _fields,
162
- actions,
163
- data,
164
- isLoading,
165
- paginationInfo,
166
- selection: _selection,
167
- onChangeSelection: setSelectionWithChange,
168
- openedFilter,
169
- setOpenedFilter,
170
- getItemId,
171
- getItemLevel,
172
- isItemClickable,
173
- onClickItem,
174
- renderItemLink,
175
- containerWidth,
176
- containerRef,
177
- resizeObserverRef,
178
- defaultLayouts,
179
- filters,
180
- isShowingFilter,
181
- setIsShowingFilter,
182
- config,
183
- empty,
184
- hasInfiniteScrollHandler: !!infiniteScrollHandler
185
- },
186
- children: /*#__PURE__*/_jsx("div", {
187
- className: "dataviews-wrapper",
188
- ref: containerRef,
189
- children: children !== null && children !== void 0 ? children : /*#__PURE__*/_jsx(DefaultUI, {
190
- header: header,
191
- search: search,
192
- searchLabel: searchLabel
193
- })
194
- })
195
- });
178
+ return /* @__PURE__ */ jsx(
179
+ DataViewsContext.Provider,
180
+ {
181
+ value: {
182
+ view,
183
+ onChangeView,
184
+ fields: _fields,
185
+ actions,
186
+ data,
187
+ isLoading,
188
+ paginationInfo,
189
+ selection: _selection,
190
+ onChangeSelection: setSelectionWithChange,
191
+ openedFilter,
192
+ setOpenedFilter,
193
+ getItemId,
194
+ getItemLevel,
195
+ isItemClickable,
196
+ onClickItem,
197
+ renderItemLink,
198
+ containerWidth,
199
+ containerRef,
200
+ resizeObserverRef,
201
+ defaultLayouts,
202
+ filters,
203
+ isShowingFilter,
204
+ setIsShowingFilter,
205
+ config,
206
+ empty,
207
+ hasInfiniteScrollHandler: !!infiniteScrollHandler
208
+ },
209
+ children: /* @__PURE__ */ jsx("div", { className: "dataviews-wrapper", ref: containerRef, children: children ?? /* @__PURE__ */ jsx(
210
+ DefaultUI,
211
+ {
212
+ header,
213
+ search,
214
+ searchLabel
215
+ }
216
+ ) })
217
+ }
218
+ );
196
219
  }
197
-
198
- // Populate the DataViews sub components
199
220
  const DataViewsSubComponents = DataViews;
200
221
  DataViewsSubComponents.BulkActionToolbar = BulkActionsFooter;
201
- DataViewsSubComponents.Filters = DataViewsFilters;
222
+ DataViewsSubComponents.Filters = Filters;
223
+ DataViewsSubComponents.FiltersToggled = FiltersToggled;
202
224
  DataViewsSubComponents.FiltersToggle = FiltersToggle;
203
225
  DataViewsSubComponents.Layout = DataViewsLayout;
204
226
  DataViewsSubComponents.LayoutSwitcher = ViewTypeMenu;
@@ -206,5 +228,8 @@ DataViewsSubComponents.Pagination = DataViewsPagination;
206
228
  DataViewsSubComponents.Search = DataViewsSearch;
207
229
  DataViewsSubComponents.ViewConfig = DataviewsViewConfigDropdown;
208
230
  DataViewsSubComponents.Footer = DataViewsFooter;
209
- export default DataViewsSubComponents;
210
- //# sourceMappingURL=index.js.map
231
+ var dataviews_default = DataViewsSubComponents;
232
+ export {
233
+ dataviews_default as default
234
+ };
235
+ //# sourceMappingURL=index.js.map
@@ -1 +1,7 @@
1
- {"version":3,"names":["__experimentalHStack","HStack","useContext","useEffect","useMemo","useRef","useState","useResizeObserver","throttle","DataViewsContext","VIEW_LAYOUTS","default","DataViewsFilters","useFilters","FiltersToggle","DataViewsLayout","DataViewsFooter","DataViewsSearch","BulkActionsFooter","DataViewsPagination","DataViewsViewConfig","DataviewsViewConfigDropdown","ViewTypeMenu","normalizeFields","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","defaultGetItemId","item","id","defaultIsItemClickable","EMPTY_ARRAY","dataViewsLayouts","filter","viewLayout","isPicker","DefaultUI","header","search","searchLabel","undefined","isShowingFilter","children","alignment","justify","className","spacing","expanded","label","style","flexShrink","DataViews","view","onChangeView","fields","actions","data","getItemId","getItemLevel","isLoading","paginationInfo","defaultLayouts","defaultLayoutsProperty","selection","selectionProperty","onChangeSelection","onClickItem","renderItemLink","isItemClickable","config","perPageSizes","empty","infiniteScrollHandler","containerRef","containerWidth","setContainerWidth","resizeObserverRef","resizeObserverEntries","borderBoxSize","inlineSize","box","selectionState","setSelectionState","isUncontrolled","openedFilter","setOpenedFilter","setSelectionWithChange","value","newValue","_fields","_selection","some","filters","hasPrimaryOrLockedFilters","isPrimary","isLocked","setIsShowingFilter","infiniteScrollEnabled","current","handleScroll","event","target","scrollTop","scrollHeight","clientHeight","container","addEventListener","removeEventListener","cancel","Object","fromEntries","entries","layoutType","type","Provider","hasInfiniteScrollHandler","ref","DataViewsSubComponents","BulkActionToolbar","Filters","Layout","LayoutSwitcher","Pagination","Search","ViewConfig","Footer"],"sources":["@wordpress/dataviews/src/components/dataviews/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode, ComponentProps, ReactElement } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __experimentalHStack as HStack } from '@wordpress/components';\nimport {\n\tuseContext,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from '@wordpress/element';\nimport { useResizeObserver, throttle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport { VIEW_LAYOUTS } from '../../dataviews-layouts';\nimport {\n\tdefault as DataViewsFilters,\n\tuseFilters,\n\tFiltersToggle,\n} from '../dataviews-filters';\nimport DataViewsLayout from '../dataviews-layout';\nimport DataViewsFooter from '../dataviews-footer';\nimport DataViewsSearch from '../dataviews-search';\nimport { BulkActionsFooter } from '../dataviews-bulk-actions';\nimport { DataViewsPagination } from '../dataviews-pagination';\nimport DataViewsViewConfig, {\n\tDataviewsViewConfigDropdown,\n\tViewTypeMenu,\n} from '../dataviews-view-config';\nimport { normalizeFields } from '../../normalize-fields';\nimport type { Action, Field, View, SupportedLayouts } from '../../types';\nimport type { SelectionOrUpdater } from '../../private-types';\ntype ItemWithId = { id: string };\n\ntype DataViewsProps< Item > = {\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tfields: Field< Item >[];\n\tsearch?: boolean;\n\tsearchLabel?: string;\n\tactions?: Action< Item >[];\n\tdata: Item[];\n\tisLoading?: boolean;\n\tpaginationInfo: {\n\t\ttotalItems: number;\n\t\ttotalPages: number;\n\t\tinfiniteScrollHandler?: () => void;\n\t};\n\tdefaultLayouts: SupportedLayouts;\n\tselection?: string[];\n\tonChangeSelection?: ( items: string[] ) => void;\n\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\theader?: ReactNode;\n\tgetItemLevel?: ( item: Item ) => number;\n\tchildren?: ReactNode;\n\tconfig?: {\n\t\tperPageSizes: number[];\n\t};\n\tempty?: ReactNode;\n} & ( Item extends ItemWithId\n\t? { getItemId?: ( item: Item ) => string }\n\t: { getItemId: ( item: Item ) => string } );\n\nconst defaultGetItemId = ( item: ItemWithId ) => item.id;\nconst defaultIsItemClickable = () => true;\nconst EMPTY_ARRAY: any[] = [];\n\nconst dataViewsLayouts = VIEW_LAYOUTS.filter(\n\t( viewLayout ) => ! viewLayout.isPicker\n);\n\ntype DefaultUIProps = Pick<\n\tDataViewsProps< any >,\n\t'header' | 'search' | 'searchLabel'\n>;\n\nfunction DefaultUI( {\n\theader,\n\tsearch = true,\n\tsearchLabel = undefined,\n}: DefaultUIProps ) {\n\tconst { isShowingFilter } = useContext( DataViewsContext );\n\treturn (\n\t\t<>\n\t\t\t<HStack\n\t\t\t\talignment=\"top\"\n\t\t\t\tjustify=\"space-between\"\n\t\t\t\tclassName=\"dataviews__view-actions\"\n\t\t\t\tspacing={ 1 }\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\tjustify=\"start\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t\tclassName=\"dataviews__search\"\n\t\t\t\t>\n\t\t\t\t\t{ search && <DataViewsSearch label={ searchLabel } /> }\n\t\t\t\t\t<FiltersToggle />\n\t\t\t\t</HStack>\n\t\t\t\t<HStack\n\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\texpanded={ false }\n\t\t\t\t\tstyle={ { flexShrink: 0 } }\n\t\t\t\t>\n\t\t\t\t\t<DataViewsViewConfig />\n\t\t\t\t\t{ header }\n\t\t\t\t</HStack>\n\t\t\t</HStack>\n\t\t\t{ isShowingFilter && (\n\t\t\t\t<DataViewsFilters className=\"dataviews-filters__container\" />\n\t\t\t) }\n\t\t\t<DataViewsLayout />\n\t\t\t<DataViewsFooter />\n\t\t</>\n\t);\n}\n\nfunction DataViews< Item >( {\n\tview,\n\tonChangeView,\n\tfields,\n\tsearch = true,\n\tsearchLabel = undefined,\n\tactions = EMPTY_ARRAY,\n\tdata,\n\tgetItemId = defaultGetItemId,\n\tgetItemLevel,\n\tisLoading = false,\n\tpaginationInfo,\n\tdefaultLayouts: defaultLayoutsProperty,\n\tselection: selectionProperty,\n\tonChangeSelection,\n\tonClickItem,\n\trenderItemLink,\n\tisItemClickable = defaultIsItemClickable,\n\theader,\n\tchildren,\n\tconfig = { perPageSizes: [ 10, 20, 50, 100 ] },\n\tempty,\n}: DataViewsProps< Item > ) {\n\tconst { infiniteScrollHandler } = paginationInfo;\n\tconst containerRef = useRef< HTMLDivElement | null >( null );\n\tconst [ containerWidth, setContainerWidth ] = useState( 0 );\n\tconst resizeObserverRef = useResizeObserver(\n\t\t( resizeObserverEntries: any ) => {\n\t\t\tsetContainerWidth(\n\t\t\t\tresizeObserverEntries[ 0 ].borderBoxSize[ 0 ].inlineSize\n\t\t\t);\n\t\t},\n\t\t{ box: 'border-box' }\n\t);\n\tconst [ selectionState, setSelectionState ] = useState< string[] >( [] );\n\tconst isUncontrolled =\n\t\tselectionProperty === undefined || onChangeSelection === undefined;\n\tconst selection = isUncontrolled ? selectionState : selectionProperty;\n\tconst [ openedFilter, setOpenedFilter ] = useState< string | null >( null );\n\tfunction setSelectionWithChange( value: SelectionOrUpdater ) {\n\t\tconst newValue =\n\t\t\ttypeof value === 'function' ? value( selection ) : value;\n\t\tif ( isUncontrolled ) {\n\t\t\tsetSelectionState( newValue );\n\t\t}\n\t\tif ( onChangeSelection ) {\n\t\t\tonChangeSelection( newValue );\n\t\t}\n\t}\n\tconst _fields = useMemo( () => normalizeFields( fields ), [ fields ] );\n\tconst _selection = useMemo( () => {\n\t\treturn selection.filter( ( id ) =>\n\t\t\tdata.some( ( item ) => getItemId( item ) === id )\n\t\t);\n\t}, [ selection, data, getItemId ] );\n\n\tconst filters = useFilters( _fields, view );\n\tconst hasPrimaryOrLockedFilters = useMemo(\n\t\t() =>\n\t\t\t( filters || [] ).some(\n\t\t\t\t( filter ) => filter.isPrimary || filter.isLocked\n\t\t\t),\n\t\t[ filters ]\n\t);\n\tconst [ isShowingFilter, setIsShowingFilter ] = useState< boolean >(\n\t\thasPrimaryOrLockedFilters\n\t);\n\n\tuseEffect( () => {\n\t\tif ( hasPrimaryOrLockedFilters && ! isShowingFilter ) {\n\t\t\tsetIsShowingFilter( true );\n\t\t}\n\t}, [ hasPrimaryOrLockedFilters, isShowingFilter ] );\n\n\t// Attach scroll event listener for infinite scroll\n\tuseEffect( () => {\n\t\tif ( ! view.infiniteScrollEnabled || ! containerRef.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst handleScroll = throttle( ( event: unknown ) => {\n\t\t\tconst target = ( event as Event ).target as HTMLElement;\n\t\t\tconst scrollTop = target.scrollTop;\n\t\t\tconst scrollHeight = target.scrollHeight;\n\t\t\tconst clientHeight = target.clientHeight;\n\n\t\t\t// Check if user has scrolled near the bottom\n\t\t\tif ( scrollTop + clientHeight >= scrollHeight - 100 ) {\n\t\t\t\tinfiniteScrollHandler?.();\n\t\t\t}\n\t\t}, 100 ); // Throttle to 100ms\n\n\t\tconst container = containerRef.current;\n\t\tcontainer.addEventListener( 'scroll', handleScroll );\n\n\t\treturn () => {\n\t\t\tcontainer.removeEventListener( 'scroll', handleScroll );\n\t\t\thandleScroll.cancel(); // Cancel any pending throttled calls\n\t\t};\n\t}, [ infiniteScrollHandler, view.infiniteScrollEnabled ] );\n\n\t// Filter out DataViewsPicker layouts.\n\tconst defaultLayouts = useMemo(\n\t\t() =>\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries( defaultLayoutsProperty ).filter(\n\t\t\t\t\t( [ layoutType ] ) => {\n\t\t\t\t\t\treturn dataViewsLayouts.some(\n\t\t\t\t\t\t\t( viewLayout ) => viewLayout.type === layoutType\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t),\n\t\t[ defaultLayoutsProperty ]\n\t);\n\n\tif ( ! defaultLayouts[ view.type ] ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<DataViewsContext.Provider\n\t\t\tvalue={ {\n\t\t\t\tview,\n\t\t\t\tonChangeView,\n\t\t\t\tfields: _fields,\n\t\t\t\tactions,\n\t\t\t\tdata,\n\t\t\t\tisLoading,\n\t\t\t\tpaginationInfo,\n\t\t\t\tselection: _selection,\n\t\t\t\tonChangeSelection: setSelectionWithChange,\n\t\t\t\topenedFilter,\n\t\t\t\tsetOpenedFilter,\n\t\t\t\tgetItemId,\n\t\t\t\tgetItemLevel,\n\t\t\t\tisItemClickable,\n\t\t\t\tonClickItem,\n\t\t\t\trenderItemLink,\n\t\t\t\tcontainerWidth,\n\t\t\t\tcontainerRef,\n\t\t\t\tresizeObserverRef,\n\t\t\t\tdefaultLayouts,\n\t\t\t\tfilters,\n\t\t\t\tisShowingFilter,\n\t\t\t\tsetIsShowingFilter,\n\t\t\t\tconfig,\n\t\t\t\tempty,\n\t\t\t\thasInfiniteScrollHandler: !! infiniteScrollHandler,\n\t\t\t} }\n\t\t>\n\t\t\t<div className=\"dataviews-wrapper\" ref={ containerRef }>\n\t\t\t\t{ children ?? (\n\t\t\t\t\t<DefaultUI\n\t\t\t\t\t\theader={ header }\n\t\t\t\t\t\tsearch={ search }\n\t\t\t\t\t\tsearchLabel={ searchLabel }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</DataViewsContext.Provider>\n\t);\n}\n\n// Populate the DataViews sub components\nconst DataViewsSubComponents = DataViews as typeof DataViews & {\n\tBulkActionToolbar: typeof BulkActionsFooter;\n\tFilters: typeof DataViewsFilters;\n\tFiltersToggle: typeof FiltersToggle;\n\tLayout: typeof DataViewsLayout;\n\tLayoutSwitcher: typeof ViewTypeMenu;\n\tPagination: typeof DataViewsPagination;\n\tSearch: typeof DataViewsSearch;\n\tViewConfig: typeof DataviewsViewConfigDropdown;\n\tFooter: typeof DataViewsFooter;\n};\n\nDataViewsSubComponents.BulkActionToolbar = BulkActionsFooter;\nDataViewsSubComponents.Filters = DataViewsFilters;\nDataViewsSubComponents.FiltersToggle = FiltersToggle;\nDataViewsSubComponents.Layout = DataViewsLayout;\nDataViewsSubComponents.LayoutSwitcher = ViewTypeMenu;\nDataViewsSubComponents.Pagination = DataViewsPagination;\nDataViewsSubComponents.Search = DataViewsSearch;\nDataViewsSubComponents.ViewConfig = DataviewsViewConfigDropdown;\nDataViewsSubComponents.Footer = DataViewsFooter;\n\nexport default DataViewsSubComponents;\n"],"mappings":"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","ignoreList":[]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/dataviews/index.tsx"],
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport type { ReactNode, ComponentProps, ReactElement } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __experimentalHStack as HStack } from '@wordpress/components';\nimport { useEffect, useMemo, useRef, useState } from '@wordpress/element';\nimport { useResizeObserver, throttle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport { VIEW_LAYOUTS } from '../../dataviews-layouts';\nimport {\n\tFilters,\n\tFiltersToggled,\n\tuseFilters,\n\tFiltersToggle,\n} from '../dataviews-filters';\nimport DataViewsLayout from '../dataviews-layout';\nimport DataViewsFooter from '../dataviews-footer';\nimport DataViewsSearch from '../dataviews-search';\nimport { BulkActionsFooter } from '../dataviews-bulk-actions';\nimport { DataViewsPagination } from '../dataviews-pagination';\nimport DataViewsViewConfig, {\n\tDataviewsViewConfigDropdown,\n\tViewTypeMenu,\n} from '../dataviews-view-config';\nimport normalizeFields from '../../utils/normalize-fields';\nimport type { Action, Field, View, SupportedLayouts } from '../../types';\nimport type { SelectionOrUpdater } from '../../types/private';\ntype ItemWithId = { id: string };\n\ntype DataViewsProps< Item > = {\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tfields: Field< Item >[];\n\tsearch?: boolean;\n\tsearchLabel?: string;\n\tactions?: Action< Item >[];\n\tdata: Item[];\n\tisLoading?: boolean;\n\tpaginationInfo: {\n\t\ttotalItems: number;\n\t\ttotalPages: number;\n\t\tinfiniteScrollHandler?: () => void;\n\t};\n\tdefaultLayouts: SupportedLayouts;\n\tselection?: string[];\n\tonChangeSelection?: ( items: string[] ) => void;\n\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\theader?: ReactNode;\n\tgetItemLevel?: ( item: Item ) => number;\n\tchildren?: ReactNode;\n\tconfig?: {\n\t\tperPageSizes: number[];\n\t};\n\tempty?: ReactNode;\n} & ( Item extends ItemWithId\n\t? { getItemId?: ( item: Item ) => string }\n\t: { getItemId: ( item: Item ) => string } );\n\nconst defaultGetItemId = ( item: ItemWithId ) => item.id;\nconst defaultIsItemClickable = () => true;\nconst EMPTY_ARRAY: any[] = [];\n\nconst dataViewsLayouts = VIEW_LAYOUTS.filter(\n\t( viewLayout ) => ! viewLayout.isPicker\n);\n\ntype DefaultUIProps = Pick<\n\tDataViewsProps< any >,\n\t'header' | 'search' | 'searchLabel'\n>;\n\nfunction DefaultUI( {\n\theader,\n\tsearch = true,\n\tsearchLabel = undefined,\n}: DefaultUIProps ) {\n\treturn (\n\t\t<>\n\t\t\t<HStack\n\t\t\t\talignment=\"top\"\n\t\t\t\tjustify=\"space-between\"\n\t\t\t\tclassName=\"dataviews__view-actions\"\n\t\t\t\tspacing={ 1 }\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\tjustify=\"start\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t\tclassName=\"dataviews__search\"\n\t\t\t\t>\n\t\t\t\t\t{ search && <DataViewsSearch label={ searchLabel } /> }\n\t\t\t\t\t<FiltersToggle />\n\t\t\t\t</HStack>\n\t\t\t\t<HStack\n\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\texpanded={ false }\n\t\t\t\t\tstyle={ { flexShrink: 0 } }\n\t\t\t\t>\n\t\t\t\t\t<DataViewsViewConfig />\n\t\t\t\t\t{ header }\n\t\t\t\t</HStack>\n\t\t\t</HStack>\n\t\t\t<FiltersToggled className=\"dataviews-filters__container\" />\n\t\t\t<DataViewsLayout />\n\t\t\t<DataViewsFooter />\n\t\t</>\n\t);\n}\n\nfunction DataViews< Item >( {\n\tview,\n\tonChangeView,\n\tfields,\n\tsearch = true,\n\tsearchLabel = undefined,\n\tactions = EMPTY_ARRAY,\n\tdata,\n\tgetItemId = defaultGetItemId,\n\tgetItemLevel,\n\tisLoading = false,\n\tpaginationInfo,\n\tdefaultLayouts: defaultLayoutsProperty,\n\tselection: selectionProperty,\n\tonChangeSelection,\n\tonClickItem,\n\trenderItemLink,\n\tisItemClickable = defaultIsItemClickable,\n\theader,\n\tchildren,\n\tconfig = { perPageSizes: [ 10, 20, 50, 100 ] },\n\tempty,\n}: DataViewsProps< Item > ) {\n\tconst { infiniteScrollHandler } = paginationInfo;\n\tconst containerRef = useRef< HTMLDivElement | null >( null );\n\tconst [ containerWidth, setContainerWidth ] = useState( 0 );\n\tconst resizeObserverRef = useResizeObserver(\n\t\t( resizeObserverEntries: any ) => {\n\t\t\tsetContainerWidth(\n\t\t\t\tresizeObserverEntries[ 0 ].borderBoxSize[ 0 ].inlineSize\n\t\t\t);\n\t\t},\n\t\t{ box: 'border-box' }\n\t);\n\tconst [ selectionState, setSelectionState ] = useState< string[] >( [] );\n\tconst isUncontrolled =\n\t\tselectionProperty === undefined || onChangeSelection === undefined;\n\tconst selection = isUncontrolled ? selectionState : selectionProperty;\n\tconst [ openedFilter, setOpenedFilter ] = useState< string | null >( null );\n\tfunction setSelectionWithChange( value: SelectionOrUpdater ) {\n\t\tconst newValue =\n\t\t\ttypeof value === 'function' ? value( selection ) : value;\n\t\tif ( isUncontrolled ) {\n\t\t\tsetSelectionState( newValue );\n\t\t}\n\t\tif ( onChangeSelection ) {\n\t\t\tonChangeSelection( newValue );\n\t\t}\n\t}\n\tconst _fields = useMemo( () => normalizeFields( fields ), [ fields ] );\n\tconst _selection = useMemo( () => {\n\t\treturn selection.filter( ( id ) =>\n\t\t\tdata.some( ( item ) => getItemId( item ) === id )\n\t\t);\n\t}, [ selection, data, getItemId ] );\n\n\tconst filters = useFilters( _fields, view );\n\tconst hasPrimaryOrLockedFilters = useMemo(\n\t\t() =>\n\t\t\t( filters || [] ).some(\n\t\t\t\t( filter ) => filter.isPrimary || filter.isLocked\n\t\t\t),\n\t\t[ filters ]\n\t);\n\tconst [ isShowingFilter, setIsShowingFilter ] = useState< boolean >(\n\t\thasPrimaryOrLockedFilters\n\t);\n\n\tuseEffect( () => {\n\t\tif ( hasPrimaryOrLockedFilters && ! isShowingFilter ) {\n\t\t\tsetIsShowingFilter( true );\n\t\t}\n\t}, [ hasPrimaryOrLockedFilters, isShowingFilter ] );\n\n\t// Attach scroll event listener for infinite scroll\n\tuseEffect( () => {\n\t\tif ( ! view.infiniteScrollEnabled || ! containerRef.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst handleScroll = throttle( ( event: unknown ) => {\n\t\t\tconst target = ( event as Event ).target as HTMLElement;\n\t\t\tconst scrollTop = target.scrollTop;\n\t\t\tconst scrollHeight = target.scrollHeight;\n\t\t\tconst clientHeight = target.clientHeight;\n\n\t\t\t// Check if user has scrolled near the bottom\n\t\t\tif ( scrollTop + clientHeight >= scrollHeight - 100 ) {\n\t\t\t\tinfiniteScrollHandler?.();\n\t\t\t}\n\t\t}, 100 ); // Throttle to 100ms\n\n\t\tconst container = containerRef.current;\n\t\tcontainer.addEventListener( 'scroll', handleScroll );\n\n\t\treturn () => {\n\t\t\tcontainer.removeEventListener( 'scroll', handleScroll );\n\t\t\thandleScroll.cancel(); // Cancel any pending throttled calls\n\t\t};\n\t}, [ infiniteScrollHandler, view.infiniteScrollEnabled ] );\n\n\t// Filter out DataViewsPicker layouts.\n\tconst defaultLayouts = useMemo(\n\t\t() =>\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries( defaultLayoutsProperty ).filter(\n\t\t\t\t\t( [ layoutType ] ) => {\n\t\t\t\t\t\treturn dataViewsLayouts.some(\n\t\t\t\t\t\t\t( viewLayout ) => viewLayout.type === layoutType\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t),\n\t\t[ defaultLayoutsProperty ]\n\t);\n\n\tif ( ! defaultLayouts[ view.type ] ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<DataViewsContext.Provider\n\t\t\tvalue={ {\n\t\t\t\tview,\n\t\t\t\tonChangeView,\n\t\t\t\tfields: _fields,\n\t\t\t\tactions,\n\t\t\t\tdata,\n\t\t\t\tisLoading,\n\t\t\t\tpaginationInfo,\n\t\t\t\tselection: _selection,\n\t\t\t\tonChangeSelection: setSelectionWithChange,\n\t\t\t\topenedFilter,\n\t\t\t\tsetOpenedFilter,\n\t\t\t\tgetItemId,\n\t\t\t\tgetItemLevel,\n\t\t\t\tisItemClickable,\n\t\t\t\tonClickItem,\n\t\t\t\trenderItemLink,\n\t\t\t\tcontainerWidth,\n\t\t\t\tcontainerRef,\n\t\t\t\tresizeObserverRef,\n\t\t\t\tdefaultLayouts,\n\t\t\t\tfilters,\n\t\t\t\tisShowingFilter,\n\t\t\t\tsetIsShowingFilter,\n\t\t\t\tconfig,\n\t\t\t\tempty,\n\t\t\t\thasInfiniteScrollHandler: !! infiniteScrollHandler,\n\t\t\t} }\n\t\t>\n\t\t\t<div className=\"dataviews-wrapper\" ref={ containerRef }>\n\t\t\t\t{ children ?? (\n\t\t\t\t\t<DefaultUI\n\t\t\t\t\t\theader={ header }\n\t\t\t\t\t\tsearch={ search }\n\t\t\t\t\t\tsearchLabel={ searchLabel }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</DataViewsContext.Provider>\n\t);\n}\n\n// Populate the DataViews sub components\nconst DataViewsSubComponents = DataViews as typeof DataViews & {\n\tBulkActionToolbar: typeof BulkActionsFooter;\n\tFilters: typeof Filters;\n\tFiltersToggle: typeof FiltersToggle;\n\tFiltersToggled: typeof FiltersToggled;\n\tLayout: typeof DataViewsLayout;\n\tLayoutSwitcher: typeof ViewTypeMenu;\n\tPagination: typeof DataViewsPagination;\n\tSearch: typeof DataViewsSearch;\n\tViewConfig: typeof DataviewsViewConfigDropdown;\n\tFooter: typeof DataViewsFooter;\n};\n\nDataViewsSubComponents.BulkActionToolbar = BulkActionsFooter;\nDataViewsSubComponents.Filters = Filters;\nDataViewsSubComponents.FiltersToggled = FiltersToggled;\nDataViewsSubComponents.FiltersToggle = FiltersToggle;\nDataViewsSubComponents.Layout = DataViewsLayout;\nDataViewsSubComponents.LayoutSwitcher = ViewTypeMenu;\nDataViewsSubComponents.Pagination = DataViewsPagination;\nDataViewsSubComponents.Search = DataViewsSearch;\nDataViewsSubComponents.ViewConfig = DataviewsViewConfigDropdown;\nDataViewsSubComponents.Footer = DataViewsFooter;\n\nexport default DataViewsSubComponents;\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }