@wordpress/dataviews 11.0.0 → 11.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 (303) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +140 -93
  3. package/build/components/dataviews-filters/filter.js +25 -267
  4. package/build/components/dataviews-filters/filter.js.map +2 -2
  5. package/build/components/dataviews-filters/input-widget.js +1 -4
  6. package/build/components/dataviews-filters/input-widget.js.map +2 -2
  7. package/build/components/dataviews-filters/use-filters.js +3 -3
  8. package/build/components/dataviews-filters/use-filters.js.map +2 -2
  9. package/build/constants.js +5 -142
  10. package/build/constants.js.map +2 -2
  11. package/build/dataform-controls/number.js +2 -1
  12. package/build/dataform-controls/number.js.map +2 -2
  13. package/build/dataform-controls/textarea.js +3 -1
  14. package/build/dataform-controls/textarea.js.map +2 -2
  15. package/build/dataform-controls/utils/get-custom-validity.js +8 -0
  16. package/build/dataform-controls/utils/get-custom-validity.js.map +2 -2
  17. package/build/dataform-controls/utils/validated-input.js +4 -2
  18. package/build/dataform-controls/utils/validated-input.js.map +2 -2
  19. package/build/dataform-controls/utils/validated-number.js +4 -2
  20. package/build/dataform-controls/utils/validated-number.js.map +2 -2
  21. package/build/dataform-layouts/panel/modal.js +14 -5
  22. package/build/dataform-layouts/panel/modal.js.map +2 -2
  23. package/build/dataviews-layouts/grid/composite-grid.js +39 -37
  24. package/build/dataviews-layouts/grid/composite-grid.js.map +3 -3
  25. package/build/dataviews-layouts/table/index.js +8 -3
  26. package/build/dataviews-layouts/table/index.js.map +2 -2
  27. package/build/field-types/array.js +27 -14
  28. package/build/field-types/array.js.map +3 -3
  29. package/build/field-types/boolean.js +13 -10
  30. package/build/field-types/boolean.js.map +3 -3
  31. package/build/field-types/color.js +14 -11
  32. package/build/field-types/color.js.map +3 -3
  33. package/build/field-types/date.js +11 -8
  34. package/build/field-types/date.js.map +3 -3
  35. package/build/field-types/datetime.js +7 -5
  36. package/build/field-types/datetime.js.map +3 -3
  37. package/build/field-types/email.js +20 -11
  38. package/build/field-types/email.js.map +3 -3
  39. package/build/field-types/index.js +12 -14
  40. package/build/field-types/index.js.map +3 -3
  41. package/build/field-types/integer.js +63 -14
  42. package/build/field-types/integer.js.map +3 -3
  43. package/build/field-types/media.js +5 -5
  44. package/build/field-types/media.js.map +2 -2
  45. package/build/field-types/no-type.js +9 -6
  46. package/build/field-types/no-type.js.map +3 -3
  47. package/build/field-types/number.js +51 -15
  48. package/build/field-types/number.js.map +3 -3
  49. package/build/field-types/password.js +13 -5
  50. package/build/field-types/password.js.map +3 -3
  51. package/build/field-types/telephone.js +13 -5
  52. package/build/field-types/telephone.js.map +3 -3
  53. package/build/field-types/text.js +13 -5
  54. package/build/field-types/text.js.map +3 -3
  55. package/build/field-types/url.js +13 -5
  56. package/build/field-types/url.js.map +3 -3
  57. package/build/field-types/utils/get-is-valid.js +89 -0
  58. package/build/field-types/utils/get-is-valid.js.map +7 -0
  59. package/build/field-types/utils/is-valid-elements.js +35 -0
  60. package/build/field-types/utils/is-valid-elements.js.map +7 -0
  61. package/build/field-types/utils/is-valid-max-length.js +36 -0
  62. package/build/field-types/utils/is-valid-max-length.js.map +7 -0
  63. package/build/field-types/utils/is-valid-max.js +36 -0
  64. package/build/field-types/utils/is-valid-max.js.map +7 -0
  65. package/build/field-types/utils/is-valid-min-length.js +36 -0
  66. package/build/field-types/utils/is-valid-min-length.js.map +7 -0
  67. package/build/field-types/utils/is-valid-min.js +36 -0
  68. package/build/field-types/utils/is-valid-min.js.map +7 -0
  69. package/build/field-types/utils/is-valid-pattern.js +41 -0
  70. package/build/field-types/utils/is-valid-pattern.js.map +7 -0
  71. package/build/field-types/utils/is-valid-required-for-array.js +32 -0
  72. package/build/field-types/utils/is-valid-required-for-array.js.map +7 -0
  73. package/build/field-types/utils/is-valid-required-for-bool.js +30 -0
  74. package/build/field-types/utils/is-valid-required-for-bool.js.map +7 -0
  75. package/build/field-types/utils/is-valid-required.js +30 -0
  76. package/build/field-types/utils/is-valid-required.js.map +7 -0
  77. package/build/hooks/use-form-validity.js +52 -102
  78. package/build/hooks/use-form-validity.js.map +2 -2
  79. package/build/types/field-api.js.map +1 -1
  80. package/build/types/private.js.map +1 -1
  81. package/build/utils/filter-sort-and-paginate.js +5 -0
  82. package/build/utils/filter-sort-and-paginate.js.map +3 -3
  83. package/build/utils/operators.js +399 -0
  84. package/build/utils/operators.js.map +7 -0
  85. package/build-module/components/dataviews-filters/filter.js +26 -292
  86. package/build-module/components/dataviews-filters/filter.js.map +2 -2
  87. package/build-module/components/dataviews-filters/input-widget.js +1 -4
  88. package/build-module/components/dataviews-filters/input-widget.js.map +2 -2
  89. package/build-module/components/dataviews-filters/use-filters.js +6 -3
  90. package/build-module/components/dataviews-filters/use-filters.js.map +2 -2
  91. package/build-module/constants.js +5 -139
  92. package/build-module/constants.js.map +2 -2
  93. package/build-module/dataform-controls/number.js +2 -1
  94. package/build-module/dataform-controls/number.js.map +2 -2
  95. package/build-module/dataform-controls/textarea.js +3 -1
  96. package/build-module/dataform-controls/textarea.js.map +2 -2
  97. package/build-module/dataform-controls/utils/get-custom-validity.js +8 -0
  98. package/build-module/dataform-controls/utils/get-custom-validity.js.map +2 -2
  99. package/build-module/dataform-controls/utils/validated-input.js +4 -2
  100. package/build-module/dataform-controls/utils/validated-input.js.map +2 -2
  101. package/build-module/dataform-controls/utils/validated-number.js +4 -2
  102. package/build-module/dataform-controls/utils/validated-number.js.map +2 -2
  103. package/build-module/dataform-layouts/panel/modal.js +14 -5
  104. package/build-module/dataform-layouts/panel/modal.js.map +2 -2
  105. package/build-module/dataviews-layouts/grid/composite-grid.js +40 -38
  106. package/build-module/dataviews-layouts/grid/composite-grid.js.map +3 -3
  107. package/build-module/dataviews-layouts/table/index.js +8 -3
  108. package/build-module/dataviews-layouts/table/index.js.map +2 -2
  109. package/build-module/field-types/array.js +17 -14
  110. package/build-module/field-types/array.js.map +2 -2
  111. package/build-module/field-types/boolean.js +13 -10
  112. package/build-module/field-types/boolean.js.map +2 -2
  113. package/build-module/field-types/color.js +14 -11
  114. package/build-module/field-types/color.js.map +2 -2
  115. package/build-module/field-types/date.js +11 -8
  116. package/build-module/field-types/date.js.map +2 -2
  117. package/build-module/field-types/datetime.js +7 -5
  118. package/build-module/field-types/datetime.js.map +2 -2
  119. package/build-module/field-types/email.js +20 -11
  120. package/build-module/field-types/email.js.map +2 -2
  121. package/build-module/field-types/index.js +12 -14
  122. package/build-module/field-types/index.js.map +2 -2
  123. package/build-module/field-types/integer.js +58 -13
  124. package/build-module/field-types/integer.js.map +2 -2
  125. package/build-module/field-types/media.js +5 -5
  126. package/build-module/field-types/media.js.map +2 -2
  127. package/build-module/field-types/no-type.js +10 -7
  128. package/build-module/field-types/no-type.js.map +2 -2
  129. package/build-module/field-types/number.js +47 -15
  130. package/build-module/field-types/number.js.map +2 -2
  131. package/build-module/field-types/password.js +13 -5
  132. package/build-module/field-types/password.js.map +2 -2
  133. package/build-module/field-types/telephone.js +13 -5
  134. package/build-module/field-types/telephone.js.map +2 -2
  135. package/build-module/field-types/text.js +13 -5
  136. package/build-module/field-types/text.js.map +2 -2
  137. package/build-module/field-types/url.js +13 -5
  138. package/build-module/field-types/url.js.map +2 -2
  139. package/build-module/field-types/utils/get-is-valid.js +68 -0
  140. package/build-module/field-types/utils/get-is-valid.js.map +7 -0
  141. package/build-module/field-types/utils/is-valid-elements.js +14 -0
  142. package/build-module/field-types/utils/is-valid-elements.js.map +7 -0
  143. package/build-module/field-types/utils/is-valid-max-length.js +15 -0
  144. package/build-module/field-types/utils/is-valid-max-length.js.map +7 -0
  145. package/build-module/field-types/utils/is-valid-max.js +15 -0
  146. package/build-module/field-types/utils/is-valid-max.js.map +7 -0
  147. package/build-module/field-types/utils/is-valid-min-length.js +15 -0
  148. package/build-module/field-types/utils/is-valid-min-length.js.map +7 -0
  149. package/build-module/field-types/utils/is-valid-min.js +15 -0
  150. package/build-module/field-types/utils/is-valid-min.js.map +7 -0
  151. package/build-module/field-types/utils/is-valid-pattern.js +20 -0
  152. package/build-module/field-types/utils/is-valid-pattern.js.map +7 -0
  153. package/build-module/field-types/utils/is-valid-required-for-array.js +11 -0
  154. package/build-module/field-types/utils/is-valid-required-for-array.js.map +7 -0
  155. package/build-module/field-types/utils/is-valid-required-for-bool.js +9 -0
  156. package/build-module/field-types/utils/is-valid-required-for-bool.js.map +7 -0
  157. package/build-module/field-types/utils/is-valid-required.js +9 -0
  158. package/build-module/field-types/utils/is-valid-required.js.map +7 -0
  159. package/build-module/hooks/use-form-validity.js +52 -102
  160. package/build-module/hooks/use-form-validity.js.map +2 -2
  161. package/build-module/utils/filter-sort-and-paginate.js +5 -0
  162. package/build-module/utils/filter-sort-and-paginate.js.map +2 -2
  163. package/build-module/utils/operators.js +394 -0
  164. package/build-module/utils/operators.js.map +7 -0
  165. package/build-style/style-rtl.css +13 -80
  166. package/build-style/style.css +13 -80
  167. package/build-types/components/dataviews-filters/filter.d.ts.map +1 -1
  168. package/build-types/components/dataviews-filters/input-widget.d.ts.map +1 -1
  169. package/build-types/components/dataviews-filters/use-filters.d.ts.map +1 -1
  170. package/build-types/constants.d.ts +6 -12
  171. package/build-types/constants.d.ts.map +1 -1
  172. package/build-types/dataform-controls/number.d.ts.map +1 -1
  173. package/build-types/dataform-controls/textarea.d.ts.map +1 -1
  174. package/build-types/dataform-controls/utils/get-custom-validity.d.ts +2 -2
  175. package/build-types/dataform-controls/utils/get-custom-validity.d.ts.map +1 -1
  176. package/build-types/dataform-controls/utils/validated-input.d.ts.map +1 -1
  177. package/build-types/dataform-controls/utils/validated-number.d.ts.map +1 -1
  178. package/build-types/dataform-layouts/panel/modal.d.ts.map +1 -1
  179. package/build-types/dataviews-layouts/grid/composite-grid.d.ts.map +1 -1
  180. package/build-types/dataviews-layouts/table/index.d.ts.map +1 -1
  181. package/build-types/field-types/array.d.ts +9 -2
  182. package/build-types/field-types/array.d.ts.map +1 -1
  183. package/build-types/field-types/boolean.d.ts +9 -2
  184. package/build-types/field-types/boolean.d.ts.map +1 -1
  185. package/build-types/field-types/color.d.ts +9 -2
  186. package/build-types/field-types/color.d.ts.map +1 -1
  187. package/build-types/field-types/date.d.ts +6 -4
  188. package/build-types/field-types/date.d.ts.map +1 -1
  189. package/build-types/field-types/datetime.d.ts +6 -4
  190. package/build-types/field-types/datetime.d.ts.map +1 -1
  191. package/build-types/field-types/email.d.ts +15 -2
  192. package/build-types/field-types/email.d.ts.map +1 -1
  193. package/build-types/field-types/index.d.ts.map +1 -1
  194. package/build-types/field-types/integer.d.ts +17 -4
  195. package/build-types/field-types/integer.d.ts.map +1 -1
  196. package/build-types/field-types/media.d.ts +1 -4
  197. package/build-types/field-types/media.d.ts.map +1 -1
  198. package/build-types/field-types/no-type.d.ts +6 -4
  199. package/build-types/field-types/no-type.d.ts.map +1 -1
  200. package/build-types/field-types/number.d.ts +17 -4
  201. package/build-types/field-types/number.d.ts.map +1 -1
  202. package/build-types/field-types/password.d.ts +12 -4
  203. package/build-types/field-types/password.d.ts.map +1 -1
  204. package/build-types/field-types/telephone.d.ts +12 -4
  205. package/build-types/field-types/telephone.d.ts.map +1 -1
  206. package/build-types/field-types/text.d.ts +12 -4
  207. package/build-types/field-types/text.d.ts.map +1 -1
  208. package/build-types/field-types/url.d.ts +12 -4
  209. package/build-types/field-types/url.d.ts.map +1 -1
  210. package/build-types/field-types/utils/get-is-valid.d.ts +7 -0
  211. package/build-types/field-types/utils/get-is-valid.d.ts.map +1 -0
  212. package/build-types/field-types/utils/is-valid-elements.d.ts +6 -0
  213. package/build-types/field-types/utils/is-valid-elements.d.ts.map +1 -0
  214. package/build-types/field-types/utils/is-valid-max-length.d.ts +6 -0
  215. package/build-types/field-types/utils/is-valid-max-length.d.ts.map +1 -0
  216. package/build-types/field-types/utils/is-valid-max.d.ts +6 -0
  217. package/build-types/field-types/utils/is-valid-max.d.ts.map +1 -0
  218. package/build-types/field-types/utils/is-valid-min-length.d.ts +6 -0
  219. package/build-types/field-types/utils/is-valid-min-length.d.ts.map +1 -0
  220. package/build-types/field-types/utils/is-valid-min.d.ts +6 -0
  221. package/build-types/field-types/utils/is-valid-min.d.ts.map +1 -0
  222. package/build-types/field-types/utils/is-valid-pattern.d.ts +6 -0
  223. package/build-types/field-types/utils/is-valid-pattern.d.ts.map +1 -0
  224. package/build-types/field-types/utils/is-valid-required-for-array.d.ts +6 -0
  225. package/build-types/field-types/utils/is-valid-required-for-array.d.ts.map +1 -0
  226. package/build-types/field-types/utils/is-valid-required-for-bool.d.ts +6 -0
  227. package/build-types/field-types/utils/is-valid-required-for-bool.d.ts.map +1 -0
  228. package/build-types/field-types/utils/is-valid-required.d.ts +6 -0
  229. package/build-types/field-types/utils/is-valid-required.d.ts.map +1 -0
  230. package/build-types/hooks/use-form-validity.d.ts.map +1 -1
  231. package/build-types/stories/dataform.story.d.ts +9 -1
  232. package/build-types/stories/dataform.story.d.ts.map +1 -1
  233. package/build-types/stories/dataviews-picker.story.d.ts.map +1 -1
  234. package/build-types/stories/dataviews.story.d.ts +27 -2
  235. package/build-types/stories/dataviews.story.d.ts.map +1 -1
  236. package/build-types/stories/field-types.story.d.ts +39 -2
  237. package/build-types/stories/field-types.story.d.ts.map +1 -1
  238. package/build-types/types/field-api.d.ts +72 -4
  239. package/build-types/types/field-api.d.ts.map +1 -1
  240. package/build-types/types/private.d.ts +13 -3
  241. package/build-types/types/private.d.ts.map +1 -1
  242. package/build-types/utils/filter-sort-and-paginate.d.ts.map +1 -1
  243. package/build-types/utils/operators.d.ts +16 -0
  244. package/build-types/utils/operators.d.ts.map +1 -0
  245. package/build-wp/index.js +1548 -1452
  246. package/package.json +17 -16
  247. package/src/components/dataviews/style.scss +3 -28
  248. package/src/components/dataviews-filters/filter.tsx +34 -321
  249. package/src/components/dataviews-filters/input-widget.tsx +7 -5
  250. package/src/components/dataviews-filters/use-filters.ts +6 -3
  251. package/src/components/dataviews-footer/style.scss +1 -7
  252. package/src/constants.ts +6 -140
  253. package/src/dataform-controls/number.tsx +3 -3
  254. package/src/dataform-controls/textarea.tsx +7 -1
  255. package/src/dataform-controls/utils/get-custom-validity.ts +10 -2
  256. package/src/dataform-controls/utils/validated-input.tsx +8 -2
  257. package/src/dataform-controls/utils/validated-number.tsx +3 -1
  258. package/src/dataform-layouts/panel/modal.tsx +14 -5
  259. package/src/dataviews-layouts/activity/style.scss +1 -1
  260. package/src/dataviews-layouts/grid/composite-grid.tsx +64 -57
  261. package/src/dataviews-layouts/grid/style.scss +3 -12
  262. package/src/dataviews-layouts/table/index.tsx +9 -3
  263. package/src/dataviews-layouts/table/style.scss +4 -15
  264. package/src/dataviews-layouts/utils/grid-items.scss +1 -9
  265. package/src/field-types/array.tsx +26 -19
  266. package/src/field-types/boolean.tsx +22 -15
  267. package/src/field-types/color.tsx +22 -15
  268. package/src/field-types/date.tsx +14 -11
  269. package/src/field-types/datetime.tsx +6 -4
  270. package/src/field-types/email.tsx +24 -15
  271. package/src/field-types/index.tsx +12 -14
  272. package/src/field-types/integer.tsx +83 -17
  273. package/src/field-types/media.tsx +4 -4
  274. package/src/field-types/no-type.tsx +9 -6
  275. package/src/field-types/number.tsx +82 -16
  276. package/src/field-types/password.tsx +12 -4
  277. package/src/field-types/telephone.tsx +12 -4
  278. package/src/field-types/text.tsx +12 -4
  279. package/src/field-types/url.tsx +12 -4
  280. package/src/field-types/utils/get-is-valid.ts +103 -0
  281. package/src/field-types/utils/is-valid-elements.ts +20 -0
  282. package/src/field-types/utils/is-valid-max-length.ts +23 -0
  283. package/src/field-types/utils/is-valid-max.ts +23 -0
  284. package/src/field-types/utils/is-valid-min-length.ts +23 -0
  285. package/src/field-types/utils/is-valid-min.ts +23 -0
  286. package/src/field-types/utils/is-valid-pattern.ts +29 -0
  287. package/src/field-types/utils/is-valid-required-for-array.ts +18 -0
  288. package/src/field-types/utils/is-valid-required-for-bool.ts +13 -0
  289. package/src/field-types/utils/is-valid-required.ts +13 -0
  290. package/src/hooks/use-form-validity.ts +78 -156
  291. package/src/stories/dataform.story.tsx +126 -30
  292. package/src/stories/dataviews-picker.story.tsx +27 -17
  293. package/src/stories/dataviews.story.tsx +79 -30
  294. package/src/stories/field-types.story.tsx +86 -4
  295. package/src/test/filter-sort-and-paginate.js +2 -1
  296. package/src/test/normalize-fields.ts +87 -11
  297. package/src/test/use-form-validity.ts +796 -31
  298. package/src/types/field-api.ts +90 -4
  299. package/src/types/private.ts +26 -8
  300. package/src/utils/filter-sort-and-paginate.ts +5 -0
  301. package/src/utils/operators.tsx +448 -0
  302. package/tsconfig.json +1 -0
  303. package/tsconfig.tsbuildinfo +1 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/field-types/date.tsx"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { dateI18n, getDate, getSettings } from '@wordpress/date';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tDataViewRenderFieldProps,\n\tField,\n\tFormatDate,\n\tSortDirection,\n} from '../types';\nimport type { FieldType } from '../types/private';\nimport RenderFromElements from './utils/render-from-elements';\nimport {\n\tOPERATOR_ON,\n\tOPERATOR_NOT_ON,\n\tOPERATOR_BEFORE,\n\tOPERATOR_AFTER,\n\tOPERATOR_BEFORE_INC,\n\tOPERATOR_AFTER_INC,\n\tOPERATOR_IN_THE_PAST,\n\tOPERATOR_OVER,\n\tOPERATOR_BETWEEN,\n\tDAYS_OF_WEEK,\n} from '../constants';\n\nfunction getFormat< Item >( field: Field< Item > ): Required< FormatDate > {\n\treturn {\n\t\tdate:\n\t\t\tfield.format?.date !== undefined &&\n\t\t\ttypeof field.format.date === 'string'\n\t\t\t\t? field.format.date\n\t\t\t\t: getSettings().formats.date,\n\t\tweekStartsOn:\n\t\t\tfield.format?.weekStartsOn !== undefined &&\n\t\t\tDAYS_OF_WEEK.includes( field.format?.weekStartsOn )\n\t\t\t\t? field.format.weekStartsOn\n\t\t\t\t: getSettings().l10n.startOfWeek,\n\t};\n}\n\nfunction render( { item, field }: DataViewRenderFieldProps< any > ) {\n\tif ( field.hasElements ) {\n\t\treturn <RenderFromElements item={ item } field={ field } />;\n\t}\n\n\tconst value = field.getValue( { item } );\n\tif ( ! value ) {\n\t\treturn '';\n\t}\n\n\t// If the field type is date, we've already normalized the format,\n\t// and so it's safe to tell TypeScript to trust us (\"as Required<Format>\").\n\t//\n\t// There're no runtime paths where this render function is called with a non-date field,\n\t// but TypeScript is unable to infer this, hence the type assertion.\n\tlet format: Required< FormatDate >;\n\tif ( field.type !== 'date' ) {\n\t\tformat = getFormat( field as Field< any > );\n\t} else {\n\t\tformat = field.format as Required< FormatDate >;\n\t}\n\n\treturn dateI18n( format.date, getDate( value ) );\n}\n\nconst sort = ( a: any, b: any, direction: SortDirection ) => {\n\tconst timeA = new Date( a ).getTime();\n\tconst timeB = new Date( b ).getTime();\n\n\treturn direction === 'asc' ? timeA - timeB : timeB - timeA;\n};\n\nexport default {\n\ttype: 'date',\n\trender,\n\tEdit: 'date',\n\tsort,\n\tisValid: {\n\t\telements: true,\n\t\tcustom: () => null,\n\t},\n\tenableSorting: true,\n\tenableGlobalSearch: false,\n\tdefaultOperators: [\n\t\tOPERATOR_ON,\n\t\tOPERATOR_NOT_ON,\n\t\tOPERATOR_BEFORE,\n\t\tOPERATOR_AFTER,\n\t\tOPERATOR_BEFORE_INC,\n\t\tOPERATOR_AFTER_INC,\n\t\tOPERATOR_IN_THE_PAST,\n\t\tOPERATOR_OVER,\n\t\tOPERATOR_BETWEEN,\n\t],\n\tvalidOperators: [\n\t\tOPERATOR_ON,\n\t\tOPERATOR_NOT_ON,\n\t\tOPERATOR_BEFORE,\n\t\tOPERATOR_AFTER,\n\t\tOPERATOR_BEFORE_INC,\n\t\tOPERATOR_AFTER_INC,\n\t\tOPERATOR_IN_THE_PAST,\n\t\tOPERATOR_OVER,\n\t\tOPERATOR_BETWEEN,\n\t],\n\tgetFormat,\n} satisfies FieldType< any >;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAA+C;AAY/C,kCAA+B;AAC/B,uBAWO;AAmBE;AAjBT,SAAS,UAAmB,OAA+C;AAC1E,SAAO;AAAA,IACN,MACC,MAAM,QAAQ,SAAS,UACvB,OAAO,MAAM,OAAO,SAAS,WAC1B,MAAM,OAAO,WACb,yBAAY,EAAE,QAAQ;AAAA,IAC1B,cACC,MAAM,QAAQ,iBAAiB,UAC/B,8BAAa,SAAU,MAAM,QAAQ,YAAa,IAC/C,MAAM,OAAO,mBACb,yBAAY,EAAE,KAAK;AAAA,EACxB;AACD;AAEA,SAAS,OAAQ,EAAE,MAAM,MAAM,GAAqC;AACnE,MAAK,MAAM,aAAc;AACxB,WAAO,4CAAC,4BAAAA,SAAA,EAAmB,MAAc,OAAgB;AAAA,EAC1D;AAEA,QAAM,QAAQ,MAAM,SAAU,EAAE,KAAK,CAAE;AACvC,MAAK,CAAE,OAAQ;AACd,WAAO;AAAA,EACR;AAOA,MAAI;AACJ,MAAK,MAAM,SAAS,QAAS;AAC5B,aAAS,UAAW,KAAsB;AAAA,EAC3C,OAAO;AACN,aAAS,MAAM;AAAA,EAChB;AAEA,aAAO,sBAAU,OAAO,UAAM,qBAAS,KAAM,CAAE;AAChD;AAEA,IAAM,OAAO,CAAE,GAAQ,GAAQ,cAA8B;AAC5D,QAAM,QAAQ,IAAI,KAAM,CAAE,EAAE,QAAQ;AACpC,QAAM,QAAQ,IAAI,KAAM,CAAE,EAAE,QAAQ;AAEpC,SAAO,cAAc,QAAQ,QAAQ,QAAQ,QAAQ;AACtD;AAEA,IAAO,eAAQ;AAAA,EACd,MAAM;AAAA,EACN;AAAA,EACA,MAAM;AAAA,EACN;AAAA,EACA,SAAS;AAAA,IACR,UAAU;AAAA,IACV,QAAQ,MAAM;AAAA,EACf;AAAA,EACA,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,gBAAgB;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA;AACD;",
