@wordpress/dataviews 9.1.1-next.233ccab9b.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 (787) hide show
  1. package/CHANGELOG.md +42 -1
  2. package/README.md +137 -36
  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 -154
  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 +39 -25
  18. package/build/components/dataviews-filters/filters-toggled.js.map +7 -1
  19. package/build/components/dataviews-filters/filters.js +95 -67
  20. package/build/components/dataviews-filters/filters.js.map +7 -1
  21. package/build/components/dataviews-filters/index.js +44 -31
  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 +88 -63
  30. package/build/components/dataviews-filters/toggle.js.map +7 -1
  31. package/build/components/dataviews-filters/use-filters.js +40 -29
  32. package/build/components/dataviews-filters/use-filters.js.map +7 -1
  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 -145
  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 -300
  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 +154 -127
  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 +11 -19
  224. package/build-module/components/dataviews-filters/filters-toggled.js.map +7 -1
  225. package/build-module/components/dataviews-filters/filters.js +65 -59
  226. package/build-module/components/dataviews-filters/filters.js.map +7 -1
  227. package/build-module/components/dataviews-filters/index.js +11 -5
  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 +58 -55
  236. package/build-module/components/dataviews-filters/toggle.js.map +7 -1
  237. package/build-module/components/dataviews-filters/use-filters.js +21 -23
  238. package/build-module/components/dataviews-filters/use-filters.js.map +7 -1
  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 +137 -121
  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 -291
  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-bulk-actions/index.d.ts +1 -1
  421. package/build-types/components/dataviews-bulk-actions/index.d.ts.map +1 -1
  422. package/build-types/components/dataviews-context/index.d.ts +1 -1
  423. package/build-types/components/dataviews-filters/filter.d.ts +1 -1
  424. package/build-types/components/dataviews-filters/filter.d.ts.map +1 -1
  425. package/build-types/components/dataviews-filters/search-widget.d.ts.map +1 -1
  426. package/build-types/components/dataviews-filters/use-filters.d.ts.map +1 -1
  427. package/build-types/components/dataviews-item-actions/index.d.ts.map +1 -1
  428. package/build-types/components/dataviews-picker/footer.d.ts.map +1 -1
  429. package/build-types/components/dataviews-selection-checkbox/index.d.ts +1 -1
  430. package/build-types/dataform-controls/array.d.ts +1 -1
  431. package/build-types/dataform-controls/array.d.ts.map +1 -1
  432. package/build-types/dataform-controls/checkbox.d.ts +1 -1
  433. package/build-types/dataform-controls/checkbox.d.ts.map +1 -1
  434. package/build-types/dataform-controls/color.d.ts +1 -1
  435. package/build-types/dataform-controls/color.d.ts.map +1 -1
  436. package/build-types/dataform-controls/date.d.ts +1 -1
  437. package/build-types/dataform-controls/date.d.ts.map +1 -1
  438. package/build-types/dataform-controls/datetime.d.ts +1 -1
  439. package/build-types/dataform-controls/datetime.d.ts.map +1 -1
  440. package/build-types/dataform-controls/email.d.ts +1 -1
  441. package/build-types/dataform-controls/email.d.ts.map +1 -1
  442. package/build-types/dataform-controls/index.d.ts.map +1 -1
  443. package/build-types/dataform-controls/integer.d.ts +4 -1
  444. package/build-types/dataform-controls/integer.d.ts.map +1 -1
  445. package/build-types/dataform-controls/number.d.ts +6 -0
  446. package/build-types/dataform-controls/number.d.ts.map +1 -0
  447. package/build-types/dataform-controls/password.d.ts +1 -1
  448. package/build-types/dataform-controls/password.d.ts.map +1 -1
  449. package/build-types/dataform-controls/radio.d.ts +1 -1
  450. package/build-types/dataform-controls/radio.d.ts.map +1 -1
  451. package/build-types/dataform-controls/select.d.ts +1 -1
  452. package/build-types/dataform-controls/select.d.ts.map +1 -1
  453. package/build-types/dataform-controls/telephone.d.ts +1 -1
  454. package/build-types/dataform-controls/telephone.d.ts.map +1 -1
  455. package/build-types/dataform-controls/text.d.ts +1 -1
  456. package/build-types/dataform-controls/text.d.ts.map +1 -1
  457. package/build-types/dataform-controls/textarea.d.ts +1 -1
  458. package/build-types/dataform-controls/textarea.d.ts.map +1 -1
  459. package/build-types/dataform-controls/toggle-group.d.ts +1 -1
  460. package/build-types/dataform-controls/toggle-group.d.ts.map +1 -1
  461. package/build-types/dataform-controls/toggle.d.ts +1 -1
  462. package/build-types/dataform-controls/toggle.d.ts.map +1 -1
  463. package/build-types/dataform-controls/url.d.ts +1 -1
  464. package/build-types/dataform-controls/url.d.ts.map +1 -1
  465. package/build-types/dataform-controls/utils/get-custom-validity.d.ts +9 -0
  466. package/build-types/dataform-controls/utils/get-custom-validity.d.ts.map +1 -0
  467. package/build-types/dataform-controls/utils/relative-date-control.d.ts +5 -0
  468. package/build-types/dataform-controls/utils/relative-date-control.d.ts.map +1 -0
  469. package/build-types/dataform-controls/utils/validated-input.d.ts +1 -1
  470. package/build-types/dataform-controls/utils/validated-input.d.ts.map +1 -1
  471. package/build-types/dataform-controls/utils/validated-number.d.ts +9 -0
  472. package/build-types/dataform-controls/utils/validated-number.d.ts.map +1 -0
  473. package/build-types/{dataforms-layouts → dataform-layouts}/card/index.d.ts +1 -1
  474. package/build-types/dataform-layouts/card/index.d.ts.map +1 -0
  475. package/build-types/{dataforms-layouts → dataform-layouts}/data-form-layout.d.ts +5 -3
  476. package/build-types/dataform-layouts/data-form-layout.d.ts.map +1 -0
  477. package/build-types/dataform-layouts/get-summary-fields.d.ts +12 -0
  478. package/build-types/dataform-layouts/get-summary-fields.d.ts.map +1 -0
  479. package/build-types/{dataforms-layouts → dataform-layouts}/index.d.ts +0 -5
  480. package/build-types/dataform-layouts/index.d.ts.map +1 -0
  481. package/build-types/dataform-layouts/is-combined-field.d.ts.map +1 -0
  482. package/build-types/{normalize-form-fields.d.ts → dataform-layouts/normalize-form-fields.d.ts} +1 -1
  483. package/build-types/dataform-layouts/normalize-form-fields.d.ts.map +1 -0
  484. package/build-types/{dataforms-layouts → dataform-layouts}/panel/dropdown.d.ts +8 -7
  485. package/build-types/dataform-layouts/panel/dropdown.d.ts.map +1 -0
  486. package/build-types/{dataforms-layouts → dataform-layouts}/panel/index.d.ts +1 -1
  487. package/build-types/dataform-layouts/panel/index.d.ts.map +1 -0
  488. package/build-types/{dataforms-layouts → dataform-layouts}/panel/modal.d.ts +5 -5
  489. package/build-types/dataform-layouts/panel/modal.d.ts.map +1 -0
  490. package/build-types/dataform-layouts/panel/summary-button.d.ts.map +1 -0
  491. package/build-types/{dataforms-layouts → dataform-layouts}/regular/index.d.ts +1 -1
  492. package/build-types/dataform-layouts/regular/index.d.ts.map +1 -0
  493. package/build-types/{dataforms-layouts → dataform-layouts}/row/index.d.ts +1 -1
  494. package/build-types/dataform-layouts/row/index.d.ts.map +1 -0
  495. package/build-types/dataviews-layouts/list/index.d.ts.map +1 -1
  496. package/build-types/dataviews-layouts/utils/item-click-wrapper.d.ts +1 -1
  497. package/build-types/dataviews-layouts/utils/item-click-wrapper.d.ts.map +1 -1
  498. package/build-types/field-types/array.d.ts.map +1 -1
  499. package/build-types/field-types/boolean.d.ts +2 -1
  500. package/build-types/field-types/boolean.d.ts.map +1 -1
  501. package/build-types/field-types/color.d.ts +2 -1
  502. package/build-types/field-types/color.d.ts.map +1 -1
  503. package/build-types/field-types/date.d.ts +4 -3
  504. package/build-types/field-types/date.d.ts.map +1 -1
  505. package/build-types/field-types/datetime.d.ts +3 -2
  506. package/build-types/field-types/datetime.d.ts.map +1 -1
  507. package/build-types/field-types/email.d.ts +3 -2
  508. package/build-types/field-types/email.d.ts.map +1 -1
  509. package/build-types/field-types/index.d.ts.map +1 -1
  510. package/build-types/field-types/integer.d.ts +2 -1
  511. package/build-types/field-types/integer.d.ts.map +1 -1
  512. package/build-types/field-types/media.d.ts +2 -5
  513. package/build-types/field-types/media.d.ts.map +1 -1
  514. package/build-types/field-types/number.d.ts +21 -0
  515. package/build-types/field-types/number.d.ts.map +1 -0
  516. package/build-types/field-types/password.d.ts +4 -3
  517. package/build-types/field-types/password.d.ts.map +1 -1
  518. package/build-types/field-types/telephone.d.ts +4 -3
  519. package/build-types/field-types/telephone.d.ts.map +1 -1
  520. package/build-types/field-types/text.d.ts +4 -3
  521. package/build-types/field-types/text.d.ts.map +1 -1
  522. package/build-types/field-types/url.d.ts +4 -3
  523. package/build-types/field-types/url.d.ts.map +1 -1
  524. package/build-types/field-types/utils/render-from-elements.d.ts +6 -0
  525. package/build-types/field-types/utils/render-from-elements.d.ts.map +1 -0
  526. package/build-types/hooks/index.d.ts +5 -0
  527. package/build-types/hooks/index.d.ts.map +1 -0
  528. package/build-types/hooks/use-elements.d.ts +12 -0
  529. package/build-types/hooks/use-elements.d.ts.map +1 -0
  530. package/build-types/hooks/use-form-validity.d.ts +16 -0
  531. package/build-types/hooks/use-form-validity.d.ts.map +1 -0
  532. package/build-types/index.d.ts +2 -2
  533. package/build-types/index.d.ts.map +1 -1
  534. package/build-types/{components/dataform/stories/index.story.d.ts → stories/dataform.story.d.ts} +16 -6
  535. package/build-types/stories/dataform.story.d.ts.map +1 -0
  536. package/build-types/{components/dataviews-picker/stories/index.story.d.ts → stories/dataviews-picker.story.d.ts} +2 -2
  537. package/build-types/stories/dataviews-picker.story.d.ts.map +1 -0
  538. package/build-types/{components/dataviews/stories/fixtures.d.ts → stories/dataviews.fixtures.d.ts} +2 -2
  539. package/build-types/stories/dataviews.fixtures.d.ts.map +1 -0
  540. package/build-types/{components/dataviews/stories/index.story.d.ts → stories/dataviews.story.d.ts} +3 -3
  541. package/build-types/stories/dataviews.story.d.ts.map +1 -0
  542. package/build-types/stories/field-types.story.d.ts +157 -0
  543. package/build-types/stories/field-types.story.d.ts.map +1 -0
  544. package/build-types/test/use-form-validity.d.ts +2 -0
  545. package/build-types/test/use-form-validity.d.ts.map +1 -0
  546. package/build-types/types/dataform.d.ts +112 -0
  547. package/build-types/types/dataform.d.ts.map +1 -0
  548. package/build-types/types/dataviews.d.ts +341 -0
  549. package/build-types/types/dataviews.d.ts.map +1 -0
  550. package/build-types/types/field-api.d.ts +298 -0
  551. package/build-types/types/field-api.d.ts.map +1 -0
  552. package/build-types/types/index.d.ts +4 -0
  553. package/build-types/types/index.d.ts.map +1 -0
  554. package/build-types/{private-types.d.ts → types/private.d.ts} +1 -1
  555. package/build-types/types/private.d.ts.map +1 -0
  556. package/build-types/{filter-and-sort-data-view.d.ts → utils/filter-sort-and-paginate.d.ts} +3 -3
  557. package/build-types/utils/filter-sort-and-paginate.d.ts.map +1 -0
  558. package/build-types/utils/has-elements.d.ts +6 -0
  559. package/build-types/utils/has-elements.d.ts.map +1 -0
  560. package/build-types/utils/normalize-fields.d.ts +9 -0
  561. package/build-types/utils/normalize-fields.d.ts.map +1 -0
  562. package/build-wp/index.js +3151 -2714
  563. package/package.json +16 -18
  564. package/src/components/dataform/index.tsx +9 -3
  565. package/src/components/dataform-context/index.tsx +3 -1
  566. package/src/components/dataviews/index.tsx +2 -2
  567. package/src/components/dataviews/style.scss +4 -0
  568. package/src/components/dataviews-bulk-actions/index.tsx +1 -2
  569. package/src/components/dataviews-bulk-actions/style.scss +3 -0
  570. package/src/components/dataviews-context/index.ts +1 -1
  571. package/src/components/dataviews-filters/filter.tsx +11 -5
  572. package/src/components/dataviews-filters/search-widget.tsx +30 -3
  573. package/src/components/dataviews-filters/style.scss +21 -6
  574. package/src/components/dataviews-filters/use-filters.ts +4 -2
  575. package/src/components/dataviews-footer/style.scss +4 -0
  576. package/src/components/dataviews-item-actions/index.tsx +6 -2
  577. package/src/components/dataviews-item-actions/style.scss +3 -0
  578. package/src/components/dataviews-pagination/style.scss +3 -0
  579. package/src/components/dataviews-picker/footer.tsx +2 -4
  580. package/src/components/dataviews-picker/index.tsx +2 -2
  581. package/src/components/dataviews-picker/style.scss +2 -0
  582. package/src/components/dataviews-selection-checkbox/index.tsx +1 -1
  583. package/src/components/dataviews-selection-checkbox/style.scss +3 -0
  584. package/src/components/dataviews-view-config/style.scss +3 -0
  585. package/src/dataform-controls/array.tsx +16 -82
  586. package/src/dataform-controls/checkbox.tsx +5 -41
  587. package/src/dataform-controls/color.tsx +5 -37
  588. package/src/dataform-controls/date.tsx +375 -238
  589. package/src/dataform-controls/datetime.tsx +92 -60
  590. package/src/dataform-controls/email.tsx +2 -0
  591. package/src/dataform-controls/index.tsx +4 -1
  592. package/src/dataform-controls/integer.tsx +3 -179
  593. package/src/dataform-controls/number.tsx +10 -0
  594. package/src/dataform-controls/password.tsx +2 -0
  595. package/src/dataform-controls/radio.tsx +24 -55
  596. package/src/dataform-controls/select.tsx +14 -61
  597. package/src/dataform-controls/style.scss +2 -0
  598. package/src/dataform-controls/telephone.tsx +2 -0
  599. package/src/dataform-controls/text.tsx +2 -0
  600. package/src/dataform-controls/textarea.tsx +6 -42
  601. package/src/dataform-controls/toggle-group.tsx +38 -64
  602. package/src/dataform-controls/toggle.tsx +6 -42
  603. package/src/dataform-controls/url.tsx +2 -0
  604. package/src/dataform-controls/utils/get-custom-validity.ts +24 -0
  605. package/src/dataform-controls/{relative-date-control.tsx → utils/relative-date-control.tsx} +37 -25
  606. package/src/dataform-controls/utils/validated-input.tsx +4 -40
  607. package/src/dataform-controls/utils/validated-number.tsx +171 -0
  608. package/src/{dataforms-layouts → dataform-layouts}/card/index.tsx +106 -8
  609. package/src/dataform-layouts/card/style.scss +24 -0
  610. package/src/{dataforms-layouts → dataform-layouts}/data-form-layout.tsx +22 -5
  611. package/src/dataform-layouts/get-summary-fields.ts +42 -0
  612. package/src/{dataforms-layouts → dataform-layouts}/index.tsx +32 -2
  613. package/src/{normalize-form-fields.ts → dataform-layouts/normalize-form-fields.ts} +28 -1
  614. package/src/{dataforms-layouts → dataform-layouts}/panel/dropdown.tsx +36 -15
  615. package/src/{dataforms-layouts → dataform-layouts}/panel/index.tsx +88 -55
  616. package/src/{dataforms-layouts → dataform-layouts}/panel/modal.tsx +42 -31
  617. package/src/{dataforms-layouts → dataform-layouts}/panel/style.scss +3 -0
  618. package/src/{dataforms-layouts → dataform-layouts}/regular/index.tsx +5 -1
  619. package/src/{dataforms-layouts → dataform-layouts}/regular/style.scss +2 -0
  620. package/src/{dataforms-layouts → dataform-layouts}/row/index.tsx +9 -4
  621. package/src/dataform-layouts/style.scss +5 -0
  622. package/src/dataviews-layouts/grid/index.tsx +1 -1
  623. package/src/dataviews-layouts/grid/style.scss +8 -3
  624. package/src/dataviews-layouts/list/index.tsx +0 -2
  625. package/src/dataviews-layouts/list/style.scss +3 -0
  626. package/src/dataviews-layouts/picker-grid/index.tsx +1 -1
  627. package/src/dataviews-layouts/picker-grid/style.scss +8 -4
  628. package/src/dataviews-layouts/table/column-header-menu.tsx +1 -1
  629. package/src/dataviews-layouts/table/index.tsx +1 -1
  630. package/src/dataviews-layouts/table/style.scss +9 -0
  631. package/src/dataviews-layouts/utils/grid-items.scss +2 -0
  632. package/src/dataviews-layouts/utils/item-click-wrapper.tsx +40 -2
  633. package/src/field-types/array.tsx +1 -0
  634. package/src/field-types/boolean.tsx +4 -3
  635. package/src/field-types/color.tsx +4 -10
  636. package/src/field-types/{date.ts → date.tsx} +5 -16
  637. package/src/field-types/datetime.tsx +8 -21
  638. package/src/field-types/email.tsx +7 -11
  639. package/src/field-types/index.tsx +13 -23
  640. package/src/field-types/integer.tsx +7 -11
  641. package/src/field-types/media.tsx +3 -17
  642. package/src/field-types/number.tsx +92 -0
  643. package/src/field-types/password.tsx +8 -21
  644. package/src/field-types/telephone.tsx +8 -21
  645. package/src/field-types/text.tsx +8 -21
  646. package/src/field-types/url.tsx +8 -21
  647. package/src/field-types/utils/render-from-elements.tsx +29 -0
  648. package/src/hooks/index.ts +4 -0
  649. package/src/hooks/use-elements.ts +66 -0
  650. package/src/hooks/use-form-validity.ts +571 -0
  651. package/src/index.ts +2 -2
  652. package/src/{components/dataform/stories/index.story.tsx → stories/dataform.story.tsx} +455 -63
  653. package/src/{components/dataviews-picker/stories/index.story.tsx → stories/dataviews-picker.story.tsx} +5 -9
  654. package/src/{components/dataviews/stories/fixtures.tsx → stories/dataviews.fixtures.tsx} +36 -5
  655. package/src/{components/dataviews/stories/index.story.tsx → stories/dataviews.story.tsx} +7 -8
  656. package/src/{field-types/stories/index.story.tsx → stories/field-types.story.tsx} +244 -48
  657. package/src/style.scss +19 -18
  658. package/src/test/dataform.tsx +36 -0
  659. package/src/test/dataviews-picker.tsx +1 -1
  660. package/src/test/dataviews.tsx +1 -2
  661. package/src/test/{filter-and-sort-data-view.js → filter-sort-and-paginate.js} +63 -16
  662. package/src/test/normalize-fields.ts +23 -1
  663. package/src/test/normalize-form-fields.ts +54 -5
  664. package/src/test/use-form-validity.ts +546 -0
  665. package/src/types/dataform.ts +144 -0
  666. package/src/types/dataviews.ts +443 -0
  667. package/src/types/field-api.ts +381 -0
  668. package/src/types/index.ts +3 -0
  669. package/src/{filter-and-sort-data-view.ts → utils/filter-sort-and-paginate.ts} +4 -4
  670. package/src/utils/has-elements.ts +11 -0
  671. package/src/{normalize-fields.ts → utils/normalize-fields.ts} +13 -8
  672. package/tsconfig.tsbuildinfo +1 -1
  673. package/build/dataform-controls/relative-date-control.js +0 -105
  674. package/build/dataform-controls/relative-date-control.js.map +0 -1
  675. package/build/dataforms-layouts/card/index.js +0 -136
  676. package/build/dataforms-layouts/card/index.js.map +0 -1
  677. package/build/dataforms-layouts/data-form-layout.js +0 -71
  678. package/build/dataforms-layouts/data-form-layout.js.map +0 -1
  679. package/build/dataforms-layouts/index.js +0 -58
  680. package/build/dataforms-layouts/index.js.map +0 -1
  681. package/build/dataforms-layouts/is-combined-field.js +0 -14
  682. package/build/dataforms-layouts/is-combined-field.js.map +0 -1
  683. package/build/dataforms-layouts/panel/dropdown.js +0 -120
  684. package/build/dataforms-layouts/panel/dropdown.js.map +0 -1
  685. package/build/dataforms-layouts/panel/index.js +0 -126
  686. package/build/dataforms-layouts/panel/index.js.map +0 -1
  687. package/build/dataforms-layouts/panel/modal.js +0 -120
  688. package/build/dataforms-layouts/panel/modal.js.map +0 -1
  689. package/build/dataforms-layouts/panel/summary-button.js +0 -67
  690. package/build/dataforms-layouts/panel/summary-button.js.map +0 -1
  691. package/build/dataforms-layouts/regular/index.js +0 -116
  692. package/build/dataforms-layouts/regular/index.js.map +0 -1
  693. package/build/dataforms-layouts/row/index.js +0 -113
  694. package/build/dataforms-layouts/row/index.js.map +0 -1
  695. package/build/filter-and-sort-data-view.js +0 -313
  696. package/build/filter-and-sort-data-view.js.map +0 -1
  697. package/build/normalize-fields.js +0 -155
  698. package/build/normalize-fields.js.map +0 -1
  699. package/build/normalize-form-fields.js +0 -81
  700. package/build/normalize-form-fields.js.map +0 -1
  701. package/build/private-types.js +0 -6
  702. package/build/private-types.js.map +0 -1
  703. package/build/types.js +0 -6
  704. package/build/types.js.map +0 -1
  705. package/build/utils.js +0 -22
  706. package/build/utils.js.map +0 -1
  707. package/build/validation.js +0 -61
  708. package/build/validation.js.map +0 -1
  709. package/build-module/dataform-controls/relative-date-control.js +0 -96
  710. package/build-module/dataform-controls/relative-date-control.js.map +0 -1
  711. package/build-module/dataforms-layouts/card/index.js +0 -127
  712. package/build-module/dataforms-layouts/card/index.js.map +0 -1
  713. package/build-module/dataforms-layouts/data-form-layout.js +0 -62
  714. package/build-module/dataforms-layouts/data-form-layout.js.map +0 -1
  715. package/build-module/dataforms-layouts/index.js +0 -51
  716. package/build-module/dataforms-layouts/index.js.map +0 -1
  717. package/build-module/dataforms-layouts/is-combined-field.js +0 -8
  718. package/build-module/dataforms-layouts/is-combined-field.js.map +0 -1
  719. package/build-module/dataforms-layouts/panel/dropdown.js +0 -113
  720. package/build-module/dataforms-layouts/panel/dropdown.js.map +0 -1
  721. package/build-module/dataforms-layouts/panel/index.js +0 -119
  722. package/build-module/dataforms-layouts/panel/index.js.map +0 -1
  723. package/build-module/dataforms-layouts/panel/modal.js +0 -113
  724. package/build-module/dataforms-layouts/panel/modal.js.map +0 -1
  725. package/build-module/dataforms-layouts/panel/summary-button.js +0 -60
  726. package/build-module/dataforms-layouts/panel/summary-button.js.map +0 -1
  727. package/build-module/dataforms-layouts/regular/index.js +0 -109
  728. package/build-module/dataforms-layouts/regular/index.js.map +0 -1
  729. package/build-module/dataforms-layouts/row/index.js +0 -106
  730. package/build-module/dataforms-layouts/row/index.js.map +0 -1
  731. package/build-module/filter-and-sort-data-view.js +0 -305
  732. package/build-module/filter-and-sort-data-view.js.map +0 -1
  733. package/build-module/normalize-fields.js +0 -145
  734. package/build-module/normalize-fields.js.map +0 -1
  735. package/build-module/normalize-form-fields.js +0 -73
  736. package/build-module/normalize-form-fields.js.map +0 -1
  737. package/build-module/private-types.js +0 -2
  738. package/build-module/private-types.js.map +0 -1
  739. package/build-module/types.js +0 -2
  740. package/build-module/types.js.map +0 -1
  741. package/build-module/utils.js +0 -16
  742. package/build-module/utils.js.map +0 -1
  743. package/build-module/validation.js +0 -54
  744. package/build-module/validation.js.map +0 -1
  745. package/build-types/components/dataform/stories/index.story.d.ts.map +0 -1
  746. package/build-types/components/dataviews/stories/fixtures.d.ts.map +0 -1
  747. package/build-types/components/dataviews/stories/index.story.d.ts.map +0 -1
  748. package/build-types/components/dataviews-picker/stories/index.story.d.ts.map +0 -1
  749. package/build-types/dataform-controls/relative-date-control.d.ts +0 -47
  750. package/build-types/dataform-controls/relative-date-control.d.ts.map +0 -1
  751. package/build-types/dataforms-layouts/card/index.d.ts.map +0 -1
  752. package/build-types/dataforms-layouts/data-form-layout.d.ts.map +0 -1
  753. package/build-types/dataforms-layouts/index.d.ts.map +0 -1
  754. package/build-types/dataforms-layouts/is-combined-field.d.ts.map +0 -1
  755. package/build-types/dataforms-layouts/panel/dropdown.d.ts.map +0 -1
  756. package/build-types/dataforms-layouts/panel/index.d.ts.map +0 -1
  757. package/build-types/dataforms-layouts/panel/modal.d.ts.map +0 -1
  758. package/build-types/dataforms-layouts/panel/summary-button.d.ts.map +0 -1
  759. package/build-types/dataforms-layouts/regular/index.d.ts.map +0 -1
  760. package/build-types/dataforms-layouts/row/index.d.ts.map +0 -1
  761. package/build-types/field-types/stories/index.story.d.ts +0 -85
  762. package/build-types/field-types/stories/index.story.d.ts.map +0 -1
  763. package/build-types/filter-and-sort-data-view.d.ts.map +0 -1
  764. package/build-types/normalize-fields.d.ts +0 -12
  765. package/build-types/normalize-fields.d.ts.map +0 -1
  766. package/build-types/normalize-form-fields.d.ts.map +0 -1
  767. package/build-types/private-types.d.ts.map +0 -1
  768. package/build-types/test/validation.d.ts +0 -2
  769. package/build-types/test/validation.d.ts.map +0 -1
  770. package/build-types/types.d.ts +0 -688
  771. package/build-types/types.d.ts.map +0 -1
  772. package/build-types/utils.d.ts +0 -6
  773. package/build-types/utils.d.ts.map +0 -1
  774. package/build-types/validation.d.ts +0 -12
  775. package/build-types/validation.d.ts.map +0 -1
  776. package/src/dataforms-layouts/card/style.scss +0 -10
  777. package/src/test/validation.ts +0 -312
  778. package/src/types.ts +0 -891
  779. package/src/utils.ts +0 -15
  780. package/src/validation.ts +0 -91
  781. /package/build-types/{dataforms-layouts → dataform-layouts}/is-combined-field.d.ts +0 -0
  782. /package/build-types/{dataforms-layouts → dataform-layouts}/panel/summary-button.d.ts +0 -0
  783. /package/src/{dataforms-layouts → dataform-layouts}/is-combined-field.ts +0 -0
  784. /package/src/{dataforms-layouts → dataform-layouts}/panel/summary-button.tsx +0 -0
  785. /package/src/{dataforms-layouts → dataform-layouts}/row/style.scss +0 -0
  786. /package/src/{components/dataviews/stories/style.css → stories/dataviews.style.css} +0 -0
  787. /package/src/{private-types.tsx → types/private.ts} +0 -0
