@webiny/app-admin 6.3.0-beta.2 → 6.3.0-beta.4

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 (234) hide show
  1. package/base/Base/DefaultFieldRenderers.js +69 -5
  2. package/base/Base/DefaultFieldRenderers.js.map +1 -1
  3. package/base/Base/DefaultLayoutRenderers.js +5 -1
  4. package/base/Base/DefaultLayoutRenderers.js.map +1 -1
  5. package/base/Base/FieldRenderers/CheckboxesRenderer.d.ts +13 -0
  6. package/base/Base/FieldRenderers/CheckboxesRenderer.js +28 -0
  7. package/base/Base/FieldRenderers/CheckboxesRenderer.js.map +1 -0
  8. package/base/Base/FieldRenderers/CodeEditorRenderer.d.ts +15 -0
  9. package/base/Base/FieldRenderers/CodeEditorRenderer.js +17 -0
  10. package/base/Base/FieldRenderers/CodeEditorRenderer.js.map +1 -0
  11. package/base/Base/FieldRenderers/DateTimeInputsRenderer.d.ts +17 -0
  12. package/base/Base/FieldRenderers/DateTimeInputsRenderer.js +66 -0
  13. package/base/Base/FieldRenderers/DateTimeInputsRenderer.js.map +1 -0
  14. package/base/Base/FieldRenderers/DateTimeRenderer.d.ts +21 -0
  15. package/base/Base/FieldRenderers/DateTimeRenderer.js +46 -0
  16. package/base/Base/FieldRenderers/DateTimeRenderer.js.map +1 -0
  17. package/base/Base/FieldRenderers/FilePickerRenderer.d.ts +12 -0
  18. package/base/Base/FieldRenderers/FilePickerRenderer.js +47 -0
  19. package/base/Base/FieldRenderers/FilePickerRenderer.js.map +1 -0
  20. package/base/Base/FieldRenderers/FileUrlPickerRenderer.d.ts +12 -0
  21. package/base/Base/FieldRenderers/FileUrlPickerRenderer.js +25 -0
  22. package/base/Base/FieldRenderers/FileUrlPickerRenderer.js.map +1 -0
  23. package/base/Base/FieldRenderers/HiddenRenderer.d.ts +12 -0
  24. package/base/Base/FieldRenderers/HiddenRenderer.js +5 -0
  25. package/base/Base/FieldRenderers/HiddenRenderer.js.map +1 -0
  26. package/base/Base/FieldRenderers/HorizontalTabsRenderer.d.ts +5 -0
  27. package/base/Base/FieldRenderers/HorizontalTabsRenderer.js +27 -0
  28. package/base/Base/FieldRenderers/HorizontalTabsRenderer.js.map +1 -0
  29. package/base/Base/FieldRenderers/InputRenderer.d.ts +4 -7
  30. package/base/Base/FieldRenderers/InputRenderer.js +2 -2
  31. package/base/Base/FieldRenderers/InputRenderer.js.map +1 -1
  32. package/base/Base/FieldRenderers/NumberInputRenderer.d.ts +12 -0
  33. package/base/Base/FieldRenderers/NumberInputRenderer.js +23 -0
  34. package/base/Base/FieldRenderers/NumberInputRenderer.js.map +1 -0
  35. package/base/Base/FieldRenderers/NumberInputsRenderer.d.ts +14 -0
  36. package/base/Base/FieldRenderers/NumberInputsRenderer.js +49 -0
  37. package/base/Base/FieldRenderers/NumberInputsRenderer.js.map +1 -0
  38. package/base/Base/FieldRenderers/ObjectRenderer/DynamicZoneRenderer.d.ts +14 -0
  39. package/base/Base/FieldRenderers/ObjectRenderer/DynamicZoneRenderer.js +20 -0
  40. package/base/Base/FieldRenderers/ObjectRenderer/DynamicZoneRenderer.js.map +1 -0
  41. package/base/Base/FieldRenderers/ObjectRenderer/KeyValueTagsRenderer.d.ts +14 -0
  42. package/base/Base/FieldRenderers/ObjectRenderer/KeyValueTagsRenderer.js +65 -0
  43. package/base/Base/FieldRenderers/ObjectRenderer/KeyValueTagsRenderer.js.map +1 -0
  44. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone.d.ts +10 -0
  45. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone.js +109 -0
  46. package/base/Base/FieldRenderers/ObjectRenderer/MultiValueDynamicZone.js.map +1 -0
  47. package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.d.ts +17 -0
  48. package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.js +55 -0
  49. package/base/Base/FieldRenderers/ObjectRenderer/ObjectAccordionMultipleRenderer.js.map +1 -0
  50. package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.d.ts +7 -3
  51. package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.js +15 -19
  52. package/base/Base/FieldRenderers/ObjectRenderer/ObjectFieldComponents.js.map +1 -1
  53. package/base/Base/FieldRenderers/ObjectRenderer/ObjectRenderer.d.ts +5 -8
  54. package/base/Base/FieldRenderers/ObjectRenderer/ObjectRenderer.js +7 -50
  55. package/base/Base/FieldRenderers/ObjectRenderer/ObjectRenderer.js.map +1 -1
  56. package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.d.ts +10 -0
  57. package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.js +64 -0
  58. package/base/Base/FieldRenderers/ObjectRenderer/SingleValueDynamicZone.js.map +1 -0
  59. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker.d.ts +10 -0
  60. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker.js +85 -0
  61. package/base/Base/FieldRenderers/ObjectRenderer/TemplatePicker.js.map +1 -0
  62. package/base/Base/FieldRenderers/PassthroughRenderer.d.ts +3 -6
  63. package/base/Base/FieldRenderers/PassthroughRenderer.js +9 -23
  64. package/base/Base/FieldRenderers/PassthroughRenderer.js.map +1 -1
  65. package/base/Base/FieldRenderers/RadioButtonsRenderer.d.ts +13 -0
  66. package/base/Base/FieldRenderers/RadioButtonsRenderer.js +27 -0
  67. package/base/Base/FieldRenderers/RadioButtonsRenderer.js.map +1 -0
  68. package/base/Base/FieldRenderers/SelectRenderer.d.ts +6 -8
  69. package/base/Base/FieldRenderers/SelectRenderer.js +8 -5
  70. package/base/Base/FieldRenderers/SelectRenderer.js.map +1 -1
  71. package/base/Base/FieldRenderers/SwitchRenderer.d.ts +12 -0
  72. package/base/Base/FieldRenderers/SwitchRenderer.js +19 -0
  73. package/base/Base/FieldRenderers/SwitchRenderer.js.map +1 -0
  74. package/base/Base/FieldRenderers/TagsRenderer.d.ts +12 -0
  75. package/base/Base/FieldRenderers/TagsRenderer.js +21 -0
  76. package/base/Base/FieldRenderers/TagsRenderer.js.map +1 -0
  77. package/base/Base/FieldRenderers/TextInputsRenderer.d.ts +14 -0
  78. package/base/Base/FieldRenderers/TextInputsRenderer.js +48 -0
  79. package/base/Base/FieldRenderers/TextInputsRenderer.js.map +1 -0
  80. package/base/Base/FieldRenderers/TextareaRenderer.d.ts +3 -6
  81. package/base/Base/FieldRenderers/TextareaRenderer.js +3 -4
  82. package/base/Base/FieldRenderers/TextareaRenderer.js.map +1 -1
  83. package/base/Base/FieldRenderers/TextareasRenderer.d.ts +14 -0
  84. package/base/Base/FieldRenderers/TextareasRenderer.js +51 -0
  85. package/base/Base/FieldRenderers/TextareasRenderer.js.map +1 -0
  86. package/base/Base/FieldRenderers/VerticalTabsRenderer.js +2 -2
  87. package/base/Base/FieldRenderers/VerticalTabsRenderer.js.map +1 -1
  88. package/base/Base/Menus.js +5 -64
  89. package/base/Base/Menus.js.map +1 -1
  90. package/base/Base/RoutesConfig.js +6 -0
  91. package/base/Base/RoutesConfig.js.map +1 -1
  92. package/exports/admin/build-params.d.ts +2 -0
  93. package/exports/admin/build-params.js +3 -0
  94. package/exports/admin/build-params.js.map +1 -1
  95. package/exports/admin/form.d.ts +5 -0
  96. package/exports/admin/form.js +8 -0
  97. package/exports/admin/form.js.map +1 -1
  98. package/exports/admin/ui.d.ts +1 -0
  99. package/exports/admin/ui.js +1 -0
  100. package/exports/admin/ui.js.map +1 -1
  101. package/exports/admin.d.ts +3 -1
  102. package/exports/admin.js +3 -1
  103. package/exports/admin.js.map +1 -1
  104. package/features/formModel/ConditionRuleEvaluator.d.ts +9 -0
  105. package/features/formModel/ConditionRuleEvaluator.js +56 -0
  106. package/features/formModel/ConditionRuleEvaluator.js.map +1 -0
  107. package/features/formModel/Field.d.ts +50 -4
  108. package/features/formModel/Field.js +254 -35
  109. package/features/formModel/Field.js.map +1 -1
  110. package/features/formModel/FieldBuilder.d.ts +17 -35
  111. package/features/formModel/FieldBuilder.js +63 -100
  112. package/features/formModel/FieldBuilder.js.map +1 -1
  113. package/features/formModel/FieldBuilder.test.js +127 -13
  114. package/features/formModel/FieldBuilder.test.js.map +1 -1
  115. package/features/formModel/FieldBuilderRegistry.d.ts +4 -0
  116. package/features/formModel/FieldBuilderRegistry.js +31 -0
  117. package/features/formModel/FieldBuilderRegistry.js.map +1 -0
  118. package/features/formModel/FocusManager.d.ts +14 -0
  119. package/features/formModel/FocusManager.js +109 -0
  120. package/features/formModel/FocusManager.js.map +1 -0
  121. package/features/formModel/FormModel.d.ts +27 -31
  122. package/features/formModel/FormModel.js +210 -403
  123. package/features/formModel/FormModel.js.map +1 -1
  124. package/features/formModel/FormModel.test.js +2044 -193
  125. package/features/formModel/FormModel.test.js.map +1 -1
  126. package/features/formModel/FormModelFactory.d.ts +4 -2
  127. package/features/formModel/FormModelFactory.js +13 -3
  128. package/features/formModel/FormModelFactory.js.map +1 -1
  129. package/features/formModel/FormView.d.ts +2 -0
  130. package/features/formModel/FormView.js +44 -37
  131. package/features/formModel/FormView.js.map +1 -1
  132. package/features/formModel/LayoutBuilderFactory.d.ts +61 -0
  133. package/features/formModel/LayoutBuilderFactory.js +386 -0
  134. package/features/formModel/LayoutBuilderFactory.js.map +1 -0
  135. package/features/formModel/LayoutMutator.d.ts +11 -0
  136. package/features/formModel/LayoutMutator.js +136 -0
  137. package/features/formModel/LayoutMutator.js.map +1 -0
  138. package/features/formModel/LayoutResolver.d.ts +26 -0
  139. package/features/formModel/LayoutResolver.js +239 -0
  140. package/features/formModel/LayoutResolver.js.map +1 -0
  141. package/features/formModel/ObjectField.d.ts +55 -4
  142. package/features/formModel/ObjectField.js +499 -82
  143. package/features/formModel/ObjectField.js.map +1 -1
  144. package/features/formModel/Rules.test.d.ts +1 -0
  145. package/features/formModel/Rules.test.js +289 -0
  146. package/features/formModel/Rules.test.js.map +1 -0
  147. package/features/formModel/abstractions.d.ts +402 -52
  148. package/features/formModel/abstractions.js +55 -0
  149. package/features/formModel/abstractions.js.map +1 -1
  150. package/features/formModel/createFieldRenderer.d.ts +20 -0
  151. package/features/formModel/createFieldRenderer.js +15 -0
  152. package/features/formModel/createFieldRenderer.js.map +1 -0
  153. package/features/formModel/demo/FieldRenderersDemoPresenter.d.ts +18 -0
  154. package/features/formModel/demo/FieldRenderersDemoPresenter.js +225 -0
  155. package/features/formModel/demo/FieldRenderersDemoPresenter.js.map +1 -0
  156. package/features/formModel/demo/FormModelDemo.d.ts +4 -0
  157. package/features/formModel/demo/FormModelDemo.js +230 -0
  158. package/features/formModel/demo/FormModelDemo.js.map +1 -0
  159. package/features/formModel/demo/FormModelDemoPresenter.d.ts +22 -0
  160. package/features/formModel/demo/FormModelDemoPresenter.js +121 -0
  161. package/features/formModel/demo/FormModelDemoPresenter.js.map +1 -0
  162. package/features/formModel/demo/FormModelPhase11Presenter.d.ts +25 -0
  163. package/features/formModel/demo/FormModelPhase11Presenter.js +104 -0
  164. package/features/formModel/demo/FormModelPhase11Presenter.js.map +1 -0
  165. package/features/formModel/demo/FormModelPhase8c1Presenter.d.ts +23 -0
  166. package/features/formModel/demo/FormModelPhase8c1Presenter.js +62 -0
  167. package/features/formModel/demo/FormModelPhase8c1Presenter.js.map +1 -0
  168. package/features/formModel/feature.js +12 -0
  169. package/features/formModel/feature.js.map +1 -1
  170. package/features/formModel/fieldTypes/BooleanFieldType.d.ts +19 -0
  171. package/features/formModel/fieldTypes/BooleanFieldType.js +23 -0
  172. package/features/formModel/fieldTypes/BooleanFieldType.js.map +1 -0
  173. package/features/formModel/fieldTypes/DateTimeFieldType.d.ts +173 -0
  174. package/features/formModel/fieldTypes/DateTimeFieldType.js +369 -0
  175. package/features/formModel/fieldTypes/DateTimeFieldType.js.map +1 -0
  176. package/features/formModel/fieldTypes/FileFieldType.d.ts +18 -0
  177. package/features/formModel/fieldTypes/FileFieldType.js +20 -0
  178. package/features/formModel/fieldTypes/FileFieldType.js.map +1 -0
  179. package/features/formModel/fieldTypes/FileUrlFieldType.d.ts +18 -0
  180. package/features/formModel/fieldTypes/FileUrlFieldType.js +20 -0
  181. package/features/formModel/fieldTypes/FileUrlFieldType.js.map +1 -0
  182. package/features/formModel/fieldTypes/NumberFieldType.d.ts +19 -0
  183. package/features/formModel/fieldTypes/NumberFieldType.js +27 -0
  184. package/features/formModel/fieldTypes/NumberFieldType.js.map +1 -0
  185. package/features/formModel/fieldTypes/ObjectFieldType.d.ts +34 -0
  186. package/features/formModel/fieldTypes/ObjectFieldType.js +109 -0
  187. package/features/formModel/fieldTypes/ObjectFieldType.js.map +1 -0
  188. package/features/formModel/fieldTypes/TextFieldType.d.ts +18 -0
  189. package/features/formModel/fieldTypes/TextFieldType.js +20 -0
  190. package/features/formModel/fieldTypes/TextFieldType.js.map +1 -0
  191. package/features/formModel/fieldTypes/index.d.ts +7 -0
  192. package/features/formModel/fieldTypes/index.js +9 -0
  193. package/features/formModel/fieldTypes/index.js.map +1 -0
  194. package/features/formModel/index.d.ts +13 -4
  195. package/features/formModel/index.js +21 -2
  196. package/features/formModel/index.js.map +1 -1
  197. package/features/formModel/renderers.d.ts +15 -1
  198. package/features/formModel/renderers.js +15 -1
  199. package/features/formModel/renderers.js.map +1 -1
  200. package/features/tools/LexicalContext/LexicalContext.d.ts +14 -0
  201. package/features/tools/LexicalContext/LexicalContext.js +22 -0
  202. package/features/tools/LexicalContext/LexicalContext.js.map +1 -0
  203. package/features/tools/LexicalContext/abstractions.d.ts +11 -0
  204. package/features/tools/LexicalContext/abstractions.js +4 -0
  205. package/features/tools/LexicalContext/abstractions.js.map +1 -0
  206. package/features/tools/LexicalContext/index.d.ts +2 -0
  207. package/features/tools/LexicalContext/index.js +3 -0
  208. package/features/tools/LexicalContext/index.js.map +1 -0
  209. package/features/tools/feature.js +2 -0
  210. package/features/tools/feature.js.map +1 -1
  211. package/features/tools/index.d.ts +1 -0
  212. package/features/tools/index.js +1 -0
  213. package/features/tools/index.js.map +1 -1
  214. package/index.d.ts +8 -1
  215. package/index.js +7 -0
  216. package/index.js.map +1 -1
  217. package/package.json +30 -24
  218. package/presentation/installation/components/SystemInstaller/steps/AdminUserStep/createPasswordValidator.js +1 -1
  219. package/presentation/installation/components/SystemInstaller/steps/AdminUserStep/createPasswordValidator.js.map +1 -1
  220. package/presentation/lexicalContext/useLexicalContext.d.ts +3 -0
  221. package/presentation/lexicalContext/useLexicalContext.js +14 -0
  222. package/presentation/lexicalContext/useLexicalContext.js.map +1 -0
  223. package/presentation/textToLexicalTool/TextToLexicalTool.d.ts +3 -0
  224. package/presentation/textToLexicalTool/TextToLexicalTool.js +6 -2
  225. package/presentation/textToLexicalTool/TextToLexicalTool.js.map +1 -1
  226. package/presentation/textToLexicalTool/textToLexicalState.d.ts +2 -1
  227. package/presentation/textToLexicalTool/textToLexicalState.js +15 -3
  228. package/presentation/textToLexicalTool/textToLexicalState.js.map +1 -1
  229. package/routes.d.ts +1 -0
  230. package/routes.js +4 -0
  231. package/routes.js.map +1 -1
  232. package/base/Base/FieldRenderers/ObjectRenderer/ObjectListFlatRenderer.d.ts +0 -21
  233. package/base/Base/FieldRenderers/ObjectRenderer/ObjectListFlatRenderer.js +0 -28
  234. package/base/Base/FieldRenderers/ObjectRenderer/ObjectListFlatRenderer.js.map +0 -1
