@wordpress/dataviews 9.1.1-next.f56bd8138.0 → 10.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (805) hide show
  1. package/CHANGELOG.md +44 -1
  2. package/README.md +140 -38
  3. package/build/components/dataform/index.js +52 -28
  4. package/build/components/dataform/index.js.map +7 -1
  5. package/build/components/dataform-context/index.js +33 -25
  6. package/build/components/dataform-context/index.js.map +7 -1
  7. package/build/components/dataviews/index.js +193 -156
  8. package/build/components/dataviews/index.js.map +7 -1
  9. package/build/components/dataviews-bulk-actions/index.js +264 -155
  10. package/build/components/dataviews-bulk-actions/index.js.map +7 -1
  11. package/build/components/dataviews-context/index.js +40 -36
  12. package/build/components/dataviews-context/index.js.map +7 -1
  13. package/build/components/dataviews-filters/add-filter.js +78 -73
  14. package/build/components/dataviews-filters/add-filter.js.map +7 -1
  15. package/build/components/dataviews-filters/filter.js +473 -263
  16. package/build/components/dataviews-filters/filter.js.map +7 -1
  17. package/build/components/dataviews-filters/filters-toggled.js +46 -0
  18. package/build/components/dataviews-filters/filters-toggled.js.map +7 -0
  19. package/build/components/dataviews-filters/filters.js +101 -0
  20. package/build/components/dataviews-filters/filters.js.map +7 -0
  21. package/build/components/dataviews-filters/index.js +46 -197
  22. package/build/components/dataviews-filters/index.js.map +7 -1
  23. package/build/components/dataviews-filters/input-widget.js +88 -89
  24. package/build/components/dataviews-filters/input-widget.js.map +7 -1
  25. package/build/components/dataviews-filters/reset-filters.js +50 -34
  26. package/build/components/dataviews-filters/reset-filters.js.map +7 -1
  27. package/build/components/dataviews-filters/search-widget.js +301 -205
  28. package/build/components/dataviews-filters/search-widget.js.map +7 -1
  29. package/build/components/dataviews-filters/toggle.js +124 -0
  30. package/build/components/dataviews-filters/toggle.js.map +7 -0
  31. package/build/components/dataviews-filters/use-filters.js +74 -0
  32. package/build/components/dataviews-filters/use-filters.js.map +7 -0
  33. package/build/components/dataviews-filters/utils.js +26 -10
  34. package/build/components/dataviews-filters/utils.js.map +7 -1
  35. package/build/components/dataviews-footer/index.js +54 -33
  36. package/build/components/dataviews-footer/index.js.map +7 -1
  37. package/build/components/dataviews-item-actions/index.js +188 -150
  38. package/build/components/dataviews-item-actions/index.js.map +7 -1
  39. package/build/components/dataviews-layout/index.js +64 -49
  40. package/build/components/dataviews-layout/index.js.map +7 -1
  41. package/build/components/dataviews-pagination/index.js +143 -99
  42. package/build/components/dataviews-pagination/index.js.map +7 -1
  43. package/build/components/dataviews-picker/footer.js +152 -101
  44. package/build/components/dataviews-picker/footer.js.map +7 -1
  45. package/build/components/dataviews-picker/index.js +173 -147
  46. package/build/components/dataviews-picker/index.js.map +7 -1
  47. package/build/components/dataviews-search/index.js +63 -46
  48. package/build/components/dataviews-search/index.js.map +7 -1
  49. package/build/components/dataviews-selection-checkbox/index.js +45 -35
  50. package/build/components/dataviews-selection-checkbox/index.js.map +7 -1
  51. package/build/components/dataviews-view-config/index.js +587 -512
  52. package/build/components/dataviews-view-config/index.js.map +7 -1
  53. package/build/components/dataviews-view-config/infinite-scroll-toggle.js +56 -39
  54. package/build/components/dataviews-view-config/infinite-scroll-toggle.js.map +7 -1
  55. package/build/constants.js +215 -108
  56. package/build/constants.js.map +7 -1
  57. package/build/dataform-controls/array.js +109 -145
  58. package/build/dataform-controls/array.js.map +7 -1
  59. package/build/dataform-controls/checkbox.js +56 -66
  60. package/build/dataform-controls/checkbox.js.map +7 -1
  61. package/build/dataform-controls/color.js +112 -119
  62. package/build/dataform-controls/color.js.map +7 -1
  63. package/build/dataform-controls/date.js +531 -349
  64. package/build/dataform-controls/date.js.map +7 -1
  65. package/build/dataform-controls/datetime.js +189 -148
  66. package/build/dataform-controls/datetime.js.map +7 -1
  67. package/build/dataform-controls/email.js +52 -32
  68. package/build/dataform-controls/email.js.map +7 -1
  69. package/build/dataform-controls/index.js +83 -63
  70. package/build/dataform-controls/index.js.map +7 -1
  71. package/build/dataform-controls/integer.js +36 -129
  72. package/build/dataform-controls/integer.js.map +7 -1
  73. package/build/dataform-controls/number.js +39 -0
  74. package/build/dataform-controls/number.js.map +7 -0
  75. package/build/dataform-controls/password.js +66 -38
  76. package/build/dataform-controls/password.js.map +7 -1
  77. package/build/dataform-controls/radio.js +61 -64
  78. package/build/dataform-controls/radio.js.map +7 -1
  79. package/build/dataform-controls/select.js +70 -88
  80. package/build/dataform-controls/select.js.map +7 -1
  81. package/build/dataform-controls/telephone.js +52 -32
  82. package/build/dataform-controls/telephone.js.map +7 -1
  83. package/build/dataform-controls/text.js +52 -30
  84. package/build/dataform-controls/text.js.map +7 -1
  85. package/build/dataform-controls/textarea.js +62 -71
  86. package/build/dataform-controls/textarea.js.map +7 -1
  87. package/build/dataform-controls/toggle-group.js +73 -66
  88. package/build/dataform-controls/toggle-group.js.map +7 -1
  89. package/build/dataform-controls/toggle.js +57 -67
  90. package/build/dataform-controls/toggle.js.map +7 -1
  91. package/build/dataform-controls/url.js +52 -32
  92. package/build/dataform-controls/url.js.map +7 -1
  93. package/build/dataform-controls/utils/get-custom-validity.js +35 -0
  94. package/build/dataform-controls/utils/get-custom-validity.js.map +7 -0
  95. package/build/dataform-controls/utils/relative-date-control.js +122 -0
  96. package/build/dataform-controls/utils/relative-date-control.js.map +7 -0
  97. package/build/dataform-controls/utils/validated-input.js +67 -71
  98. package/build/dataform-controls/utils/validated-input.js.map +7 -1
  99. package/build/dataform-controls/utils/validated-number.js +167 -0
  100. package/build/dataform-controls/utils/validated-number.js.map +7 -0
  101. package/build/dataform-layouts/card/index.js +217 -0
  102. package/build/dataform-layouts/card/index.js.map +7 -0
  103. package/build/dataform-layouts/data-form-layout.js +95 -0
  104. package/build/dataform-layouts/data-form-layout.js.map +7 -0
  105. package/build/dataform-layouts/get-summary-fields.js +45 -0
  106. package/build/dataform-layouts/get-summary-fields.js.map +7 -0
  107. package/build/dataform-layouts/index.js +99 -0
  108. package/build/dataform-layouts/index.js.map +7 -0
  109. package/build/dataform-layouts/is-combined-field.js +31 -0
  110. package/build/dataform-layouts/is-combined-field.js.map +7 -0
  111. package/build/dataform-layouts/normalize-form-fields.js +104 -0
  112. package/build/dataform-layouts/normalize-form-fields.js.map +7 -0
  113. package/build/dataform-layouts/panel/dropdown.js +159 -0
  114. package/build/dataform-layouts/panel/dropdown.js.map +7 -0
  115. package/build/dataform-layouts/panel/index.js +152 -0
  116. package/build/dataform-layouts/panel/index.js.map +7 -0
  117. package/build/dataform-layouts/panel/modal.js +176 -0
  118. package/build/dataform-layouts/panel/modal.js.map +7 -0
  119. package/build/dataform-layouts/panel/summary-button.js +93 -0
  120. package/build/dataform-layouts/panel/summary-button.js.map +7 -0
  121. package/build/dataform-layouts/regular/index.js +139 -0
  122. package/build/dataform-layouts/regular/index.js.map +7 -0
  123. package/build/dataform-layouts/row/index.js +120 -0
  124. package/build/dataform-layouts/row/index.js.map +7 -0
  125. package/build/dataviews-layouts/grid/index.js +337 -278
  126. package/build/dataviews-layouts/grid/index.js.map +7 -1
  127. package/build/dataviews-layouts/grid/preview-size-picker.js +94 -69
  128. package/build/dataviews-layouts/grid/preview-size-picker.js.map +7 -1
  129. package/build/dataviews-layouts/index.js +75 -48
  130. package/build/dataviews-layouts/index.js.map +7 -1
  131. package/build/dataviews-layouts/list/index.js +441 -354
  132. package/build/dataviews-layouts/list/index.js.map +7 -1
  133. package/build/dataviews-layouts/picker-grid/index.js +366 -297
  134. package/build/dataviews-layouts/picker-grid/index.js.map +7 -1
  135. package/build/dataviews-layouts/table/column-header-menu.js +144 -133
  136. package/build/dataviews-layouts/table/column-header-menu.js.map +7 -1
  137. package/build/dataviews-layouts/table/column-primary.js +86 -66
  138. package/build/dataviews-layouts/table/column-primary.js.map +7 -1
  139. package/build/dataviews-layouts/table/density-picker.js +86 -46
  140. package/build/dataviews-layouts/table/density-picker.js.map +7 -1
  141. package/build/dataviews-layouts/table/index.js +354 -319
  142. package/build/dataviews-layouts/table/index.js.map +7 -1
  143. package/build/dataviews-layouts/table/use-is-horizontal-scroll-end.js +55 -47
  144. package/build/dataviews-layouts/table/use-is-horizontal-scroll-end.js.map +7 -1
  145. package/build/dataviews-layouts/utils/get-data-by-group.js +24 -13
  146. package/build/dataviews-layouts/utils/get-data-by-group.js.map +7 -1
  147. package/build/dataviews-layouts/utils/grid-items.js +51 -34
  148. package/build/dataviews-layouts/utils/grid-items.js.map +7 -1
  149. package/build/dataviews-layouts/utils/item-click-wrapper.js +53 -31
  150. package/build/dataviews-layouts/utils/item-click-wrapper.js.map +7 -1
  151. package/build/dataviews-layouts/utils/preview-size-picker.js +94 -69
  152. package/build/dataviews-layouts/utils/preview-size-picker.js.map +7 -1
  153. package/build/field-types/array.js +46 -41
  154. package/build/field-types/array.js.map +7 -1
  155. package/build/field-types/boolean.js +52 -47
  156. package/build/field-types/boolean.js.map +7 -1
  157. package/build/field-types/color.js +79 -81
  158. package/build/field-types/color.js.map +7 -1
  159. package/build/field-types/date.js +69 -48
  160. package/build/field-types/date.js.map +7 -1
  161. package/build/field-types/datetime.js +62 -43
  162. package/build/field-types/datetime.js.map +7 -1
  163. package/build/field-types/email.js +58 -47
  164. package/build/field-types/email.js.map +7 -1
  165. package/build/field-types/index.js +84 -89
  166. package/build/field-types/index.js.map +7 -1
  167. package/build/field-types/integer.js +68 -45
  168. package/build/field-types/integer.js.map +7 -1
  169. package/build/field-types/media.js +25 -27
  170. package/build/field-types/media.js.map +7 -1
  171. package/build/field-types/number.js +95 -0
  172. package/build/field-types/number.js.map +7 -0
  173. package/build/field-types/password.js +40 -39
  174. package/build/field-types/password.js.map +7 -1
  175. package/build/field-types/telephone.js +55 -45
  176. package/build/field-types/telephone.js.map +7 -1
  177. package/build/field-types/text.js +55 -46
  178. package/build/field-types/text.js.map +7 -1
  179. package/build/field-types/url.js +55 -45
  180. package/build/field-types/url.js.map +7 -1
  181. package/build/field-types/utils/render-from-elements.js +52 -0
  182. package/build/field-types/utils/render-from-elements.js.map +7 -0
  183. package/build/hooks/index.js +39 -0
  184. package/build/hooks/index.js.map +7 -0
  185. package/build/hooks/use-elements.js +63 -0
  186. package/build/hooks/use-elements.js.map +7 -0
  187. package/build/hooks/use-form-validity.js +426 -0
  188. package/build/hooks/use-form-validity.js.map +7 -0
  189. package/build/index.js +50 -45
  190. package/build/index.js.map +7 -1
  191. package/build/lock-unlock.js +31 -14
  192. package/build/lock-unlock.js.map +7 -1
  193. package/build/types/dataform.js +17 -0
  194. package/build/types/dataform.js.map +7 -0
  195. package/build/types/dataviews.js +17 -0
  196. package/build/types/dataviews.js.map +7 -0
  197. package/build/types/field-api.js +17 -0
  198. package/build/types/field-api.js.map +7 -0
  199. package/build/types/index.js +17 -0
  200. package/build/types/index.js.map +7 -0
  201. package/build/types/private.js +17 -0
  202. package/build/types/private.js.map +7 -0
  203. package/build/utils/filter-sort-and-paginate.js +285 -0
  204. package/build/utils/filter-sort-and-paginate.js.map +7 -0
  205. package/build/utils/has-elements.js +27 -0
  206. package/build/utils/has-elements.js.map +7 -0
  207. package/build/utils/normalize-fields.js +160 -0
  208. package/build/utils/normalize-fields.js.map +7 -0
  209. package/build-module/components/dataform/index.js +25 -25
  210. package/build-module/components/dataform/index.js.map +7 -1
  211. package/build-module/components/dataform-context/index.js +11 -19
  212. package/build-module/components/dataform-context/index.js.map +7 -1
  213. package/build-module/components/dataviews/index.js +156 -131
  214. package/build-module/components/dataviews/index.js.map +7 -1
  215. package/build-module/components/dataviews-bulk-actions/index.js +227 -140
  216. package/build-module/components/dataviews-bulk-actions/index.js.map +7 -1
  217. package/build-module/components/dataviews-context/index.js +20 -30
  218. package/build-module/components/dataviews-context/index.js.map +7 -1
  219. package/build-module/components/dataviews-filters/add-filter.js +60 -68
  220. package/build-module/components/dataviews-filters/add-filter.js.map +7 -1
  221. package/build-module/components/dataviews-filters/filter.js +454 -232
  222. package/build-module/components/dataviews-filters/filter.js.map +7 -1
  223. package/build-module/components/dataviews-filters/filters-toggled.js +16 -0
  224. package/build-module/components/dataviews-filters/filters-toggled.js.map +7 -0
  225. package/build-module/components/dataviews-filters/filters.js +71 -0
  226. package/build-module/components/dataviews-filters/filters.js.map +7 -0
  227. package/build-module/components/dataviews-filters/index.js +11 -187
  228. package/build-module/components/dataviews-filters/index.js.map +7 -1
  229. package/build-module/components/dataviews-filters/input-widget.js +57 -81
  230. package/build-module/components/dataviews-filters/input-widget.js.map +7 -1
  231. package/build-module/components/dataviews-filters/reset-filters.js +33 -30
  232. package/build-module/components/dataviews-filters/reset-filters.js.map +7 -1
  233. package/build-module/components/dataviews-filters/search-widget.js +276 -195
  234. package/build-module/components/dataviews-filters/search-widget.js.map +7 -1
  235. package/build-module/components/dataviews-filters/toggle.js +94 -0
  236. package/build-module/components/dataviews-filters/toggle.js.map +7 -0
  237. package/build-module/components/dataviews-filters/use-filters.js +54 -0
  238. package/build-module/components/dataviews-filters/use-filters.js.map +7 -0
  239. package/build-module/components/dataviews-filters/utils.js +5 -6
  240. package/build-module/components/dataviews-filters/utils.js.map +7 -1
  241. package/build-module/components/dataviews-footer/index.js +28 -26
  242. package/build-module/components/dataviews-footer/index.js.map +7 -1
  243. package/build-module/components/dataviews-item-actions/index.js +171 -144
  244. package/build-module/components/dataviews-item-actions/index.js.map +7 -1
  245. package/build-module/components/dataviews-layout/index.js +35 -42
  246. package/build-module/components/dataviews-layout/index.js.map +7 -1
  247. package/build-module/components/dataviews-pagination/index.js +115 -92
  248. package/build-module/components/dataviews-pagination/index.js.map +7 -1
  249. package/build-module/components/dataviews-picker/footer.js +122 -93
  250. package/build-module/components/dataviews-picker/footer.js.map +7 -1
  251. package/build-module/components/dataviews-picker/index.js +139 -125
  252. package/build-module/components/dataviews-picker/index.js.map +7 -1
  253. package/build-module/components/dataviews-search/index.js +30 -35
  254. package/build-module/components/dataviews-search/index.js.map +7 -1
  255. package/build-module/components/dataviews-selection-checkbox/index.js +28 -31
  256. package/build-module/components/dataviews-selection-checkbox/index.js.map +7 -1
  257. package/build-module/components/dataviews-view-config/index.js +579 -504
  258. package/build-module/components/dataviews-view-config/index.js.map +7 -1
  259. package/build-module/components/dataviews-view-config/infinite-scroll-toggle.js +28 -33
  260. package/build-module/components/dataviews-view-config/infinite-scroll-toggle.js.map +7 -1
  261. package/build-module/constants.js +157 -101
  262. package/build-module/constants.js.map +7 -1
  263. package/build-module/dataform-controls/array.js +82 -141
  264. package/build-module/dataform-controls/array.js.map +7 -1
  265. package/build-module/dataform-controls/checkbox.js +28 -61
  266. package/build-module/dataform-controls/checkbox.js.map +7 -1
  267. package/build-module/dataform-controls/color.js +89 -115
  268. package/build-module/dataform-controls/color.js.map +7 -1
  269. package/build-module/dataform-controls/date.js +524 -337
  270. package/build-module/dataform-controls/date.js.map +7 -1
  271. package/build-module/dataform-controls/datetime.js +162 -139
  272. package/build-module/dataform-controls/datetime.js.map +7 -1
  273. package/build-module/dataform-controls/email.js +28 -28
  274. package/build-module/dataform-controls/email.js.map +7 -1
  275. package/build-module/dataform-controls/index.js +36 -43
  276. package/build-module/dataform-controls/index.js.map +7 -1
  277. package/build-module/dataform-controls/integer.js +8 -123
  278. package/build-module/dataform-controls/integer.js.map +7 -1
  279. package/build-module/dataform-controls/number.js +9 -0
  280. package/build-module/dataform-controls/number.js.map +7 -0
  281. package/build-module/dataform-controls/password.js +37 -30
  282. package/build-module/dataform-controls/password.js.map +7 -1
  283. package/build-module/dataform-controls/radio.js +34 -60
  284. package/build-module/dataform-controls/radio.js.map +7 -1
  285. package/build-module/dataform-controls/select.js +43 -84
  286. package/build-module/dataform-controls/select.js.map +7 -1
  287. package/build-module/dataform-controls/telephone.js +28 -28
  288. package/build-module/dataform-controls/telephone.js.map +7 -1
  289. package/build-module/dataform-controls/text.js +25 -26
  290. package/build-module/dataform-controls/text.js.map +7 -1
  291. package/build-module/dataform-controls/textarea.js +35 -67
  292. package/build-module/dataform-controls/textarea.js.map +7 -1
  293. package/build-module/dataform-controls/toggle-group.js +50 -62
  294. package/build-module/dataform-controls/toggle-group.js.map +7 -1
  295. package/build-module/dataform-controls/toggle.js +29 -62
  296. package/build-module/dataform-controls/toggle.js.map +7 -1
  297. package/build-module/dataform-controls/url.js +28 -28
  298. package/build-module/dataform-controls/url.js.map +7 -1
  299. package/build-module/dataform-controls/utils/get-custom-validity.js +15 -0
  300. package/build-module/dataform-controls/utils/get-custom-validity.js.map +7 -0
  301. package/build-module/dataform-controls/utils/relative-date-control.js +97 -0
  302. package/build-module/dataform-controls/utils/relative-date-control.js.map +7 -0
  303. package/build-module/dataform-controls/utils/validated-input.js +40 -67
  304. package/build-module/dataform-controls/utils/validated-input.js.map +7 -1
  305. package/build-module/dataform-controls/utils/validated-number.js +142 -0
  306. package/build-module/dataform-controls/utils/validated-number.js.map +7 -0
  307. package/build-module/dataform-layouts/card/index.js +183 -0
  308. package/build-module/dataform-layouts/card/index.js.map +7 -0
  309. package/build-module/dataform-layouts/data-form-layout.js +61 -0
  310. package/build-module/dataform-layouts/data-form-layout.js.map +7 -0
  311. package/build-module/dataform-layouts/get-summary-fields.js +21 -0
  312. package/build-module/dataform-layouts/get-summary-fields.js.map +7 -0
  313. package/build-module/dataform-layouts/index.js +68 -0
  314. package/build-module/dataform-layouts/index.js.map +7 -0
  315. package/build-module/dataform-layouts/is-combined-field.js +7 -0
  316. package/build-module/dataform-layouts/is-combined-field.js.map +7 -0
  317. package/build-module/dataform-layouts/normalize-form-fields.js +79 -0
  318. package/build-module/dataform-layouts/normalize-form-fields.js.map +7 -0
  319. package/build-module/dataform-layouts/panel/dropdown.js +136 -0
  320. package/build-module/dataform-layouts/panel/dropdown.js.map +7 -0
  321. package/build-module/dataform-layouts/panel/index.js +125 -0
  322. package/build-module/dataform-layouts/panel/index.js.map +7 -0
  323. package/build-module/dataform-layouts/panel/modal.js +151 -0
  324. package/build-module/dataform-layouts/panel/modal.js.map +7 -0
  325. package/build-module/dataform-layouts/panel/summary-button.js +73 -0
  326. package/build-module/dataform-layouts/panel/summary-button.js.map +7 -0
  327. package/build-module/dataform-layouts/regular/index.js +115 -0
  328. package/build-module/dataform-layouts/regular/index.js.map +7 -0
  329. package/build-module/dataform-layouts/row/index.js +95 -0
  330. package/build-module/dataform-layouts/row/index.js.map +7 -0
  331. package/build-module/dataviews-layouts/grid/index.js +316 -267
  332. package/build-module/dataviews-layouts/grid/index.js.map +7 -1
  333. package/build-module/dataviews-layouts/grid/preview-size-picker.js +66 -63
  334. package/build-module/dataviews-layouts/grid/preview-size-picker.js.map +7 -1
  335. package/build-module/dataviews-layouts/index.js +53 -42
  336. package/build-module/dataviews-layouts/index.js.map +7 -1
  337. package/build-module/dataviews-layouts/list/index.js +422 -339
  338. package/build-module/dataviews-layouts/list/index.js.map +7 -1
  339. package/build-module/dataviews-layouts/picker-grid/index.js +344 -288
  340. package/build-module/dataviews-layouts/picker-grid/index.js.map +7 -1
  341. package/build-module/dataviews-layouts/table/column-header-menu.js +129 -127
  342. package/build-module/dataviews-layouts/table/column-header-menu.js.map +7 -1
  343. package/build-module/dataviews-layouts/table/column-primary.js +71 -62
  344. package/build-module/dataviews-layouts/table/column-primary.js.map +7 -1
  345. package/build-module/dataviews-layouts/table/density-picker.js +61 -40
  346. package/build-module/dataviews-layouts/table/density-picker.js.map +7 -1
  347. package/build-module/dataviews-layouts/table/index.js +326 -302
  348. package/build-module/dataviews-layouts/table/index.js.map +7 -1
  349. package/build-module/dataviews-layouts/table/use-is-horizontal-scroll-end.js +31 -40
  350. package/build-module/dataviews-layouts/table/use-is-horizontal-scroll-end.js.map +7 -1
  351. package/build-module/dataviews-layouts/utils/get-data-by-group.js +7 -10
  352. package/build-module/dataviews-layouts/utils/get-data-by-group.js.map +7 -1
  353. package/build-module/dataviews-layouts/utils/grid-items.js +19 -28
  354. package/build-module/dataviews-layouts/utils/grid-items.js.map +7 -1
  355. package/build-module/dataviews-layouts/utils/item-click-wrapper.js +32 -28
  356. package/build-module/dataviews-layouts/utils/item-click-wrapper.js.map +7 -1
  357. package/build-module/dataviews-layouts/utils/preview-size-picker.js +66 -63
  358. package/build-module/dataviews-layouts/utils/preview-size-picker.js.map +7 -1
  359. package/build-module/field-types/array.js +32 -37
  360. package/build-module/field-types/array.js.map +7 -1
  361. package/build-module/field-types/boolean.js +22 -41
  362. package/build-module/field-types/boolean.js.map +7 -1
  363. package/build-module/field-types/color.js +51 -72
  364. package/build-module/field-types/color.js.map +7 -1
  365. package/build-module/field-types/date.js +51 -44
  366. package/build-module/field-types/date.js.map +7 -1
  367. package/build-module/field-types/datetime.js +43 -39
  368. package/build-module/field-types/datetime.js.map +7 -1
  369. package/build-module/field-types/email.js +39 -42
  370. package/build-module/field-types/email.js.map +7 -1
  371. package/build-module/field-types/index.js +43 -72
  372. package/build-module/field-types/index.js.map +7 -1
  373. package/build-module/field-types/integer.js +52 -41
  374. package/build-module/field-types/integer.js.map +7 -1
  375. package/build-module/field-types/media.js +7 -23
  376. package/build-module/field-types/media.js.map +7 -1
  377. package/build-module/field-types/number.js +77 -0
  378. package/build-module/field-types/number.js.map +7 -0
  379. package/build-module/field-types/password.js +12 -36
  380. package/build-module/field-types/password.js.map +7 -1
  381. package/build-module/field-types/telephone.js +36 -40
  382. package/build-module/field-types/telephone.js.map +7 -1
  383. package/build-module/field-types/text.js +36 -41
  384. package/build-module/field-types/text.js.map +7 -1
  385. package/build-module/field-types/url.js +36 -40
  386. package/build-module/field-types/url.js.map +7 -1
  387. package/build-module/field-types/utils/render-from-elements.js +22 -0
  388. package/build-module/field-types/utils/render-from-elements.js.map +7 -0
  389. package/build-module/hooks/index.js +5 -0
  390. package/build-module/hooks/index.js.map +7 -0
  391. package/build-module/hooks/use-elements.js +43 -0
  392. package/build-module/hooks/use-elements.js.map +7 -0
  393. package/build-module/hooks/use-form-validity.js +392 -0
  394. package/build-module/hooks/use-form-validity.js.map +7 -0
  395. package/build-module/index.js +15 -7
  396. package/build-module/index.js.map +7 -1
  397. package/build-module/lock-unlock.js +8 -7
  398. package/build-module/lock-unlock.js.map +7 -1
  399. package/build-module/types/dataform.js +1 -0
  400. package/build-module/types/dataform.js.map +7 -0
  401. package/build-module/types/dataviews.js +1 -0
  402. package/build-module/types/dataviews.js.map +7 -0
  403. package/build-module/types/field-api.js +1 -0
  404. package/build-module/types/field-api.js.map +7 -0
  405. package/build-module/types/index.js +1 -0
  406. package/build-module/types/index.js.map +7 -0
  407. package/build-module/types/private.js +1 -0
  408. package/build-module/types/private.js.map +7 -0
  409. package/build-module/utils/filter-sort-and-paginate.js +278 -0
  410. package/build-module/utils/filter-sort-and-paginate.js.map +7 -0
  411. package/build-module/utils/has-elements.js +7 -0
  412. package/build-module/utils/has-elements.js.map +7 -0
  413. package/build-module/utils/normalize-fields.js +134 -0
  414. package/build-module/utils/normalize-fields.js.map +7 -0
  415. package/build-style/style-rtl.css +81 -217
  416. package/build-style/style.css +81 -217
  417. package/build-types/components/dataform/index.d.ts +1 -1
  418. package/build-types/components/dataform/index.d.ts.map +1 -1
  419. package/build-types/components/dataform-context/index.d.ts.map +1 -1
  420. package/build-types/components/dataviews/index.d.ts +3 -2
  421. package/build-types/components/dataviews/index.d.ts.map +1 -1
  422. package/build-types/components/dataviews-bulk-actions/index.d.ts +1 -1
  423. package/build-types/components/dataviews-bulk-actions/index.d.ts.map +1 -1
  424. package/build-types/components/dataviews-context/index.d.ts +1 -1
  425. package/build-types/components/dataviews-filters/filter.d.ts +1 -1
  426. package/build-types/components/dataviews-filters/filter.d.ts.map +1 -1
  427. package/build-types/components/dataviews-filters/filters-toggled.d.ts +5 -0
  428. package/build-types/components/dataviews-filters/filters-toggled.d.ts.map +1 -0
  429. package/build-types/components/dataviews-filters/filters.d.ts +6 -0
  430. package/build-types/components/dataviews-filters/filters.d.ts.map +1 -0
  431. package/build-types/components/dataviews-filters/index.d.ts +4 -8
  432. package/build-types/components/dataviews-filters/index.d.ts.map +1 -1
  433. package/build-types/components/dataviews-filters/search-widget.d.ts.map +1 -1
  434. package/build-types/components/dataviews-filters/toggle.d.ts +3 -0
  435. package/build-types/components/dataviews-filters/toggle.d.ts.map +1 -0
  436. package/build-types/components/dataviews-filters/use-filters.d.ts +4 -0
  437. package/build-types/components/dataviews-filters/use-filters.d.ts.map +1 -0
  438. package/build-types/components/dataviews-item-actions/index.d.ts.map +1 -1
  439. package/build-types/components/dataviews-picker/footer.d.ts.map +1 -1
  440. package/build-types/components/dataviews-picker/index.d.ts +3 -2
  441. package/build-types/components/dataviews-picker/index.d.ts.map +1 -1
  442. package/build-types/components/dataviews-selection-checkbox/index.d.ts +1 -1
  443. package/build-types/dataform-controls/array.d.ts +1 -1
  444. package/build-types/dataform-controls/array.d.ts.map +1 -1
  445. package/build-types/dataform-controls/checkbox.d.ts +1 -1
  446. package/build-types/dataform-controls/checkbox.d.ts.map +1 -1
  447. package/build-types/dataform-controls/color.d.ts +1 -1
  448. package/build-types/dataform-controls/color.d.ts.map +1 -1
  449. package/build-types/dataform-controls/date.d.ts +1 -1
  450. package/build-types/dataform-controls/date.d.ts.map +1 -1
  451. package/build-types/dataform-controls/datetime.d.ts +1 -1
  452. package/build-types/dataform-controls/datetime.d.ts.map +1 -1
  453. package/build-types/dataform-controls/email.d.ts +1 -1
  454. package/build-types/dataform-controls/email.d.ts.map +1 -1
  455. package/build-types/dataform-controls/index.d.ts.map +1 -1
  456. package/build-types/dataform-controls/integer.d.ts +4 -1
  457. package/build-types/dataform-controls/integer.d.ts.map +1 -1
  458. package/build-types/dataform-controls/number.d.ts +6 -0
  459. package/build-types/dataform-controls/number.d.ts.map +1 -0
  460. package/build-types/dataform-controls/password.d.ts +1 -1
  461. package/build-types/dataform-controls/password.d.ts.map +1 -1
  462. package/build-types/dataform-controls/radio.d.ts +1 -1
  463. package/build-types/dataform-controls/radio.d.ts.map +1 -1
  464. package/build-types/dataform-controls/select.d.ts +1 -1
  465. package/build-types/dataform-controls/select.d.ts.map +1 -1
  466. package/build-types/dataform-controls/telephone.d.ts +1 -1
  467. package/build-types/dataform-controls/telephone.d.ts.map +1 -1
  468. package/build-types/dataform-controls/text.d.ts +1 -1
  469. package/build-types/dataform-controls/text.d.ts.map +1 -1
  470. package/build-types/dataform-controls/textarea.d.ts +1 -1
  471. package/build-types/dataform-controls/textarea.d.ts.map +1 -1
  472. package/build-types/dataform-controls/toggle-group.d.ts +1 -1
  473. package/build-types/dataform-controls/toggle-group.d.ts.map +1 -1
  474. package/build-types/dataform-controls/toggle.d.ts +1 -1
  475. package/build-types/dataform-controls/toggle.d.ts.map +1 -1
  476. package/build-types/dataform-controls/url.d.ts +1 -1
  477. package/build-types/dataform-controls/url.d.ts.map +1 -1
  478. package/build-types/dataform-controls/utils/get-custom-validity.d.ts +9 -0
  479. package/build-types/dataform-controls/utils/get-custom-validity.d.ts.map +1 -0
  480. package/build-types/dataform-controls/utils/relative-date-control.d.ts +5 -0
  481. package/build-types/dataform-controls/utils/relative-date-control.d.ts.map +1 -0
  482. package/build-types/dataform-controls/utils/validated-input.d.ts +1 -1
  483. package/build-types/dataform-controls/utils/validated-input.d.ts.map +1 -1
  484. package/build-types/dataform-controls/utils/validated-number.d.ts +9 -0
  485. package/build-types/dataform-controls/utils/validated-number.d.ts.map +1 -0
  486. package/build-types/{dataforms-layouts → dataform-layouts}/card/index.d.ts +1 -1
  487. package/build-types/dataform-layouts/card/index.d.ts.map +1 -0
  488. package/build-types/{dataforms-layouts → dataform-layouts}/data-form-layout.d.ts +5 -3
  489. package/build-types/dataform-layouts/data-form-layout.d.ts.map +1 -0
  490. package/build-types/dataform-layouts/get-summary-fields.d.ts +12 -0
  491. package/build-types/dataform-layouts/get-summary-fields.d.ts.map +1 -0
  492. package/build-types/{dataforms-layouts → dataform-layouts}/index.d.ts +0 -5
  493. package/build-types/dataform-layouts/index.d.ts.map +1 -0
  494. package/build-types/dataform-layouts/is-combined-field.d.ts.map +1 -0
  495. package/build-types/{normalize-form-fields.d.ts → dataform-layouts/normalize-form-fields.d.ts} +1 -1
  496. package/build-types/dataform-layouts/normalize-form-fields.d.ts.map +1 -0
  497. package/build-types/{dataforms-layouts → dataform-layouts}/panel/dropdown.d.ts +8 -7
  498. package/build-types/dataform-layouts/panel/dropdown.d.ts.map +1 -0
  499. package/build-types/{dataforms-layouts → dataform-layouts}/panel/index.d.ts +1 -1
  500. package/build-types/dataform-layouts/panel/index.d.ts.map +1 -0
  501. package/build-types/{dataforms-layouts → dataform-layouts}/panel/modal.d.ts +5 -5
  502. package/build-types/dataform-layouts/panel/modal.d.ts.map +1 -0
  503. package/build-types/dataform-layouts/panel/summary-button.d.ts.map +1 -0
  504. package/build-types/{dataforms-layouts → dataform-layouts}/regular/index.d.ts +1 -1
  505. package/build-types/dataform-layouts/regular/index.d.ts.map +1 -0
  506. package/build-types/{dataforms-layouts → dataform-layouts}/row/index.d.ts +1 -1
  507. package/build-types/dataform-layouts/row/index.d.ts.map +1 -0
  508. package/build-types/dataviews-layouts/list/index.d.ts.map +1 -1
  509. package/build-types/dataviews-layouts/picker-grid/index.d.ts.map +1 -1
  510. package/build-types/dataviews-layouts/utils/item-click-wrapper.d.ts +1 -1
  511. package/build-types/dataviews-layouts/utils/item-click-wrapper.d.ts.map +1 -1
  512. package/build-types/field-types/array.d.ts.map +1 -1
  513. package/build-types/field-types/boolean.d.ts +2 -1
  514. package/build-types/field-types/boolean.d.ts.map +1 -1
  515. package/build-types/field-types/color.d.ts +2 -1
  516. package/build-types/field-types/color.d.ts.map +1 -1
  517. package/build-types/field-types/date.d.ts +4 -3
  518. package/build-types/field-types/date.d.ts.map +1 -1
  519. package/build-types/field-types/datetime.d.ts +3 -2
  520. package/build-types/field-types/datetime.d.ts.map +1 -1
  521. package/build-types/field-types/email.d.ts +3 -2
  522. package/build-types/field-types/email.d.ts.map +1 -1
  523. package/build-types/field-types/index.d.ts.map +1 -1
  524. package/build-types/field-types/integer.d.ts +2 -1
  525. package/build-types/field-types/integer.d.ts.map +1 -1
  526. package/build-types/field-types/media.d.ts +2 -5
  527. package/build-types/field-types/media.d.ts.map +1 -1
  528. package/build-types/field-types/number.d.ts +21 -0
  529. package/build-types/field-types/number.d.ts.map +1 -0
  530. package/build-types/field-types/password.d.ts +4 -3
  531. package/build-types/field-types/password.d.ts.map +1 -1
  532. package/build-types/field-types/telephone.d.ts +4 -3
  533. package/build-types/field-types/telephone.d.ts.map +1 -1
  534. package/build-types/field-types/text.d.ts +4 -3
  535. package/build-types/field-types/text.d.ts.map +1 -1
  536. package/build-types/field-types/url.d.ts +4 -3
  537. package/build-types/field-types/url.d.ts.map +1 -1
  538. package/build-types/field-types/utils/render-from-elements.d.ts +6 -0
  539. package/build-types/field-types/utils/render-from-elements.d.ts.map +1 -0
  540. package/build-types/hooks/index.d.ts +5 -0
  541. package/build-types/hooks/index.d.ts.map +1 -0
  542. package/build-types/hooks/use-elements.d.ts +12 -0
  543. package/build-types/hooks/use-elements.d.ts.map +1 -0
  544. package/build-types/hooks/use-form-validity.d.ts +16 -0
  545. package/build-types/hooks/use-form-validity.d.ts.map +1 -0
  546. package/build-types/index.d.ts +2 -2
  547. package/build-types/index.d.ts.map +1 -1
  548. package/build-types/{components/dataform/stories/index.story.d.ts → stories/dataform.story.d.ts} +16 -6
  549. package/build-types/stories/dataform.story.d.ts.map +1 -0
  550. package/build-types/{components/dataviews-picker/stories/index.story.d.ts → stories/dataviews-picker.story.d.ts} +2 -2
  551. package/build-types/stories/dataviews-picker.story.d.ts.map +1 -0
  552. package/build-types/{components/dataviews/stories/fixtures.d.ts → stories/dataviews.fixtures.d.ts} +2 -2
  553. package/build-types/stories/dataviews.fixtures.d.ts.map +1 -0
  554. package/build-types/{components/dataviews/stories/index.story.d.ts → stories/dataviews.story.d.ts} +3 -3
  555. package/build-types/stories/dataviews.story.d.ts.map +1 -0
  556. package/build-types/stories/field-types.story.d.ts +157 -0
  557. package/build-types/stories/field-types.story.d.ts.map +1 -0
  558. package/build-types/test/use-form-validity.d.ts +2 -0
  559. package/build-types/test/use-form-validity.d.ts.map +1 -0
  560. package/build-types/types/dataform.d.ts +112 -0
  561. package/build-types/types/dataform.d.ts.map +1 -0
  562. package/build-types/types/dataviews.d.ts +341 -0
  563. package/build-types/types/dataviews.d.ts.map +1 -0
  564. package/build-types/types/field-api.d.ts +298 -0
  565. package/build-types/types/field-api.d.ts.map +1 -0
  566. package/build-types/types/index.d.ts +4 -0
  567. package/build-types/types/index.d.ts.map +1 -0
  568. package/build-types/{private-types.d.ts → types/private.d.ts} +1 -1
  569. package/build-types/types/private.d.ts.map +1 -0
  570. package/build-types/{filter-and-sort-data-view.d.ts → utils/filter-sort-and-paginate.d.ts} +3 -3
  571. package/build-types/utils/filter-sort-and-paginate.d.ts.map +1 -0
  572. package/build-types/utils/has-elements.d.ts +6 -0
  573. package/build-types/utils/has-elements.d.ts.map +1 -0
  574. package/build-types/utils/normalize-fields.d.ts +9 -0
  575. package/build-types/utils/normalize-fields.d.ts.map +1 -0
  576. package/build-wp/index.js +3241 -2787
  577. package/package.json +16 -18
  578. package/src/components/dataform/index.tsx +9 -3
  579. package/src/components/dataform-context/index.tsx +3 -1
  580. package/src/components/dataviews/index.tsx +10 -16
  581. package/src/components/dataviews/style.scss +4 -0
  582. package/src/components/dataviews-bulk-actions/index.tsx +1 -2
  583. package/src/components/dataviews-bulk-actions/style.scss +3 -0
  584. package/src/components/dataviews-context/index.ts +1 -1
  585. package/src/components/dataviews-filters/filter.tsx +11 -5
  586. package/src/components/dataviews-filters/filters-toggled.tsx +20 -0
  587. package/src/components/dataviews-filters/filters.tsx +73 -0
  588. package/src/components/dataviews-filters/index.tsx +4 -246
  589. package/src/components/dataviews-filters/search-widget.tsx +30 -3
  590. package/src/components/dataviews-filters/style.scss +21 -6
  591. package/src/components/dataviews-filters/toggle.tsx +118 -0
  592. package/src/components/dataviews-filters/use-filters.ts +75 -0
  593. package/src/components/dataviews-footer/style.scss +4 -0
  594. package/src/components/dataviews-item-actions/index.tsx +6 -2
  595. package/src/components/dataviews-item-actions/style.scss +3 -0
  596. package/src/components/dataviews-pagination/style.scss +3 -0
  597. package/src/components/dataviews-picker/footer.tsx +2 -4
  598. package/src/components/dataviews-picker/index.tsx +10 -16
  599. package/src/components/dataviews-picker/style.scss +2 -0
  600. package/src/components/dataviews-selection-checkbox/index.tsx +1 -1
  601. package/src/components/dataviews-selection-checkbox/style.scss +3 -0
  602. package/src/components/dataviews-view-config/style.scss +3 -0
  603. package/src/dataform-controls/array.tsx +16 -82
  604. package/src/dataform-controls/checkbox.tsx +5 -41
  605. package/src/dataform-controls/color.tsx +5 -37
  606. package/src/dataform-controls/date.tsx +375 -238
  607. package/src/dataform-controls/datetime.tsx +92 -60
  608. package/src/dataform-controls/email.tsx +2 -0
  609. package/src/dataform-controls/index.tsx +4 -1
  610. package/src/dataform-controls/integer.tsx +3 -179
  611. package/src/dataform-controls/number.tsx +10 -0
  612. package/src/dataform-controls/password.tsx +2 -0
  613. package/src/dataform-controls/radio.tsx +24 -55
  614. package/src/dataform-controls/select.tsx +14 -61
  615. package/src/dataform-controls/style.scss +2 -0
  616. package/src/dataform-controls/telephone.tsx +2 -0
  617. package/src/dataform-controls/text.tsx +2 -0
  618. package/src/dataform-controls/textarea.tsx +6 -42
  619. package/src/dataform-controls/toggle-group.tsx +38 -64
  620. package/src/dataform-controls/toggle.tsx +6 -42
  621. package/src/dataform-controls/url.tsx +2 -0
  622. package/src/dataform-controls/utils/get-custom-validity.ts +24 -0
  623. package/src/dataform-controls/{relative-date-control.tsx → utils/relative-date-control.tsx} +37 -25
  624. package/src/dataform-controls/utils/validated-input.tsx +4 -40
  625. package/src/dataform-controls/utils/validated-number.tsx +171 -0
  626. package/src/{dataforms-layouts → dataform-layouts}/card/index.tsx +106 -8
  627. package/src/dataform-layouts/card/style.scss +24 -0
  628. package/src/{dataforms-layouts → dataform-layouts}/data-form-layout.tsx +22 -5
  629. package/src/dataform-layouts/get-summary-fields.ts +42 -0
  630. package/src/{dataforms-layouts → dataform-layouts}/index.tsx +32 -2
  631. package/src/{normalize-form-fields.ts → dataform-layouts/normalize-form-fields.ts} +28 -1
  632. package/src/{dataforms-layouts → dataform-layouts}/panel/dropdown.tsx +36 -15
  633. package/src/{dataforms-layouts → dataform-layouts}/panel/index.tsx +88 -55
  634. package/src/{dataforms-layouts → dataform-layouts}/panel/modal.tsx +42 -31
  635. package/src/{dataforms-layouts → dataform-layouts}/panel/style.scss +3 -0
  636. package/src/{dataforms-layouts → dataform-layouts}/regular/index.tsx +5 -1
  637. package/src/{dataforms-layouts → dataform-layouts}/regular/style.scss +2 -0
  638. package/src/{dataforms-layouts → dataform-layouts}/row/index.tsx +9 -4
  639. package/src/dataform-layouts/style.scss +5 -0
  640. package/src/dataviews-layouts/grid/index.tsx +1 -1
  641. package/src/dataviews-layouts/grid/style.scss +8 -3
  642. package/src/dataviews-layouts/list/index.tsx +0 -2
  643. package/src/dataviews-layouts/list/style.scss +3 -0
  644. package/src/dataviews-layouts/picker-grid/index.tsx +16 -9
  645. package/src/dataviews-layouts/picker-grid/style.scss +8 -4
  646. package/src/dataviews-layouts/table/column-header-menu.tsx +1 -1
  647. package/src/dataviews-layouts/table/index.tsx +1 -1
  648. package/src/dataviews-layouts/table/style.scss +9 -0
  649. package/src/dataviews-layouts/utils/grid-items.scss +2 -0
  650. package/src/dataviews-layouts/utils/item-click-wrapper.tsx +40 -2
  651. package/src/field-types/array.tsx +1 -0
  652. package/src/field-types/boolean.tsx +4 -3
  653. package/src/field-types/color.tsx +4 -10
  654. package/src/field-types/{date.ts → date.tsx} +5 -16
  655. package/src/field-types/datetime.tsx +8 -21
  656. package/src/field-types/email.tsx +7 -11
  657. package/src/field-types/index.tsx +13 -23
  658. package/src/field-types/integer.tsx +7 -11
  659. package/src/field-types/media.tsx +3 -17
  660. package/src/field-types/number.tsx +92 -0
  661. package/src/field-types/password.tsx +8 -21
  662. package/src/field-types/telephone.tsx +8 -21
  663. package/src/field-types/text.tsx +8 -21
  664. package/src/field-types/url.tsx +8 -21
  665. package/src/field-types/utils/render-from-elements.tsx +29 -0
  666. package/src/hooks/index.ts +4 -0
  667. package/src/hooks/use-elements.ts +66 -0
  668. package/src/hooks/use-form-validity.ts +571 -0
  669. package/src/index.ts +2 -2
  670. package/src/{components/dataform/stories/index.story.tsx → stories/dataform.story.tsx} +455 -63
  671. package/src/{components/dataviews-picker/stories/index.story.tsx → stories/dataviews-picker.story.tsx} +5 -9
  672. package/src/{components/dataviews/stories/fixtures.tsx → stories/dataviews.fixtures.tsx} +36 -5
  673. package/src/{components/dataviews/stories/index.story.tsx → stories/dataviews.story.tsx} +8 -9
  674. package/src/{field-types/stories/index.story.tsx → stories/field-types.story.tsx} +244 -48
  675. package/src/style.scss +19 -18
  676. package/src/test/dataform.tsx +36 -0
  677. package/src/test/dataviews-picker.tsx +1 -1
  678. package/src/test/dataviews.tsx +1 -2
  679. package/src/test/{filter-and-sort-data-view.js → filter-sort-and-paginate.js} +63 -16
  680. package/src/test/normalize-fields.ts +23 -1
  681. package/src/test/normalize-form-fields.ts +54 -5
  682. package/src/test/use-form-validity.ts +546 -0
  683. package/src/types/dataform.ts +144 -0
  684. package/src/types/dataviews.ts +443 -0
  685. package/src/types/field-api.ts +381 -0
  686. package/src/types/index.ts +3 -0
  687. package/src/{filter-and-sort-data-view.ts → utils/filter-sort-and-paginate.ts} +4 -4
  688. package/src/utils/has-elements.ts +11 -0
  689. package/src/{normalize-fields.ts → utils/normalize-fields.ts} +13 -8
  690. package/tsconfig.tsbuildinfo +1 -1
  691. package/build/dataform-controls/relative-date-control.js +0 -105
  692. package/build/dataform-controls/relative-date-control.js.map +0 -1
  693. package/build/dataforms-layouts/card/index.js +0 -136
  694. package/build/dataforms-layouts/card/index.js.map +0 -1
  695. package/build/dataforms-layouts/data-form-layout.js +0 -71
  696. package/build/dataforms-layouts/data-form-layout.js.map +0 -1
  697. package/build/dataforms-layouts/index.js +0 -58
  698. package/build/dataforms-layouts/index.js.map +0 -1
  699. package/build/dataforms-layouts/is-combined-field.js +0 -14
  700. package/build/dataforms-layouts/is-combined-field.js.map +0 -1
  701. package/build/dataforms-layouts/panel/dropdown.js +0 -120
  702. package/build/dataforms-layouts/panel/dropdown.js.map +0 -1
  703. package/build/dataforms-layouts/panel/index.js +0 -126
  704. package/build/dataforms-layouts/panel/index.js.map +0 -1
  705. package/build/dataforms-layouts/panel/modal.js +0 -120
  706. package/build/dataforms-layouts/panel/modal.js.map +0 -1
  707. package/build/dataforms-layouts/panel/summary-button.js +0 -67
  708. package/build/dataforms-layouts/panel/summary-button.js.map +0 -1
  709. package/build/dataforms-layouts/regular/index.js +0 -116
  710. package/build/dataforms-layouts/regular/index.js.map +0 -1
  711. package/build/dataforms-layouts/row/index.js +0 -113
  712. package/build/dataforms-layouts/row/index.js.map +0 -1
  713. package/build/filter-and-sort-data-view.js +0 -313
  714. package/build/filter-and-sort-data-view.js.map +0 -1
  715. package/build/normalize-fields.js +0 -155
  716. package/build/normalize-fields.js.map +0 -1
  717. package/build/normalize-form-fields.js +0 -81
  718. package/build/normalize-form-fields.js.map +0 -1
  719. package/build/private-types.js +0 -6
  720. package/build/private-types.js.map +0 -1
  721. package/build/types.js +0 -6
  722. package/build/types.js.map +0 -1
  723. package/build/utils.js +0 -22
  724. package/build/utils.js.map +0 -1
  725. package/build/validation.js +0 -61
  726. package/build/validation.js.map +0 -1
  727. package/build-module/dataform-controls/relative-date-control.js +0 -96
  728. package/build-module/dataform-controls/relative-date-control.js.map +0 -1
  729. package/build-module/dataforms-layouts/card/index.js +0 -127
  730. package/build-module/dataforms-layouts/card/index.js.map +0 -1
  731. package/build-module/dataforms-layouts/data-form-layout.js +0 -62
  732. package/build-module/dataforms-layouts/data-form-layout.js.map +0 -1
  733. package/build-module/dataforms-layouts/index.js +0 -51
  734. package/build-module/dataforms-layouts/index.js.map +0 -1
  735. package/build-module/dataforms-layouts/is-combined-field.js +0 -8
  736. package/build-module/dataforms-layouts/is-combined-field.js.map +0 -1
  737. package/build-module/dataforms-layouts/panel/dropdown.js +0 -113
  738. package/build-module/dataforms-layouts/panel/dropdown.js.map +0 -1
  739. package/build-module/dataforms-layouts/panel/index.js +0 -119
  740. package/build-module/dataforms-layouts/panel/index.js.map +0 -1
  741. package/build-module/dataforms-layouts/panel/modal.js +0 -113
  742. package/build-module/dataforms-layouts/panel/modal.js.map +0 -1
  743. package/build-module/dataforms-layouts/panel/summary-button.js +0 -60
  744. package/build-module/dataforms-layouts/panel/summary-button.js.map +0 -1
  745. package/build-module/dataforms-layouts/regular/index.js +0 -109
  746. package/build-module/dataforms-layouts/regular/index.js.map +0 -1
  747. package/build-module/dataforms-layouts/row/index.js +0 -106
  748. package/build-module/dataforms-layouts/row/index.js.map +0 -1
  749. package/build-module/filter-and-sort-data-view.js +0 -305
  750. package/build-module/filter-and-sort-data-view.js.map +0 -1
  751. package/build-module/normalize-fields.js +0 -145
  752. package/build-module/normalize-fields.js.map +0 -1
  753. package/build-module/normalize-form-fields.js +0 -73
  754. package/build-module/normalize-form-fields.js.map +0 -1
  755. package/build-module/private-types.js +0 -2
  756. package/build-module/private-types.js.map +0 -1
  757. package/build-module/types.js +0 -2
  758. package/build-module/types.js.map +0 -1
  759. package/build-module/utils.js +0 -16
  760. package/build-module/utils.js.map +0 -1
  761. package/build-module/validation.js +0 -54
  762. package/build-module/validation.js.map +0 -1
  763. package/build-types/components/dataform/stories/index.story.d.ts.map +0 -1
  764. package/build-types/components/dataviews/stories/fixtures.d.ts.map +0 -1
  765. package/build-types/components/dataviews/stories/index.story.d.ts.map +0 -1
  766. package/build-types/components/dataviews-picker/stories/index.story.d.ts.map +0 -1
  767. package/build-types/dataform-controls/relative-date-control.d.ts +0 -47
  768. package/build-types/dataform-controls/relative-date-control.d.ts.map +0 -1
  769. package/build-types/dataforms-layouts/card/index.d.ts.map +0 -1
  770. package/build-types/dataforms-layouts/data-form-layout.d.ts.map +0 -1
  771. package/build-types/dataforms-layouts/index.d.ts.map +0 -1
  772. package/build-types/dataforms-layouts/is-combined-field.d.ts.map +0 -1
  773. package/build-types/dataforms-layouts/panel/dropdown.d.ts.map +0 -1
  774. package/build-types/dataforms-layouts/panel/index.d.ts.map +0 -1
  775. package/build-types/dataforms-layouts/panel/modal.d.ts.map +0 -1
  776. package/build-types/dataforms-layouts/panel/summary-button.d.ts.map +0 -1
  777. package/build-types/dataforms-layouts/regular/index.d.ts.map +0 -1
  778. package/build-types/dataforms-layouts/row/index.d.ts.map +0 -1
  779. package/build-types/field-types/stories/index.story.d.ts +0 -85
  780. package/build-types/field-types/stories/index.story.d.ts.map +0 -1
  781. package/build-types/filter-and-sort-data-view.d.ts.map +0 -1
  782. package/build-types/normalize-fields.d.ts +0 -12
  783. package/build-types/normalize-fields.d.ts.map +0 -1
  784. package/build-types/normalize-form-fields.d.ts.map +0 -1
  785. package/build-types/private-types.d.ts.map +0 -1
  786. package/build-types/test/validation.d.ts +0 -2
  787. package/build-types/test/validation.d.ts.map +0 -1
  788. package/build-types/types.d.ts +0 -688
  789. package/build-types/types.d.ts.map +0 -1
  790. package/build-types/utils.d.ts +0 -6
  791. package/build-types/utils.d.ts.map +0 -1
  792. package/build-types/validation.d.ts +0 -12
  793. package/build-types/validation.d.ts.map +0 -1
  794. package/src/dataforms-layouts/card/style.scss +0 -10
  795. package/src/test/validation.ts +0 -312
  796. package/src/types.ts +0 -891
  797. package/src/utils.ts +0 -15
  798. package/src/validation.ts +0 -91
  799. /package/build-types/{dataforms-layouts → dataform-layouts}/is-combined-field.d.ts +0 -0
  800. /package/build-types/{dataforms-layouts → dataform-layouts}/panel/summary-button.d.ts +0 -0
  801. /package/src/{dataforms-layouts → dataform-layouts}/is-combined-field.ts +0 -0
  802. /package/src/{dataforms-layouts → dataform-layouts}/panel/summary-button.tsx +0 -0
  803. /package/src/{dataforms-layouts → dataform-layouts}/row/style.scss +0 -0
  804. /package/src/{components/dataviews/stories/style.css → stories/dataviews.style.css} +0 -0
  805. /package/src/{private-types.tsx → types/private.ts} +0 -0
