@wordpress/dataviews 8.0.1-next.e256d081a.0 → 9.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 (415) hide show
  1. package/CHANGELOG.md +40 -1
  2. package/README.md +203 -13
  3. package/build/components/dataform-context/index.js +1 -0
  4. package/build/components/dataform-context/index.js.map +1 -1
  5. package/build/components/dataviews/index.js +11 -1
  6. package/build/components/dataviews/index.js.map +1 -1
  7. package/build/components/dataviews-context/index.js +1 -0
  8. package/build/components/dataviews-context/index.js.map +1 -1
  9. package/build/components/dataviews-filters/input-widget.js +48 -4
  10. package/build/components/dataviews-filters/input-widget.js.map +1 -1
  11. package/build/components/dataviews-layout/index.js +5 -2
  12. package/build/components/dataviews-layout/index.js.map +1 -1
  13. package/build/components/dataviews-picker/footer.js +145 -0
  14. package/build/components/dataviews-picker/footer.js.map +1 -0
  15. package/build/components/dataviews-picker/index.js +201 -0
  16. package/build/components/dataviews-picker/index.js.map +1 -0
  17. package/build/components/dataviews-selection-checkbox/index.js +4 -2
  18. package/build/components/dataviews-selection-checkbox/index.js.map +1 -1
  19. package/build/components/dataviews-view-config/index.js +1 -0
  20. package/build/components/dataviews-view-config/index.js.map +1 -1
  21. package/build/constants.js +4 -1
  22. package/build/constants.js.map +1 -1
  23. package/build/dataform-controls/array.js +9 -7
  24. package/build/dataform-controls/array.js.map +1 -1
  25. package/build/dataform-controls/checkbox.js +40 -8
  26. package/build/dataform-controls/checkbox.js.map +1 -1
  27. package/build/dataform-controls/color.js +133 -0
  28. package/build/dataform-controls/color.js.map +1 -0
  29. package/build/dataform-controls/date.js +32 -24
  30. package/build/dataform-controls/date.js.map +1 -1
  31. package/build/dataform-controls/datetime.js +133 -19
  32. package/build/dataform-controls/datetime.js.map +1 -1
  33. package/build/dataform-controls/email.js +15 -44
  34. package/build/dataform-controls/email.js.map +1 -1
  35. package/build/dataform-controls/index.js +35 -2
  36. package/build/dataform-controls/index.js.map +1 -1
  37. package/build/dataform-controls/integer.js +47 -34
  38. package/build/dataform-controls/integer.js.map +1 -1
  39. package/build/dataform-controls/password.js +47 -0
  40. package/build/dataform-controls/password.js.map +1 -0
  41. package/build/dataform-controls/radio.js +42 -9
  42. package/build/dataform-controls/radio.js.map +1 -1
  43. package/build/dataform-controls/relative-date-control.js +6 -10
  44. package/build/dataform-controls/relative-date-control.js.map +1 -1
  45. package/build/dataform-controls/select.js +41 -10
  46. package/build/dataform-controls/select.js.map +1 -1
  47. package/build/dataform-controls/telephone.js +40 -0
  48. package/build/dataform-controls/telephone.js.map +1 -0
  49. package/build/dataform-controls/text.js +14 -43
  50. package/build/dataform-controls/text.js.map +1 -1
  51. package/build/dataform-controls/textarea.js +81 -0
  52. package/build/dataform-controls/textarea.js.map +1 -0
  53. package/build/dataform-controls/toggle-group.js +36 -6
  54. package/build/dataform-controls/toggle-group.js.map +1 -1
  55. package/build/dataform-controls/toggle.js +77 -0
  56. package/build/dataform-controls/toggle.js.map +1 -0
  57. package/build/dataform-controls/url.js +40 -0
  58. package/build/dataform-controls/url.js.map +1 -0
  59. package/build/dataform-controls/utils/validated-input.js +83 -0
  60. package/build/dataform-controls/utils/validated-input.js.map +1 -0
  61. package/build/dataforms-layouts/card/index.js +6 -7
  62. package/build/dataforms-layouts/card/index.js.map +1 -1
  63. package/build/dataforms-layouts/data-form-layout.js +16 -4
  64. package/build/dataforms-layouts/data-form-layout.js.map +1 -1
  65. package/build/dataforms-layouts/index.js +31 -1
  66. package/build/dataforms-layouts/index.js.map +1 -1
  67. package/build/dataforms-layouts/panel/dropdown.js +10 -14
  68. package/build/dataforms-layouts/panel/dropdown.js.map +1 -1
  69. package/build/dataforms-layouts/panel/index.js +24 -11
  70. package/build/dataforms-layouts/panel/index.js.map +1 -1
  71. package/build/dataforms-layouts/panel/modal.js +22 -27
  72. package/build/dataforms-layouts/panel/modal.js.map +1 -1
  73. package/build/dataforms-layouts/panel/summary-button.js +67 -0
  74. package/build/dataforms-layouts/panel/summary-button.js.map +1 -0
  75. package/build/dataforms-layouts/regular/index.js +7 -9
  76. package/build/dataforms-layouts/regular/index.js.map +1 -1
  77. package/build/dataforms-layouts/row/index.js +113 -0
  78. package/build/dataforms-layouts/row/index.js.map +1 -0
  79. package/build/dataviews-layouts/grid/index.js +21 -26
  80. package/build/dataviews-layouts/grid/index.js.map +1 -1
  81. package/build/dataviews-layouts/index.js +9 -1
  82. package/build/dataviews-layouts/index.js.map +1 -1
  83. package/build/dataviews-layouts/list/index.js +47 -2
  84. package/build/dataviews-layouts/list/index.js.map +1 -1
  85. package/build/dataviews-layouts/picker-grid/index.js +347 -0
  86. package/build/dataviews-layouts/picker-grid/index.js.map +1 -0
  87. package/build/dataviews-layouts/table/index.js +5 -17
  88. package/build/dataviews-layouts/table/index.js.map +1 -1
  89. package/build/dataviews-layouts/utils/get-data-by-group.js +23 -0
  90. package/build/dataviews-layouts/utils/get-data-by-group.js.map +1 -0
  91. package/build/dataviews-layouts/utils/grid-items.js +37 -0
  92. package/build/dataviews-layouts/utils/grid-items.js.map +1 -0
  93. package/build/dataviews-layouts/utils/preview-size-picker.js +81 -0
  94. package/build/dataviews-layouts/utils/preview-size-picker.js.map +1 -0
  95. package/build/field-types/boolean.js +1 -1
  96. package/build/field-types/boolean.js.map +1 -1
  97. package/build/field-types/color.js +113 -0
  98. package/build/field-types/color.js.map +1 -0
  99. package/build/field-types/index.js +16 -0
  100. package/build/field-types/index.js.map +1 -1
  101. package/build/field-types/password.js +51 -0
  102. package/build/field-types/password.js.map +1 -0
  103. package/build/field-types/telephone.js +57 -0
  104. package/build/field-types/telephone.js.map +1 -0
  105. package/build/field-types/url.js +57 -0
  106. package/build/field-types/url.js.map +1 -0
  107. package/build/normalize-fields.js +17 -0
  108. package/build/normalize-fields.js.map +1 -1
  109. package/build/normalize-form-fields.js +6 -0
  110. package/build/normalize-form-fields.js.map +1 -1
  111. package/build/types.js.map +1 -1
  112. package/build/validation.js +1 -1
  113. package/build/validation.js.map +1 -1
  114. package/build-module/components/dataform-context/index.js +1 -0
  115. package/build-module/components/dataform-context/index.js.map +1 -1
  116. package/build-module/components/dataviews/index.js +11 -1
  117. package/build-module/components/dataviews/index.js.map +1 -1
  118. package/build-module/components/dataviews-context/index.js +1 -0
  119. package/build-module/components/dataviews-context/index.js.map +1 -1
  120. package/build-module/components/dataviews-filters/input-widget.js +48 -4
  121. package/build-module/components/dataviews-filters/input-widget.js.map +1 -1
  122. package/build-module/components/dataviews-layout/index.js +5 -2
  123. package/build-module/components/dataviews-layout/index.js.map +1 -1
  124. package/build-module/components/dataviews-picker/footer.js +136 -0
  125. package/build-module/components/dataviews-picker/footer.js.map +1 -0
  126. package/build-module/components/dataviews-picker/index.js +191 -0
  127. package/build-module/components/dataviews-picker/index.js.map +1 -0
  128. package/build-module/components/dataviews-selection-checkbox/index.js +4 -2
  129. package/build-module/components/dataviews-selection-checkbox/index.js.map +1 -1
  130. package/build-module/components/dataviews-view-config/index.js +1 -0
  131. package/build-module/components/dataviews-view-config/index.js.map +1 -1
  132. package/build-module/constants.js +3 -0
  133. package/build-module/constants.js.map +1 -1
  134. package/build-module/dataform-controls/array.js +9 -7
  135. package/build-module/dataform-controls/array.js.map +1 -1
  136. package/build-module/dataform-controls/checkbox.js +41 -9
  137. package/build-module/dataform-controls/checkbox.js.map +1 -1
  138. package/build-module/dataform-controls/color.js +126 -0
  139. package/build-module/dataform-controls/color.js.map +1 -0
  140. package/build-module/dataform-controls/date.js +32 -24
  141. package/build-module/dataform-controls/date.js.map +1 -1
  142. package/build-module/dataform-controls/datetime.js +135 -21
  143. package/build-module/dataform-controls/datetime.js.map +1 -1
  144. package/build-module/dataform-controls/email.js +15 -45
  145. package/build-module/dataform-controls/email.js.map +1 -1
  146. package/build-module/dataform-controls/index.js +35 -2
  147. package/build-module/dataform-controls/index.js.map +1 -1
  148. package/build-module/dataform-controls/integer.js +46 -34
  149. package/build-module/dataform-controls/integer.js.map +1 -1
  150. package/build-module/dataform-controls/password.js +38 -0
  151. package/build-module/dataform-controls/password.js.map +1 -0
  152. package/build-module/dataform-controls/radio.js +44 -11
  153. package/build-module/dataform-controls/radio.js.map +1 -1
  154. package/build-module/dataform-controls/relative-date-control.js +6 -10
  155. package/build-module/dataform-controls/relative-date-control.js.map +1 -1
  156. package/build-module/dataform-controls/select.js +43 -12
  157. package/build-module/dataform-controls/select.js.map +1 -1
  158. package/build-module/dataform-controls/telephone.js +33 -0
  159. package/build-module/dataform-controls/telephone.js.map +1 -0
  160. package/build-module/dataform-controls/text.js +14 -44
  161. package/build-module/dataform-controls/text.js.map +1 -1
  162. package/build-module/dataform-controls/textarea.js +74 -0
  163. package/build-module/dataform-controls/textarea.js.map +1 -0
  164. package/build-module/dataform-controls/toggle-group.js +38 -8
  165. package/build-module/dataform-controls/toggle-group.js.map +1 -1
  166. package/build-module/dataform-controls/toggle.js +70 -0
  167. package/build-module/dataform-controls/toggle.js.map +1 -0
  168. package/build-module/dataform-controls/url.js +33 -0
  169. package/build-module/dataform-controls/url.js.map +1 -0
  170. package/build-module/dataform-controls/utils/validated-input.js +76 -0
  171. package/build-module/dataform-controls/utils/validated-input.js.map +1 -0
  172. package/build-module/dataforms-layouts/card/index.js +6 -7
  173. package/build-module/dataforms-layouts/card/index.js.map +1 -1
  174. package/build-module/dataforms-layouts/data-form-layout.js +14 -4
  175. package/build-module/dataforms-layouts/data-form-layout.js.map +1 -1
  176. package/build-module/dataforms-layouts/index.js +32 -1
  177. package/build-module/dataforms-layouts/index.js.map +1 -1
  178. package/build-module/dataforms-layouts/panel/dropdown.js +10 -15
  179. package/build-module/dataforms-layouts/panel/dropdown.js.map +1 -1
  180. package/build-module/dataforms-layouts/panel/index.js +24 -11
  181. package/build-module/dataforms-layouts/panel/index.js.map +1 -1
  182. package/build-module/dataforms-layouts/panel/modal.js +22 -28
  183. package/build-module/dataforms-layouts/panel/modal.js.map +1 -1
  184. package/build-module/dataforms-layouts/panel/summary-button.js +60 -0
  185. package/build-module/dataforms-layouts/panel/summary-button.js.map +1 -0
  186. package/build-module/dataforms-layouts/regular/index.js +8 -10
  187. package/build-module/dataforms-layouts/regular/index.js.map +1 -1
  188. package/build-module/dataforms-layouts/row/index.js +106 -0
  189. package/build-module/dataforms-layouts/row/index.js.map +1 -0
  190. package/build-module/dataviews-layouts/grid/index.js +22 -27
  191. package/build-module/dataviews-layouts/grid/index.js.map +1 -1
  192. package/build-module/dataviews-layouts/index.js +10 -2
  193. package/build-module/dataviews-layouts/index.js.map +1 -1
  194. package/build-module/dataviews-layouts/list/index.js +48 -3
  195. package/build-module/dataviews-layouts/list/index.js.map +1 -1
  196. package/build-module/dataviews-layouts/picker-grid/index.js +338 -0
  197. package/build-module/dataviews-layouts/picker-grid/index.js.map +1 -0
  198. package/build-module/dataviews-layouts/table/index.js +5 -17
  199. package/build-module/dataviews-layouts/table/index.js.map +1 -1
  200. package/build-module/dataviews-layouts/utils/get-data-by-group.js +17 -0
  201. package/build-module/dataviews-layouts/utils/get-data-by-group.js.map +1 -0
  202. package/build-module/dataviews-layouts/utils/grid-items.js +29 -0
  203. package/build-module/dataviews-layouts/utils/grid-items.js.map +1 -0
  204. package/build-module/dataviews-layouts/utils/preview-size-picker.js +73 -0
  205. package/build-module/dataviews-layouts/utils/preview-size-picker.js.map +1 -0
  206. package/build-module/field-types/boolean.js +1 -1
  207. package/build-module/field-types/boolean.js.map +1 -1
  208. package/build-module/field-types/color.js +107 -0
  209. package/build-module/field-types/color.js.map +1 -0
  210. package/build-module/field-types/index.js +16 -0
  211. package/build-module/field-types/index.js.map +1 -1
  212. package/build-module/field-types/password.js +46 -0
  213. package/build-module/field-types/password.js.map +1 -0
  214. package/build-module/field-types/telephone.js +51 -0
  215. package/build-module/field-types/telephone.js.map +1 -0
  216. package/build-module/field-types/url.js +51 -0
  217. package/build-module/field-types/url.js.map +1 -0
  218. package/build-module/normalize-fields.js +15 -0
  219. package/build-module/normalize-fields.js.map +1 -1
  220. package/build-module/normalize-form-fields.js +6 -0
  221. package/build-module/normalize-form-fields.js.map +1 -1
  222. package/build-module/types.js.map +1 -1
  223. package/build-module/validation.js +1 -1
  224. package/build-module/validation.js.map +1 -1
  225. package/build-style/style-rtl.css +261 -18
  226. package/build-style/style.css +261 -18
  227. package/build-types/components/dataform/stories/index.story.d.ts +21 -17
  228. package/build-types/components/dataform/stories/index.story.d.ts.map +1 -1
  229. package/build-types/components/dataform-context/index.d.ts.map +1 -1
  230. package/build-types/components/dataviews/index.d.ts +1 -1
  231. package/build-types/components/dataviews/index.d.ts.map +1 -1
  232. package/build-types/components/dataviews/stories/fixtures.d.ts +4 -2
  233. package/build-types/components/dataviews/stories/fixtures.d.ts.map +1 -1
  234. package/build-types/components/dataviews/stories/index.story.d.ts.map +1 -1
  235. package/build-types/components/dataviews-context/index.d.ts +1 -0
  236. package/build-types/components/dataviews-context/index.d.ts.map +1 -1
  237. package/build-types/components/dataviews-filters/input-widget.d.ts.map +1 -1
  238. package/build-types/components/dataviews-layout/index.d.ts.map +1 -1
  239. package/build-types/components/dataviews-picker/footer.d.ts +4 -0
  240. package/build-types/components/dataviews-picker/footer.d.ts.map +1 -0
  241. package/build-types/components/dataviews-picker/index.d.ts +55 -0
  242. package/build-types/components/dataviews-picker/index.d.ts.map +1 -0
  243. package/build-types/components/dataviews-picker/stories/index.story.d.ts +42 -0
  244. package/build-types/components/dataviews-picker/stories/index.story.d.ts.map +1 -0
  245. package/build-types/components/dataviews-selection-checkbox/index.d.ts +2 -1
  246. package/build-types/components/dataviews-selection-checkbox/index.d.ts.map +1 -1
  247. package/build-types/components/dataviews-view-config/index.d.ts.map +1 -1
  248. package/build-types/constants.d.ts +1 -0
  249. package/build-types/constants.d.ts.map +1 -1
  250. package/build-types/dataform-controls/array.d.ts.map +1 -1
  251. package/build-types/dataform-controls/checkbox.d.ts.map +1 -1
  252. package/build-types/dataform-controls/color.d.ts +6 -0
  253. package/build-types/dataform-controls/color.d.ts.map +1 -0
  254. package/build-types/dataform-controls/date.d.ts.map +1 -1
  255. package/build-types/dataform-controls/datetime.d.ts.map +1 -1
  256. package/build-types/dataform-controls/email.d.ts.map +1 -1
  257. package/build-types/dataform-controls/index.d.ts +1 -1
  258. package/build-types/dataform-controls/index.d.ts.map +1 -1
  259. package/build-types/dataform-controls/integer.d.ts.map +1 -1
  260. package/build-types/dataform-controls/password.d.ts +3 -0
  261. package/build-types/dataform-controls/password.d.ts.map +1 -0
  262. package/build-types/dataform-controls/radio.d.ts.map +1 -1
  263. package/build-types/dataform-controls/relative-date-control.d.ts +6 -5
  264. package/build-types/dataform-controls/relative-date-control.d.ts.map +1 -1
  265. package/build-types/dataform-controls/select.d.ts.map +1 -1
  266. package/build-types/dataform-controls/telephone.d.ts +6 -0
  267. package/build-types/dataform-controls/telephone.d.ts.map +1 -0
  268. package/build-types/dataform-controls/text.d.ts +1 -1
  269. package/build-types/dataform-controls/text.d.ts.map +1 -1
  270. package/build-types/dataform-controls/textarea.d.ts +6 -0
  271. package/build-types/dataform-controls/textarea.d.ts.map +1 -0
  272. package/build-types/dataform-controls/toggle-group.d.ts.map +1 -1
  273. package/build-types/dataform-controls/toggle.d.ts +6 -0
  274. package/build-types/dataform-controls/toggle.d.ts.map +1 -0
  275. package/build-types/dataform-controls/url.d.ts +6 -0
  276. package/build-types/dataform-controls/url.d.ts.map +1 -0
  277. package/build-types/dataform-controls/utils/validated-input.d.ts +20 -0
  278. package/build-types/dataform-controls/utils/validated-input.d.ts.map +1 -0
  279. package/build-types/dataforms-layouts/card/index.d.ts +0 -3
  280. package/build-types/dataforms-layouts/card/index.d.ts.map +1 -1
  281. package/build-types/dataforms-layouts/data-form-layout.d.ts +4 -1
  282. package/build-types/dataforms-layouts/data-form-layout.d.ts.map +1 -1
  283. package/build-types/dataforms-layouts/index.d.ts +10 -0
  284. package/build-types/dataforms-layouts/index.d.ts.map +1 -1
  285. package/build-types/dataforms-layouts/panel/dropdown.d.ts +2 -1
  286. package/build-types/dataforms-layouts/panel/dropdown.d.ts.map +1 -1
  287. package/build-types/dataforms-layouts/panel/index.d.ts.map +1 -1
  288. package/build-types/dataforms-layouts/panel/modal.d.ts +2 -1
  289. package/build-types/dataforms-layouts/panel/modal.d.ts.map +1 -1
  290. package/build-types/dataforms-layouts/panel/summary-button.d.ts +15 -0
  291. package/build-types/dataforms-layouts/panel/summary-button.d.ts.map +1 -0
  292. package/build-types/dataforms-layouts/regular/index.d.ts.map +1 -1
  293. package/build-types/dataforms-layouts/row/index.d.ts +6 -0
  294. package/build-types/dataforms-layouts/row/index.d.ts.map +1 -0
  295. package/build-types/dataviews-layouts/grid/index.d.ts.map +1 -1
  296. package/build-types/dataviews-layouts/index.d.ts +12 -1
  297. package/build-types/dataviews-layouts/index.d.ts.map +1 -1
  298. package/build-types/dataviews-layouts/list/index.d.ts.map +1 -1
  299. package/build-types/dataviews-layouts/picker-grid/index.d.ts +4 -0
  300. package/build-types/dataviews-layouts/picker-grid/index.d.ts.map +1 -0
  301. package/build-types/dataviews-layouts/table/index.d.ts.map +1 -1
  302. package/build-types/dataviews-layouts/utils/get-data-by-group.d.ts +6 -0
  303. package/build-types/dataviews-layouts/utils/get-data-by-group.d.ts.map +1 -0
  304. package/build-types/dataviews-layouts/utils/grid-items.d.ts +5 -0
  305. package/build-types/dataviews-layouts/utils/grid-items.d.ts.map +1 -0
  306. package/build-types/dataviews-layouts/utils/preview-size-picker.d.ts +2 -0
  307. package/build-types/dataviews-layouts/utils/preview-size-picker.d.ts.map +1 -0
  308. package/build-types/field-types/color.d.ts +20 -0
  309. package/build-types/field-types/color.d.ts.map +1 -0
  310. package/build-types/field-types/index.d.ts.map +1 -1
  311. package/build-types/field-types/password.d.ts +17 -0
  312. package/build-types/field-types/password.d.ts.map +1 -0
  313. package/build-types/field-types/stories/index.story.d.ts +85 -0
  314. package/build-types/field-types/stories/index.story.d.ts.map +1 -0
  315. package/build-types/field-types/telephone.d.ts +20 -0
  316. package/build-types/field-types/telephone.d.ts.map +1 -0
  317. package/build-types/field-types/url.d.ts +20 -0
  318. package/build-types/field-types/url.d.ts.map +1 -0
  319. package/build-types/normalize-fields.d.ts +3 -0
  320. package/build-types/normalize-fields.d.ts.map +1 -1
  321. package/build-types/normalize-form-fields.d.ts.map +1 -1
  322. package/build-types/test/dataviews-picker.d.ts +2 -0
  323. package/build-types/test/dataviews-picker.d.ts.map +1 -0
  324. package/build-types/types.d.ts +102 -8
  325. package/build-types/types.d.ts.map +1 -1
  326. package/build-types/validation.d.ts.map +1 -1
  327. package/build-wp/index.js +6380 -5012
  328. package/package.json +17 -15
  329. package/src/components/dataform/stories/index.story.tsx +822 -28
  330. package/src/components/dataform-context/index.tsx +1 -0
  331. package/src/components/dataviews/index.tsx +25 -1
  332. package/src/components/dataviews/stories/fixtures.tsx +100 -42
  333. package/src/components/dataviews/stories/index.story.tsx +16 -2
  334. package/src/components/dataviews/style.scss +4 -2
  335. package/src/components/dataviews-context/index.ts +3 -0
  336. package/src/components/dataviews-filters/input-widget.tsx +44 -5
  337. package/src/components/dataviews-layout/index.tsx +5 -3
  338. package/src/components/dataviews-picker/footer.tsx +207 -0
  339. package/src/components/dataviews-picker/index.tsx +284 -0
  340. package/src/components/dataviews-picker/stories/index.story.tsx +251 -0
  341. package/src/components/dataviews-picker/style.scss +10 -0
  342. package/src/components/dataviews-selection-checkbox/index.tsx +3 -0
  343. package/src/components/dataviews-view-config/index.tsx +1 -0
  344. package/src/constants.ts +3 -0
  345. package/src/dataform-controls/array.tsx +4 -6
  346. package/src/dataform-controls/checkbox.tsx +54 -7
  347. package/src/dataform-controls/color.tsx +148 -0
  348. package/src/dataform-controls/date.tsx +47 -21
  349. package/src/dataform-controls/datetime.tsx +171 -23
  350. package/src/dataform-controls/email.tsx +18 -52
  351. package/src/dataform-controls/index.tsx +38 -2
  352. package/src/dataform-controls/integer.tsx +82 -49
  353. package/src/dataform-controls/password.tsx +50 -0
  354. package/src/dataform-controls/radio.tsx +53 -11
  355. package/src/dataform-controls/relative-date-control.tsx +11 -10
  356. package/src/dataform-controls/select.tsx +53 -10
  357. package/src/dataform-controls/telephone.tsx +38 -0
  358. package/src/dataform-controls/text.tsx +12 -50
  359. package/src/dataform-controls/textarea.tsx +85 -0
  360. package/src/dataform-controls/toggle-group.tsx +50 -10
  361. package/src/dataform-controls/toggle.tsx +79 -0
  362. package/src/dataform-controls/url.tsx +38 -0
  363. package/src/dataform-controls/utils/validated-input.tsx +109 -0
  364. package/src/dataforms-layouts/card/index.tsx +5 -4
  365. package/src/dataforms-layouts/card/style.scss +7 -0
  366. package/src/dataforms-layouts/data-form-layout.tsx +15 -3
  367. package/src/dataforms-layouts/index.tsx +35 -0
  368. package/src/dataforms-layouts/panel/dropdown.tsx +12 -23
  369. package/src/dataforms-layouts/panel/index.tsx +39 -16
  370. package/src/dataforms-layouts/panel/modal.tsx +24 -30
  371. package/src/dataforms-layouts/panel/summary-button.tsx +92 -0
  372. package/src/dataforms-layouts/regular/index.tsx +9 -7
  373. package/src/dataforms-layouts/regular/style.scss +0 -6
  374. package/src/dataforms-layouts/row/index.tsx +115 -0
  375. package/src/dataforms-layouts/row/style.scss +3 -0
  376. package/src/dataviews-layouts/grid/index.tsx +47 -47
  377. package/src/dataviews-layouts/grid/style.scss +43 -20
  378. package/src/dataviews-layouts/index.ts +16 -2
  379. package/src/dataviews-layouts/list/index.tsx +74 -2
  380. package/src/dataviews-layouts/list/style.scss +8 -0
  381. package/src/dataviews-layouts/picker-grid/index.tsx +486 -0
  382. package/src/dataviews-layouts/picker-grid/style.scss +171 -0
  383. package/src/dataviews-layouts/table/index.tsx +10 -14
  384. package/src/dataviews-layouts/utils/get-data-by-group.ts +18 -0
  385. package/src/dataviews-layouts/utils/grid-items.scss +21 -0
  386. package/src/dataviews-layouts/utils/grid-items.tsx +35 -0
  387. package/src/dataviews-layouts/utils/preview-size-picker.tsx +87 -0
  388. package/src/field-types/boolean.tsx +1 -1
  389. package/src/field-types/color.tsx +115 -0
  390. package/src/field-types/index.tsx +20 -0
  391. package/src/field-types/password.tsx +46 -0
  392. package/src/field-types/stories/index.story.tsx +856 -0
  393. package/src/field-types/telephone.tsx +71 -0
  394. package/src/field-types/url.tsx +71 -0
  395. package/src/normalize-fields.ts +18 -0
  396. package/src/normalize-form-fields.ts +6 -0
  397. package/src/style.scss +4 -0
  398. package/src/test/dataform.tsx +2 -2
  399. package/src/test/dataviews-picker.tsx +478 -0
  400. package/src/test/dataviews.tsx +86 -0
  401. package/src/test/filter-and-sort-data-view.js +148 -138
  402. package/src/test/normalize-fields.ts +114 -0
  403. package/src/types.ts +130 -7
  404. package/src/validation.ts +5 -0
  405. package/tsconfig.tsbuildinfo +1 -1
  406. package/build/dataform-controls/boolean.js +0 -64
  407. package/build/dataform-controls/boolean.js.map +0 -1
  408. package/build-module/dataform-controls/boolean.js +0 -58
  409. package/build-module/dataform-controls/boolean.js.map +0 -1
  410. package/build-types/components/stories/index.story.d.ts +0 -63
  411. package/build-types/components/stories/index.story.d.ts.map +0 -1
  412. package/build-types/dataform-controls/boolean.d.ts +0 -6
  413. package/build-types/dataform-controls/boolean.d.ts.map +0 -1
  414. package/src/components/stories/index.story.tsx +0 -372
  415. package/src/dataform-controls/boolean.tsx +0 -61