6
- "names": ["RenderFromElements"]
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { dateI18n, getDate, getSettings } from '@wordpress/date';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tDataViewRenderFieldProps,\n\tField,\n\tFormatDate,\n\tSortDirection,\n} from '../types';\nimport type { FieldType } from '../types/private';\nimport RenderFromElements from './utils/render-from-elements';\nimport isValidElements from './utils/is-valid-elements';\nimport {\n\tOPERATOR_ON,\n\tOPERATOR_NOT_ON,\n\tOPERATOR_BEFORE,\n\tOPERATOR_AFTER,\n\tOPERATOR_BEFORE_INC,\n\tOPERATOR_AFTER_INC,\n\tOPERATOR_IN_THE_PAST,\n\tOPERATOR_OVER,\n\tOPERATOR_BETWEEN,\n\tDAYS_OF_WEEK,\n} from '../constants';\nimport isValidRequired from './utils/is-valid-required';\n\nfunction getFormat< Item >( field: Field< Item > ): Required< FormatDate > {\n\tconst fieldFormat = field.format as FormatDate | undefined;\n\treturn {\n\t\tdate:\n\t\t\tfieldFormat?.date !== undefined &&\n\t\t\ttypeof fieldFormat.date === 'string'\n\t\t\t\t? fieldFormat.date\n\t\t\t\t: getSettings().formats.date,\n\t\tweekStartsOn:\n\t\t\tfieldFormat?.weekStartsOn !== undefined &&\n\t\t\tDAYS_OF_WEEK.includes( fieldFormat?.weekStartsOn )\n\t\t\t\t? fieldFormat.weekStartsOn\n\t\t\t\t: getSettings().l10n.startOfWeek,\n\t};\n}\n\nfunction render( { item, field }: DataViewRenderFieldProps< any > ) {\n\tif ( field.hasElements ) {\n\t\treturn <RenderFromElements item={ item } field={ field } />;\n\t}\n\n\tconst value = field.getValue( { item } );\n\tif ( ! value ) {\n\t\treturn '';\n\t}\n\n\t// If the field type is date, we've already normalized the format,\n\t// and so it's safe to tell TypeScript to trust us (\"as Required<Format>\").\n\t//\n\t// There're no runtime paths where this render function is called with a non-date field,\n\t// but TypeScript is unable to infer this, hence the type assertion.\n\tlet format: Required< FormatDate >;\n\tif ( field.type !== 'date' ) {\n\t\tformat = getFormat( {} as Field< any > );\n\t} else {\n\t\tformat = field.format as Required< FormatDate >;\n\t}\n\n\treturn dateI18n( format.date, getDate( value ) );\n}\n\nconst sort = ( a: any, b: any, direction: SortDirection ) => {\n\tconst timeA = new Date( a ).getTime();\n\tconst timeB = new Date( b ).getTime();\n\n\treturn direction === 'asc' ? timeA - timeB : timeB - timeA;\n};\n\nexport default {\n\ttype: 'date',\n\trender,\n\tEdit: 'date',\n\tsort,\n\tenableSorting: true,\n\tenableGlobalSearch: false,\n\tdefaultOperators: [\n\t\tOPERATOR_ON,\n\t\tOPERATOR_NOT_ON,\n\t\tOPERATOR_BEFORE,\n\t\tOPERATOR_AFTER,\n\t\tOPERATOR_BEFORE_INC,\n\t\tOPERATOR_AFTER_INC,\n\t\tOPERATOR_IN_THE_PAST,\n\t\tOPERATOR_OVER,\n\t\tOPERATOR_BETWEEN,\n\t],\n\tvalidOperators: [\n\t\tOPERATOR_ON,\n\t\tOPERATOR_NOT_ON,\n\t\tOPERATOR_BEFORE,\n\t\tOPERATOR_AFTER,\n\t\tOPERATOR_BEFORE_INC,\n\t\tOPERATOR_AFTER_INC,\n\t\tOPERATOR_IN_THE_PAST,\n\t\tOPERATOR_OVER,\n\t\tOPERATOR_BETWEEN,\n\t],\n\tgetFormat,\n\tvalidate: {\n\t\trequired: isValidRequired,\n\t\telements: isValidElements,\n\t},\n} satisfies FieldType< any >;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAA+C;AAY/C,kCAA+B;AAC/B,+BAA4B;AAC5B,uBAWO;AACP,+BAA4B;AAoBnB;AAlBT,SAAS,UAAmB,OAA+C;AAC1E,QAAM,cAAc,MAAM;AAC1B,SAAO;AAAA,IACN,MACC,aAAa,SAAS,UACtB,OAAO,YAAY,SAAS,WACzB,YAAY,WACZ,yBAAY,EAAE,QAAQ;AAAA,IAC1B,cACC,aAAa,iBAAiB,UAC9B,8BAAa,SAAU,aAAa,YAAa,IAC9C,YAAY,mBACZ,yBAAY,EAAE,KAAK;AAAA,EACxB;AACD;AAEA,SAAS,OAAQ,EAAE,MAAM,MAAM,GAAqC;AACnE,MAAK,MAAM,aAAc;AACxB,WAAO,4CAAC,4BAAAA,SAAA,EAAmB,MAAc,OAAgB;AAAA,EAC1D;AAEA,QAAM,QAAQ,MAAM,SAAU,EAAE,KAAK,CAAE;AACvC,MAAK,CAAE,OAAQ;AACd,WAAO;AAAA,EACR;AAOA,MAAI;AACJ,MAAK,MAAM,SAAS,QAAS;AAC5B,aAAS,UAAW,CAAC,CAAkB;AAAA,EACxC,OAAO;AACN,aAAS,MAAM;AAAA,EAChB;AAEA,aAAO,sBAAU,OAAO,UAAM,qBAAS,KAAM,CAAE;AAChD;AAEA,IAAM,OAAO,CAAE,GAAQ,GAAQ,cAA8B;AAC5D,QAAM,QAAQ,IAAI,KAAM,CAAE,EAAE,QAAQ;AACpC,QAAM,QAAQ,IAAI,KAAM,CAAE,EAAE,QAAQ;AAEpC,SAAO,cAAc,QAAQ,QAAQ,QAAQ,QAAQ;AACtD;AAEA,IAAO,eAAQ;AAAA,EACd,MAAM;AAAA,EACN;AAAA,EACA,MAAM;AAAA,EACN;AAAA,EACA,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,gBAAgB;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA;AAAA,EACA,UAAU;AAAA,IACT,UAAU,yBAAAC;AAAA,IACV,UAAU,yBAAAC;AAAA,EACX;AACD;",
6
+ "names": ["RenderFromElements", "isValidRequired", "isValidElements"]
7
7
  }