@@ -1,106 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { __experimentalHStack as HStack, __experimentalSpacer as Spacer, __experimentalVStack as VStack, __experimentalHeading as Heading } from '@wordpress/components';
5
- import { useContext } from '@wordpress/element';
6
-
7
- /**
8
- * Internal dependencies
9
- */
10
-
11
- import DataFormContext from '../../components/dataform-context';
12
- import { DataFormLayout } from '../data-form-layout';
13
- import { isCombinedField } from '../is-combined-field';
14
- import { normalizeLayout } from '../../normalize-form-fields';
15
- import { getFormFieldLayout } from '..';
16
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
17
- function Header({
18
- title
19
- }) {
20
- return /*#__PURE__*/_jsx(VStack, {
21
- className: "dataforms-layouts-row__header",
22
- spacing: 4,
23
- children: /*#__PURE__*/_jsxs(HStack, {
24
- alignment: "center",
25
- children: [/*#__PURE__*/_jsx(Heading, {
26
- level: 2,
27
- size: 13,
28
- children: title
29
- }), /*#__PURE__*/_jsx(Spacer, {})]
30
- })
31
- });
32
- }
33
- const EMPTY_WRAPPER = ({
34
- children
35
- }) => /*#__PURE__*/_jsx(_Fragment, {
36
- children: children
37
- });
38
- export default function FormRowField({
39
- data,
40
- field,
41
- onChange,
42
- hideLabelFromVision
43
- }) {
44
- const {
45
- fields
46
- } = useContext(DataFormContext);
47
- const layout = normalizeLayout({
48
- ...field.layout,
49
- type: 'row'
50
- });
51
- if (isCombinedField(field)) {
52
- const form = {
53
- fields: field.children.map(child => {
54
- if (typeof child === 'string') {
55
- return {
56
- id: child
57
- };
58
- }
59
- return child;
60
- })
61
- };
62
- return /*#__PURE__*/_jsxs("div", {
63
- className: "dataforms-layouts-row__field",
64
- children: [!hideLabelFromVision && field.label && /*#__PURE__*/_jsx(Header, {
65
- title: field.label
66
- }), /*#__PURE__*/_jsx(HStack, {
67
- alignment: layout.alignment,
68
- spacing: 4,
69
- children: /*#__PURE__*/_jsx(DataFormLayout, {
70
- data: data,
71
- form: form,
72
- onChange: onChange,
73
- as: EMPTY_WRAPPER,
74
- children: (FieldLayout, nestedField) => /*#__PURE__*/_jsx("div", {
75
- className: "dataforms-layouts-row__field-control",
76
- children: /*#__PURE__*/_jsx(FieldLayout, {
77
- data: data,
78
- field: nestedField,
79
- onChange: onChange,
80
- hideLabelFromVision: hideLabelFromVision
81
- })
82
- }, nestedField.id)
83
- })
84
- })]
85
- });
86
- }
87
- const fieldDefinition = fields.find(f => f.id === field.id);
88
- if (!fieldDefinition || !fieldDefinition.Edit) {
89
- return null;
90
- }
91
- const RegularLayout = getFormFieldLayout('regular')?.component;
92
- if (!RegularLayout) {
93
- return null;
94
- }
95
- return /*#__PURE__*/_jsx(_Fragment, {
96
- children: /*#__PURE__*/_jsx("div", {
97
- className: "dataforms-layouts-row__field-control",
98
- children: /*#__PURE__*/_jsx(RegularLayout, {
99
- data: data,
100
- field: fieldDefinition,
101
- onChange: onChange
102
- })
103
- })
104
- });
105
- }
106
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["__experimentalHStack","HStack","__experimentalSpacer","Spacer","__experimentalVStack","VStack","__experimentalHeading","Heading","useContext","DataFormContext","DataFormLayout","isCombinedField","normalizeLayout","getFormFieldLayout","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","Header","title","className","spacing","children","alignment","level","size","EMPTY_WRAPPER","FormRowField","data","field","onChange","hideLabelFromVision","fields","layout","type","form","map","child","id","label","as","FieldLayout","nestedField","fieldDefinition","find","f","Edit","RegularLayout","component"],"sources":["@wordpress/dataviews/src/dataforms-layouts/row/index.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalSpacer as Spacer,\n\t__experimentalVStack as VStack,\n\t__experimentalHeading as Heading,\n} from '@wordpress/components';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { FieldLayoutProps, Form, NormalizedRowLayout } from '../../types';\nimport DataFormContext from '../../components/dataform-context';\nimport { DataFormLayout } from '../data-form-layout';\nimport { isCombinedField } from '../is-combined-field';\nimport { normalizeLayout } from '../../normalize-form-fields';\nimport { getFormFieldLayout } from '..';\n\nfunction Header( { title }: { title: string } ) {\n\treturn (\n\t\t<VStack className=\"dataforms-layouts-row__header\" spacing={ 4 }>\n\t\t\t<HStack alignment=\"center\">\n\t\t\t\t<Heading level={ 2 } size={ 13 }>\n\t\t\t\t\t{ title }\n\t\t\t\t</Heading>\n\t\t\t\t<Spacer />\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n\nconst EMPTY_WRAPPER = ( { children }: { children: React.ReactNode } ) => (\n\t<>{ children }</>\n);\n\nexport default function FormRowField< Item >( {\n\tdata,\n\tfield,\n\tonChange,\n\thideLabelFromVision,\n}: FieldLayoutProps< Item > ) {\n\tconst { fields } = useContext( DataFormContext );\n\n\tconst layout = normalizeLayout( {\n\t\t...field.layout,\n\t\ttype: 'row',\n\t} ) as NormalizedRowLayout;\n\n\tif ( isCombinedField( field ) ) {\n\t\tconst form: Form = {\n\t\t\tfields: field.children.map( ( child ) => {\n\t\t\t\tif ( typeof child === 'string' ) {\n\t\t\t\t\treturn { id: child };\n\t\t\t\t}\n\t\t\t\treturn child;\n\t\t\t} ),\n\t\t};\n\n\t\treturn (\n\t\t\t<div className=\"dataforms-layouts-row__field\">\n\t\t\t\t{ ! hideLabelFromVision && field.label && (\n\t\t\t\t\t<Header title={ field.label } />\n\t\t\t\t) }\n\t\t\t\t<HStack alignment={ layout.alignment } spacing={ 4 }>\n\t\t\t\t\t<DataFormLayout\n\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\tform={ form }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tas={ EMPTY_WRAPPER }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( FieldLayout, nestedField ) => (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tkey={ nestedField.id }\n\t\t\t\t\t\t\t\tclassName=\"dataforms-layouts-row__field-control\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<FieldLayout\n\t\t\t\t\t\t\t\t\tdata={ data }\n\t\t\t\t\t\t\t\t\tfield={ nestedField }\n\t\t\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</DataFormLayout>\n\t\t\t\t</HStack>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst fieldDefinition = fields.find( ( f ) => f.id === field.id );\n\n\tif ( ! fieldDefinition || ! fieldDefinition.Edit ) {\n\t\treturn null;\n\t}\n\n\tconst RegularLayout = getFormFieldLayout( 'regular' )?.component;\n\tif ( ! RegularLayout ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<div className=\"dataforms-layouts-row__field-control\">\n\t\t\t\t<RegularLayout\n\t\t\t\t\tdata={ data }\n\t\t\t\t\tfield={ fieldDefinition }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,305 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
- import removeAccents from 'remove-accents';
5
- import { subDays, subWeeks, subMonths, subYears } from 'date-fns';
6
-
7
- /**
8
- * WordPress dependencies
9
- */
10
- import { getDate } from '@wordpress/date';
11
-
12
- /**
13
- * Internal dependencies
14
- */
15
- import { OPERATOR_IS, OPERATOR_IS_NOT, OPERATOR_IS_NONE, OPERATOR_IS_ANY, 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 } from './constants';
16
- import { normalizeFields } from './normalize-fields';
17
- function normalizeSearchInput(input = '') {
18
- return removeAccents(input.trim().toLowerCase());
19
- }
20
- const EMPTY_ARRAY = [];
21
-
22
- /**
23
- * Calculates a date offset from now.
24
- *
25
- * @param value Number of units to offset.
26
- * @param unit Unit of time to offset.
27
- * @return Date offset from now.
28
- */
29
- function getRelativeDate(value, unit) {
30
- switch (unit) {
31
- case 'days':
32
- return subDays(new Date(), value);
33
- case 'weeks':
34
- return subWeeks(new Date(), value);
35
- case 'months':
36
- return subMonths(new Date(), value);
37
- case 'years':
38
- return subYears(new Date(), value);
39
- default:
40
- return new Date();
41
- }
42
- }
43
-
44
- /**
45
- * Applies the filtering, sorting and pagination to the raw data based on the view configuration.
46
- *
47
- * @param data Raw data.
48
- * @param view View config.
49
- * @param fields Fields config.
50
- *
51
- * @return Filtered, sorted and paginated data.
52
- */
53
- export function filterSortAndPaginate(data, view, fields) {
54
- if (!data) {
55
- return {
56
- data: EMPTY_ARRAY,
57
- paginationInfo: {
58
- totalItems: 0,
59
- totalPages: 0
60
- }
61
- };
62
- }
63
- const _fields = normalizeFields(fields);
64
- let filteredData = [...data];
65
- // Handle global search.
66
- if (view.search) {
67
- const normalizedSearch = normalizeSearchInput(view.search);
68
- filteredData = filteredData.filter(item => {
69
- return _fields.filter(field => field.enableGlobalSearch).some(field => {
70
- const fieldValue = field.getValue({
71
- item
72
- });
73
- const values = Array.isArray(fieldValue) ? fieldValue : [fieldValue];
74
- return values.some(value => normalizeSearchInput(String(value)).includes(normalizedSearch));
75
- });
76
- });
77
- }
78
- if (view.filters && view.filters?.length > 0) {
79
- view.filters.forEach(filter => {
80
- const field = _fields.find(_field => _field.id === filter.field);
81
- if (field) {
82
- if (filter.operator === OPERATOR_IS_ANY && filter?.value?.length > 0) {
83
- filteredData = filteredData.filter(item => {
84
- const fieldValue = field.getValue({
85
- item
86
- });
87
- if (Array.isArray(fieldValue)) {
88
- return filter.value.some(filterValue => fieldValue.includes(filterValue));
89
- } else if (typeof fieldValue === 'string') {
90
- return filter.value.includes(fieldValue);
91
- }
92
- return false;
93
- });
94
- } else if (filter.operator === OPERATOR_IS_NONE && filter?.value?.length > 0) {
95
- filteredData = filteredData.filter(item => {
96
- const fieldValue = field.getValue({
97
- item
98
- });
99
- if (Array.isArray(fieldValue)) {
100
- return !filter.value.some(filterValue => fieldValue.includes(filterValue));
101
- } else if (typeof fieldValue === 'string') {
102
- return !filter.value.includes(fieldValue);
103
- }
104
- return false;
105
- });
106
- } else if (filter.operator === OPERATOR_IS_ALL && filter?.value?.length > 0) {
107
- filteredData = filteredData.filter(item => {
108
- return filter.value.every(value => {
109
- return field.getValue({
110
- item
111
- })?.includes(value);
112
- });
113
- });
114
- } else if (filter.operator === OPERATOR_IS_NOT_ALL && filter?.value?.length > 0) {
115
- filteredData = filteredData.filter(item => {
116
- return filter.value.every(value => {
117
- return !field.getValue({
118
- item
119
- })?.includes(value);
120
- });
121
- });
122
- } else if (filter.operator === OPERATOR_IS) {
123
- filteredData = filteredData.filter(item => {
124
- return filter.value === field.getValue({
125
- item
126
- }) || filter.value === undefined;
127
- });
128
- } else if (filter.operator === OPERATOR_IS_NOT) {
129
- filteredData = filteredData.filter(item => {
130
- return filter.value !== field.getValue({
131
- item
132
- });
133
- });
134
- } else if (filter.operator === OPERATOR_ON && filter.value !== undefined) {
135
- const filterDate = getDate(filter.value);
136
- filteredData = filteredData.filter(item => {
137
- const fieldDate = getDate(field.getValue({
138
- item
139
- }));
140
- return filterDate.getTime() === fieldDate.getTime();
141
- });
142
- } else if (filter.operator === OPERATOR_NOT_ON && filter.value !== undefined) {
143
- const filterDate = getDate(filter.value);
144
- filteredData = filteredData.filter(item => {
145
- const fieldDate = getDate(field.getValue({
146
- item
147
- }));
148
- return filterDate.getTime() !== fieldDate.getTime();
149
- });
150
- } else if (filter.operator === OPERATOR_LESS_THAN && filter.value !== undefined) {
151
- filteredData = filteredData.filter(item => {
152
- const fieldValue = field.getValue({
153
- item
154
- });
155
- return fieldValue < filter.value;
156
- });
157
- } else if (filter.operator === OPERATOR_GREATER_THAN && filter.value !== undefined) {
158
- filteredData = filteredData.filter(item => {
159
- const fieldValue = field.getValue({
160
- item
161
- });
162
- return fieldValue > filter.value;
163
- });
164
- } else if (filter.operator === OPERATOR_LESS_THAN_OR_EQUAL && filter.value !== undefined) {
165
- filteredData = filteredData.filter(item => {
166
- const fieldValue = field.getValue({
167
- item
168
- });
169
- return fieldValue <= filter.value;
170
- });
171
- } else if (filter.operator === OPERATOR_GREATER_THAN_OR_EQUAL && filter.value !== undefined) {
172
- filteredData = filteredData.filter(item => {
173
- const fieldValue = field.getValue({
174
- item
175
- });
176
- return fieldValue >= filter.value;
177
- });
178
- } else if (filter.operator === OPERATOR_CONTAINS && filter?.value !== undefined) {
179
- filteredData = filteredData.filter(item => {
180
- const fieldValue = field.getValue({
181
- item
182
- });
183
- return typeof fieldValue === 'string' && filter.value && fieldValue.toLowerCase().includes(String(filter.value).toLowerCase());
184
- });
185
- } else if (filter.operator === OPERATOR_NOT_CONTAINS && filter?.value !== undefined) {
186
- filteredData = filteredData.filter(item => {
187
- const fieldValue = field.getValue({
188
- item
189
- });
190
- return typeof fieldValue === 'string' && filter.value && !fieldValue.toLowerCase().includes(String(filter.value).toLowerCase());
191
- });
192
- } else if (filter.operator === OPERATOR_STARTS_WITH && filter?.value !== undefined) {
193
- filteredData = filteredData.filter(item => {
194
- const fieldValue = field.getValue({
195
- item
196
- });
197
- return typeof fieldValue === 'string' && filter.value && fieldValue.toLowerCase().startsWith(String(filter.value).toLowerCase());
198
- });
199
- } else if (filter.operator === OPERATOR_BEFORE && filter.value !== undefined) {
200
- const filterValue = getDate(filter.value);
201
- filteredData = filteredData.filter(item => {
202
- const fieldValue = getDate(field.getValue({
203
- item
204
- }));
205
- return fieldValue < filterValue;
206
- });
207
- } else if (filter.operator === OPERATOR_AFTER && filter.value !== undefined) {
208
- const filterValue = getDate(filter.value);
209
- filteredData = filteredData.filter(item => {
210
- const fieldValue = getDate(field.getValue({
211
- item
212
- }));
213
- return fieldValue > filterValue;
214
- });
215
- } else if (filter.operator === OPERATOR_BEFORE_INC && filter.value !== undefined) {
216
- const filterValue = getDate(filter.value);
217
- filteredData = filteredData.filter(item => {
218
- const fieldValue = getDate(field.getValue({
219
- item
220
- }));
221
- return fieldValue <= filterValue;
222
- });
223
- } else if (filter.operator === OPERATOR_AFTER_INC && filter.value !== undefined) {
224
- const filterValue = getDate(filter.value);
225
- filteredData = filteredData.filter(item => {
226
- const fieldValue = getDate(field.getValue({
227
- item
228
- }));
229
- return fieldValue >= filterValue;
230
- });
231
- } else if (filter.operator === OPERATOR_BETWEEN && Array.isArray(filter.value) && filter.value.length === 2 && filter.value[0] !== undefined && filter.value[1] !== undefined) {
232
- filteredData = filteredData.filter(item => {
233
- const fieldValue = field.getValue({
234
- item
235
- });
236
- if (typeof fieldValue === 'number' || fieldValue instanceof Date || typeof fieldValue === 'string') {
237
- return fieldValue >= filter.value[0] && fieldValue <= filter.value[1];
238
- }
239
- return false;
240
- });
241
- } else if (filter.operator === OPERATOR_IN_THE_PAST && filter.value?.value !== undefined && filter.value?.unit !== undefined) {
242
- const targetDate = getRelativeDate(filter.value.value, filter.value.unit);
243
- filteredData = filteredData.filter(item => {
244
- const fieldValue = getDate(field.getValue({
245
- item
246
- }));
247
- return fieldValue >= targetDate && fieldValue <= new Date();
248
- });
249
- } else if (filter.operator === OPERATOR_OVER && filter.value?.value !== undefined && filter.value?.unit !== undefined) {
250
- const targetDate = getRelativeDate(filter.value.value, filter.value.unit);
251
- filteredData = filteredData.filter(item => {
252
- const fieldValue = getDate(field.getValue({
253
- item
254
- }));
255
- return fieldValue < targetDate;
256
- });
257
- }
258
- }
259
- });
260
- }
261
-
262
- // Handle sorting.
263
- const sortByField = view.sort?.field ? _fields.find(field => {
264
- return field.id === view.sort?.field;
265
- }) : null;
266
- const groupByField = view.groupByField ? _fields.find(field => {
267
- return field.id === view.groupByField;
268
- }) : null;
269
- if (sortByField || groupByField) {
270
- filteredData.sort((a, b) => {
271
- if (groupByField) {
272
- const groupCompare = groupByField.sort(a, b, 'asc');
273
-
274
- // If items are in different groups, return the group comparison result.
275
- // Otherwise, fall back to sorting by the sort field.
276
- if (groupCompare !== 0) {
277
- return groupCompare;
278
- }
279
- }
280
- if (sortByField) {
281
- var _view$sort$direction;
282
- return sortByField.sort(a, b, (_view$sort$direction = view.sort?.direction) !== null && _view$sort$direction !== void 0 ? _view$sort$direction : 'desc');
283
- }
284
- return 0;
285
- });
286
- }
287
-
288
- // Handle pagination.
289
- let totalItems = filteredData.length;
290
- let totalPages = 1;
291
- if (view.page !== undefined && view.perPage !== undefined) {
292
- const start = (view.page - 1) * view.perPage;
293
- totalItems = filteredData?.length || 0;
294
- totalPages = Math.ceil(totalItems / view.perPage);
295
- filteredData = filteredData?.slice(start, start + view.perPage);
296
- }
297
- return {
298
- data: filteredData,
299
- paginationInfo: {
300
- totalItems,
301
- totalPages
302
- }
303
- };
304
- }
305
- //# sourceMappingURL=filter-and-sort-data-view.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["removeAccents","subDays","subWeeks","subMonths","subYears","getDate","OPERATOR_IS","OPERATOR_IS_NOT","OPERATOR_IS_NONE","OPERATOR_IS_ANY","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","normalizeFields","normalizeSearchInput","input","trim","toLowerCase","EMPTY_ARRAY","getRelativeDate","value","unit","Date","filterSortAndPaginate","data","view","fields","paginationInfo","totalItems","totalPages","_fields","filteredData","search","normalizedSearch","filter","item","field","enableGlobalSearch","some","fieldValue","getValue","values","Array","isArray","String","includes","filters","length","forEach","find","_field","id","operator","filterValue","every","undefined","filterDate","fieldDate","getTime","startsWith","targetDate","sortByField","sort","groupByField","a","b","groupCompare","_view$sort$direction","direction","page","perPage","start","Math","ceil","slice"],"sources":["@wordpress/dataviews/src/filter-and-sort-data-view.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport removeAccents from 'remove-accents';\nimport { subDays, subWeeks, subMonths, subYears } from 'date-fns';\n\n/**\n * WordPress dependencies\n */\nimport { getDate } from '@wordpress/date';\n\n/**\n * Internal dependencies\n */\nimport {\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_ANY,\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} from './constants';\nimport { normalizeFields } from './normalize-fields';\nimport type { Field, View } from './types';\n\nfunction normalizeSearchInput( input = '' ) {\n\treturn removeAccents( input.trim().toLowerCase() );\n}\n\nconst EMPTY_ARRAY: [] = [];\n\n/**\n * Calculates a date offset from now.\n *\n * @param value Number of units to offset.\n * @param unit Unit of time to offset.\n * @return Date offset from now.\n */\nfunction getRelativeDate( value: number, unit: string ): Date {\n\tswitch ( unit ) {\n\t\tcase 'days':\n\t\t\treturn subDays( new Date(), value );\n\t\tcase 'weeks':\n\t\t\treturn subWeeks( new Date(), value );\n\t\tcase 'months':\n\t\t\treturn subMonths( new Date(), value );\n\t\tcase 'years':\n\t\t\treturn subYears( new Date(), value );\n\t\tdefault:\n\t\t\treturn new Date();\n\t}\n}\n\n/**\n * Applies the filtering, sorting and pagination to the raw data based on the view configuration.\n *\n * @param data Raw data.\n * @param view View config.\n * @param fields Fields config.\n *\n * @return Filtered, sorted and paginated data.\n */\nexport function filterSortAndPaginate< Item >(\n\tdata: Item[],\n\tview: View,\n\tfields: Field< Item >[]\n): {\n\tdata: Item[];\n\tpaginationInfo: { totalItems: number; totalPages: number };\n} {\n\tif ( ! data ) {\n\t\treturn {\n\t\t\tdata: EMPTY_ARRAY,\n\t\t\tpaginationInfo: { totalItems: 0, totalPages: 0 },\n\t\t};\n\t}\n\tconst _fields = normalizeFields( fields );\n\tlet filteredData = [ ...data ];\n\t// Handle global search.\n\tif ( view.search ) {\n\t\tconst normalizedSearch = normalizeSearchInput( view.search );\n\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\treturn _fields\n\t\t\t\t.filter( ( field ) => field.enableGlobalSearch )\n\t\t\t\t.some( ( field ) => {\n\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\tconst values = Array.isArray( fieldValue )\n\t\t\t\t\t\t? fieldValue\n\t\t\t\t\t\t: [ fieldValue ];\n\t\t\t\t\treturn values.some( ( value ) =>\n\t\t\t\t\t\tnormalizeSearchInput( String( value ) ).includes(\n\t\t\t\t\t\t\tnormalizedSearch\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t} );\n\t}\n\n\tif ( view.filters && view.filters?.length > 0 ) {\n\t\tview.filters.forEach( ( filter ) => {\n\t\t\tconst field = _fields.find(\n\t\t\t\t( _field ) => _field.id === filter.field\n\t\t\t);\n\t\t\tif ( field ) {\n\t\t\t\tif (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_ANY &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\tif ( Array.isArray( fieldValue ) ) {\n\t\t\t\t\t\t\treturn filter.value.some( ( filterValue: any ) =>\n\t\t\t\t\t\t\t\tfieldValue.includes( filterValue )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( typeof fieldValue === 'string' ) {\n\t\t\t\t\t\t\treturn filter.value.includes( fieldValue );\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_NONE &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\tif ( Array.isArray( fieldValue ) ) {\n\t\t\t\t\t\t\treturn ! filter.value.some( ( filterValue: any ) =>\n\t\t\t\t\t\t\t\tfieldValue.includes( filterValue )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if ( typeof fieldValue === 'string' ) {\n\t\t\t\t\t\t\treturn ! filter.value.includes( fieldValue );\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_ALL &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value.every( ( value: any ) => {\n\t\t\t\t\t\t\treturn field\n\t\t\t\t\t\t\t\t.getValue( { item } )\n\t\t\t\t\t\t\t\t?.includes( value );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_IS_NOT_ALL &&\n\t\t\t\t\tfilter?.value?.length > 0\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value.every( ( value: any ) => {\n\t\t\t\t\t\t\treturn ! field\n\t\t\t\t\t\t\t\t.getValue( { item } )\n\t\t\t\t\t\t\t\t?.includes( value );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t} else if ( filter.operator === OPERATOR_IS ) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\tfilter.value === field.getValue( { item } ) ||\n\t\t\t\t\t\t\tfilter.value === undefined\n\t\t\t\t\t\t);\n\t\t\t\t\t} );\n\t\t\t\t} else if ( filter.operator === OPERATOR_IS_NOT ) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\treturn filter.value !== field.getValue( { item } );\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_ON &&\n\t\t\t\t\tfilter.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tconst filterDate = getDate( filter.value );\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldDate = getDate( field.getValue( { item } ) );\n\t\t\t\t\t\treturn filterDate.getTime() === fieldDate.getTime();\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_NOT_ON &&\n\t\t\t\t\tfilter.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tconst filterDate = getDate( filter.value );\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldDate = getDate( field.getValue( { item } ) );\n\t\t\t\t\t\treturn filterDate.getTime() !== fieldDate.getTime();\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_LESS_THAN &&\n\t\t\t\t\tfilter.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\treturn fieldValue < filter.value;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_GREATER_THAN &&\n\t\t\t\t\tfilter.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\treturn fieldValue > filter.value;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_LESS_THAN_OR_EQUAL &&\n\t\t\t\t\tfilter.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\treturn fieldValue <= filter.value;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_GREATER_THAN_OR_EQUAL &&\n\t\t\t\t\tfilter.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\treturn fieldValue >= filter.value;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_CONTAINS &&\n\t\t\t\t\tfilter?.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\ttypeof fieldValue === 'string' &&\n\t\t\t\t\t\t\tfilter.value &&\n\t\t\t\t\t\t\tfieldValue\n\t\t\t\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(\n\t\t\t\t\t\t\t\t\tString( filter.value ).toLowerCase()\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_NOT_CONTAINS &&\n\t\t\t\t\tfilter?.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\ttypeof fieldValue === 'string' &&\n\t\t\t\t\t\t\tfilter.value &&\n\t\t\t\t\t\t\t! fieldValue\n\t\t\t\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t\t\t\t.includes(\n\t\t\t\t\t\t\t\t\tString( filter.value ).toLowerCase()\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_STARTS_WITH &&\n\t\t\t\t\tfilter?.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\ttypeof fieldValue === 'string' &&\n\t\t\t\t\t\t\tfilter.value &&\n\t\t\t\t\t\t\tfieldValue\n\t\t\t\t\t\t\t\t.toLowerCase()\n\t\t\t\t\t\t\t\t.startsWith(\n\t\t\t\t\t\t\t\t\tString( filter.value ).toLowerCase()\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_BEFORE &&\n\t\t\t\t\tfilter.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tconst filterValue = getDate( filter.value );\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = getDate(\n\t\t\t\t\t\t\tfield.getValue( { item } )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn fieldValue < filterValue;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_AFTER &&\n\t\t\t\t\tfilter.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tconst filterValue = getDate( filter.value );\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = getDate(\n\t\t\t\t\t\t\tfield.getValue( { item } )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn fieldValue > filterValue;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_BEFORE_INC &&\n\t\t\t\t\tfilter.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tconst filterValue = getDate( filter.value );\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = getDate(\n\t\t\t\t\t\t\tfield.getValue( { item } )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn fieldValue <= filterValue;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_AFTER_INC &&\n\t\t\t\t\tfilter.value !== undefined\n\t\t\t\t) {\n\t\t\t\t\tconst filterValue = getDate( filter.value );\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = getDate(\n\t\t\t\t\t\t\tfield.getValue( { item } )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn fieldValue >= filterValue;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_BETWEEN &&\n\t\t\t\t\tArray.isArray( filter.value ) &&\n\t\t\t\t\tfilter.value.length === 2 &&\n\t\t\t\t\tfilter.value[ 0 ] !== undefined &&\n\t\t\t\t\tfilter.value[ 1 ] !== undefined\n\t\t\t\t) {\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = field.getValue( { item } );\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\ttypeof fieldValue === 'number' ||\n\t\t\t\t\t\t\tfieldValue instanceof Date ||\n\t\t\t\t\t\t\ttypeof fieldValue === 'string'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\tfieldValue >= filter.value[ 0 ] &&\n\t\t\t\t\t\t\t\tfieldValue <= filter.value[ 1 ]\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_IN_THE_PAST &&\n\t\t\t\t\tfilter.value?.value !== undefined &&\n\t\t\t\t\tfilter.value?.unit !== undefined\n\t\t\t\t) {\n\t\t\t\t\tconst targetDate = getRelativeDate(\n\t\t\t\t\t\tfilter.value.value,\n\t\t\t\t\t\tfilter.value.unit\n\t\t\t\t\t);\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = getDate(\n\t\t\t\t\t\t\tfield.getValue( { item } )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\tfieldValue >= targetDate && fieldValue <= new Date()\n\t\t\t\t\t\t);\n\t\t\t\t\t} );\n\t\t\t\t} else if (\n\t\t\t\t\tfilter.operator === OPERATOR_OVER &&\n\t\t\t\t\tfilter.value?.value !== undefined &&\n\t\t\t\t\tfilter.value?.unit !== undefined\n\t\t\t\t) {\n\t\t\t\t\tconst targetDate = getRelativeDate(\n\t\t\t\t\t\tfilter.value.value,\n\t\t\t\t\t\tfilter.value.unit\n\t\t\t\t\t);\n\t\t\t\t\tfilteredData = filteredData.filter( ( item ) => {\n\t\t\t\t\t\tconst fieldValue = getDate(\n\t\t\t\t\t\t\tfield.getValue( { item } )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn fieldValue < targetDate;\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t}\n\n\t// Handle sorting.\n\tconst sortByField = view.sort?.field\n\t\t? _fields.find( ( field ) => {\n\t\t\t\treturn field.id === view.sort?.field;\n\t\t } )\n\t\t: null;\n\tconst groupByField = view.groupByField\n\t\t? _fields.find( ( field ) => {\n\t\t\t\treturn field.id === view.groupByField;\n\t\t } )\n\t\t: null;\n\tif ( sortByField || groupByField ) {\n\t\tfilteredData.sort( ( a, b ) => {\n\t\t\tif ( groupByField ) {\n\t\t\t\tconst groupCompare = groupByField.sort( a, b, 'asc' );\n\n\t\t\t\t// If items are in different groups, return the group comparison result.\n\t\t\t\t// Otherwise, fall back to sorting by the sort field.\n\t\t\t\tif ( groupCompare !== 0 ) {\n\t\t\t\t\treturn groupCompare;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( sortByField ) {\n\t\t\t\treturn sortByField.sort( a, b, view.sort?.direction ?? 'desc' );\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t} );\n\t}\n\n\t// Handle pagination.\n\tlet totalItems = filteredData.length;\n\tlet totalPages = 1;\n\tif ( view.page !== undefined && view.perPage !== undefined ) {\n\t\tconst start = ( view.page - 1 ) * view.perPage;\n\t\ttotalItems = filteredData?.length || 0;\n\t\ttotalPages = Math.ceil( totalItems / view.perPage );\n\t\tfilteredData = filteredData?.slice( start, start + view.perPage );\n\t}\n\n\treturn {\n\t\tdata: filteredData,\n\t\tpaginationInfo: {\n\t\t\ttotalItems,\n\t\t\ttotalPages,\n\t\t},\n\t};\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,145 +0,0 @@
1
- /**
2
- * External dependencies
3
- */
4
-
5
- /**
6
- * Internal dependencies
7
- */
8
- import getFieldTypeDefinition from './field-types';
9
- import { getControl } from './dataform-controls';
10
- import { ALL_OPERATORS, OPERATOR_BETWEEN, SINGLE_SELECTION_OPERATORS } from './constants';
11
- const getValueFromId = id => ({
12
- item
13
- }) => {
14
- const path = id.split('.');
15
- let value = item;
16
- for (const segment of path) {
17
- if (value.hasOwnProperty(segment)) {
18
- value = value[segment];
19
- } else {
20
- value = undefined;
21
- }
22
- }
23
- return value;
24
- };
25
- export const setValueFromId = id => ({
26
- value
27
- }) => {
28
- const path = id.split('.');
29
- const result = {};
30
- let current = result;
31
- for (const segment of path.slice(0, -1)) {
32
- current[segment] = {};
33
- current = current[segment];
34
- }
35
- current[path.at(-1)] = value;
36
- return result;
37
- };
38
- function getFilterBy(field, fieldTypeDefinition) {
39
- if (field.filterBy === false) {
40
- return false;
41
- }
42
- if (typeof field.filterBy === 'object') {
43
- let operators = field.filterBy.operators;
44
-
45
- // Assign default values if no operator was provided.
46
- if (!operators || !Array.isArray(operators)) {
47
- operators = !!fieldTypeDefinition.filterBy ? fieldTypeDefinition.filterBy.defaultOperators : [];
48
- }
49
-
50
- // Make sure only valid operators are included.
51
- let validOperators = ALL_OPERATORS;
52
- if (typeof fieldTypeDefinition.filterBy === 'object') {
53
- validOperators = fieldTypeDefinition.filterBy.validOperators;
54
- }
55
- operators = operators.filter(operator => validOperators.includes(operator));
56
-
57
- // The `between` operator is not supported when elements are provided.
58
- if (field.elements && operators.includes(OPERATOR_BETWEEN)) {
59
- operators = operators.filter(operator => operator !== OPERATOR_BETWEEN);
60
- }
61
-
62
- // Do not allow mixing single & multiselection operators.
63
- // Remove multiselection operators if any of the single selection ones is present.
64
- const hasSingleSelectionOperator = operators.some(operator => SINGLE_SELECTION_OPERATORS.includes(operator));
65
- if (hasSingleSelectionOperator) {
66
- operators = operators.filter(operator =>
67
- // The 'Between' operator is unique as it can be combined with single selection operators.
68
- [...SINGLE_SELECTION_OPERATORS, OPERATOR_BETWEEN].includes(operator));
69
- }
70
-
71
- // If no operators are left at this point,
72
- // the filters should be disabled.
73
- if (operators.length === 0) {
74
- return false;
75
- }
76
- return {
77
- isPrimary: !!field.filterBy.isPrimary,
78
- operators
79
- };
80
- }
81
- if (fieldTypeDefinition.filterBy === false) {
82
- return false;
83
- }
84
- let defaultOperators = fieldTypeDefinition.filterBy.defaultOperators;
85
- // The `between` operator is not supported when elements are provided.
86
- if (field.elements && defaultOperators.includes(OPERATOR_BETWEEN)) {
87
- defaultOperators = defaultOperators.filter(operator => operator !== OPERATOR_BETWEEN);
88
- }
89
- return {
90
- operators: defaultOperators
91
- };
92
- }
93
-
94
- /**
95
- * Apply default values and normalize the fields config.
96
- *
97
- * @param fields Fields config.
98
- * @return Normalized fields config.
99
- */
100
- export function normalizeFields(fields) {
101
- return fields.map(field => {
102
- var _field$sort, _field$render, _field$enableHiding, _ref, _field$enableSorting, _ref2, _field$readOnly;
103
- const fieldTypeDefinition = getFieldTypeDefinition(field.type);
104
- const getValue = field.getValue || getValueFromId(field.id);
105
- const setValue = field.setValue || setValueFromId(field.id);
106
- const sort = (_field$sort = field.sort) !== null && _field$sort !== void 0 ? _field$sort : function sort(a, b, direction) {
107
- return fieldTypeDefinition.sort(getValue({
108
- item: a
109
- }), getValue({
110
- item: b
111
- }), direction);
112
- };
113
- const isValid = {
114
- ...fieldTypeDefinition.isValid,
115
- ...field.isValid
116
- };
117
- const Edit = getControl(field, fieldTypeDefinition);
118
- const render = (_field$render = field.render) !== null && _field$render !== void 0 ? _field$render : function render({
119
- item,
120
- field: renderedField
121
- }) {
122
- return fieldTypeDefinition.render({
123
- item,
124
- field: renderedField
125
- });
126
- };
127
- const filterBy = getFilterBy(field, fieldTypeDefinition);
128
- return {
129
- ...field,
130
- label: field.label || field.id,
131
- header: field.header || field.label || field.id,
132
- getValue,
133
- setValue,
134
- render,
135
- sort,
136
- isValid,
137
- Edit,
138
- enableHiding: (_field$enableHiding = field.enableHiding) !== null && _field$enableHiding !== void 0 ? _field$enableHiding : true,
139
- enableSorting: (_ref = (_field$enableSorting = field.enableSorting) !== null && _field$enableSorting !== void 0 ? _field$enableSorting : fieldTypeDefinition.enableSorting) !== null && _ref !== void 0 ? _ref : true,
140
- filterBy,
141
- readOnly: (_ref2 = (_field$readOnly = field.readOnly) !== null && _field$readOnly !== void 0 ? _field$readOnly : fieldTypeDefinition.readOnly) !== null && _ref2 !== void 0 ? _ref2 : false
142
- };
143
- });
144
- }
145
- //# sourceMappingURL=normalize-fields.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["getFieldTypeDefinition","getControl","ALL_OPERATORS","OPERATOR_BETWEEN","SINGLE_SELECTION_OPERATORS","getValueFromId","id","item","path","split","value","segment","hasOwnProperty","undefined","setValueFromId","result","current","slice","at","getFilterBy","field","fieldTypeDefinition","filterBy","operators","Array","isArray","defaultOperators","validOperators","filter","operator","includes","elements","hasSingleSelectionOperator","some","length","isPrimary","normalizeFields","fields","map","_field$sort","_field$render","_field$enableHiding","_ref","_field$enableSorting","_ref2","_field$readOnly","type","getValue","setValue","sort","a","b","direction","isValid","Edit","render","renderedField","label","header","enableHiding","enableSorting","readOnly"],"sources":["@wordpress/dataviews/src/normalize-fields.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { FunctionComponent } from 'react';\n\n/**\n * Internal dependencies\n */\nimport getFieldTypeDefinition from './field-types';\nimport type {\n\tDataViewRenderFieldProps,\n\tField,\n\tFieldTypeDefinition,\n\tNormalizedFilterByConfig,\n\tNormalizedField,\n} from './types';\nimport { getControl } from './dataform-controls';\nimport {\n\tALL_OPERATORS,\n\tOPERATOR_BETWEEN,\n\tSINGLE_SELECTION_OPERATORS,\n} from './constants';\n\nconst getValueFromId =\n\t( id: string ) =>\n\t( { item }: { item: any } ) => {\n\t\tconst path = id.split( '.' );\n\t\tlet value = item;\n\t\tfor ( const segment of path ) {\n\t\t\tif ( value.hasOwnProperty( segment ) ) {\n\t\t\t\tvalue = value[ segment ];\n\t\t\t} else {\n\t\t\t\tvalue = undefined;\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t};\n\nexport const setValueFromId =\n\t( id: string ) =>\n\t( { value }: { value: any } ) => {\n\t\tconst path = id.split( '.' );\n\t\tconst result: any = {};\n\t\tlet current = result;\n\n\t\tfor ( const segment of path.slice( 0, -1 ) ) {\n\t\t\tcurrent[ segment ] = {};\n\t\t\tcurrent = current[ segment ];\n\t\t}\n\n\t\tcurrent[ path.at( -1 )! ] = value;\n\t\treturn result;\n\t};\n\nfunction getFilterBy< Item >(\n\tfield: Field< Item >,\n\tfieldTypeDefinition: FieldTypeDefinition< Item >\n): NormalizedFilterByConfig | false {\n\tif ( field.filterBy === false ) {\n\t\treturn false;\n\t}\n\n\tif ( typeof field.filterBy === 'object' ) {\n\t\tlet operators = field.filterBy.operators;\n\n\t\t// Assign default values if no operator was provided.\n\t\tif ( ! operators || ! Array.isArray( operators ) ) {\n\t\t\toperators = !! fieldTypeDefinition.filterBy\n\t\t\t\t? fieldTypeDefinition.filterBy.defaultOperators\n\t\t\t\t: [];\n\t\t}\n\n\t\t// Make sure only valid operators are included.\n\t\tlet validOperators = ALL_OPERATORS;\n\t\tif ( typeof fieldTypeDefinition.filterBy === 'object' ) {\n\t\t\tvalidOperators = fieldTypeDefinition.filterBy.validOperators;\n\t\t}\n\t\toperators = operators.filter( ( operator ) =>\n\t\t\tvalidOperators.includes( operator )\n\t\t);\n\n\t\t// The `between` operator is not supported when elements are provided.\n\t\tif ( field.elements && operators.includes( OPERATOR_BETWEEN ) ) {\n\t\t\toperators = operators.filter(\n\t\t\t\t( operator ) => operator !== OPERATOR_BETWEEN\n\t\t\t);\n\t\t}\n\n\t\t// Do not allow mixing single & multiselection operators.\n\t\t// Remove multiselection operators if any of the single selection ones is present.\n\t\tconst hasSingleSelectionOperator = operators.some( ( operator ) =>\n\t\t\tSINGLE_SELECTION_OPERATORS.includes( operator )\n\t\t);\n\t\tif ( hasSingleSelectionOperator ) {\n\t\t\toperators = operators.filter( ( operator ) =>\n\t\t\t\t// The 'Between' operator is unique as it can be combined with single selection operators.\n\t\t\t\t[ ...SINGLE_SELECTION_OPERATORS, OPERATOR_BETWEEN ].includes(\n\t\t\t\t\toperator\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\t// If no operators are left at this point,\n\t\t// the filters should be disabled.\n\t\tif ( operators.length === 0 ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn {\n\t\t\tisPrimary: !! field.filterBy.isPrimary,\n\t\t\toperators,\n\t\t};\n\t}\n\n\tif ( fieldTypeDefinition.filterBy === false ) {\n\t\treturn false;\n\t}\n\n\tlet defaultOperators = fieldTypeDefinition.filterBy.defaultOperators;\n\t// The `between` operator is not supported when elements are provided.\n\tif ( field.elements && defaultOperators.includes( OPERATOR_BETWEEN ) ) {\n\t\tdefaultOperators = defaultOperators.filter(\n\t\t\t( operator ) => operator !== OPERATOR_BETWEEN\n\t\t);\n\t}\n\n\treturn {\n\t\toperators: defaultOperators,\n\t};\n}\n\n/**\n * Apply default values and normalize the fields config.\n *\n * @param fields Fields config.\n * @return Normalized fields config.\n */\nexport function normalizeFields< Item >(\n\tfields: Field< Item >[]\n): NormalizedField< Item >[] {\n\treturn fields.map( ( field ) => {\n\t\tconst fieldTypeDefinition = getFieldTypeDefinition< Item >(\n\t\t\tfield.type\n\t\t);\n\t\tconst getValue = field.getValue || getValueFromId( field.id );\n\t\tconst setValue = field.setValue || setValueFromId( field.id );\n\n\t\tconst sort =\n\t\t\tfield.sort ??\n\t\t\tfunction sort( a, b, direction ) {\n\t\t\t\treturn fieldTypeDefinition.sort(\n\t\t\t\t\tgetValue( { item: a } ),\n\t\t\t\t\tgetValue( { item: b } ),\n\t\t\t\t\tdirection\n\t\t\t\t);\n\t\t\t};\n\n\t\tconst isValid = {\n\t\t\t...fieldTypeDefinition.isValid,\n\t\t\t...field.isValid,\n\t\t};\n\n\t\tconst Edit = getControl( field, fieldTypeDefinition );\n\n\t\tconst render =\n\t\t\tfield.render ??\n\t\t\tfunction render( {\n\t\t\t\titem,\n\t\t\t\tfield: renderedField,\n\t\t\t}: DataViewRenderFieldProps< Item > ) {\n\t\t\t\treturn (\n\t\t\t\t\tfieldTypeDefinition.render as FunctionComponent<\n\t\t\t\t\t\tDataViewRenderFieldProps< Item >\n\t\t\t\t\t>\n\t\t\t\t )( { item, field: renderedField } );\n\t\t\t};\n\n\t\tconst filterBy = getFilterBy( field, fieldTypeDefinition );\n\n\t\treturn {\n\t\t\t...field,\n\t\t\tlabel: field.label || field.id,\n\t\t\theader: field.header || field.label || field.id,\n\t\t\tgetValue,\n\t\t\tsetValue,\n\t\t\trender,\n\t\t\tsort,\n\t\t\tisValid,\n\t\t\tEdit,\n\t\t\tenableHiding: field.enableHiding ?? true,\n\t\t\tenableSorting:\n\t\t\t\tfield.enableSorting ??\n\t\t\t\tfieldTypeDefinition.enableSorting ??\n\t\t\t\ttrue,\n\t\t\tfilterBy,\n\t\t\treadOnly: field.readOnly ?? fieldTypeDefinition.readOnly ?? false,\n\t\t};\n\t} );\n}\n"],"mappings":"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","ignoreList":[]}