@@ -31,6 +31,7 @@ import {
31
31
  */
32
32
  import RelativeDateControl, {
33
33
  TIME_UNITS_OPTIONS,
34
+ type DateRelative,
34
35
  } from './relative-date-control';
35
36
  import {
36
37
  OPERATOR_IN_THE_PAST,
@@ -42,6 +43,8 @@ import type { DataFormControlProps } from '../types';
42
43
 
43
44
  const { DateCalendar, DateRangeCalendar } = unlock( componentsPrivateApis );
44
45
 
46
+ type DateRange = [ string, string ] | undefined;
47
+
45
48
  const DATE_PRESETS: {
46
49
  id: string;
47
50
  label: string;
@@ -146,7 +149,7 @@ function CalendarDateControl( {
146
149
  }: {
147
150
  id: string;
148
151
  value: string | undefined;
149
- onChange: ( value: any ) => void;
152
+ onChange: ( value: string | undefined ) => void;
150
153
  label: string;
151
154
  hideLabelFromVision?: boolean;
152
155
  className?: string;
@@ -165,10 +168,10 @@ function CalendarDateControl( {
165
168
  const dateValue = newDate
166
169
  ? format( newDate, 'yyyy-MM-dd' )
167
170
  : undefined;
168
- onChange( { [ id ]: dateValue } );
171
+ onChange( dateValue );
169
172
  setSelectedPresetId( null );
170
173
  },
171
- [ id, onChange ]
174
+ [ onChange ]
172
175
  );
173
176
 
174
177
  const handlePresetClick = useCallback(
@@ -177,15 +180,15 @@ function CalendarDateControl( {
177
180
  const dateValue = formatDate( presetDate );
178
181
 
179
182
  setCalendarMonth( presetDate );
180
- onChange( { [ id ]: dateValue } );
183
+ onChange( dateValue );
181
184
  setSelectedPresetId( preset.id );
182
185
  },
183
- [ id, onChange ]
186
+ [ onChange ]
184
187
  );
185
188
 
186
189
  const handleManualDateChange = useCallback(
187
190
  ( newValue?: string ) => {
188
- onChange( { [ id ]: newValue } );
191
+ onChange( newValue );
189
192
  if ( newValue ) {
190
193
  const parsedDate = parseDate( newValue );
191
194
  if ( parsedDate ) {
@@ -194,7 +197,7 @@ function CalendarDateControl( {
194
197
  }
195
198
  setSelectedPresetId( null );
196
199
  },
197
- [ id, onChange ]
200
+ [ onChange ]
198
201
  );
199
202
 
200
203
  const {
@@ -276,8 +279,8 @@ function CalendarDateRangeControl( {
276
279
  className,
277
280
  }: {
278
281
  id: string;
279
- value: [ string, string ] | undefined;
280
- onChange: ( value: any ) => void;
282
+ value: DateRange;
283
+ onChange: ( value: DateRange ) => void;
281
284
  label: string;
282
285
  hideLabelFromVision?: boolean;
283
286
  className?: string;
@@ -305,15 +308,13 @@ function CalendarDateRangeControl( {
305
308
  const updateDateRange = useCallback(
306
309
  ( fromDate?: Date | string, toDate?: Date | string ) => {
307
310
  if ( fromDate && toDate ) {
308
- onChange( {
309
- [ id ]: [ formatDate( fromDate ), formatDate( toDate ) ],
310
- } );
311
+ onChange( [ formatDate( fromDate ), formatDate( toDate ) ] );
311
312
  } else if ( ! fromDate && ! toDate ) {
312
- onChange( { [ id ]: undefined } );
313
+ onChange( undefined );
313
314
  }
314
315
  // Do nothing if only one date is set - wait for both
315
316
  },
316
- [ id, onChange ]
317
+ [ onChange ]
317
318
  );
318
319
 
319
320
  const onSelectCalendarRange = useCallback(
@@ -446,8 +447,33 @@ export default function DateControl< Item >( {
446
447
  hideLabelFromVision,
447
448
  operator,
448
449
  }: DataFormControlProps< Item > ) {
449
- const { id, label } = field;
450
- const value = field.getValue( { item: data } );
450
+ const { id, label, getValue, setValue } = field;
451
+ const value = getValue( { item: data } );
452
+
453
+ const onChangeRelativeDateControl = useCallback(
454
+ ( newValue: DateRelative ) => {
455
+ onChange( setValue( { item: data, value: newValue } ) );
456
+ },
457
+ [ data, onChange, setValue ]
458
+ );
459
+
460
+ const onChangeCalendarDateRangeControl = useCallback(
461
+ ( newValue: DateRange ) => {
462
+ onChange(
463
+ setValue( {
464
+ item: data,
465
+ value: newValue,
466
+ } )
467
+ );
468
+ },
469
+ [ data, onChange, setValue ]
470
+ );
471
+
472
+ const onChangeCalendarDateControl = useCallback(
473
+ ( newValue: string | undefined ) =>
474
+ onChange( setValue( { item: data, value: newValue } ) ),
475
+ [ data, onChange, setValue ]
476
+ );
451
477
 
452
478
  if ( operator === OPERATOR_IN_THE_PAST || operator === OPERATOR_OVER ) {
453
479
  return (
@@ -455,7 +481,7 @@ export default function DateControl< Item >( {
455
481
  className="dataviews-controls__date"
456
482
  id={ id }
457
483
  value={ value && typeof value === 'object' ? value : {} }
458
- onChange={ onChange }
484
+ onChange={ onChangeRelativeDateControl }
459
485
  label={ label }
460
486
  hideLabelFromVision={ hideLabelFromVision }
461
487
  options={ TIME_UNITS_OPTIONS[ operator ] }
@@ -464,14 +490,14 @@ export default function DateControl< Item >( {
464
490
  }
465
491
 
466
492
  if ( operator === OPERATOR_BETWEEN ) {
467
- let dateRangeValue: [ string, string ] | undefined;
493
+ let dateRangeValue: DateRange;
468
494
  if (
469
495
  Array.isArray( value ) &&
470
496
  value.length === 2 &&
471
497
  value.every( ( date ) => typeof date === 'string' )
472
498
  ) {
473
499
  // Ensure the value is expected format
474
- dateRangeValue = value as unknown as [ string, string ];
500
+ dateRangeValue = value as DateRange;
475
501
  }
476
502
 
477
503
  return (
@@ -479,7 +505,7 @@ export default function DateControl< Item >( {
479
505
  className="dataviews-controls__date"
480
506
  id={ id }
481
507
  value={ dateRangeValue }
482
- onChange={ onChange }
508
+ onChange={ onChangeCalendarDateRangeControl }
483
509
  label={ label }
484
510
  hideLabelFromVision={ hideLabelFromVision }
485
511
  />
@@ -491,7 +517,7 @@ export default function DateControl< Item >( {
491
517
  className="dataviews-controls__date"
492
518
  id={ id }
493
519
  value={ typeof value === 'string' ? value : undefined }
494
- onChange={ onChange }
520
+ onChange={ onChangeCalendarDateControl }
495
521
  label={ label }
496
522
  hideLabelFromVision={ hideLabelFromVision }
497
523
  />
@@ -1,8 +1,20 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { BaseControl, TimePicker, VisuallyHidden } from '@wordpress/components';
5
- import { useCallback } from '@wordpress/element';
4
+ import {
5
+ BaseControl,
6
+ privateApis as componentsPrivateApis,
7
+ __experimentalInputControl as InputControl,
8
+ __experimentalVStack as VStack,
9
+ } from '@wordpress/components';
10
+ import { useCallback, useState } from '@wordpress/element';
11
+ import { __ } from '@wordpress/i18n';
12
+ import { getDate, getSettings } from '@wordpress/date';
13
+
14
+ /**
15
+ * External dependencies
16
+ */
17
+ import { format, isValid } from 'date-fns';
6
18
 
7
19
  /**
8
20
  * Internal dependencies
@@ -11,7 +23,142 @@ import type { DataFormControlProps } from '../types';
11
23
  import { OPERATOR_IN_THE_PAST, OPERATOR_OVER } from '../constants';
12
24
  import RelativeDateControl, {
13
25
  TIME_UNITS_OPTIONS,
26
+ type DateRelative,
14
27
  } from './relative-date-control';
28
+ import { unlock } from '../lock-unlock';
29
+
30
+ const { DateCalendar } = unlock( componentsPrivateApis );
31
+
32
+ const parseDateTime = ( dateTimeString?: string ): Date | null => {
33
+ if ( ! dateTimeString ) {
34
+ return null;
35
+ }
36
+ const parsed = getDate( dateTimeString );
37
+ return parsed && isValid( parsed ) ? parsed : null;
38
+ };
39
+
40
+ const formatDateTime = ( date?: Date | string ): string => {
41
+ if ( ! date ) {
42
+ return '';
43
+ }
44
+ if ( typeof date === 'string' ) {
45
+ return date;
46
+ }
47
+ // Format as datetime-local input expects: YYYY-MM-DDTHH:mm
48
+ return format( date, "yyyy-MM-dd'T'HH:mm" );
49
+ };
50
+
51
+ function CalendarDateTimeControl( {
52
+ id,
53
+ value,
54
+ onChange,
55
+ label,
56
+ description,
57
+ hideLabelFromVision,
58
+ }: {
59
+ id: string;
60
+ value: string | undefined;
61
+ onChange: ( value: string | undefined ) => void;
62
+ label: string;
63
+ description?: string;
64
+ hideLabelFromVision?: boolean;
65
+ } ) {
66
+ const [ calendarMonth, setCalendarMonth ] = useState< Date >( () => {
67
+ const parsedDate = parseDateTime( value );
68
+ return parsedDate || new Date(); // Default to current month
69
+ } );
70
+
71
+ const onSelectDate = useCallback(
72
+ ( newDate: Date | undefined | null ) => {
73
+ if ( newDate ) {
74
+ // Preserve time if it exists in current value, otherwise use current time
75
+ let finalDateTime = newDate;
76
+
77
+ if ( value ) {
78
+ const currentDateTime = parseDateTime( value );
79
+ if ( currentDateTime ) {
80
+ // Preserve the time part
81
+ finalDateTime = new Date( newDate );
82
+ finalDateTime.setHours( currentDateTime.getHours() );
83
+ finalDateTime.setMinutes(
84
+ currentDateTime.getMinutes()
85
+ );
86
+ }
87
+ }
88
+
89
+ const dateTimeValue = finalDateTime.toISOString();
90
+ onChange( dateTimeValue );
91
+ } else {
92
+ onChange( undefined );
93
+ }
94
+ },
95
+ [ onChange, value ]
96
+ );
97
+
98
+ const handleManualDateTimeChange = useCallback(
99
+ ( newValue?: string ) => {
100
+ if ( newValue ) {
101
+ // Convert from datetime-local format to ISO string
102
+ const dateTime = new Date( newValue );
103
+ onChange( dateTime.toISOString() );
104
+
105
+ // Update calendar month to match
106
+ const parsedDate = parseDateTime( dateTime.toISOString() );
107
+ if ( parsedDate ) {
108
+ setCalendarMonth( parsedDate );
109
+ }
110
+ } else {
111
+ onChange( undefined );
112
+ }
113
+ },
114
+ [ onChange ]
115
+ );
116
+
117
+ const {
118
+ timezone: { string: timezoneString },
119
+ l10n: { startOfWeek },
120
+ } = getSettings();
121
+
122
+ return (
123
+ <BaseControl
124
+ __nextHasNoMarginBottom
125
+ id={ id }
126
+ label={ label }
127
+ help={ description }
128
+ hideLabelFromVision={ hideLabelFromVision }
129
+ >
130
+ <VStack spacing={ 4 }>
131
+ { /* Calendar widget */ }
132
+ <DateCalendar
133
+ style={ { width: '100%' } }
134
+ selected={
135
+ value ? parseDateTime( value ) || undefined : undefined
136
+ }
137
+ onSelect={ onSelectDate }
138
+ month={ calendarMonth }
139
+ onMonthChange={ setCalendarMonth }
140
+ timeZone={ timezoneString || undefined }
141
+ weekStartsOn={ startOfWeek }
142
+ />
143
+ { /* Manual datetime input */ }
144
+ <InputControl
145
+ __next40pxDefaultSize
146
+ type="datetime-local"
147
+ label={ __( 'Date time' ) }
148
+ hideLabelFromVision
149
+ value={
150
+ value
151
+ ? formatDateTime(
152
+ parseDateTime( value ) || undefined
153
+ )
154
+ : ''
155
+ }
156
+ onChange={ handleManualDateTimeChange }
157
+ />
158
+ </VStack>
159
+ </BaseControl>
160
+ );
161
+ }
15
162
 
16
163
  export default function DateTime< Item >( {
17
164
  data,
@@ -20,20 +167,28 @@ export default function DateTime< Item >( {
20
167
  hideLabelFromVision,
21
168
  operator,
22
169
  }: DataFormControlProps< Item > ) {
23
- const { id, label } = field;
24
- const value = field.getValue( { item: data } );
170
+ const { id, label, description, getValue, setValue } = field;
171
+ const value = getValue( { item: data } );
25
172
 
26
- const onChangeControl = useCallback(
27
- ( newValue: string | null ) => onChange( { [ id ]: newValue } ),
28
- [ id, onChange ]
173
+ const onChangeRelativeDateControl = useCallback(
174
+ ( newValue: DateRelative ) =>
175
+ onChange( setValue( { item: data, value: newValue } ) ),
176
+ [ data, onChange, setValue ]
177
+ );
178
+
179
+ const onChangeCalendarDateTimeControl = useCallback(
180
+ ( newValue: string | undefined ) =>
181
+ onChange( setValue( { item: data, value: newValue } ) ),
182
+ [ data, onChange, setValue ]
29
183
  );
30
184
 
31
185
  if ( operator === OPERATOR_IN_THE_PAST || operator === OPERATOR_OVER ) {
32
186
  return (
33
187
  <RelativeDateControl
188
+ className="dataviews-controls__datetime"
34
189
  id={ id }
35
190
  value={ value && typeof value === 'object' ? value : {} }
36
- onChange={ onChange }
191
+ onChange={ onChangeRelativeDateControl }
37
192
  label={ label }
38
193
  hideLabelFromVision={ hideLabelFromVision }
39
194
  options={ TIME_UNITS_OPTIONS[ operator ] }
@@ -42,20 +197,13 @@ export default function DateTime< Item >( {
42
197
  }
43
198
 
44
199
  return (
45
- <fieldset className="dataviews-controls__datetime">
46
- { ! hideLabelFromVision && (
47
- <BaseControl.VisualLabel as="legend">
48
- { label }
49
- </BaseControl.VisualLabel>
50
- ) }
51
- { hideLabelFromVision && (
52
- <VisuallyHidden as="legend">{ label }</VisuallyHidden>
53
- ) }
54
- <TimePicker
55
- currentTime={ typeof value === 'string' ? value : undefined }
56
- onChange={ onChangeControl }
57
- hideLabelFromVision
58
- />
59
- </fieldset>
200
+ <CalendarDateTimeControl
201
+ id={ id }
202
+ value={ typeof value === 'string' ? value : undefined }
203
+ onChange={ onChangeCalendarDateTimeControl }
204
+ label={ label }
205
+ description={ description }
206
+ hideLabelFromVision={ hideLabelFromVision }
207
+ />
60
208
  );
61
209
  }
@@ -1,16 +1,17 @@
1
1
  /**
2
2
  * WordPress dependencies
3
3
  */
4
- import { privateApis } from '@wordpress/components';
5
- import { useCallback, useState } from '@wordpress/element';
4
+ import {
5
+ Icon,
6
+ __experimentalInputControlPrefixWrapper as InputControlPrefixWrapper,
7
+ } from '@wordpress/components';
8
+ import { atSymbol } from '@wordpress/icons';
6
9
 
7
10
  /**
8
11
  * Internal dependencies
9
12
  */
10
13
  import type { DataFormControlProps } from '../types';
11
- import { unlock } from '../lock-unlock';
12
-
13
- const { ValidatedTextControl } = unlock( privateApis );
14
+ import ValidatedText from './utils/validated-input';
14
15
 
15
16
  export default function Email< Item >( {
16
17
  data,
@@ -18,55 +19,20 @@ export default function Email< Item >( {
18
19
  onChange,
19
20
  hideLabelFromVision,
20
21
  }: DataFormControlProps< Item > ) {
21
- const { id, label, placeholder, description } = field;
22
- const value = field.getValue( { item: data } );
23
- const [ customValidity, setCustomValidity ] =
24
- useState<
25
- React.ComponentProps<
26
- typeof ValidatedTextControl
27
- >[ 'customValidity' ]
28
- >( undefined );
29
-
30
- const onChangeControl = useCallback(
31
- ( newValue: string ) =>
32
- onChange( {
33
- [ id ]: newValue,
34
- } ),
35
- [ id, onChange ]
36
- );
37
-
38
22
  return (
39
- <ValidatedTextControl
40
- required={ !! field.isValid?.required }
41
- onValidate={ ( newValue: any ) => {
42
- const message = field.isValid?.custom?.(
43
- {
44
- ...data,
45
- [ id ]: newValue,
46
- },
47
- field
48
- );
49
-
50
- if ( message ) {
51
- setCustomValidity( {
52
- type: 'invalid',
53
- message,
54
- } );
55
- return;
56
- }
57
-
58
- setCustomValidity( undefined );
23
+ <ValidatedText
24
+ { ...{
25
+ data,
26
+ field,
27
+ onChange,
28
+ hideLabelFromVision,
29
+ type: 'email',
30
+ prefix: (
31
+ <InputControlPrefixWrapper variant="icon">
32
+ <Icon icon={ atSymbol } />
33
+ </InputControlPrefixWrapper>
34
+ ),
59
35
  } }
60
- customValidity={ customValidity }
61
- type="email"
62
- label={ label }
63
- placeholder={ placeholder }
64
- value={ value ?? '' }
65
- help={ description }
66
- onChange={ onChangeControl }
67
- __next40pxDefaultSize
68
- __nextHasNoMarginBottom
69
- hideLabelFromVision={ hideLabelFromVision }
70
36
  />
71
37
  );
72
38
  }
@@ -10,18 +10,24 @@ import type {
10
10
  DataFormControlProps,
11
11
  Field,
12
12
  FieldTypeDefinition,
13
+ EditConfig,
13
14
  } from '../types';
14
15
  import checkbox from './checkbox';
15
16
  import datetime from './datetime';
16
17
  import date from './date';
17
18
  import email from './email';
19
+ import telephone from './telephone';
20
+ import url from './url';
18
21
  import integer from './integer';
19
22
  import radio from './radio';
20
23
  import select from './select';
21
24
  import text from './text';
25
+ import toggle from './toggle';
26
+ import textarea from './textarea';
22
27
  import toggleGroup from './toggle-group';
23
- import boolean from './boolean';
24
28
  import array from './array';
29
+ import color from './color';
30
+ import password from './password';
25
31
 
26
32
  interface FormControls {
27
33
  [ key: string ]: ComponentType< DataFormControlProps< any > >;
@@ -29,18 +35,40 @@ interface FormControls {
29
35
 
30
36
  const FORM_CONTROLS: FormControls = {
31
37
  array,
32
- boolean,
33
38
  checkbox,
39
+ color,
34
40
  datetime,
35
41
  date,
36
42
  email,
43
+ telephone,
44
+ url,
37
45
  integer,
46
+ password,
38
47
  radio,
39
48
  select,
40
49
  text,
50
+ toggle,
51
+ textarea,
41
52
  toggleGroup,
42
53
  };
43
54
 
55
+ function isEditConfig( value: any ): value is EditConfig {
56
+ return (
57
+ value && typeof value === 'object' && typeof value.control === 'string'
58
+ );
59
+ }
60
+
61
+ function createConfiguredControl( config: EditConfig ) {
62
+ const { control, ...controlConfig } = config;
63
+ const BaseControlType = getControlByType( control );
64
+
65
+ return function ConfiguredControl< Item >(
66
+ props: DataFormControlProps< Item >
67
+ ) {
68
+ return <BaseControlType { ...props } config={ controlConfig } />;
69
+ };
70
+ }
71
+
44
72
  export function getControl< Item >(
45
73
  field: Field< Item >,
46
74
  fieldTypeDefinition: FieldTypeDefinition< Item >
@@ -53,6 +81,10 @@ export function getControl< Item >(
53
81
  return getControlByType( field.Edit );
54
82
  }
55
83
 
84
+ if ( isEditConfig( field.Edit ) ) {
85
+ return createConfiguredControl( field.Edit );
86
+ }
87
+
56
88
  if ( field.elements && field.type !== 'array' ) {
57
89
  return getControlByType( 'select' );
58
90
  }
@@ -61,6 +93,10 @@ export function getControl< Item >(
61
93
  return getControlByType( fieldTypeDefinition.Edit );
62
94
  }
63
95
 
96
+ if ( isEditConfig( fieldTypeDefinition.Edit ) ) {
97
+ return createConfiguredControl( fieldTypeDefinition.Edit );
98
+ }
99
+
64
100
  return fieldTypeDefinition.Edit;
65
101
  }
66
102