@wordpress/dataviews 8.0.1-next.e256d081a.0 → 9.0.1-next.6870dfe5b.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 (269) hide show
  1. package/CHANGELOG.md +24 -1
  2. package/README.md +96 -1
  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-layout/index.js +2 -1
  10. package/build/components/dataviews-layout/index.js.map +1 -1
  11. package/build/components/dataviews-picker/footer.js +145 -0
  12. package/build/components/dataviews-picker/footer.js.map +1 -0
  13. package/build/components/dataviews-picker/index.js +201 -0
  14. package/build/components/dataviews-picker/index.js.map +1 -0
  15. package/build/components/dataviews-selection-checkbox/index.js +4 -2
  16. package/build/components/dataviews-selection-checkbox/index.js.map +1 -1
  17. package/build/components/dataviews-view-config/index.js +1 -0
  18. package/build/components/dataviews-view-config/index.js.map +1 -1
  19. package/build/constants.js +4 -1
  20. package/build/constants.js.map +1 -1
  21. package/build/dataform-controls/checkbox.js +23 -2
  22. package/build/dataform-controls/checkbox.js.map +1 -1
  23. package/build/dataform-controls/color.js +128 -0
  24. package/build/dataform-controls/color.js.map +1 -0
  25. package/build/dataform-controls/email.js +10 -45
  26. package/build/dataform-controls/email.js.map +1 -1
  27. package/build/dataform-controls/index.js +8 -2
  28. package/build/dataform-controls/index.js.map +1 -1
  29. package/build/dataform-controls/telephone.js +34 -0
  30. package/build/dataform-controls/telephone.js.map +1 -0
  31. package/build/dataform-controls/text.js +7 -48
  32. package/build/dataform-controls/text.js.map +1 -1
  33. package/build/dataform-controls/{boolean.js → toggle.js} +6 -4
  34. package/build/dataform-controls/toggle.js.map +1 -0
  35. package/build/dataform-controls/url.js +34 -0
  36. package/build/dataform-controls/url.js.map +1 -0
  37. package/build/dataform-controls/utils/validated-text.js +76 -0
  38. package/build/dataform-controls/utils/validated-text.js.map +1 -0
  39. package/build/dataforms-layouts/card/index.js +6 -7
  40. package/build/dataforms-layouts/card/index.js.map +1 -1
  41. package/build/dataforms-layouts/data-form-layout.js +16 -4
  42. package/build/dataforms-layouts/data-form-layout.js.map +1 -1
  43. package/build/dataforms-layouts/index.js +31 -1
  44. package/build/dataforms-layouts/index.js.map +1 -1
  45. package/build/dataforms-layouts/row/index.js +113 -0
  46. package/build/dataforms-layouts/row/index.js.map +1 -0
  47. package/build/dataviews-layouts/grid/index.js +16 -11
  48. package/build/dataviews-layouts/grid/index.js.map +1 -1
  49. package/build/dataviews-layouts/index.js +9 -1
  50. package/build/dataviews-layouts/index.js.map +1 -1
  51. package/build/dataviews-layouts/picker-grid/index.js +357 -0
  52. package/build/dataviews-layouts/picker-grid/index.js.map +1 -0
  53. package/build/dataviews-layouts/utils/grid-items.js +37 -0
  54. package/build/dataviews-layouts/utils/grid-items.js.map +1 -0
  55. package/build/dataviews-layouts/utils/preview-size-picker.js +81 -0
  56. package/build/dataviews-layouts/utils/preview-size-picker.js.map +1 -0
  57. package/build/field-types/boolean.js +1 -1
  58. package/build/field-types/boolean.js.map +1 -1
  59. package/build/field-types/color.js +113 -0
  60. package/build/field-types/color.js.map +1 -0
  61. package/build/field-types/index.js +12 -0
  62. package/build/field-types/index.js.map +1 -1
  63. package/build/field-types/telephone.js +57 -0
  64. package/build/field-types/telephone.js.map +1 -0
  65. package/build/field-types/url.js +57 -0
  66. package/build/field-types/url.js.map +1 -0
  67. package/build/normalize-form-fields.js +6 -0
  68. package/build/normalize-form-fields.js.map +1 -1
  69. package/build/types.js.map +1 -1
  70. package/build/validation.js +1 -1
  71. package/build/validation.js.map +1 -1
  72. package/build-module/components/dataform-context/index.js +1 -0
  73. package/build-module/components/dataform-context/index.js.map +1 -1
  74. package/build-module/components/dataviews/index.js +11 -1
  75. package/build-module/components/dataviews/index.js.map +1 -1
  76. package/build-module/components/dataviews-context/index.js +1 -0
  77. package/build-module/components/dataviews-context/index.js.map +1 -1
  78. package/build-module/components/dataviews-layout/index.js +2 -1
  79. package/build-module/components/dataviews-layout/index.js.map +1 -1
  80. package/build-module/components/dataviews-picker/footer.js +136 -0
  81. package/build-module/components/dataviews-picker/footer.js.map +1 -0
  82. package/build-module/components/dataviews-picker/index.js +191 -0
  83. package/build-module/components/dataviews-picker/index.js.map +1 -0
  84. package/build-module/components/dataviews-selection-checkbox/index.js +4 -2
  85. package/build-module/components/dataviews-selection-checkbox/index.js.map +1 -1
  86. package/build-module/components/dataviews-view-config/index.js +1 -0
  87. package/build-module/components/dataviews-view-config/index.js.map +1 -1
  88. package/build-module/constants.js +3 -0
  89. package/build-module/constants.js.map +1 -1
  90. package/build-module/dataform-controls/checkbox.js +25 -3
  91. package/build-module/dataform-controls/checkbox.js.map +1 -1
  92. package/build-module/dataform-controls/color.js +122 -0
  93. package/build-module/dataform-controls/color.js.map +1 -0
  94. package/build-module/dataform-controls/email.js +9 -45
  95. package/build-module/dataform-controls/email.js.map +1 -1
  96. package/build-module/dataform-controls/index.js +8 -2
  97. package/build-module/dataform-controls/index.js.map +1 -1
  98. package/build-module/dataform-controls/telephone.js +27 -0
  99. package/build-module/dataform-controls/telephone.js.map +1 -0
  100. package/build-module/dataform-controls/text.js +6 -48
  101. package/build-module/dataform-controls/text.js.map +1 -1
  102. package/build-module/dataform-controls/{boolean.js → toggle.js} +5 -3
  103. package/build-module/dataform-controls/toggle.js.map +1 -0
  104. package/build-module/dataform-controls/url.js +27 -0
  105. package/build-module/dataform-controls/url.js.map +1 -0
  106. package/build-module/dataform-controls/utils/validated-text.js +70 -0
  107. package/build-module/dataform-controls/utils/validated-text.js.map +1 -0
  108. package/build-module/dataforms-layouts/card/index.js +6 -7
  109. package/build-module/dataforms-layouts/card/index.js.map +1 -1
  110. package/build-module/dataforms-layouts/data-form-layout.js +14 -4
  111. package/build-module/dataforms-layouts/data-form-layout.js.map +1 -1
  112. package/build-module/dataforms-layouts/index.js +32 -1
  113. package/build-module/dataforms-layouts/index.js.map +1 -1
  114. package/build-module/dataforms-layouts/row/index.js +106 -0
  115. package/build-module/dataforms-layouts/row/index.js.map +1 -0
  116. package/build-module/dataviews-layouts/grid/index.js +16 -11
  117. package/build-module/dataviews-layouts/grid/index.js.map +1 -1
  118. package/build-module/dataviews-layouts/index.js +10 -2
  119. package/build-module/dataviews-layouts/index.js.map +1 -1
  120. package/build-module/dataviews-layouts/picker-grid/index.js +348 -0
  121. package/build-module/dataviews-layouts/picker-grid/index.js.map +1 -0
  122. package/build-module/dataviews-layouts/utils/grid-items.js +29 -0
  123. package/build-module/dataviews-layouts/utils/grid-items.js.map +1 -0
  124. package/build-module/dataviews-layouts/utils/preview-size-picker.js +73 -0
  125. package/build-module/dataviews-layouts/utils/preview-size-picker.js.map +1 -0
  126. package/build-module/field-types/boolean.js +1 -1
  127. package/build-module/field-types/boolean.js.map +1 -1
  128. package/build-module/field-types/color.js +107 -0
  129. package/build-module/field-types/color.js.map +1 -0
  130. package/build-module/field-types/index.js +12 -0
  131. package/build-module/field-types/index.js.map +1 -1
  132. package/build-module/field-types/telephone.js +51 -0
  133. package/build-module/field-types/telephone.js.map +1 -0
  134. package/build-module/field-types/url.js +51 -0
  135. package/build-module/field-types/url.js.map +1 -0
  136. package/build-module/normalize-form-fields.js +6 -0
  137. package/build-module/normalize-form-fields.js.map +1 -1
  138. package/build-module/types.js.map +1 -1
  139. package/build-module/validation.js +1 -1
  140. package/build-module/validation.js.map +1 -1
  141. package/build-style/style-rtl.css +252 -12
  142. package/build-style/style.css +252 -12
  143. package/build-types/components/dataform/stories/index.story.d.ts +19 -4
  144. package/build-types/components/dataform/stories/index.story.d.ts.map +1 -1
  145. package/build-types/components/dataform-context/index.d.ts.map +1 -1
  146. package/build-types/components/dataviews/index.d.ts +1 -1
  147. package/build-types/components/dataviews/index.d.ts.map +1 -1
  148. package/build-types/components/dataviews/stories/index.story.d.ts.map +1 -1
  149. package/build-types/components/dataviews-context/index.d.ts +1 -0
  150. package/build-types/components/dataviews-context/index.d.ts.map +1 -1
  151. package/build-types/components/dataviews-layout/index.d.ts.map +1 -1
  152. package/build-types/components/dataviews-picker/footer.d.ts +4 -0
  153. package/build-types/components/dataviews-picker/footer.d.ts.map +1 -0
  154. package/build-types/components/dataviews-picker/index.d.ts +55 -0
  155. package/build-types/components/dataviews-picker/index.d.ts.map +1 -0
  156. package/build-types/components/dataviews-picker/stories/index.story.d.ts +42 -0
  157. package/build-types/components/dataviews-picker/stories/index.story.d.ts.map +1 -0
  158. package/build-types/components/dataviews-selection-checkbox/index.d.ts +2 -1
  159. package/build-types/components/dataviews-selection-checkbox/index.d.ts.map +1 -1
  160. package/build-types/components/dataviews-view-config/index.d.ts.map +1 -1
  161. package/build-types/constants.d.ts +1 -0
  162. package/build-types/constants.d.ts.map +1 -1
  163. package/build-types/dataform-controls/checkbox.d.ts.map +1 -1
  164. package/build-types/dataform-controls/color.d.ts +6 -0
  165. package/build-types/dataform-controls/color.d.ts.map +1 -0
  166. package/build-types/dataform-controls/email.d.ts.map +1 -1
  167. package/build-types/dataform-controls/index.d.ts.map +1 -1
  168. package/build-types/dataform-controls/telephone.d.ts +6 -0
  169. package/build-types/dataform-controls/telephone.d.ts.map +1 -0
  170. package/build-types/dataform-controls/text.d.ts.map +1 -1
  171. package/build-types/dataform-controls/toggle.d.ts +6 -0
  172. package/build-types/dataform-controls/toggle.d.ts.map +1 -0
  173. package/build-types/dataform-controls/url.d.ts +6 -0
  174. package/build-types/dataform-controls/url.d.ts.map +1 -0
  175. package/build-types/dataform-controls/utils/validated-text.d.ts +16 -0
  176. package/build-types/dataform-controls/utils/validated-text.d.ts.map +1 -0
  177. package/build-types/dataforms-layouts/card/index.d.ts +0 -3
  178. package/build-types/dataforms-layouts/card/index.d.ts.map +1 -1
  179. package/build-types/dataforms-layouts/data-form-layout.d.ts +4 -1
  180. package/build-types/dataforms-layouts/data-form-layout.d.ts.map +1 -1
  181. package/build-types/dataforms-layouts/index.d.ts +10 -0
  182. package/build-types/dataforms-layouts/index.d.ts.map +1 -1
  183. package/build-types/dataforms-layouts/row/index.d.ts +6 -0
  184. package/build-types/dataforms-layouts/row/index.d.ts.map +1 -0
  185. package/build-types/dataviews-layouts/grid/index.d.ts.map +1 -1
  186. package/build-types/dataviews-layouts/index.d.ts +12 -1
  187. package/build-types/dataviews-layouts/index.d.ts.map +1 -1
  188. package/build-types/dataviews-layouts/picker-grid/index.d.ts +4 -0
  189. package/build-types/dataviews-layouts/picker-grid/index.d.ts.map +1 -0
  190. package/build-types/dataviews-layouts/utils/grid-items.d.ts +5 -0
  191. package/build-types/dataviews-layouts/utils/grid-items.d.ts.map +1 -0
  192. package/build-types/dataviews-layouts/utils/preview-size-picker.d.ts +2 -0
  193. package/build-types/dataviews-layouts/utils/preview-size-picker.d.ts.map +1 -0
  194. package/build-types/field-types/color.d.ts +20 -0
  195. package/build-types/field-types/color.d.ts.map +1 -0
  196. package/build-types/field-types/index.d.ts.map +1 -1
  197. package/build-types/field-types/stories/index.story.d.ts +81 -0
  198. package/build-types/field-types/stories/index.story.d.ts.map +1 -0
  199. package/build-types/field-types/telephone.d.ts +20 -0
  200. package/build-types/field-types/telephone.d.ts.map +1 -0
  201. package/build-types/field-types/url.d.ts +20 -0
  202. package/build-types/field-types/url.d.ts.map +1 -0
  203. package/build-types/normalize-form-fields.d.ts.map +1 -1
  204. package/build-types/test/dataviews-picker.d.ts +2 -0
  205. package/build-types/test/dataviews-picker.d.ts.map +1 -0
  206. package/build-types/types.d.ts +36 -5
  207. package/build-types/types.d.ts.map +1 -1
  208. package/build-types/validation.d.ts.map +1 -1
  209. package/build-wp/index.js +5061 -4013
  210. package/package.json +16 -15
  211. package/src/components/dataform/stories/index.story.tsx +333 -11
  212. package/src/components/dataform-context/index.tsx +1 -0
  213. package/src/components/dataviews/index.tsx +25 -1
  214. package/src/components/dataviews/stories/fixtures.tsx +1 -1
  215. package/src/components/dataviews/stories/index.story.tsx +14 -0
  216. package/src/components/dataviews/style.scss +4 -2
  217. package/src/components/dataviews-context/index.ts +3 -0
  218. package/src/components/dataviews-layout/index.tsx +4 -2
  219. package/src/components/dataviews-picker/footer.tsx +207 -0
  220. package/src/components/dataviews-picker/index.tsx +284 -0
  221. package/src/components/dataviews-picker/stories/index.story.tsx +251 -0
  222. package/src/components/dataviews-picker/style.scss +10 -0
  223. package/src/components/dataviews-selection-checkbox/index.tsx +3 -0
  224. package/src/components/dataviews-view-config/index.tsx +1 -0
  225. package/src/constants.ts +3 -0
  226. package/src/dataform-controls/checkbox.tsx +33 -3
  227. package/src/dataform-controls/color.tsx +139 -0
  228. package/src/dataform-controls/email.tsx +10 -52
  229. package/src/dataform-controls/index.tsx +8 -2
  230. package/src/dataform-controls/telephone.tsx +30 -0
  231. package/src/dataform-controls/text.tsx +2 -57
  232. package/src/dataform-controls/{boolean.tsx → toggle.tsx} +3 -2
  233. package/src/dataform-controls/url.tsx +30 -0
  234. package/src/dataform-controls/utils/validated-text.tsx +96 -0
  235. package/src/dataforms-layouts/card/index.tsx +5 -4
  236. package/src/dataforms-layouts/card/style.scss +7 -0
  237. package/src/dataforms-layouts/data-form-layout.tsx +15 -3
  238. package/src/dataforms-layouts/index.tsx +35 -0
  239. package/src/dataforms-layouts/row/index.tsx +115 -0
  240. package/src/dataforms-layouts/row/style.scss +3 -0
  241. package/src/dataviews-layouts/grid/index.tsx +38 -33
  242. package/src/dataviews-layouts/grid/style.scss +42 -20
  243. package/src/dataviews-layouts/index.ts +16 -2
  244. package/src/dataviews-layouts/picker-grid/index.tsx +490 -0
  245. package/src/dataviews-layouts/picker-grid/style.scss +171 -0
  246. package/src/dataviews-layouts/utils/grid-items.scss +21 -0
  247. package/src/dataviews-layouts/utils/grid-items.tsx +35 -0
  248. package/src/dataviews-layouts/utils/preview-size-picker.tsx +87 -0
  249. package/src/field-types/boolean.tsx +1 -1
  250. package/src/field-types/color.tsx +115 -0
  251. package/src/field-types/index.tsx +15 -0
  252. package/src/field-types/stories/index.story.tsx +719 -0
  253. package/src/field-types/telephone.tsx +71 -0
  254. package/src/field-types/url.tsx +71 -0
  255. package/src/normalize-form-fields.ts +6 -0
  256. package/src/style.scss +4 -0
  257. package/src/test/dataform.tsx +2 -2
  258. package/src/test/dataviews-picker.tsx +478 -0
  259. package/src/test/dataviews.tsx +86 -0
  260. package/src/types.ts +56 -4
  261. package/src/validation.ts +3 -0
  262. package/tsconfig.tsbuildinfo +1 -1
  263. package/build/dataform-controls/boolean.js.map +0 -1
  264. package/build-module/dataform-controls/boolean.js.map +0 -1
  265. package/build-types/components/stories/index.story.d.ts +0 -63
  266. package/build-types/components/stories/index.story.d.ts.map +0 -1
  267. package/build-types/dataform-controls/boolean.d.ts +0 -6
  268. package/build-types/dataform-controls/boolean.d.ts.map +0 -1
  269. package/src/components/stories/index.story.tsx +0 -372
