@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 +1,7 @@
1
- {"version":3,"names":["__","arrowDown","arrowUp","OPERATOR_IS","OPERATOR_IS_NOT","OPERATOR_IS_ANY","OPERATOR_IS_NONE","OPERATOR_IS_ALL","OPERATOR_IS_NOT_ALL","OPERATOR_LESS_THAN","OPERATOR_GREATER_THAN","OPERATOR_LESS_THAN_OR_EQUAL","OPERATOR_GREATER_THAN_OR_EQUAL","OPERATOR_BEFORE","OPERATOR_AFTER","OPERATOR_BEFORE_INC","OPERATOR_AFTER_INC","OPERATOR_CONTAINS","OPERATOR_NOT_CONTAINS","OPERATOR_STARTS_WITH","OPERATOR_BETWEEN","OPERATOR_ON","OPERATOR_NOT_ON","OPERATOR_IN_THE_PAST","OPERATOR_OVER","ALL_OPERATORS","SINGLE_SELECTION_OPERATORS","OPERATORS","key","label","SORTING_DIRECTIONS","sortArrows","asc","desc","sortValues","sortLabels","sortIcons","LAYOUT_TABLE","LAYOUT_GRID","LAYOUT_LIST","LAYOUT_PICKER_GRID"],"sources":["@wordpress/dataviews/src/constants.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { arrowDown, arrowUp } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport type { Operator } from './types';\n\n// Filter operators.\nexport const OPERATOR_IS = 'is';\nexport const OPERATOR_IS_NOT = 'isNot';\nexport const OPERATOR_IS_ANY = 'isAny';\nexport const OPERATOR_IS_NONE = 'isNone';\nexport const OPERATOR_IS_ALL = 'isAll';\nexport const OPERATOR_IS_NOT_ALL = 'isNotAll';\nexport const OPERATOR_LESS_THAN = 'lessThan';\nexport const OPERATOR_GREATER_THAN = 'greaterThan';\nexport const OPERATOR_LESS_THAN_OR_EQUAL = 'lessThanOrEqual';\nexport const OPERATOR_GREATER_THAN_OR_EQUAL = 'greaterThanOrEqual';\nexport const OPERATOR_BEFORE = 'before';\nexport const OPERATOR_AFTER = 'after';\nexport const OPERATOR_BEFORE_INC = 'beforeInc';\nexport const OPERATOR_AFTER_INC = 'afterInc';\nexport const OPERATOR_CONTAINS = 'contains';\nexport const OPERATOR_NOT_CONTAINS = 'notContains';\nexport const OPERATOR_STARTS_WITH = 'startsWith';\nexport const OPERATOR_BETWEEN = 'between';\nexport const OPERATOR_ON = 'on';\nexport const OPERATOR_NOT_ON = 'notOn';\nexport const OPERATOR_IN_THE_PAST = 'inThePast';\nexport const OPERATOR_OVER = 'over';\n\nexport const ALL_OPERATORS: Operator[] = [\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_NOT_ALL,\n\tOPERATOR_LESS_THAN,\n\tOPERATOR_GREATER_THAN,\n\tOPERATOR_LESS_THAN_OR_EQUAL,\n\tOPERATOR_GREATER_THAN_OR_EQUAL,\n\tOPERATOR_BEFORE,\n\tOPERATOR_AFTER,\n\tOPERATOR_BEFORE_INC,\n\tOPERATOR_AFTER_INC,\n\tOPERATOR_CONTAINS,\n\tOPERATOR_NOT_CONTAINS,\n\tOPERATOR_STARTS_WITH,\n\tOPERATOR_BETWEEN,\n\tOPERATOR_ON,\n\tOPERATOR_NOT_ON,\n\tOPERATOR_IN_THE_PAST,\n\tOPERATOR_OVER,\n];\n\nexport const SINGLE_SELECTION_OPERATORS: Operator[] = [\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_LESS_THAN,\n\tOPERATOR_GREATER_THAN,\n\tOPERATOR_LESS_THAN_OR_EQUAL,\n\tOPERATOR_GREATER_THAN_OR_EQUAL,\n\tOPERATOR_BEFORE,\n\tOPERATOR_AFTER,\n\tOPERATOR_BEFORE_INC,\n\tOPERATOR_AFTER_INC,\n\tOPERATOR_CONTAINS,\n\tOPERATOR_NOT_CONTAINS,\n\tOPERATOR_STARTS_WITH,\n\tOPERATOR_ON,\n\tOPERATOR_NOT_ON,\n];\n\nexport const OPERATORS: Record< Operator, { key: string; label: string } > = {\n\t[ OPERATOR_IS ]: {\n\t\tkey: 'is-filter',\n\t\tlabel: __( 'Is' ),\n\t},\n\t[ OPERATOR_IS_NOT ]: {\n\t\tkey: 'is-not-filter',\n\t\tlabel: __( 'Is not' ),\n\t},\n\t[ OPERATOR_IS_ANY ]: {\n\t\tkey: 'is-any-filter',\n\t\tlabel: __( 'Is any' ),\n\t},\n\t[ OPERATOR_IS_NONE ]: {\n\t\tkey: 'is-none-filter',\n\t\tlabel: __( 'Is none' ),\n\t},\n\t[ OPERATOR_IS_ALL ]: {\n\t\tkey: 'is-all-filter',\n\t\tlabel: __( 'Is all' ),\n\t},\n\t[ OPERATOR_IS_NOT_ALL ]: {\n\t\tkey: 'is-not-all-filter',\n\t\tlabel: __( 'Is not all' ),\n\t},\n\t[ OPERATOR_LESS_THAN ]: {\n\t\tkey: 'less-than-filter',\n\t\tlabel: __( 'Less than' ),\n\t},\n\t[ OPERATOR_GREATER_THAN ]: {\n\t\tkey: 'greater-than-filter',\n\t\tlabel: __( 'Greater than' ),\n\t},\n\t[ OPERATOR_LESS_THAN_OR_EQUAL ]: {\n\t\tkey: 'less-than-or-equal-filter',\n\t\tlabel: __( 'Less than or equal' ),\n\t},\n\t[ OPERATOR_GREATER_THAN_OR_EQUAL ]: {\n\t\tkey: 'greater-than-or-equal-filter',\n\t\tlabel: __( 'Greater than or equal' ),\n\t},\n\t[ OPERATOR_BEFORE ]: {\n\t\tkey: 'before-filter',\n\t\tlabel: __( 'Before' ),\n\t},\n\t[ OPERATOR_AFTER ]: {\n\t\tkey: 'after-filter',\n\t\tlabel: __( 'After' ),\n\t},\n\t[ OPERATOR_BEFORE_INC ]: {\n\t\tkey: 'before-inc-filter',\n\t\tlabel: __( 'Before (inc)' ),\n\t},\n\t[ OPERATOR_AFTER_INC ]: {\n\t\tkey: 'after-inc-filter',\n\t\tlabel: __( 'After (inc)' ),\n\t},\n\t[ OPERATOR_CONTAINS ]: {\n\t\tkey: 'contains-filter',\n\t\tlabel: __( 'Contains' ),\n\t},\n\t[ OPERATOR_NOT_CONTAINS ]: {\n\t\tkey: 'not-contains-filter',\n\t\tlabel: __( \"Doesn't contain\" ),\n\t},\n\t[ OPERATOR_STARTS_WITH ]: {\n\t\tkey: 'starts-with-filter',\n\t\tlabel: __( 'Starts with' ),\n\t},\n\t[ OPERATOR_BETWEEN ]: {\n\t\tkey: 'between-filter',\n\t\tlabel: __( 'Between (inc)' ),\n\t},\n\t[ OPERATOR_ON ]: {\n\t\tkey: 'on-filter',\n\t\tlabel: __( 'On' ),\n\t},\n\t[ OPERATOR_NOT_ON ]: {\n\t\tkey: 'not-on-filter',\n\t\tlabel: __( 'Not on' ),\n\t},\n\t[ OPERATOR_IN_THE_PAST ]: {\n\t\tkey: 'in-the-past-filter',\n\t\tlabel: __( 'In the past' ),\n\t},\n\t[ OPERATOR_OVER ]: {\n\t\tkey: 'over-filter',\n\t\tlabel: __( 'Over' ),\n\t},\n};\n\nexport const SORTING_DIRECTIONS = [ 'asc', 'desc' ] as const;\nexport const sortArrows = { asc: '↑', desc: '↓' };\nexport const sortValues = { asc: 'ascending', desc: 'descending' } as const;\nexport const sortLabels = {\n\tasc: __( 'Sort ascending' ),\n\tdesc: __( 'Sort descending' ),\n};\nexport const sortIcons = {\n\tasc: arrowUp,\n\tdesc: arrowDown,\n};\n\n// View layouts.\nexport const LAYOUT_TABLE = 'table';\nexport const LAYOUT_GRID = 'grid';\nexport const LAYOUT_LIST = 'list';\n\n// Picker view layouts.\nexport const LAYOUT_PICKER_GRID = 'pickerGrid';\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,SAAS,EAAEC,OAAO,QAAQ,kBAAkB;;AAErD;AACA;AACA;;AAGA;AACA,OAAO,MAAMC,WAAW,GAAG,IAAI;AAC/B,OAAO,MAAMC,eAAe,GAAG,OAAO;AACtC,OAAO,MAAMC,eAAe,GAAG,OAAO;AACtC,OAAO,MAAMC,gBAAgB,GAAG,QAAQ;AACxC,OAAO,MAAMC,eAAe,GAAG,OAAO;AACtC,OAAO,MAAMC,mBAAmB,GAAG,UAAU;AAC7C,OAAO,MAAMC,kBAAkB,GAAG,UAAU;AAC5C,OAAO,MAAMC,qBAAqB,GAAG,aAAa;AAClD,OAAO,MAAMC,2BAA2B,GAAG,iBAAiB;AAC5D,OAAO,MAAMC,8BAA8B,GAAG,oBAAoB;AAClE,OAAO,MAAMC,eAAe,GAAG,QAAQ;AACvC,OAAO,MAAMC,cAAc,GAAG,OAAO;AACrC,OAAO,MAAMC,mBAAmB,GAAG,WAAW;AAC9C,OAAO,MAAMC,kBAAkB,GAAG,UAAU;AAC5C,OAAO,MAAMC,iBAAiB,GAAG,UAAU;AAC3C,OAAO,MAAMC,qBAAqB,GAAG,aAAa;AAClD,OAAO,MAAMC,oBAAoB,GAAG,YAAY;AAChD,OAAO,MAAMC,gBAAgB,GAAG,SAAS;AACzC,OAAO,MAAMC,WAAW,GAAG,IAAI;AAC/B,OAAO,MAAMC,eAAe,GAAG,OAAO;AACtC,OAAO,MAAMC,oBAAoB,GAAG,WAAW;AAC/C,OAAO,MAAMC,aAAa,GAAG,MAAM;AAEnC,OAAO,MAAMC,aAAyB,GAAG,CACxCtB,WAAW,EACXC,eAAe,EACfC,eAAe,EACfC,gBAAgB,EAChBC,eAAe,EACfC,mBAAmB,EACnBC,kBAAkB,EAClBC,qBAAqB,EACrBC,2BAA2B,EAC3BC,8BAA8B,EAC9BC,eAAe,EACfC,cAAc,EACdC,mBAAmB,EACnBC,kBAAkB,EAClBC,iBAAiB,EACjBC,qBAAqB,EACrBC,oBAAoB,EACpBC,gBAAgB,EAChBC,WAAW,EACXC,eAAe,EACfC,oBAAoB,EACpBC,aAAa,CACb;AAED,OAAO,MAAME,0BAAsC,GAAG,CACrDvB,WAAW,EACXC,eAAe,EACfK,kBAAkB,EAClBC,qBAAqB,EACrBC,2BAA2B,EAC3BC,8BAA8B,EAC9BC,eAAe,EACfC,cAAc,EACdC,mBAAmB,EACnBC,kBAAkB,EAClBC,iBAAiB,EACjBC,qBAAqB,EACrBC,oBAAoB,EACpBE,WAAW,EACXC,eAAe,CACf;AAED,OAAO,MAAMK,SAA6D,GAAG;EAC5E,CAAExB,WAAW,GAAI;IAChByB,GAAG,EAAE,WAAW;IAChBC,KAAK,EAAE7B,EAAE,CAAE,IAAK;EACjB,CAAC;EACD,CAAEI,eAAe,GAAI;IACpBwB,GAAG,EAAE,eAAe;IACpBC,KAAK,EAAE7B,EAAE,CAAE,QAAS;EACrB,CAAC;EACD,CAAEK,eAAe,GAAI;IACpBuB,GAAG,EAAE,eAAe;IACpBC,KAAK,EAAE7B,EAAE,CAAE,QAAS;EACrB,CAAC;EACD,CAAEM,gBAAgB,GAAI;IACrBsB,GAAG,EAAE,gBAAgB;IACrBC,KAAK,EAAE7B,EAAE,CAAE,SAAU;EACtB,CAAC;EACD,CAAEO,eAAe,GAAI;IACpBqB,GAAG,EAAE,eAAe;IACpBC,KAAK,EAAE7B,EAAE,CAAE,QAAS;EACrB,CAAC;EACD,CAAEQ,mBAAmB,GAAI;IACxBoB,GAAG,EAAE,mBAAmB;IACxBC,KAAK,EAAE7B,EAAE,CAAE,YAAa;EACzB,CAAC;EACD,CAAES,kBAAkB,GAAI;IACvBmB,GAAG,EAAE,kBAAkB;IACvBC,KAAK,EAAE7B,EAAE,CAAE,WAAY;EACxB,CAAC;EACD,CAAEU,qBAAqB,GAAI;IAC1BkB,GAAG,EAAE,qBAAqB;IAC1BC,KAAK,EAAE7B,EAAE,CAAE,cAAe;EAC3B,CAAC;EACD,CAAEW,2BAA2B,GAAI;IAChCiB,GAAG,EAAE,2BAA2B;IAChCC,KAAK,EAAE7B,EAAE,CAAE,oBAAqB;EACjC,CAAC;EACD,CAAEY,8BAA8B,GAAI;IACnCgB,GAAG,EAAE,8BAA8B;IACnCC,KAAK,EAAE7B,EAAE,CAAE,uBAAwB;EACpC,CAAC;EACD,CAAEa,eAAe,GAAI;IACpBe,GAAG,EAAE,eAAe;IACpBC,KAAK,EAAE7B,EAAE,CAAE,QAAS;EACrB,CAAC;EACD,CAAEc,cAAc,GAAI;IACnBc,GAAG,EAAE,cAAc;IACnBC,KAAK,EAAE7B,EAAE,CAAE,OAAQ;EACpB,CAAC;EACD,CAAEe,mBAAmB,GAAI;IACxBa,GAAG,EAAE,mBAAmB;IACxBC,KAAK,EAAE7B,EAAE,CAAE,cAAe;EAC3B,CAAC;EACD,CAAEgB,kBAAkB,GAAI;IACvBY,GAAG,EAAE,kBAAkB;IACvBC,KAAK,EAAE7B,EAAE,CAAE,aAAc;EAC1B,CAAC;EACD,CAAEiB,iBAAiB,GAAI;IACtBW,GAAG,EAAE,iBAAiB;IACtBC,KAAK,EAAE7B,EAAE,CAAE,UAAW;EACvB,CAAC;EACD,CAAEkB,qBAAqB,GAAI;IAC1BU,GAAG,EAAE,qBAAqB;IAC1BC,KAAK,EAAE7B,EAAE,CAAE,iBAAkB;EAC9B,CAAC;EACD,CAAEmB,oBAAoB,GAAI;IACzBS,GAAG,EAAE,oBAAoB;IACzBC,KAAK,EAAE7B,EAAE,CAAE,aAAc;EAC1B,CAAC;EACD,CAAEoB,gBAAgB,GAAI;IACrBQ,GAAG,EAAE,gBAAgB;IACrBC,KAAK,EAAE7B,EAAE,CAAE,eAAgB;EAC5B,CAAC;EACD,CAAEqB,WAAW,GAAI;IAChBO,GAAG,EAAE,WAAW;IAChBC,KAAK,EAAE7B,EAAE,CAAE,IAAK;EACjB,CAAC;EACD,CAAEsB,eAAe,GAAI;IACpBM,GAAG,EAAE,eAAe;IACpBC,KAAK,EAAE7B,EAAE,CAAE,QAAS;EACrB,CAAC;EACD,CAAEuB,oBAAoB,GAAI;IACzBK,GAAG,EAAE,oBAAoB;IACzBC,KAAK,EAAE7B,EAAE,CAAE,aAAc;EAC1B,CAAC;EACD,CAAEwB,aAAa,GAAI;IAClBI,GAAG,EAAE,aAAa;IAClBC,KAAK,EAAE7B,EAAE,CAAE,MAAO;EACnB;AACD,CAAC;AAED,OAAO,MAAM8B,kBAAkB,GAAG,CAAE,KAAK,EAAE,MAAM,CAAW;AAC5D,OAAO,MAAMC,UAAU,GAAG;EAAEC,GAAG,EAAE,GAAG;EAAEC,IAAI,EAAE;AAAI,CAAC;AACjD,OAAO,MAAMC,UAAU,GAAG;EAAEF,GAAG,EAAE,WAAW;EAAEC,IAAI,EAAE;AAAa,CAAU;AAC3E,OAAO,MAAME,UAAU,GAAG;EACzBH,GAAG,EAAEhC,EAAE,CAAE,gBAAiB,CAAC;EAC3BiC,IAAI,EAAEjC,EAAE,CAAE,iBAAkB;AAC7B,CAAC;AACD,OAAO,MAAMoC,SAAS,GAAG;EACxBJ,GAAG,EAAE9B,OAAO;EACZ+B,IAAI,EAAEhC;AACP,CAAC;;AAED;AACA,OAAO,MAAMoC,YAAY,GAAG,OAAO;AACnC,OAAO,MAAMC,WAAW,GAAG,MAAM;AACjC,OAAO,MAAMC,WAAW,GAAG,MAAM;;AAEjC;AACA,OAAO,MAAMC,kBAAkB,GAAG,YAAY","ignoreList":[]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/constants.ts"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { arrowDown, arrowUp } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport type { Operator } from './types';\n\n// Filter operators.\nexport const OPERATOR_IS = 'is';\nexport const OPERATOR_IS_NOT = 'isNot';\nexport const OPERATOR_IS_ANY = 'isAny';\nexport const OPERATOR_IS_NONE = 'isNone';\nexport const OPERATOR_IS_ALL = 'isAll';\nexport const OPERATOR_IS_NOT_ALL = 'isNotAll';\nexport const OPERATOR_LESS_THAN = 'lessThan';\nexport const OPERATOR_GREATER_THAN = 'greaterThan';\nexport const OPERATOR_LESS_THAN_OR_EQUAL = 'lessThanOrEqual';\nexport const OPERATOR_GREATER_THAN_OR_EQUAL = 'greaterThanOrEqual';\nexport const OPERATOR_BEFORE = 'before';\nexport const OPERATOR_AFTER = 'after';\nexport const OPERATOR_BEFORE_INC = 'beforeInc';\nexport const OPERATOR_AFTER_INC = 'afterInc';\nexport const OPERATOR_CONTAINS = 'contains';\nexport const OPERATOR_NOT_CONTAINS = 'notContains';\nexport const OPERATOR_STARTS_WITH = 'startsWith';\nexport const OPERATOR_BETWEEN = 'between';\nexport const OPERATOR_ON = 'on';\nexport const OPERATOR_NOT_ON = 'notOn';\nexport const OPERATOR_IN_THE_PAST = 'inThePast';\nexport const OPERATOR_OVER = 'over';\n\nexport const ALL_OPERATORS: Operator[] = [\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_NOT_ALL,\n\tOPERATOR_LESS_THAN,\n\tOPERATOR_GREATER_THAN,\n\tOPERATOR_LESS_THAN_OR_EQUAL,\n\tOPERATOR_GREATER_THAN_OR_EQUAL,\n\tOPERATOR_BEFORE,\n\tOPERATOR_AFTER,\n\tOPERATOR_BEFORE_INC,\n\tOPERATOR_AFTER_INC,\n\tOPERATOR_CONTAINS,\n\tOPERATOR_NOT_CONTAINS,\n\tOPERATOR_STARTS_WITH,\n\tOPERATOR_BETWEEN,\n\tOPERATOR_ON,\n\tOPERATOR_NOT_ON,\n\tOPERATOR_IN_THE_PAST,\n\tOPERATOR_OVER,\n];\n\nexport const SINGLE_SELECTION_OPERATORS: Operator[] = [\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_LESS_THAN,\n\tOPERATOR_GREATER_THAN,\n\tOPERATOR_LESS_THAN_OR_EQUAL,\n\tOPERATOR_GREATER_THAN_OR_EQUAL,\n\tOPERATOR_BEFORE,\n\tOPERATOR_AFTER,\n\tOPERATOR_BEFORE_INC,\n\tOPERATOR_AFTER_INC,\n\tOPERATOR_CONTAINS,\n\tOPERATOR_NOT_CONTAINS,\n\tOPERATOR_STARTS_WITH,\n\tOPERATOR_ON,\n\tOPERATOR_NOT_ON,\n];\n\nexport const OPERATORS: Record< Operator, { key: string; label: string } > = {\n\t[ OPERATOR_IS ]: {\n\t\tkey: 'is-filter',\n\t\tlabel: __( 'Is' ),\n\t},\n\t[ OPERATOR_IS_NOT ]: {\n\t\tkey: 'is-not-filter',\n\t\tlabel: __( 'Is not' ),\n\t},\n\t[ OPERATOR_IS_ANY ]: {\n\t\tkey: 'is-any-filter',\n\t\tlabel: __( 'Is any' ),\n\t},\n\t[ OPERATOR_IS_NONE ]: {\n\t\tkey: 'is-none-filter',\n\t\tlabel: __( 'Is none' ),\n\t},\n\t[ OPERATOR_IS_ALL ]: {\n\t\tkey: 'is-all-filter',\n\t\tlabel: __( 'Is all' ),\n\t},\n\t[ OPERATOR_IS_NOT_ALL ]: {\n\t\tkey: 'is-not-all-filter',\n\t\tlabel: __( 'Is not all' ),\n\t},\n\t[ OPERATOR_LESS_THAN ]: {\n\t\tkey: 'less-than-filter',\n\t\tlabel: __( 'Less than' ),\n\t},\n\t[ OPERATOR_GREATER_THAN ]: {\n\t\tkey: 'greater-than-filter',\n\t\tlabel: __( 'Greater than' ),\n\t},\n\t[ OPERATOR_LESS_THAN_OR_EQUAL ]: {\n\t\tkey: 'less-than-or-equal-filter',\n\t\tlabel: __( 'Less than or equal' ),\n\t},\n\t[ OPERATOR_GREATER_THAN_OR_EQUAL ]: {\n\t\tkey: 'greater-than-or-equal-filter',\n\t\tlabel: __( 'Greater than or equal' ),\n\t},\n\t[ OPERATOR_BEFORE ]: {\n\t\tkey: 'before-filter',\n\t\tlabel: __( 'Before' ),\n\t},\n\t[ OPERATOR_AFTER ]: {\n\t\tkey: 'after-filter',\n\t\tlabel: __( 'After' ),\n\t},\n\t[ OPERATOR_BEFORE_INC ]: {\n\t\tkey: 'before-inc-filter',\n\t\tlabel: __( 'Before (inc)' ),\n\t},\n\t[ OPERATOR_AFTER_INC ]: {\n\t\tkey: 'after-inc-filter',\n\t\tlabel: __( 'After (inc)' ),\n\t},\n\t[ OPERATOR_CONTAINS ]: {\n\t\tkey: 'contains-filter',\n\t\tlabel: __( 'Contains' ),\n\t},\n\t[ OPERATOR_NOT_CONTAINS ]: {\n\t\tkey: 'not-contains-filter',\n\t\tlabel: __( \"Doesn't contain\" ),\n\t},\n\t[ OPERATOR_STARTS_WITH ]: {\n\t\tkey: 'starts-with-filter',\n\t\tlabel: __( 'Starts with' ),\n\t},\n\t[ OPERATOR_BETWEEN ]: {\n\t\tkey: 'between-filter',\n\t\tlabel: __( 'Between (inc)' ),\n\t},\n\t[ OPERATOR_ON ]: {\n\t\tkey: 'on-filter',\n\t\tlabel: __( 'On' ),\n\t},\n\t[ OPERATOR_NOT_ON ]: {\n\t\tkey: 'not-on-filter',\n\t\tlabel: __( 'Not on' ),\n\t},\n\t[ OPERATOR_IN_THE_PAST ]: {\n\t\tkey: 'in-the-past-filter',\n\t\tlabel: __( 'In the past' ),\n\t},\n\t[ OPERATOR_OVER ]: {\n\t\tkey: 'over-filter',\n\t\tlabel: __( 'Over' ),\n\t},\n};\n\nexport const SORTING_DIRECTIONS = [ 'asc', 'desc' ] as const;\nexport const sortArrows = { asc: '\u2191', desc: '\u2193' };\nexport const sortValues = { asc: 'ascending', desc: 'descending' } as const;\nexport const sortLabels = {\n\tasc: __( 'Sort ascending' ),\n\tdesc: __( 'Sort descending' ),\n};\nexport const sortIcons = {\n\tasc: arrowUp,\n\tdesc: arrowDown,\n};\n\n// View layouts.\nexport const LAYOUT_TABLE = 'table';\nexport const LAYOUT_GRID = 'grid';\nexport const LAYOUT_LIST = 'list';\n\n// Picker view layouts.\nexport const LAYOUT_PICKER_GRID = 'pickerGrid';\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,151 +1,92 @@
1
- /**
2
- * External dependencies
3
- */
4
- import deepMerge from 'deepmerge';
5
-
6
- /**
7
- * WordPress dependencies
8
- */
9
- import { privateApis } from '@wordpress/components';
10
- import { useCallback, useMemo, useState } from '@wordpress/element';
11
- import { _n, sprintf } from '@wordpress/i18n';
12
-
13
- /**
14
- * Internal dependencies
15
- */
16
-
17
- import { unlock } from '../lock-unlock';
18
- import { jsx as _jsx } from "react/jsx-runtime";
19
- const {
20
- ValidatedFormTokenField
21
- } = unlock(privateApis);
22
- export default function ArrayControl({
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { privateApis, Spinner } from "@wordpress/components";
3
+ import { useCallback, useMemo } from "@wordpress/element";
4
+ import { unlock } from "../lock-unlock";
5
+ import getCustomValidity from "./utils/get-custom-validity";
6
+ import useElements from "../hooks/use-elements";
7
+ const { ValidatedFormTokenField } = unlock(privateApis);
8
+ function ArrayControl({
23
9
  data,
24
10
  field,
25
11
  onChange,
26
- hideLabelFromVision
12
+ hideLabelFromVision,
13
+ validity
27
14
  }) {
28
- const {
29
- label,
30
- placeholder,
31
- elements,
32
- getValue,
33
- setValue
34
- } = field;
35
- const value = getValue({
36
- item: data
15
+ const { label, placeholder, getValue, setValue, isValid } = field;
16
+ const value = getValue({ item: data });
17
+ const { elements, isLoading } = useElements({
18
+ elements: field.elements,
19
+ getElements: field.getElements
37
20
  });
38
- const [customValidity, setCustomValidity] = useState(undefined);
39
-
40
- // Convert stored values to element objects for the token field
41
- const arrayValueAsElements = useMemo(() => Array.isArray(value) ? value.map(token => {
42
- const element = elements?.find(suggestion => suggestion.value === token);
43
- return element || {
44
- value: token,
45
- label: token
46
- };
47
- }) : [], [value, elements]);
48
- const validateTokens = useCallback(tokens => {
49
- // Extract actual values from tokens for validation
50
- const tokenValues = tokens.map(token => {
51
- if (typeof token === 'object' && 'value' in token) {
52
- return token.value;
53
- }
54
- return token;
55
- });
56
-
57
- // First, check if elements validation is required and any tokens are invalid
58
- if (field.isValid?.elements && elements) {
59
- const invalidTokens = tokenValues.filter(tokenValue => {
60
- return !elements.some(element => element.value === tokenValue);
21
+ const arrayValueAsElements = useMemo(
22
+ () => Array.isArray(value) ? value.map((token) => {
23
+ const element = elements?.find(
24
+ (suggestion) => suggestion.value === token
25
+ );
26
+ return element || { value: token, label: token };
27
+ }) : [],
28
+ [value, elements]
29
+ );
30
+ const onChangeControl = useCallback(
31
+ (tokens) => {
32
+ const valueTokens = tokens.map((token) => {
33
+ if (typeof token === "object" && "value" in token) {
34
+ return token.value;
35
+ }
36
+ return token;
61
37
  });
62
- if (invalidTokens.length > 0) {
63
- setCustomValidity({
64
- type: 'invalid',
65
- message: sprintf(/* translators: %s: list of invalid tokens */
66
- _n('Please select from the available options: %s is invalid.', 'Please select from the available options: %s are invalid.', invalidTokens.length), invalidTokens.join(', '))
67
- });
68
- return;
69
- }
70
- }
71
-
72
- // Then check custom validation if provided.
73
- if (field.isValid?.custom) {
74
- const result = field.isValid?.custom?.(deepMerge(data, setValue({
75
- item: data,
76
- value: tokenValues
77
- })), field);
78
- if (result) {
79
- setCustomValidity({
80
- type: 'invalid',
81
- message: result
82
- });
83
- return;
84
- }
85
- }
86
-
87
- // If no validation errors, clear custom validity
88
- setCustomValidity(undefined);
89
- }, [elements, data, field, setValue]);
90
- const onChangeControl = useCallback(tokens => {
91
- const valueTokens = tokens.map(token => {
92
- if (typeof token === 'object' && 'value' in token) {
93
- return token.value;
94
- }
95
- // If it's a string, it's either a new suggestion value or user input
96
- return token;
97
- });
98
- onChange(setValue({
99
- item: data,
100
- value: valueTokens
101
- }));
102
- }, [onChange, setValue, data]);
103
- return /*#__PURE__*/_jsx(ValidatedFormTokenField, {
104
- required: !!field.isValid?.required,
105
- onValidate: validateTokens,
106
- customValidity: customValidity,
107
- label: hideLabelFromVision ? undefined : label,
108
- value: arrayValueAsElements,
109
- onChange: onChangeControl,
110
- placeholder: placeholder,
111
- suggestions: elements?.map(element => element.value),
112
- __experimentalValidateInput: token => {
113
- // If elements validation is required, check if token is valid
114
- if (field.isValid?.elements && elements) {
115
- return elements.some(element => element.value === token || element.label === token);
116
- }
117
-
118
- // For non-elements validation, allow all tokens
119
- return true;
120
- },
121
- __experimentalExpandOnFocus: elements && elements.length > 0,
122
- __experimentalShowHowTo: !field.isValid?.elements,
123
- displayTransform: token => {
124
- // For existing tokens (element objects), display their label
125
- if (typeof token === 'object' && 'label' in token) {
126
- return token.label;
127
- }
128
- // For suggestions (value strings), find the corresponding element and show its label
129
- if (typeof token === 'string' && elements) {
130
- const element = elements.find(el => el.value === token);
131
- return element?.label || token;
132
- }
133
- return token;
38
+ onChange(setValue({ item: data, value: valueTokens }));
134
39
  },
135
- __experimentalRenderItem: ({
136
- item
137
- }) => {
138
- // Custom rendering for suggestion items (item is a value string)
139
- if (typeof item === 'string' && elements) {
140
- const element = elements.find(el => el.value === item);
141
- return /*#__PURE__*/_jsx("span", {
142
- children: element?.label || item
143
- });
40
+ [onChange, setValue, data]
41
+ );
42
+ if (isLoading) {
43
+ return /* @__PURE__ */ jsx(Spinner, {});
44
+ }
45
+ return /* @__PURE__ */ jsx(
46
+ ValidatedFormTokenField,
47
+ {
48
+ required: !!isValid?.required,
49
+ customValidity: getCustomValidity(isValid, validity),
50
+ label: hideLabelFromVision ? void 0 : label,
51
+ value: arrayValueAsElements,
52
+ onChange: onChangeControl,
53
+ placeholder,
54
+ suggestions: elements?.map((element) => element.value),
55
+ __experimentalValidateInput: (token) => {
56
+ if (field.isValid?.elements && elements) {
57
+ return elements.some(
58
+ (element) => element.value === token || element.label === token
59
+ );
60
+ }
61
+ return true;
62
+ },
63
+ __experimentalExpandOnFocus: elements && elements.length > 0,
64
+ __experimentalShowHowTo: !field.isValid?.elements,
65
+ displayTransform: (token) => {
66
+ if (typeof token === "object" && "label" in token) {
67
+ return token.label;
68
+ }
69
+ if (typeof token === "string" && elements) {
70
+ const element = elements.find(
71
+ (el) => el.value === token
72
+ );
73
+ return element?.label || token;
74
+ }
75
+ return token;
76
+ },
77
+ __experimentalRenderItem: ({ item }) => {
78
+ if (typeof item === "string" && elements) {
79
+ const element = elements.find(
80
+ (el) => el.value === item
81
+ );
82
+ return /* @__PURE__ */ jsx("span", { children: element?.label || item });
83
+ }
84
+ return /* @__PURE__ */ jsx("span", { children: item });
144
85
  }
145
- return /*#__PURE__*/_jsx("span", {
146
- children: item
147
- });
148
86
  }
149
- });
87
+ );
150
88
  }
151
- //# sourceMappingURL=array.js.map
89
+ export {
90
+ ArrayControl as default
91
+ };
92
+ //# sourceMappingURL=array.js.map
@@ -1 +1,7 @@
1
- {"version":3,"names":["deepMerge","privateApis","useCallback","useMemo","useState","_n","sprintf","unlock","jsx","_jsx","ValidatedFormTokenField","ArrayControl","data","field","onChange","hideLabelFromVision","label","placeholder","elements","getValue","setValue","value","item","customValidity","setCustomValidity","undefined","arrayValueAsElements","Array","isArray","map","token","element","find","suggestion","validateTokens","tokens","tokenValues","isValid","invalidTokens","filter","tokenValue","some","length","type","message","join","custom","result","onChangeControl","valueTokens","required","onValidate","suggestions","__experimentalValidateInput","__experimentalExpandOnFocus","__experimentalShowHowTo","displayTransform","el","__experimentalRenderItem","children"],"sources":["@wordpress/dataviews/src/dataform-controls/array.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport deepMerge from 'deepmerge';\n\n/**\n * WordPress dependencies\n */\nimport { privateApis } from '@wordpress/components';\nimport { useCallback, useMemo, useState } from '@wordpress/element';\nimport { _n, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { DataFormControlProps } from '../types';\nimport { unlock } from '../lock-unlock';\n\nconst { ValidatedFormTokenField } = unlock( privateApis );\n\nexport default function ArrayControl< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\thideLabelFromVision,\n}: DataFormControlProps< Item > ) {\n\tconst { label, placeholder, elements, getValue, setValue } = field;\n\tconst value = getValue( { item: data } );\n\n\tconst [ customValidity, setCustomValidity ] = useState<\n\t\t| {\n\t\t\t\ttype: 'validating' | 'valid' | 'invalid';\n\t\t\t\tmessage: string;\n\t\t }\n\t\t| undefined\n\t>( undefined );\n\n\t// Convert stored values to element objects for the token field\n\tconst arrayValueAsElements = useMemo(\n\t\t() =>\n\t\t\tArray.isArray( value )\n\t\t\t\t? value.map( ( token ) => {\n\t\t\t\t\t\tconst element = elements?.find(\n\t\t\t\t\t\t\t( suggestion ) => suggestion.value === token\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn element || { value: token, label: token };\n\t\t\t\t } )\n\t\t\t\t: [],\n\t\t[ value, elements ]\n\t);\n\n\tconst validateTokens = useCallback(\n\t\t( tokens: ( string | { value: string; label?: string } )[] ) => {\n\t\t\t// Extract actual values from tokens for validation\n\t\t\tconst tokenValues = tokens.map( ( token ) => {\n\t\t\t\tif ( typeof token === 'object' && 'value' in token ) {\n\t\t\t\t\treturn token.value;\n\t\t\t\t}\n\t\t\t\treturn token;\n\t\t\t} );\n\n\t\t\t// First, check if elements validation is required and any tokens are invalid\n\t\t\tif ( field.isValid?.elements && elements ) {\n\t\t\t\tconst invalidTokens = tokenValues.filter( ( tokenValue ) => {\n\t\t\t\t\treturn ! elements.some(\n\t\t\t\t\t\t( element ) => element.value === tokenValue\n\t\t\t\t\t);\n\t\t\t\t} );\n\n\t\t\t\tif ( invalidTokens.length > 0 ) {\n\t\t\t\t\tsetCustomValidity( {\n\t\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\t\tmessage: sprintf(\n\t\t\t\t\t\t\t/* translators: %s: list of invalid tokens */\n\t\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t\t'Please select from the available options: %s is invalid.',\n\t\t\t\t\t\t\t\t'Please select from the available options: %s are invalid.',\n\t\t\t\t\t\t\t\tinvalidTokens.length\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tinvalidTokens.join( ', ' )\n\t\t\t\t\t\t),\n\t\t\t\t\t} );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Then check custom validation if provided.\n\t\t\tif ( field.isValid?.custom ) {\n\t\t\t\tconst result = field.isValid?.custom?.(\n\t\t\t\t\tdeepMerge(\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\tsetValue( {\n\t\t\t\t\t\t\titem: data,\n\t\t\t\t\t\t\tvalue: tokenValues,\n\t\t\t\t\t\t} ) as Partial< Item >\n\t\t\t\t\t),\n\t\t\t\t\tfield\n\t\t\t\t);\n\n\t\t\t\tif ( result ) {\n\t\t\t\t\tsetCustomValidity( {\n\t\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\t\tmessage: result,\n\t\t\t\t\t} );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// If no validation errors, clear custom validity\n\t\t\tsetCustomValidity( undefined );\n\t\t},\n\t\t[ elements, data, field, setValue ]\n\t);\n\n\tconst onChangeControl = useCallback(\n\t\t( tokens: ( string | { value: string; label?: string } )[] ) => {\n\t\t\tconst valueTokens = tokens.map( ( token ) => {\n\t\t\t\tif ( typeof token === 'object' && 'value' in token ) {\n\t\t\t\t\treturn token.value;\n\t\t\t\t}\n\t\t\t\t// If it's a string, it's either a new suggestion value or user input\n\t\t\t\treturn token;\n\t\t\t} );\n\n\t\t\tonChange( setValue( { item: data, value: valueTokens } ) );\n\t\t},\n\t\t[ onChange, setValue, data ]\n\t);\n\n\treturn (\n\t\t<ValidatedFormTokenField\n\t\t\trequired={ !! field.isValid?.required }\n\t\t\tonValidate={ validateTokens }\n\t\t\tcustomValidity={ customValidity }\n\t\t\tlabel={ hideLabelFromVision ? undefined : label }\n\t\t\tvalue={ arrayValueAsElements }\n\t\t\tonChange={ onChangeControl }\n\t\t\tplaceholder={ placeholder }\n\t\t\tsuggestions={ elements?.map( ( element ) => element.value ) }\n\t\t\t__experimentalValidateInput={ ( token: string ) => {\n\t\t\t\t// If elements validation is required, check if token is valid\n\t\t\t\tif ( field.isValid?.elements && elements ) {\n\t\t\t\t\treturn elements.some(\n\t\t\t\t\t\t( element ) =>\n\t\t\t\t\t\t\telement.value === token || element.label === token\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// For non-elements validation, allow all tokens\n\t\t\t\treturn true;\n\t\t\t} }\n\t\t\t__experimentalExpandOnFocus={ elements && elements.length > 0 }\n\t\t\t__experimentalShowHowTo={ ! field.isValid?.elements }\n\t\t\tdisplayTransform={ ( token: any ) => {\n\t\t\t\t// For existing tokens (element objects), display their label\n\t\t\t\tif ( typeof token === 'object' && 'label' in token ) {\n\t\t\t\t\treturn token.label;\n\t\t\t\t}\n\t\t\t\t// For suggestions (value strings), find the corresponding element and show its label\n\t\t\t\tif ( typeof token === 'string' && elements ) {\n\t\t\t\t\tconst element = elements.find(\n\t\t\t\t\t\t( el ) => el.value === token\n\t\t\t\t\t);\n\t\t\t\t\treturn element?.label || token;\n\t\t\t\t}\n\t\t\t\treturn token;\n\t\t\t} }\n\t\t\t__experimentalRenderItem={ ( { item }: { item: any } ) => {\n\t\t\t\t// Custom rendering for suggestion items (item is a value string)\n\t\t\t\tif ( typeof item === 'string' && elements ) {\n\t\t\t\t\tconst element = elements.find(\n\t\t\t\t\t\t( el ) => el.value === item\n\t\t\t\t\t);\n\t\t\t\t\treturn <span>{ element?.label || item }</span>;\n\t\t\t\t}\n\t\t\t\treturn <span>{ item }</span>;\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/dataform-controls/array.tsx"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { privateApis, Spinner } from '@wordpress/components';\nimport { useCallback, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { DataFormControlProps } from '../types';\nimport { unlock } from '../lock-unlock';\nimport getCustomValidity from './utils/get-custom-validity';\nimport useElements from '../hooks/use-elements';\n\nconst { ValidatedFormTokenField } = unlock( privateApis );\n\nexport default function ArrayControl< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\thideLabelFromVision,\n\tvalidity,\n}: DataFormControlProps< Item > ) {\n\tconst { label, placeholder, getValue, setValue, isValid } = field;\n\tconst value = getValue( { item: data } );\n\n\tconst { elements, isLoading } = useElements( {\n\t\telements: field.elements,\n\t\tgetElements: field.getElements,\n\t} );\n\n\t// Convert stored values to element objects for the token field\n\tconst arrayValueAsElements = useMemo(\n\t\t() =>\n\t\t\tArray.isArray( value )\n\t\t\t\t? value.map( ( token ) => {\n\t\t\t\t\t\tconst element = elements?.find(\n\t\t\t\t\t\t\t( suggestion ) => suggestion.value === token\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn element || { value: token, label: token };\n\t\t\t\t } )\n\t\t\t\t: [],\n\t\t[ value, elements ]\n\t);\n\n\tconst onChangeControl = useCallback(\n\t\t( tokens: ( string | { value: string; label?: string } )[] ) => {\n\t\t\tconst valueTokens = tokens.map( ( token ) => {\n\t\t\t\tif ( typeof token === 'object' && 'value' in token ) {\n\t\t\t\t\treturn token.value;\n\t\t\t\t}\n\t\t\t\t// If it's a string, it's either a new suggestion value or user input\n\t\t\t\treturn token;\n\t\t\t} );\n\n\t\t\tonChange( setValue( { item: data, value: valueTokens } ) );\n\t\t},\n\t\t[ onChange, setValue, data ]\n\t);\n\n\tif ( isLoading ) {\n\t\treturn <Spinner />;\n\t}\n\n\treturn (\n\t\t<ValidatedFormTokenField\n\t\t\trequired={ !! isValid?.required }\n\t\t\tcustomValidity={ getCustomValidity( isValid, validity ) }\n\t\t\tlabel={ hideLabelFromVision ? undefined : label }\n\t\t\tvalue={ arrayValueAsElements }\n\t\t\tonChange={ onChangeControl }\n\t\t\tplaceholder={ placeholder }\n\t\t\tsuggestions={ elements?.map( ( element ) => element.value ) }\n\t\t\t__experimentalValidateInput={ ( token: string ) => {\n\t\t\t\t// If elements validation is required, check if token is valid\n\t\t\t\tif ( field.isValid?.elements && elements ) {\n\t\t\t\t\treturn elements.some(\n\t\t\t\t\t\t( element ) =>\n\t\t\t\t\t\t\telement.value === token || element.label === token\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// For non-elements validation, allow all tokens\n\t\t\t\treturn true;\n\t\t\t} }\n\t\t\t__experimentalExpandOnFocus={ elements && elements.length > 0 }\n\t\t\t__experimentalShowHowTo={ ! field.isValid?.elements }\n\t\t\tdisplayTransform={ ( token: any ) => {\n\t\t\t\t// For existing tokens (element objects), display their label\n\t\t\t\tif ( typeof token === 'object' && 'label' in token ) {\n\t\t\t\t\treturn token.label;\n\t\t\t\t}\n\t\t\t\t// For suggestions (value strings), find the corresponding element and show its label\n\t\t\t\tif ( typeof token === 'string' && elements ) {\n\t\t\t\t\tconst element = elements.find(\n\t\t\t\t\t\t( el ) => el.value === token\n\t\t\t\t\t);\n\t\t\t\t\treturn element?.label || token;\n\t\t\t\t}\n\t\t\t\treturn token;\n\t\t\t} }\n\t\t\t__experimentalRenderItem={ ( { item }: { item: any } ) => {\n\t\t\t\t// Custom rendering for suggestion items (item is a value string)\n\t\t\t\tif ( typeof item === 'string' && elements ) {\n\t\t\t\t\tconst element = elements.find(\n\t\t\t\t\t\t( el ) => el.value === item\n\t\t\t\t\t);\n\t\t\t\t\treturn <span>{ element?.label || item }</span>;\n\t\t\t\t}\n\t\t\t\treturn <span>{ item }</span>;\n\t\t\t} }\n\t\t/>\n\t);\n}\n"],
5
+ "mappings": "AA6DS;AA1DT,SAAS,aAAa,eAAe;AACrC,SAAS,aAAa,eAAe;AAMrC,SAAS,cAAc;AACvB,OAAO,uBAAuB;AAC9B,OAAO,iBAAiB;AAExB,MAAM,EAAE,wBAAwB,IAAI,OAAQ,WAAY;AAEzC,SAAR,aAAuC;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAkC;AACjC,QAAM,EAAE,OAAO,aAAa,UAAU,UAAU,QAAQ,IAAI;AAC5D,QAAM,QAAQ,SAAU,EAAE,MAAM,KAAK,CAAE;AAEvC,QAAM,EAAE,UAAU,UAAU,IAAI,YAAa;AAAA,IAC5C,UAAU,MAAM;AAAA,IAChB,aAAa,MAAM;AAAA,EACpB,CAAE;AAGF,QAAM,uBAAuB;AAAA,IAC5B,MACC,MAAM,QAAS,KAAM,IAClB,MAAM,IAAK,CAAE,UAAW;AACxB,YAAM,UAAU,UAAU;AAAA,QACzB,CAAE,eAAgB,WAAW,UAAU;AAAA,MACxC;AACA,aAAO,WAAW,EAAE,OAAO,OAAO,OAAO,MAAM;AAAA,IAC/C,CAAE,IACF,CAAC;AAAA,IACL,CAAE,OAAO,QAAS;AAAA,EACnB;AAEA,QAAM,kBAAkB;AAAA,IACvB,CAAE,WAA8D;AAC/D,YAAM,cAAc,OAAO,IAAK,CAAE,UAAW;AAC5C,YAAK,OAAO,UAAU,YAAY,WAAW,OAAQ;AACpD,iBAAO,MAAM;AAAA,QACd;AAEA,eAAO;AAAA,MACR,CAAE;AAEF,eAAU,SAAU,EAAE,MAAM,MAAM,OAAO,YAAY,CAAE,CAAE;AAAA,IAC1D;AAAA,IACA,CAAE,UAAU,UAAU,IAAK;AAAA,EAC5B;AAEA,MAAK,WAAY;AAChB,WAAO,oBAAC,WAAQ;AAAA,EACjB;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,UAAW,CAAC,CAAE,SAAS;AAAA,MACvB,gBAAiB,kBAAmB,SAAS,QAAS;AAAA,MACtD,OAAQ,sBAAsB,SAAY;AAAA,MAC1C,OAAQ;AAAA,MACR,UAAW;AAAA,MACX;AAAA,MACA,aAAc,UAAU,IAAK,CAAE,YAAa,QAAQ,KAAM;AAAA,MAC1D,6BAA8B,CAAE,UAAmB;AAElD,YAAK,MAAM,SAAS,YAAY,UAAW;AAC1C,iBAAO,SAAS;AAAA,YACf,CAAE,YACD,QAAQ,UAAU,SAAS,QAAQ,UAAU;AAAA,UAC/C;AAAA,QACD;AAGA,eAAO;AAAA,MACR;AAAA,MACA,6BAA8B,YAAY,SAAS,SAAS;AAAA,MAC5D,yBAA0B,CAAE,MAAM,SAAS;AAAA,MAC3C,kBAAmB,CAAE,UAAgB;AAEpC,YAAK,OAAO,UAAU,YAAY,WAAW,OAAQ;AACpD,iBAAO,MAAM;AAAA,QACd;AAEA,YAAK,OAAO,UAAU,YAAY,UAAW;AAC5C,gBAAM,UAAU,SAAS;AAAA,YACxB,CAAE,OAAQ,GAAG,UAAU;AAAA,UACxB;AACA,iBAAO,SAAS,SAAS;AAAA,QAC1B;AACA,eAAO;AAAA,MACR;AAAA,MACA,0BAA2B,CAAE,EAAE,KAAK,MAAsB;AAEzD,YAAK,OAAO,SAAS,YAAY,UAAW;AAC3C,gBAAM,UAAU,SAAS;AAAA,YACxB,CAAE,OAAQ,GAAG,UAAU;AAAA,UACxB;AACA,iBAAO,oBAAC,UAAO,mBAAS,SAAS,MAAM;AAAA,QACxC;AACA,eAAO,oBAAC,UAAO,gBAAM;AAAA,MACtB;AAAA;AAAA,EACD;AAEF;",
6
+ "names": []
7
+ }
@@ -1,69 +1,36 @@
1
- /**
2
- * External dependencies
3
- */
4
- import deepMerge from 'deepmerge';
5
-
6
- /**
7
- * WordPress dependencies
8
- */
9
- import { privateApis } from '@wordpress/components';
10
- import { useState, useCallback } from '@wordpress/element';
11
-
12
- /**
13
- * Internal dependencies
14
- */
15
-
16
- import { unlock } from '../lock-unlock';
17
- import { jsx as _jsx } from "react/jsx-runtime";
18
- const {
19
- ValidatedCheckboxControl
20
- } = unlock(privateApis);
21
- export default function Checkbox({
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { privateApis } from "@wordpress/components";
3
+ import { useCallback } from "@wordpress/element";
4
+ import { unlock } from "../lock-unlock";
5
+ import getCustomValidity from "./utils/get-custom-validity";
6
+ const { ValidatedCheckboxControl } = unlock(privateApis);
7
+ function Checkbox({
22
8
  field,
23
9
  onChange,
24
10
  data,
25
- hideLabelFromVision
11
+ hideLabelFromVision,
12
+ validity
26
13
  }) {
27
- const {
28
- getValue,
29
- setValue,
30
- label,
31
- description
32
- } = field;
33
- const [customValidity, setCustomValidity] = useState(undefined);
14
+ const { getValue, setValue, label, description, isValid } = field;
34
15
  const onChangeControl = useCallback(() => {
35
- onChange(setValue({
36
- item: data,
37
- value: !getValue({
38
- item: data
39
- })
40
- }));
16
+ onChange(
17
+ setValue({ item: data, value: !getValue({ item: data }) })
18
+ );
41
19
  }, [data, getValue, onChange, setValue]);
42
- const onValidateControl = useCallback(newValue => {
43
- const message = field.isValid?.custom?.(deepMerge(data, setValue({
44
- item: data,
45
- value: newValue
46
- })), field);
47
- if (message) {
48
- setCustomValidity({
49
- type: 'invalid',
50
- message
51
- });
52
- return;
20
+ return /* @__PURE__ */ jsx(
21
+ ValidatedCheckboxControl,
22
+ {
23
+ required: !!field.isValid?.required,
24
+ customValidity: getCustomValidity(isValid, validity),
25
+ hidden: hideLabelFromVision,
26
+ label,
27
+ help: description,
28
+ checked: getValue({ item: data }),
29
+ onChange: onChangeControl
53
30
  }
54
- setCustomValidity(undefined);
55
- }, [data, field, setValue]);
56
- return /*#__PURE__*/_jsx(ValidatedCheckboxControl, {
57
- required: !!field.isValid?.required,
58
- onValidate: onValidateControl,
59
- customValidity: customValidity,
60
- hidden: hideLabelFromVision,
61
- label: label,
62
- help: description,
63
- checked: getValue({
64
- item: data
65
- }),
66
- onChange: onChangeControl
67
- });
31
+ );
68
32
  }
69
- //# sourceMappingURL=checkbox.js.map
33
+ export {
34
+ Checkbox as default
35
+ };
36
+ //# sourceMappingURL=checkbox.js.map
@@ -1 +1,7 @@
1
- {"version":3,"names":["deepMerge","privateApis","useState","useCallback","unlock","jsx","_jsx","ValidatedCheckboxControl","Checkbox","field","onChange","data","hideLabelFromVision","getValue","setValue","label","description","customValidity","setCustomValidity","undefined","onChangeControl","item","value","onValidateControl","newValue","message","isValid","custom","type","required","onValidate","hidden","help","checked"],"sources":["@wordpress/dataviews/src/dataform-controls/checkbox.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport deepMerge from 'deepmerge';\n\n/**\n * WordPress dependencies\n */\nimport { privateApis } from '@wordpress/components';\nimport { useState, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { DataFormControlProps } from '../types';\nimport { unlock } from '../lock-unlock';\n\nconst { ValidatedCheckboxControl } = unlock( privateApis );\n\nexport default function Checkbox< Item >( {\n\tfield,\n\tonChange,\n\tdata,\n\thideLabelFromVision,\n}: DataFormControlProps< Item > ) {\n\tconst { getValue, setValue, label, description } = field;\n\tconst [ customValidity, setCustomValidity ] =\n\t\tuseState<\n\t\t\tReact.ComponentProps<\n\t\t\t\ttypeof ValidatedCheckboxControl\n\t\t\t>[ 'customValidity' ]\n\t\t>( undefined );\n\n\tconst onChangeControl = useCallback( () => {\n\t\tonChange(\n\t\t\tsetValue( { item: data, value: ! getValue( { item: data } ) } )\n\t\t);\n\t}, [ data, getValue, onChange, setValue ] );\n\n\tconst onValidateControl = useCallback(\n\t\t( newValue: any ) => {\n\t\t\tconst message = field.isValid?.custom?.(\n\t\t\t\tdeepMerge(\n\t\t\t\t\tdata,\n\t\t\t\t\tsetValue( {\n\t\t\t\t\t\titem: data,\n\t\t\t\t\t\tvalue: newValue,\n\t\t\t\t\t} ) as Partial< Item >\n\t\t\t\t),\n\t\t\t\tfield\n\t\t\t);\n\n\t\t\tif ( message ) {\n\t\t\t\tsetCustomValidity( {\n\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\tmessage,\n\t\t\t\t} );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetCustomValidity( undefined );\n\t\t},\n\t\t[ data, field, setValue ]\n\t);\n\n\treturn (\n\t\t<ValidatedCheckboxControl\n\t\t\trequired={ !! field.isValid?.required }\n\t\t\tonValidate={ onValidateControl }\n\t\t\tcustomValidity={ customValidity }\n\t\t\thidden={ hideLabelFromVision }\n\t\t\tlabel={ label }\n\t\t\thelp={ description }\n\t\t\tchecked={ getValue( { item: data } ) }\n\t\t\tonChange={ onChangeControl }\n\t\t/>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,SAAS,MAAM,WAAW;;AAEjC;AACA;AACA;AACA,SAASC,WAAW,QAAQ,uBAAuB;AACnD,SAASC,QAAQ,EAAEC,WAAW,QAAQ,oBAAoB;;AAE1D;AACA;AACA;;AAEA,SAASC,MAAM,QAAQ,gBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAExC,MAAM;EAAEC;AAAyB,CAAC,GAAGH,MAAM,CAAEH,WAAY,CAAC;AAE1D,eAAe,SAASO,QAAQA,CAAU;EACzCC,KAAK;EACLC,QAAQ;EACRC,IAAI;EACJC;AAC6B,CAAC,EAAG;EACjC,MAAM;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC,KAAK;IAAEC;EAAY,CAAC,GAAGP,KAAK;EACxD,MAAM,CAAEQ,cAAc,EAAEC,iBAAiB,CAAE,GAC1ChB,QAAQ,CAILiB,SAAU,CAAC;EAEf,MAAMC,eAAe,GAAGjB,WAAW,CAAE,MAAM;IAC1CO,QAAQ,CACPI,QAAQ,CAAE;MAAEO,IAAI,EAAEV,IAAI;MAAEW,KAAK,EAAE,CAAET,QAAQ,CAAE;QAAEQ,IAAI,EAAEV;MAAK,CAAE;IAAE,CAAE,CAC/D,CAAC;EACF,CAAC,EAAE,CAAEA,IAAI,EAAEE,QAAQ,EAAEH,QAAQ,EAAEI,QAAQ,CAAG,CAAC;EAE3C,MAAMS,iBAAiB,GAAGpB,WAAW,CAClCqB,QAAa,IAAM;IACpB,MAAMC,OAAO,GAAGhB,KAAK,CAACiB,OAAO,EAAEC,MAAM,GACpC3B,SAAS,CACRW,IAAI,EACJG,QAAQ,CAAE;MACTO,IAAI,EAAEV,IAAI;MACVW,KAAK,EAAEE;IACR,CAAE,CACH,CAAC,EACDf,KACD,CAAC;IAED,IAAKgB,OAAO,EAAG;MACdP,iBAAiB,CAAE;QAClBU,IAAI,EAAE,SAAS;QACfH;MACD,CAAE,CAAC;MACH;IACD;IAEAP,iBAAiB,CAAEC,SAAU,CAAC;EAC/B,CAAC,EACD,CAAER,IAAI,EAAEF,KAAK,EAAEK,QAAQ,CACxB,CAAC;EAED,oBACCR,IAAA,CAACC,wBAAwB;IACxBsB,QAAQ,EAAG,CAAC,CAAEpB,KAAK,CAACiB,OAAO,EAAEG,QAAU;IACvCC,UAAU,EAAGP,iBAAmB;IAChCN,cAAc,EAAGA,cAAgB;IACjCc,MAAM,EAAGnB,mBAAqB;IAC9BG,KAAK,EAAGA,KAAO;IACfiB,IAAI,EAAGhB,WAAa;IACpBiB,OAAO,EAAGpB,QAAQ,CAAE;MAAEQ,IAAI,EAAEV;IAAK,CAAE,CAAG;IACtCD,QAAQ,EAAGU;EAAiB,CAC5B,CAAC;AAEJ","ignoreList":[]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/dataform-controls/checkbox.tsx"],
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { privateApis } from '@wordpress/components';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { DataFormControlProps } from '../types';\nimport { unlock } from '../lock-unlock';\nimport getCustomValidity from './utils/get-custom-validity';\n\nconst { ValidatedCheckboxControl } = unlock( privateApis );\n\nexport default function Checkbox< Item >( {\n\tfield,\n\tonChange,\n\tdata,\n\thideLabelFromVision,\n\tvalidity,\n}: DataFormControlProps< Item > ) {\n\tconst { getValue, setValue, label, description, isValid } = field;\n\n\tconst onChangeControl = useCallback( () => {\n\t\tonChange(\n\t\t\tsetValue( { item: data, value: ! getValue( { item: data } ) } )\n\t\t);\n\t}, [ data, getValue, onChange, setValue ] );\n\n\treturn (\n\t\t<ValidatedCheckboxControl\n\t\t\trequired={ !! field.isValid?.required }\n\t\t\tcustomValidity={ getCustomValidity( isValid, validity ) }\n\t\t\thidden={ hideLabelFromVision }\n\t\t\tlabel={ label }\n\t\t\thelp={ description }\n\t\t\tchecked={ getValue( { item: data } ) }\n\t\t\tonChange={ onChangeControl }\n\t\t/>\n\t);\n}\n"],
5
+ "mappings": "AA+BE;AA5BF,SAAS,mBAAmB;AAC5B,SAAS,mBAAmB;AAM5B,SAAS,cAAc;AACvB,OAAO,uBAAuB;AAE9B,MAAM,EAAE,yBAAyB,IAAI,OAAQ,WAAY;AAE1C,SAAR,SAAmC;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAkC;AACjC,QAAM,EAAE,UAAU,UAAU,OAAO,aAAa,QAAQ,IAAI;AAE5D,QAAM,kBAAkB,YAAa,MAAM;AAC1C;AAAA,MACC,SAAU,EAAE,MAAM,MAAM,OAAO,CAAE,SAAU,EAAE,MAAM,KAAK,CAAE,EAAE,CAAE;AAAA,IAC/D;AAAA,EACD,GAAG,CAAE,MAAM,UAAU,UAAU,QAAS,CAAE;AAE1C,SACC;AAAA,IAAC;AAAA;AAAA,MACA,UAAW,CAAC,CAAE,MAAM,SAAS;AAAA,MAC7B,gBAAiB,kBAAmB,SAAS,QAAS;AAAA,MACtD,QAAS;AAAA,MACT;AAAA,MACA,MAAO;AAAA,MACP,SAAU,SAAU,EAAE,MAAM,KAAK,CAAE;AAAA,MACnC,UAAW;AAAA;AAAA,EACZ;AAEF;",
6
+ "names": []
7
+ }