@@ -1,84 +1,100 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var dataviews_view_config_exports = {};
30
+ __export(dataviews_view_config_exports, {
31
+ DataviewsViewConfigDropdown: () => DataviewsViewConfigDropdown,
32
+ ViewTypeMenu: () => ViewTypeMenu,
33
+ default: () => dataviews_view_config_default
6
34
  });
7
- exports.DataviewsViewConfigDropdown = DataviewsViewConfigDropdown;
8
- exports.ViewTypeMenu = ViewTypeMenu;
9
- exports.default = void 0;
10
- var _clsx = _interopRequireDefault(require("clsx"));
11
- var _components = require("@wordpress/components");
12
- var _i18n = require("@wordpress/i18n");
13
- var _element = require("@wordpress/element");
14
- var _icons = require("@wordpress/icons");
15
- var _warning = _interopRequireDefault(require("@wordpress/warning"));
16
- var _compose = require("@wordpress/compose");
17
- var _constants = require("../../constants");
18
- var _dataviewsLayouts = require("../../dataviews-layouts");
19
- var _dataviewsContext = _interopRequireDefault(require("../dataviews-context"));
20
- var _infiniteScrollToggle = _interopRequireDefault(require("./infinite-scroll-toggle"));
21
- var _lockUnlock = require("../../lock-unlock");
22
- var _jsxRuntime = require("react/jsx-runtime");
23
- /**
24
- * External dependencies
25
- */
26
-
27
- /**
28
- * WordPress dependencies
29
- */
30
-
31
- /**
32
- * Internal dependencies
33
- */
34
-
35
- const {
36
- Menu
37
- } = (0, _lockUnlock.unlock)(_components.privateApis);
35
+ module.exports = __toCommonJS(dataviews_view_config_exports);
36
+ var import_jsx_runtime = require("react/jsx-runtime");
37
+ var import_clsx = __toESM(require("clsx"));
38
+ var import_components = require("@wordpress/components");
39
+ var import_i18n = require("@wordpress/i18n");
40
+ var import_element = require("@wordpress/element");
41
+ var import_icons = require("@wordpress/icons");
42
+ var import_warning = __toESM(require("@wordpress/warning"));
43
+ var import_compose = require("@wordpress/compose");
44
+ var import_constants = require("../../constants");
45
+ var import_dataviews_layouts = require("../../dataviews-layouts");
46
+ var import_dataviews_context = __toESM(require("../dataviews-context"));
47
+ var import_infinite_scroll_toggle = __toESM(require("./infinite-scroll-toggle"));
48
+ var import_lock_unlock = require("../../lock-unlock");
49
+ const { Menu } = (0, import_lock_unlock.unlock)(import_components.privateApis);
38
50
  const DATAVIEWS_CONFIG_POPOVER_PROPS = {
39
- className: 'dataviews-config__popover',
40
- placement: 'bottom-end',
51
+ className: "dataviews-config__popover",
52
+ placement: "bottom-end",
41
53
  offset: 9
42
54
  };