@@ -35,7 +35,9 @@ __export(datetime_exports, {
35
35
  module.exports = __toCommonJS(datetime_exports);
36
36
  var import_render_from_elements = __toESM(require("./utils/render-from-elements"));
37
37
  var import_parse_date_time = __toESM(require("./utils/parse-date-time"));
38
+ var import_is_valid_elements = __toESM(require("./utils/is-valid-elements"));
38
39
  var import_constants = require("../constants");
40
+ var import_is_valid_required = __toESM(require("./utils/is-valid-required"));
39
41
  var import_jsx_runtime = require("react/jsx-runtime");
40
42
  function render({ item, field }) {
41
43
  if (field.elements) {
@@ -62,10 +64,6 @@ var datetime_default = {
62
64
  render,
63
65
  Edit: "datetime",
64
66
  sort,
65
- isValid: {
66
- elements: true,
67
- custom: () => null
68
- },
69
67
  enableSorting: true,
70
68
  enableGlobalSearch: false,
71
69
  defaultOperators: [
@@ -88,6 +86,10 @@ var datetime_default = {
88
86
  import_constants.OPERATOR_IN_THE_PAST,
89
87
  import_constants.OPERATOR_OVER
90
88
  ],
91
- getFormat: () => ({})
89
+ getFormat: () => ({}),
90
+ validate: {
91
+ required: import_is_valid_required.default,
92
+ elements: import_is_valid_elements.default
93
+ }
92
94
  };
93
95
  //# sourceMappingURL=datetime.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/field-types/datetime.tsx"],
4
- "sourcesContent": ["/**\n * Internal dependencies\n */\nimport type { DataViewRenderFieldProps, SortDirection } from '../types';\nimport type { FieldType } from '../types/private';\nimport RenderFromElements from './utils/render-from-elements';\nimport parseDateTime from './utils/parse-date-time';\nimport {\n\tOPERATOR_ON,\n\tOPERATOR_NOT_ON,\n\tOPERATOR_BEFORE,\n\tOPERATOR_AFTER,\n\tOPERATOR_BEFORE_INC,\n\tOPERATOR_AFTER_INC,\n\tOPERATOR_IN_THE_PAST,\n\tOPERATOR_OVER,\n} from '../constants';\n\nfunction render( { item, field }: DataViewRenderFieldProps< any > ) {\n\tif ( field.elements ) {\n\t\treturn <RenderFromElements item={ item } field={ field } />;\n\t}\n\n\tconst value = field.getValue( { item } );\n\tif ( [ '', undefined, null ].includes( value ) ) {\n\t\treturn null;\n\t}\n\n\ttry {\n\t\tconst dateValue = parseDateTime( value );\n\t\treturn dateValue?.toLocaleString();\n\t} catch ( error ) {\n\t\treturn null;\n\t}\n}\n\nconst sort = ( a: any, b: any, direction: SortDirection ) => {\n\tconst timeA = new Date( a ).getTime();\n\tconst timeB = new Date( b ).getTime();\n\n\treturn direction === 'asc' ? timeA - timeB : timeB - timeA;\n};\n\nexport default {\n\ttype: 'datetime',\n\trender,\n\tEdit: 'datetime',\n\tsort,\n\tisValid: {\n\t\telements: true,\n\t\tcustom: () => null,\n\t},\n\tenableSorting: true,\n\tenableGlobalSearch: false,\n\tdefaultOperators: [\n\t\tOPERATOR_ON,\n\t\tOPERATOR_NOT_ON,\n\t\tOPERATOR_BEFORE,\n\t\tOPERATOR_AFTER,\n\t\tOPERATOR_BEFORE_INC,\n\t\tOPERATOR_AFTER_INC,\n\t\tOPERATOR_IN_THE_PAST,\n\t\tOPERATOR_OVER,\n\t],\n\tvalidOperators: [\n\t\tOPERATOR_ON,\n\t\tOPERATOR_NOT_ON,\n\t\tOPERATOR_BEFORE,\n\t\tOPERATOR_AFTER,\n\t\tOPERATOR_BEFORE_INC,\n\t\tOPERATOR_AFTER_INC,\n\t\tOPERATOR_IN_THE_PAST,\n\t\tOPERATOR_OVER,\n\t],\n\tgetFormat: () => ( {} ),\n} satisfies FieldType< any >;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,kCAA+B;AAC/B,6BAA0B;AAC1B,uBASO;AAIE;AAFT,SAAS,OAAQ,EAAE,MAAM,MAAM,GAAqC;AACnE,MAAK,MAAM,UAAW;AACrB,WAAO,4CAAC,4BAAAA,SAAA,EAAmB,MAAc,OAAgB;AAAA,EAC1D;AAEA,QAAM,QAAQ,MAAM,SAAU,EAAE,KAAK,CAAE;AACvC,MAAK,CAAE,IAAI,QAAW,IAAK,EAAE,SAAU,KAAM,GAAI;AAChD,WAAO;AAAA,EACR;AAEA,MAAI;AACH,UAAM,gBAAY,uBAAAC,SAAe,KAAM;AACvC,WAAO,WAAW,eAAe;AAAA,EAClC,SAAU,OAAQ;AACjB,WAAO;AAAA,EACR;AACD;AAEA,IAAM,OAAO,CAAE,GAAQ,GAAQ,cAA8B;AAC5D,QAAM,QAAQ,IAAI,KAAM,CAAE,EAAE,QAAQ;AACpC,QAAM,QAAQ,IAAI,KAAM,CAAE,EAAE,QAAQ;AAEpC,SAAO,cAAc,QAAQ,QAAQ,QAAQ,QAAQ;AACtD;AAEA,IAAO,mBAAQ;AAAA,EACd,MAAM;AAAA,EACN;AAAA,EACA,MAAM;AAAA,EACN;AAAA,EACA,SAAS;AAAA,IACR,UAAU;AAAA,IACV,QAAQ,MAAM;AAAA,EACf;AAAA,EACA,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,gBAAgB;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,WAAW,OAAQ,CAAC;AACrB;",
6
- "names": ["RenderFromElements", "parseDateTime"]
4
+ "sourcesContent": ["/**\n * Internal dependencies\n */\nimport type { DataViewRenderFieldProps, SortDirection } from '../types';\nimport type { FieldType } from '../types/private';\nimport RenderFromElements from './utils/render-from-elements';\nimport parseDateTime from './utils/parse-date-time';\nimport isValidElements from './utils/is-valid-elements';\nimport {\n\tOPERATOR_ON,\n\tOPERATOR_NOT_ON,\n\tOPERATOR_BEFORE,\n\tOPERATOR_AFTER,\n\tOPERATOR_BEFORE_INC,\n\tOPERATOR_AFTER_INC,\n\tOPERATOR_IN_THE_PAST,\n\tOPERATOR_OVER,\n} from '../constants';\nimport isValidRequired from './utils/is-valid-required';\n\nfunction render( { item, field }: DataViewRenderFieldProps< any > ) {\n\tif ( field.elements ) {\n\t\treturn <RenderFromElements item={ item } field={ field } />;\n\t}\n\n\tconst value = field.getValue( { item } );\n\tif ( [ '', undefined, null ].includes( value ) ) {\n\t\treturn null;\n\t}\n\n\ttry {\n\t\tconst dateValue = parseDateTime( value );\n\t\treturn dateValue?.toLocaleString();\n\t} catch ( error ) {\n\t\treturn null;\n\t}\n}\n\nconst sort = ( a: any, b: any, direction: SortDirection ) => {\n\tconst timeA = new Date( a ).getTime();\n\tconst timeB = new Date( b ).getTime();\n\n\treturn direction === 'asc' ? timeA - timeB : timeB - timeA;\n};\n\nexport default {\n\ttype: 'datetime',\n\trender,\n\tEdit: 'datetime',\n\tsort,\n\tenableSorting: true,\n\tenableGlobalSearch: false,\n\tdefaultOperators: [\n\t\tOPERATOR_ON,\n\t\tOPERATOR_NOT_ON,\n\t\tOPERATOR_BEFORE,\n\t\tOPERATOR_AFTER,\n\t\tOPERATOR_BEFORE_INC,\n\t\tOPERATOR_AFTER_INC,\n\t\tOPERATOR_IN_THE_PAST,\n\t\tOPERATOR_OVER,\n\t],\n\tvalidOperators: [\n\t\tOPERATOR_ON,\n\t\tOPERATOR_NOT_ON,\n\t\tOPERATOR_BEFORE,\n\t\tOPERATOR_AFTER,\n\t\tOPERATOR_BEFORE_INC,\n\t\tOPERATOR_AFTER_INC,\n\t\tOPERATOR_IN_THE_PAST,\n\t\tOPERATOR_OVER,\n\t],\n\tgetFormat: () => ( {} ),\n\tvalidate: {\n\t\trequired: isValidRequired,\n\t\telements: isValidElements,\n\t},\n} satisfies FieldType< any >;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,kCAA+B;AAC/B,6BAA0B;AAC1B,+BAA4B;AAC5B,uBASO;AACP,+BAA4B;AAInB;AAFT,SAAS,OAAQ,EAAE,MAAM,MAAM,GAAqC;AACnE,MAAK,MAAM,UAAW;AACrB,WAAO,4CAAC,4BAAAA,SAAA,EAAmB,MAAc,OAAgB;AAAA,EAC1D;AAEA,QAAM,QAAQ,MAAM,SAAU,EAAE,KAAK,CAAE;AACvC,MAAK,CAAE,IAAI,QAAW,IAAK,EAAE,SAAU,KAAM,GAAI;AAChD,WAAO;AAAA,EACR;AAEA,MAAI;AACH,UAAM,gBAAY,uBAAAC,SAAe,KAAM;AACvC,WAAO,WAAW,eAAe;AAAA,EAClC,SAAU,OAAQ;AACjB,WAAO;AAAA,EACR;AACD;AAEA,IAAM,OAAO,CAAE,GAAQ,GAAQ,cAA8B;AAC5D,QAAM,QAAQ,IAAI,KAAM,CAAE,EAAE,QAAQ;AACpC,QAAM,QAAQ,IAAI,KAAM,CAAE,EAAE,QAAQ;AAEpC,SAAO,cAAc,QAAQ,QAAQ,QAAQ,QAAQ;AACtD;AAEA,IAAO,mBAAQ;AAAA,EACd,MAAM;AAAA,EACN;AAAA,EACA,MAAM;AAAA,EACN;AAAA,EACA,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,gBAAgB;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,WAAW,OAAQ,CAAC;AAAA,EACpB,UAAU;AAAA,IACT,UAAU,yBAAAC;AAAA,IACV,UAAU,yBAAAC;AAAA,EACX;AACD;",
6
+ "names": ["RenderFromElements", "parseDateTime", "isValidRequired", "isValidElements"]
7
7
  }
@@ -37,23 +37,24 @@ var import_i18n = require("@wordpress/i18n");
37
37
  var import_constants = require("../constants");
38
38
  var import_render_default = __toESM(require("./utils/render-default"));
39
39
  var import_sort_text = __toESM(require("./utils/sort-text"));
40
+ var import_is_valid_required = __toESM(require("./utils/is-valid-required"));
41
+ var import_is_valid_min_length = __toESM(require("./utils/is-valid-min-length"));
42
+ var import_is_valid_max_length = __toESM(require("./utils/is-valid-max-length"));
43
+ var import_is_valid_pattern = __toESM(require("./utils/is-valid-pattern"));
44
+ var import_is_valid_elements = __toESM(require("./utils/is-valid-elements"));
40
45
  var emailRegex = /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
41
- var isValid = {
42
- elements: true,
43
- custom: (item, normalizedField) => {
44
- const value = normalizedField.getValue({ item });
45
- if (![void 0, "", null].includes(value) && !emailRegex.test(value)) {
46
- return (0, import_i18n.__)("Value must be a valid email address.");
47
- }
48
- return null;
46
+ function isValidCustom(item, field) {
47
+ const value = field.getValue({ item });
48
+ if (![void 0, "", null].includes(value) && !emailRegex.test(value)) {
49
+ return (0, import_i18n.__)("Value must be a valid email address.");
49
50
  }
50
- };
51
+ return null;
52
+ }
51
53
  var email_default = {
52
54
  type: "email",
53
55
  render: import_render_default.default,
54
56
  Edit: "email",
55
57
  sort: import_sort_text.default,
56
- isValid,
57
58
  enableSorting: true,
58
59
  enableGlobalSearch: false,
59
60
  defaultOperators: [import_constants.OPERATOR_IS_ANY, import_constants.OPERATOR_IS_NONE],
@@ -69,6 +70,14 @@ var email_default = {
69
70
  import_constants.OPERATOR_IS_ALL,
70
71
  import_constants.OPERATOR_IS_NOT_ALL
71
72
  ],
72
- getFormat: () => ({})
73
+ getFormat: () => ({}),
74
+ validate: {
75
+ required: import_is_valid_required.default,
76
+ pattern: import_is_valid_pattern.default,
77
+ minLength: import_is_valid_min_length.default,
78
+ maxLength: import_is_valid_max_length.default,
79
+ elements: import_is_valid_elements.default,
80
+ custom: isValidCustom
81
+ }
73
82
  };
74
83
  //# sourceMappingURL=email.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/field-types/email.tsx"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { Rules } from '../types';\nimport type { FieldType } from '../types/private';\nimport {\n\tOPERATOR_IS,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_NOT_ALL,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_CONTAINS,\n\tOPERATOR_NOT_CONTAINS,\n\tOPERATOR_STARTS_WITH,\n} from '../constants';\nimport render from './utils/render-default';\nimport sort from './utils/sort-text';\n\n// Email validation regex based on HTML5 spec\n// https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address\nconst emailRegex =\n\t/^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n\nconst isValid: Rules< any > = {\n\telements: true,\n\tcustom: ( item: any, normalizedField ) => {\n\t\tconst value = normalizedField.getValue( { item } );\n\n\t\tif (\n\t\t\t! [ undefined, '', null ].includes( value ) &&\n\t\t\t! emailRegex.test( value )\n\t\t) {\n\t\t\treturn __( 'Value must be a valid email address.' );\n\t\t}\n\n\t\treturn null;\n\t},\n};\n\nexport default {\n\ttype: 'email',\n\trender,\n\tEdit: 'email',\n\tsort,\n\tisValid,\n\tenableSorting: true,\n\tenableGlobalSearch: false,\n\tdefaultOperators: [ OPERATOR_IS_ANY, OPERATOR_IS_NONE ],\n\tvalidOperators: [\n\t\tOPERATOR_IS,\n\t\tOPERATOR_IS_NOT,\n\t\tOPERATOR_CONTAINS,\n\t\tOPERATOR_NOT_CONTAINS,\n\t\tOPERATOR_STARTS_WITH,\n\t\t// Multiple selection\n\t\tOPERATOR_IS_ANY,\n\t\tOPERATOR_IS_NONE,\n\t\tOPERATOR_IS_ALL,\n\t\tOPERATOR_IS_NOT_ALL,\n\t],\n\tgetFormat: () => ( {} ),\n} satisfies FieldType< any >;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AAOnB,uBAUO;AACP,4BAAmB;AACnB,uBAAiB;AAIjB,IAAM,aACL;AAED,IAAM,UAAwB;AAAA,EAC7B,UAAU;AAAA,EACV,QAAQ,CAAE,MAAW,oBAAqB;AACzC,UAAM,QAAQ,gBAAgB,SAAU,EAAE,KAAK,CAAE;AAEjD,QACC,CAAE,CAAE,QAAW,IAAI,IAAK,EAAE,SAAU,KAAM,KAC1C,CAAE,WAAW,KAAM,KAAM,GACxB;AACD,iBAAO,gBAAI,sCAAuC;AAAA,IACnD;AAEA,WAAO;AAAA,EACR;AACD;AAEA,IAAO,gBAAQ;AAAA,EACd,MAAM;AAAA,EACN,8BAAAA;AAAA,EACA,MAAM;AAAA,EACN,uBAAAC;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,kBAAkB,CAAE,kCAAiB,iCAAiB;AAAA,EACtD,gBAAgB;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,WAAW,OAAQ,CAAC;AACrB;",
6
- "names": ["render", "sort"]
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { NormalizedField } from '../types';\nimport type { FieldType } from '../types/private';\nimport {\n\tOPERATOR_IS,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_NOT_ALL,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_CONTAINS,\n\tOPERATOR_NOT_CONTAINS,\n\tOPERATOR_STARTS_WITH,\n} from '../constants';\nimport render from './utils/render-default';\nimport sort from './utils/sort-text';\nimport isValidRequired from './utils/is-valid-required';\nimport isValidMinLength from './utils/is-valid-min-length';\nimport isValidMaxLength from './utils/is-valid-max-length';\nimport isValidPattern from './utils/is-valid-pattern';\nimport isValidElements from './utils/is-valid-elements';\n\n// Email validation regex based on HTML5 spec\n// https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address\nconst emailRegex =\n\t/^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n\nfunction isValidCustom< Item >( item: Item, field: NormalizedField< Item > ) {\n\tconst value = field.getValue( { item } );\n\n\tif (\n\t\t! [ undefined, '', null ].includes( value ) &&\n\t\t! emailRegex.test( value )\n\t) {\n\t\treturn __( 'Value must be a valid email address.' );\n\t}\n\n\treturn null;\n}\n\nexport default {\n\ttype: 'email',\n\trender,\n\tEdit: 'email',\n\tsort,\n\tenableSorting: true,\n\tenableGlobalSearch: false,\n\tdefaultOperators: [ OPERATOR_IS_ANY, OPERATOR_IS_NONE ],\n\tvalidOperators: [\n\t\tOPERATOR_IS,\n\t\tOPERATOR_IS_NOT,\n\t\tOPERATOR_CONTAINS,\n\t\tOPERATOR_NOT_CONTAINS,\n\t\tOPERATOR_STARTS_WITH,\n\t\t// Multiple selection\n\t\tOPERATOR_IS_ANY,\n\t\tOPERATOR_IS_NONE,\n\t\tOPERATOR_IS_ALL,\n\t\tOPERATOR_IS_NOT_ALL,\n\t],\n\tgetFormat: () => ( {} ),\n\tvalidate: {\n\t\trequired: isValidRequired,\n\t\tpattern: isValidPattern,\n\t\tminLength: isValidMinLength,\n\t\tmaxLength: isValidMaxLength,\n\t\telements: isValidElements,\n\t\tcustom: isValidCustom,\n\t},\n} satisfies FieldType< any >;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AAOnB,uBAUO;AACP,4BAAmB;AACnB,uBAAiB;AACjB,+BAA4B;AAC5B,iCAA6B;AAC7B,iCAA6B;AAC7B,8BAA2B;AAC3B,+BAA4B;AAI5B,IAAM,aACL;AAED,SAAS,cAAuB,MAAY,OAAiC;AAC5E,QAAM,QAAQ,MAAM,SAAU,EAAE,KAAK,CAAE;AAEvC,MACC,CAAE,CAAE,QAAW,IAAI,IAAK,EAAE,SAAU,KAAM,KAC1C,CAAE,WAAW,KAAM,KAAM,GACxB;AACD,eAAO,gBAAI,sCAAuC;AAAA,EACnD;AAEA,SAAO;AACR;AAEA,IAAO,gBAAQ;AAAA,EACd,MAAM;AAAA,EACN,8BAAAA;AAAA,EACA,MAAM;AAAA,EACN,uBAAAC;AAAA,EACA,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,kBAAkB,CAAE,kCAAiB,iCAAiB;AAAA,EACtD,gBAAgB;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,WAAW,OAAQ,CAAC;AAAA,EACpB,UAAU;AAAA,IACT,UAAU,yBAAAC;AAAA,IACV,SAAS,wBAAAC;AAAA,IACT,WAAW,2BAAAC;AAAA,IACX,WAAW,2BAAAC;AAAA,IACX,UAAU,yBAAAC;AAAA,IACV,QAAQ;AAAA,EACT;AACD;",
6
+ "names": ["render", "sort", "isValidRequired", "isValidPattern", "isValidMinLength", "isValidMaxLength", "isValidElements"]
7
7
  }
@@ -52,6 +52,7 @@ var import_telephone = __toESM(require("./telephone"));
52
52
  var import_color = __toESM(require("./color"));
53
53
  var import_url = __toESM(require("./url"));
54
54
  var import_no_type = __toESM(require("./no-type"));
55
+ var import_get_is_valid = __toESM(require("./utils/get-is-valid"));
55
56
  function getFieldTypeByName(type) {
56
57
  const found = [
57
58
  import_email.default,
@@ -75,12 +76,12 @@ function getFieldTypeByName(type) {
75
76
  }
76
77
  function normalizeFields(fields) {
77
78
  return fields.map((field) => {
78
- const defaultProps = getFieldTypeByName(field.type);
79
+ const fieldType = getFieldTypeByName(field.type);
79
80
  const getValue = field.getValue || (0, import_get_value_from_id.default)(field.id);
80
81
  const sort = function(a, b, direction) {
81
82
  const aValue = getValue({ item: a });
82
83
  const bValue = getValue({ item: b });
83
- return field.sort ? field.sort(aValue, bValue, direction) : defaultProps.sort(aValue, bValue, direction);
84
+ return field.sort ? field.sort(aValue, bValue, direction) : fieldType.sort(aValue, bValue, direction);
84
85
  };
85
86
  return {
86
87
  id: field.id,
@@ -97,22 +98,19 @@ function normalizeFields(fields) {
97
98
  enableHiding: field.enableHiding ?? true,
98
99
  readOnly: field.readOnly ?? false,
99
100
  // The type provides defaults for the following props
100
- type: defaultProps.type,
101
- render: field.render ?? defaultProps.render,
102
- Edit: (0, import_dataform_controls.getControl)(field, defaultProps.Edit),
101
+ type: fieldType.type,
102
+ render: field.render ?? fieldType.render,
103
+ Edit: (0, import_dataform_controls.getControl)(field, fieldType.Edit),
103
104
  sort,
104
- enableSorting: field.enableSorting ?? defaultProps.enableSorting,
105
- enableGlobalSearch: field.enableGlobalSearch ?? defaultProps.enableGlobalSearch,
106
- isValid: {
107
- ...defaultProps.isValid,
108
- ...field.isValid
109
- },
105
+ enableSorting: field.enableSorting ?? fieldType.enableSorting,
106
+ enableGlobalSearch: field.enableGlobalSearch ?? fieldType.enableGlobalSearch,
107
+ isValid: (0, import_get_is_valid.default)(field, fieldType),
110
108
  filterBy: (0, import_get_filter_by.default)(
111
109
  field,
112
- defaultProps.defaultOperators,
113
- defaultProps.validOperators
110
+ fieldType.defaultOperators,
111
+ fieldType.validOperators
114
112
  ),
115
- format: defaultProps.getFormat(field)
113
+ format: fieldType.getFormat(field)
116
114
  };
117
115
  });
118
116
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/field-types/index.tsx"],
4
- "sourcesContent": ["/**\n * Internal dependencies\n */\nimport type {\n\tField,\n\tFieldTypeName,\n\tNormalizedField,\n\tSortDirection,\n} from '../types';\nimport type { FieldType } from '../types/private';\nimport { getControl } from '../dataform-controls';\nimport getFilterBy from './utils/get-filter-by';\nimport getValueFromId from './utils/get-value-from-id';\nimport hasElements from './utils/has-elements';\nimport setValueFromId from './utils/set-value-from-id';\nimport { default as email } from './email';\nimport { default as integer } from './integer';\nimport { default as number } from './number';\nimport { default as text } from './text';\nimport { default as datetime } from './datetime';\nimport { default as date } from './date';\nimport { default as boolean } from './boolean';\nimport { default as media } from './media';\nimport { default as array } from './array';\nimport { default as password } from './password';\nimport { default as telephone } from './telephone';\nimport { default as color } from './color';\nimport { default as url } from './url';\nimport { default as noType } from './no-type';\n\n/**\n *\n * @param {FieldTypeName} type The field type definition to get.\n *\n * @return A field type definition.\n */\nfunction getFieldTypeByName< Item >( type?: FieldTypeName ): FieldType< Item > {\n\tconst found = [\n\t\temail,\n\t\tinteger,\n\t\tnumber,\n\t\ttext,\n\t\tdatetime,\n\t\tdate,\n\t\tboolean,\n\t\tmedia,\n\t\tarray,\n\t\tpassword,\n\t\ttelephone,\n\t\tcolor,\n\t\turl,\n\t].find( ( fieldType ) => fieldType?.type === type );\n\n\tif ( !! found ) {\n\t\treturn found;\n\t}\n\n\t// This is a fallback for fields that don't provide a type.\n\t// It can be removed when/if the field.type becomes mandatory.\n\treturn noType;\n}\n\n/**\n * Apply default values and normalize the fields config.\n *\n * @param fields Fields config.\n * @return Normalized fields config.\n */\nexport default function normalizeFields< Item >(\n\tfields: Field< Item >[]\n): NormalizedField< Item >[] {\n\treturn fields.map( ( field ) => {\n\t\tconst defaultProps = getFieldTypeByName< Item >( field.type );\n\n\t\tconst getValue = field.getValue || getValueFromId( field.id );\n\t\tconst sort = function ( a: any, b: any, direction: SortDirection ) {\n\t\t\tconst aValue = getValue( { item: a } );\n\t\t\tconst bValue = getValue( { item: b } );\n\t\t\treturn field.sort\n\t\t\t\t? field.sort( aValue, bValue, direction )\n\t\t\t\t: defaultProps.sort( aValue, bValue, direction );\n\t\t};\n\n\t\treturn {\n\t\t\tid: field.id,\n\t\t\tlabel: field.label || field.id,\n\t\t\theader: field.header || field.label || field.id,\n\t\t\tdescription: field.description,\n\t\t\tplaceholder: field.placeholder,\n\t\t\tgetValue,\n\t\t\tsetValue: field.setValue || setValueFromId( field.id ),\n\t\t\telements: field.elements,\n\t\t\tgetElements: field.getElements,\n\t\t\thasElements: hasElements( field ),\n\t\t\tisVisible: field.isVisible,\n\t\t\tenableHiding: field.enableHiding ?? true,\n\t\t\treadOnly: field.readOnly ?? false,\n\t\t\t// The type provides defaults for the following props\n\t\t\ttype: defaultProps.type,\n\t\t\trender: field.render ?? defaultProps.render,\n\t\t\tEdit: getControl( field, defaultProps.Edit ),\n\t\t\tsort,\n\t\t\tenableSorting: field.enableSorting ?? defaultProps.enableSorting,\n\t\t\tenableGlobalSearch:\n\t\t\t\tfield.enableGlobalSearch ?? defaultProps.enableGlobalSearch,\n\t\t\tisValid: {\n\t\t\t\t...defaultProps.isValid,\n\t\t\t\t...field.isValid,\n\t\t\t},\n\t\t\tfilterBy: getFilterBy(\n\t\t\t\tfield,\n\t\t\t\tdefaultProps.defaultOperators,\n\t\t\t\tdefaultProps.validOperators\n\t\t\t),\n\t\t\tformat: defaultProps.getFormat( field ),\n\t\t};\n\t} );\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA,+BAA2B;AAC3B,2BAAwB;AACxB,+BAA2B;AAC3B,0BAAwB;AACxB,+BAA2B;AAC3B,mBAAiC;AACjC,qBAAmC;AACnC,oBAAkC;AAClC,kBAAgC;AAChC,sBAAoC;AACpC,kBAAgC;AAChC,qBAAmC;AACnC,mBAAiC;AACjC,mBAAiC;AACjC,sBAAoC;AACpC,uBAAqC;AACrC,mBAAiC;AACjC,iBAA+B;AAC/B,qBAAkC;AAQlC,SAAS,mBAA4B,MAA0C;AAC9E,QAAM,QAAQ;AAAA,IACb,aAAAA;AAAA,IACA,eAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,YAAAC;AAAA,IACA,eAAAC;AAAA,IACA,aAAAC;AAAA,IACA,aAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,WAAAC;AAAA,EACD,EAAE,KAAM,CAAE,cAAe,WAAW,SAAS,IAAK;AAElD,MAAK,CAAC,CAAE,OAAQ;AACf,WAAO;AAAA,EACR;AAIA,SAAO,eAAAC;AACR;AAQe,SAAR,gBACN,QAC4B;AAC5B,SAAO,OAAO,IAAK,CAAE,UAAW;AAC/B,UAAM,eAAe,mBAA4B,MAAM,IAAK;AAE5D,UAAM,WAAW,MAAM,gBAAY,yBAAAC,SAAgB,MAAM,EAAG;AAC5D,UAAM,OAAO,SAAW,GAAQ,GAAQ,WAA2B;AAClE,YAAM,SAAS,SAAU,EAAE,MAAM,EAAE,CAAE;AACrC,YAAM,SAAS,SAAU,EAAE,MAAM,EAAE,CAAE;AACrC,aAAO,MAAM,OACV,MAAM,KAAM,QAAQ,QAAQ,SAAU,IACtC,aAAa,KAAM,QAAQ,QAAQ,SAAU;AAAA,IACjD;AAEA,WAAO;AAAA,MACN,IAAI,MAAM;AAAA,MACV,OAAO,MAAM,SAAS,MAAM;AAAA,MAC5B,QAAQ,MAAM,UAAU,MAAM,SAAS,MAAM;AAAA,MAC7C,aAAa,MAAM;AAAA,MACnB,aAAa,MAAM;AAAA,MACnB;AAAA,MACA,UAAU,MAAM,gBAAY,yBAAAC,SAAgB,MAAM,EAAG;AAAA,MACrD,UAAU,MAAM;AAAA,MAChB,aAAa,MAAM;AAAA,MACnB,iBAAa,oBAAAC,SAAa,KAAM;AAAA,MAChC,WAAW,MAAM;AAAA,MACjB,cAAc,MAAM,gBAAgB;AAAA,MACpC,UAAU,MAAM,YAAY;AAAA;AAAA,MAE5B,MAAM,aAAa;AAAA,MACnB,QAAQ,MAAM,UAAU,aAAa;AAAA,MACrC,UAAM,qCAAY,OAAO,aAAa,IAAK;AAAA,MAC3C;AAAA,MACA,eAAe,MAAM,iBAAiB,aAAa;AAAA,MACnD,oBACC,MAAM,sBAAsB,aAAa;AAAA,MAC1C,SAAS;AAAA,QACR,GAAG,aAAa;AAAA,QAChB,GAAG,MAAM;AAAA,MACV;AAAA,MACA,cAAU,qBAAAC;AAAA,QACT;AAAA,QACA,aAAa;AAAA,QACb,aAAa;AAAA,MACd;AAAA,MACA,QAAQ,aAAa,UAAW,KAAM;AAAA,IACvC;AAAA,EACD,CAAE;AACH;",
6
- "names": ["email", "integer", "number", "text", "datetime", "date", "boolean", "media", "array", "password", "telephone", "color", "url", "noType", "getValueFromId", "setValueFromId", "hasElements", "getFilterBy"]
4
+ "sourcesContent": ["/**\n * Internal dependencies\n */\nimport type {\n\tField,\n\tFieldTypeName,\n\tNormalizedField,\n\tSortDirection,\n} from '../types';\nimport type { FieldType } from '../types/private';\nimport { getControl } from '../dataform-controls';\nimport getFilterBy from './utils/get-filter-by';\nimport getValueFromId from './utils/get-value-from-id';\nimport hasElements from './utils/has-elements';\nimport setValueFromId from './utils/set-value-from-id';\nimport { default as email } from './email';\nimport { default as integer } from './integer';\nimport { default as number } from './number';\nimport { default as text } from './text';\nimport { default as datetime } from './datetime';\nimport { default as date } from './date';\nimport { default as boolean } from './boolean';\nimport { default as media } from './media';\nimport { default as array } from './array';\nimport { default as password } from './password';\nimport { default as telephone } from './telephone';\nimport { default as color } from './color';\nimport { default as url } from './url';\nimport { default as noType } from './no-type';\nimport getIsValid from './utils/get-is-valid';\n\n/**\n *\n * @param {FieldTypeName} type The field type definition to get.\n *\n * @return A field type definition.\n */\nfunction getFieldTypeByName< Item >( type?: FieldTypeName ): FieldType< Item > {\n\tconst found = [\n\t\temail,\n\t\tinteger,\n\t\tnumber,\n\t\ttext,\n\t\tdatetime,\n\t\tdate,\n\t\tboolean,\n\t\tmedia,\n\t\tarray,\n\t\tpassword,\n\t\ttelephone,\n\t\tcolor,\n\t\turl,\n\t].find( ( fieldType ) => fieldType?.type === type );\n\n\tif ( !! found ) {\n\t\treturn found;\n\t}\n\n\t// This is a fallback for fields that don't provide a type.\n\t// It can be removed when/if the field.type becomes mandatory.\n\treturn noType;\n}\n\n/**\n * Apply default values and normalize the fields config.\n *\n * @param fields Fields config.\n * @return Normalized fields config.\n */\nexport default function normalizeFields< Item >(\n\tfields: Field< Item >[]\n): NormalizedField< Item >[] {\n\treturn fields.map( ( field ) => {\n\t\tconst fieldType = getFieldTypeByName< Item >( field.type );\n\n\t\tconst getValue = field.getValue || getValueFromId( field.id );\n\t\tconst sort = function ( a: any, b: any, direction: SortDirection ) {\n\t\t\tconst aValue = getValue( { item: a } );\n\t\t\tconst bValue = getValue( { item: b } );\n\t\t\treturn field.sort\n\t\t\t\t? field.sort( aValue, bValue, direction )\n\t\t\t\t: fieldType.sort( aValue, bValue, direction );\n\t\t};\n\n\t\treturn {\n\t\t\tid: field.id,\n\t\t\tlabel: field.label || field.id,\n\t\t\theader: field.header || field.label || field.id,\n\t\t\tdescription: field.description,\n\t\t\tplaceholder: field.placeholder,\n\t\t\tgetValue,\n\t\t\tsetValue: field.setValue || setValueFromId( field.id ),\n\t\t\telements: field.elements,\n\t\t\tgetElements: field.getElements,\n\t\t\thasElements: hasElements( field ),\n\t\t\tisVisible: field.isVisible,\n\t\t\tenableHiding: field.enableHiding ?? true,\n\t\t\treadOnly: field.readOnly ?? false,\n\t\t\t// The type provides defaults for the following props\n\t\t\ttype: fieldType.type,\n\t\t\trender: field.render ?? fieldType.render,\n\t\t\tEdit: getControl( field, fieldType.Edit ),\n\t\t\tsort,\n\t\t\tenableSorting: field.enableSorting ?? fieldType.enableSorting,\n\t\t\tenableGlobalSearch:\n\t\t\t\tfield.enableGlobalSearch ?? fieldType.enableGlobalSearch,\n\t\t\tisValid: getIsValid( field, fieldType ),\n\t\t\tfilterBy: getFilterBy(\n\t\t\t\tfield,\n\t\t\t\tfieldType.defaultOperators,\n\t\t\t\tfieldType.validOperators\n\t\t\t),\n\t\t\tformat: fieldType.getFormat( field ),\n\t\t};\n\t} );\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA,+BAA2B;AAC3B,2BAAwB;AACxB,+BAA2B;AAC3B,0BAAwB;AACxB,+BAA2B;AAC3B,mBAAiC;AACjC,qBAAmC;AACnC,oBAAkC;AAClC,kBAAgC;AAChC,sBAAoC;AACpC,kBAAgC;AAChC,qBAAmC;AACnC,mBAAiC;AACjC,mBAAiC;AACjC,sBAAoC;AACpC,uBAAqC;AACrC,mBAAiC;AACjC,iBAA+B;AAC/B,qBAAkC;AAClC,0BAAuB;AAQvB,SAAS,mBAA4B,MAA0C;AAC9E,QAAM,QAAQ;AAAA,IACb,aAAAA;AAAA,IACA,eAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,YAAAC;AAAA,IACA,eAAAC;AAAA,IACA,aAAAC;AAAA,IACA,aAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,WAAAC;AAAA,EACD,EAAE,KAAM,CAAE,cAAe,WAAW,SAAS,IAAK;AAElD,MAAK,CAAC,CAAE,OAAQ;AACf,WAAO;AAAA,EACR;AAIA,SAAO,eAAAC;AACR;AAQe,SAAR,gBACN,QAC4B;AAC5B,SAAO,OAAO,IAAK,CAAE,UAAW;AAC/B,UAAM,YAAY,mBAA4B,MAAM,IAAK;AAEzD,UAAM,WAAW,MAAM,gBAAY,yBAAAC,SAAgB,MAAM,EAAG;AAC5D,UAAM,OAAO,SAAW,GAAQ,GAAQ,WAA2B;AAClE,YAAM,SAAS,SAAU,EAAE,MAAM,EAAE,CAAE;AACrC,YAAM,SAAS,SAAU,EAAE,MAAM,EAAE,CAAE;AACrC,aAAO,MAAM,OACV,MAAM,KAAM,QAAQ,QAAQ,SAAU,IACtC,UAAU,KAAM,QAAQ,QAAQ,SAAU;AAAA,IAC9C;AAEA,WAAO;AAAA,MACN,IAAI,MAAM;AAAA,MACV,OAAO,MAAM,SAAS,MAAM;AAAA,MAC5B,QAAQ,MAAM,UAAU,MAAM,SAAS,MAAM;AAAA,MAC7C,aAAa,MAAM;AAAA,MACnB,aAAa,MAAM;AAAA,MACnB;AAAA,MACA,UAAU,MAAM,gBAAY,yBAAAC,SAAgB,MAAM,EAAG;AAAA,MACrD,UAAU,MAAM;AAAA,MAChB,aAAa,MAAM;AAAA,MACnB,iBAAa,oBAAAC,SAAa,KAAM;AAAA,MAChC,WAAW,MAAM;AAAA,MACjB,cAAc,MAAM,gBAAgB;AAAA,MACpC,UAAU,MAAM,YAAY;AAAA;AAAA,MAE5B,MAAM,UAAU;AAAA,MAChB,QAAQ,MAAM,UAAU,UAAU;AAAA,MAClC,UAAM,qCAAY,OAAO,UAAU,IAAK;AAAA,MACxC;AAAA,MACA,eAAe,MAAM,iBAAiB,UAAU;AAAA,MAChD,oBACC,MAAM,sBAAsB,UAAU;AAAA,MACvC,aAAS,oBAAAC,SAAY,OAAO,SAAU;AAAA,MACtC,cAAU,qBAAAC;AAAA,QACT;AAAA,QACA,UAAU;AAAA,QACV,UAAU;AAAA,MACX;AAAA,MACA,QAAQ,UAAU,UAAW,KAAM;AAAA,IACpC;AAAA,EACD,CAAE;AACH;",
6
+ "names": ["email", "integer", "number", "text", "datetime", "date", "boolean", "media", "array", "password", "telephone", "color", "url", "noType", "getValueFromId", "setValueFromId", "hasElements", "getIsValid", "getFilterBy"]
7
7
  }
@@ -30,29 +30,67 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // packages/dataviews/src/field-types/integer.tsx
31
31
  var integer_exports = {};
32
32
  __export(integer_exports, {
33
- default: () => integer_default
33
+ default: () => integer_default,
34
+ formatInteger: () => formatInteger
34
35
  });
35
36
  module.exports = __toCommonJS(integer_exports);
36
37
  var import_i18n = require("@wordpress/i18n");
37
38
  var import_constants = require("../constants");
38
- var import_render_default = __toESM(require("./utils/render-default"));
39
+ var import_render_from_elements = __toESM(require("./utils/render-from-elements"));
39
40
  var import_sort_number = __toESM(require("./utils/sort-number"));
40
- var isValid = {
41
- elements: true,
42
- custom: (item, normalizedField) => {
43
- const value = normalizedField.getValue({ item });
44
- if (![void 0, "", null].includes(value) && !Number.isInteger(value)) {
45
- return (0, import_i18n.__)("Value must be an integer.");
46
- }
47
- return null;
41
+ var import_is_valid_required = __toESM(require("./utils/is-valid-required"));
42
+ var import_is_valid_min = __toESM(require("./utils/is-valid-min"));
43
+ var import_is_valid_max = __toESM(require("./utils/is-valid-max"));
44
+ var import_is_valid_elements = __toESM(require("./utils/is-valid-elements"));
45
+ var import_jsx_runtime = require("react/jsx-runtime");
46
+ function getFormat(field) {
47
+ const fieldFormat = field.format;
48
+ return {
49
+ separatorThousand: fieldFormat?.separatorThousand !== void 0 && typeof fieldFormat.separatorThousand === "string" ? fieldFormat.separatorThousand : ","
50
+ };
51
+ }
52
+ function formatInteger(value, format) {
53
+ if (!Number.isFinite(value)) {
54
+ return String(value);
48
55
  }
49
- };
56
+ const { separatorThousand } = format;
57
+ const integerValue = Math.trunc(value);
58
+ if (!separatorThousand) {
59
+ return String(integerValue);
60
+ }
61
+ return String(integerValue).replace(
62
+ /\B(?=(\d{3})+(?!\d))/g,
63
+ separatorThousand
64
+ );
65
+ }
66
+ function render({ item, field }) {
67
+ if (field.hasElements) {
68
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_render_from_elements.default, { item, field });
69
+ }
70
+ const value = field.getValue({ item });
71
+ if ([null, void 0].includes(value)) {
72
+ return "";
73
+ }
74
+ let format;
75
+ if (field.type !== "integer") {
76
+ format = getFormat(field);
77
+ } else {
78
+ format = field.format;
79
+ }
80
+ return formatInteger(Number(value), format);
81
+ }
82
+ function isValidCustom(item, field) {
83
+ const value = field.getValue({ item });
84
+ if (![void 0, "", null].includes(value) && !Number.isInteger(value)) {
85
+ return (0, import_i18n.__)("Value must be an integer.");
86
+ }
87
+ return null;
88
+ }
50
89
  var integer_default = {
51
90
  type: "integer",
52
- render: import_render_default.default,
91
+ render,
53
92
  Edit: "integer",
54
93
  sort: import_sort_number.default,
55
- isValid,
56
94
  enableSorting: true,
57
95
  enableGlobalSearch: false,
58
96
  defaultOperators: [
@@ -79,6 +117,17 @@ var integer_default = {
79
117
  import_constants.OPERATOR_IS_ALL,
80
118
  import_constants.OPERATOR_IS_NOT_ALL
81
119
  ],
82
- getFormat: () => ({})
120
+ getFormat,
121
+ validate: {
122
+ required: import_is_valid_required.default,
123
+ min: import_is_valid_min.default,
124
+ max: import_is_valid_max.default,
125
+ elements: import_is_valid_elements.default,
126
+ custom: isValidCustom
127
+ }
83
128
  };
129
+ // Annotate the CommonJS export names for ESM import in node:
130
+ 0 && (module.exports = {
131
+ formatInteger
132
+ });
84
133
  //# sourceMappingURL=integer.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/field-types/integer.tsx"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { Rules } from '../types';\nimport type { FieldType } from '../types/private';\nimport {\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_LESS_THAN,\n\tOPERATOR_GREATER_THAN,\n\tOPERATOR_LESS_THAN_OR_EQUAL,\n\tOPERATOR_GREATER_THAN_OR_EQUAL,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_NOT_ALL,\n\tOPERATOR_BETWEEN,\n} from '../constants';\nimport render from './utils/render-default';\nimport sort from './utils/sort-number';\n\nconst isValid: Rules< any > = {\n\telements: true,\n\tcustom: ( item: any, normalizedField ) => {\n\t\tconst value = normalizedField.getValue( { item } );\n\t\tif (\n\t\t\t! [ undefined, '', null ].includes( value ) &&\n\t\t\t! Number.isInteger( value )\n\t\t) {\n\t\t\treturn __( 'Value must be an integer.' );\n\t\t}\n\n\t\treturn null;\n\t},\n};\n\nexport default {\n\ttype: 'integer',\n\trender,\n\tEdit: 'integer',\n\tsort,\n\tisValid,\n\tenableSorting: true,\n\tenableGlobalSearch: false,\n\tdefaultOperators: [\n\t\tOPERATOR_IS,\n\t\tOPERATOR_IS_NOT,\n\t\tOPERATOR_LESS_THAN,\n\t\tOPERATOR_GREATER_THAN,\n\t\tOPERATOR_LESS_THAN_OR_EQUAL,\n\t\tOPERATOR_GREATER_THAN_OR_EQUAL,\n\t\tOPERATOR_BETWEEN,\n\t],\n\tvalidOperators: [\n\t\t// Single-selection\n\t\tOPERATOR_IS,\n\t\tOPERATOR_IS_NOT,\n\t\tOPERATOR_LESS_THAN,\n\t\tOPERATOR_GREATER_THAN,\n\t\tOPERATOR_LESS_THAN_OR_EQUAL,\n\t\tOPERATOR_GREATER_THAN_OR_EQUAL,\n\t\tOPERATOR_BETWEEN,\n\t\t// Multiple-selection\n\t\tOPERATOR_IS_ANY,\n\t\tOPERATOR_IS_NONE,\n\t\tOPERATOR_IS_ALL,\n\t\tOPERATOR_IS_NOT_ALL,\n\t],\n\tgetFormat: () => ( {} ),\n} satisfies FieldType< any >;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AAOnB,uBAYO;AACP,4BAAmB;AACnB,yBAAiB;AAEjB,IAAM,UAAwB;AAAA,EAC7B,UAAU;AAAA,EACV,QAAQ,CAAE,MAAW,oBAAqB;AACzC,UAAM,QAAQ,gBAAgB,SAAU,EAAE,KAAK,CAAE;AACjD,QACC,CAAE,CAAE,QAAW,IAAI,IAAK,EAAE,SAAU,KAAM,KAC1C,CAAE,OAAO,UAAW,KAAM,GACzB;AACD,iBAAO,gBAAI,2BAA4B;AAAA,IACxC;AAEA,WAAO;AAAA,EACR;AACD;AAEA,IAAO,kBAAQ;AAAA,EACd,MAAM;AAAA,EACN,8BAAAA;AAAA,EACA,MAAM;AAAA,EACN,yBAAAC;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,gBAAgB;AAAA;AAAA,IAEf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,WAAW,OAAQ,CAAC;AACrB;",
6
- "names": ["render", "sort"]
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tDataViewRenderFieldProps,\n\tField,\n\tFormatInteger,\n\tNormalizedField,\n} from '../types';\nimport type { FieldType } from '../types/private';\nimport {\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_LESS_THAN,\n\tOPERATOR_GREATER_THAN,\n\tOPERATOR_LESS_THAN_OR_EQUAL,\n\tOPERATOR_GREATER_THAN_OR_EQUAL,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_NOT_ALL,\n\tOPERATOR_BETWEEN,\n} from '../constants';\nimport RenderFromElements from './utils/render-from-elements';\nimport sort from './utils/sort-number';\nimport isValidRequired from './utils/is-valid-required';\nimport isValidMin from './utils/is-valid-min';\nimport isValidMax from './utils/is-valid-max';\nimport isValidElements from './utils/is-valid-elements';\n\nfunction getFormat< Item >( field: Field< Item > ): Required< FormatInteger > {\n\tconst fieldFormat = field.format as FormatInteger | undefined;\n\treturn {\n\t\tseparatorThousand:\n\t\t\tfieldFormat?.separatorThousand !== undefined &&\n\t\t\ttypeof fieldFormat.separatorThousand === 'string'\n\t\t\t\t? fieldFormat.separatorThousand\n\t\t\t\t: ',',\n\t};\n}\n\nexport function formatInteger(\n\tvalue: number,\n\tformat: Required< FormatInteger >\n): string {\n\tif ( ! Number.isFinite( value ) ) {\n\t\treturn String( value );\n\t}\n\tconst { separatorThousand } = format;\n\tconst integerValue = Math.trunc( value );\n\tif ( ! separatorThousand ) {\n\t\treturn String( integerValue );\n\t}\n\t// Add thousand separators.\n\treturn String( integerValue ).replace(\n\t\t/\\B(?=(\\d{3})+(?!\\d))/g,\n\t\tseparatorThousand\n\t);\n}\n\nfunction render( { item, field }: DataViewRenderFieldProps< any > ) {\n\tif ( field.hasElements ) {\n\t\treturn <RenderFromElements item={ item } field={ field } />;\n\t}\n\n\tconst value = field.getValue( { item } );\n\tif ( [ null, undefined ].includes( value ) ) {\n\t\treturn '';\n\t}\n\n\t// If the field type is integer, we've already normalized the format,\n\t// and so it's safe to tell TypeScript to trust us (\"as Required<FormatInteger>\").\n\t//\n\t// There're no runtime paths where this render function is called with a non-integer field,\n\t// but TypeScript is unable to infer this, hence the type assertion.\n\tlet format: Required< FormatInteger >;\n\tif ( field.type !== 'integer' ) {\n\t\tformat = getFormat( field as Field< any > );\n\t} else {\n\t\tformat = field.format as Required< FormatInteger >;\n\t}\n\n\treturn formatInteger( Number( value ), format );\n}\n\nfunction isValidCustom< Item >( item: Item, field: NormalizedField< Item > ) {\n\tconst value = field.getValue( { item } );\n\tif (\n\t\t! [ undefined, '', null ].includes( value ) &&\n\t\t! Number.isInteger( value )\n\t) {\n\t\treturn __( 'Value must be an integer.' );\n\t}\n\treturn null;\n}\n\nexport default {\n\ttype: 'integer',\n\trender,\n\tEdit: 'integer',\n\tsort,\n\tenableSorting: true,\n\tenableGlobalSearch: false,\n\tdefaultOperators: [\n\t\tOPERATOR_IS,\n\t\tOPERATOR_IS_NOT,\n\t\tOPERATOR_LESS_THAN,\n\t\tOPERATOR_GREATER_THAN,\n\t\tOPERATOR_LESS_THAN_OR_EQUAL,\n\t\tOPERATOR_GREATER_THAN_OR_EQUAL,\n\t\tOPERATOR_BETWEEN,\n\t],\n\tvalidOperators: [\n\t\t// Single-selection\n\t\tOPERATOR_IS,\n\t\tOPERATOR_IS_NOT,\n\t\tOPERATOR_LESS_THAN,\n\t\tOPERATOR_GREATER_THAN,\n\t\tOPERATOR_LESS_THAN_OR_EQUAL,\n\t\tOPERATOR_GREATER_THAN_OR_EQUAL,\n\t\tOPERATOR_BETWEEN,\n\t\t// Multiple-selection\n\t\tOPERATOR_IS_ANY,\n\t\tOPERATOR_IS_NONE,\n\t\tOPERATOR_IS_ALL,\n\t\tOPERATOR_IS_NOT_ALL,\n\t],\n\tgetFormat,\n\tvalidate: {\n\t\trequired: isValidRequired,\n\t\tmin: isValidMin,\n\t\tmax: isValidMax,\n\t\telements: isValidElements,\n\t\tcustom: isValidCustom,\n\t},\n} satisfies FieldType< any >;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AAYnB,uBAYO;AACP,kCAA+B;AAC/B,yBAAiB;AACjB,+BAA4B;AAC5B,0BAAuB;AACvB,0BAAuB;AACvB,+BAA4B;AAkCnB;AAhCT,SAAS,UAAmB,OAAkD;AAC7E,QAAM,cAAc,MAAM;AAC1B,SAAO;AAAA,IACN,mBACC,aAAa,sBAAsB,UACnC,OAAO,YAAY,sBAAsB,WACtC,YAAY,oBACZ;AAAA,EACL;AACD;AAEO,SAAS,cACf,OACA,QACS;AACT,MAAK,CAAE,OAAO,SAAU,KAAM,GAAI;AACjC,WAAO,OAAQ,KAAM;AAAA,EACtB;AACA,QAAM,EAAE,kBAAkB,IAAI;AAC9B,QAAM,eAAe,KAAK,MAAO,KAAM;AACvC,MAAK,CAAE,mBAAoB;AAC1B,WAAO,OAAQ,YAAa;AAAA,EAC7B;AAEA,SAAO,OAAQ,YAAa,EAAE;AAAA,IAC7B;AAAA,IACA;AAAA,EACD;AACD;AAEA,SAAS,OAAQ,EAAE,MAAM,MAAM,GAAqC;AACnE,MAAK,MAAM,aAAc;AACxB,WAAO,4CAAC,4BAAAA,SAAA,EAAmB,MAAc,OAAgB;AAAA,EAC1D;AAEA,QAAM,QAAQ,MAAM,SAAU,EAAE,KAAK,CAAE;AACvC,MAAK,CAAE,MAAM,MAAU,EAAE,SAAU,KAAM,GAAI;AAC5C,WAAO;AAAA,EACR;AAOA,MAAI;AACJ,MAAK,MAAM,SAAS,WAAY;AAC/B,aAAS,UAAW,KAAsB;AAAA,EAC3C,OAAO;AACN,aAAS,MAAM;AAAA,EAChB;AAEA,SAAO,cAAe,OAAQ,KAAM,GAAG,MAAO;AAC/C;AAEA,SAAS,cAAuB,MAAY,OAAiC;AAC5E,QAAM,QAAQ,MAAM,SAAU,EAAE,KAAK,CAAE;AACvC,MACC,CAAE,CAAE,QAAW,IAAI,IAAK,EAAE,SAAU,KAAM,KAC1C,CAAE,OAAO,UAAW,KAAM,GACzB;AACD,eAAO,gBAAI,2BAA4B;AAAA,EACxC;AACA,SAAO;AACR;AAEA,IAAO,kBAAQ;AAAA,EACd,MAAM;AAAA,EACN;AAAA,EACA,MAAM;AAAA,EACN,yBAAAC;AAAA,EACA,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,gBAAgB;AAAA;AAAA,IAEf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA;AAAA,EACA,UAAU;AAAA,IACT,UAAU,yBAAAC;AAAA,IACV,KAAK,oBAAAC;AAAA,IACL,KAAK,oBAAAC;AAAA,IACL,UAAU,yBAAAC;AAAA,IACV,QAAQ;AAAA,EACT;AACD;",
6
+ "names": ["RenderFromElements", "sort", "isValidRequired", "isValidMin", "isValidMax", "isValidElements"]
7
7
  }
@@ -28,14 +28,14 @@ var media_default = {
28
28
  render: () => null,
29
29
  Edit: null,
30
30
  sort: () => 0,
31
- isValid: {
32
- elements: true,
33
- custom: () => null
34
- },
35
31
  enableSorting: false,
36
32
  enableGlobalSearch: false,
37
33
  defaultOperators: [],
38
34
  validOperators: [],
39
- getFormat: () => ({})
35
+ getFormat: () => ({}),
36
+ // cannot validate any constraint, so
37
+ // the only available validation for the field author
38
+ // would be providing a custom validator.
39
+ validate: {}
40
40
  };
41
41
  //# sourceMappingURL=media.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/field-types/media.tsx"],
4
- "sourcesContent": ["/**\n * Internal dependencies\n */\nimport type { FieldType } from '../types/private';\n\nexport default {\n\ttype: 'media',\n\trender: () => null,\n\tEdit: null,\n\tsort: () => 0,\n\tisValid: {\n\t\telements: true,\n\t\tcustom: () => null,\n\t},\n\tenableSorting: false,\n\tenableGlobalSearch: false,\n\tdefaultOperators: [],\n\tvalidOperators: [],\n\tgetFormat: () => ( {} ),\n} satisfies FieldType< any >;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,IAAO,gBAAQ;AAAA,EACd,MAAM;AAAA,EACN,QAAQ,MAAM;AAAA,EACd,MAAM;AAAA,EACN,MAAM,MAAM;AAAA,EACZ,SAAS;AAAA,IACR,UAAU;AAAA,IACV,QAAQ,MAAM;AAAA,EACf;AAAA,EACA,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,kBAAkB,CAAC;AAAA,EACnB,gBAAgB,CAAC;AAAA,EACjB,WAAW,OAAQ,CAAC;AACrB;",
4
+ "sourcesContent": ["/**\n * Internal dependencies\n */\nimport type { FieldType } from '../types/private';\n\nexport default {\n\ttype: 'media',\n\trender: () => null,\n\tEdit: null,\n\tsort: () => 0,\n\tenableSorting: false,\n\tenableGlobalSearch: false,\n\tdefaultOperators: [],\n\tvalidOperators: [],\n\tgetFormat: () => ( {} ),\n\t// cannot validate any constraint, so\n\t// the only available validation for the field author\n\t// would be providing a custom validator.\n\tvalidate: {},\n} satisfies FieldType< any >;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,IAAO,gBAAQ;AAAA,EACd,MAAM;AAAA,EACN,QAAQ,MAAM;AAAA,EACd,MAAM;AAAA,EACN,MAAM,MAAM;AAAA,EACZ,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,kBAAkB,CAAC;AAAA,EACnB,gBAAgB,CAAC;AAAA,EACjB,WAAW,OAAQ,CAAC;AAAA;AAAA;AAAA;AAAA,EAIpB,UAAU,CAAC;AACZ;",
6
6
  "names": []
7
7
  }
@@ -34,9 +34,12 @@ __export(no_type_exports, {
34
34
  });
35
35
  module.exports = __toCommonJS(no_type_exports);
36
36
  var import_constants = require("../constants");
37
+ var import_operators = require("../utils/operators");
37
38
  var import_render_default = __toESM(require("./utils/render-default"));
38
39
  var import_sort_text = __toESM(require("./utils/sort-text"));
39
40
  var import_sort_number = __toESM(require("./utils/sort-number"));
41
+ var import_is_valid_required = __toESM(require("./utils/is-valid-required"));
42
+ var import_is_valid_elements = __toESM(require("./utils/is-valid-elements"));
40
43
  var sort = (a, b, direction) => {
41
44
  if (typeof a === "number" && typeof b === "number") {
42
45
  return (0, import_sort_number.default)(a, b, direction);
@@ -48,14 +51,14 @@ var no_type_default = {
48
51
  render: import_render_default.default,
49
52
  Edit: null,
50
53
  sort,
51
- isValid: {
52
- elements: true,
53
- custom: () => null
54
- },
55
54
  enableSorting: true,
56
55
  enableGlobalSearch: false,
57
56
  defaultOperators: [import_constants.OPERATOR_IS, import_constants.OPERATOR_IS_NOT],
58
- validOperators: import_constants.ALL_OPERATORS,
59
- getFormat: () => ({})
57
+ validOperators: (0, import_operators.getAllOperatorNames)(),
58
+ getFormat: () => ({}),
59
+ validate: {
60
+ required: import_is_valid_required.default,
61
+ elements: import_is_valid_elements.default
62
+ }
60
63
  };
61
64
  //# sourceMappingURL=no-type.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/field-types/no-type.tsx"],
4
- "sourcesContent": ["/**\n * Internal dependencies\n */\nimport type { SortDirection } from '../types';\nimport type { FieldType } from '../types/private';\nimport { ALL_OPERATORS, OPERATOR_IS, OPERATOR_IS_NOT } from '../constants';\nimport render from './utils/render-default';\nimport sortText from './utils/sort-text';\nimport sortNumber from './utils/sort-number';\n\nconst sort = ( a: any, b: any, direction: SortDirection ) => {\n\tif ( typeof a === 'number' && typeof b === 'number' ) {\n\t\treturn sortNumber( a, b, direction );\n\t}\n\n\treturn sortText( a, b, direction );\n};\n\nexport default {\n\t// type: no type for this one\n\trender,\n\tEdit: null,\n\tsort,\n\tisValid: {\n\t\telements: true,\n\t\tcustom: () => null,\n\t},\n\tenableSorting: true,\n\tenableGlobalSearch: false,\n\tdefaultOperators: [ OPERATOR_IS, OPERATOR_IS_NOT ],\n\tvalidOperators: ALL_OPERATORS,\n\tgetFormat: () => ( {} ),\n} satisfies FieldType< any >;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,uBAA4D;AAC5D,4BAAmB;AACnB,uBAAqB;AACrB,yBAAuB;AAEvB,IAAM,OAAO,CAAE,GAAQ,GAAQ,cAA8B;AAC5D,MAAK,OAAO,MAAM,YAAY,OAAO,MAAM,UAAW;AACrD,eAAO,mBAAAA,SAAY,GAAG,GAAG,SAAU;AAAA,EACpC;AAEA,aAAO,iBAAAC,SAAU,GAAG,GAAG,SAAU;AAClC;AAEA,IAAO,kBAAQ;AAAA;AAAA,EAEd,8BAAAC;AAAA,EACA,MAAM;AAAA,EACN;AAAA,EACA,SAAS;AAAA,IACR,UAAU;AAAA,IACV,QAAQ,MAAM;AAAA,EACf;AAAA,EACA,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,kBAAkB,CAAE,8BAAa,gCAAgB;AAAA,EACjD,gBAAgB;AAAA,EAChB,WAAW,OAAQ,CAAC;AACrB;",
6
- "names": ["sortNumber", "sortText", "render"]
4
+ "sourcesContent": ["/**\n * Internal dependencies\n */\nimport type { SortDirection } from '../types';\nimport type { FieldType } from '../types/private';\nimport { OPERATOR_IS, OPERATOR_IS_NOT } from '../constants';\nimport { getAllOperatorNames } from '../utils/operators';\nimport render from './utils/render-default';\nimport sortText from './utils/sort-text';\nimport sortNumber from './utils/sort-number';\nimport isValidRequired from './utils/is-valid-required';\nimport isValidElements from './utils/is-valid-elements';\n\nconst sort = ( a: any, b: any, direction: SortDirection ) => {\n\tif ( typeof a === 'number' && typeof b === 'number' ) {\n\t\treturn sortNumber( a, b, direction );\n\t}\n\n\treturn sortText( a, b, direction );\n};\n\nexport default {\n\t// type: no type for this one\n\trender,\n\tEdit: null,\n\tsort,\n\tenableSorting: true,\n\tenableGlobalSearch: false,\n\tdefaultOperators: [ OPERATOR_IS, OPERATOR_IS_NOT ],\n\tvalidOperators: getAllOperatorNames(),\n\tgetFormat: () => ( {} ),\n\tvalidate: {\n\t\trequired: isValidRequired,\n\t\telements: isValidElements,\n\t},\n} satisfies FieldType< any >;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,uBAA6C;AAC7C,uBAAoC;AACpC,4BAAmB;AACnB,uBAAqB;AACrB,yBAAuB;AACvB,+BAA4B;AAC5B,+BAA4B;AAE5B,IAAM,OAAO,CAAE,GAAQ,GAAQ,cAA8B;AAC5D,MAAK,OAAO,MAAM,YAAY,OAAO,MAAM,UAAW;AACrD,eAAO,mBAAAA,SAAY,GAAG,GAAG,SAAU;AAAA,EACpC;AAEA,aAAO,iBAAAC,SAAU,GAAG,GAAG,SAAU;AAClC;AAEA,IAAO,kBAAQ;AAAA;AAAA,EAEd,8BAAAC;AAAA,EACA,MAAM;AAAA,EACN;AAAA,EACA,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,kBAAkB,CAAE,8BAAa,gCAAgB;AAAA,EACjD,oBAAgB,sCAAoB;AAAA,EACpC,WAAW,OAAQ,CAAC;AAAA,EACpB,UAAU;AAAA,IACT,UAAU,yBAAAC;AAAA,IACV,UAAU,yBAAAC;AAAA,EACX;AACD;",
6
+ "names": ["sortNumber", "sortText", "render", "isValidRequired", "isValidElements"]
7
7
  }
@@ -30,14 +30,37 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // packages/dataviews/src/field-types/number.tsx
31
31
  var number_exports = {};
32
32
  __export(number_exports, {
33
- default: () => number_default
33
+ default: () => number_default,
34
+ formatNumber: () => formatNumber
34
35
  });
35
36
  module.exports = __toCommonJS(number_exports);
36
37
  var import_i18n = require("@wordpress/i18n");
37
38
  var import_constants = require("../constants");
38
39
  var import_render_from_elements = __toESM(require("./utils/render-from-elements"));
39
40
  var import_sort_number = __toESM(require("./utils/sort-number"));
41
+ var import_is_valid_required = __toESM(require("./utils/is-valid-required"));
42
+ var import_is_valid_min = __toESM(require("./utils/is-valid-min"));
43
+ var import_is_valid_max = __toESM(require("./utils/is-valid-max"));
44
+ var import_is_valid_elements = __toESM(require("./utils/is-valid-elements"));
40
45
  var import_jsx_runtime = require("react/jsx-runtime");
46
+ function getFormat(field) {
47
+ const fieldFormat = field.format;
48
+ return {
49
+ separatorThousand: fieldFormat?.separatorThousand !== void 0 && typeof fieldFormat.separatorThousand === "string" ? fieldFormat.separatorThousand : ",",
50
+ separatorDecimal: fieldFormat?.separatorDecimal !== void 0 && typeof fieldFormat.separatorDecimal === "string" ? fieldFormat.separatorDecimal : ".",
51
+ decimals: fieldFormat?.decimals !== void 0 && typeof fieldFormat.decimals === "number" && fieldFormat.decimals >= 0 && fieldFormat.decimals <= 100 && Number.isInteger(fieldFormat.decimals) ? fieldFormat.decimals : 2
52
+ };
53
+ }
54
+ function formatNumber(value, format) {
55
+ if (!Number.isFinite(value)) {
56
+ return String(value);
57
+ }
58
+ const { separatorThousand, separatorDecimal, decimals } = format;
59
+ const fixedValue = value.toFixed(decimals);
60
+ const [integerPart, decimalPart] = fixedValue.split(".");
61
+ const formattedInteger = separatorThousand ? integerPart.replace(/\B(?=(\d{3})+(?!\d))/g, separatorThousand) : integerPart;
62
+ return decimals === 0 ? formattedInteger : formattedInteger + separatorDecimal + decimalPart;
63
+ }
41
64
  function isEmpty(value) {
42
65
  return value === "" || value === void 0 || value === null;
43
66
  }
@@ -46,27 +69,29 @@ function render({ item, field }) {
46
69
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_render_from_elements.default, { item, field });
47
70
  }
48
71
  const value = field.getValue({ item });
49
- if (![null, void 0].includes(value)) {
50
- return Number(value).toFixed(2);
72
+ if ([null, void 0].includes(value)) {
73
+ return "";
51
74
  }
52
- return null;
75
+ let format;
76
+ if (field.type !== "number") {
77
+ format = getFormat(field);
78
+ } else {
79
+ format = field.format;
80
+ }
81
+ return formatNumber(Number(value), format);
53
82
  }
54
- var isValid = {
55
- elements: true,
56
- custom: (item, normalizedField) => {
57
- const value = normalizedField.getValue({ item });
58
- if (!isEmpty(value) && !Number.isFinite(value)) {
59
- return (0, import_i18n.__)("Value must be a number.");
60
- }
61
- return null;
83
+ function isValidCustom(item, field) {
84
+ const value = field.getValue({ item });
85
+ if (!isEmpty(value) && !Number.isFinite(value)) {
86
+ return (0, import_i18n.__)("Value must be a number.");
62
87
  }
63
- };
88
+ return null;
89
+ }
64
90
  var number_default = {
65
91
  type: "number",
66
92
  render,
67
93
  Edit: "number",
68
94
  sort: import_sort_number.default,
69
- isValid,
70
95
  enableSorting: true,
71
96
  enableGlobalSearch: false,
72
97
  defaultOperators: [
@@ -93,6 +118,17 @@ var number_default = {
93
118
  import_constants.OPERATOR_IS_ALL,
94
119
  import_constants.OPERATOR_IS_NOT_ALL
95
120
  ],
96
- getFormat: () => ({})
121
+ getFormat,
122
+ validate: {
123
+ required: import_is_valid_required.default,
124
+ min: import_is_valid_min.default,
125
+ max: import_is_valid_max.default,
126
+ elements: import_is_valid_elements.default,
127
+ custom: isValidCustom
128
+ }
97
129
  };
130
+ // Annotate the CommonJS export names for ESM import in node:
131
+ 0 && (module.exports = {
132
+ formatNumber
133
+ });
98
134
  //# sourceMappingURL=number.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/field-types/number.tsx"],
4
- "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { DataViewRenderFieldProps, Rules } from '../types';\nimport type { FieldType } from '../types/private';\nimport {\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_LESS_THAN,\n\tOPERATOR_GREATER_THAN,\n\tOPERATOR_LESS_THAN_OR_EQUAL,\n\tOPERATOR_GREATER_THAN_OR_EQUAL,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_NOT_ALL,\n\tOPERATOR_BETWEEN,\n} from '../constants';\nimport RenderFromElements from './utils/render-from-elements';\nimport sort from './utils/sort-number';\n\nfunction isEmpty( value: unknown ): value is '' | undefined | null {\n\treturn value === '' || value === undefined || value === null;\n}\n\nfunction render( { item, field }: DataViewRenderFieldProps< any > ) {\n\tif ( field.hasElements ) {\n\t\treturn <RenderFromElements item={ item } field={ field } />;\n\t}\n\n\tconst value = field.getValue( { item } );\n\tif ( ! [ null, undefined ].includes( value ) ) {\n\t\treturn Number( value ).toFixed( 2 );\n\t}\n\n\treturn null;\n}\n\nconst isValid: Rules< any > = {\n\telements: true,\n\tcustom: ( item: any, normalizedField ) => {\n\t\tconst value = normalizedField.getValue( { item } );\n\n\t\tif ( ! isEmpty( value ) && ! Number.isFinite( value ) ) {\n\t\t\treturn __( 'Value must be a number.' );\n\t\t}\n\n\t\treturn null;\n\t},\n};\n\nexport default {\n\ttype: 'number',\n\trender,\n\tEdit: 'number',\n\tsort,\n\tisValid,\n\tenableSorting: true,\n\tenableGlobalSearch: false,\n\tdefaultOperators: [\n\t\tOPERATOR_IS,\n\t\tOPERATOR_IS_NOT,\n\t\tOPERATOR_LESS_THAN,\n\t\tOPERATOR_GREATER_THAN,\n\t\tOPERATOR_LESS_THAN_OR_EQUAL,\n\t\tOPERATOR_GREATER_THAN_OR_EQUAL,\n\t\tOPERATOR_BETWEEN,\n\t],\n\tvalidOperators: [\n\t\t// Single-selection\n\t\tOPERATOR_IS,\n\t\tOPERATOR_IS_NOT,\n\t\tOPERATOR_LESS_THAN,\n\t\tOPERATOR_GREATER_THAN,\n\t\tOPERATOR_LESS_THAN_OR_EQUAL,\n\t\tOPERATOR_GREATER_THAN_OR_EQUAL,\n\t\tOPERATOR_BETWEEN,\n\t\t// Multiple-selection\n\t\tOPERATOR_IS_ANY,\n\t\tOPERATOR_IS_NONE,\n\t\tOPERATOR_IS_ALL,\n\t\tOPERATOR_IS_NOT_ALL,\n\t],\n\tgetFormat: () => ( {} ),\n} satisfies FieldType< any >;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AAOnB,uBAYO;AACP,kCAA+B;AAC/B,yBAAiB;AAQR;AANT,SAAS,QAAS,OAAiD;AAClE,SAAO,UAAU,MAAM,UAAU,UAAa,UAAU;AACzD;AAEA,SAAS,OAAQ,EAAE,MAAM,MAAM,GAAqC;AACnE,MAAK,MAAM,aAAc;AACxB,WAAO,4CAAC,4BAAAA,SAAA,EAAmB,MAAc,OAAgB;AAAA,EAC1D;AAEA,QAAM,QAAQ,MAAM,SAAU,EAAE,KAAK,CAAE;AACvC,MAAK,CAAE,CAAE,MAAM,MAAU,EAAE,SAAU,KAAM,GAAI;AAC9C,WAAO,OAAQ,KAAM,EAAE,QAAS,CAAE;AAAA,EACnC;AAEA,SAAO;AACR;AAEA,IAAM,UAAwB;AAAA,EAC7B,UAAU;AAAA,EACV,QAAQ,CAAE,MAAW,oBAAqB;AACzC,UAAM,QAAQ,gBAAgB,SAAU,EAAE,KAAK,CAAE;AAEjD,QAAK,CAAE,QAAS,KAAM,KAAK,CAAE,OAAO,SAAU,KAAM,GAAI;AACvD,iBAAO,gBAAI,yBAA0B;AAAA,IACtC;AAEA,WAAO;AAAA,EACR;AACD;AAEA,IAAO,iBAAQ;AAAA,EACd,MAAM;AAAA,EACN;AAAA,EACA,MAAM;AAAA,EACN,yBAAAC;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,gBAAgB;AAAA;AAAA,IAEf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,WAAW,OAAQ,CAAC;AACrB;",
6
- "names": ["RenderFromElements", "sort"]
4
+ "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tDataViewRenderFieldProps,\n\tField,\n\tFormatNumber,\n\tNormalizedField,\n} from '../types';\nimport type { FieldType } from '../types/private';\nimport {\n\tOPERATOR_IS,\n\tOPERATOR_IS_NOT,\n\tOPERATOR_LESS_THAN,\n\tOPERATOR_GREATER_THAN,\n\tOPERATOR_LESS_THAN_OR_EQUAL,\n\tOPERATOR_GREATER_THAN_OR_EQUAL,\n\tOPERATOR_IS_ANY,\n\tOPERATOR_IS_NONE,\n\tOPERATOR_IS_ALL,\n\tOPERATOR_IS_NOT_ALL,\n\tOPERATOR_BETWEEN,\n} from '../constants';\nimport RenderFromElements from './utils/render-from-elements';\nimport sort from './utils/sort-number';\nimport isValidRequired from './utils/is-valid-required';\nimport isValidMin from './utils/is-valid-min';\nimport isValidMax from './utils/is-valid-max';\nimport isValidElements from './utils/is-valid-elements';\n\nfunction getFormat< Item >( field: Field< Item > ): Required< FormatNumber > {\n\tconst fieldFormat = field.format as FormatNumber | undefined;\n\treturn {\n\t\tseparatorThousand:\n\t\t\tfieldFormat?.separatorThousand !== undefined &&\n\t\t\ttypeof fieldFormat.separatorThousand === 'string'\n\t\t\t\t? fieldFormat.separatorThousand\n\t\t\t\t: ',',\n\t\tseparatorDecimal:\n\t\t\tfieldFormat?.separatorDecimal !== undefined &&\n\t\t\ttypeof fieldFormat.separatorDecimal === 'string'\n\t\t\t\t? fieldFormat.separatorDecimal\n\t\t\t\t: '.',\n\t\tdecimals:\n\t\t\tfieldFormat?.decimals !== undefined &&\n\t\t\ttypeof fieldFormat.decimals === 'number' &&\n\t\t\tfieldFormat.decimals >= 0 &&\n\t\t\tfieldFormat.decimals <= 100 &&\n\t\t\tNumber.isInteger( fieldFormat.decimals )\n\t\t\t\t? fieldFormat.decimals\n\t\t\t\t: 2,\n\t};\n}\n\nexport function formatNumber(\n\tvalue: number,\n\tformat: Required< FormatNumber >\n): string {\n\tif ( ! Number.isFinite( value ) ) {\n\t\treturn String( value );\n\t}\n\tconst { separatorThousand, separatorDecimal, decimals } = format;\n\tconst fixedValue = value.toFixed( decimals );\n\tconst [ integerPart, decimalPart ] = fixedValue.split( '.' );\n\tconst formattedInteger = separatorThousand\n\t\t? integerPart.replace( /\\B(?=(\\d{3})+(?!\\d))/g, separatorThousand )\n\t\t: integerPart;\n\treturn decimals === 0\n\t\t? formattedInteger\n\t\t: formattedInteger + separatorDecimal + decimalPart;\n}\n\nfunction isEmpty( value: unknown ): value is '' | undefined | null {\n\treturn value === '' || value === undefined || value === null;\n}\n\nfunction render( { item, field }: DataViewRenderFieldProps< any > ) {\n\tif ( field.hasElements ) {\n\t\treturn <RenderFromElements item={ item } field={ field } />;\n\t}\n\n\tconst value = field.getValue( { item } );\n\tif ( [ null, undefined ].includes( value ) ) {\n\t\treturn '';\n\t}\n\n\t// If the field type is number, we've already normalized the format,\n\t// and so it's safe to tell TypeScript to trust us (\"as Required<FormatNumber>\").\n\t//\n\t// There're no runtime paths where this render function is called with a non-number field,\n\t// but TypeScript is unable to infer this, hence the type assertion.\n\tlet format: Required< FormatNumber >;\n\tif ( field.type !== 'number' ) {\n\t\tformat = getFormat( field as Field< any > );\n\t} else {\n\t\tformat = field.format as Required< FormatNumber >;\n\t}\n\n\treturn formatNumber( Number( value ), format );\n}\n\nfunction isValidCustom< Item >( item: Item, field: NormalizedField< Item > ) {\n\tconst value = field.getValue( { item } );\n\n\tif ( ! isEmpty( value ) && ! Number.isFinite( value ) ) {\n\t\treturn __( 'Value must be a number.' );\n\t}\n\n\treturn null;\n}\n\nexport default {\n\ttype: 'number',\n\trender,\n\tEdit: 'number',\n\tsort,\n\tenableSorting: true,\n\tenableGlobalSearch: false,\n\tdefaultOperators: [\n\t\tOPERATOR_IS,\n\t\tOPERATOR_IS_NOT,\n\t\tOPERATOR_LESS_THAN,\n\t\tOPERATOR_GREATER_THAN,\n\t\tOPERATOR_LESS_THAN_OR_EQUAL,\n\t\tOPERATOR_GREATER_THAN_OR_EQUAL,\n\t\tOPERATOR_BETWEEN,\n\t],\n\tvalidOperators: [\n\t\t// Single-selection\n\t\tOPERATOR_IS,\n\t\tOPERATOR_IS_NOT,\n\t\tOPERATOR_LESS_THAN,\n\t\tOPERATOR_GREATER_THAN,\n\t\tOPERATOR_LESS_THAN_OR_EQUAL,\n\t\tOPERATOR_GREATER_THAN_OR_EQUAL,\n\t\tOPERATOR_BETWEEN,\n\t\t// Multiple-selection\n\t\tOPERATOR_IS_ANY,\n\t\tOPERATOR_IS_NONE,\n\t\tOPERATOR_IS_ALL,\n\t\tOPERATOR_IS_NOT_ALL,\n\t],\n\tgetFormat,\n\tvalidate: {\n\t\trequired: isValidRequired,\n\t\tmin: isValidMin,\n\t\tmax: isValidMax,\n\t\telements: isValidElements,\n\t\tcustom: isValidCustom,\n\t},\n} satisfies FieldType< any >;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AAYnB,uBAYO;AACP,kCAA+B;AAC/B,yBAAiB;AACjB,+BAA4B;AAC5B,0BAAuB;AACvB,0BAAuB;AACvB,+BAA4B;AAkDnB;AAhDT,SAAS,UAAmB,OAAiD;AAC5E,QAAM,cAAc,MAAM;AAC1B,SAAO;AAAA,IACN,mBACC,aAAa,sBAAsB,UACnC,OAAO,YAAY,sBAAsB,WACtC,YAAY,oBACZ;AAAA,IACJ,kBACC,aAAa,qBAAqB,UAClC,OAAO,YAAY,qBAAqB,WACrC,YAAY,mBACZ;AAAA,IACJ,UACC,aAAa,aAAa,UAC1B,OAAO,YAAY,aAAa,YAChC,YAAY,YAAY,KACxB,YAAY,YAAY,OACxB,OAAO,UAAW,YAAY,QAAS,IACpC,YAAY,WACZ;AAAA,EACL;AACD;AAEO,SAAS,aACf,OACA,QACS;AACT,MAAK,CAAE,OAAO,SAAU,KAAM,GAAI;AACjC,WAAO,OAAQ,KAAM;AAAA,EACtB;AACA,QAAM,EAAE,mBAAmB,kBAAkB,SAAS,IAAI;AAC1D,QAAM,aAAa,MAAM,QAAS,QAAS;AAC3C,QAAM,CAAE,aAAa,WAAY,IAAI,WAAW,MAAO,GAAI;AAC3D,QAAM,mBAAmB,oBACtB,YAAY,QAAS,yBAAyB,iBAAkB,IAChE;AACH,SAAO,aAAa,IACjB,mBACA,mBAAmB,mBAAmB;AAC1C;AAEA,SAAS,QAAS,OAAiD;AAClE,SAAO,UAAU,MAAM,UAAU,UAAa,UAAU;AACzD;AAEA,SAAS,OAAQ,EAAE,MAAM,MAAM,GAAqC;AACnE,MAAK,MAAM,aAAc;AACxB,WAAO,4CAAC,4BAAAA,SAAA,EAAmB,MAAc,OAAgB;AAAA,EAC1D;AAEA,QAAM,QAAQ,MAAM,SAAU,EAAE,KAAK,CAAE;AACvC,MAAK,CAAE,MAAM,MAAU,EAAE,SAAU,KAAM,GAAI;AAC5C,WAAO;AAAA,EACR;AAOA,MAAI;AACJ,MAAK,MAAM,SAAS,UAAW;AAC9B,aAAS,UAAW,KAAsB;AAAA,EAC3C,OAAO;AACN,aAAS,MAAM;AAAA,EAChB;AAEA,SAAO,aAAc,OAAQ,KAAM,GAAG,MAAO;AAC9C;AAEA,SAAS,cAAuB,MAAY,OAAiC;AAC5E,QAAM,QAAQ,MAAM,SAAU,EAAE,KAAK,CAAE;AAEvC,MAAK,CAAE,QAAS,KAAM,KAAK,CAAE,OAAO,SAAU,KAAM,GAAI;AACvD,eAAO,gBAAI,yBAA0B;AAAA,EACtC;AAEA,SAAO;AACR;AAEA,IAAO,iBAAQ;AAAA,EACd,MAAM;AAAA,EACN;AAAA,EACA,MAAM;AAAA,EACN,yBAAAC;AAAA,EACA,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA,gBAAgB;AAAA;AAAA,IAEf;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EACA;AAAA,EACA,UAAU;AAAA,IACT,UAAU,yBAAAC;AAAA,IACV,KAAK,oBAAAC;AAAA,IACL,KAAK,oBAAAC;AAAA,IACL,UAAU,yBAAAC;AAAA,IACV,QAAQ;AAAA,EACT;AACD;",
6
+ "names": ["RenderFromElements", "sort", "isValidRequired", "isValidMin", "isValidMax", "isValidElements"]
7
7
  }