@kronor/dtv 0.2.9

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 (97) hide show
  1. package/.editorconfig +12 -0
  2. package/.github/copilot-instructions.md +64 -0
  3. package/.github/workflows/ci.yml +51 -0
  4. package/.husky/pre-commit +8 -0
  5. package/README.md +63 -0
  6. package/docs/api/README.md +32 -0
  7. package/docs/api/cell-renderers.md +121 -0
  8. package/docs/api/no-rows-component.md +71 -0
  9. package/docs/api/runtime.md +78 -0
  10. package/e2e/app.spec.ts +6 -0
  11. package/e2e/cell-renderer-setfilterstate.spec.ts +63 -0
  12. package/e2e/filter-sharing.spec.ts +113 -0
  13. package/e2e/filter-url-persistence.spec.ts +36 -0
  14. package/e2e/graphqlMock.ts +144 -0
  15. package/e2e/multi-field-filters.spec.ts +95 -0
  16. package/e2e/pagination.spec.ts +38 -0
  17. package/e2e/payment-request-email-filter.spec.ts +67 -0
  18. package/e2e/save-filter-splitbutton.spec.ts +68 -0
  19. package/e2e/simple-view-email-filter.spec.ts +67 -0
  20. package/e2e/simple-view-transforms.spec.ts +171 -0
  21. package/e2e/simple-view.spec.ts +104 -0
  22. package/e2e/transform-regression.spec.ts +108 -0
  23. package/eslint.config.js +30 -0
  24. package/index.html +17 -0
  25. package/jest.config.js +10 -0
  26. package/package.json +45 -0
  27. package/playwright.config.ts +54 -0
  28. package/public/vite.svg +1 -0
  29. package/src/App.externalRuntime.test.ts +190 -0
  30. package/src/App.tsx +540 -0
  31. package/src/assets/react.svg +1 -0
  32. package/src/components/AIAssistantForm.tsx +241 -0
  33. package/src/components/FilterForm.test.ts +82 -0
  34. package/src/components/FilterForm.tsx +375 -0
  35. package/src/components/PhoneNumberFilter.tsx +102 -0
  36. package/src/components/SavedFilterList.tsx +181 -0
  37. package/src/components/SpeechInput.tsx +67 -0
  38. package/src/components/Table.tsx +119 -0
  39. package/src/components/TablePagination.tsx +40 -0
  40. package/src/components/aiAssistant.test.ts +270 -0
  41. package/src/components/aiAssistant.ts +291 -0
  42. package/src/framework/cell-renderer-components/CurrencyAmount.tsx +30 -0
  43. package/src/framework/cell-renderer-components/LayoutHelpers.tsx +74 -0
  44. package/src/framework/cell-renderer-components/Link.tsx +28 -0
  45. package/src/framework/cell-renderer-components/Mapping.tsx +11 -0
  46. package/src/framework/cell-renderer-components.test.ts +353 -0
  47. package/src/framework/column-definition.tsx +85 -0
  48. package/src/framework/currency.test.ts +46 -0
  49. package/src/framework/currency.ts +62 -0
  50. package/src/framework/data.staticConditions.test.ts +46 -0
  51. package/src/framework/data.test.ts +167 -0
  52. package/src/framework/data.ts +162 -0
  53. package/src/framework/filter-form-state.test.ts +189 -0
  54. package/src/framework/filter-form-state.ts +185 -0
  55. package/src/framework/filter-sharing.test.ts +135 -0
  56. package/src/framework/filter-sharing.ts +118 -0
  57. package/src/framework/filters.ts +194 -0
  58. package/src/framework/graphql.buildHasuraConditions.test.ts +473 -0
  59. package/src/framework/graphql.paginationKey.test.ts +29 -0
  60. package/src/framework/graphql.test.ts +286 -0
  61. package/src/framework/graphql.ts +462 -0
  62. package/src/framework/native-runtime/index.tsx +33 -0
  63. package/src/framework/native-runtime/nativeComponents.test.ts +108 -0
  64. package/src/framework/runtime-reference.test.ts +172 -0
  65. package/src/framework/runtime.ts +15 -0
  66. package/src/framework/saved-filters.test.ts +422 -0
  67. package/src/framework/saved-filters.ts +293 -0
  68. package/src/framework/state.test.ts +86 -0
  69. package/src/framework/state.ts +148 -0
  70. package/src/framework/transform.test.ts +51 -0
  71. package/src/framework/view-parser-initialvalues.test.ts +228 -0
  72. package/src/framework/view-parser.ts +714 -0
  73. package/src/framework/view.test.ts +1805 -0
  74. package/src/framework/view.ts +38 -0
  75. package/src/index.css +6 -0
  76. package/src/main.tsx +99 -0
  77. package/src/views/index.ts +12 -0
  78. package/src/views/payment-requests/components/NoRowsExtendDateRange.tsx +37 -0
  79. package/src/views/payment-requests/components/PaymentMethod.tsx +184 -0
  80. package/src/views/payment-requests/components/PaymentStatusTag.tsx +61 -0
  81. package/src/views/payment-requests/index.ts +1 -0
  82. package/src/views/payment-requests/runtime.tsx +145 -0
  83. package/src/views/payment-requests/view.json +692 -0
  84. package/src/views/payment-requests-initial-values.test.ts +73 -0
  85. package/src/views/request-log/index.ts +2 -0
  86. package/src/views/request-log/runtime.tsx +47 -0
  87. package/src/views/request-log/view.json +123 -0
  88. package/src/views/simple-test-view/index.ts +3 -0
  89. package/src/views/simple-test-view/runtime.tsx +85 -0
  90. package/src/views/simple-test-view/view.json +191 -0
  91. package/src/vite-env.d.ts +1 -0
  92. package/tailwind.config.js +7 -0
  93. package/tsconfig.app.json +26 -0
  94. package/tsconfig.jest.json +6 -0
  95. package/tsconfig.json +7 -0
  96. package/tsconfig.node.json +24 -0
  97. package/vite.config.ts +11 -0