43
55
  function ViewTypeMenu() {
44
- const {
45
- view,
46
- onChangeView,
47
- defaultLayouts
48
- } = (0, _element.useContext)(_dataviewsContext.default);
56
+ const { view, onChangeView, defaultLayouts } = (0, import_element.useContext)(import_dataviews_context.default);
49
57
  const availableLayouts = Object.keys(defaultLayouts);
50
58
  if (availableLayouts.length <= 1) {
51
59
  return null;
52
60
  }
53
- const activeView = _dataviewsLayouts.VIEW_LAYOUTS.find(v => view.type === v.type);
54
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Menu, {
55
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.TriggerButton, {
56
- render: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
57
- size: "compact",
58
- icon: activeView?.icon,
59
- label: (0, _i18n.__)('Layout')
60
- })
61
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.Popover, {
62
- children: availableLayouts.map(layout => {
63
- const config = _dataviewsLayouts.VIEW_LAYOUTS.find(v => v.type === layout);
64
- if (!config) {
65
- return null;
66
- }
67
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.RadioItem, {
61
+ const activeView = import_dataviews_layouts.VIEW_LAYOUTS.find((v) => view.type === v.type);
62
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Menu, { children: [
63
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
64
+ Menu.TriggerButton,
65
+ {
66
+ render: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
67
+ import_components.Button,
68
+ {
69
+ size: "compact",
70
+ icon: activeView?.icon,
71
+ label: (0, import_i18n.__)("Layout")
72
+ }
73
+ )
74
+ }
75
+ ),
76
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Menu.Popover, { children: availableLayouts.map((layout) => {
77
+ const config = import_dataviews_layouts.VIEW_LAYOUTS.find(
78
+ (v) => v.type === layout
79
+ );
80
+ if (!config) {
81
+ return null;
82
+ }
83
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
84
+ Menu.RadioItem,
85
+ {
68
86
  value: layout,
69
87
  name: "view-actions-available-view",
70
88
  checked: layout === view.type,
71
89
  hideOnClick: true,
72
- onChange: e => {
90
+ onChange: (e) => {
73
91
  switch (e.target.value) {
74
- case 'list':
75
- case 'grid':
76
- case 'table':
77
- case 'pickerGrid':
78
- const viewWithoutLayout = {
79
- ...view
80
- };
81
- if ('layout' in viewWithoutLayout) {
92
+ case "list":
93
+ case "grid":
94
+ case "table":
95
+ case "pickerGrid":
96
+ const viewWithoutLayout = { ...view };
97
+ if ("layout" in viewWithoutLayout) {
82
98
  delete viewWithoutLayout.layout;
83
99
  }
84
100
  return onChangeView({
@@ -87,129 +103,136 @@ function ViewTypeMenu() {
87
103
  ...defaultLayouts[e.target.value]
88
104
  });
89
105
  }
90
- globalThis.SCRIPT_DEBUG === true ? (0, _warning.default)('Invalid dataview') : void 0;
106
+ (0, import_warning.default)("Invalid dataview");
91
107
  },
92
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.ItemLabel, {
93
- children: config.label
94
- })
95
- }, layout);
96
- })
97
- })]
98
- });
108
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Menu.ItemLabel, { children: config.label })
109
+ },
110
+ layout
111
+ );
112
+ }) })
113
+ ] });
99
114
  }
