@opencrvs/toolkit 1.9.3-rc.a8c6af9 → 1.9.3-rc.e574091
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.
- package/dist/commons/conditionals/conditionals.d.ts +44 -0
- package/dist/commons/conditionals/validate.d.ts +2 -1
- package/dist/commons/events/field.d.ts +110 -0
- package/dist/conditionals/index.js +65 -5
- package/dist/events/index.js +107 -10
- package/dist/notification/index.js +103 -8
- package/package.json +1 -1
|
@@ -117,6 +117,8 @@ export declare function createFieldConditionals(fieldId: string): {
|
|
|
117
117
|
days: (days: number) => {
|
|
118
118
|
inPast: () => JSONSchema;
|
|
119
119
|
inFuture: () => JSONSchema;
|
|
120
|
+
fromDate: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
121
|
+
fromNow: () => JSONSchema;
|
|
120
122
|
};
|
|
121
123
|
date: (date: string | FieldReference) => JSONSchema;
|
|
122
124
|
now: () => JSONSchema;
|
|
@@ -125,6 +127,8 @@ export declare function createFieldConditionals(fieldId: string): {
|
|
|
125
127
|
days: (days: number) => {
|
|
126
128
|
inPast: () => JSONSchema;
|
|
127
129
|
inFuture: () => JSONSchema;
|
|
130
|
+
fromDate: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
131
|
+
fromNow: () => JSONSchema;
|
|
128
132
|
};
|
|
129
133
|
date: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
130
134
|
now: () => JSONSchema;
|
|
@@ -172,6 +176,8 @@ export declare function createFieldConditionals(fieldId: string): {
|
|
|
172
176
|
days: (days: number) => {
|
|
173
177
|
inPast: () => JSONSchema;
|
|
174
178
|
inFuture: () => JSONSchema;
|
|
179
|
+
fromDate: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
180
|
+
fromNow: () => JSONSchema;
|
|
175
181
|
};
|
|
176
182
|
date: (date: string | FieldReference) => JSONSchema;
|
|
177
183
|
now: () => JSONSchema;
|
|
@@ -180,6 +186,8 @@ export declare function createFieldConditionals(fieldId: string): {
|
|
|
180
186
|
days: (days: number) => {
|
|
181
187
|
inPast: () => JSONSchema;
|
|
182
188
|
inFuture: () => JSONSchema;
|
|
189
|
+
fromDate: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
190
|
+
fromNow: () => JSONSchema;
|
|
183
191
|
};
|
|
184
192
|
date: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
185
193
|
now: () => JSONSchema;
|
|
@@ -241,6 +249,8 @@ export declare function createFieldConditionals(fieldId: string): {
|
|
|
241
249
|
days: (days: number) => {
|
|
242
250
|
inPast: () => JSONSchema;
|
|
243
251
|
inFuture: () => JSONSchema;
|
|
252
|
+
fromDate: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
253
|
+
fromNow: () => JSONSchema;
|
|
244
254
|
};
|
|
245
255
|
date: (date: string | FieldReference) => JSONSchema;
|
|
246
256
|
now: () => JSONSchema;
|
|
@@ -249,6 +259,8 @@ export declare function createFieldConditionals(fieldId: string): {
|
|
|
249
259
|
days: (days: number) => {
|
|
250
260
|
inPast: () => JSONSchema;
|
|
251
261
|
inFuture: () => JSONSchema;
|
|
262
|
+
fromDate: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
263
|
+
fromNow: () => JSONSchema;
|
|
252
264
|
};
|
|
253
265
|
date: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
254
266
|
now: () => JSONSchema;
|
|
@@ -305,6 +317,8 @@ export declare function createFieldConditionals(fieldId: string): {
|
|
|
305
317
|
days: (days: number) => {
|
|
306
318
|
inPast: () => JSONSchema;
|
|
307
319
|
inFuture: () => JSONSchema;
|
|
320
|
+
fromDate: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
321
|
+
fromNow: () => JSONSchema;
|
|
308
322
|
};
|
|
309
323
|
date: (date: string | FieldReference) => JSONSchema;
|
|
310
324
|
now: () => JSONSchema;
|
|
@@ -313,6 +327,8 @@ export declare function createFieldConditionals(fieldId: string): {
|
|
|
313
327
|
days: (days: number) => {
|
|
314
328
|
inPast: () => JSONSchema;
|
|
315
329
|
inFuture: () => JSONSchema;
|
|
330
|
+
fromDate: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
331
|
+
fromNow: () => JSONSchema;
|
|
316
332
|
};
|
|
317
333
|
date: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
318
334
|
now: () => JSONSchema;
|
|
@@ -368,6 +384,8 @@ export declare function createFieldConditionals(fieldId: string): {
|
|
|
368
384
|
days: (days: number) => {
|
|
369
385
|
inPast: () => JSONSchema;
|
|
370
386
|
inFuture: () => JSONSchema;
|
|
387
|
+
fromDate: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
388
|
+
fromNow: () => JSONSchema;
|
|
371
389
|
};
|
|
372
390
|
date: (date: string | FieldReference) => JSONSchema;
|
|
373
391
|
now: () => JSONSchema;
|
|
@@ -376,6 +394,8 @@ export declare function createFieldConditionals(fieldId: string): {
|
|
|
376
394
|
days: (days: number) => {
|
|
377
395
|
inPast: () => JSONSchema;
|
|
378
396
|
inFuture: () => JSONSchema;
|
|
397
|
+
fromDate: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
398
|
+
fromNow: () => JSONSchema;
|
|
379
399
|
};
|
|
380
400
|
date: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
381
401
|
now: () => JSONSchema;
|
|
@@ -421,6 +441,8 @@ export declare function createFieldConditionals(fieldId: string): {
|
|
|
421
441
|
days: (days: number) => {
|
|
422
442
|
inPast: () => JSONSchema;
|
|
423
443
|
inFuture: () => JSONSchema;
|
|
444
|
+
fromDate: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
445
|
+
fromNow: () => JSONSchema;
|
|
424
446
|
};
|
|
425
447
|
date: (date: string | FieldReference) => JSONSchema;
|
|
426
448
|
now: () => JSONSchema;
|
|
@@ -429,6 +451,8 @@ export declare function createFieldConditionals(fieldId: string): {
|
|
|
429
451
|
days: (days: number) => {
|
|
430
452
|
inPast: () => JSONSchema;
|
|
431
453
|
inFuture: () => JSONSchema;
|
|
454
|
+
fromDate: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
455
|
+
fromNow: () => JSONSchema;
|
|
432
456
|
};
|
|
433
457
|
date: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
434
458
|
now: () => JSONSchema;
|
|
@@ -491,6 +515,8 @@ export declare function createFieldConditionals(fieldId: string): {
|
|
|
491
515
|
days: (days: number) => {
|
|
492
516
|
inPast: () => JSONSchema;
|
|
493
517
|
inFuture: () => JSONSchema;
|
|
518
|
+
fromDate: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
519
|
+
fromNow: () => JSONSchema;
|
|
494
520
|
};
|
|
495
521
|
date: (date: string | FieldReference) => JSONSchema;
|
|
496
522
|
now: () => JSONSchema;
|
|
@@ -499,6 +525,8 @@ export declare function createFieldConditionals(fieldId: string): {
|
|
|
499
525
|
days: (days: number) => {
|
|
500
526
|
inPast: () => JSONSchema;
|
|
501
527
|
inFuture: () => JSONSchema;
|
|
528
|
+
fromDate: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
529
|
+
fromNow: () => JSONSchema;
|
|
502
530
|
};
|
|
503
531
|
date: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
504
532
|
now: () => JSONSchema;
|
|
@@ -546,6 +574,8 @@ export declare function createFieldConditionals(fieldId: string): {
|
|
|
546
574
|
days: (days: number) => {
|
|
547
575
|
inPast: () => JSONSchema;
|
|
548
576
|
inFuture: () => JSONSchema;
|
|
577
|
+
fromDate: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
578
|
+
fromNow: () => JSONSchema;
|
|
549
579
|
};
|
|
550
580
|
date: (date: string | FieldReference) => JSONSchema;
|
|
551
581
|
now: () => JSONSchema;
|
|
@@ -554,6 +584,8 @@ export declare function createFieldConditionals(fieldId: string): {
|
|
|
554
584
|
days: (days: number) => {
|
|
555
585
|
inPast: () => JSONSchema;
|
|
556
586
|
inFuture: () => JSONSchema;
|
|
587
|
+
fromDate: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
588
|
+
fromNow: () => JSONSchema;
|
|
557
589
|
};
|
|
558
590
|
date: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
559
591
|
now: () => JSONSchema;
|
|
@@ -616,6 +648,8 @@ export declare function createFieldConditionals(fieldId: string): {
|
|
|
616
648
|
days: (days: number) => {
|
|
617
649
|
inPast: () => JSONSchema;
|
|
618
650
|
inFuture: () => JSONSchema;
|
|
651
|
+
fromDate: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
652
|
+
fromNow: () => JSONSchema;
|
|
619
653
|
};
|
|
620
654
|
date: (date: string | FieldReference) => JSONSchema;
|
|
621
655
|
now: () => JSONSchema;
|
|
@@ -624,6 +658,8 @@ export declare function createFieldConditionals(fieldId: string): {
|
|
|
624
658
|
days: (days: number) => {
|
|
625
659
|
inPast: () => JSONSchema;
|
|
626
660
|
inFuture: () => JSONSchema;
|
|
661
|
+
fromDate: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
662
|
+
fromNow: () => JSONSchema;
|
|
627
663
|
};
|
|
628
664
|
date: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
629
665
|
now: () => JSONSchema;
|
|
@@ -671,6 +707,8 @@ export declare function createFieldConditionals(fieldId: string): {
|
|
|
671
707
|
days: (days: number) => {
|
|
672
708
|
inPast: () => JSONSchema;
|
|
673
709
|
inFuture: () => JSONSchema;
|
|
710
|
+
fromDate: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
711
|
+
fromNow: () => JSONSchema;
|
|
674
712
|
};
|
|
675
713
|
date: (date: string | FieldReference) => JSONSchema;
|
|
676
714
|
now: () => JSONSchema;
|
|
@@ -679,6 +717,8 @@ export declare function createFieldConditionals(fieldId: string): {
|
|
|
679
717
|
days: (days: number) => {
|
|
680
718
|
inPast: () => JSONSchema;
|
|
681
719
|
inFuture: () => JSONSchema;
|
|
720
|
+
fromDate: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
721
|
+
fromNow: () => JSONSchema;
|
|
682
722
|
};
|
|
683
723
|
date: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
684
724
|
now: () => JSONSchema;
|
|
@@ -724,6 +764,8 @@ export declare function createFieldConditionals(fieldId: string): {
|
|
|
724
764
|
days: (days: number) => {
|
|
725
765
|
inPast: () => JSONSchema;
|
|
726
766
|
inFuture: () => JSONSchema;
|
|
767
|
+
fromDate: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
768
|
+
fromNow: () => JSONSchema;
|
|
727
769
|
};
|
|
728
770
|
date: (date: string | FieldReference) => JSONSchema;
|
|
729
771
|
now: () => JSONSchema;
|
|
@@ -732,6 +774,8 @@ export declare function createFieldConditionals(fieldId: string): {
|
|
|
732
774
|
days: (days: number) => {
|
|
733
775
|
inPast: () => JSONSchema;
|
|
734
776
|
inFuture: () => JSONSchema;
|
|
777
|
+
fromDate: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
778
|
+
fromNow: () => JSONSchema;
|
|
735
779
|
};
|
|
736
780
|
date: (date: `${string}-${string}-${string}` | FieldReference) => JSONSchema;
|
|
737
781
|
now: () => JSONSchema;
|
|
@@ -6,7 +6,7 @@ import { FieldUpdateValue, FieldValue } from '../events/FieldValue';
|
|
|
6
6
|
import { TranslationConfig } from '../events/TranslationConfig';
|
|
7
7
|
import { ITokenPayload } from '../authentication';
|
|
8
8
|
import { UUID } from '../uuid';
|
|
9
|
-
import { ActionType } from '../client';
|
|
9
|
+
import { ActionType, EventDocument } from '../client';
|
|
10
10
|
export declare function validate(schema: JSONSchema, data: ConditionalParameters): boolean;
|
|
11
11
|
export declare function validateValue(schema: JSONSchema, data: unknown): boolean;
|
|
12
12
|
export declare function isOnline(): boolean;
|
|
@@ -17,6 +17,7 @@ export type ValidatorContext = {
|
|
|
17
17
|
leafAdminStructureLocationIds?: Array<{
|
|
18
18
|
id: UUID;
|
|
19
19
|
}>;
|
|
20
|
+
event?: EventDocument;
|
|
20
21
|
};
|
|
21
22
|
export declare function isFieldVisible(field: FieldConfig, form: Partial<ActionUpdate | EventState>, context: ValidatorContext): boolean;
|
|
22
23
|
export declare function isFieldEnabled(field: FieldConfig, form: ActionUpdate | EventState, context: ValidatorContext): boolean;
|
|
@@ -77,6 +77,11 @@ export declare function field(fieldId: string, options?: {
|
|
|
77
77
|
days: (days: number) => {
|
|
78
78
|
inPast: () => import("../conditionals/conditionals").JSONSchema;
|
|
79
79
|
inFuture: () => import("../conditionals/conditionals").JSONSchema;
|
|
80
|
+
fromDate: (date: `${string}-${string}-${string}` | {
|
|
81
|
+
$$field: string;
|
|
82
|
+
$$subfield: string[];
|
|
83
|
+
}) => import("../conditionals/conditionals").JSONSchema;
|
|
84
|
+
fromNow: () => import("../conditionals/conditionals").JSONSchema;
|
|
80
85
|
};
|
|
81
86
|
date: (date: string | {
|
|
82
87
|
$$field: string;
|
|
@@ -88,6 +93,11 @@ export declare function field(fieldId: string, options?: {
|
|
|
88
93
|
days: (days: number) => {
|
|
89
94
|
inPast: () => import("../conditionals/conditionals").JSONSchema;
|
|
90
95
|
inFuture: () => import("../conditionals/conditionals").JSONSchema;
|
|
96
|
+
fromDate: (date: `${string}-${string}-${string}` | {
|
|
97
|
+
$$field: string;
|
|
98
|
+
$$subfield: string[];
|
|
99
|
+
}) => import("../conditionals/conditionals").JSONSchema;
|
|
100
|
+
fromNow: () => import("../conditionals/conditionals").JSONSchema;
|
|
91
101
|
};
|
|
92
102
|
date: (date: `${string}-${string}-${string}` | {
|
|
93
103
|
$$field: string;
|
|
@@ -125,6 +135,11 @@ export declare function field(fieldId: string, options?: {
|
|
|
125
135
|
days: (days: number) => {
|
|
126
136
|
inPast: () => import("../conditionals/conditionals").JSONSchema;
|
|
127
137
|
inFuture: () => import("../conditionals/conditionals").JSONSchema;
|
|
138
|
+
fromDate: (date: `${string}-${string}-${string}` | {
|
|
139
|
+
$$field: string;
|
|
140
|
+
$$subfield: string[];
|
|
141
|
+
}) => import("../conditionals/conditionals").JSONSchema;
|
|
142
|
+
fromNow: () => import("../conditionals/conditionals").JSONSchema;
|
|
128
143
|
};
|
|
129
144
|
date: (date: string | {
|
|
130
145
|
$$field: string;
|
|
@@ -136,6 +151,11 @@ export declare function field(fieldId: string, options?: {
|
|
|
136
151
|
days: (days: number) => {
|
|
137
152
|
inPast: () => import("../conditionals/conditionals").JSONSchema;
|
|
138
153
|
inFuture: () => import("../conditionals/conditionals").JSONSchema;
|
|
154
|
+
fromDate: (date: `${string}-${string}-${string}` | {
|
|
155
|
+
$$field: string;
|
|
156
|
+
$$subfield: string[];
|
|
157
|
+
}) => import("../conditionals/conditionals").JSONSchema;
|
|
158
|
+
fromNow: () => import("../conditionals/conditionals").JSONSchema;
|
|
139
159
|
};
|
|
140
160
|
date: (date: `${string}-${string}-${string}` | {
|
|
141
161
|
$$field: string;
|
|
@@ -181,6 +201,11 @@ export declare function field(fieldId: string, options?: {
|
|
|
181
201
|
days: (days: number) => {
|
|
182
202
|
inPast: () => import("../conditionals/conditionals").JSONSchema;
|
|
183
203
|
inFuture: () => import("../conditionals/conditionals").JSONSchema;
|
|
204
|
+
fromDate: (date: `${string}-${string}-${string}` | {
|
|
205
|
+
$$field: string;
|
|
206
|
+
$$subfield: string[];
|
|
207
|
+
}) => import("../conditionals/conditionals").JSONSchema;
|
|
208
|
+
fromNow: () => import("../conditionals/conditionals").JSONSchema;
|
|
184
209
|
};
|
|
185
210
|
date: (date: string | {
|
|
186
211
|
$$field: string;
|
|
@@ -192,6 +217,11 @@ export declare function field(fieldId: string, options?: {
|
|
|
192
217
|
days: (days: number) => {
|
|
193
218
|
inPast: () => import("../conditionals/conditionals").JSONSchema;
|
|
194
219
|
inFuture: () => import("../conditionals/conditionals").JSONSchema;
|
|
220
|
+
fromDate: (date: `${string}-${string}-${string}` | {
|
|
221
|
+
$$field: string;
|
|
222
|
+
$$subfield: string[];
|
|
223
|
+
}) => import("../conditionals/conditionals").JSONSchema;
|
|
224
|
+
fromNow: () => import("../conditionals/conditionals").JSONSchema;
|
|
195
225
|
};
|
|
196
226
|
date: (date: `${string}-${string}-${string}` | {
|
|
197
227
|
$$field: string;
|
|
@@ -235,6 +265,11 @@ export declare function field(fieldId: string, options?: {
|
|
|
235
265
|
days: (days: number) => {
|
|
236
266
|
inPast: () => import("../conditionals/conditionals").JSONSchema;
|
|
237
267
|
inFuture: () => import("../conditionals/conditionals").JSONSchema;
|
|
268
|
+
fromDate: (date: `${string}-${string}-${string}` | {
|
|
269
|
+
$$field: string;
|
|
270
|
+
$$subfield: string[];
|
|
271
|
+
}) => import("../conditionals/conditionals").JSONSchema;
|
|
272
|
+
fromNow: () => import("../conditionals/conditionals").JSONSchema;
|
|
238
273
|
};
|
|
239
274
|
date: (date: string | {
|
|
240
275
|
$$field: string;
|
|
@@ -246,6 +281,11 @@ export declare function field(fieldId: string, options?: {
|
|
|
246
281
|
days: (days: number) => {
|
|
247
282
|
inPast: () => import("../conditionals/conditionals").JSONSchema;
|
|
248
283
|
inFuture: () => import("../conditionals/conditionals").JSONSchema;
|
|
284
|
+
fromDate: (date: `${string}-${string}-${string}` | {
|
|
285
|
+
$$field: string;
|
|
286
|
+
$$subfield: string[];
|
|
287
|
+
}) => import("../conditionals/conditionals").JSONSchema;
|
|
288
|
+
fromNow: () => import("../conditionals/conditionals").JSONSchema;
|
|
249
289
|
};
|
|
250
290
|
date: (date: `${string}-${string}-${string}` | {
|
|
251
291
|
$$field: string;
|
|
@@ -288,6 +328,11 @@ export declare function field(fieldId: string, options?: {
|
|
|
288
328
|
days: (days: number) => {
|
|
289
329
|
inPast: () => import("../conditionals/conditionals").JSONSchema;
|
|
290
330
|
inFuture: () => import("../conditionals/conditionals").JSONSchema;
|
|
331
|
+
fromDate: (date: `${string}-${string}-${string}` | {
|
|
332
|
+
$$field: string;
|
|
333
|
+
$$subfield: string[];
|
|
334
|
+
}) => import("../conditionals/conditionals").JSONSchema;
|
|
335
|
+
fromNow: () => import("../conditionals/conditionals").JSONSchema;
|
|
291
336
|
};
|
|
292
337
|
date: (date: string | {
|
|
293
338
|
$$field: string;
|
|
@@ -299,6 +344,11 @@ export declare function field(fieldId: string, options?: {
|
|
|
299
344
|
days: (days: number) => {
|
|
300
345
|
inPast: () => import("../conditionals/conditionals").JSONSchema;
|
|
301
346
|
inFuture: () => import("../conditionals/conditionals").JSONSchema;
|
|
347
|
+
fromDate: (date: `${string}-${string}-${string}` | {
|
|
348
|
+
$$field: string;
|
|
349
|
+
$$subfield: string[];
|
|
350
|
+
}) => import("../conditionals/conditionals").JSONSchema;
|
|
351
|
+
fromNow: () => import("../conditionals/conditionals").JSONSchema;
|
|
302
352
|
};
|
|
303
353
|
date: (date: `${string}-${string}-${string}` | {
|
|
304
354
|
$$field: string;
|
|
@@ -334,6 +384,11 @@ export declare function field(fieldId: string, options?: {
|
|
|
334
384
|
days: (days: number) => {
|
|
335
385
|
inPast: () => import("../conditionals/conditionals").JSONSchema;
|
|
336
386
|
inFuture: () => import("../conditionals/conditionals").JSONSchema;
|
|
387
|
+
fromDate: (date: `${string}-${string}-${string}` | {
|
|
388
|
+
$$field: string;
|
|
389
|
+
$$subfield: string[];
|
|
390
|
+
}) => import("../conditionals/conditionals").JSONSchema;
|
|
391
|
+
fromNow: () => import("../conditionals/conditionals").JSONSchema;
|
|
337
392
|
};
|
|
338
393
|
date: (date: string | {
|
|
339
394
|
$$field: string;
|
|
@@ -345,6 +400,11 @@ export declare function field(fieldId: string, options?: {
|
|
|
345
400
|
days: (days: number) => {
|
|
346
401
|
inPast: () => import("../conditionals/conditionals").JSONSchema;
|
|
347
402
|
inFuture: () => import("../conditionals/conditionals").JSONSchema;
|
|
403
|
+
fromDate: (date: `${string}-${string}-${string}` | {
|
|
404
|
+
$$field: string;
|
|
405
|
+
$$subfield: string[];
|
|
406
|
+
}) => import("../conditionals/conditionals").JSONSchema;
|
|
407
|
+
fromNow: () => import("../conditionals/conditionals").JSONSchema;
|
|
348
408
|
};
|
|
349
409
|
date: (date: `${string}-${string}-${string}` | {
|
|
350
410
|
$$field: string;
|
|
@@ -391,6 +451,11 @@ export declare function field(fieldId: string, options?: {
|
|
|
391
451
|
days: (days: number) => {
|
|
392
452
|
inPast: () => import("../conditionals/conditionals").JSONSchema;
|
|
393
453
|
inFuture: () => import("../conditionals/conditionals").JSONSchema;
|
|
454
|
+
fromDate: (date: `${string}-${string}-${string}` | {
|
|
455
|
+
$$field: string;
|
|
456
|
+
$$subfield: string[];
|
|
457
|
+
}) => import("../conditionals/conditionals").JSONSchema;
|
|
458
|
+
fromNow: () => import("../conditionals/conditionals").JSONSchema;
|
|
394
459
|
};
|
|
395
460
|
date: (date: string | {
|
|
396
461
|
$$field: string;
|
|
@@ -402,6 +467,11 @@ export declare function field(fieldId: string, options?: {
|
|
|
402
467
|
days: (days: number) => {
|
|
403
468
|
inPast: () => import("../conditionals/conditionals").JSONSchema;
|
|
404
469
|
inFuture: () => import("../conditionals/conditionals").JSONSchema;
|
|
470
|
+
fromDate: (date: `${string}-${string}-${string}` | {
|
|
471
|
+
$$field: string;
|
|
472
|
+
$$subfield: string[];
|
|
473
|
+
}) => import("../conditionals/conditionals").JSONSchema;
|
|
474
|
+
fromNow: () => import("../conditionals/conditionals").JSONSchema;
|
|
405
475
|
};
|
|
406
476
|
date: (date: `${string}-${string}-${string}` | {
|
|
407
477
|
$$field: string;
|
|
@@ -439,6 +509,11 @@ export declare function field(fieldId: string, options?: {
|
|
|
439
509
|
days: (days: number) => {
|
|
440
510
|
inPast: () => import("../conditionals/conditionals").JSONSchema;
|
|
441
511
|
inFuture: () => import("../conditionals/conditionals").JSONSchema;
|
|
512
|
+
fromDate: (date: `${string}-${string}-${string}` | {
|
|
513
|
+
$$field: string;
|
|
514
|
+
$$subfield: string[];
|
|
515
|
+
}) => import("../conditionals/conditionals").JSONSchema;
|
|
516
|
+
fromNow: () => import("../conditionals/conditionals").JSONSchema;
|
|
442
517
|
};
|
|
443
518
|
date: (date: string | {
|
|
444
519
|
$$field: string;
|
|
@@ -450,6 +525,11 @@ export declare function field(fieldId: string, options?: {
|
|
|
450
525
|
days: (days: number) => {
|
|
451
526
|
inPast: () => import("../conditionals/conditionals").JSONSchema;
|
|
452
527
|
inFuture: () => import("../conditionals/conditionals").JSONSchema;
|
|
528
|
+
fromDate: (date: `${string}-${string}-${string}` | {
|
|
529
|
+
$$field: string;
|
|
530
|
+
$$subfield: string[];
|
|
531
|
+
}) => import("../conditionals/conditionals").JSONSchema;
|
|
532
|
+
fromNow: () => import("../conditionals/conditionals").JSONSchema;
|
|
453
533
|
};
|
|
454
534
|
date: (date: `${string}-${string}-${string}` | {
|
|
455
535
|
$$field: string;
|
|
@@ -496,6 +576,11 @@ export declare function field(fieldId: string, options?: {
|
|
|
496
576
|
days: (days: number) => {
|
|
497
577
|
inPast: () => import("../conditionals/conditionals").JSONSchema;
|
|
498
578
|
inFuture: () => import("../conditionals/conditionals").JSONSchema;
|
|
579
|
+
fromDate: (date: `${string}-${string}-${string}` | {
|
|
580
|
+
$$field: string;
|
|
581
|
+
$$subfield: string[];
|
|
582
|
+
}) => import("../conditionals/conditionals").JSONSchema;
|
|
583
|
+
fromNow: () => import("../conditionals/conditionals").JSONSchema;
|
|
499
584
|
};
|
|
500
585
|
date: (date: string | {
|
|
501
586
|
$$field: string;
|
|
@@ -507,6 +592,11 @@ export declare function field(fieldId: string, options?: {
|
|
|
507
592
|
days: (days: number) => {
|
|
508
593
|
inPast: () => import("../conditionals/conditionals").JSONSchema;
|
|
509
594
|
inFuture: () => import("../conditionals/conditionals").JSONSchema;
|
|
595
|
+
fromDate: (date: `${string}-${string}-${string}` | {
|
|
596
|
+
$$field: string;
|
|
597
|
+
$$subfield: string[];
|
|
598
|
+
}) => import("../conditionals/conditionals").JSONSchema;
|
|
599
|
+
fromNow: () => import("../conditionals/conditionals").JSONSchema;
|
|
510
600
|
};
|
|
511
601
|
date: (date: `${string}-${string}-${string}` | {
|
|
512
602
|
$$field: string;
|
|
@@ -544,6 +634,11 @@ export declare function field(fieldId: string, options?: {
|
|
|
544
634
|
days: (days: number) => {
|
|
545
635
|
inPast: () => import("../conditionals/conditionals").JSONSchema;
|
|
546
636
|
inFuture: () => import("../conditionals/conditionals").JSONSchema;
|
|
637
|
+
fromDate: (date: `${string}-${string}-${string}` | {
|
|
638
|
+
$$field: string;
|
|
639
|
+
$$subfield: string[];
|
|
640
|
+
}) => import("../conditionals/conditionals").JSONSchema;
|
|
641
|
+
fromNow: () => import("../conditionals/conditionals").JSONSchema;
|
|
547
642
|
};
|
|
548
643
|
date: (date: string | {
|
|
549
644
|
$$field: string;
|
|
@@ -555,6 +650,11 @@ export declare function field(fieldId: string, options?: {
|
|
|
555
650
|
days: (days: number) => {
|
|
556
651
|
inPast: () => import("../conditionals/conditionals").JSONSchema;
|
|
557
652
|
inFuture: () => import("../conditionals/conditionals").JSONSchema;
|
|
653
|
+
fromDate: (date: `${string}-${string}-${string}` | {
|
|
654
|
+
$$field: string;
|
|
655
|
+
$$subfield: string[];
|
|
656
|
+
}) => import("../conditionals/conditionals").JSONSchema;
|
|
657
|
+
fromNow: () => import("../conditionals/conditionals").JSONSchema;
|
|
558
658
|
};
|
|
559
659
|
date: (date: `${string}-${string}-${string}` | {
|
|
560
660
|
$$field: string;
|
|
@@ -590,6 +690,11 @@ export declare function field(fieldId: string, options?: {
|
|
|
590
690
|
days: (days: number) => {
|
|
591
691
|
inPast: () => import("../conditionals/conditionals").JSONSchema;
|
|
592
692
|
inFuture: () => import("../conditionals/conditionals").JSONSchema;
|
|
693
|
+
fromDate: (date: `${string}-${string}-${string}` | {
|
|
694
|
+
$$field: string;
|
|
695
|
+
$$subfield: string[];
|
|
696
|
+
}) => import("../conditionals/conditionals").JSONSchema;
|
|
697
|
+
fromNow: () => import("../conditionals/conditionals").JSONSchema;
|
|
593
698
|
};
|
|
594
699
|
date: (date: string | {
|
|
595
700
|
$$field: string;
|
|
@@ -601,6 +706,11 @@ export declare function field(fieldId: string, options?: {
|
|
|
601
706
|
days: (days: number) => {
|
|
602
707
|
inPast: () => import("../conditionals/conditionals").JSONSchema;
|
|
603
708
|
inFuture: () => import("../conditionals/conditionals").JSONSchema;
|
|
709
|
+
fromDate: (date: `${string}-${string}-${string}` | {
|
|
710
|
+
$$field: string;
|
|
711
|
+
$$subfield: string[];
|
|
712
|
+
}) => import("../conditionals/conditionals").JSONSchema;
|
|
713
|
+
fromNow: () => import("../conditionals/conditionals").JSONSchema;
|
|
604
714
|
};
|
|
605
715
|
date: (date: `${string}-${string}-${string}` | {
|
|
606
716
|
$$field: string;
|
|
@@ -251,6 +251,34 @@ function getDateRangeToFieldReference(field, comparedField, clause) {
|
|
|
251
251
|
required: [field.$$field]
|
|
252
252
|
};
|
|
253
253
|
}
|
|
254
|
+
function getDayRangeToFieldReference(field, comparedField, days, clause) {
|
|
255
|
+
return {
|
|
256
|
+
type: "object",
|
|
257
|
+
properties: {
|
|
258
|
+
[field.$$field]: wrapToPath(
|
|
259
|
+
{
|
|
260
|
+
type: "string",
|
|
261
|
+
format: "date",
|
|
262
|
+
daysFromDate: {
|
|
263
|
+
referenceDate: {
|
|
264
|
+
$data: `${field.$$subfield.length + 1}/${jsonFieldPath(
|
|
265
|
+
comparedField
|
|
266
|
+
)}`
|
|
267
|
+
},
|
|
268
|
+
clause,
|
|
269
|
+
days
|
|
270
|
+
}
|
|
271
|
+
},
|
|
272
|
+
field.$$subfield
|
|
273
|
+
),
|
|
274
|
+
[comparedField.$$field]: wrapToPath(
|
|
275
|
+
{ type: "string", format: "date" },
|
|
276
|
+
comparedField.$$subfield
|
|
277
|
+
)
|
|
278
|
+
},
|
|
279
|
+
required: [field.$$field]
|
|
280
|
+
};
|
|
281
|
+
}
|
|
254
282
|
function defineComparison(field, value, keyword) {
|
|
255
283
|
if (isFieldReference(value)) {
|
|
256
284
|
const comparedField = value;
|
|
@@ -286,16 +314,17 @@ function defineComparison(field, value, keyword) {
|
|
|
286
314
|
});
|
|
287
315
|
}
|
|
288
316
|
function createFieldConditionals(fieldId) {
|
|
289
|
-
const getDayRange = (field, days, clause) => ({
|
|
317
|
+
const getDayRange = (field, days, clause, referenceDate) => ({
|
|
290
318
|
type: "object",
|
|
291
319
|
properties: {
|
|
292
320
|
[field.$$field]: wrapToPath(
|
|
293
321
|
{
|
|
294
322
|
type: "string",
|
|
295
323
|
format: "date",
|
|
296
|
-
|
|
324
|
+
daysFromDate: {
|
|
297
325
|
days,
|
|
298
|
-
clause
|
|
326
|
+
clause,
|
|
327
|
+
referenceDate
|
|
299
328
|
}
|
|
300
329
|
},
|
|
301
330
|
field.$$subfield
|
|
@@ -348,7 +377,19 @@ function createFieldConditionals(fieldId) {
|
|
|
348
377
|
return {
|
|
349
378
|
days: (days) => ({
|
|
350
379
|
inPast: () => defineFormConditional(getDayRange(this, -days, "after")),
|
|
351
|
-
inFuture: () => defineFormConditional(getDayRange(this, days, "after"))
|
|
380
|
+
inFuture: () => defineFormConditional(getDayRange(this, days, "after")),
|
|
381
|
+
fromDate: (date) => {
|
|
382
|
+
if (isFieldReference(date)) {
|
|
383
|
+
const comparedField = date;
|
|
384
|
+
return defineFormConditional(
|
|
385
|
+
getDayRangeToFieldReference(this, comparedField, days, "after")
|
|
386
|
+
);
|
|
387
|
+
}
|
|
388
|
+
return defineFormConditional(getDayRange(this, days, "after", date));
|
|
389
|
+
},
|
|
390
|
+
fromNow: () => {
|
|
391
|
+
return defineFormConditional(getDayRange(this, days, "after"));
|
|
392
|
+
}
|
|
352
393
|
}),
|
|
353
394
|
date: (date) => {
|
|
354
395
|
if (isFieldReference(date)) {
|
|
@@ -370,7 +411,26 @@ function createFieldConditionals(fieldId) {
|
|
|
370
411
|
return {
|
|
371
412
|
days: (days) => ({
|
|
372
413
|
inPast: () => defineFormConditional(getDayRange(this, -days, "before")),
|
|
373
|
-
inFuture: () => defineFormConditional(getDayRange(this, days, "before"))
|
|
414
|
+
inFuture: () => defineFormConditional(getDayRange(this, days, "before")),
|
|
415
|
+
fromDate: (date) => {
|
|
416
|
+
if (isFieldReference(date)) {
|
|
417
|
+
const comparedField = date;
|
|
418
|
+
return defineFormConditional(
|
|
419
|
+
getDayRangeToFieldReference(
|
|
420
|
+
this,
|
|
421
|
+
comparedField,
|
|
422
|
+
-days,
|
|
423
|
+
"before"
|
|
424
|
+
)
|
|
425
|
+
);
|
|
426
|
+
}
|
|
427
|
+
return defineFormConditional(
|
|
428
|
+
getDayRange(this, -days, "before", date)
|
|
429
|
+
);
|
|
430
|
+
},
|
|
431
|
+
fromNow: () => {
|
|
432
|
+
return defineFormConditional(getDayRange(this, -days, "before"));
|
|
433
|
+
}
|
|
374
434
|
}),
|
|
375
435
|
date: (date) => {
|
|
376
436
|
if (isFieldReference(date)) {
|
package/dist/events/index.js
CHANGED
|
@@ -3185,9 +3185,30 @@ var DataContext = import_zod25.z.object({
|
|
|
3185
3185
|
$leafAdminStructureLocationIds: import_zod25.z.array(import_zod25.z.object({ id: UUID }))
|
|
3186
3186
|
})
|
|
3187
3187
|
});
|
|
3188
|
+
function resolveDataPath(rootData, dataPath, instancePath) {
|
|
3189
|
+
const pathParts = dataPath.split("/");
|
|
3190
|
+
const levels = parseInt(pathParts[0], 10);
|
|
3191
|
+
const referencePath = pathParts.slice(1);
|
|
3192
|
+
const instanceParts = instancePath.split("/").filter(Boolean);
|
|
3193
|
+
const traversedParts = instanceParts.slice(0, -levels);
|
|
3194
|
+
let current = rootData;
|
|
3195
|
+
for (const part of traversedParts) {
|
|
3196
|
+
if (current === null || current === void 0) {
|
|
3197
|
+
return void 0;
|
|
3198
|
+
}
|
|
3199
|
+
current = current[part];
|
|
3200
|
+
}
|
|
3201
|
+
for (const part of referencePath) {
|
|
3202
|
+
if (current === null || current === void 0) {
|
|
3203
|
+
return void 0;
|
|
3204
|
+
}
|
|
3205
|
+
current = current[part];
|
|
3206
|
+
}
|
|
3207
|
+
return current;
|
|
3208
|
+
}
|
|
3188
3209
|
(0, import_ajv_formats.default)(ajv);
|
|
3189
3210
|
ajv.addKeyword({
|
|
3190
|
-
keyword: "
|
|
3211
|
+
keyword: "daysFromDate",
|
|
3191
3212
|
type: "string",
|
|
3192
3213
|
schemaType: "object",
|
|
3193
3214
|
$data: true,
|
|
@@ -3204,8 +3225,22 @@ ajv.addKeyword({
|
|
|
3204
3225
|
if (isNaN(date.getTime())) {
|
|
3205
3226
|
return false;
|
|
3206
3227
|
}
|
|
3207
|
-
|
|
3208
|
-
|
|
3228
|
+
let referenceDate = schema.referenceDate;
|
|
3229
|
+
if (referenceDate && typeof referenceDate === "object" && "$data" in referenceDate) {
|
|
3230
|
+
referenceDate = resolveDataPath(
|
|
3231
|
+
dataContext.rootData,
|
|
3232
|
+
referenceDate.$data,
|
|
3233
|
+
dataContext.instancePath
|
|
3234
|
+
);
|
|
3235
|
+
}
|
|
3236
|
+
if (!referenceDate) {
|
|
3237
|
+
referenceDate = dataContext.rootData.$now;
|
|
3238
|
+
}
|
|
3239
|
+
const baseDate = new Date(referenceDate);
|
|
3240
|
+
if (isNaN(baseDate.getTime())) {
|
|
3241
|
+
return false;
|
|
3242
|
+
}
|
|
3243
|
+
const offsetDate = new Date(baseDate.getTime() + days * 24 * 60 * 60 * 1e3);
|
|
3209
3244
|
return clause === "after" ? (0, import_date_fns.isAfter)(date, offsetDate) : (0, import_date_fns.isBefore)(date, offsetDate);
|
|
3210
3245
|
}
|
|
3211
3246
|
});
|
|
@@ -3268,7 +3303,8 @@ function isConditionMet(conditional, values, context) {
|
|
|
3268
3303
|
$now: (0, import_date_fns.formatISO)(/* @__PURE__ */ new Date(), { representation: "date" }),
|
|
3269
3304
|
$online: isOnline(),
|
|
3270
3305
|
$user: context.user,
|
|
3271
|
-
$leafAdminStructureLocationIds: context.leafAdminStructureLocationIds ?? []
|
|
3306
|
+
$leafAdminStructureLocationIds: context.leafAdminStructureLocationIds ?? [],
|
|
3307
|
+
$event: context.event
|
|
3272
3308
|
});
|
|
3273
3309
|
}
|
|
3274
3310
|
function getConditionalActionsForField(field3, values) {
|
|
@@ -3294,7 +3330,8 @@ function isFieldConditionMet(field3, form, conditionalType, context) {
|
|
|
3294
3330
|
$now: (0, import_date_fns.formatISO)(/* @__PURE__ */ new Date(), { representation: "date" }),
|
|
3295
3331
|
$online: isOnline(),
|
|
3296
3332
|
$user: context.user,
|
|
3297
|
-
$leafAdminStructureLocationIds: context.leafAdminStructureLocationIds ?? []
|
|
3333
|
+
$leafAdminStructureLocationIds: context.leafAdminStructureLocationIds ?? [],
|
|
3334
|
+
$event: context.event
|
|
3298
3335
|
});
|
|
3299
3336
|
return validConditionals.includes(conditionalType);
|
|
3300
3337
|
}
|
|
@@ -4116,6 +4153,34 @@ function getDateRangeToFieldReference(field3, comparedField, clause) {
|
|
|
4116
4153
|
required: [field3.$$field]
|
|
4117
4154
|
};
|
|
4118
4155
|
}
|
|
4156
|
+
function getDayRangeToFieldReference(field3, comparedField, days, clause) {
|
|
4157
|
+
return {
|
|
4158
|
+
type: "object",
|
|
4159
|
+
properties: {
|
|
4160
|
+
[field3.$$field]: wrapToPath(
|
|
4161
|
+
{
|
|
4162
|
+
type: "string",
|
|
4163
|
+
format: "date",
|
|
4164
|
+
daysFromDate: {
|
|
4165
|
+
referenceDate: {
|
|
4166
|
+
$data: `${field3.$$subfield.length + 1}/${jsonFieldPath(
|
|
4167
|
+
comparedField
|
|
4168
|
+
)}`
|
|
4169
|
+
},
|
|
4170
|
+
clause,
|
|
4171
|
+
days
|
|
4172
|
+
}
|
|
4173
|
+
},
|
|
4174
|
+
field3.$$subfield
|
|
4175
|
+
),
|
|
4176
|
+
[comparedField.$$field]: wrapToPath(
|
|
4177
|
+
{ type: "string", format: "date" },
|
|
4178
|
+
comparedField.$$subfield
|
|
4179
|
+
)
|
|
4180
|
+
},
|
|
4181
|
+
required: [field3.$$field]
|
|
4182
|
+
};
|
|
4183
|
+
}
|
|
4119
4184
|
function defineComparison(field3, value, keyword) {
|
|
4120
4185
|
if (isFieldReference(value)) {
|
|
4121
4186
|
const comparedField = value;
|
|
@@ -4151,16 +4216,17 @@ function defineComparison(field3, value, keyword) {
|
|
|
4151
4216
|
});
|
|
4152
4217
|
}
|
|
4153
4218
|
function createFieldConditionals(fieldId) {
|
|
4154
|
-
const getDayRange = (field3, days, clause) => ({
|
|
4219
|
+
const getDayRange = (field3, days, clause, referenceDate) => ({
|
|
4155
4220
|
type: "object",
|
|
4156
4221
|
properties: {
|
|
4157
4222
|
[field3.$$field]: wrapToPath(
|
|
4158
4223
|
{
|
|
4159
4224
|
type: "string",
|
|
4160
4225
|
format: "date",
|
|
4161
|
-
|
|
4226
|
+
daysFromDate: {
|
|
4162
4227
|
days,
|
|
4163
|
-
clause
|
|
4228
|
+
clause,
|
|
4229
|
+
referenceDate
|
|
4164
4230
|
}
|
|
4165
4231
|
},
|
|
4166
4232
|
field3.$$subfield
|
|
@@ -4213,7 +4279,19 @@ function createFieldConditionals(fieldId) {
|
|
|
4213
4279
|
return {
|
|
4214
4280
|
days: (days) => ({
|
|
4215
4281
|
inPast: () => defineFormConditional(getDayRange(this, -days, "after")),
|
|
4216
|
-
inFuture: () => defineFormConditional(getDayRange(this, days, "after"))
|
|
4282
|
+
inFuture: () => defineFormConditional(getDayRange(this, days, "after")),
|
|
4283
|
+
fromDate: (date) => {
|
|
4284
|
+
if (isFieldReference(date)) {
|
|
4285
|
+
const comparedField = date;
|
|
4286
|
+
return defineFormConditional(
|
|
4287
|
+
getDayRangeToFieldReference(this, comparedField, days, "after")
|
|
4288
|
+
);
|
|
4289
|
+
}
|
|
4290
|
+
return defineFormConditional(getDayRange(this, days, "after", date));
|
|
4291
|
+
},
|
|
4292
|
+
fromNow: () => {
|
|
4293
|
+
return defineFormConditional(getDayRange(this, days, "after"));
|
|
4294
|
+
}
|
|
4217
4295
|
}),
|
|
4218
4296
|
date: (date) => {
|
|
4219
4297
|
if (isFieldReference(date)) {
|
|
@@ -4235,7 +4313,26 @@ function createFieldConditionals(fieldId) {
|
|
|
4235
4313
|
return {
|
|
4236
4314
|
days: (days) => ({
|
|
4237
4315
|
inPast: () => defineFormConditional(getDayRange(this, -days, "before")),
|
|
4238
|
-
inFuture: () => defineFormConditional(getDayRange(this, days, "before"))
|
|
4316
|
+
inFuture: () => defineFormConditional(getDayRange(this, days, "before")),
|
|
4317
|
+
fromDate: (date) => {
|
|
4318
|
+
if (isFieldReference(date)) {
|
|
4319
|
+
const comparedField = date;
|
|
4320
|
+
return defineFormConditional(
|
|
4321
|
+
getDayRangeToFieldReference(
|
|
4322
|
+
this,
|
|
4323
|
+
comparedField,
|
|
4324
|
+
-days,
|
|
4325
|
+
"before"
|
|
4326
|
+
)
|
|
4327
|
+
);
|
|
4328
|
+
}
|
|
4329
|
+
return defineFormConditional(
|
|
4330
|
+
getDayRange(this, -days, "before", date)
|
|
4331
|
+
);
|
|
4332
|
+
},
|
|
4333
|
+
fromNow: () => {
|
|
4334
|
+
return defineFormConditional(getDayRange(this, -days, "before"));
|
|
4335
|
+
}
|
|
4239
4336
|
}),
|
|
4240
4337
|
date: (date) => {
|
|
4241
4338
|
if (isFieldReference(date)) {
|
|
@@ -2424,9 +2424,30 @@ var DataContext = import_zod25.z.object({
|
|
|
2424
2424
|
$leafAdminStructureLocationIds: import_zod25.z.array(import_zod25.z.object({ id: UUID }))
|
|
2425
2425
|
})
|
|
2426
2426
|
});
|
|
2427
|
+
function resolveDataPath(rootData, dataPath, instancePath) {
|
|
2428
|
+
const pathParts = dataPath.split("/");
|
|
2429
|
+
const levels = parseInt(pathParts[0], 10);
|
|
2430
|
+
const referencePath = pathParts.slice(1);
|
|
2431
|
+
const instanceParts = instancePath.split("/").filter(Boolean);
|
|
2432
|
+
const traversedParts = instanceParts.slice(0, -levels);
|
|
2433
|
+
let current = rootData;
|
|
2434
|
+
for (const part of traversedParts) {
|
|
2435
|
+
if (current === null || current === void 0) {
|
|
2436
|
+
return void 0;
|
|
2437
|
+
}
|
|
2438
|
+
current = current[part];
|
|
2439
|
+
}
|
|
2440
|
+
for (const part of referencePath) {
|
|
2441
|
+
if (current === null || current === void 0) {
|
|
2442
|
+
return void 0;
|
|
2443
|
+
}
|
|
2444
|
+
current = current[part];
|
|
2445
|
+
}
|
|
2446
|
+
return current;
|
|
2447
|
+
}
|
|
2427
2448
|
(0, import_ajv_formats.default)(ajv);
|
|
2428
2449
|
ajv.addKeyword({
|
|
2429
|
-
keyword: "
|
|
2450
|
+
keyword: "daysFromDate",
|
|
2430
2451
|
type: "string",
|
|
2431
2452
|
schemaType: "object",
|
|
2432
2453
|
$data: true,
|
|
@@ -2443,8 +2464,22 @@ ajv.addKeyword({
|
|
|
2443
2464
|
if (isNaN(date.getTime())) {
|
|
2444
2465
|
return false;
|
|
2445
2466
|
}
|
|
2446
|
-
|
|
2447
|
-
|
|
2467
|
+
let referenceDate = schema.referenceDate;
|
|
2468
|
+
if (referenceDate && typeof referenceDate === "object" && "$data" in referenceDate) {
|
|
2469
|
+
referenceDate = resolveDataPath(
|
|
2470
|
+
dataContext.rootData,
|
|
2471
|
+
referenceDate.$data,
|
|
2472
|
+
dataContext.instancePath
|
|
2473
|
+
);
|
|
2474
|
+
}
|
|
2475
|
+
if (!referenceDate) {
|
|
2476
|
+
referenceDate = dataContext.rootData.$now;
|
|
2477
|
+
}
|
|
2478
|
+
const baseDate = new Date(referenceDate);
|
|
2479
|
+
if (isNaN(baseDate.getTime())) {
|
|
2480
|
+
return false;
|
|
2481
|
+
}
|
|
2482
|
+
const offsetDate = new Date(baseDate.getTime() + days * 24 * 60 * 60 * 1e3);
|
|
2448
2483
|
return clause === "after" ? (0, import_date_fns.isAfter)(date, offsetDate) : (0, import_date_fns.isBefore)(date, offsetDate);
|
|
2449
2484
|
}
|
|
2450
2485
|
});
|
|
@@ -2759,6 +2794,34 @@ function getDateRangeToFieldReference(field3, comparedField, clause) {
|
|
|
2759
2794
|
required: [field3.$$field]
|
|
2760
2795
|
};
|
|
2761
2796
|
}
|
|
2797
|
+
function getDayRangeToFieldReference(field3, comparedField, days, clause) {
|
|
2798
|
+
return {
|
|
2799
|
+
type: "object",
|
|
2800
|
+
properties: {
|
|
2801
|
+
[field3.$$field]: wrapToPath(
|
|
2802
|
+
{
|
|
2803
|
+
type: "string",
|
|
2804
|
+
format: "date",
|
|
2805
|
+
daysFromDate: {
|
|
2806
|
+
referenceDate: {
|
|
2807
|
+
$data: `${field3.$$subfield.length + 1}/${jsonFieldPath(
|
|
2808
|
+
comparedField
|
|
2809
|
+
)}`
|
|
2810
|
+
},
|
|
2811
|
+
clause,
|
|
2812
|
+
days
|
|
2813
|
+
}
|
|
2814
|
+
},
|
|
2815
|
+
field3.$$subfield
|
|
2816
|
+
),
|
|
2817
|
+
[comparedField.$$field]: wrapToPath(
|
|
2818
|
+
{ type: "string", format: "date" },
|
|
2819
|
+
comparedField.$$subfield
|
|
2820
|
+
)
|
|
2821
|
+
},
|
|
2822
|
+
required: [field3.$$field]
|
|
2823
|
+
};
|
|
2824
|
+
}
|
|
2762
2825
|
function defineComparison(field3, value, keyword) {
|
|
2763
2826
|
if (isFieldReference(value)) {
|
|
2764
2827
|
const comparedField = value;
|
|
@@ -2794,16 +2857,17 @@ function defineComparison(field3, value, keyword) {
|
|
|
2794
2857
|
});
|
|
2795
2858
|
}
|
|
2796
2859
|
function createFieldConditionals(fieldId) {
|
|
2797
|
-
const getDayRange = (field3, days, clause) => ({
|
|
2860
|
+
const getDayRange = (field3, days, clause, referenceDate) => ({
|
|
2798
2861
|
type: "object",
|
|
2799
2862
|
properties: {
|
|
2800
2863
|
[field3.$$field]: wrapToPath(
|
|
2801
2864
|
{
|
|
2802
2865
|
type: "string",
|
|
2803
2866
|
format: "date",
|
|
2804
|
-
|
|
2867
|
+
daysFromDate: {
|
|
2805
2868
|
days,
|
|
2806
|
-
clause
|
|
2869
|
+
clause,
|
|
2870
|
+
referenceDate
|
|
2807
2871
|
}
|
|
2808
2872
|
},
|
|
2809
2873
|
field3.$$subfield
|
|
@@ -2856,7 +2920,19 @@ function createFieldConditionals(fieldId) {
|
|
|
2856
2920
|
return {
|
|
2857
2921
|
days: (days) => ({
|
|
2858
2922
|
inPast: () => defineFormConditional(getDayRange(this, -days, "after")),
|
|
2859
|
-
inFuture: () => defineFormConditional(getDayRange(this, days, "after"))
|
|
2923
|
+
inFuture: () => defineFormConditional(getDayRange(this, days, "after")),
|
|
2924
|
+
fromDate: (date) => {
|
|
2925
|
+
if (isFieldReference(date)) {
|
|
2926
|
+
const comparedField = date;
|
|
2927
|
+
return defineFormConditional(
|
|
2928
|
+
getDayRangeToFieldReference(this, comparedField, days, "after")
|
|
2929
|
+
);
|
|
2930
|
+
}
|
|
2931
|
+
return defineFormConditional(getDayRange(this, days, "after", date));
|
|
2932
|
+
},
|
|
2933
|
+
fromNow: () => {
|
|
2934
|
+
return defineFormConditional(getDayRange(this, days, "after"));
|
|
2935
|
+
}
|
|
2860
2936
|
}),
|
|
2861
2937
|
date: (date) => {
|
|
2862
2938
|
if (isFieldReference(date)) {
|
|
@@ -2878,7 +2954,26 @@ function createFieldConditionals(fieldId) {
|
|
|
2878
2954
|
return {
|
|
2879
2955
|
days: (days) => ({
|
|
2880
2956
|
inPast: () => defineFormConditional(getDayRange(this, -days, "before")),
|
|
2881
|
-
inFuture: () => defineFormConditional(getDayRange(this, days, "before"))
|
|
2957
|
+
inFuture: () => defineFormConditional(getDayRange(this, days, "before")),
|
|
2958
|
+
fromDate: (date) => {
|
|
2959
|
+
if (isFieldReference(date)) {
|
|
2960
|
+
const comparedField = date;
|
|
2961
|
+
return defineFormConditional(
|
|
2962
|
+
getDayRangeToFieldReference(
|
|
2963
|
+
this,
|
|
2964
|
+
comparedField,
|
|
2965
|
+
-days,
|
|
2966
|
+
"before"
|
|
2967
|
+
)
|
|
2968
|
+
);
|
|
2969
|
+
}
|
|
2970
|
+
return defineFormConditional(
|
|
2971
|
+
getDayRange(this, -days, "before", date)
|
|
2972
|
+
);
|
|
2973
|
+
},
|
|
2974
|
+
fromNow: () => {
|
|
2975
|
+
return defineFormConditional(getDayRange(this, -days, "before"));
|
|
2976
|
+
}
|
|
2882
2977
|
}),
|
|
2883
2978
|
date: (date) => {
|
|
2884
2979
|
if (isFieldReference(date)) {
|