@@ -0,0 +1,692 @@
1
+ {
2
+ "title": "Payment Requests",
3
+ "id": "payment-requests",
4
+ "collectionName": "paymentRequests",
5
+ "paginationKey": "createdAt",
6
+ "boolExpType": "PaymentRequestBoolExp",
7
+ "orderByType": "[PaymentRequestOrderBy!]",
8
+ "noRowsComponent": {
9
+ "section": "noRowsComponents",
10
+ "key": "noRowsExtendDateRange"
11
+ },
12
+ "columns": [
13
+ {
14
+ "data": [
15
+ {
16
+ "type": "field",
17
+ "path": "transactionId"
18
+ },
19
+ {
20
+ "type": "field",
21
+ "path": "waitToken"
22
+ }
23
+ ],
24
+ "name": "Transaction",
25
+ "cellRenderer": {
26
+ "section": "cellRenderers",
27
+ "key": "transaction"
28
+ }
29
+ },
30
+ {
31
+ "data": [
32
+ {
33
+ "type": "field",
34
+ "path": "merchantId"
35
+ }
36
+ ],
37
+ "name": "Merchant",
38
+ "cellRenderer": {
39
+ "section": "cellRenderers",
40
+ "key": "merchant"
41
+ }
42
+ },
43
+ {
44
+ "data": [
45
+ {
46
+ "type": "field",
47
+ "path": "createdAt"
48
+ }
49
+ ],
50
+ "name": "Placed At",
51
+ "cellRenderer": {
52
+ "section": "cellRenderers",
53
+ "key": "placedAt"
54
+ }
55
+ },
56
+ {
57
+ "data": [
58
+ {
59
+ "type": "field",
60
+ "path": "reference"
61
+ }
62
+ ],
63
+ "name": "Reference",
64
+ "cellRenderer": {
65
+ "section": "cellRenderers",
66
+ "key": "text"
67
+ }
68
+ },
69
+ {
70
+ "data": [
71
+ {
72
+ "type": "field",
73
+ "path": "paymentProvider"
74
+ },
75
+ {
76
+ "type": "queryConfigs",
77
+ "configs": [
78
+ {
79
+ "field": "attempts",
80
+ "limit": 1,
81
+ "orderBy": {
82
+ "key": "createdAt",
83
+ "direction": "DESC"
84
+ }
85
+ },
86
+ {
87
+ "field": "cardType"
88
+ }
89
+ ]
90
+ }
91
+ ],
92
+ "name": "Provider",
93
+ "cellRenderer": {
94
+ "section": "cellRenderers",
95
+ "key": "paymentProvider"
96
+ }
97
+ },
98
+ {
99
+ "data": [
100
+ {
101
+ "type": "field",
102
+ "path": "customer.name"
103
+ },
104
+ {
105
+ "type": "field",
106
+ "path": "customer.email"
107
+ }
108
+ ],
109
+ "name": "Initiated By",
110
+ "cellRenderer": {
111
+ "section": "cellRenderers",
112
+ "key": "initiatedBy"
113
+ }
114
+ },
115
+ {
116
+ "data": [
117
+ {
118
+ "type": "field",
119
+ "path": "currentStatus"
120
+ }
121
+ ],
122
+ "name": "Status",
123
+ "cellRenderer": {
124
+ "section": "cellRenderers",
125
+ "key": "status"
126
+ }
127
+ },
128
+ {
129
+ "data": [
130
+ {
131
+ "type": "field",
132
+ "path": "currency"
133
+ },
134
+ {
135
+ "type": "field",
136
+ "path": "amount"
137
+ }
138
+ ],
139
+ "name": "Amount",
140
+ "cellRenderer": {
141
+ "section": "cellRenderers",
142
+ "key": "amount"
143
+ }
144
+ }
145
+ ],
146
+ "filterSchema": {
147
+ "groups": [
148
+ {
149
+ "name": "default",
150
+ "label": null
151
+ },
152
+ {
153
+ "name": "customer",
154
+ "label": "Customer Filters"
155
+ },
156
+ {
157
+ "name": "credit-card",
158
+ "label": "Credit Card Filters"
159
+ },
160
+ {
161
+ "name": "additional",
162
+ "label": "Additional Filters"
163
+ }
164
+ ],
165
+ "filters": [
166
+ {
167
+ "id": "merchant",
168
+ "label": "Merchant",
169
+ "expression": {
170
+ "type": "in",
171
+ "field": "merchantId",
172
+ "value": {
173
+ "type": "multiselect",
174
+ "items": [
175
+ {
176
+ "label": "Boozt",
177
+ "value": 1
178
+ },
179
+ {
180
+ "label": "Boozt Dev",
181
+ "value": 2
182
+ }
183
+ ]
184
+ }
185
+ },
186
+ "group": "default",
187
+ "aiGenerated": false
188
+ },
189
+ {
190
+ "id": "payment-provider",
191
+ "label": "Payment Provider",
192
+ "expression": {
193
+ "type": "in",
194
+ "field": "paymentProvider",
195
+ "value": {
196
+ "type": "multiselect",
197
+ "items": [
198
+ {
199
+ "label": "Bank Transfer",
200
+ "value": "BANK_TRANSFER"
201
+ },
202
+ {
203
+ "label": "Credit Card",
204
+ "value": "CREDIT_CARD"
205
+ },
206
+ {
207
+ "label": "Direct Debit",
208
+ "value": "DIRECT_DEBIT"
209
+ },
210
+ {
211
+ "label": "MobilePay",
212
+ "value": "MOBILEPAY"
213
+ },
214
+ {
215
+ "label": "P24",
216
+ "value": "P24"
217
+ },
218
+ {
219
+ "label": "PayPal",
220
+ "value": "PAYPAL"
221
+ },
222
+ {
223
+ "label": "Swish",
224
+ "value": "SWISH"
225
+ },
226
+ {
227
+ "label": "Vipps",
228
+ "value": "VIPPS"
229
+ }
230
+ ]
231
+ }
232
+ },
233
+ "group": "default",
234
+ "aiGenerated": false
235
+ },
236
+ {
237
+ "id": "payment-status",
238
+ "label": "Payment Status",
239
+ "expression": {
240
+ "type": "in",
241
+ "field": "currentStatus",
242
+ "value": {
243
+ "type": "multiselect",
244
+ "items": [
245
+ {
246
+ "label": "Cancelled",
247
+ "value": "CANCELLED"
248
+ },
249
+ {
250
+ "label": "Paid",
251
+ "value": "PAID"
252
+ },
253
+ {
254
+ "label": "Error",
255
+ "value": "ERROR"
256
+ },
257
+ {
258
+ "label": "Declined",
259
+ "value": "DECLINED"
260
+ },
261
+ {
262
+ "label": "Preflight Check",
263
+ "value": "PRE_FLIGHT_CHECK"
264
+ },
265
+ {
266
+ "label": "Initializing",
267
+ "value": "INITIALIZING"
268
+ },
269
+ {
270
+ "label": "Waiting",
271
+ "value": "WAITING_FOR_PAYMENT"
272
+ },
273
+ {
274
+ "label": "Promoting",
275
+ "value": "WAITING_FOR_PROMOTION"
276
+ },
277
+ {
278
+ "label": "Cancelling",
279
+ "value": "CANCELLING"
280
+ },
281
+ {
282
+ "label": "Flow Completed",
283
+ "value": "FLOW_COMPLETED"
284
+ },
285
+ {
286
+ "label": "Authorized",
287
+ "value": "AUTHORIZED"
288
+ },
289
+ {
290
+ "label": "Partially Captured",
291
+ "value": "PARTIALLY_CAPTURED"
292
+ },
293
+ {
294
+ "label": "Capture Declined",
295
+ "value": "CAPTURE_DECLINED"
296
+ },
297
+ {
298
+ "label": "Payment Released",
299
+ "value": "RELEASED"
300
+ }
301
+ ],
302
+ "filterable": true
303
+ }
304
+ },
305
+ "group": "default",
306
+ "aiGenerated": false
307
+ },
308
+ {
309
+ "id": "reference",
310
+ "label": "Reference",
311
+ "expression": {
312
+ "type": "equals",
313
+ "field": "reference",
314
+ "value": {
315
+ "type": "customOperator",
316
+ "operators": [
317
+ {
318
+ "label": "equals",
319
+ "value": "_eq"
320
+ },
321
+ {
322
+ "label": "starts with",
323
+ "value": "_like"
324
+ }
325
+ ],
326
+ "valueControl": {
327
+ "type": "text"
328
+ }
329
+ },
330
+ "transform": {
331
+ "section": "queryTransforms",
332
+ "key": "reference"
333
+ }
334
+ },
335
+ "group": "default",
336
+ "aiGenerated": false
337
+ },
338
+ {
339
+ "id": "payment-id",
340
+ "label": "Payment ID",
341
+ "expression": {
342
+ "type": "equals",
343
+ "field": "resultingPaymentId",
344
+ "value": {
345
+ "type": "text"
346
+ }
347
+ },
348
+ "group": "default",
349
+ "aiGenerated": false
350
+ },
351
+ {
352
+ "id": "customer-email",
353
+ "label": "Customer Email",
354
+ "expression": {
355
+ "type": "equals",
356
+ "field": "customer.email",
357
+ "value": {
358
+ "type": "customOperator",
359
+ "operators": [
360
+ {
361
+ "label": "equals",
362
+ "value": "_eq"
363
+ },
364
+ {
365
+ "label": "not equals",
366
+ "value": "_neq"
367
+ }
368
+ ],
369
+ "valueControl": {
370
+ "type": "text"
371
+ }
372
+ }
373
+ },
374
+ "group": "default",
375
+ "aiGenerated": false
376
+ },
377
+ {
378
+ "id": "customer-name",
379
+ "label": "Customer Name",
380
+ "expression": {
381
+ "type": "iLike",
382
+ "field": "customer.name",
383
+ "value": {
384
+ "type": "text"
385
+ }
386
+ },
387
+ "group": "customer",
388
+ "aiGenerated": false
389
+ },
390
+ {
391
+ "id": "date-range",
392
+ "label": "Date Range",
393
+ "expression": {
394
+ "type": "and",
395
+ "filters": [
396
+ {
397
+ "type": "greaterThanOrEqual",
398
+ "field": "createdAt",
399
+ "value": {
400
+ "type": "date",
401
+ "placeholder": "from",
402
+ "initialValue": {
403
+ "section": "initialValues",
404
+ "key": "dateRangeStart"
405
+ }
406
+ }
407
+ },
408
+ {
409
+ "type": "lessThanOrEqual",
410
+ "field": "createdAt",
411
+ "value": {
412
+ "type": "date",
413
+ "placeholder": "to",
414
+ "initialValue": {
415
+ "section": "initialValues",
416
+ "key": "dateRangeEnd"
417
+ }
418
+ }
419
+ }
420
+ ]
421
+ },
422
+ "group": "default",
423
+ "aiGenerated": false
424
+ },
425
+ {
426
+ "id": "reference-2",
427
+ "label": "Reference 2",
428
+ "expression": {
429
+ "type": "equals",
430
+ "field": "merchantReference2",
431
+ "value": {
432
+ "type": "customOperator",
433
+ "operators": [
434
+ {
435
+ "label": "equals",
436
+ "value": "_eq"
437
+ },
438
+ {
439
+ "label": "starts with",
440
+ "value": "_like"
441
+ }
442
+ ],
443
+ "valueControl": {
444
+ "type": "text"
445
+ }
446
+ },
447
+ "transform": {
448
+ "section": "queryTransforms",
449
+ "key": "reference"
450
+ }
451
+ },
452
+ "group": "default",
453
+ "aiGenerated": false
454
+ },
455
+ {
456
+ "id": "amount-range",
457
+ "label": "Amount",
458
+ "expression": {
459
+ "type": "and",
460
+ "filters": [
461
+ {
462
+ "type": "greaterThanOrEqual",
463
+ "field": "amount",
464
+ "value": {
465
+ "type": "number",
466
+ "placeholder": "from"
467
+ },
468
+ "transform": {
469
+ "section": "queryTransforms",
470
+ "key": "amount"
471
+ }
472
+ },
473
+ {
474
+ "type": "lessThanOrEqual",
475
+ "field": "amount",
476
+ "value": {
477
+ "type": "number",
478
+ "placeholder": "to"
479
+ },
480
+ "transform": {
481
+ "section": "queryTransforms",
482
+ "key": "amount"
483
+ }
484
+ }
485
+ ]
486
+ },
487
+ "group": "additional",
488
+ "aiGenerated": false
489
+ },
490
+ {
491
+ "id": "currency",
492
+ "label": "Currency",
493
+ "expression": {
494
+ "type": "in",
495
+ "field": "currency",
496
+ "value": {
497
+ "type": "multiselect",
498
+ "items": [
499
+ {
500
+ "label": "SEK",
501
+ "value": "SEK"
502
+ },
503
+ {
504
+ "label": "EUR",
505
+ "value": "EUR"
506
+ },
507
+ {
508
+ "label": "DKK",
509
+ "value": "DKK"
510
+ },
511
+ {
512
+ "label": "ISK",
513
+ "value": "ISK"
514
+ },
515
+ {
516
+ "label": "CHF",
517
+ "value": "CHF"
518
+ },
519
+ {
520
+ "label": "CZK",
521
+ "value": "CZK"
522
+ },
523
+ {
524
+ "label": "HUF",
525
+ "value": "HUF"
526
+ },
527
+ {
528
+ "label": "NOK",
529
+ "value": "NOK"
530
+ },
531
+ {
532
+ "label": "PLN",
533
+ "value": "PLN"
534
+ },
535
+ {
536
+ "label": "RON",
537
+ "value": "RON"
538
+ },
539
+ {
540
+ "label": "GBP",
541
+ "value": "GBP"
542
+ },
543
+ {
544
+ "label": "USD",
545
+ "value": "USD"
546
+ }
547
+ ]
548
+ }
549
+ },
550
+ "group": "additional",
551
+ "aiGenerated": false
552
+ },
553
+ {
554
+ "id": "refund-status",
555
+ "label": "Refund Status",
556
+ "expression": {
557
+ "type": "in",
558
+ "field": "payment.paymentRefundStatus",
559
+ "value": {
560
+ "type": "multiselect",
561
+ "items": [
562
+ {
563
+ "label": "Fully Refunded Payments",
564
+ "value": "FULLY_REFUNDED"
565
+ },
566
+ {
567
+ "label": "Partially Refunded Payments",
568
+ "value": "PARTIALLY_REFUNDED"
569
+ },
570
+ {
571
+ "label": "Payments With No Refunds",
572
+ "value": "NO_REFUND"
573
+ }
574
+ ]
575
+ }
576
+ },
577
+ "group": "additional",
578
+ "aiGenerated": false
579
+ },
580
+ {
581
+ "id": "device-fingerprint",
582
+ "label": "Device Fingerprint",
583
+ "expression": {
584
+ "type": "equals",
585
+ "field": "customer.device.fingerprint",
586
+ "value": {
587
+ "type": "text"
588
+ }
589
+ },
590
+ "group": "additional",
591
+ "aiGenerated": false
592
+ },
593
+ {
594
+ "id": "card-type",
595
+ "label": "Card Type",
596
+ "expression": {
597
+ "type": "in",
598
+ "field": "attempts.cardType",
599
+ "value": {
600
+ "type": "multiselect",
601
+ "items": [
602
+ {
603
+ "label": "American Express",
604
+ "value": "amex"
605
+ },
606
+ {
607
+ "label": "China Union Pay",
608
+ "value": "china_union_pay"
609
+ },
610
+ {
611
+ "label": "Dankort",
612
+ "value": "dankort"
613
+ },
614
+ {
615
+ "label": "Diners",
616
+ "value": "diners"
617
+ },
618
+ {
619
+ "label": "Discover",
620
+ "value": "discover"
621
+ },
622
+ {
623
+ "label": "Forbrugsforeningen",
624
+ "value": "ffk"
625
+ },
626
+ {
627
+ "label": "JCB",
628
+ "value": "jcb"
629
+ },
630
+ {
631
+ "label": "Maestro",
632
+ "value": "maestro"
633
+ },
634
+ {
635
+ "label": "MasterCard",
636
+ "value": "mc"
637
+ },
638
+ {
639
+ "label": "Visa Electron",
640
+ "value": "visa_elec"
641
+ },
642
+ {
643
+ "label": "Visa-DK",
644
+ "value": "visa_dk"
645
+ },
646
+ {
647
+ "label": "Visa",
648
+ "value": "visa"
649
+ }
650
+ ]
651
+ }
652
+ },
653
+ "group": "credit-card",
654
+ "aiGenerated": false
655
+ },
656
+ {
657
+ "id": "credit-card-number",
658
+ "label": "Credit Card Number",
659
+ "expression": {
660
+ "type": "iLike",
661
+ "field": "attempts.maskedCard",
662
+ "value": {
663
+ "type": "text"
664
+ },
665
+ "transform": {
666
+ "section": "queryTransforms",
667
+ "key": "creditCardNumber"
668
+ }
669
+ },
670
+ "group": "credit-card",
671
+ "aiGenerated": false
672
+ },
673
+ {
674
+ "id": "customer-phone",
675
+ "label": "Customer Phone",
676
+ "expression": {
677
+ "type": "equals",
678
+ "field": "customer.packedPhoneNumber",
679
+ "value": {
680
+ "type": "custom",
681
+ "component": {
682
+ "section": "customFilterComponents",
683
+ "key": "PhoneNumberFilter"
684
+ }
685
+ }
686
+ },
687
+ "group": "customer",
688
+ "aiGenerated": false
689
+ }
690
+ ]
691
+ }
692
+ }