100
115
  function SortFieldControl() {
101
- const {
102
- view,
103
- fields,
104
- onChangeView
105
- } = (0, _element.useContext)(_dataviewsContext.default);
106
- const orderOptions = (0, _element.useMemo)(() => {
107
- const sortableFields = fields.filter(field => field.enableSorting !== false);
108
- return sortableFields.map(field => {
116
+ const { view, fields, onChangeView } = (0, import_element.useContext)(import_dataviews_context.default);
117
+ const orderOptions = (0, import_element.useMemo)(() => {
118
+ const sortableFields = fields.filter(
119
+ (field) => field.enableSorting !== false
120
+ );
121
+ return sortableFields.map((field) => {
109
122
  return {
110
123
  label: field.label,
111
124
  value: field.id
112
125
  };
113
126
  });
114
127
  }, [fields]);
115
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.SelectControl, {
116
- __nextHasNoMarginBottom: true,
117
- __next40pxDefaultSize: true,
118
- label: (0, _i18n.__)('Sort by'),
119
- value: view.sort?.field,
120
- options: orderOptions,
121
- onChange: value => {
122
- onChangeView({
123
- ...view,
124
- sort: {
125
- direction: view?.sort?.direction || 'desc',
126
- field: value
127
- },
128
- showLevels: false
129
- });
128
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
129
+ import_components.SelectControl,
130
+ {
131
+ __nextHasNoMarginBottom: true,
132
+ __next40pxDefaultSize: true,
133
+ label: (0, import_i18n.__)("Sort by"),
134
+ value: view.sort?.field,
135
+ options: orderOptions,
136
+ onChange: (value) => {
137
+ onChangeView({
138
+ ...view,
139
+ sort: {
140
+ direction: view?.sort?.direction || "desc",
141
+ field: value
142
+ },
143
+ showLevels: false
144
+ });
145
+ }
130
146
  }
131
- });
147
+ );
132
148
  }
133
149
  function SortDirectionControl() {
134
- const {
135
- view,
136
- fields,
137
- onChangeView
138
- } = (0, _element.useContext)(_dataviewsContext.default);
139
- const sortableFields = fields.filter(field => field.enableSorting !== false);
150
+ const { view, fields, onChangeView } = (0, import_element.useContext)(import_dataviews_context.default);
151
+ const sortableFields = fields.filter(
152
+ (field) => field.enableSorting !== false
153
+ );
140
154
  if (sortableFields.length === 0) {
141
155
  return null;
142
156
  }
143
157
  let value = view.sort?.direction;
144
158
  if (!value && view.sort?.field) {
145
- value = 'desc';
159
+ value = "desc";
146
160
  }
147
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToggleGroupControl, {
148
- className: "dataviews-view-config__sort-direction",
149
- __nextHasNoMarginBottom: true,
150
- __next40pxDefaultSize: true,
151
- isBlock: true,
152
- label: (0, _i18n.__)('Order'),
153
- value: value,
154
- onChange: newDirection => {
155
- if (newDirection === 'asc' || newDirection === 'desc') {
156
- onChangeView({
157
- ...view,
158
- sort: {
159
- direction: newDirection,
160
- field: view.sort?.field ||
161
- // If there is no field assigned as the sorting field assign the first sortable field.
162
- fields.find(field => field.enableSorting !== false)?.id || ''
161
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
162
+ import_components.__experimentalToggleGroupControl,
163
+ {
164
+ className: "dataviews-view-config__sort-direction",
165
+ __nextHasNoMarginBottom: true,
166
+ __next40pxDefaultSize: true,
167
+ isBlock: true,
168
+ label: (0, import_i18n.__)("Order"),
169
+ value,
170
+ onChange: (newDirection) => {
171
+ if (newDirection === "asc" || newDirection === "desc") {
172
+ onChangeView({
173
+ ...view,
174
+ sort: {
175
+ direction: newDirection,
176
+ field: view.sort?.field || // If there is no field assigned as the sorting field assign the first sortable field.
177
+ fields.find(
178
+ (field) => field.enableSorting !== false
179
+ )?.id || ""
180
+ },
181
+ showLevels: false
182
+ });
183
+ return;
184
+ }
185
+ (0, import_warning.default)("Invalid direction");
186
+ },
187
+ children: import_constants.SORTING_DIRECTIONS.map((direction) => {
188
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
189
+ import_components.__experimentalToggleGroupControlOptionIcon,
190
+ {
191
+ value: direction,
192
+ icon: import_constants.sortIcons[direction],
193
+ label: import_constants.sortLabels[direction]
163
194
  },
164
- showLevels: false
165
- });
166
- return;
167
- }
168
- globalThis.SCRIPT_DEBUG === true ? (0, _warning.default)('Invalid direction') : void 0;
169
- },
170
- children: _constants.SORTING_DIRECTIONS.map(direction => {
171
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToggleGroupControlOptionIcon, {
172
- value: direction,
173
- icon: _constants.sortIcons[direction],
174
- label: _constants.sortLabels[direction]
175
- }, direction);
176
- })
177
- });
195
+ direction
196
+ );
197
+ })
198
+ }
199
+ );
178
200
  }