@@ -1 +0,0 @@
1
- {"version":3,"names":["_components","require","_element","_lockUnlock","_jsxRuntime","ValidatedToggleControl","unlock","privateApis","Boolean","field","onChange","data","hideLabelFromVision","id","getValue","label","customValidity","setCustomValidity","useState","undefined","jsx","required","isValid","onValidate","newValue","message","custom","type","hidden","__nextHasNoMarginBottom","checked","item"],"sources":["@wordpress/dataviews/src/dataform-controls/boolean.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis } from '@wordpress/components';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { DataFormControlProps } from '../types';\nimport { unlock } from '../lock-unlock';\n\nconst { ValidatedToggleControl } = unlock( privateApis );\n\nexport default function Boolean< Item >( {\n\tfield,\n\tonChange,\n\tdata,\n\thideLabelFromVision,\n}: DataFormControlProps< Item > ) {\n\tconst { id, getValue, label } = field;\n\tconst [ customValidity, setCustomValidity ] =\n\t\tuseState<\n\t\t\tReact.ComponentProps<\n\t\t\t\ttypeof ValidatedToggleControl\n\t\t\t>[ 'customValidity' ]\n\t\t>( undefined );\n\n\treturn (\n\t\t<ValidatedToggleControl\n\t\t\trequired={ !! field.isValid.required }\n\t\t\tonValidate={ ( newValue: any ) => {\n\t\t\t\tconst message = field.isValid?.custom?.(\n\t\t\t\t\t{\n\t\t\t\t\t\t...data,\n\t\t\t\t\t\t[ id ]: newValue,\n\t\t\t\t\t},\n\t\t\t\t\tfield\n\t\t\t\t);\n\n\t\t\t\tif ( message ) {\n\t\t\t\t\tsetCustomValidity( {\n\t\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\t\tmessage,\n\t\t\t\t\t} );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tsetCustomValidity( undefined );\n\t\t\t} }\n\t\t\tcustomValidity={ customValidity }\n\t\t\thidden={ hideLabelFromVision }\n\t\t\t__nextHasNoMarginBottom\n\t\t\tlabel={ label }\n\t\t\tchecked={ getValue( { item: data } ) }\n\t\t\tonChange={ () =>\n\t\t\t\tonChange( { [ id ]: ! getValue( { item: data } ) } )\n\t\t\t}\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAMA,IAAAE,WAAA,GAAAF,OAAA;AAAwC,IAAAG,WAAA,GAAAH,OAAA;AAVxC;AACA;AACA;;AAIA;AACA;AACA;;AAIA,MAAM;EAAEI;AAAuB,CAAC,GAAG,IAAAC,kBAAM,EAAEC,uBAAY,CAAC;AAEzC,SAASC,OAAOA,CAAU;EACxCC,KAAK;EACLC,QAAQ;EACRC,IAAI;EACJC;AAC6B,CAAC,EAAG;EACjC,MAAM;IAAEC,EAAE;IAAEC,QAAQ;IAAEC;EAAM,CAAC,GAAGN,KAAK;EACrC,MAAM,CAAEO,cAAc,EAAEC,iBAAiB,CAAE,GAC1C,IAAAC,iBAAQ,EAILC,SAAU,CAAC;EAEf,oBACC,IAAAf,WAAA,CAAAgB,GAAA,EAACf,sBAAsB;IACtBgB,QAAQ,EAAG,CAAC,CAAEZ,KAAK,CAACa,OAAO,CAACD,QAAU;IACtCE,UAAU,EAAKC,QAAa,IAAM;MACjC,MAAMC,OAAO,GAAGhB,KAAK,CAACa,OAAO,EAAEI,MAAM,GACpC;QACC,GAAGf,IAAI;QACP,CAAEE,EAAE,GAAIW;MACT,CAAC,EACDf,KACD,CAAC;MAED,IAAKgB,OAAO,EAAG;QACdR,iBAAiB,CAAE;UAClBU,IAAI,EAAE,SAAS;UACfF;QACD,CAAE,CAAC;QACH;MACD;MAEAR,iBAAiB,CAAEE,SAAU,CAAC;IAC/B,CAAG;IACHH,cAAc,EAAGA,cAAgB;IACjCY,MAAM,EAAGhB,mBAAqB;IAC9BiB,uBAAuB;IACvBd,KAAK,EAAGA,KAAO;IACfe,OAAO,EAAGhB,QAAQ,CAAE;MAAEiB,IAAI,EAAEpB;IAAK,CAAE,CAAG;IACtCD,QAAQ,EAAGA,CAAA,KACVA,QAAQ,CAAE;MAAE,CAAEG,EAAE,GAAI,CAAEC,QAAQ,CAAE;QAAEiB,IAAI,EAAEpB;MAAK,CAAE;IAAE,CAAE;EACnD,CACD,CAAC;AAEJ","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["privateApis","useState","unlock","jsx","_jsx","ValidatedToggleControl","Boolean","field","onChange","data","hideLabelFromVision","id","getValue","label","customValidity","setCustomValidity","undefined","required","isValid","onValidate","newValue","message","custom","type","hidden","__nextHasNoMarginBottom","checked","item"],"sources":["@wordpress/dataviews/src/dataform-controls/boolean.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { privateApis } from '@wordpress/components';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { DataFormControlProps } from '../types';\nimport { unlock } from '../lock-unlock';\n\nconst { ValidatedToggleControl } = unlock( privateApis );\n\nexport default function Boolean< Item >( {\n\tfield,\n\tonChange,\n\tdata,\n\thideLabelFromVision,\n}: DataFormControlProps< Item > ) {\n\tconst { id, getValue, label } = field;\n\tconst [ customValidity, setCustomValidity ] =\n\t\tuseState<\n\t\t\tReact.ComponentProps<\n\t\t\t\ttypeof ValidatedToggleControl\n\t\t\t>[ 'customValidity' ]\n\t\t>( undefined );\n\n\treturn (\n\t\t<ValidatedToggleControl\n\t\t\trequired={ !! field.isValid.required }\n\t\t\tonValidate={ ( newValue: any ) => {\n\t\t\t\tconst message = field.isValid?.custom?.(\n\t\t\t\t\t{\n\t\t\t\t\t\t...data,\n\t\t\t\t\t\t[ id ]: newValue,\n\t\t\t\t\t},\n\t\t\t\t\tfield\n\t\t\t\t);\n\n\t\t\t\tif ( message ) {\n\t\t\t\t\tsetCustomValidity( {\n\t\t\t\t\t\ttype: 'invalid',\n\t\t\t\t\t\tmessage,\n\t\t\t\t\t} );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tsetCustomValidity( undefined );\n\t\t\t} }\n\t\t\tcustomValidity={ customValidity }\n\t\t\thidden={ hideLabelFromVision }\n\t\t\t__nextHasNoMarginBottom\n\t\t\tlabel={ label }\n\t\t\tchecked={ getValue( { item: data } ) }\n\t\t\tonChange={ () =>\n\t\t\t\tonChange( { [ id ]: ! getValue( { item: data } ) } )\n\t\t\t}\n\t\t/>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,WAAW,QAAQ,uBAAuB;AACnD,SAASC,QAAQ,QAAQ,oBAAoB;;AAE7C;AACA;AACA;;AAEA,SAASC,MAAM,QAAQ,gBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAExC,MAAM;EAAEC;AAAuB,CAAC,GAAGH,MAAM,CAAEF,WAAY,CAAC;AAExD,eAAe,SAASM,OAAOA,CAAU;EACxCC,KAAK;EACLC,QAAQ;EACRC,IAAI;EACJC;AAC6B,CAAC,EAAG;EACjC,MAAM;IAAEC,EAAE;IAAEC,QAAQ;IAAEC;EAAM,CAAC,GAAGN,KAAK;EACrC,MAAM,CAAEO,cAAc,EAAEC,iBAAiB,CAAE,GAC1Cd,QAAQ,CAILe,SAAU,CAAC;EAEf,oBACCZ,IAAA,CAACC,sBAAsB;IACtBY,QAAQ,EAAG,CAAC,CAAEV,KAAK,CAACW,OAAO,CAACD,QAAU;IACtCE,UAAU,EAAKC,QAAa,IAAM;MACjC,MAAMC,OAAO,GAAGd,KAAK,CAACW,OAAO,EAAEI,MAAM,GACpC;QACC,GAAGb,IAAI;QACP,CAAEE,EAAE,GAAIS;MACT,CAAC,EACDb,KACD,CAAC;MAED,IAAKc,OAAO,EAAG;QACdN,iBAAiB,CAAE;UAClBQ,IAAI,EAAE,SAAS;UACfF;QACD,CAAE,CAAC;QACH;MACD;MAEAN,iBAAiB,CAAEC,SAAU,CAAC;IAC/B,CAAG;IACHF,cAAc,EAAGA,cAAgB;IACjCU,MAAM,EAAGd,mBAAqB;IAC9Be,uBAAuB;IACvBZ,KAAK,EAAGA,KAAO;IACfa,OAAO,EAAGd,QAAQ,CAAE;MAAEe,IAAI,EAAElB;IAAK,CAAE,CAAG;IACtCD,QAAQ,EAAGA,CAAA,KACVA,QAAQ,CAAE;MAAE,CAAEG,EAAE,GAAI,CAAEC,QAAQ,CAAE;QAAEe,IAAI,EAAElB;MAAK,CAAE;IAAE,CAAE;EACnD,CACD,CAAC;AAEJ","ignoreList":[]}
@@ -1,63 +0,0 @@
1
- import DataForm from '../dataform/index';
2
- declare const meta: {
3
- readonly title: "DataViews/FieldTypes";
4
- readonly component: typeof DataForm;
5
- readonly argTypes: {
6
- readonly type: {
7
- readonly control: {
8
- readonly type: "select";
9
- };
10
- readonly description: "Chooses the default layout of each field. \"regular\" is the default layout.";
11
- readonly options: readonly ["default", "regular", "panel"];
12
- };
13
- readonly labelPosition: {
14
- readonly control: {
15
- readonly type: "select";
16
- };
17
- readonly description: "Chooses the label position of the layout.";
18
- readonly options: readonly ["default", "top", "side", "none"];
19
- };
20
- };
21
- };
22
- export default meta;
23
- export declare const All: ({ type, labelPosition, }: {
24
- type: "default" | "regular" | "panel";
25
- labelPosition: "default" | "top" | "side" | "none";
26
- }) => import("react").JSX.Element;
27
- export declare const Text: ({ type, labelPosition, }: {
28
- type: "default" | "regular" | "panel";
29
- labelPosition: "default" | "top" | "side" | "none";
30
- }) => import("react").JSX.Element;
31
- export declare const Integer: ({ type, labelPosition, }: {
32
- type: "default" | "regular" | "panel";
33
- labelPosition: "default" | "top" | "side" | "none";
34
- }) => import("react").JSX.Element;
35
- export declare const Boolean: ({ type, labelPosition, }: {
36
- type: "default" | "regular" | "panel";
37
- labelPosition: "default" | "top" | "side" | "none";
38
- }) => import("react").JSX.Element;
39
- export declare const DateTime: ({ type, labelPosition, }: {
40
- type: "default" | "regular" | "panel";
41
- labelPosition: "default" | "top" | "side" | "none";
42
- }) => import("react").JSX.Element;
43
- export declare const Date: ({ type, labelPosition, }: {
44
- type: "default" | "regular" | "panel";
45
- labelPosition: "default" | "top" | "side" | "none";
46
- }) => import("react").JSX.Element;
47
- export declare const Email: ({ type, labelPosition, }: {
48
- type: "default" | "regular" | "panel";
49
- labelPosition: "default" | "top" | "side" | "none";
50
- }) => import("react").JSX.Element;
51
- export declare const Media: ({ type, labelPosition, }: {
52
- type: "default" | "regular" | "panel";
53
- labelPosition: "default" | "top" | "side" | "none";
54
- }) => import("react").JSX.Element;
55
- export declare const Array: ({ type, labelPosition, }: {
56
- type: "default" | "regular" | "panel";
57
- labelPosition: "default" | "top" | "side" | "none";
58
- }) => import("react").JSX.Element;
59
- export declare const NoType: ({ type, labelPosition, }: {
60
- type: "default" | "regular" | "panel";
61
- labelPosition: "default" | "top" | "side" | "none";
62
- }) => import("react").JSX.Element;
63
- //# sourceMappingURL=index.story.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.story.d.ts","sourceRoot":"","sources":["../../../src/components/stories/index.story.tsx"],"names":[],"mappings":"AAaA,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AAUzC,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;CAgBA,CAAC;AACX,eAAe,IAAI,CAAC;AA6HpB,eAAO,MAAM,GAAG,6BAGb;IACF,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACtC,aAAa,EAAE,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;CACnD,gCAWA,CAAC;AAEF,eAAO,MAAM,IAAI,6BAGd;IACF,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACtC,aAAa,EAAE,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;CACnD,gCAaA,CAAC;AAEF,eAAO,MAAM,OAAO,6BAGjB;IACF,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACtC,aAAa,EAAE,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;CACnD,gCAaA,CAAC;AAEF,eAAO,MAAM,OAAO,6BAGjB;IACF,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACtC,aAAa,EAAE,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;CACnD,gCAaA,CAAC;AAEF,eAAO,MAAM,QAAQ,6BAGlB;IACF,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACtC,aAAa,EAAE,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;CACnD,gCAaA,CAAC;AAEF,eAAO,MAAM,IAAI,6BAGd;IACF,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACtC,aAAa,EAAE,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;CACnD,gCAaA,CAAC;AAEF,eAAO,MAAM,KAAK,6BAGf;IACF,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACtC,aAAa,EAAE,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;CACnD,gCAaA,CAAC;AAEF,eAAO,MAAM,KAAK,6BAGf;IACF,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACtC,aAAa,EAAE,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;CACnD,gCAaA,CAAC;AAEF,eAAO,MAAM,KAAK,6BAGf;IACF,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACtC,aAAa,EAAE,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;CACnD,gCAaA,CAAC;AAEF,eAAO,MAAM,MAAM,6BAGhB;IACF,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACtC,aAAa,EAAE,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;CACnD,gCAaA,CAAC"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Internal dependencies
3
- */
4
- import type { DataFormControlProps } from '../types';
5
- export default function Boolean<Item>({ field, onChange, data, hideLabelFromVision, }: DataFormControlProps<Item>): import("react").JSX.Element;
6
- //# sourceMappingURL=boolean.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"boolean.d.ts","sourceRoot":"","sources":["../../src/dataform-controls/boolean.tsx"],"names":[],"mappings":"AAMA;;GAEG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAKrD,MAAM,CAAC,OAAO,UAAU,OAAO,CAAE,IAAI,EAAI,EACxC,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,mBAAmB,GACnB,EAAE,oBAAoB,CAAE,IAAI,CAAE,+BAyC9B"}
@@ -1,372 +0,0 @@
1
- /**
2
- * WordPress dependencies
3
- */
4
- import { useState, useMemo } from '@wordpress/element';
5
- import {
6
- __experimentalHStack as HStack,
7
- __experimentalVStack as VStack,
8
- } from '@wordpress/components';
9
-
10
- /**
11
- * Internal dependencies
12
- */
13
- import DataViews from '../dataviews/index';
14
- import DataForm from '../dataform/index';
15
- import {
16
- actions,
17
- data,
18
- fields,
19
- type SpaceObject,
20
- } from '../dataviews/stories/fixtures';
21
- import { filterSortAndPaginate } from '../../filter-and-sort-data-view';
22
- import type { View, Form, Field } from '../../types';
23
-
24
- const meta = {
25
- title: 'DataViews/FieldTypes',
26
- component: DataForm,
27
- argTypes: {
28
- type: {
29
- control: { type: 'select' },
30
- description:
31
- 'Chooses the default layout of each field. "regular" is the default layout.',
32
- options: [ 'default', 'regular', 'panel' ],
33
- },
34
- labelPosition: {
35
- control: { type: 'select' },
36
- description: 'Chooses the label position of the layout.',
37
- options: [ 'default', 'top', 'side', 'none' ],
38
- },
39
- },
40
- } as const;
41
- export default meta;
42
-
43
- const defaultLayouts = {
44
- table: {},
45
- grid: {},
46
- list: {},
47
- };
48
-
49
- interface FieldTypeStoryProps {
50
- fields: Field< SpaceObject >[];
51
- titleField?: string;
52
- descriptionField?: string;
53
- mediaField?: string;
54
- type?: 'default' | 'regular' | 'panel';
55
- labelPosition?: 'default' | 'top' | 'side' | 'none';
56
- }
57
-
58
- const FieldTypeStory = ( {
59
- fields: storyFields,
60
- titleField,
61
- descriptionField,
62
- mediaField,
63
- type = 'default',
64
- labelPosition = 'default',
65
- }: FieldTypeStoryProps ) => {
66
- const form = useMemo(
67
- () => ( {
68
- type,
69
- labelPosition,
70
- fields: storyFields.map( ( field ) => field.id ),
71
- } ),
72
- [ type, labelPosition, storyFields ]
73
- ) as Form;
74
-
75
- const [ view, setView ] = useState< View >( {
76
- type: 'table' as const,
77
- search: '',
78
- page: 1,
79
- perPage: 10,
80
- layout: {},
81
- filters: [],
82
- titleField,
83
- descriptionField,
84
- mediaField,
85
- fields: storyFields
86
- .filter(
87
- ( field ) =>
88
- ! [ titleField, descriptionField, mediaField ].includes(
89
- field.id
90
- )
91
- )
92
- .map( ( field ) => field.id ),
93
- } );
94
-
95
- const [ selectedIds, setSelectedIds ] = useState< number[] >( [] );
96
- const [ modifiedData, setModifiedData ] = useState< SpaceObject[] >( data );
97
-
98
- const { data: shownData, paginationInfo } = useMemo( () => {
99
- return filterSortAndPaginate( modifiedData, view, storyFields );
100
- }, [ modifiedData, view, storyFields ] );
101
-
102
- const selectedItem =
103
- ( selectedIds.length === 1 &&
104
- shownData.find( ( item ) => item.id === selectedIds[ 0 ] ) ) ||
105
- null;
106
-
107
- return (
108
- <HStack alignment="stretch">
109
- <div style={ { flex: 2 } }>
110
- <DataViews
111
- getItemId={ ( item ) => item.id.toString() }
112
- data={ shownData }
113
- paginationInfo={ paginationInfo }
114
- view={ view }
115
- fields={ storyFields }
116
- onChangeView={ setView }
117
- actions={ actions }
118
- defaultLayouts={ defaultLayouts }
119
- selection={ selectedIds.map( ( id ) => id.toString() ) }
120
- onChangeSelection={ ( newSelection ) =>
121
- setSelectedIds(
122
- newSelection.map( ( id ) => parseInt( id, 10 ) )
123
- )
124
- }
125
- // eslint-disable-next-line no-alert
126
- onClickItem={ ( item ) => alert( 'clicked ' + item.title ) }
127
- />
128
- </div>
129
- { selectedItem ? (
130
- <VStack alignment="top">
131
- <DataForm
132
- data={ selectedItem }
133
- form={ form }
134
- fields={ storyFields }
135
- onChange={ ( updatedValues ) => {
136
- const updatedItem = {
137
- ...selectedItem,
138
- ...updatedValues,
139
- };
140
-
141
- setModifiedData(
142
- modifiedData.map( ( item ) =>
143
- item.id === selectedItem.id
144
- ? updatedItem
145
- : item
146
- )
147
- );
148
- } }
149
- />
150
- </VStack>
151
- ) : (
152
- <VStack alignment="center">
153
- <span
154
- style={ {
155
- color: '#888',
156
- } }
157
- >
158
- Please, select a single item.
159
- </span>
160
- </VStack>
161
- ) }
162
- </HStack>
163
- );
164
- };
165
-
166
- export const All = ( {
167
- type,
168
- labelPosition,
169
- }: {
170
- type: 'default' | 'regular' | 'panel';
171
- labelPosition: 'default' | 'top' | 'side' | 'none';
172
- } ) => {
173
- return (
174
- <FieldTypeStory
175
- fields={ fields }
176
- titleField="title"
177
- descriptionField="description"
178
- mediaField="image"
179
- type={ type }
180
- labelPosition={ labelPosition }
181
- />
182
- );
183
- };
184
-
185
- export const Text = ( {
186
- type,
187
- labelPosition,
188
- }: {
189
- type: 'default' | 'regular' | 'panel';
190
- labelPosition: 'default' | 'top' | 'side' | 'none';
191
- } ) => {
192
- const textFields = useMemo(
193
- () => fields.filter( ( field ) => field.type === 'text' ),
194
- []
195
- );
196
-
197
- return (
198
- <FieldTypeStory
199
- fields={ textFields }
200
- type={ type }
201
- labelPosition={ labelPosition }
202
- />
203
- );
204
- };
205
-
206
- export const Integer = ( {
207
- type,
208
- labelPosition,
209
- }: {
210
- type: 'default' | 'regular' | 'panel';
211
- labelPosition: 'default' | 'top' | 'side' | 'none';
212
- } ) => {
213
- const integerFields = useMemo(
214
- () => fields.filter( ( field ) => field.type === 'integer' ),
215
- []
216
- );
217
-
218
- return (
219
- <FieldTypeStory
220
- fields={ integerFields }
221
- type={ type }
222
- labelPosition={ labelPosition }
223
- />
224
- );
225
- };
226
-
227
- export const Boolean = ( {
228
- type,
229
- labelPosition,
230
- }: {
231
- type: 'default' | 'regular' | 'panel';
232
- labelPosition: 'default' | 'top' | 'side' | 'none';
233
- } ) => {
234
- const booleanFields = useMemo(
235
- () => fields.filter( ( field ) => field.type === 'boolean' ),
236
- []
237
- );
238
-
239
- return (
240
- <FieldTypeStory
241
- fields={ booleanFields }
242
- type={ type }
243
- labelPosition={ labelPosition }
244
- />
245
- );
246
- };
247
-
248
- export const DateTime = ( {
249
- type,
250
- labelPosition,
251
- }: {
252
- type: 'default' | 'regular' | 'panel';
253
- labelPosition: 'default' | 'top' | 'side' | 'none';
254
- } ) => {
255
- const dateTimeFields = useMemo(
256
- () => fields.filter( ( field ) => field.type === 'datetime' ),
257
- []
258
- );
259
-
260
- return (
261
- <FieldTypeStory
262
- fields={ dateTimeFields }
263
- type={ type }
264
- labelPosition={ labelPosition }
265
- />
266
- );
267
- };
268
-
269
- export const Date = ( {
270
- type,
271
- labelPosition,
272
- }: {
273
- type: 'default' | 'regular' | 'panel';
274
- labelPosition: 'default' | 'top' | 'side' | 'none';
275
- } ) => {
276
- const dateFields = useMemo(
277
- () => fields.filter( ( field ) => field.type === 'date' ),
278
- []
279
- );
280
-
281
- return (
282
- <FieldTypeStory
283
- fields={ dateFields }
284
- type={ type }
285
- labelPosition={ labelPosition }
286
- />
287
- );
288
- };
289
-
290
- export const Email = ( {
291
- type,
292
- labelPosition,
293
- }: {
294
- type: 'default' | 'regular' | 'panel';
295
- labelPosition: 'default' | 'top' | 'side' | 'none';
296
- } ) => {
297
- const emailFields = useMemo(
298
- () => fields.filter( ( field ) => field.type === 'email' ),
299
- []
300
- );
301
-
302
- return (
303
- <FieldTypeStory
304
- fields={ emailFields }
305
- type={ type }
306
- labelPosition={ labelPosition }
307
- />
308
- );
309
- };
310
-
311
- export const Media = ( {
312
- type,
313
- labelPosition,
314
- }: {
315
- type: 'default' | 'regular' | 'panel';
316
- labelPosition: 'default' | 'top' | 'side' | 'none';
317
- } ) => {
318
- const mediaFields = useMemo(
319
- () => fields.filter( ( field ) => field.type === 'media' ),
320
- []
321
- );
322
-
323
- return (
324
- <FieldTypeStory
325
- fields={ mediaFields }
326
- type={ type }
327
- labelPosition={ labelPosition }
328
- />
329
- );
330
- };
331
-
332
- export const Array = ( {
333
- type,
334
- labelPosition,
335
- }: {
336
- type: 'default' | 'regular' | 'panel';
337
- labelPosition: 'default' | 'top' | 'side' | 'none';
338
- } ) => {
339
- const arrayTextFields = useMemo(
340
- () => fields.filter( ( field ) => field.type === 'array' ),
341
- []
342
- );
343
-
344
- return (
345
- <FieldTypeStory
346
- fields={ arrayTextFields }
347
- type={ type }
348
- labelPosition={ labelPosition }
349
- />
350
- );
351
- };
352
-
353
- export const NoType = ( {
354
- type,
355
- labelPosition,
356
- }: {
357
- type: 'default' | 'regular' | 'panel';
358
- labelPosition: 'default' | 'top' | 'side' | 'none';
359
- } ) => {
360
- const noTypeFields = useMemo(
361
- () => fields.filter( ( field ) => field.type === undefined ),
362
- []
363
- );
364
-
365
- return (
366
- <FieldTypeStory
367
- fields={ noTypeFields }
368
- type={ type }
369
- labelPosition={ labelPosition }
370
- />
371
- );
372
- };