@wordpress/dataviews 9.0.1-next.6f42e1382.0 → 9.1.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 (286) hide show
  1. package/CHANGELOG.md +25 -2
  2. package/README.md +112 -15
  3. package/build/components/dataviews/index.js +4 -6
  4. package/build/components/dataviews/index.js.map +1 -1
  5. package/build/components/dataviews-filters/filters-toggled.js +32 -0
  6. package/build/components/dataviews-filters/filters-toggled.js.map +1 -0
  7. package/build/components/dataviews-filters/filters.js +73 -0
  8. package/build/components/dataviews-filters/filters.js.map +1 -0
  9. package/build/components/dataviews-filters/index.js +26 -190
  10. package/build/components/dataviews-filters/index.js.map +1 -1
  11. package/build/components/dataviews-filters/input-widget.js +48 -4
  12. package/build/components/dataviews-filters/input-widget.js.map +1 -1
  13. package/build/components/dataviews-filters/toggle.js +99 -0
  14. package/build/components/dataviews-filters/toggle.js.map +1 -0
  15. package/build/components/dataviews-filters/use-filters.js +63 -0
  16. package/build/components/dataviews-filters/use-filters.js.map +1 -0
  17. package/build/components/dataviews-picker/index.js +4 -6
  18. package/build/components/dataviews-picker/index.js.map +1 -1
  19. package/build/components/dataviews-view-config/index.js +22 -3
  20. package/build/components/dataviews-view-config/index.js.map +1 -1
  21. package/build/dataform-controls/array.js +117 -29
  22. package/build/dataform-controls/array.js.map +1 -1
  23. package/build/dataform-controls/checkbox.js +31 -20
  24. package/build/dataform-controls/checkbox.js.map +1 -1
  25. package/build/dataform-controls/color.js +29 -24
  26. package/build/dataform-controls/color.js.map +1 -1
  27. package/build/dataform-controls/date.js +32 -24
  28. package/build/dataform-controls/date.js.map +1 -1
  29. package/build/dataform-controls/datetime.js +133 -19
  30. package/build/dataform-controls/datetime.js.map +1 -1
  31. package/build/dataform-controls/email.js +7 -1
  32. package/build/dataform-controls/email.js.map +1 -1
  33. package/build/dataform-controls/index.js +25 -0
  34. package/build/dataform-controls/index.js.map +1 -1
  35. package/build/dataform-controls/integer.js +7 -106
  36. package/build/dataform-controls/integer.js.map +1 -1
  37. package/build/dataform-controls/number.js +21 -0
  38. package/build/dataform-controls/number.js.map +1 -0
  39. package/build/dataform-controls/radio.js +42 -9
  40. package/build/dataform-controls/radio.js.map +1 -1
  41. package/build/dataform-controls/relative-date-control.js +6 -10
  42. package/build/dataform-controls/relative-date-control.js.map +1 -1
  43. package/build/dataform-controls/select.js +41 -10
  44. package/build/dataform-controls/select.js.map +1 -1
  45. package/build/dataform-controls/telephone.js +7 -1
  46. package/build/dataform-controls/telephone.js.map +1 -1
  47. package/build/dataform-controls/text.js +14 -2
  48. package/build/dataform-controls/text.js.map +1 -1
  49. package/build/dataform-controls/textarea.js +33 -20
  50. package/build/dataform-controls/textarea.js.map +1 -1
  51. package/build/dataform-controls/toggle-group.js +36 -6
  52. package/build/dataform-controls/toggle-group.js.map +1 -1
  53. package/build/dataform-controls/toggle.js +33 -22
  54. package/build/dataform-controls/toggle.js.map +1 -1
  55. package/build/dataform-controls/url.js +7 -1
  56. package/build/dataform-controls/url.js.map +1 -1
  57. package/build/dataform-controls/utils/validated-input.js +34 -32
  58. package/build/dataform-controls/utils/validated-input.js.map +1 -1
  59. package/build/dataform-controls/utils/validated-number.js +146 -0
  60. package/build/dataform-controls/utils/validated-number.js.map +1 -0
  61. package/build/dataforms-layouts/panel/dropdown.js +10 -14
  62. package/build/dataforms-layouts/panel/dropdown.js.map +1 -1
  63. package/build/dataforms-layouts/panel/index.js +24 -11
  64. package/build/dataforms-layouts/panel/index.js.map +1 -1
  65. package/build/dataforms-layouts/panel/modal.js +22 -27
  66. package/build/dataforms-layouts/panel/modal.js.map +1 -1
  67. package/build/dataforms-layouts/panel/summary-button.js +67 -0
  68. package/build/dataforms-layouts/panel/summary-button.js.map +1 -0
  69. package/build/dataviews-layouts/picker-grid/index.js +4 -1
  70. package/build/dataviews-layouts/picker-grid/index.js.map +1 -1
  71. package/build/field-types/array.js +0 -6
  72. package/build/field-types/array.js.map +1 -1
  73. package/build/field-types/index.js +4 -0
  74. package/build/field-types/index.js.map +1 -1
  75. package/build/field-types/number.js +71 -0
  76. package/build/field-types/number.js.map +1 -0
  77. package/build/index.js +7 -0
  78. package/build/index.js.map +1 -1
  79. package/build/normalize-fields.js +17 -0
  80. package/build/normalize-fields.js.map +1 -1
  81. package/build/types.js.map +1 -1
  82. package/build/validation.js +18 -1
  83. package/build/validation.js.map +1 -1
  84. package/build-module/components/dataviews/index.js +5 -7
  85. package/build-module/components/dataviews/index.js.map +1 -1
  86. package/build-module/components/dataviews-filters/filters-toggled.js +24 -0
  87. package/build-module/components/dataviews-filters/filters-toggled.js.map +1 -0
  88. package/build-module/components/dataviews-filters/filters.js +65 -0
  89. package/build-module/components/dataviews-filters/filters.js.map +1 -0
  90. package/build-module/components/dataviews-filters/index.js +4 -186
  91. package/build-module/components/dataviews-filters/index.js.map +1 -1
  92. package/build-module/components/dataviews-filters/input-widget.js +48 -4
  93. package/build-module/components/dataviews-filters/input-widget.js.map +1 -1
  94. package/build-module/components/dataviews-filters/toggle.js +91 -0
  95. package/build-module/components/dataviews-filters/toggle.js.map +1 -0
  96. package/build-module/components/dataviews-filters/use-filters.js +56 -0
  97. package/build-module/components/dataviews-filters/use-filters.js.map +1 -0
  98. package/build-module/components/dataviews-picker/index.js +5 -7
  99. package/build-module/components/dataviews-picker/index.js.map +1 -1
  100. package/build-module/components/dataviews-view-config/index.js +22 -3
  101. package/build-module/components/dataviews-view-config/index.js.map +1 -1
  102. package/build-module/dataform-controls/array.js +120 -32
  103. package/build-module/dataform-controls/array.js.map +1 -1
  104. package/build-module/dataform-controls/checkbox.js +31 -21
  105. package/build-module/dataform-controls/checkbox.js.map +1 -1
  106. package/build-module/dataform-controls/color.js +28 -24
  107. package/build-module/dataform-controls/color.js.map +1 -1
  108. package/build-module/dataform-controls/date.js +32 -24
  109. package/build-module/dataform-controls/date.js.map +1 -1
  110. package/build-module/dataform-controls/datetime.js +135 -21
  111. package/build-module/dataform-controls/datetime.js.map +1 -1
  112. package/build-module/dataform-controls/email.js +7 -1
  113. package/build-module/dataform-controls/email.js.map +1 -1
  114. package/build-module/dataform-controls/index.js +25 -0
  115. package/build-module/dataform-controls/index.js.map +1 -1
  116. package/build-module/dataform-controls/integer.js +7 -106
  117. package/build-module/dataform-controls/integer.js.map +1 -1
  118. package/build-module/dataform-controls/number.js +14 -0
  119. package/build-module/dataform-controls/number.js.map +1 -0
  120. package/build-module/dataform-controls/radio.js +44 -11
  121. package/build-module/dataform-controls/radio.js.map +1 -1
  122. package/build-module/dataform-controls/relative-date-control.js +6 -10
  123. package/build-module/dataform-controls/relative-date-control.js.map +1 -1
  124. package/build-module/dataform-controls/select.js +43 -12
  125. package/build-module/dataform-controls/select.js.map +1 -1
  126. package/build-module/dataform-controls/telephone.js +7 -1
  127. package/build-module/dataform-controls/telephone.js.map +1 -1
  128. package/build-module/dataform-controls/text.js +14 -2
  129. package/build-module/dataform-controls/text.js.map +1 -1
  130. package/build-module/dataform-controls/textarea.js +32 -20
  131. package/build-module/dataform-controls/textarea.js.map +1 -1
  132. package/build-module/dataform-controls/toggle-group.js +38 -8
  133. package/build-module/dataform-controls/toggle-group.js.map +1 -1
  134. package/build-module/dataform-controls/toggle.js +33 -23
  135. package/build-module/dataform-controls/toggle.js.map +1 -1
  136. package/build-module/dataform-controls/url.js +7 -1
  137. package/build-module/dataform-controls/url.js.map +1 -1
  138. package/build-module/dataform-controls/utils/validated-input.js +34 -33
  139. package/build-module/dataform-controls/utils/validated-input.js.map +1 -1
  140. package/build-module/dataform-controls/utils/validated-number.js +138 -0
  141. package/build-module/dataform-controls/utils/validated-number.js.map +1 -0
  142. package/build-module/dataforms-layouts/panel/dropdown.js +10 -15
  143. package/build-module/dataforms-layouts/panel/dropdown.js.map +1 -1
  144. package/build-module/dataforms-layouts/panel/index.js +24 -11
  145. package/build-module/dataforms-layouts/panel/index.js.map +1 -1
  146. package/build-module/dataforms-layouts/panel/modal.js +22 -28
  147. package/build-module/dataforms-layouts/panel/modal.js.map +1 -1
  148. package/build-module/dataforms-layouts/panel/summary-button.js +60 -0
  149. package/build-module/dataforms-layouts/panel/summary-button.js.map +1 -0
  150. package/build-module/dataviews-layouts/picker-grid/index.js +4 -1
  151. package/build-module/dataviews-layouts/picker-grid/index.js.map +1 -1
  152. package/build-module/field-types/array.js +0 -6
  153. package/build-module/field-types/array.js.map +1 -1
  154. package/build-module/field-types/index.js +4 -0
  155. package/build-module/field-types/index.js.map +1 -1
  156. package/build-module/field-types/number.js +65 -0
  157. package/build-module/field-types/number.js.map +1 -0
  158. package/build-module/index.js +1 -0
  159. package/build-module/index.js.map +1 -1
  160. package/build-module/normalize-fields.js +15 -0
  161. package/build-module/normalize-fields.js.map +1 -1
  162. package/build-module/types.js.map +1 -1
  163. package/build-module/validation.js +18 -1
  164. package/build-module/validation.js.map +1 -1
  165. package/build-types/components/dataform/stories/index.story.d.ts +3 -0
  166. package/build-types/components/dataform/stories/index.story.d.ts.map +1 -1
  167. package/build-types/components/dataviews/index.d.ts +3 -2
  168. package/build-types/components/dataviews/index.d.ts.map +1 -1
  169. package/build-types/components/dataviews/stories/fixtures.d.ts +4 -2
  170. package/build-types/components/dataviews/stories/fixtures.d.ts.map +1 -1
  171. package/build-types/components/dataviews-filters/filters-toggled.d.ts +5 -0
  172. package/build-types/components/dataviews-filters/filters-toggled.d.ts.map +1 -0
  173. package/build-types/components/dataviews-filters/filters.d.ts +6 -0
  174. package/build-types/components/dataviews-filters/filters.d.ts.map +1 -0
  175. package/build-types/components/dataviews-filters/index.d.ts +4 -8
  176. package/build-types/components/dataviews-filters/index.d.ts.map +1 -1
  177. package/build-types/components/dataviews-filters/input-widget.d.ts.map +1 -1
  178. package/build-types/components/dataviews-filters/toggle.d.ts +3 -0
  179. package/build-types/components/dataviews-filters/toggle.d.ts.map +1 -0
  180. package/build-types/components/dataviews-filters/use-filters.d.ts +4 -0
  181. package/build-types/components/dataviews-filters/use-filters.d.ts.map +1 -0
  182. package/build-types/components/dataviews-picker/index.d.ts +3 -2
  183. package/build-types/components/dataviews-picker/index.d.ts.map +1 -1
  184. package/build-types/components/dataviews-view-config/index.d.ts.map +1 -1
  185. package/build-types/dataform-controls/array.d.ts.map +1 -1
  186. package/build-types/dataform-controls/checkbox.d.ts.map +1 -1
  187. package/build-types/dataform-controls/color.d.ts.map +1 -1
  188. package/build-types/dataform-controls/date.d.ts.map +1 -1
  189. package/build-types/dataform-controls/datetime.d.ts.map +1 -1
  190. package/build-types/dataform-controls/email.d.ts.map +1 -1
  191. package/build-types/dataform-controls/index.d.ts +1 -1
  192. package/build-types/dataform-controls/index.d.ts.map +1 -1
  193. package/build-types/dataform-controls/integer.d.ts +4 -1
  194. package/build-types/dataform-controls/integer.d.ts.map +1 -1
  195. package/build-types/dataform-controls/number.d.ts +6 -0
  196. package/build-types/dataform-controls/number.d.ts.map +1 -0
  197. package/build-types/dataform-controls/radio.d.ts.map +1 -1
  198. package/build-types/dataform-controls/relative-date-control.d.ts +6 -5
  199. package/build-types/dataform-controls/relative-date-control.d.ts.map +1 -1
  200. package/build-types/dataform-controls/select.d.ts.map +1 -1
  201. package/build-types/dataform-controls/telephone.d.ts.map +1 -1
  202. package/build-types/dataform-controls/text.d.ts +1 -1
  203. package/build-types/dataform-controls/text.d.ts.map +1 -1
  204. package/build-types/dataform-controls/textarea.d.ts +1 -1
  205. package/build-types/dataform-controls/textarea.d.ts.map +1 -1
  206. package/build-types/dataform-controls/toggle-group.d.ts.map +1 -1
  207. package/build-types/dataform-controls/toggle.d.ts.map +1 -1
  208. package/build-types/dataform-controls/url.d.ts.map +1 -1
  209. package/build-types/dataform-controls/utils/validated-input.d.ts +4 -4
  210. package/build-types/dataform-controls/utils/validated-input.d.ts.map +1 -1
  211. package/build-types/dataform-controls/utils/validated-number.d.ts +9 -0
  212. package/build-types/dataform-controls/utils/validated-number.d.ts.map +1 -0
  213. package/build-types/dataforms-layouts/panel/dropdown.d.ts +2 -1
  214. package/build-types/dataforms-layouts/panel/dropdown.d.ts.map +1 -1
  215. package/build-types/dataforms-layouts/panel/index.d.ts.map +1 -1
  216. package/build-types/dataforms-layouts/panel/modal.d.ts +2 -1
  217. package/build-types/dataforms-layouts/panel/modal.d.ts.map +1 -1
  218. package/build-types/dataforms-layouts/panel/summary-button.d.ts +15 -0
  219. package/build-types/dataforms-layouts/panel/summary-button.d.ts.map +1 -0
  220. package/build-types/dataviews-layouts/picker-grid/index.d.ts.map +1 -1
  221. package/build-types/field-types/array.d.ts.map +1 -1
  222. package/build-types/field-types/index.d.ts.map +1 -1
  223. package/build-types/field-types/number.d.ts +20 -0
  224. package/build-types/field-types/number.d.ts.map +1 -0
  225. package/build-types/field-types/stories/index.story.d.ts +106 -57
  226. package/build-types/field-types/stories/index.story.d.ts.map +1 -1
  227. package/build-types/index.d.ts +1 -0
  228. package/build-types/index.d.ts.map +1 -1
  229. package/build-types/normalize-fields.d.ts +3 -0
  230. package/build-types/normalize-fields.d.ts.map +1 -1
  231. package/build-types/types.d.ts +69 -5
  232. package/build-types/types.d.ts.map +1 -1
  233. package/build-types/validation.d.ts.map +1 -1
  234. package/build-wp/index.js +2354 -1717
  235. package/package.json +16 -15
  236. package/src/components/dataform/stories/index.story.tsx +528 -8
  237. package/src/components/dataviews/index.tsx +8 -14
  238. package/src/components/dataviews/stories/fixtures.tsx +99 -41
  239. package/src/components/dataviews/stories/index.story.tsx +2 -2
  240. package/src/components/dataviews-filters/filters-toggled.tsx +20 -0
  241. package/src/components/dataviews-filters/filters.tsx +73 -0
  242. package/src/components/dataviews-filters/index.tsx +4 -246
  243. package/src/components/dataviews-filters/input-widget.tsx +44 -5
  244. package/src/components/dataviews-filters/toggle.tsx +118 -0
  245. package/src/components/dataviews-filters/use-filters.ts +73 -0
  246. package/src/components/dataviews-picker/index.tsx +8 -14
  247. package/src/components/dataviews-picker/stories/index.story.tsx +1 -1
  248. package/src/components/dataviews-view-config/index.tsx +18 -3
  249. package/src/dataform-controls/array.tsx +139 -44
  250. package/src/dataform-controls/checkbox.tsx +41 -24
  251. package/src/dataform-controls/color.tsx +33 -24
  252. package/src/dataform-controls/date.tsx +47 -21
  253. package/src/dataform-controls/datetime.tsx +171 -23
  254. package/src/dataform-controls/email.tsx +9 -1
  255. package/src/dataform-controls/index.tsx +28 -0
  256. package/src/dataform-controls/integer.tsx +3 -146
  257. package/src/dataform-controls/number.tsx +10 -0
  258. package/src/dataform-controls/radio.tsx +53 -11
  259. package/src/dataform-controls/relative-date-control.tsx +11 -10
  260. package/src/dataform-controls/select.tsx +53 -10
  261. package/src/dataform-controls/telephone.tsx +9 -1
  262. package/src/dataform-controls/text.tsx +18 -1
  263. package/src/dataform-controls/textarea.tsx +38 -24
  264. package/src/dataform-controls/toggle-group.tsx +50 -10
  265. package/src/dataform-controls/toggle.tsx +41 -24
  266. package/src/dataform-controls/url.tsx +9 -1
  267. package/src/dataform-controls/utils/validated-input.tsx +50 -50
  268. package/src/dataform-controls/utils/validated-number.tsx +209 -0
  269. package/src/dataforms-layouts/panel/dropdown.tsx +12 -23
  270. package/src/dataforms-layouts/panel/index.tsx +39 -16
  271. package/src/dataforms-layouts/panel/modal.tsx +24 -30
  272. package/src/dataforms-layouts/panel/summary-button.tsx +92 -0
  273. package/src/dataviews-layouts/picker-grid/index.tsx +15 -8
  274. package/src/field-types/array.tsx +0 -8
  275. package/src/field-types/index.tsx +5 -0
  276. package/src/field-types/number.tsx +104 -0
  277. package/src/field-types/stories/index.story.tsx +170 -16
  278. package/src/index.ts +1 -0
  279. package/src/normalize-fields.ts +18 -0
  280. package/src/test/dataform.tsx +36 -0
  281. package/src/test/filter-and-sort-data-view.js +182 -138
  282. package/src/test/normalize-fields.ts +136 -0
  283. package/src/test/validation.ts +235 -0
  284. package/src/types.ts +76 -4
  285. package/src/validation.ts +32 -0
  286. package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md CHANGED