179
201
  function ItemsPerPageControl() {
180
- const {
181
- view,
182
- config,
183
- onChangeView
184
- } = (0, _element.useContext)(_dataviewsContext.default);
185
- const {
186
- infiniteScrollEnabled
187
- } = view;
202
+ const { view, config, onChangeView } = (0, import_element.useContext)(import_dataviews_context.default);
203
+ const { infiniteScrollEnabled } = view;
188
204
  if (!config || !config.perPageSizes || config.perPageSizes.length < 2 || config.perPageSizes.length > 6 || infiniteScrollEnabled) {
189
205
  return null;
190
206
  }
191
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToggleGroupControl, {
192
- __nextHasNoMarginBottom: true,
193
- __next40pxDefaultSize: true,
194
- isBlock: true,
195
- label: (0, _i18n.__)('Items per page'),
196
- value: view.perPage || 10,
197
- disabled: !view?.sort?.field,
198
- onChange: newItemsPerPage => {
199
- const newItemsPerPageNumber = typeof newItemsPerPage === 'number' || newItemsPerPage === undefined ? newItemsPerPage : parseInt(newItemsPerPage, 10);
200
- onChangeView({
201
- ...view,
202
- perPage: newItemsPerPageNumber,
203
- page: 1
204
- });
205
- },
206
- children: config.perPageSizes.map(value => {
207
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToggleGroupControlOption, {
208
- value: value,
209
- label: value.toString()
210
- }, value);
211
- })
212
- });
207
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
208
+ import_components.__experimentalToggleGroupControl,
209
+ {
210
+ __nextHasNoMarginBottom: true,
211
+ __next40pxDefaultSize: true,
212
+ isBlock: true,
213
+ label: (0, import_i18n.__)("Items per page"),
214
+ value: view.perPage || 10,
215
+ disabled: !view?.sort?.field,
216
+ onChange: (newItemsPerPage) => {
217
+ const newItemsPerPageNumber = typeof newItemsPerPage === "number" || newItemsPerPage === void 0 ? newItemsPerPage : parseInt(newItemsPerPage, 10);
218
+ onChangeView({
219
+ ...view,
220
+ perPage: newItemsPerPageNumber,
221
+ page: 1
222
+ });
223
+ },
224
+ children: config.perPageSizes.map((value) => {
225
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
226
+ import_components.__experimentalToggleGroupControlOption,
227
+ {
228
+ value,
229
+ label: value.toString()
230
+ },
231
+ value
232
+ );
233
+ })
234
+ }
235
+ );
213
236
  }
214
237
  function PreviewOptions({
215
238
  previewOptions,
@@ -217,45 +240,47 @@ function PreviewOptions({
217
240
  onMenuOpenChange,
218
241
  activeOption
219
242
  }) {
220
- const focusPreviewOptionsField = id => {
221
- // Focus the visibility button to avoid focus loss.
222
- // Our code is safe against the component being unmounted, so we don't need to worry about cleaning the timeout.
223
- // eslint-disable-next-line @wordpress/react-no-unsafe-timeout
243
+ const focusPreviewOptionsField = (id) => {
224
244
  setTimeout(() => {
225
- const element = document.querySelector(`.dataviews-field-control__field-${id} .dataviews-field-control__field-preview-options-button`);
245
+ const element = document.querySelector(
246
+ `.dataviews-field-control__field-${id} .dataviews-field-control__field-preview-options-button`
247
+ );
226
248
  if (element instanceof HTMLElement) {
227
249
  element.focus();
228
250
  }
229
251
  }, 50);
230
252
  };
231
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Menu, {
232
- onOpenChange: onMenuOpenChange,
233
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.TriggerButton, {
234
- render: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
235
- className: "dataviews-field-control__field-preview-options-button",
236
- size: "compact",
237
- icon: _icons.moreVertical,
238
- label: (0, _i18n.__)('Preview')
239
- })
240
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.Popover, {
241
- children: previewOptions?.map(({
242
- id,
243
- label
244
- }) => {
245
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.RadioItem, {
253
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Menu, { onOpenChange: onMenuOpenChange, children: [
254
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
255
+ Menu.TriggerButton,
256
+ {
257
+ render: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
258
+ import_components.Button,
259
+ {
260
+ className: "dataviews-field-control__field-preview-options-button",
261
+ size: "compact",
262
+ icon: import_icons.moreVertical,
263
+ label: (0, import_i18n.__)("Preview")
264
+ }
265
+ )
266
+ }
267
+ ),
268
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Menu.Popover, { children: previewOptions?.map(({ id, label }) => {
269
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
270
+ Menu.RadioItem,
271
+ {
246
272
  value: id,
247
273
  checked: id === activeOption,
248
274
  onChange: () => {
249
275
  onChangePreviewOption?.(id);
250
276
  focusPreviewOptionsField(id);
251
277
  },
252
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Menu.ItemLabel, {
253
- children: label
254
- })
255
- }, id);
256
- })
257
- })]
258
- });
278
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Menu.ItemLabel, { children: label })
279
+ },
280
+ id
281
+ );
282
+ }) })
283
+ ] });
259
284
  }