@@ -0,0 +1,369 @@
1
+ import { FieldType } from "../abstractions.js";
2
+ import { FieldBuilder } from "../FieldBuilder.js";
3
+ export class DateTimeFieldBuilder extends FieldBuilder {
4
+ _subtype = "date";
5
+ constructor() {
6
+ super("datetime");
7
+ this._config.renderer = "dateTimeInput";
8
+ this._config.rendererSettings = {
9
+ type: "date"
10
+ };
11
+ }
12
+ list() {
13
+ super.list();
14
+ this._config.renderer = "dateTimeInputs";
15
+ return this;
16
+ }
17
+
18
+ /**
19
+ * Calendar date only.
20
+ * @example datetime().dateOnly()
21
+ *
22
+ * Value format: `"2026-05-01"` (YYYY-MM-DD)
23
+ */
24
+ dateOnly() {
25
+ this._subtype = "date";
26
+ this._config.renderer = "dateTimeInput";
27
+ this._config.rendererSettings = {
28
+ ...this._config.rendererSettings,
29
+ type: "date"
30
+ };
31
+ return this;
32
+ }
33
+
34
+ /**
35
+ * Time only, no date component.
36
+ * @example datetime().timeOnly()
37
+ *
38
+ * Value format: `"14:30:00"` (HH:mm:ss)
39
+ */
40
+ timeOnly() {
41
+ this._subtype = "time";
42
+ this._config.renderer = "dateTimeInput";
43
+ this._config.rendererSettings = {
44
+ ...this._config.rendererSettings,
45
+ type: "time"
46
+ };
47
+ return this;
48
+ }
49
+
50
+ /**
51
+ * Date and time with explicit timezone offset.
52
+ * @example datetime().withTimezone()
53
+ *
54
+ * Value format: `"2026-05-01T14:30:00+02:00"` (ISO 8601 with offset)
55
+ */
56
+ withTimezone() {
57
+ this._subtype = "dateTimeWithTimezone";
58
+ this._config.renderer = "dateTimeInput";
59
+ this._config.rendererSettings = {
60
+ ...this._config.rendererSettings,
61
+ type: "dateTimeWithTimezone"
62
+ };
63
+ return this;
64
+ }
65
+
66
+ /**
67
+ * Date and time in UTC, no timezone offset.
68
+ * @example datetime().withoutTimezone()
69
+ *
70
+ * Value format: `"2026-05-01T14:30:00.000Z"` (ISO 8601 UTC)
71
+ */
72
+ withoutTimezone() {
73
+ this._subtype = "dateTimeWithoutTimezone";
74
+ this._config.renderer = "dateTimeInput";
75
+ this._config.rendererSettings = {
76
+ ...this._config.rendererSettings,
77
+ type: "dateTimeWithoutTimezone"
78
+ };
79
+ return this;
80
+ }
81
+
82
+ /**
83
+ * Month and year picker.
84
+ * @example datetime().monthOnly()
85
+ *
86
+ * Value format: `"2026-05"` (YYYY-MM)
87
+ */
88
+ monthOnly() {
89
+ this._subtype = "month";
90
+ this._config.renderer = "dateTimeInput";
91
+ this._config.rendererSettings = {
92
+ ...this._config.rendererSettings,
93
+ type: "month"
94
+ };
95
+ return this;
96
+ }
97
+
98
+ /**
99
+ * ISO week picker. Selecting any day highlights and selects the full week.
100
+ * @example
101
+ * datetime().weekOnly()
102
+ * datetime().weekOnly({ startsOn: 1 }) // weeks start on Monday
103
+ *
104
+ * Value format: `"2026-W18"` (YYYY-Www)
105
+ */
106
+ weekOnly(options) {
107
+ this._subtype = "week";
108
+ this._config.renderer = "dateTimeInput";
109
+ this._config.rendererSettings = {
110
+ ...this._config.rendererSettings,
111
+ type: "week",
112
+ ...(options?.startsOn !== undefined && {
113
+ weekStartsOn: options.startsOn
114
+ })
115
+ };
116
+ return this;
117
+ }
118
+
119
+ /**
120
+ * Year picker with a scrollable grid.
121
+ * @example
122
+ * datetime().yearOnly()
123
+ * datetime().yearOnly({ range: [2010, 2030] })
124
+ *
125
+ * Value format: `2026` (number)
126
+ */
127
+ yearOnly(options) {
128
+ this._subtype = "year";
129
+ this._config.renderer = "dateTimeInput";
130
+ this._config.rendererSettings = {
131
+ ...this._config.rendererSettings,
132
+ type: "year",
133
+ ...(options?.range && {
134
+ yearRange: options.range
135
+ })
136
+ };
137
+ return this;
138
+ }
139
+
140
+ /**
141
+ * Date range picker with a two-month calendar.
142
+ * @example datetime().dateRange()
143
+ *
144
+ * Value format: `{ from: "2026-05-01", to: "2026-05-15" }`
145
+ */
146
+ dateRange() {
147
+ this._subtype = "dateRange";
148
+ this._config.renderer = "dateTimeInput";
149
+ this._config.rendererSettings = {
150
+ ...this._config.rendererSettings,
151
+ type: "dateRange"
152
+ };
153
+ return this;
154
+ }
155
+
156
+ /**
157
+ * Select multiple individual dates.
158
+ * @example datetime().multipleDates()
159
+ *
160
+ * Value format: `["2026-05-01", "2026-05-03"]`
161
+ */
162
+ multipleDates() {
163
+ this._subtype = "multipleDates";
164
+ this._config.renderer = "dateTimeInput";
165
+ this._config.rendererSettings = {
166
+ ...this._config.rendererSettings,
167
+ type: "multipleDates"
168
+ };
169
+ return this;
170
+ }
171
+
172
+ /**
173
+ * Select multiple months.
174
+ * @example datetime().multipleMonths()
175
+ *
176
+ * Value format: `["2026-01", "2026-03"]`
177
+ */
178
+ multipleMonths() {
179
+ this._subtype = "multipleMonths";
180
+ this._config.renderer = "dateTimeInput";
181
+ this._config.rendererSettings = {
182
+ ...this._config.rendererSettings,
183
+ type: "multipleMonths"
184
+ };
185
+ return this;
186
+ }
187
+
188
+ /**
189
+ * Select multiple years.
190
+ * @example
191
+ * datetime().multipleYears()
192
+ * datetime().multipleYears({ range: [2020, 2035] })
193
+ *
194
+ * Value format: `[2024, 2025, 2026]`
195
+ */
196
+ multipleYears(options) {
197
+ this._subtype = "multipleYears";
198
+ this._config.renderer = "dateTimeInput";
199
+ this._config.rendererSettings = {
200
+ ...this._config.rendererSettings,
201
+ type: "multipleYears",
202
+ ...(options?.range && {
203
+ yearRange: options.range
204
+ })
205
+ };
206
+ return this;
207
+ }
208
+
209
+ /**
210
+ * Add quick-select preset buttons to the picker. Available on all variants.
211
+ * Each preset's `value` function is called at click time, and the variant
212
+ * handles formatting the Date into its value type.
213
+ * @example
214
+ * datetime().dateOnly().presets([
215
+ * { label: "Today", value: () => new Date() },
216
+ * { label: "In a week", value: () => addDays(new Date(), 7) }
217
+ * ])
218
+ */
219
+ presets(presets) {
220
+ this._config.rendererSettings = {
221
+ ...this._config.rendererSettings,
222
+ presets
223
+ };
224
+ return this;
225
+ }
226
+
227
+ /**
228
+ * Customize the display format shown in the picker trigger.
229
+ * Uses date-fns format tokens.
230
+ * @example
231
+ * datetime().dateOnly().displayFormat("MM/dd/yyyy") // "05/01/2026"
232
+ * datetime().dateOnly().displayFormat("dd MMM yyyy") // "01 May 2026"
233
+ * datetime().monthOnly().displayFormat("MMMM yyyy") // "May 2026"
234
+ */
235
+ displayFormat(format) {
236
+ this._config.rendererSettings = {
237
+ ...this._config.rendererSettings,
238
+ displayFormat: format
239
+ };
240
+ return this;
241
+ }
242
+ normalizeValue(value) {
243
+ if (value == null || value === "") {
244
+ return value;
245
+ }
246
+ switch (this._subtype) {
247
+ case "date":
248
+ return normalizeDateOnly(String(value));
249
+ case "time":
250
+ return normalizeTime(String(value));
251
+ case "dateTimeWithoutTimezone":
252
+ return normalizeDateTimeWithoutTimezone(String(value));
253
+ case "dateTimeWithTimezone":
254
+ return normalizeDateTimeWithTimezone(String(value));
255
+ case "month":
256
+ return normalizeMonth(String(value));
257
+ case "week":
258
+ return normalizeWeek(String(value));
259
+ case "year":
260
+ return normalizeYear(value);
261
+ case "dateRange":
262
+ case "multipleDates":
263
+ case "multipleMonths":
264
+ return value;
265
+ case "multipleYears":
266
+ return normalizeMultipleYears(value);
267
+ default:
268
+ return value;
269
+ }
270
+ }
271
+ }
272
+ function normalizeDateOnly(value) {
273
+ try {
274
+ return new Date(value).toISOString().slice(0, 10);
275
+ } catch {
276
+ return value;
277
+ }
278
+ }
279
+ function normalizeTime(value) {
280
+ if (!value.includes(":")) {
281
+ return value;
282
+ }
283
+ const parts = value.split(":");
284
+ if (parts.length === 3) {
285
+ return value;
286
+ }
287
+ if (parts.length === 2) {
288
+ return `${value}:00`;
289
+ }
290
+ return value;
291
+ }
292
+ function normalizeDateTimeWithoutTimezone(value) {
293
+ if (!value.includes(" ") && !value.includes("T")) {
294
+ return value;
295
+ }
296
+ try {
297
+ const normalized = value.includes(" ") ? value.replace(" ", "T") : value;
298
+ const withZ = normalized.endsWith("Z") || normalized.includes("+") || /\d-\d{2}:\d{2}$/.test(normalized) ? normalized : `${normalized}.000Z`;
299
+ return new Date(withZ).toISOString();
300
+ } catch {
301
+ return value;
302
+ }
303
+ }
304
+ function normalizeDateTimeWithTimezone(value) {
305
+ if (!value.includes("T")) {
306
+ return value;
307
+ }
308
+ const [initialDate, rest] = value.split("T");
309
+ if (!rest) {
310
+ return value;
311
+ }
312
+ let date;
313
+ try {
314
+ date = new Date(initialDate).toISOString().slice(0, 10);
315
+ } catch {
316
+ return value;
317
+ }
318
+ const sign = rest.includes("+") ? "+" : "-";
319
+ const [timePart, tz] = rest.split(sign);
320
+ const time = normalizeTime(timePart);
321
+ return `${date}T${time}${sign}${tz}`;
322
+ }
323
+ function normalizeMonth(value) {
324
+ if (/^\d{4}-\d{2}$/.test(value)) {
325
+ return value;
326
+ }
327
+ try {
328
+ const d = new Date(value);
329
+ const y = d.getFullYear();
330
+ const m = String(d.getMonth() + 1).padStart(2, "0");
331
+ return `${y}-${m}`;
332
+ } catch {
333
+ return value;
334
+ }
335
+ }
336
+ function normalizeWeek(value) {
337
+ if (/^\d{4}-W\d{2}$/.test(value)) {
338
+ return value;
339
+ }
340
+ return value;
341
+ }
342
+ function normalizeYear(value) {
343
+ const num = Number(value);
344
+ if (!Number.isNaN(num) && Number.isFinite(num)) {
345
+ return Math.round(num);
346
+ }
347
+ return value;
348
+ }
349
+ function normalizeMultipleYears(value) {
350
+ if (!Array.isArray(value)) {
351
+ return value;
352
+ }
353
+ return value.map(v => {
354
+ const num = Number(v);
355
+ return !Number.isNaN(num) && Number.isFinite(num) ? Math.round(num) : v;
356
+ });
357
+ }
358
+ class DateTimeFieldTypeFactory {
359
+ type = "datetime";
360
+ create(_registry) {
361
+ return new DateTimeFieldBuilder();
362
+ }
363
+ }
364
+ export const DateTimeFieldType = FieldType.createImplementation({
365
+ implementation: DateTimeFieldTypeFactory,
366
+ dependencies: []
367
+ });
368
+
369
+ //# sourceMappingURL=DateTimeFieldType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FieldType","FieldBuilder","DateTimeFieldBuilder","_subtype","constructor","_config","renderer","rendererSettings","type","list","dateOnly","timeOnly","withTimezone","withoutTimezone","monthOnly","weekOnly","options","startsOn","undefined","weekStartsOn","yearOnly","range","yearRange","dateRange","multipleDates","multipleMonths","multipleYears","presets","displayFormat","format","normalizeValue","value","normalizeDateOnly","String","normalizeTime","normalizeDateTimeWithoutTimezone","normalizeDateTimeWithTimezone","normalizeMonth","normalizeWeek","normalizeYear","normalizeMultipleYears","Date","toISOString","slice","includes","parts","split","length","normalized","replace","withZ","endsWith","test","initialDate","rest","date","sign","timePart","tz","time","d","y","getFullYear","m","getMonth","padStart","num","Number","isNaN","isFinite","Math","round","Array","isArray","map","v","DateTimeFieldTypeFactory","create","_registry","DateTimeFieldType","createImplementation","implementation","dependencies"],"sources":["DateTimeFieldType.ts"],"sourcesContent":["import { FieldType, type IFieldTypeFactory } from \"../abstractions.js\";\nimport { FieldBuilder } from \"../FieldBuilder.js\";\n\ntype DateTimeSubtype =\n | \"date\"\n | \"time\"\n | \"dateTimeWithTimezone\"\n | \"dateTimeWithoutTimezone\"\n | \"month\"\n | \"week\"\n | \"year\"\n | \"dateRange\"\n | \"multipleDates\"\n | \"multipleMonths\"\n | \"multipleYears\";\n\nexport class DateTimeFieldBuilder extends FieldBuilder<\"datetime\"> {\n private _subtype: DateTimeSubtype = \"date\";\n\n constructor() {\n super(\"datetime\");\n this._config.renderer = \"dateTimeInput\";\n this._config.rendererSettings = { type: \"date\" };\n }\n\n override list(): this {\n super.list();\n this._config.renderer = \"dateTimeInputs\";\n return this;\n }\n\n /**\n * Calendar date only.\n * @example datetime().dateOnly()\n *\n * Value format: `\"2026-05-01\"` (YYYY-MM-DD)\n */\n dateOnly(): this {\n this._subtype = \"date\";\n this._config.renderer = \"dateTimeInput\";\n this._config.rendererSettings = { ...this._config.rendererSettings, type: \"date\" };\n return this;\n }\n\n /**\n * Time only, no date component.\n * @example datetime().timeOnly()\n *\n * Value format: `\"14:30:00\"` (HH:mm:ss)\n */\n timeOnly(): this {\n this._subtype = \"time\";\n this._config.renderer = \"dateTimeInput\";\n this._config.rendererSettings = { ...this._config.rendererSettings, type: \"time\" };\n return this;\n }\n\n /**\n * Date and time with explicit timezone offset.\n * @example datetime().withTimezone()\n *\n * Value format: `\"2026-05-01T14:30:00+02:00\"` (ISO 8601 with offset)\n */\n withTimezone(): this {\n this._subtype = \"dateTimeWithTimezone\";\n this._config.renderer = \"dateTimeInput\";\n this._config.rendererSettings = {\n ...this._config.rendererSettings,\n type: \"dateTimeWithTimezone\"\n };\n return this;\n }\n\n /**\n * Date and time in UTC, no timezone offset.\n * @example datetime().withoutTimezone()\n *\n * Value format: `\"2026-05-01T14:30:00.000Z\"` (ISO 8601 UTC)\n */\n withoutTimezone(): this {\n this._subtype = \"dateTimeWithoutTimezone\";\n this._config.renderer = \"dateTimeInput\";\n this._config.rendererSettings = {\n ...this._config.rendererSettings,\n type: \"dateTimeWithoutTimezone\"\n };\n return this;\n }\n\n /**\n * Month and year picker.\n * @example datetime().monthOnly()\n *\n * Value format: `\"2026-05\"` (YYYY-MM)\n */\n monthOnly(): this {\n this._subtype = \"month\";\n this._config.renderer = \"dateTimeInput\";\n this._config.rendererSettings = { ...this._config.rendererSettings, type: \"month\" };\n return this;\n }\n\n /**\n * ISO week picker. Selecting any day highlights and selects the full week.\n * @example\n * datetime().weekOnly()\n * datetime().weekOnly({ startsOn: 1 }) // weeks start on Monday\n *\n * Value format: `\"2026-W18\"` (YYYY-Www)\n */\n weekOnly(options?: { startsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6 }): this {\n this._subtype = \"week\";\n this._config.renderer = \"dateTimeInput\";\n this._config.rendererSettings = {\n ...this._config.rendererSettings,\n type: \"week\",\n ...(options?.startsOn !== undefined && { weekStartsOn: options.startsOn })\n };\n return this;\n }\n\n /**\n * Year picker with a scrollable grid.\n * @example\n * datetime().yearOnly()\n * datetime().yearOnly({ range: [2010, 2030] })\n *\n * Value format: `2026` (number)\n */\n yearOnly(options?: { range?: [number, number] }): this {\n this._subtype = \"year\";\n this._config.renderer = \"dateTimeInput\";\n this._config.rendererSettings = {\n ...this._config.rendererSettings,\n type: \"year\",\n ...(options?.range && { yearRange: options.range })\n };\n return this;\n }\n\n /**\n * Date range picker with a two-month calendar.\n * @example datetime().dateRange()\n *\n * Value format: `{ from: \"2026-05-01\", to: \"2026-05-15\" }`\n */\n dateRange(): this {\n this._subtype = \"dateRange\";\n this._config.renderer = \"dateTimeInput\";\n this._config.rendererSettings = { ...this._config.rendererSettings, type: \"dateRange\" };\n return this;\n }\n\n /**\n * Select multiple individual dates.\n * @example datetime().multipleDates()\n *\n * Value format: `[\"2026-05-01\", \"2026-05-03\"]`\n */\n multipleDates(): this {\n this._subtype = \"multipleDates\";\n this._config.renderer = \"dateTimeInput\";\n this._config.rendererSettings = {\n ...this._config.rendererSettings,\n type: \"multipleDates\"\n };\n return this;\n }\n\n /**\n * Select multiple months.\n * @example datetime().multipleMonths()\n *\n * Value format: `[\"2026-01\", \"2026-03\"]`\n */\n multipleMonths(): this {\n this._subtype = \"multipleMonths\";\n this._config.renderer = \"dateTimeInput\";\n this._config.rendererSettings = {\n ...this._config.rendererSettings,\n type: \"multipleMonths\"\n };\n return this;\n }\n\n /**\n * Select multiple years.\n * @example\n * datetime().multipleYears()\n * datetime().multipleYears({ range: [2020, 2035] })\n *\n * Value format: `[2024, 2025, 2026]`\n */\n multipleYears(options?: { range?: [number, number] }): this {\n this._subtype = \"multipleYears\";\n this._config.renderer = \"dateTimeInput\";\n this._config.rendererSettings = {\n ...this._config.rendererSettings,\n type: \"multipleYears\",\n ...(options?.range && { yearRange: options.range })\n };\n return this;\n }\n\n /**\n * Add quick-select preset buttons to the picker. Available on all variants.\n * Each preset's `value` function is called at click time, and the variant\n * handles formatting the Date into its value type.\n * @example\n * datetime().dateOnly().presets([\n * { label: \"Today\", value: () => new Date() },\n * { label: \"In a week\", value: () => addDays(new Date(), 7) }\n * ])\n */\n presets(presets: Array<{ label: string; value: () => Date }>): this {\n this._config.rendererSettings = { ...this._config.rendererSettings, presets };\n return this;\n }\n\n /**\n * Customize the display format shown in the picker trigger.\n * Uses date-fns format tokens.\n * @example\n * datetime().dateOnly().displayFormat(\"MM/dd/yyyy\") // \"05/01/2026\"\n * datetime().dateOnly().displayFormat(\"dd MMM yyyy\") // \"01 May 2026\"\n * datetime().monthOnly().displayFormat(\"MMMM yyyy\") // \"May 2026\"\n */\n displayFormat(format: string): this {\n this._config.rendererSettings = { ...this._config.rendererSettings, displayFormat: format };\n return this;\n }\n\n override normalizeValue(value: unknown): unknown {\n if (value == null || value === \"\") {\n return value;\n }\n switch (this._subtype) {\n case \"date\":\n return normalizeDateOnly(String(value));\n case \"time\":\n return normalizeTime(String(value));\n case \"dateTimeWithoutTimezone\":\n return normalizeDateTimeWithoutTimezone(String(value));\n case \"dateTimeWithTimezone\":\n return normalizeDateTimeWithTimezone(String(value));\n case \"month\":\n return normalizeMonth(String(value));\n case \"week\":\n return normalizeWeek(String(value));\n case \"year\":\n return normalizeYear(value);\n case \"dateRange\":\n case \"multipleDates\":\n case \"multipleMonths\":\n return value;\n case \"multipleYears\":\n return normalizeMultipleYears(value);\n default:\n return value;\n }\n }\n}\n\nfunction normalizeDateOnly(value: string): string {\n try {\n return new Date(value).toISOString().slice(0, 10);\n } catch {\n return value;\n }\n}\n\nfunction normalizeTime(value: string): string {\n if (!value.includes(\":\")) {\n return value;\n }\n const parts = value.split(\":\");\n if (parts.length === 3) {\n return value;\n }\n if (parts.length === 2) {\n return `${value}:00`;\n }\n return value;\n}\n\nfunction normalizeDateTimeWithoutTimezone(value: string): string {\n if (!value.includes(\" \") && !value.includes(\"T\")) {\n return value;\n }\n try {\n const normalized = value.includes(\" \") ? value.replace(\" \", \"T\") : value;\n const withZ =\n normalized.endsWith(\"Z\") ||\n normalized.includes(\"+\") ||\n /\\d-\\d{2}:\\d{2}$/.test(normalized)\n ? normalized\n : `${normalized}.000Z`;\n return new Date(withZ).toISOString();\n } catch {\n return value;\n }\n}\n\nfunction normalizeDateTimeWithTimezone(value: string): string {\n if (!value.includes(\"T\")) {\n return value;\n }\n const [initialDate, rest] = value.split(\"T\");\n if (!rest) {\n return value;\n }\n\n let date: string;\n try {\n date = new Date(initialDate).toISOString().slice(0, 10);\n } catch {\n return value;\n }\n\n const sign = rest.includes(\"+\") ? \"+\" : \"-\";\n const [timePart, tz] = rest.split(sign);\n const time = normalizeTime(timePart);\n\n return `${date}T${time}${sign}${tz}`;\n}\n\nfunction normalizeMonth(value: string): string {\n if (/^\\d{4}-\\d{2}$/.test(value)) {\n return value;\n }\n try {\n const d = new Date(value);\n const y = d.getFullYear();\n const m = String(d.getMonth() + 1).padStart(2, \"0\");\n return `${y}-${m}`;\n } catch {\n return value;\n }\n}\n\nfunction normalizeWeek(value: string): string {\n if (/^\\d{4}-W\\d{2}$/.test(value)) {\n return value;\n }\n return value;\n}\n\nfunction normalizeYear(value: unknown): number | unknown {\n const num = Number(value);\n if (!Number.isNaN(num) && Number.isFinite(num)) {\n return Math.round(num);\n }\n return value;\n}\n\nfunction normalizeMultipleYears(value: unknown): unknown {\n if (!Array.isArray(value)) {\n return value;\n }\n return value.map(v => {\n const num = Number(v);\n return !Number.isNaN(num) && Number.isFinite(num) ? Math.round(num) : v;\n });\n}\n\nclass DateTimeFieldTypeFactory implements IFieldTypeFactory {\n readonly type = \"datetime\";\n create(_registry: any) {\n return new DateTimeFieldBuilder();\n }\n}\n\nexport const DateTimeFieldType = FieldType.createImplementation({\n implementation: DateTimeFieldTypeFactory,\n dependencies: []\n});\n\ndeclare module \"../abstractions.js\" {\n interface IFieldBuilderRegistry {\n /**\n * Defines a field that stores date and/or time values.\n *\n * Variant methods (pick one):\n * - `dateOnly()` — \"2026-05-01\"\n * - `timeOnly()` — \"14:30:00\"\n * - `withoutTimezone()` — \"2026-05-01T14:30:00.000Z\"\n * - `withTimezone()` — \"2026-05-01T14:30:00+02:00\"\n * - `monthOnly()` — \"2026-05\"\n * - `weekOnly()` — \"2026-W18\"\n * - `yearOnly()` — 2026\n * - `dateRange()` — { from: \"2026-05-01\", to: \"2026-05-15\" }\n * - `multipleDates()` — [\"2026-05-01\", \"2026-05-03\"]\n * - `multipleMonths()` — [\"2026-01\", \"2026-03\"]\n * - `multipleYears()` — [2024, 2025, 2026]\n *\n * Configuration methods (chain after variant):\n * - `.presets([...])` — quick-select buttons (all variants)\n * - `.displayFormat(\"MM/dd/yyyy\")` — customize trigger display\n *\n * Variant-specific options (passed to variant method):\n * - `yearOnly({ range: [2020, 2030] })` — year range\n * - `multipleYears({ range: [2020, 2035] })` — year range\n * - `weekOnly({ startsOn: 1 })` — first day of week (0=Sun, 1=Mon)\n *\n * @example\n * datetime() // full UTC datetime (default)\n * datetime().dateOnly() // birthdays, due dates, holidays\n * datetime().timeOnly() // opening hours, daily reminders\n * datetime().withTimezone() // events tied to a specific locale\n * datetime().withoutTimezone() // timestamps, logs, sortable moments\n * datetime().monthOnly() // billing cycles, report periods\n * datetime().weekOnly() // sprint planning, weekly schedules\n * datetime().yearOnly({ range: [2010, 2030] }) // fiscal years\n * datetime().dateRange() // vacation requests, booking windows\n * datetime().multipleDates() // blackout dates, recurring events\n * datetime().multipleMonths() // seasonal availability\n * datetime().multipleYears({ range: [2020, 2035] }) // multi-year budgets\n * datetime().dateOnly().presets([...]).displayFormat(\"dd/MM/yyyy\")\n */\n datetime(): DateTimeFieldBuilder;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,18 @@
1
+ import { type IFieldTypeFactory } from "../abstractions.js";
2
+ import { FieldBuilder } from "../FieldBuilder.js";
3
+ export declare class FileFieldBuilder extends FieldBuilder<"file"> {
4
+ constructor();
5
+ }
6
+ declare class FileFieldTypeFactory implements IFieldTypeFactory {
7
+ readonly type = "file";
8
+ create(_registry: any): FileFieldBuilder;
9
+ }
10
+ export declare const FileFieldType: typeof FileFieldTypeFactory & {
11
+ __abstraction: import("@webiny/di").Abstraction<IFieldTypeFactory>;
12
+ };
13
+ declare module "../abstractions.js" {
14
+ interface IFieldBuilderRegistry {
15
+ file(): IFieldBuilder<"file", false, FileValue | null>;
16
+ }
17
+ }
18
+ export {};
@@ -0,0 +1,20 @@
1
+ import { FieldType } from "../abstractions.js";
2
+ import { FieldBuilder } from "../FieldBuilder.js";
3
+ export class FileFieldBuilder extends FieldBuilder {
4
+ constructor() {
5
+ super("file");
6
+ this._config.renderer = "filePicker";
7
+ }
8
+ }
9
+ class FileFieldTypeFactory {
10
+ type = "file";
11
+ create(_registry) {
12
+ return new FileFieldBuilder();
13
+ }
14
+ }
15
+ export const FileFieldType = FieldType.createImplementation({
16
+ implementation: FileFieldTypeFactory,
17
+ dependencies: []
18
+ });
19
+
20
+ //# sourceMappingURL=FileFieldType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FieldType","FieldBuilder","FileFieldBuilder","constructor","_config","renderer","FileFieldTypeFactory","type","create","_registry","FileFieldType","createImplementation","implementation","dependencies"],"sources":["FileFieldType.ts"],"sourcesContent":["import { FieldType, type IFieldTypeFactory } from \"../abstractions.js\";\nimport { FieldBuilder } from \"../FieldBuilder.js\";\n\nexport class FileFieldBuilder extends FieldBuilder<\"file\"> {\n constructor() {\n super(\"file\");\n this._config.renderer = \"filePicker\";\n }\n}\n\nclass FileFieldTypeFactory implements IFieldTypeFactory {\n readonly type = \"file\";\n create(_registry: any) {\n return new FileFieldBuilder();\n }\n}\n\nexport const FileFieldType = FieldType.createImplementation({\n implementation: FileFieldTypeFactory,\n dependencies: []\n});\n\ndeclare module \"../abstractions.js\" {\n interface IFieldBuilderRegistry {\n file(): IFieldBuilder<\"file\", false, FileValue | null>;\n }\n}\n"],"mappings":"AAAA,SAASA,SAAS;AAClB,SAASC,YAAY;AAErB,OAAO,MAAMC,gBAAgB,SAASD,YAAY,CAAS;EACvDE,WAAWA,CAAA,EAAG;IACV,KAAK,CAAC,MAAM,CAAC;IACb,IAAI,CAACC,OAAO,CAACC,QAAQ,GAAG,YAAY;EACxC;AACJ;AAEA,MAAMC,oBAAoB,CAA8B;EAC3CC,IAAI,GAAG,MAAM;EACtBC,MAAMA,CAACC,SAAc,EAAE;IACnB,OAAO,IAAIP,gBAAgB,CAAC,CAAC;EACjC;AACJ;AAEA,OAAO,MAAMQ,aAAa,GAAGV,SAAS,CAACW,oBAAoB,CAAC;EACxDC,cAAc,EAAEN,oBAAoB;EACpCO,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,18 @@
1
+ import { type IFieldTypeFactory } from "../abstractions.js";
2
+ import { FieldBuilder } from "../FieldBuilder.js";
3
+ export declare class FileUrlFieldBuilder extends FieldBuilder<"fileUrl"> {
4
+ constructor();
5
+ }
6
+ declare class FileUrlFieldTypeFactory implements IFieldTypeFactory {
7
+ readonly type = "fileUrl";
8
+ create(_registry: any): FileUrlFieldBuilder;
9
+ }
10
+ export declare const FileUrlFieldType: typeof FileUrlFieldTypeFactory & {
11
+ __abstraction: import("@webiny/di").Abstraction<IFieldTypeFactory>;
12
+ };
13
+ declare module "../abstractions.js" {
14
+ interface IFieldBuilderRegistry {
15
+ fileUrl(): IFieldBuilder<"fileUrl", false, string | null>;
16
+ }
17
+ }
18
+ export {};
@@ -0,0 +1,20 @@
1
+ import { FieldType } from "../abstractions.js";
2
+ import { FieldBuilder } from "../FieldBuilder.js";
3
+ export class FileUrlFieldBuilder extends FieldBuilder {
4
+ constructor() {
5
+ super("fileUrl");
6
+ this._config.renderer = "fileUrlPicker";
7
+ }
8
+ }
9
+ class FileUrlFieldTypeFactory {
10
+ type = "fileUrl";
11
+ create(_registry) {
12
+ return new FileUrlFieldBuilder();
13
+ }
14
+ }
15
+ export const FileUrlFieldType = FieldType.createImplementation({
16
+ implementation: FileUrlFieldTypeFactory,
17
+ dependencies: []
18
+ });
19
+
20
+ //# sourceMappingURL=FileUrlFieldType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FieldType","FieldBuilder","FileUrlFieldBuilder","constructor","_config","renderer","FileUrlFieldTypeFactory","type","create","_registry","FileUrlFieldType","createImplementation","implementation","dependencies"],"sources":["FileUrlFieldType.ts"],"sourcesContent":["import { FieldType, type IFieldTypeFactory, type IFieldBuilder } from \"../abstractions.js\";\nimport { FieldBuilder } from \"../FieldBuilder.js\";\n\nexport class FileUrlFieldBuilder extends FieldBuilder<\"fileUrl\"> {\n constructor() {\n super(\"fileUrl\");\n this._config.renderer = \"fileUrlPicker\";\n }\n}\n\nclass FileUrlFieldTypeFactory implements IFieldTypeFactory {\n readonly type = \"fileUrl\";\n create(_registry: any) {\n return new FileUrlFieldBuilder();\n }\n}\n\nexport const FileUrlFieldType = FieldType.createImplementation({\n implementation: FileUrlFieldTypeFactory,\n dependencies: []\n});\n\ndeclare module \"../abstractions.js\" {\n interface IFieldBuilderRegistry {\n fileUrl(): IFieldBuilder<\"fileUrl\", false, string | null>;\n }\n}\n"],"mappings":"AAAA,SAASA,SAAS;AAClB,SAASC,YAAY;AAErB,OAAO,MAAMC,mBAAmB,SAASD,YAAY,CAAY;EAC7DE,WAAWA,CAAA,EAAG;IACV,KAAK,CAAC,SAAS,CAAC;IAChB,IAAI,CAACC,OAAO,CAACC,QAAQ,GAAG,eAAe;EAC3C;AACJ;AAEA,MAAMC,uBAAuB,CAA8B;EAC9CC,IAAI,GAAG,SAAS;EACzBC,MAAMA,CAACC,SAAc,EAAE;IACnB,OAAO,IAAIP,mBAAmB,CAAC,CAAC;EACpC;AACJ;AAEA,OAAO,MAAMQ,gBAAgB,GAAGV,SAAS,CAACW,oBAAoB,CAAC;EAC3DC,cAAc,EAAEN,uBAAuB;EACvCO,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,19 @@
1
+ import { type IFieldTypeFactory } from "../abstractions.js";
2
+ import { FieldBuilder } from "../FieldBuilder.js";
3
+ export declare class NumberFieldBuilder extends FieldBuilder<"number"> {
4
+ constructor();
5
+ normalizeValue(value: unknown): unknown;
6
+ }
7
+ declare class NumberFieldTypeFactory implements IFieldTypeFactory {
8
+ readonly type = "number";
9
+ create(): NumberFieldBuilder;
10
+ }
11
+ export declare const NumberFieldType: typeof NumberFieldTypeFactory & {
12
+ __abstraction: import("@webiny/di").Abstraction<IFieldTypeFactory>;
13
+ };
14
+ declare module "../abstractions.js" {
15
+ interface IFieldBuilderRegistry {
16
+ number(): IOptionsFieldBuilder<"number", number | null>;
17
+ }
18
+ }
19
+ export {};
@@ -0,0 +1,27 @@
1
+ import { FieldType } from "../abstractions.js";
2
+ import { FieldBuilder } from "../FieldBuilder.js";
3
+ export class NumberFieldBuilder extends FieldBuilder {
4
+ constructor() {
5
+ super("number");
6
+ this._config.renderer = "numberInput";
7
+ }
8
+ normalizeValue(value) {
9
+ if (value === null || value === undefined || value === "") {
10
+ return null;
11
+ }
12
+ const n = Number(value);
13
+ return Number.isNaN(n) ? null : n;
14
+ }
15
+ }
16
+ class NumberFieldTypeFactory {
17
+ type = "number";
18
+ create() {
19
+ return new NumberFieldBuilder();
20
+ }
21
+ }
22
+ export const NumberFieldType = FieldType.createImplementation({
23
+ implementation: NumberFieldTypeFactory,
24
+ dependencies: []
25
+ });
26
+
27
+ //# sourceMappingURL=NumberFieldType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FieldType","FieldBuilder","NumberFieldBuilder","constructor","_config","renderer","normalizeValue","value","undefined","n","Number","isNaN","NumberFieldTypeFactory","type","create","NumberFieldType","createImplementation","implementation","dependencies"],"sources":["NumberFieldType.ts"],"sourcesContent":["import { FieldType, type IFieldTypeFactory } from \"../abstractions.js\";\nimport { FieldBuilder } from \"../FieldBuilder.js\";\n\nexport class NumberFieldBuilder extends FieldBuilder<\"number\"> {\n constructor() {\n super(\"number\");\n this._config.renderer = \"numberInput\";\n }\n\n override normalizeValue(value: unknown): unknown {\n if (value === null || value === undefined || value === \"\") {\n return null;\n }\n\n const n = Number(value);\n\n return Number.isNaN(n) ? null : n;\n }\n}\n\nclass NumberFieldTypeFactory implements IFieldTypeFactory {\n readonly type = \"number\";\n create() {\n return new NumberFieldBuilder();\n }\n}\n\nexport const NumberFieldType = FieldType.createImplementation({\n implementation: NumberFieldTypeFactory,\n dependencies: []\n});\n\ndeclare module \"../abstractions.js\" {\n interface IFieldBuilderRegistry {\n number(): IOptionsFieldBuilder<\"number\", number | null>;\n }\n}\n"],"mappings":"AAAA,SAASA,SAAS;AAClB,SAASC,YAAY;AAErB,OAAO,MAAMC,kBAAkB,SAASD,YAAY,CAAW;EAC3DE,WAAWA,CAAA,EAAG;IACV,KAAK,CAAC,QAAQ,CAAC;IACf,IAAI,CAACC,OAAO,CAACC,QAAQ,GAAG,aAAa;EACzC;EAESC,cAAcA,CAACC,KAAc,EAAW;IAC7C,IAAIA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKC,SAAS,IAAID,KAAK,KAAK,EAAE,EAAE;MACvD,OAAO,IAAI;IACf;IAEA,MAAME,CAAC,GAAGC,MAAM,CAACH,KAAK,CAAC;IAEvB,OAAOG,MAAM,CAACC,KAAK,CAACF,CAAC,CAAC,GAAG,IAAI,GAAGA,CAAC;EACrC;AACJ;AAEA,MAAMG,sBAAsB,CAA8B;EAC7CC,IAAI,GAAG,QAAQ;EACxBC,MAAMA,CAAA,EAAG;IACL,OAAO,IAAIZ,kBAAkB,CAAC,CAAC;EACnC;AACJ;AAEA,OAAO,MAAMa,eAAe,GAAGf,SAAS,CAACgB,oBAAoB,CAAC;EAC1DC,cAAc,EAAEL,sBAAsB;EACtCM,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ import type { z } from "zod";
2
+ import { type IFieldTypeFactory, type IFieldBuilder, type IFieldBuilderRegistry, type IObjectFieldBuilder, type IObjectFieldConfig, type ITemplateBuilder, type ITemplateConfig } from "../abstractions.js";
3
+ import { FieldBuilder } from "../FieldBuilder.js";
4
+ interface TemplateBuilderInternal extends ITemplateBuilder {
5
+ _build(id: string, registry: IFieldBuilderRegistry): ITemplateConfig;
6
+ }
7
+ export declare function createTemplateBuilder(): TemplateBuilderInternal;
8
+ export declare class ObjectFieldBuilder extends FieldBuilder<"object"> implements IObjectFieldBuilder {
9
+ private _childBuilders;
10
+ private _isList;
11
+ private _listSchema?;
12
+ private _templates?;
13
+ private _templateIds;
14
+ private _registry;
15
+ constructor(registry: IFieldBuilderRegistry);
16
+ fields(fn: (registry: IFieldBuilderRegistry) => Record<string, IFieldBuilder>): this;
17
+ list(): this;
18
+ listSchema(schema: z.ZodTypeAny): this;
19
+ template(id: string, configure: (t: ITemplateBuilder) => void): this;
20
+ build(name: string): IObjectFieldConfig;
21
+ }
22
+ declare class ObjectFieldTypeFactory implements IFieldTypeFactory {
23
+ readonly type = "object";
24
+ create(registry: IFieldBuilderRegistry): ObjectFieldBuilder;
25
+ }
26
+ export declare const ObjectFieldType: typeof ObjectFieldTypeFactory & {
27
+ __abstraction: import("@webiny/di").Abstraction<IFieldTypeFactory>;
28
+ };
29
+ declare module "../abstractions.js" {
30
+ interface IFieldBuilderRegistry {
31
+ object(): IObjectFieldBuilder;
32
+ }
33
+ }
34
+ export {};