@@ -2,7 +2,25 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
- ## 9.0.0-next.0 (2025-09-12)
5
+ ## 9.1.0 (2025-10-01)
6
+
7
+ ### Features
8
+
9
+ - Introduce a new `DataViewsPicker` component. [#70971](https://github.com/WordPress/gutenberg/pull/70971) and [#71836](https://github.com/WordPress/gutenberg/pull/71836).
10
+ - DataForm: Add support for elements validation in array fields [#71194](https://github.com/WordPress/gutenberg/pull/71194)
11
+
12
+ ### Bug Fixes
13
+
14
+ - DataViews: keep non-hideable fields out of the hidden-fields list when they’re already invisible. [#71729](https://github.com/WordPress/gutenberg/pull/71729/)
15
+ - DataViewsPicker: Hide the space reserved for the title when the title is hidden. [#71865](https://github.com/WordPress/gutenberg/pull/71865)
16
+
17
+ ### Enhancements
18
+
19
+ - DataViews: Require at least one field to be visible. ([#71625](https://github.com/WordPress/gutenberg/pull/71625))
20
+ - DataViews: Expose `DataViews.FiltersToggled` component to be used in free composition. [#71907](https://github.com/WordPress/gutenberg/pull/71907)
21
+ - DataViews: Add `number` field and refactor `integer` field based on the `number` field. ([#71797](https://github.com/WordPress/gutenberg/pull/71797))
22
+
23
+ ## 9.0.0 (2025-09-17)
6
24
 
7
25
  ### Breaking changes
8
26
 
@@ -11,13 +29,18 @@
11
29
 
12
30
  ### Features
13
31
 
14
- - Introduce a new `DataViewsPicker` component. [#70971](https://github.com/WordPress/gutenberg/pull/70971)
32
+ - Field API: introduce `setValue` to fix DataViews filters and DataForm panel layout (modal) when working with nested data. [#71604](https://github.com/WordPress/gutenberg/pull/71604)
15
33
  - Dataform: Add new `telephone` field type and field control. [#71498](https://github.com/WordPress/gutenberg/pull/71498)
16
34
  - DataForm: introduce a new `row` layout, check the README for details. [#71124](https://github.com/WordPress/gutenberg/pull/71124)
17
35
  - Dataform: Add new `url` field type and field control. [#71518](https://github.com/WordPress/gutenberg/pull/71518)
18
36
  - Dataform: Add new `password` field type and field control. [#71545](https://github.com/WordPress/gutenberg/pull/71545)
19
37
  - DataForm: Add a textarea control for use with the `text` field type ([#71495](https://github.com/WordPress/gutenberg/pull/71495))
20
38
  - DataViews: support groupBy in the list layout. [#71548](https://github.com/WordPress/gutenberg/pull/71548)
39
+ - DataForm: support validation in select control [#71665](https://github.com/WordPress/gutenberg/pull/71665)
40
+ - DataForm: support validation in toggleGroup control. ([#71666](https://github.com/WordPress/gutenberg/pull/71666))
41
+ - DataForm: Add object configuration support for Edit property with some options. ([#71582](https://github.com/WordPress/gutenberg/pull/71582))
42
+ - DataForm: Add summary field support for composed fields. ([#71614](https://github.com/WordPress/gutenberg/pull/71614))
43
+ - DataForm: update radio control to support `required` and `custom` validation. [#71664](https://github.com/WordPress/gutenberg/pull/71664)
21
44
 
22
45
  ### Bug Fixes
23
46
 
package/README.md CHANGED
@@ -452,6 +452,7 @@ The following components are available directly under `DataViews`:
452
452
 
453
453
  - `DataViews.Search`
454
454
  - `DataViews.FiltersToggle`
455
+ - `DataViews.FiltersToggled`
455
456
  - `DataViews.Filters`
456
457
  - `DataViews.Layout`
457
458
  - `DataViews.LayoutSwitcher`
@@ -480,7 +481,7 @@ const CustomLayout = () => {
480
481
  <h1>{ __( 'Free composition' ) }</h1>
481
482
  <DataViews.Search />
482
483
  <DataViews.FiltersToggle />
483
- <DataViews.Filters />
484
+ <DataViews.FiltersToggled />
484
485
  <DataViews.Layout />
485
486
  <DataViews.Pagination />
486
487
  </DataViews>
@@ -492,7 +493,7 @@ const CustomLayout = () => {
492
493
 
493
494
  ### Accessibility considerations
494
495
 
495
- All `DataViews` subcomponents are designed with accessibility in mind — including keyboard interactions, focus management, and semantic roles. Components like `Search`, `Pagination`, `FiltersToggle`, and `Filters` already handle these responsibilities internally and can be safely used in custom layouts.
496
+ All `DataViews` subcomponents are designed with accessibility in mind — including keyboard interactions, focus management, and semantic roles. Components like `Search`, `Pagination`, `FiltersToggle`, and `FiltersToggled` already handle these responsibilities internally and can be safely used in custom layouts.
496
497
 
497
498
  When using free composition, developers are responsible for the outer structure of the layout.
498
499
 
@@ -938,7 +939,7 @@ Example:
938
939
 
939
940
  ### `type`
940
941
 
941
- Field type. One of `text`, `integer`, `datetime`.
942
+ Field type. One of `text`, `integer`, `number`, `datetime`, `date`, `media`, `boolean`, `email`, `password`, `telephone`, `color`, `url`, `array`.
942
943
 
943
944
  If a field declares a `type`, it gets default implementations for the `sort`, `isValid`, and `Edit` functions if no other values are specified.
944
945
 
@@ -989,24 +990,119 @@ Example:
989
990
  }
990
991
  ```
991
992
 
992
- ### `getValue`
993
+ ### `getValue` and `setValue`
993
994
 
994
- React component that returns the value of a field. This value is used to sort or filter the fields.
995
+ These functions control how field values are read from and written to your data structure.
995
996
 
996
- - Type: React component.
997
+ Both functions are optional and automatically generated from the field's `id` when not provided. The `id` is treated as a dot-notation path (e.g., `"user.profile.name"` accesses `item.user.profile.name`).
998
+
999
+ #### `getValue`
1000
+
1001
+ Function that extracts the field value from an item. This value is used to sort, filter, and display the field.
1002
+
1003
+ - Type: `function`.
997
1004
  - Optional.
998
- - Defaults to `item[ id ]`.
999
- - Props:
1000
- - `item` value to be processed.
1001
- - Returns a value that represents the field.
1005
+ - Args:
1006
+ - `item`: the data item to be processed.
1007
+ - Returns the field's value.
1002
1008
 
1003
- Example:
1009
+ #### `setValue`
1010
+
1011
+ Function that creates a partial item object with updated field values. This is used by DataForm for editing operations and determines the structure of data passed to the `onChange` callback.
1012
+
1013
+ - Type: `function`.
1014
+ - Optional.
1015
+ - Args:
1016
+ - `item`: the current item being edited.
1017
+ - `value`: the new value to be set for the field.
1018
+ - Returns a partial item object with the changes to be applied.
1019
+
1020
+ #### Simple field access
1021
+
1022
+ For basic field access, you only need to specify the field `id`. Both `getValue` and `setValue` are automatically generated:
1004
1023
 
1005
1024
  ```js
1025
+ // Data structure
1026
+ const item = {
1027
+ title: 'Hello World',
1028
+ author: 'John Doe'
1029
+ };
1030
+
1031
+ // Field definition
1006
1032
  {
1007
- getValue: ( { item } ) => {
1008
- /* The field's value. */
1009
- };
1033
+ id: 'title',
1034
+ label: 'Title'
1035
+ // getValue: automatically becomes ( { item } ) => item.title
1036
+ // setValue: automatically becomes ( { value } ) => ( { title: value } )
1037
+ }
1038
+ ```
1039
+
1040
+ #### Nested data access
1041
+
1042
+ Use dot notation in the field `id` to access nested properties:
1043
+
1044
+ ```js
1045
+ // Data structure
1046
+ const item = {
1047
+ user: {
1048
+ profile: {
1049
+ name: 'John Doe',
1050
+ email: 'john@example.com'
1051
+ }
1052
+ }
1053
+ };
1054
+
1055
+ // Field definition - using dot notation (automatic)
1056
+ {
1057
+ id: 'user.profile.name',
1058
+ label: 'User Name'
1059
+ // getValue: automatically becomes ( { item } ) => item.user.profile.name
1060
+ // setValue: automatically becomes ( { value } ) => ( { user: { profile: { name: value } } } )
1061
+ }
1062
+
1063
+ // Alternative - using simple ID with custom functions
1064
+ {
1065
+ id: 'userName',
1066
+ label: 'User Name',
1067
+ getValue: ( { item } ) => item.user.profile.name,
1068
+ setValue: ( { value } ) => ( {
1069
+ user: {
1070
+ profile: { name: value }
1071
+ }
1072
+ } )
1073
+ }
1074
+ ```
1075
+
1076
+ #### Custom data transformation
1077
+
1078
+ Provide custom `getValue` and `setValue` functions when you need to transform data between the storage format and display format:
1079
+
1080
+ ```js
1081
+ // Data structure
1082
+ const item = {
1083
+ user: {
1084
+ preferences: {
1085
+ notifications: true
1086
+ }
1087
+ }
1088
+ };
1089
+
1090
+ // Field definition - transform boolean to string options
1091
+ {
1092
+ id: 'notifications',
1093
+ label: 'Notifications',
1094
+ Edit: 'radio',
1095
+ elements: [
1096
+ { label: 'Enabled', value: 'enabled' },
1097
+ { label: 'Disabled', value: 'disabled' }
1098
+ ],
1099
+ getValue: ( { item } ) =>
1100
+ item.user.preferences.notifications === true ? 'enabled' : 'disabled',
1101
+ setValue: ( { value } ) => ( {
1102
+ user: {
1103
+ preferences: { notifications: value === 'enabled' }
1104
+ }
1105
+ } )
1010
1106
  }
1011
1107
  ```
1012
1108
 
@@ -1036,7 +1132,7 @@ Example:
1036
1132
 
1037
1133
  React component that renders the control to edit the field.
1038
1134
 
1039
- - Type: React component | `string`. If it's a string, it needs to be one of `text`, `integer`, `datetime`, `radio`, `select`.
1135
+ - Type: React component | `string`. If it's a string, it needs to be one of `array`, `checkbox`, `color`, `datetime`, `date`, `email`, `telephone`, `url`, `integer`, `number`, `password`, `radio`, `select`, `text`, `toggle`, `textarea`, `toggleGroup`.
1040
1136
  - Required by DataForm. Optional if the field provided a `type`.
1041
1137
  - Props:
1042
1138
  - `data`: the item to be processed
@@ -1140,6 +1236,7 @@ Example:
1140
1236
  Object that contains the validation rules for the field. If a rule is not met, the control will be marked as invalid and a message will be displayed.
1141
1237
 
1142
1238
  - `required`: boolean indicating whether the field is required or not.
1239
+ - `elements`: boolean restricting selection to the provided list of elements only. Used with the `array` field type.
1143
1240
  - `custom`: a function that validates a field's value. If the value is invalid, the function should return a string explaining why the value is invalid. Otherwise, the function must return null.
1144
1241
 
1145
1242
  Example:
@@ -10,7 +10,7 @@ var _element = require("@wordpress/element");
10
10
  var _compose = require("@wordpress/compose");
11
11
  var _dataviewsContext = _interopRequireDefault(require("../dataviews-context"));
12
12
  var _dataviewsLayouts = require("../../dataviews-layouts");
13
- var _dataviewsFilters = _interopRequireWildcard(require("../dataviews-filters"));
13
+ var _dataviewsFilters = require("../dataviews-filters");
14
14
  var _dataviewsLayout = _interopRequireDefault(require("../dataviews-layout"));
15
15
  var _dataviewsFooter = _interopRequireDefault(require("../dataviews-footer"));
16
16
  var _dataviewsSearch = _interopRequireDefault(require("../dataviews-search"));
@@ -42,9 +42,6 @@ function DefaultUI({
42
42
  search = true,
43
43
  searchLabel = undefined
44
44
  }) {
45
- const {
46
- isShowingFilter
47
- } = (0, _element.useContext)(_dataviewsContext.default);
48
45
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
49
46
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_components.__experimentalHStack, {
50
47
  alignment: "top",
@@ -66,7 +63,7 @@ function DefaultUI({
66
63
  },
67
64
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsViewConfig.default, {}), header]
68
65
  })]
69
- }), isShowingFilter && /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsFilters.default, {
66
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsFilters.FiltersToggled, {
70
67
  className: "dataviews-filters__container"
71
68
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsLayout.default, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_dataviewsFooter.default, {})]
72
69
  });
@@ -208,7 +205,8 @@ function DataViews({
208
205
  // Populate the DataViews sub components
209
206
  const DataViewsSubComponents = DataViews;
210
207
  DataViewsSubComponents.BulkActionToolbar = _dataviewsBulkActions.BulkActionsFooter;
211
- DataViewsSubComponents.Filters = _dataviewsFilters.default;
208
+ DataViewsSubComponents.Filters = _dataviewsFilters.Filters;
209
+ DataViewsSubComponents.FiltersToggled = _dataviewsFilters.FiltersToggled;
212
210
  DataViewsSubComponents.FiltersToggle = _dataviewsFilters.FiltersToggle;
213
211
  DataViewsSubComponents.Layout = _dataviewsLayout.default;
214
212
  DataViewsSubComponents.LayoutSwitcher = _dataviewsViewConfig.ViewTypeMenu;
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_element","_compose","_dataviewsContext","_interopRequireDefault","_dataviewsLayouts","_dataviewsFilters","_interopRequireWildcard","_dataviewsLayout","_dataviewsFooter","_dataviewsSearch","_dataviewsBulkActions","_dataviewsPagination","_dataviewsViewConfig","_normalizeFields","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","defaultGetItemId","item","id","defaultIsItemClickable","EMPTY_ARRAY","dataViewsLayouts","VIEW_LAYOUTS","filter","viewLayout","isPicker","DefaultUI","header","search","searchLabel","undefined","isShowingFilter","useContext","DataViewsContext","jsxs","Fragment","children","__experimentalHStack","alignment","justify","className","spacing","expanded","jsx","label","FiltersToggle","style","flexShrink","DataViews","view","onChangeView","fields","actions","data","getItemId","getItemLevel","isLoading","paginationInfo","defaultLayouts","defaultLayoutsProperty","selection","selectionProperty","onChangeSelection","onClickItem","renderItemLink","isItemClickable","config","perPageSizes","empty","infiniteScrollHandler","containerRef","useRef","containerWidth","setContainerWidth","useState","resizeObserverRef","useResizeObserver","resizeObserverEntries","borderBoxSize","inlineSize","box","selectionState","setSelectionState","isUncontrolled","openedFilter","setOpenedFilter","setSelectionWithChange","value","newValue","_fields","useMemo","normalizeFields","_selection","some","filters","useFilters","hasPrimaryOrLockedFilters","isPrimary","isLocked","setIsShowingFilter","useEffect","infiniteScrollEnabled","current","handleScroll","throttle","event","target","scrollTop","scrollHeight","clientHeight","container","addEventListener","removeEventListener","cancel","fromEntries","entries","layoutType","type","Provider","hasInfiniteScrollHandler","ref","DataViewsSubComponents","BulkActionToolbar","BulkActionsFooter","Filters","DataViewsFilters","Layout","DataViewsLayout","LayoutSwitcher","ViewTypeMenu","Pagination","DataViewsPagination","Search","DataViewsSearch","ViewConfig","DataviewsViewConfigDropdown","Footer","DataViewsFooter","_default","exports"],"sources":["@wordpress/dataviews/src/components/dataviews/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode, ComponentProps, ReactElement } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __experimentalHStack as HStack } from '@wordpress/components';\nimport {\n\tuseContext,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from '@wordpress/element';\nimport { useResizeObserver, throttle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport { VIEW_LAYOUTS } from '../../dataviews-layouts';\nimport {\n\tdefault as DataViewsFilters,\n\tuseFilters,\n\tFiltersToggle,\n} from '../dataviews-filters';\nimport DataViewsLayout from '../dataviews-layout';\nimport DataViewsFooter from '../dataviews-footer';\nimport DataViewsSearch from '../dataviews-search';\nimport { BulkActionsFooter } from '../dataviews-bulk-actions';\nimport { DataViewsPagination } from '../dataviews-pagination';\nimport DataViewsViewConfig, {\n\tDataviewsViewConfigDropdown,\n\tViewTypeMenu,\n} from '../dataviews-view-config';\nimport { normalizeFields } from '../../normalize-fields';\nimport type { Action, Field, View, SupportedLayouts } from '../../types';\nimport type { SelectionOrUpdater } from '../../private-types';\ntype ItemWithId = { id: string };\n\ntype DataViewsProps< Item > = {\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tfields: Field< Item >[];\n\tsearch?: boolean;\n\tsearchLabel?: string;\n\tactions?: Action< Item >[];\n\tdata: Item[];\n\tisLoading?: boolean;\n\tpaginationInfo: {\n\t\ttotalItems: number;\n\t\ttotalPages: number;\n\t\tinfiniteScrollHandler?: () => void;\n\t};\n\tdefaultLayouts: SupportedLayouts;\n\tselection?: string[];\n\tonChangeSelection?: ( items: string[] ) => void;\n\tonClickItem?: ( item: Item ) => void;\n\trenderItemLink?: (\n\t\tprops: {\n\t\t\titem: Item;\n\t\t} & ComponentProps< 'a' >\n\t) => ReactElement;\n\tisItemClickable?: ( item: Item ) => boolean;\n\theader?: ReactNode;\n\tgetItemLevel?: ( item: Item ) => number;\n\tchildren?: ReactNode;\n\tconfig?: {\n\t\tperPageSizes: number[];\n\t};\n\tempty?: ReactNode;\n} & ( Item extends ItemWithId\n\t? { getItemId?: ( item: Item ) => string }\n\t: { getItemId: ( item: Item ) => string } );\n\nconst defaultGetItemId = ( item: ItemWithId ) => item.id;\nconst defaultIsItemClickable = () => true;\nconst EMPTY_ARRAY: any[] = [];\n\nconst dataViewsLayouts = VIEW_LAYOUTS.filter(\n\t( viewLayout ) => ! viewLayout.isPicker\n);\n\ntype DefaultUIProps = Pick<\n\tDataViewsProps< any >,\n\t'header' | 'search' | 'searchLabel'\n>;\n\nfunction DefaultUI( {\n\theader,\n\tsearch = true,\n\tsearchLabel = undefined,\n}: DefaultUIProps ) {\n\tconst { isShowingFilter } = useContext( DataViewsContext );\n\treturn (\n\t\t<>\n\t\t\t<HStack\n\t\t\t\talignment=\"top\"\n\t\t\t\tjustify=\"space-between\"\n\t\t\t\tclassName=\"dataviews__view-actions\"\n\t\t\t\tspacing={ 1 }\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\tjustify=\"start\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t\tclassName=\"dataviews__search\"\n\t\t\t\t>\n\t\t\t\t\t{ search && <DataViewsSearch label={ searchLabel } /> }\n\t\t\t\t\t<FiltersToggle />\n\t\t\t\t</HStack>\n\t\t\t\t<HStack\n\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\texpanded={ false }\n\t\t\t\t\tstyle={ { flexShrink: 0 } }\n\t\t\t\t>\n\t\t\t\t\t<DataViewsViewConfig />\n\t\t\t\t\t{ header }\n\t\t\t\t</HStack>\n\t\t\t</HStack>\n\t\t\t{ isShowingFilter && (\n\t\t\t\t<DataViewsFilters className=\"dataviews-filters__container\" />\n\t\t\t) }\n\t\t\t<DataViewsLayout />\n\t\t\t<DataViewsFooter />\n\t\t</>\n\t);\n}\n\nfunction DataViews< Item >( {\n\tview,\n\tonChangeView,\n\tfields,\n\tsearch = true,\n\tsearchLabel = undefined,\n\tactions = EMPTY_ARRAY,\n\tdata,\n\tgetItemId = defaultGetItemId,\n\tgetItemLevel,\n\tisLoading = false,\n\tpaginationInfo,\n\tdefaultLayouts: defaultLayoutsProperty,\n\tselection: selectionProperty,\n\tonChangeSelection,\n\tonClickItem,\n\trenderItemLink,\n\tisItemClickable = defaultIsItemClickable,\n\theader,\n\tchildren,\n\tconfig = { perPageSizes: [ 10, 20, 50, 100 ] },\n\tempty,\n}: DataViewsProps< Item > ) {\n\tconst { infiniteScrollHandler } = paginationInfo;\n\tconst containerRef = useRef< HTMLDivElement | null >( null );\n\tconst [ containerWidth, setContainerWidth ] = useState( 0 );\n\tconst resizeObserverRef = useResizeObserver(\n\t\t( resizeObserverEntries: any ) => {\n\t\t\tsetContainerWidth(\n\t\t\t\tresizeObserverEntries[ 0 ].borderBoxSize[ 0 ].inlineSize\n\t\t\t);\n\t\t},\n\t\t{ box: 'border-box' }\n\t);\n\tconst [ selectionState, setSelectionState ] = useState< string[] >( [] );\n\tconst isUncontrolled =\n\t\tselectionProperty === undefined || onChangeSelection === undefined;\n\tconst selection = isUncontrolled ? selectionState : selectionProperty;\n\tconst [ openedFilter, setOpenedFilter ] = useState< string | null >( null );\n\tfunction setSelectionWithChange( value: SelectionOrUpdater ) {\n\t\tconst newValue =\n\t\t\ttypeof value === 'function' ? value( selection ) : value;\n\t\tif ( isUncontrolled ) {\n\t\t\tsetSelectionState( newValue );\n\t\t}\n\t\tif ( onChangeSelection ) {\n\t\t\tonChangeSelection( newValue );\n\t\t}\n\t}\n\tconst _fields = useMemo( () => normalizeFields( fields ), [ fields ] );\n\tconst _selection = useMemo( () => {\n\t\treturn selection.filter( ( id ) =>\n\t\t\tdata.some( ( item ) => getItemId( item ) === id )\n\t\t);\n\t}, [ selection, data, getItemId ] );\n\n\tconst filters = useFilters( _fields, view );\n\tconst hasPrimaryOrLockedFilters = useMemo(\n\t\t() =>\n\t\t\t( filters || [] ).some(\n\t\t\t\t( filter ) => filter.isPrimary || filter.isLocked\n\t\t\t),\n\t\t[ filters ]\n\t);\n\tconst [ isShowingFilter, setIsShowingFilter ] = useState< boolean >(\n\t\thasPrimaryOrLockedFilters\n\t);\n\n\tuseEffect( () => {\n\t\tif ( hasPrimaryOrLockedFilters && ! isShowingFilter ) {\n\t\t\tsetIsShowingFilter( true );\n\t\t}\n\t}, [ hasPrimaryOrLockedFilters, isShowingFilter ] );\n\n\t// Attach scroll event listener for infinite scroll\n\tuseEffect( () => {\n\t\tif ( ! view.infiniteScrollEnabled || ! containerRef.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst handleScroll = throttle( ( event: unknown ) => {\n\t\t\tconst target = ( event as Event ).target as HTMLElement;\n\t\t\tconst scrollTop = target.scrollTop;\n\t\t\tconst scrollHeight = target.scrollHeight;\n\t\t\tconst clientHeight = target.clientHeight;\n\n\t\t\t// Check if user has scrolled near the bottom\n\t\t\tif ( scrollTop + clientHeight >= scrollHeight - 100 ) {\n\t\t\t\tinfiniteScrollHandler?.();\n\t\t\t}\n\t\t}, 100 ); // Throttle to 100ms\n\n\t\tconst container = containerRef.current;\n\t\tcontainer.addEventListener( 'scroll', handleScroll );\n\n\t\treturn () => {\n\t\t\tcontainer.removeEventListener( 'scroll', handleScroll );\n\t\t\thandleScroll.cancel(); // Cancel any pending throttled calls\n\t\t};\n\t}, [ infiniteScrollHandler, view.infiniteScrollEnabled ] );\n\n\t// Filter out DataViewsPicker layouts.\n\tconst defaultLayouts = useMemo(\n\t\t() =>\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries( defaultLayoutsProperty ).filter(\n\t\t\t\t\t( [ layoutType ] ) => {\n\t\t\t\t\t\treturn dataViewsLayouts.some(\n\t\t\t\t\t\t\t( viewLayout ) => viewLayout.type === layoutType\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t),\n\t\t[ defaultLayoutsProperty ]\n\t);\n\n\tif ( ! defaultLayouts[ view.type ] ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<DataViewsContext.Provider\n\t\t\tvalue={ {\n\t\t\t\tview,\n\t\t\t\tonChangeView,\n\t\t\t\tfields: _fields,\n\t\t\t\tactions,\n\t\t\t\tdata,\n\t\t\t\tisLoading,\n\t\t\t\tpaginationInfo,\n\t\t\t\tselection: _selection,\n\t\t\t\tonChangeSelection: setSelectionWithChange,\n\t\t\t\topenedFilter,\n\t\t\t\tsetOpenedFilter,\n\t\t\t\tgetItemId,\n\t\t\t\tgetItemLevel,\n\t\t\t\tisItemClickable,\n\t\t\t\tonClickItem,\n\t\t\t\trenderItemLink,\n\t\t\t\tcontainerWidth,\n\t\t\t\tcontainerRef,\n\t\t\t\tresizeObserverRef,\n\t\t\t\tdefaultLayouts,\n\t\t\t\tfilters,\n\t\t\t\tisShowingFilter,\n\t\t\t\tsetIsShowingFilter,\n\t\t\t\tconfig,\n\t\t\t\tempty,\n\t\t\t\thasInfiniteScrollHandler: !! infiniteScrollHandler,\n\t\t\t} }\n\t\t>\n\t\t\t<div className=\"dataviews-wrapper\" ref={ containerRef }>\n\t\t\t\t{ children ?? (\n\t\t\t\t\t<DefaultUI\n\t\t\t\t\t\theader={ header }\n\t\t\t\t\t\tsearch={ search }\n\t\t\t\t\t\tsearchLabel={ searchLabel }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</DataViewsContext.Provider>\n\t);\n}\n\n// Populate the DataViews sub components\nconst DataViewsSubComponents = DataViews as typeof DataViews & {\n\tBulkActionToolbar: typeof BulkActionsFooter;\n\tFilters: typeof DataViewsFilters;\n\tFiltersToggle: typeof FiltersToggle;\n\tLayout: typeof DataViewsLayout;\n\tLayoutSwitcher: typeof ViewTypeMenu;\n\tPagination: typeof DataViewsPagination;\n\tSearch: typeof DataViewsSearch;\n\tViewConfig: typeof DataviewsViewConfigDropdown;\n\tFooter: typeof DataViewsFooter;\n};\n\nDataViewsSubComponents.BulkActionToolbar = BulkActionsFooter;\nDataViewsSubComponents.Filters = DataViewsFilters;\nDataViewsSubComponents.FiltersToggle = FiltersToggle;\nDataViewsSubComponents.Layout = DataViewsLayout;\nDataViewsSubComponents.LayoutSwitcher = ViewTypeMenu;\nDataViewsSubComponents.Pagination = DataViewsPagination;\nDataViewsSubComponents.Search = DataViewsSearch;\nDataViewsSubComponents.ViewConfig = DataviewsViewConfigDropdown;\nDataViewsSubComponents.Footer = DataViewsFooter;\n\nexport default DataViewsSubComponents;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_element","_compose","_dataviewsContext","_interopRequireDefault","_dataviewsLayouts","_dataviewsFilters","_dataviewsLayout","_dataviewsFooter","_dataviewsSearch","_dataviewsBulkActions","_dataviewsPagination","_dataviewsViewConfig","_interopRequireWildcard","_normalizeFields","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","defaultGetItemId","item","id","defaultIsItemClickable","EMPTY_ARRAY","dataViewsLayouts","VIEW_LAYOUTS","filter","viewLayout","isPicker","DefaultUI","header","search","searchLabel","undefined","jsxs","Fragment","children","__experimentalHStack","alignment","justify","className","spacing","expanded","jsx","label","FiltersToggle","style","flexShrink","FiltersToggled","DataViews","view","onChangeView","fields","actions","data","getItemId","getItemLevel","isLoading","paginationInfo","defaultLayouts","defaultLayoutsProperty","selection","selectionProperty","onChangeSelection","onClickItem","renderItemLink","isItemClickable","config","perPageSizes","empty","infiniteScrollHandler","containerRef","useRef","containerWidth","setContainerWidth","useState","resizeObserverRef","useResizeObserver","resizeObserverEntries","borderBoxSize","inlineSize","box","selectionState","setSelectionState","isUncontrolled","openedFilter","setOpenedFilter","setSelectionWithChange","value","newValue","_fields","useMemo","normalizeFields","_selection","some","filters","useFilters","hasPrimaryOrLockedFilters","isPrimary","isLocked","isShowingFilter","setIsShowingFilter","useEffect","infiniteScrollEnabled","current","handleScroll","throttle","event","target","scrollTop","scrollHeight","clientHeight","container","addEventListener","removeEventListener","cancel","fromEntries","entries","layoutType","type","Provider","hasInfiniteScrollHandler","ref","DataViewsSubComponents","BulkActionToolbar","BulkActionsFooter","Filters","Layout","DataViewsLayout","LayoutSwitcher","ViewTypeMenu","Pagination","DataViewsPagination","Search","DataViewsSearch","ViewConfig","DataviewsViewConfigDropdown","Footer","DataViewsFooter","_default","exports"],"sources":["@wordpress/dataviews/src/components/dataviews/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode, ComponentProps, ReactElement } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __experimentalHStack as HStack } from '@wordpress/components';\nimport { useEffect, useMemo, useRef, useState } from '@wordpress/element';\nimport { useResizeObserver, throttle } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport { VIEW_LAYOUTS } from '../../dataviews-layouts';\nimport {\n\tFilters,\n\tFiltersToggled,\n\tuseFilters,\n\tFiltersToggle,\n} from '../dataviews-filters';\nimport DataViewsLayout from '../dataviews-layout';\nimport DataViewsFooter from '../dataviews-footer';\nimport DataViewsSearch from '../dataviews-search';\nimport { BulkActionsFooter } from '../dataviews-bulk-actions';\nimport { DataViewsPagination } from '../dataviews-pagination';\nimport DataViewsViewConfig, {\n\tDataviewsViewConfigDropdown,\n\tViewTypeMenu,\n} from '../dataviews-view-config';\nimport { normalizeFields } from '../../normalize-fields';\nimport type { Action, Field, View, SupportedLayouts } from '../../types';\nimport type { SelectionOrUpdater } from '../../private-types';\ntype ItemWithId = { id: string };\n\ntype DataViewsProps< Item > = {\n\tview: View;\n\tonChangeView: ( view: View ) => void;\n\tfields: Field< Item >[];\n\tsearch?: boolean;\n\tsearchLabel?: string;\n\tactions?: Action< Item >[];\n\tdata: Item[];\n\tisLoading?: boolean;\n\tpaginationInfo: {\n\t\ttotalItems: number;\n\t\ttotalPages: number;\n\t\tinfiniteScrollHandler?: () => void;\n\t};\n\tdefaultLayouts: SupportedLayouts;\n\tselection?: string[];\n\tonChangeSelection?: ( items: string[] ) => void;\n\tonClickItem?: ( item: Item ) => void;\n\trenderItemLink?: (\n\t\tprops: {\n\t\t\titem: Item;\n\t\t} & ComponentProps< 'a' >\n\t) => ReactElement;\n\tisItemClickable?: ( item: Item ) => boolean;\n\theader?: ReactNode;\n\tgetItemLevel?: ( item: Item ) => number;\n\tchildren?: ReactNode;\n\tconfig?: {\n\t\tperPageSizes: number[];\n\t};\n\tempty?: ReactNode;\n} & ( Item extends ItemWithId\n\t? { getItemId?: ( item: Item ) => string }\n\t: { getItemId: ( item: Item ) => string } );\n\nconst defaultGetItemId = ( item: ItemWithId ) => item.id;\nconst defaultIsItemClickable = () => true;\nconst EMPTY_ARRAY: any[] = [];\n\nconst dataViewsLayouts = VIEW_LAYOUTS.filter(\n\t( viewLayout ) => ! viewLayout.isPicker\n);\n\ntype DefaultUIProps = Pick<\n\tDataViewsProps< any >,\n\t'header' | 'search' | 'searchLabel'\n>;\n\nfunction DefaultUI( {\n\theader,\n\tsearch = true,\n\tsearchLabel = undefined,\n}: DefaultUIProps ) {\n\treturn (\n\t\t<>\n\t\t\t<HStack\n\t\t\t\talignment=\"top\"\n\t\t\t\tjustify=\"space-between\"\n\t\t\t\tclassName=\"dataviews__view-actions\"\n\t\t\t\tspacing={ 1 }\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\tjustify=\"start\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t\tclassName=\"dataviews__search\"\n\t\t\t\t>\n\t\t\t\t\t{ search && <DataViewsSearch label={ searchLabel } /> }\n\t\t\t\t\t<FiltersToggle />\n\t\t\t\t</HStack>\n\t\t\t\t<HStack\n\t\t\t\t\tspacing={ 1 }\n\t\t\t\t\texpanded={ false }\n\t\t\t\t\tstyle={ { flexShrink: 0 } }\n\t\t\t\t>\n\t\t\t\t\t<DataViewsViewConfig />\n\t\t\t\t\t{ header }\n\t\t\t\t</HStack>\n\t\t\t</HStack>\n\t\t\t<FiltersToggled className=\"dataviews-filters__container\" />\n\t\t\t<DataViewsLayout />\n\t\t\t<DataViewsFooter />\n\t\t</>\n\t);\n}\n\nfunction DataViews< Item >( {\n\tview,\n\tonChangeView,\n\tfields,\n\tsearch = true,\n\tsearchLabel = undefined,\n\tactions = EMPTY_ARRAY,\n\tdata,\n\tgetItemId = defaultGetItemId,\n\tgetItemLevel,\n\tisLoading = false,\n\tpaginationInfo,\n\tdefaultLayouts: defaultLayoutsProperty,\n\tselection: selectionProperty,\n\tonChangeSelection,\n\tonClickItem,\n\trenderItemLink,\n\tisItemClickable = defaultIsItemClickable,\n\theader,\n\tchildren,\n\tconfig = { perPageSizes: [ 10, 20, 50, 100 ] },\n\tempty,\n}: DataViewsProps< Item > ) {\n\tconst { infiniteScrollHandler } = paginationInfo;\n\tconst containerRef = useRef< HTMLDivElement | null >( null );\n\tconst [ containerWidth, setContainerWidth ] = useState( 0 );\n\tconst resizeObserverRef = useResizeObserver(\n\t\t( resizeObserverEntries: any ) => {\n\t\t\tsetContainerWidth(\n\t\t\t\tresizeObserverEntries[ 0 ].borderBoxSize[ 0 ].inlineSize\n\t\t\t);\n\t\t},\n\t\t{ box: 'border-box' }\n\t);\n\tconst [ selectionState, setSelectionState ] = useState< string[] >( [] );\n\tconst isUncontrolled =\n\t\tselectionProperty === undefined || onChangeSelection === undefined;\n\tconst selection = isUncontrolled ? selectionState : selectionProperty;\n\tconst [ openedFilter, setOpenedFilter ] = useState< string | null >( null );\n\tfunction setSelectionWithChange( value: SelectionOrUpdater ) {\n\t\tconst newValue =\n\t\t\ttypeof value === 'function' ? value( selection ) : value;\n\t\tif ( isUncontrolled ) {\n\t\t\tsetSelectionState( newValue );\n\t\t}\n\t\tif ( onChangeSelection ) {\n\t\t\tonChangeSelection( newValue );\n\t\t}\n\t}\n\tconst _fields = useMemo( () => normalizeFields( fields ), [ fields ] );\n\tconst _selection = useMemo( () => {\n\t\treturn selection.filter( ( id ) =>\n\t\t\tdata.some( ( item ) => getItemId( item ) === id )\n\t\t);\n\t}, [ selection, data, getItemId ] );\n\n\tconst filters = useFilters( _fields, view );\n\tconst hasPrimaryOrLockedFilters = useMemo(\n\t\t() =>\n\t\t\t( filters || [] ).some(\n\t\t\t\t( filter ) => filter.isPrimary || filter.isLocked\n\t\t\t),\n\t\t[ filters ]\n\t);\n\tconst [ isShowingFilter, setIsShowingFilter ] = useState< boolean >(\n\t\thasPrimaryOrLockedFilters\n\t);\n\n\tuseEffect( () => {\n\t\tif ( hasPrimaryOrLockedFilters && ! isShowingFilter ) {\n\t\t\tsetIsShowingFilter( true );\n\t\t}\n\t}, [ hasPrimaryOrLockedFilters, isShowingFilter ] );\n\n\t// Attach scroll event listener for infinite scroll\n\tuseEffect( () => {\n\t\tif ( ! view.infiniteScrollEnabled || ! containerRef.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst handleScroll = throttle( ( event: unknown ) => {\n\t\t\tconst target = ( event as Event ).target as HTMLElement;\n\t\t\tconst scrollTop = target.scrollTop;\n\t\t\tconst scrollHeight = target.scrollHeight;\n\t\t\tconst clientHeight = target.clientHeight;\n\n\t\t\t// Check if user has scrolled near the bottom\n\t\t\tif ( scrollTop + clientHeight >= scrollHeight - 100 ) {\n\t\t\t\tinfiniteScrollHandler?.();\n\t\t\t}\n\t\t}, 100 ); // Throttle to 100ms\n\n\t\tconst container = containerRef.current;\n\t\tcontainer.addEventListener( 'scroll', handleScroll );\n\n\t\treturn () => {\n\t\t\tcontainer.removeEventListener( 'scroll', handleScroll );\n\t\t\thandleScroll.cancel(); // Cancel any pending throttled calls\n\t\t};\n\t}, [ infiniteScrollHandler, view.infiniteScrollEnabled ] );\n\n\t// Filter out DataViewsPicker layouts.\n\tconst defaultLayouts = useMemo(\n\t\t() =>\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries( defaultLayoutsProperty ).filter(\n\t\t\t\t\t( [ layoutType ] ) => {\n\t\t\t\t\t\treturn dataViewsLayouts.some(\n\t\t\t\t\t\t\t( viewLayout ) => viewLayout.type === layoutType\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t),\n\t\t[ defaultLayoutsProperty ]\n\t);\n\n\tif ( ! defaultLayouts[ view.type ] ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<DataViewsContext.Provider\n\t\t\tvalue={ {\n\t\t\t\tview,\n\t\t\t\tonChangeView,\n\t\t\t\tfields: _fields,\n\t\t\t\tactions,\n\t\t\t\tdata,\n\t\t\t\tisLoading,\n\t\t\t\tpaginationInfo,\n\t\t\t\tselection: _selection,\n\t\t\t\tonChangeSelection: setSelectionWithChange,\n\t\t\t\topenedFilter,\n\t\t\t\tsetOpenedFilter,\n\t\t\t\tgetItemId,\n\t\t\t\tgetItemLevel,\n\t\t\t\tisItemClickable,\n\t\t\t\tonClickItem,\n\t\t\t\trenderItemLink,\n\t\t\t\tcontainerWidth,\n\t\t\t\tcontainerRef,\n\t\t\t\tresizeObserverRef,\n\t\t\t\tdefaultLayouts,\n\t\t\t\tfilters,\n\t\t\t\tisShowingFilter,\n\t\t\t\tsetIsShowingFilter,\n\t\t\t\tconfig,\n\t\t\t\tempty,\n\t\t\t\thasInfiniteScrollHandler: !! infiniteScrollHandler,\n\t\t\t} }\n\t\t>\n\t\t\t<div className=\"dataviews-wrapper\" ref={ containerRef }>\n\t\t\t\t{ children ?? (\n\t\t\t\t\t<DefaultUI\n\t\t\t\t\t\theader={ header }\n\t\t\t\t\t\tsearch={ search }\n\t\t\t\t\t\tsearchLabel={ searchLabel }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</DataViewsContext.Provider>\n\t);\n}\n\n// Populate the DataViews sub components\nconst DataViewsSubComponents = DataViews as typeof DataViews & {\n\tBulkActionToolbar: typeof BulkActionsFooter;\n\tFilters: typeof Filters;\n\tFiltersToggle: typeof FiltersToggle;\n\tFiltersToggled: typeof FiltersToggled;\n\tLayout: typeof DataViewsLayout;\n\tLayoutSwitcher: typeof ViewTypeMenu;\n\tPagination: typeof DataViewsPagination;\n\tSearch: typeof DataViewsSearch;\n\tViewConfig: typeof DataviewsViewConfigDropdown;\n\tFooter: typeof DataViewsFooter;\n};\n\nDataViewsSubComponents.BulkActionToolbar = BulkActionsFooter;\nDataViewsSubComponents.Filters = Filters;\nDataViewsSubComponents.FiltersToggled = FiltersToggled;\nDataViewsSubComponents.FiltersToggle = FiltersToggle;\nDataViewsSubComponents.Layout = DataViewsLayout;\nDataViewsSubComponents.LayoutSwitcher = ViewTypeMenu;\nDataViewsSubComponents.Pagination = DataViewsPagination;\nDataViewsSubComponents.Search = DataViewsSearch;\nDataViewsSubComponents.ViewConfig = DataviewsViewConfigDropdown;\nDataViewsSubComponents.Footer = DataViewsFooter;\n\nexport default DataViewsSubComponents;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _element = require("@wordpress/element");
9
+ var _dataviewsContext = _interopRequireDefault(require("../dataviews-context"));
10
+ var _filters = _interopRequireDefault(require("./filters"));
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ /**
13
+ * WordPress dependencies
14
+ */
15
+
16
+ /**
17
+ * Internal dependencies
18
+ */
19
+
20
+ function FiltersToggled(props) {
21
+ const {
22
+ isShowingFilter
23
+ } = (0, _element.useContext)(_dataviewsContext.default);
24
+ if (!isShowingFilter) {
25
+ return null;
26
+ }
27
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_filters.default, {
28
+ ...props
29
+ });
30
+ }
31
+ var _default = exports.default = FiltersToggled;
32
+ //# sourceMappingURL=filters-toggled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_element","require","_dataviewsContext","_interopRequireDefault","_filters","_jsxRuntime","FiltersToggled","props","isShowingFilter","useContext","DataViewsContext","jsx","default","_default","exports"],"sources":["@wordpress/dataviews/src/components/dataviews-filters/filters-toggled.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport DataViewsContext from '../dataviews-context';\nimport Filters from './filters';\n\nfunction FiltersToggled( props: { className?: string } ) {\n\tconst { isShowingFilter } = useContext( DataViewsContext );\n\tif ( ! isShowingFilter ) {\n\t\treturn null;\n\t}\n\treturn <Filters { ...props } />;\n}\n\nexport default FiltersToggled;\n"],"mappings":";;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AAKA,IAAAC,iBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,QAAA,GAAAD,sBAAA,CAAAF,OAAA;AAAgC,IAAAI,WAAA,GAAAJ,OAAA;AAThC;AACA;AACA;;AAGA;AACA;AACA;;AAIA,SAASK,cAAcA,CAAEC,KAA6B,EAAG;EACxD,MAAM;IAAEC;EAAgB,CAAC,GAAG,IAAAC,mBAAU,EAAEC,yBAAiB,CAAC;EAC1D,IAAK,CAAEF,eAAe,EAAG;IACxB,OAAO,IAAI;EACZ;EACA,oBAAO,IAAAH,WAAA,CAAAM,GAAA,EAACP,QAAA,CAAAQ,OAAO;IAAA,GAAML;EAAK,CAAI,CAAC;AAChC;AAAC,IAAAM,QAAA,GAAAC,OAAA,CAAAF,OAAA,GAEcN,cAAc","ignoreList":[]}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _element = require("@wordpress/element");
9
+ var _components = require("@wordpress/components");
10
+ var _filter = _interopRequireDefault(require("./filter"));
11
+ var _addFilter = _interopRequireDefault(require("./add-filter"));
12
+ var _resetFilters = _interopRequireDefault(require("./reset-filters"));
13
+ var _useFilters = _interopRequireDefault(require("./use-filters"));
14
+ var _dataviewsContext = _interopRequireDefault(require("../dataviews-context"));
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ /**
17
+ * WordPress dependencies
18
+ */
19
+
20
+ /**
21
+ * Internal dependencies
22
+ */
23
+
24
+ function Filters({
25
+ className
26
+ }) {
27
+ const {
28
+ fields,
29
+ view,
30
+ onChangeView,
31
+ openedFilter,
32
+ setOpenedFilter
33
+ } = (0, _element.useContext)(_dataviewsContext.default);
34
+ const addFilterRef = (0, _element.useRef)(null);
35
+ const filters = (0, _useFilters.default)(fields, view);
36
+ const addFilter = /*#__PURE__*/(0, _jsxRuntime.jsx)(_addFilter.default, {
37
+ filters: filters,
38
+ view: view,
39
+ onChangeView: onChangeView,
40
+ ref: addFilterRef,
41
+ setOpenedFilter: setOpenedFilter
42
+ }, "add-filter");
43
+ const visibleFilters = filters.filter(filter => filter.isVisible);
44
+ if (visibleFilters.length === 0) {
45
+ return null;
46
+ }
47
+ const filterComponents = [...visibleFilters.map(filter => {
48
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_filter.default, {
49
+ filter: filter,
50
+ view: view,
51
+ fields: fields,
52
+ onChangeView: onChangeView,
53
+ addFilterRef: addFilterRef,
54
+ openedFilter: openedFilter
55
+ }, filter.field);
56
+ }), addFilter];
57
+ filterComponents.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(_resetFilters.default, {
58
+ filters: filters,
59
+ view: view,
60
+ onChangeView: onChangeView
61
+ }, "reset-filters"));
62
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalHStack, {
63
+ justify: "flex-start",
64
+ style: {
65
+ width: 'fit-content'
66
+ },
67
+ wrap: true,
68
+ className: className,
69
+ children: filterComponents
70
+ });
71
+ }
72
+ var _default = exports.default = (0, _element.memo)(Filters);
73
+ //# sourceMappingURL=filters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_element","require","_components","_filter","_interopRequireDefault","_addFilter","_resetFilters","_useFilters","_dataviewsContext","_jsxRuntime","Filters","className","fields","view","onChangeView","openedFilter","setOpenedFilter","useContext","DataViewsContext","addFilterRef","useRef","filters","useFilters","addFilter","jsx","default","ref","visibleFilters","filter","isVisible","length","filterComponents","map","field","push","__experimentalHStack","justify","style","width","wrap","children","_default","exports","memo"],"sources":["@wordpress/dataviews/src/components/dataviews-filters/filters.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { memo, useContext, useRef } from '@wordpress/element';\nimport { __experimentalHStack as HStack } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport Filter from './filter';\nimport { default as AddFilter } from './add-filter';\nimport ResetFilters from './reset-filters';\nimport useFilters from './use-filters';\nimport DataViewsContext from '../dataviews-context';\n\nfunction Filters( { className }: { className?: string } ) {\n\tconst { fields, view, onChangeView, openedFilter, setOpenedFilter } =\n\t\tuseContext( DataViewsContext );\n\tconst addFilterRef = useRef< HTMLButtonElement >( null );\n\tconst filters = useFilters( fields, view );\n\tconst addFilter = (\n\t\t<AddFilter\n\t\t\tkey=\"add-filter\"\n\t\t\tfilters={ filters }\n\t\t\tview={ view }\n\t\t\tonChangeView={ onChangeView }\n\t\t\tref={ addFilterRef }\n\t\t\tsetOpenedFilter={ setOpenedFilter }\n\t\t/>\n\t);\n\tconst visibleFilters = filters.filter( ( filter ) => filter.isVisible );\n\tif ( visibleFilters.length === 0 ) {\n\t\treturn null;\n\t}\n\tconst filterComponents = [\n\t\t...visibleFilters.map( ( filter ) => {\n\t\t\treturn (\n\t\t\t\t<Filter\n\t\t\t\t\tkey={ filter.field }\n\t\t\t\t\tfilter={ filter }\n\t\t\t\t\tview={ view }\n\t\t\t\t\tfields={ fields }\n\t\t\t\t\tonChangeView={ onChangeView }\n\t\t\t\t\taddFilterRef={ addFilterRef }\n\t\t\t\t\topenedFilter={ openedFilter }\n\t\t\t\t/>\n\t\t\t);\n\t\t} ),\n\t\taddFilter,\n\t];\n\n\tfilterComponents.push(\n\t\t<ResetFilters\n\t\t\tkey=\"reset-filters\"\n\t\t\tfilters={ filters }\n\t\t\tview={ view }\n\t\t\tonChangeView={ onChangeView }\n\t\t/>\n\t);\n\n\treturn (\n\t\t<HStack\n\t\t\tjustify=\"flex-start\"\n\t\t\tstyle={ { width: 'fit-content' } }\n\t\t\twrap\n\t\t\tclassName={ className }\n\t\t>\n\t\t\t{ filterComponents }\n\t\t</HStack>\n\t);\n}\n\nexport default memo( Filters );\n"],"mappings":";;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAKA,IAAAE,OAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,UAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,aAAA,GAAAF,sBAAA,CAAAH,OAAA;AACA,IAAAM,WAAA,GAAAH,sBAAA,CAAAH,OAAA;AACA,IAAAO,iBAAA,GAAAJ,sBAAA,CAAAH,OAAA;AAAoD,IAAAQ,WAAA,GAAAR,OAAA;AAbpD;AACA;AACA;;AAIA;AACA;AACA;;AAOA,SAASS,OAAOA,CAAE;EAAEC;AAAkC,CAAC,EAAG;EACzD,MAAM;IAAEC,MAAM;IAAEC,IAAI;IAAEC,YAAY;IAAEC,YAAY;IAAEC;EAAgB,CAAC,GAClE,IAAAC,mBAAU,EAAEC,yBAAiB,CAAC;EAC/B,MAAMC,YAAY,GAAG,IAAAC,eAAM,EAAuB,IAAK,CAAC;EACxD,MAAMC,OAAO,GAAG,IAAAC,mBAAU,EAAEV,MAAM,EAAEC,IAAK,CAAC;EAC1C,MAAMU,SAAS,gBACd,IAAAd,WAAA,CAAAe,GAAA,EAACnB,UAAA,CAAAoB,OAAS;IAETJ,OAAO,EAAGA,OAAS;IACnBR,IAAI,EAAGA,IAAM;IACbC,YAAY,EAAGA,YAAc;IAC7BY,GAAG,EAAGP,YAAc;IACpBH,eAAe,EAAGA;EAAiB,GAL/B,YAMJ,CACD;EACD,MAAMW,cAAc,GAAGN,OAAO,CAACO,MAAM,CAAIA,MAAM,IAAMA,MAAM,CAACC,SAAU,CAAC;EACvE,IAAKF,cAAc,CAACG,MAAM,KAAK,CAAC,EAAG;IAClC,OAAO,IAAI;EACZ;EACA,MAAMC,gBAAgB,GAAG,CACxB,GAAGJ,cAAc,CAACK,GAAG,CAAIJ,MAAM,IAAM;IACpC,oBACC,IAAAnB,WAAA,CAAAe,GAAA,EAACrB,OAAA,CAAAsB,OAAM;MAENG,MAAM,EAAGA,MAAQ;MACjBf,IAAI,EAAGA,IAAM;MACbD,MAAM,EAAGA,MAAQ;MACjBE,YAAY,EAAGA,YAAc;MAC7BK,YAAY,EAAGA,YAAc;MAC7BJ,YAAY,EAAGA;IAAc,GANvBa,MAAM,CAACK,KAOb,CAAC;EAEJ,CAAE,CAAC,EACHV,SAAS,CACT;EAEDQ,gBAAgB,CAACG,IAAI,cACpB,IAAAzB,WAAA,CAAAe,GAAA,EAAClB,aAAA,CAAAmB,OAAY;IAEZJ,OAAO,EAAGA,OAAS;IACnBR,IAAI,EAAGA,IAAM;IACbC,YAAY,EAAGA;EAAc,GAHzB,eAIJ,CACF,CAAC;EAED,oBACC,IAAAL,WAAA,CAAAe,GAAA,EAACtB,WAAA,CAAAiC,oBAAM;IACNC,OAAO,EAAC,YAAY;IACpBC,KAAK,EAAG;MAAEC,KAAK,EAAE;IAAc,CAAG;IAClCC,IAAI;IACJ5B,SAAS,EAAGA,SAAW;IAAA6B,QAAA,EAErBT;EAAgB,CACX,CAAC;AAEX;AAAC,IAAAU,QAAA,GAAAC,OAAA,CAAAjB,OAAA,GAEc,IAAAkB,aAAI,EAAEjC,OAAQ,CAAC","ignoreList":[]}