260
285
  function FieldItem({
261
286
  field,
@@ -271,90 +296,116 @@ function FieldItem({
271
296
  previewOptions,
272
297
  onChangePreviewOption
273
298
  }) {
274
- const [isChangingPreviewOption, setIsChangingPreviewOption] = (0, _element.useState)(false);
299
+ const [isChangingPreviewOption, setIsChangingPreviewOption] = (0, import_element.useState)(false);
275
300
  const focusVisibilityField = () => {
276
- // Focus the visibility button to avoid focus loss.
277
- // Our code is safe against the component being unmounted, so we don't need to worry about cleaning the timeout.
278
- // eslint-disable-next-line @wordpress/react-no-unsafe-timeout
279
301
  setTimeout(() => {
280
- const element = document.querySelector(`.dataviews-field-control__field-${field.id} .dataviews-field-control__field-visibility-button`);
302
+ const element = document.querySelector(
303
+ `.dataviews-field-control__field-${field.id} .dataviews-field-control__field-visibility-button`
304
+ );
281
305
  if (element instanceof HTMLElement) {
282
306
  element.focus();
283
307
  }
284
308
  }, 50);
285
309
  };
286
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalItem, {
287
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
310
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.__experimentalItem, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
311
+ import_components.__experimentalHStack,
312
+ {
288
313
  expanded: true,
289
- className: (0, _clsx.default)('dataviews-field-control__field', `dataviews-field-control__field-${field.id}`,
290
- // The actions are hidden when the mouse is not hovering the item, or focus
291
- // is outside the item.
292
- // For actions that require a popover, a menu etc, that would mean that when the interactive element
293
- // opens and the focus goes there the actions would be hidden.
294
- // To avoid that we add a class to the item, that makes sure actions are visible while there is some
295
- // interaction with the item.
296
- {
297
- 'is-interacting': isChangingPreviewOption
298
- }),
314
+ className: (0, import_clsx.default)(
315
+ "dataviews-field-control__field",
316
+ `dataviews-field-control__field-${field.id}`,
317
+ // The actions are hidden when the mouse is not hovering the item, or focus
318
+ // is outside the item.
319
+ // For actions that require a popover, a menu etc, that would mean that when the interactive element
320
+ // opens and the focus goes there the actions would be hidden.
321
+ // To avoid that we add a class to the item, that makes sure actions are visible while there is some
322
+ // interaction with the item.
323
+ { "is-interacting": isChangingPreviewOption }
324
+ ),
299
325
  justify: "flex-start",
300
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
301
- className: "dataviews-field-control__icon",
302
- children: !canMove && !field.enableHiding && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Icon, {
303
- icon: _icons.lock
304
- })
305
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
306
- className: "dataviews-field-control__label-sub-label-container",
307
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
308
- className: "dataviews-field-control__label",
309
- children: label || field.label
310
- }), description && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
311
- className: "dataviews-field-control__sub-label",
312
- children: description
313
- })]
314
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
315
- justify: "flex-end",
316
- expanded: false,
317
- className: "dataviews-field-control__actions",
318
- children: [isVisible && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
319
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
320
- disabled: isFirst || !canMove,
321
- accessibleWhenDisabled: true,
322
- size: "compact",
323
- onClick: onMoveUp,
324
- icon: _icons.chevronUp,
325
- label: isFirst || !canMove ? (0, _i18n.__)("This field can't be moved up") : (0, _i18n.sprintf)(/* translators: %s: field label */
326
- (0, _i18n.__)('Move %s up'), field.label)
327
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
328
- disabled: isLast || !canMove,
329
- accessibleWhenDisabled: true,
330
- size: "compact",
331
- onClick: onMoveDown,
332
- icon: _icons.chevronDown,
333
- label: isLast || !canMove ? (0, _i18n.__)("This field can't be moved down") : (0, _i18n.sprintf)(/* translators: %s: field label */
334
- (0, _i18n.__)('Move %s down'), field.label)
335
- })]
336
- }), onToggleVisibility && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
337
- className: "dataviews-field-control__field-visibility-button",
338
- disabled: !field.enableHiding,
339
- accessibleWhenDisabled: true,
340
- size: "compact",
341
- onClick: () => {
342
- onToggleVisibility();
343
- focusVisibilityField();
344
- },
345
- icon: isVisible ? _icons.unseen : _icons.seen,
346
- label: isVisible ? (0, _i18n.sprintf)(/* translators: %s: field label */
347
- (0, _i18n._x)('Hide %s', 'field'), field.label) : (0, _i18n.sprintf)(/* translators: %s: field label */
348
- (0, _i18n._x)('Show %s', 'field'), field.label)
349
- }), previewOptions && /*#__PURE__*/(0, _jsxRuntime.jsx)(PreviewOptions, {
350
- previewOptions: previewOptions,
351
- onChangePreviewOption: onChangePreviewOption,
352
- onMenuOpenChange: setIsChangingPreviewOption,
353
- activeOption: field.id
354
- })]
355
- })]
356
- })
357
- });
326
+ children: [
327
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "dataviews-field-control__icon", children: !canMove && !field.enableHiding && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.Icon, { icon: import_icons.lock }) }),
328
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: "dataviews-field-control__label-sub-label-container", children: [
329
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "dataviews-field-control__label", children: label || field.label }),
330
+ description && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "dataviews-field-control__sub-label", children: description })
331
+ ] }),
332
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
333
+ import_components.__experimentalHStack,
334
+ {
335
+ justify: "flex-end",
336
+ expanded: false,
337
+ className: "dataviews-field-control__actions",
338
+ children: [
339
+ isVisible && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
340
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
341
+ import_components.Button,
342
+ {
343
+ disabled: isFirst || !canMove,
344
+ accessibleWhenDisabled: true,
345
+ size: "compact",
346
+ onClick: onMoveUp,
347
+ icon: import_icons.chevronUp,
348
+ label: isFirst || !canMove ? (0, import_i18n.__)("This field can't be moved up") : (0, import_i18n.sprintf)(
349
+ /* translators: %s: field label */
350
+ (0, import_i18n.__)("Move %s up"),
351
+ field.label
352
+ )
353
+ }
354
+ ),
355
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
356
+ import_components.Button,
357
+ {
358
+ disabled: isLast || !canMove,
359
+ accessibleWhenDisabled: true,
360
+ size: "compact",
361
+ onClick: onMoveDown,
362
+ icon: import_icons.chevronDown,
363
+ label: isLast || !canMove ? (0, import_i18n.__)("This field can't be moved down") : (0, import_i18n.sprintf)(
364
+ /* translators: %s: field label */
365
+ (0, import_i18n.__)("Move %s down"),
366
+ field.label
367
+ )
368
+ }
369
+ )
370
+ ] }),
371
+ onToggleVisibility && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
372
+ import_components.Button,
373
+ {
374
+ className: "dataviews-field-control__field-visibility-button",
375
+ disabled: !field.enableHiding,
376
+ accessibleWhenDisabled: true,
377
+ size: "compact",
378
+ onClick: () => {
379
+ onToggleVisibility();
380
+ focusVisibilityField();
381
+ },
382
+ icon: isVisible ? import_icons.unseen : import_icons.seen,
383
+ label: isVisible ? (0, import_i18n.sprintf)(
384
+ /* translators: %s: field label */
385
+ (0, import_i18n._x)("Hide %s", "field"),
386
+ field.label
387
+ ) : (0, import_i18n.sprintf)(
388
+ /* translators: %s: field label */
389
+ (0, import_i18n._x)("Show %s", "field"),
390
+ field.label
391
+ )
392
+ }
393
+ ),
394
+ previewOptions && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
395
+ PreviewOptions,
396
+ {
397
+ previewOptions,
398
+ onChangePreviewOption,
399
+ onMenuOpenChange: setIsChangingPreviewOption,
400
+ activeOption: field.id
401
+ }
402
+ )
403
+ ]
404
+ }
405
+ )
406
+ ]
407
+ }
408
+ ) });
358
409
  }
359
410
  function RegularFieldItem({
360
411
  index,
@@ -362,285 +413,309 @@ function RegularFieldItem({
362
413
  view,
363
414
  onChangeView
364
415
  }) {
365
- var _view$fields;
366
- const visibleFieldIds = (_view$fields = view.fields) !== null && _view$fields !== void 0 ? _view$fields : [];
367
- const isVisible = index !== undefined && visibleFieldIds.includes(field.id);
368
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(FieldItem, {
369
- field: field,
370
- isVisible: isVisible,
371
- isFirst: index !== undefined && index < 1,
372
- isLast: index !== undefined && index === visibleFieldIds.length - 1,
373
- onToggleVisibility: () => {
374
- onChangeView({
375
- ...view,
376
- fields: isVisible ? visibleFieldIds.filter(fieldId => fieldId !== field.id) : [...visibleFieldIds, field.id]
377
- });
378
- },
379
- onMoveUp: index !== undefined ? () => {
380
- var _visibleFieldIds$slic;
381
- onChangeView({
382
- ...view,
383
- fields: [...((_visibleFieldIds$slic = visibleFieldIds.slice(0, index - 1)) !== null && _visibleFieldIds$slic !== void 0 ? _visibleFieldIds$slic : []), field.id, visibleFieldIds[index - 1], ...visibleFieldIds.slice(index + 1)]
384
- });
385
- } : undefined,
386
- onMoveDown: index !== undefined ? () => {
387
- var _visibleFieldIds$slic2;
388
- onChangeView({
389
- ...view,
390
- fields: [...((_visibleFieldIds$slic2 = visibleFieldIds.slice(0, index)) !== null && _visibleFieldIds$slic2 !== void 0 ? _visibleFieldIds$slic2 : []), visibleFieldIds[index + 1], field.id, ...visibleFieldIds.slice(index + 2)]
391
- });
392
- } : undefined
393
- });
416
+ const visibleFieldIds = view.fields ?? [];
417
+ const isVisible = index !== void 0 && visibleFieldIds.includes(field.id);
418
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
419
+ FieldItem,
420
+ {
421
+ field,
422
+ isVisible,
423
+ isFirst: index !== void 0 && index < 1,
424
+ isLast: index !== void 0 && index === visibleFieldIds.length - 1,
425
+ onToggleVisibility: () => {
426
+ onChangeView({
427
+ ...view,
428
+ fields: isVisible ? visibleFieldIds.filter(
429
+ (fieldId) => fieldId !== field.id
430
+ ) : [...visibleFieldIds, field.id]
431
+ });
432
+ },
433
+ onMoveUp: index !== void 0 ? () => {
434
+ onChangeView({
435
+ ...view,
436
+ fields: [
437
+ ...visibleFieldIds.slice(
438
+ 0,
439
+ index - 1
440
+ ) ?? [],
441
+ field.id,
442
+ visibleFieldIds[index - 1],
443
+ ...visibleFieldIds.slice(index + 1)
444
+ ]
445
+ });
446
+ } : void 0,
447
+ onMoveDown: index !== void 0 ? () => {
448
+ onChangeView({
449
+ ...view,
450
+ fields: [
451
+ ...visibleFieldIds.slice(0, index) ?? [],
452
+ visibleFieldIds[index + 1],
453
+ field.id,
454
+ ...visibleFieldIds.slice(index + 2)
455
+ ]
456
+ });
457
+ } : void 0
458
+ }
459
+ );
394
460
  }
395
461
  function isDefined(item) {
396
462
  return !!item;
397
463
  }
398
464
  function FieldControl() {
399
- var _view$fields2;
400
- const {
401
- view,
402
- fields,
403
- onChangeView
404
- } = (0, _element.useContext)(_dataviewsContext.default);
405
- const togglableFields = [view?.titleField, view?.mediaField, view?.descriptionField].filter(Boolean);
406
- const visibleFieldIds = (_view$fields2 = view.fields) !== null && _view$fields2 !== void 0 ? _view$fields2 : [];
407
- const hiddenFields = fields.filter(f => !visibleFieldIds.includes(f.id) && !togglableFields.includes(f.id) && f.type !== 'media' && f.enableHiding !== false);
408
- let visibleFields = visibleFieldIds.map(fieldId => fields.find(f => f.id === fieldId)).filter(isDefined);
465
+ const { view, fields, onChangeView } = (0, import_element.useContext)(import_dataviews_context.default);
466
+ const togglableFields = [
467
+ view?.titleField,
468
+ view?.mediaField,
469
+ view?.descriptionField
470
+ ].filter(Boolean);
471
+ const visibleFieldIds = view.fields ?? [];
472
+ const hiddenFields = fields.filter(
473
+ (f) => !visibleFieldIds.includes(f.id) && !togglableFields.includes(f.id) && f.type !== "media" && f.enableHiding !== false
474
+ );
475
+ let visibleFields = visibleFieldIds.map((fieldId) => fields.find((f) => f.id === fieldId)).filter(isDefined);
409
476
  if (!visibleFields?.length && !hiddenFields?.length) {
410
477
  return null;
411
478
  }
412
- const titleField = fields.find(f => f.id === view.titleField);
413
- const previewField = fields.find(f => f.id === view.mediaField);
414
- const descriptionField = fields.find(f => f.id === view.descriptionField);
415
- const previewFields = fields.filter(f => f.type === 'media');
479
+ const titleField = fields.find((f) => f.id === view.titleField);
480
+ const previewField = fields.find((f) => f.id === view.mediaField);
481
+ const descriptionField = fields.find(
482
+ (f) => f.id === view.descriptionField
483
+ );
484
+ const previewFields = fields.filter((f) => f.type === "media");
416
485
  let previewFieldUI;
417
486
  if (previewFields.length > 1) {
418
- var _view$showMedia;
419
- const isPreviewFieldVisible = isDefined(previewField) && ((_view$showMedia = view.showMedia) !== null && _view$showMedia !== void 0 ? _view$showMedia : true);
420
- previewFieldUI = isDefined(previewField) && /*#__PURE__*/(0, _jsxRuntime.jsx)(FieldItem, {
421
- field: previewField,
422
- label: (0, _i18n.__)('Preview'),
423
- description: previewField.label,
424
- isVisible: isPreviewFieldVisible,
425
- onToggleVisibility: () => {
426
- onChangeView({
427
- ...view,
428
- showMedia: !isPreviewFieldVisible
429
- });
487
+ const isPreviewFieldVisible = isDefined(previewField) && (view.showMedia ?? true);
488
+ previewFieldUI = isDefined(previewField) && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
489
+ FieldItem,
490
+ {
491
+ field: previewField,
492
+ label: (0, import_i18n.__)("Preview"),
493
+ description: previewField.label,
494
+ isVisible: isPreviewFieldVisible,
495
+ onToggleVisibility: () => {
496
+ onChangeView({
497
+ ...view,
498
+ showMedia: !isPreviewFieldVisible
499
+ });
500
+ },
501
+ canMove: false,
502
+ previewOptions: previewFields.map((field) => ({
503
+ label: field.label,
504
+ id: field.id
505
+ })),
506
+ onChangePreviewOption: (newPreviewId) => onChangeView({ ...view, mediaField: newPreviewId })
430
507
  },
431
- canMove: false,
432
- previewOptions: previewFields.map(field => ({
433
- label: field.label,
434
- id: field.id
435
- })),
436
- onChangePreviewOption: newPreviewId => onChangeView({
437
- ...view,
438
- mediaField: newPreviewId
439
- })
440
- }, previewField.id);
508
+ previewField.id
509
+ );
441
510
  }
442
- const lockedFields = [{
443
- field: titleField,
444
- isVisibleFlag: 'showTitle'
445
- }, {
446
- field: previewField,
447
- isVisibleFlag: 'showMedia',
448
- ui: previewFieldUI
449
- }, {
450
- field: descriptionField,
451
- isVisibleFlag: 'showDescription'
452
- }].filter(({
453
- field
454
- }) => isDefined(field));
455
- let visibleLockedFields = lockedFields.filter(({
456
- field,
457
- isVisibleFlag
458
- }) => {
459
- var _view$isVisibleFlag;
460
- return (
511
+ const lockedFields = [
512
+ {
513
+ field: titleField,
514
+ isVisibleFlag: "showTitle"
515
+ },
516
+ {
517
+ field: previewField,
518
+ isVisibleFlag: "showMedia",
519
+ ui: previewFieldUI
520
+ },
521
+ {
522
+ field: descriptionField,
523
+ isVisibleFlag: "showDescription"
524
+ }
525
+ ].filter(({ field }) => isDefined(field));
526
+ let visibleLockedFields = lockedFields.filter(
527
+ ({ field, isVisibleFlag }) => (
461
528
  // @ts-expect-error
462
- isDefined(field) && ((_view$isVisibleFlag = view[isVisibleFlag]) !== null && _view$isVisibleFlag !== void 0 ? _view$isVisibleFlag : true)
463
- );
464
- });
465
-
466
- // If only one locked field is visible, prevent it from being hidden.
529
+ isDefined(field) && (view[isVisibleFlag] ?? true)
530
+ )
531
+ );
467
532
  if (visibleLockedFields.length === 1) {
468
- visibleLockedFields = visibleLockedFields.map(locked => ({
533
+ visibleLockedFields = visibleLockedFields.map((locked) => ({
469
534
  ...locked,
470
- field: {
471
- ...locked.field,
472
- enableHiding: false
473
- }
535
+ field: { ...locked.field, enableHiding: false }
474
536
  }));
475
537
  }
476
-
477
- // If no locked fields are visible but there are visibleFields, lock the last visible field.
478
538
  if (visibleLockedFields.length === 0 && visibleFields.length === 1) {
479
- visibleFields = [{
480
- ...visibleFields[0],
481
- enableHiding: false
482
- }];
539
+ visibleFields = [{ ...visibleFields[0], enableHiding: false }];
483
540
  }
484
- const hiddenLockedFields = lockedFields.filter(({
485
- field,
486
- isVisibleFlag
487
- }) => {
488
- var _view$isVisibleFlag2;
489
- return (
541
+ const hiddenLockedFields = lockedFields.filter(
542
+ ({ field, isVisibleFlag }) => (
490
543
  // @ts-expect-error
491
- isDefined(field) && !((_view$isVisibleFlag2 = view[isVisibleFlag]) !== null && _view$isVisibleFlag2 !== void 0 ? _view$isVisibleFlag2 : true)
492
- );
493
- });
494
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
495
- className: "dataviews-field-control",
496
- spacing: 6,
497
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalVStack, {
498
- className: "dataviews-view-config__properties",
499
- spacing: 0,
500
- children: (visibleLockedFields.length > 0 || !!visibleFields?.length) && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalItemGroup, {
501
- isBordered: true,
502
- isSeparated: true,
503
- children: [visibleLockedFields.map(({
504
- field,
505
- isVisibleFlag,
506
- ui
507
- }) => {
508
- return ui !== null && ui !== void 0 ? ui : /*#__PURE__*/(0, _jsxRuntime.jsx)(FieldItem, {
509
- field: field,
510
- isVisible: true,
511
- onToggleVisibility: () => {
512
- onChangeView({
513
- ...view,
514
- [isVisibleFlag]: false
515
- });
516
- },
517
- canMove: false
518
- }, field.id);
519
- }), visibleFields.map((field, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(RegularFieldItem, {
520
- field: field,
521
- view: view,
522
- onChangeView: onChangeView,
523
- index: index
524
- }, field.id))]
525
- })
526
- }), (!!hiddenFields?.length || !!hiddenLockedFields.length) && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
527
- spacing: 4,
528
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.BaseControl.VisualLabel, {
529
- style: {
530
- margin: 0
531
- },
532
- children: (0, _i18n.__)('Hidden')
533
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalVStack, {
534
- className: "dataviews-view-config__properties",
535
- spacing: 0,
536
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalItemGroup, {
537
- isBordered: true,
538
- isSeparated: true,
539
- children: [hiddenLockedFields.length > 0 && hiddenLockedFields.map(({
540
- field,
541
- isVisibleFlag,
542
- ui
543
- }) => {
544
- return ui !== null && ui !== void 0 ? ui : /*#__PURE__*/(0, _jsxRuntime.jsx)(FieldItem, {
545
- field: field,
546
- isVisible: false,
544
+ isDefined(field) && !(view[isVisibleFlag] ?? true)
545
+ )
546
+ );
547
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_components.__experimentalVStack, { className: "dataviews-field-control", spacing: 6, children: [
548
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.__experimentalVStack, { className: "dataviews-view-config__properties", spacing: 0, children: (visibleLockedFields.length > 0 || !!visibleFields?.length) && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_components.__experimentalItemGroup, { isBordered: true, isSeparated: true, children: [
549
+ visibleLockedFields.map(
550
+ ({ field, isVisibleFlag, ui }) => {
551
+ return ui ?? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
552
+ FieldItem,
553
+ {
554
+ field,
555
+ isVisible: true,
547
556
  onToggleVisibility: () => {
548
557
  onChangeView({
549
558
  ...view,
550
- [isVisibleFlag]: true
559
+ [isVisibleFlag]: false
551
560
  });
552
561
  },
553
562
  canMove: false
554
- }, field.id);
555
- }), hiddenFields.map(field => /*#__PURE__*/(0, _jsxRuntime.jsx)(RegularFieldItem, {
556
- field: field,
557
- view: view,
558
- onChangeView: onChangeView
559
- }, field.id))]
560
- })
561
- })]
562
- })]
563
- });
563
+ },
564
+ field.id
565
+ );
566
+ }
567
+ ),
568
+ visibleFields.map((field, index) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
569
+ RegularFieldItem,
570
+ {
571
+ field,
572
+ view,
573
+ onChangeView,
574
+ index
575
+ },
576
+ field.id
577
+ ))
578
+ ] }) }),
579
+ (!!hiddenFields?.length || !!hiddenLockedFields.length) && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_components.__experimentalVStack, { spacing: 4, children: [
580
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.BaseControl.VisualLabel, { style: { margin: 0 }, children: (0, import_i18n.__)("Hidden") }),
581
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
582
+ import_components.__experimentalVStack,
583
+ {
584
+ className: "dataviews-view-config__properties",
585
+ spacing: 0,
586
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_components.__experimentalItemGroup, { isBordered: true, isSeparated: true, children: [
587
+ hiddenLockedFields.length > 0 && hiddenLockedFields.map(
588
+ ({ field, isVisibleFlag, ui }) => {
589
+ return ui ?? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
590
+ FieldItem,
591
+ {
592
+ field,
593
+ isVisible: false,
594
+ onToggleVisibility: () => {
595
+ onChangeView({
596
+ ...view,
597
+ [isVisibleFlag]: true
598
+ });
599
+ },
600
+ canMove: false
601
+ },
602
+ field.id
603
+ );
604
+ }
605
+ ),
606
+ hiddenFields.map((field) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
607
+ RegularFieldItem,
608
+ {
609
+ field,
610
+ view,
611
+ onChangeView
612
+ },
613
+ field.id
614
+ ))
615
+ ] })
616
+ }
617
+ )
618
+ ] })
619
+ ] });
564
620
  }
565
621
  function SettingsSection({
566
622
  title,
567
623
  description,
568
624
  children
569
625
  }) {
570
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalGrid, {
571
- columns: 12,
572
- className: "dataviews-settings-section",
573
- gap: 4,
574
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
575
- className: "dataviews-settings-section__sidebar",
576
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalHeading, {
577
- level: 2,
578
- className: "dataviews-settings-section__title",
579
- children: title
580
- }), description && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalText, {
581
- variant: "muted",
582
- className: "dataviews-settings-section__description",
583
- children: description
584
- })]
585
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalGrid, {
586
- columns: 8,
587
- gap: 4,
588
- className: "dataviews-settings-section__content",
589
- children: children
590
- })]
591
- });
626
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_components.__experimentalGrid, { columns: 12, className: "dataviews-settings-section", gap: 4, children: [
627
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "dataviews-settings-section__sidebar", children: [
628
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
629
+ import_components.__experimentalHeading,
630
+ {
631
+ level: 2,
632
+ className: "dataviews-settings-section__title",
633
+ children: title
634
+ }
635
+ ),
636
+ description && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
637
+ import_components.__experimentalText,
638
+ {
639
+ variant: "muted",
640
+ className: "dataviews-settings-section__description",
641
+ children: description
642
+ }
643
+ )
644
+ ] }),
645
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
646
+ import_components.__experimentalGrid,
647
+ {
648
+ columns: 8,
649
+ gap: 4,
650
+ className: "dataviews-settings-section__content",
651
+ children
652
+ }
653
+ )
654
+ ] });
592
655
  }
593
656
  function DataviewsViewConfigDropdown() {
594
- const {
595
- view
596
- } = (0, _element.useContext)(_dataviewsContext.default);
597
- const popoverId = (0, _compose.useInstanceId)(_DataViewsViewConfig, 'dataviews-view-config-dropdown');
598
- const activeLayout = _dataviewsLayouts.VIEW_LAYOUTS.find(layout => layout.type === view.type);
599
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Dropdown, {
600
- expandOnMobile: true,
601
- popoverProps: {
602
- ...DATAVIEWS_CONFIG_POPOVER_PROPS,
603
- id: popoverId
604
- },
605
- renderToggle: ({
606
- onToggle,
607
- isOpen
608
- }) => {
609
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
610
- size: "compact",
611
- icon: _icons.cog,
612
- label: (0, _i18n._x)('View options', 'View is used as a noun'),
613
- onClick: onToggle,
614
- "aria-expanded": isOpen ? 'true' : 'false',
615
- "aria-controls": popoverId
616
- });
617
- },
618
- renderContent: () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalDropdownContentWrapper, {
619
- paddingSize: "medium",
620
- className: "dataviews-config__popover-content-wrapper",
621
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalVStack, {
622
- className: "dataviews-view-config",
623
- spacing: 6,
624
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(SettingsSection, {
625
- title: (0, _i18n.__)('Appearance'),
626
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
627
- expanded: true,
628
- className: "is-divided-in-two",
629
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(SortFieldControl, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(SortDirectionControl, {})]
630
- }), !!activeLayout?.viewConfigOptions && /*#__PURE__*/(0, _jsxRuntime.jsx)(activeLayout.viewConfigOptions, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_infiniteScrollToggle.default, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(ItemsPerPageControl, {})]
631
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(SettingsSection, {
632
- title: (0, _i18n.__)('Properties'),
633
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(FieldControl, {})
634
- })]
635
- })
636
- })
637
- });
657
+ const { view } = (0, import_element.useContext)(import_dataviews_context.default);
658
+ const popoverId = (0, import_compose.useInstanceId)(
659
+ _DataViewsViewConfig,
660
+ "dataviews-view-config-dropdown"
661
+ );
662
+ const activeLayout = import_dataviews_layouts.VIEW_LAYOUTS.find(
663
+ (layout) => layout.type === view.type
664
+ );
665
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
666
+ import_components.Dropdown,
667
+ {
668
+ expandOnMobile: true,
669
+ popoverProps: {
670
+ ...DATAVIEWS_CONFIG_POPOVER_PROPS,
671
+ id: popoverId
672
+ },
673
+ renderToggle: ({ onToggle, isOpen }) => {
674
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
675
+ import_components.Button,
676
+ {
677
+ size: "compact",
678
+ icon: import_icons.cog,
679
+ label: (0, import_i18n._x)("View options", "View is used as a noun"),
680
+ onClick: onToggle,
681
+ "aria-expanded": isOpen ? "true" : "false",
682
+ "aria-controls": popoverId
683
+ }
684
+ );
685
+ },
686
+ renderContent: () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
687
+ import_components.__experimentalDropdownContentWrapper,
688
+ {
689
+ paddingSize: "medium",
690
+ className: "dataviews-config__popover-content-wrapper",
691
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_components.__experimentalVStack, { className: "dataviews-view-config", spacing: 6, children: [
692
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(SettingsSection, { title: (0, import_i18n.__)("Appearance"), children: [
693
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_components.__experimentalHStack, { expanded: true, className: "is-divided-in-two", children: [
694
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SortFieldControl, {}),
695
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SortDirectionControl, {})
696
+ ] }),
697
+ !!activeLayout?.viewConfigOptions && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(activeLayout.viewConfigOptions, {}),
698
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_infinite_scroll_toggle.default, {}),
699
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ItemsPerPageControl, {})
700
+ ] }),
701
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SettingsSection, { title: (0, import_i18n.__)("Properties"), children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(FieldControl, {}) })
702
+ ] })
703
+ }
704
+ )
705
+ }
706
+ );
638
707
  }
639
708
  function _DataViewsViewConfig() {
640
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
641
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(ViewTypeMenu, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(DataviewsViewConfigDropdown, {})]
642
- });
709
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
710
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ViewTypeMenu, {}),
711
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DataviewsViewConfigDropdown, {})
712
+ ] });
643
713
  }
644
- const DataViewsViewConfig = (0, _element.memo)(_DataViewsViewConfig);
645
- var _default = exports.default = DataViewsViewConfig;
646
- //# sourceMappingURL=index.js.map
714
+ const DataViewsViewConfig = (0, import_element.memo)(_DataViewsViewConfig);
715
+ var dataviews_view_config_default = DataViewsViewConfig;
716
+ // Annotate the CommonJS export names for ESM import in node:
717
+ 0 && (module.exports = {
718
+ DataviewsViewConfigDropdown,
719
+ ViewTypeMenu
720
+ });
721
+ //# sourceMappingURL=index.js.map