@actual-app/web 26.8.0-nightly.20260802 → 26.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/.vite/manifest.json +68 -68
- package/build/index.html +8 -8
- package/build/static/js/{AppliedFilters.uF1LizIt.chunk.js → AppliedFilters.B1TqwFTR.chunk.js} +2 -2
- package/build/static/js/{AppliedFilters.uF1LizIt.chunk.js.map → AppliedFilters.B1TqwFTR.chunk.js.map} +1 -1
- package/build/static/js/ManageRules.COBXWVju.chunk.js +2 -0
- package/build/static/js/ManageRules.COBXWVju.chunk.js.map +1 -0
- package/build/static/js/{PayeeRuleCountLabel.BNe8mYtt.chunk.js → PayeeRuleCountLabel.DVD9dzOn.chunk.js} +2 -2
- package/build/static/js/{PayeeRuleCountLabel.BNe8mYtt.chunk.js.map → PayeeRuleCountLabel.DVD9dzOn.chunk.js.map} +1 -1
- package/build/static/js/{ReportRouter.BQulKGsH.chunk.js → ReportRouter.DND_6NsO.chunk.js} +2 -2
- package/build/static/js/{ReportRouter.BQulKGsH.chunk.js.map → ReportRouter.DND_6NsO.chunk.js.map} +1 -1
- package/build/static/js/{ScheduleEditForm.CPB6bwsk.chunk.js → ScheduleEditForm.XrBRsUfo.chunk.js} +2 -2
- package/build/static/js/{ScheduleEditForm.CPB6bwsk.chunk.js.map → ScheduleEditForm.XrBRsUfo.chunk.js.map} +1 -1
- package/build/static/js/{SchedulesTable.YzMj5pN5.chunk.js → SchedulesTable.BaO65--v.chunk.js} +2 -2
- package/build/static/js/{SchedulesTable.YzMj5pN5.chunk.js.map → SchedulesTable.BaO65--v.chunk.js.map} +1 -1
- package/build/static/js/{TransactionEdit.Db5hqQZp.chunk.js → TransactionEdit.D_BSvTeF.chunk.js} +2 -2
- package/build/static/js/{TransactionEdit.Db5hqQZp.chunk.js.map → TransactionEdit.D_BSvTeF.chunk.js.map} +1 -1
- package/build/static/js/{TransactionList.DRJfKEHI.chunk.js → TransactionList.B5fA9Lx-.chunk.js} +2 -2
- package/build/static/js/{TransactionList.DRJfKEHI.chunk.js.map → TransactionList.B5fA9Lx-.chunk.js.map} +1 -1
- package/build/static/js/{Value.CCTE7k9J.chunk.js → Value.5y1eRFoA.chunk.js} +4 -4
- package/build/static/js/Value.5y1eRFoA.chunk.js.map +1 -0
- package/build/static/js/{chart-theme.BOF-gsRS.chunk.js → chart-theme.D3VFxfPj.chunk.js} +2 -2
- package/build/static/js/{chart-theme.BOF-gsRS.chunk.js.map → chart-theme.D3VFxfPj.chunk.js.map} +1 -1
- package/build/static/js/{index.DOcl_LYi.js → index.CjUOGzIv.js} +5 -5
- package/build/static/js/index.CjUOGzIv.js.map +1 -0
- package/build/static/js/{narrow.1nwrgoqx.chunk.js → narrow.CYAG66HS.chunk.js} +2 -2
- package/build/static/js/{narrow.1nwrgoqx.chunk.js.map → narrow.CYAG66HS.chunk.js.map} +1 -1
- package/build/static/js/{useFormatList.DXr4CFjy.chunk.js → useFormatList.CS1To2i4.chunk.js} +2 -2
- package/build/static/js/{useFormatList.DXr4CFjy.chunk.js.map → useFormatList.CS1To2i4.chunk.js.map} +1 -1
- package/build/static/js/{useTransactionBatchActions.BTq5IMyW.chunk.js → useTransactionBatchActions.BuaMgX8r.chunk.js} +2 -2
- package/build/static/js/{useTransactionBatchActions.BTq5IMyW.chunk.js.map → useTransactionBatchActions.BuaMgX8r.chunk.js.map} +1 -1
- package/build/static/js/{wide.DD8Z04IH.chunk.js → wide.CSs5pXw0.chunk.js} +3 -3
- package/build/static/js/wide.CSs5pXw0.chunk.js.map +1 -0
- package/build/sw.js +1 -1
- package/build/sw.js.map +1 -1
- package/package.json +3 -3
- package/build/static/js/ManageRules.DtI4JO_v.chunk.js +0 -2
- package/build/static/js/ManageRules.DtI4JO_v.chunk.js.map +0 -1
- package/build/static/js/Value.CCTE7k9J.chunk.js.map +0 -1
- package/build/static/js/index.DOcl_LYi.js.map +0 -1
- package/build/static/js/wide.DD8Z04IH.chunk.js.map +0 -1
|
@@ -83,76 +83,76 @@
|
|
|
83
83
|
"src": "../../node_modules/workbox-window/build/workbox-window.prod.es5.mjs",
|
|
84
84
|
"isDynamicEntry": true
|
|
85
85
|
},
|
|
86
|
-
"_AppliedFilters.
|
|
87
|
-
"file": "static/js/AppliedFilters.
|
|
86
|
+
"_AppliedFilters.B1TqwFTR.chunk.js": {
|
|
87
|
+
"file": "static/js/AppliedFilters.B1TqwFTR.chunk.js",
|
|
88
88
|
"name": "AppliedFilters",
|
|
89
89
|
"imports": [
|
|
90
90
|
"_theme.BTyknj3e.chunk.js",
|
|
91
91
|
"_useDateFormat.BQBgttLk.chunk.js",
|
|
92
|
-
"_Value.
|
|
92
|
+
"_Value.5y1eRFoA.chunk.js"
|
|
93
93
|
]
|
|
94
94
|
},
|
|
95
|
-
"_ManageRules.
|
|
96
|
-
"file": "static/js/ManageRules.
|
|
95
|
+
"_ManageRules.COBXWVju.chunk.js": {
|
|
96
|
+
"file": "static/js/ManageRules.COBXWVju.chunk.js",
|
|
97
97
|
"name": "ManageRules",
|
|
98
98
|
"imports": [
|
|
99
99
|
"_theme.BTyknj3e.chunk.js",
|
|
100
100
|
"_useDateFormat.BQBgttLk.chunk.js",
|
|
101
|
-
"_Value.
|
|
101
|
+
"_Value.5y1eRFoA.chunk.js"
|
|
102
102
|
]
|
|
103
103
|
},
|
|
104
|
-
"_PayeeRuleCountLabel.
|
|
105
|
-
"file": "static/js/PayeeRuleCountLabel.
|
|
104
|
+
"_PayeeRuleCountLabel.DVD9dzOn.chunk.js": {
|
|
105
|
+
"file": "static/js/PayeeRuleCountLabel.DVD9dzOn.chunk.js",
|
|
106
106
|
"name": "PayeeRuleCountLabel",
|
|
107
107
|
"imports": [
|
|
108
108
|
"_theme.BTyknj3e.chunk.js",
|
|
109
109
|
"_useDateFormat.BQBgttLk.chunk.js",
|
|
110
|
-
"_Value.
|
|
110
|
+
"_Value.5y1eRFoA.chunk.js"
|
|
111
111
|
]
|
|
112
112
|
},
|
|
113
|
-
"_ScheduleEditForm.
|
|
114
|
-
"file": "static/js/ScheduleEditForm.
|
|
113
|
+
"_ScheduleEditForm.XrBRsUfo.chunk.js": {
|
|
114
|
+
"file": "static/js/ScheduleEditForm.XrBRsUfo.chunk.js",
|
|
115
115
|
"name": "ScheduleEditForm",
|
|
116
116
|
"imports": [
|
|
117
117
|
"_theme.BTyknj3e.chunk.js",
|
|
118
118
|
"_useDateFormat.BQBgttLk.chunk.js",
|
|
119
|
-
"_Value.
|
|
120
|
-
"_TransactionEdit.
|
|
119
|
+
"_Value.5y1eRFoA.chunk.js",
|
|
120
|
+
"_TransactionEdit.D_BSvTeF.chunk.js"
|
|
121
121
|
]
|
|
122
122
|
},
|
|
123
|
-
"_SchedulesTable.
|
|
124
|
-
"file": "static/js/SchedulesTable.
|
|
123
|
+
"_SchedulesTable.BaO65--v.chunk.js": {
|
|
124
|
+
"file": "static/js/SchedulesTable.BaO65--v.chunk.js",
|
|
125
125
|
"name": "SchedulesTable",
|
|
126
126
|
"imports": [
|
|
127
127
|
"_theme.BTyknj3e.chunk.js",
|
|
128
128
|
"_useDateFormat.BQBgttLk.chunk.js",
|
|
129
|
-
"_Value.
|
|
130
|
-
"_chart-theme.
|
|
131
|
-
"_ManageRules.
|
|
129
|
+
"_Value.5y1eRFoA.chunk.js",
|
|
130
|
+
"_chart-theme.D3VFxfPj.chunk.js",
|
|
131
|
+
"_ManageRules.COBXWVju.chunk.js"
|
|
132
132
|
]
|
|
133
133
|
},
|
|
134
|
-
"_TransactionEdit.
|
|
135
|
-
"file": "static/js/TransactionEdit.
|
|
134
|
+
"_TransactionEdit.D_BSvTeF.chunk.js": {
|
|
135
|
+
"file": "static/js/TransactionEdit.D_BSvTeF.chunk.js",
|
|
136
136
|
"name": "TransactionEdit",
|
|
137
137
|
"imports": [
|
|
138
138
|
"_theme.BTyknj3e.chunk.js",
|
|
139
139
|
"_useDateFormat.BQBgttLk.chunk.js",
|
|
140
|
-
"_Value.
|
|
140
|
+
"_Value.5y1eRFoA.chunk.js"
|
|
141
141
|
]
|
|
142
142
|
},
|
|
143
|
-
"_TransactionList.
|
|
144
|
-
"file": "static/js/TransactionList.
|
|
143
|
+
"_TransactionList.B5fA9Lx-.chunk.js": {
|
|
144
|
+
"file": "static/js/TransactionList.B5fA9Lx-.chunk.js",
|
|
145
145
|
"name": "TransactionList",
|
|
146
146
|
"imports": [
|
|
147
147
|
"_theme.BTyknj3e.chunk.js",
|
|
148
148
|
"_useDateFormat.BQBgttLk.chunk.js",
|
|
149
|
-
"_Value.
|
|
150
|
-
"_TransactionEdit.
|
|
151
|
-
"_useTransactionBatchActions.
|
|
149
|
+
"_Value.5y1eRFoA.chunk.js",
|
|
150
|
+
"_TransactionEdit.D_BSvTeF.chunk.js",
|
|
151
|
+
"_useTransactionBatchActions.BuaMgX8r.chunk.js"
|
|
152
152
|
]
|
|
153
153
|
},
|
|
154
|
-
"_Value.
|
|
155
|
-
"file": "static/js/Value.
|
|
154
|
+
"_Value.5y1eRFoA.chunk.js": {
|
|
155
|
+
"file": "static/js/Value.5y1eRFoA.chunk.js",
|
|
156
156
|
"name": "Value",
|
|
157
157
|
"imports": [
|
|
158
158
|
"_theme.BTyknj3e.chunk.js",
|
|
@@ -169,13 +169,13 @@
|
|
|
169
169
|
"_useDateFormat.BQBgttLk.chunk.js"
|
|
170
170
|
]
|
|
171
171
|
},
|
|
172
|
-
"_chart-theme.
|
|
173
|
-
"file": "static/js/chart-theme.
|
|
172
|
+
"_chart-theme.D3VFxfPj.chunk.js": {
|
|
173
|
+
"file": "static/js/chart-theme.D3VFxfPj.chunk.js",
|
|
174
174
|
"name": "chart-theme",
|
|
175
175
|
"imports": [
|
|
176
176
|
"_theme.BTyknj3e.chunk.js",
|
|
177
177
|
"_useDateFormat.BQBgttLk.chunk.js",
|
|
178
|
-
"_Value.
|
|
178
|
+
"_Value.5y1eRFoA.chunk.js"
|
|
179
179
|
]
|
|
180
180
|
},
|
|
181
181
|
"_client.pqETbwxE.chunk.js": {
|
|
@@ -215,25 +215,25 @@
|
|
|
215
215
|
"locale/zh-Hans.json"
|
|
216
216
|
]
|
|
217
217
|
},
|
|
218
|
-
"_useFormatList.
|
|
219
|
-
"file": "static/js/useFormatList.
|
|
218
|
+
"_useFormatList.CS1To2i4.chunk.js": {
|
|
219
|
+
"file": "static/js/useFormatList.CS1To2i4.chunk.js",
|
|
220
220
|
"name": "useFormatList",
|
|
221
221
|
"imports": [
|
|
222
222
|
"_theme.BTyknj3e.chunk.js",
|
|
223
223
|
"_useDateFormat.BQBgttLk.chunk.js",
|
|
224
|
-
"_Value.
|
|
224
|
+
"_Value.5y1eRFoA.chunk.js"
|
|
225
225
|
]
|
|
226
226
|
},
|
|
227
|
-
"_useTransactionBatchActions.
|
|
228
|
-
"file": "static/js/useTransactionBatchActions.
|
|
227
|
+
"_useTransactionBatchActions.BuaMgX8r.chunk.js": {
|
|
228
|
+
"file": "static/js/useTransactionBatchActions.BuaMgX8r.chunk.js",
|
|
229
229
|
"name": "useTransactionBatchActions",
|
|
230
230
|
"imports": [
|
|
231
231
|
"_useDateFormat.BQBgttLk.chunk.js",
|
|
232
|
-
"_Value.
|
|
232
|
+
"_Value.5y1eRFoA.chunk.js"
|
|
233
233
|
]
|
|
234
234
|
},
|
|
235
235
|
"index.html": {
|
|
236
|
-
"file": "static/js/index.
|
|
236
|
+
"file": "static/js/index.CjUOGzIv.js",
|
|
237
237
|
"name": "index",
|
|
238
238
|
"src": "index.html",
|
|
239
239
|
"isEntry": true,
|
|
@@ -241,13 +241,13 @@
|
|
|
241
241
|
"_theme.BTyknj3e.chunk.js",
|
|
242
242
|
"_useDateFormat.BQBgttLk.chunk.js",
|
|
243
243
|
"_client.pqETbwxE.chunk.js",
|
|
244
|
-
"_Value.
|
|
245
|
-
"_chart-theme.
|
|
246
|
-
"_SchedulesTable.
|
|
247
|
-
"_ManageRules.
|
|
248
|
-
"_ScheduleEditForm.
|
|
249
|
-
"_useFormatList.
|
|
250
|
-
"_TransactionEdit.
|
|
244
|
+
"_Value.5y1eRFoA.chunk.js",
|
|
245
|
+
"_chart-theme.D3VFxfPj.chunk.js",
|
|
246
|
+
"_SchedulesTable.BaO65--v.chunk.js",
|
|
247
|
+
"_ManageRules.COBXWVju.chunk.js",
|
|
248
|
+
"_ScheduleEditForm.XrBRsUfo.chunk.js",
|
|
249
|
+
"_useFormatList.CS1To2i4.chunk.js",
|
|
250
|
+
"_TransactionEdit.D_BSvTeF.chunk.js"
|
|
251
251
|
],
|
|
252
252
|
"dynamicImports": [
|
|
253
253
|
"../../node_modules/absurd-sql/dist/indexeddb-main-thread-worker-e59fee74.js",
|
|
@@ -404,20 +404,20 @@
|
|
|
404
404
|
]
|
|
405
405
|
},
|
|
406
406
|
"src/components/reports/ReportRouter.tsx": {
|
|
407
|
-
"file": "static/js/ReportRouter.
|
|
407
|
+
"file": "static/js/ReportRouter.DND_6NsO.chunk.js",
|
|
408
408
|
"name": "ReportRouter",
|
|
409
409
|
"src": "src/components/reports/ReportRouter.tsx",
|
|
410
410
|
"isDynamicEntry": true,
|
|
411
411
|
"imports": [
|
|
412
412
|
"_theme.BTyknj3e.chunk.js",
|
|
413
413
|
"_useDateFormat.BQBgttLk.chunk.js",
|
|
414
|
-
"_Value.
|
|
415
|
-
"_chart-theme.
|
|
416
|
-
"_TransactionList.
|
|
417
|
-
"_useFormatList.
|
|
418
|
-
"_TransactionEdit.
|
|
414
|
+
"_Value.5y1eRFoA.chunk.js",
|
|
415
|
+
"_chart-theme.D3VFxfPj.chunk.js",
|
|
416
|
+
"_TransactionList.B5fA9Lx-.chunk.js",
|
|
417
|
+
"_useFormatList.CS1To2i4.chunk.js",
|
|
418
|
+
"_TransactionEdit.D_BSvTeF.chunk.js",
|
|
419
419
|
"_bootstrapHyperFormula.Cwp6qZoq.chunk.js",
|
|
420
|
-
"_AppliedFilters.
|
|
420
|
+
"_AppliedFilters.B1TqwFTR.chunk.js"
|
|
421
421
|
],
|
|
422
422
|
"dynamicImports": [
|
|
423
423
|
"src/components/formula/FormulaEditor.tsx"
|
|
@@ -427,37 +427,37 @@
|
|
|
427
427
|
]
|
|
428
428
|
},
|
|
429
429
|
"src/components/responsive/narrow.ts": {
|
|
430
|
-
"file": "static/js/narrow.
|
|
430
|
+
"file": "static/js/narrow.CYAG66HS.chunk.js",
|
|
431
431
|
"name": "narrow",
|
|
432
432
|
"src": "src/components/responsive/narrow.ts",
|
|
433
433
|
"isDynamicEntry": true,
|
|
434
434
|
"imports": [
|
|
435
435
|
"_theme.BTyknj3e.chunk.js",
|
|
436
436
|
"_useDateFormat.BQBgttLk.chunk.js",
|
|
437
|
-
"_Value.
|
|
438
|
-
"_ManageRules.
|
|
439
|
-
"_ScheduleEditForm.
|
|
440
|
-
"_TransactionList.
|
|
441
|
-
"_TransactionEdit.
|
|
442
|
-
"_useTransactionBatchActions.
|
|
443
|
-
"_PayeeRuleCountLabel.
|
|
437
|
+
"_Value.5y1eRFoA.chunk.js",
|
|
438
|
+
"_ManageRules.COBXWVju.chunk.js",
|
|
439
|
+
"_ScheduleEditForm.XrBRsUfo.chunk.js",
|
|
440
|
+
"_TransactionList.B5fA9Lx-.chunk.js",
|
|
441
|
+
"_TransactionEdit.D_BSvTeF.chunk.js",
|
|
442
|
+
"_useTransactionBatchActions.BuaMgX8r.chunk.js",
|
|
443
|
+
"_PayeeRuleCountLabel.DVD9dzOn.chunk.js"
|
|
444
444
|
]
|
|
445
445
|
},
|
|
446
446
|
"src/components/responsive/wide.ts": {
|
|
447
|
-
"file": "static/js/wide.
|
|
447
|
+
"file": "static/js/wide.CSs5pXw0.chunk.js",
|
|
448
448
|
"name": "wide",
|
|
449
449
|
"src": "src/components/responsive/wide.ts",
|
|
450
450
|
"isDynamicEntry": true,
|
|
451
451
|
"imports": [
|
|
452
452
|
"_theme.BTyknj3e.chunk.js",
|
|
453
453
|
"_useDateFormat.BQBgttLk.chunk.js",
|
|
454
|
-
"_Value.
|
|
455
|
-
"_chart-theme.
|
|
456
|
-
"_SchedulesTable.
|
|
457
|
-
"_ManageRules.
|
|
458
|
-
"_AppliedFilters.
|
|
459
|
-
"_useTransactionBatchActions.
|
|
460
|
-
"_PayeeRuleCountLabel.
|
|
454
|
+
"_Value.5y1eRFoA.chunk.js",
|
|
455
|
+
"_chart-theme.D3VFxfPj.chunk.js",
|
|
456
|
+
"_SchedulesTable.BaO65--v.chunk.js",
|
|
457
|
+
"_ManageRules.COBXWVju.chunk.js",
|
|
458
|
+
"_AppliedFilters.B1TqwFTR.chunk.js",
|
|
459
|
+
"_useTransactionBatchActions.BuaMgX8r.chunk.js",
|
|
460
|
+
"_PayeeRuleCountLabel.DVD9dzOn.chunk.js"
|
|
461
461
|
]
|
|
462
462
|
}
|
|
463
463
|
}
|
package/build/index.html
CHANGED
|
@@ -118,17 +118,17 @@
|
|
|
118
118
|
height: 100%;
|
|
119
119
|
}
|
|
120
120
|
</style>
|
|
121
|
-
<script type="module" crossorigin src="/static/js/index.
|
|
121
|
+
<script type="module" crossorigin src="/static/js/index.CjUOGzIv.js"></script>
|
|
122
122
|
<link rel="modulepreload" crossorigin href="/static/js/theme.BTyknj3e.chunk.js">
|
|
123
123
|
<link rel="modulepreload" crossorigin href="/static/js/useDateFormat.BQBgttLk.chunk.js">
|
|
124
124
|
<link rel="modulepreload" crossorigin href="/static/js/client.pqETbwxE.chunk.js">
|
|
125
|
-
<link rel="modulepreload" crossorigin href="/static/js/Value.
|
|
126
|
-
<link rel="modulepreload" crossorigin href="/static/js/chart-theme.
|
|
127
|
-
<link rel="modulepreload" crossorigin href="/static/js/ManageRules.
|
|
128
|
-
<link rel="modulepreload" crossorigin href="/static/js/SchedulesTable.
|
|
129
|
-
<link rel="modulepreload" crossorigin href="/static/js/TransactionEdit.
|
|
130
|
-
<link rel="modulepreload" crossorigin href="/static/js/ScheduleEditForm.
|
|
131
|
-
<link rel="modulepreload" crossorigin href="/static/js/useFormatList.
|
|
125
|
+
<link rel="modulepreload" crossorigin href="/static/js/Value.5y1eRFoA.chunk.js">
|
|
126
|
+
<link rel="modulepreload" crossorigin href="/static/js/chart-theme.D3VFxfPj.chunk.js">
|
|
127
|
+
<link rel="modulepreload" crossorigin href="/static/js/ManageRules.COBXWVju.chunk.js">
|
|
128
|
+
<link rel="modulepreload" crossorigin href="/static/js/SchedulesTable.BaO65--v.chunk.js">
|
|
129
|
+
<link rel="modulepreload" crossorigin href="/static/js/TransactionEdit.D_BSvTeF.chunk.js">
|
|
130
|
+
<link rel="modulepreload" crossorigin href="/static/js/ScheduleEditForm.XrBRsUfo.chunk.js">
|
|
131
|
+
<link rel="modulepreload" crossorigin href="/static/js/useFormatList.CS1To2i4.chunk.js">
|
|
132
132
|
<link rel="stylesheet" crossorigin href="/static/css/index.DaMJyE_v.css">
|
|
133
133
|
<link rel="manifest" href="/manifest.webmanifest"></head>
|
|
134
134
|
<body>
|
package/build/static/js/{AppliedFilters.uF1LizIt.chunk.js → AppliedFilters.B1TqwFTR.chunk.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{i as require_react,l as __toESM,n as require_compiler_runtime,r as require_jsx_runtime,t as theme}from"./theme.BTyknj3e.chunk.js";import{Hs as parse,In as SpaceBetween,Kc as send,Ks as format,Ln as Text,Ms as titleFirst,Rn as Button,Wt as SvgFilter,Xs as isValid,_a as styles,al as Trans,gt as Popover,ha as View,ir as $535772f9d2c1f38d$export$20e40289641fbbb6,rl as useTranslation,t as useDateFormat,us as useAccounts,ya as css,z as getMonthYearFormat}from"./useDateFormat.BQBgttLk.chunk.js";import{An as Select,B as PayeeAutocomplete,Fr as Menu,Ga as $cdaed739b1139372$export$a7fed597f4b8afd8,Io as B,Nr as useFormat,V as usePayees,Xi as SvgDelete,_ as useTransactionFilters,_n as deserializeField,a as friendlyOp,bn as makeValue,c as mapField,ct as useCategories,gn as FIELD_TYPES,jn as Tooltip,m as GenericInput,n as FieldSelect,p as TagMultiAutocomplete,t as Value,vn as getFieldError,xn as unparse,yn as getValidOps}from"./Value.CCTE7k9J.chunk.js";var import_compiler_runtime=require_compiler_runtime(),import_react=__toESM(require_react()),import_jsx_runtime=require_jsx_runtime();function ConditionsOpMenu(t0){let $=(0,import_compiler_runtime.c)(4),{conditionsOp,onChange,conditions}=t0,t1;return $[0]!==conditions.length||$[1]!==conditionsOp||$[2]!==onChange?(t1=conditions.length>1?(0,import_jsx_runtime.jsxs)(Text,{style:{color:theme.pageText,marginTop:11,marginRight:5},children:[(0,import_jsx_runtime.jsx)(FieldSelect,{style:{display:`inline-flex`},fields:[[`and`,`all`],[`or`,`any`]],value:conditionsOp,onChange}),`of:`]}):(0,import_jsx_runtime.jsx)(View,{}),$[0]=conditions.length,$[1]=conditionsOp,$[2]=onChange,$[3]=t1):t1=$[3],t1}function CompactFiltersButton(t0){let $=(0,import_compiler_runtime.c)(4),{onPress}=t0,t1;$[0]===Symbol.for(`react.memo_cache_sentinel`)?(t1={minWidth:20},$[0]=t1):t1=$[0];let t2;$[1]===Symbol.for(`react.memo_cache_sentinel`)?(t2=(0,import_jsx_runtime.jsx)(SvgFilter,{width:15,height:15,style:{width:15,height:15,flexShrink:0}}),$[1]=t2):t2=$[1];let t3;return $[2]===onPress?t3=$[3]:(t3=(0,import_jsx_runtime.jsx)(Button,{variant:`bare`,onPress,style:t1,children:t2}),$[2]=onPress,$[3]=t3),t3}function FiltersButton(t0){let $=(0,import_compiler_runtime.c)(4),{onPress}=t0,t1;$[0]===Symbol.for(`react.memo_cache_sentinel`)?(t1=(0,import_jsx_runtime.jsx)(SvgFilter,{style:{width:12,height:12,marginRight:5,flexShrink:0}}),$[0]=t1):t1=$[0];let t2;$[1]===Symbol.for(`react.memo_cache_sentinel`)?(t2=(0,import_jsx_runtime.jsx)(Trans,{children:`Filter`}),$[1]=t2):t2=$[1];let t3;return $[2]===onPress?t3=$[3]:(t3=(0,import_jsx_runtime.jsxs)(Button,{variant:`bare`,onPress,children:[t1,` `,t2]}),$[2]=onPress,$[3]=t3),t3}function OpButton(t0){let $=(0,import_compiler_runtime.c)(9),{op,isSelected,style,onPress}=t0,t1;$[0]===isSelected?t1=$[1]:(t1=css({backgroundColor:theme.pillBackground,...isSelected&&{color:theme.buttonNormalSelectedText,"&,:hover,:active":{backgroundColor:theme.buttonNormalSelectedBackground,color:theme.buttonNormalSelectedText}}}),$[0]=isSelected,$[1]=t1);let t2;$[2]===op?t2=$[3]:(t2=friendlyOp(op),$[2]=op,$[3]=t2);let t3;return $[4]!==onPress||$[5]!==style||$[6]!==t1||$[7]!==t2?(t3=(0,import_jsx_runtime.jsx)(Button,{variant:`bare`,style,className:t1,onPress,children:t2}),$[4]=onPress,$[5]=style,$[6]=t1,$[7]=t2,$[8]=t3):t3=$[8],t3}var PayeeFilter=t0=>{let $=(0,import_compiler_runtime.c)(16),{value,op,onChange}=t0,{t}=useTranslation(),t1;$[0]===Symbol.for(`react.memo_cache_sentinel`)?(t1=[`oneOf`,`notOneOf`],$[0]=t1):t1=$[0];let multi=t1.includes(op),coercedValue;if(multi){let t2;$[1]===value?t2=$[2]:(t2=Array.isArray(value)?value:[],$[1]=value,$[2]=t2),coercedValue=t2}else coercedValue=Array.isArray(value)?value[0]??null:value;let t2;$[3]!==coercedValue||$[4]!==multi||$[5]!==t?(t2=multi&&coercedValue.length>0?void 0:t(`nothing`),$[3]=coercedValue,$[4]=multi,$[5]=t,$[6]=t2):t2=$[6];let placeholder=t2,t3=multi?`multi`:`single`,t4;$[7]===placeholder?t4=$[8]:(t4={placeholder},$[7]=placeholder,$[8]=t4);let t5;$[9]===onChange?t5=$[10]:(t5=(payeeIdOrIds,_)=>onChange(payeeIdOrIds),$[9]=onChange,$[10]=t5);let t6;return $[11]!==coercedValue||$[12]!==t3||$[13]!==t4||$[14]!==t5?(t6=(0,import_jsx_runtime.jsx)(PayeeAutocomplete,{type:t3,showInactivePayees:!0,showMakeTransfer:!1,openOnFocus:!0,value:coercedValue,inputProps:t4,onSelect:t5}),$[11]=coercedValue,$[12]=t3,$[13]=t4,$[14]=t5,$[15]=t6):t6=$[15],t6};function subfieldFromFilter({field,options,value}){if(field===`date`&&typeof value==`string`){if(value.length===7)return`month`;if(value.length===4)return`year`}if(field===`amount`){if(options&&options.inflow)return`amount-inflow`;if(options&&options.outflow)return`amount-outflow`}return field}function subfieldToOptions(field,subfield){let setOptions;switch(field){case`amount`:switch(subfield){case`amount-inflow`:setOptions={inflow:!0};break;case`amount-outflow`:setOptions={outflow:!0};break;default:break}break;case`date`:switch(subfield){case`month`:setOptions={month:!0};break;case`year`:setOptions={year:!0};break;default:break}break;default:break}return setOptions}function updateFilterReducer(state,action){switch(action.type){case`set-op`:{let type=FIELD_TYPES.get(state.field),value=state.value;return(type===`id`||type===`string`)&&state.field!==`notes`&&(action.op===`contains`||action.op===`matches`||action.op===`is`||action.op===`doesNotContain`||action.op===`isNot`||action.op===`hasTags`||action.op===`hasAnyTag`||action.op===`onBudget`||action.op===`offBudget`)?Array.isArray(value)&&(value=value.length>0?value[0]:null):(type===`id`||type===`string`)&&state.field!==`notes`&&(action.op===`oneOf`||action.op===`notOneOf`)&&(value==null?value=[]:Array.isArray(value)||(value=[value])),{...state,op:action.op,value}}case`set-value`:{let{value}=makeValue(action.value,{type:FIELD_TYPES.get(state.field)});return{...state,value}}default:throw Error(`Unhandled action type: ${action.type}`)}}var isDatepickerClick$1=!1,filterFields=[`date`,`account`,`payee`,`notes`,`category`,`amount`,`cleared`,`reconciled`,`transfer`].map(field=>[field,mapField(field)]);function ConfigureField({field:initialField,initialSubfield=initialField,op,value,dispatch,onApply}){let{t}=useTranslation(),format$1=useFormat(),dateFormat=useDateFormat()||`MM/dd/yyyy`,accounts=useAccounts(),categories=useCategories(),payees=usePayees(),field=initialField===`category_group`?`category`:initialField,[subfield,setSubfield]=(0,import_react.useState)(initialSubfield),inputRef=(0,import_react.useRef)(null),prevOp=(0,import_react.useRef)(null),prevSubfield=(0,import_react.useRef)(null);(0,import_react.useEffect)(()=>{prevOp.current!==op&&inputRef.current&&inputRef.current.focus(),prevOp.current=op},[op]),(0,import_react.useEffect)(()=>{prevSubfield.current!==subfield&&inputRef.current&&inputRef.current.focus(),prevSubfield.current=subfield},[subfield]);let type=FIELD_TYPES.get(field),ops=getValidOps(field).filter(op_0=>op_0!==`isbetween`);(subfield===`month`||subfield===`year`)&&(ops=[`is`]);let formattedValue=(0,import_react.useMemo)(()=>{if(field===`date`&&subfield===`month`&&typeof value==`string`&&/^\d{4}-\d{2}$/.test(value)){let date=parse(value,`yyyy-MM`,new Date);if(isValid(date))return format(date,getMonthYearFormat(dateFormat))}return value},[value,field,subfield,dateFormat]),isIdOp=op_1=>[`is`,`isNot`,`oneOf`,`notOneOf`].includes(op_1),isSingleIdOp=op_2=>[`is`,`isNot`].includes(op_2),isMultiIdOp=op_3=>[`oneOf`,`notOneOf`].includes(op_3),isTextOp=op_4=>[`contains`,`matches`,`doesNotContain`].includes(op_4),isNoValueAccountOp=op_5=>[`onBudget`,`offBudget`].includes(op_5),isTagOp=op_6=>[`hasAnyTag`,`hasTags`].includes(op_6),resolveIdToText=(field_0,subfield_0,value_0)=>{if(typeof value_0!=`string`)return``;if(field_0===`account`)return accounts.data?.find(account=>account.id===value_0)?.name??``;if(field_0===`payee`)return payees.data?.find(payee=>payee.id===value_0)?.name??``;if(field_0===`category`&&subfield_0===`category_group`)return categories.data?.grouped.find(group=>group.id===value_0)?.name??``;if(field_0===`category`&&subfield_0===`category`)for(let group_1 of categories.data?.grouped||[]){let category_0=group_1.categories?.find(category=>category.id===value_0);if(category_0)return category_0.name}return``},resolveTextToId=(field_1,subfield_1,value_1)=>{if(typeof value_1!=`string`)return null;if(field_1===`account`){let matches=accounts.data?.filter(account_1=>account_1.name===value_1)??[];return matches.length===1?matches[0].id:null}if(field_1===`payee`){let matches_0=payees.data?.filter(payee_1=>payee_1.name===value_1)??[];return matches_0.length===1?matches_0[0].id:null}if(field_1===`category`&&subfield_1===`category_group`){let matches_1=categories.data?.grouped.filter(group_2=>group_2.name===value_1)??[];return matches_1.length===1?matches_1[0].id:null}if(field_1===`category`&&subfield_1===`category`){let matches_2=[];for(let group_3 of categories.data?.grouped||[])for(let category_1 of group_3.categories||[])category_1.name===value_1&&matches_2.push(category_1);return matches_2.length===1?matches_2[0].id:null}return null},isIdField=field===`account`||field===`payee`||field===`category`,setOp=nextOp=>{if(isIdField&&isSingleIdOp(op)&&isTextOp(nextOp)&&dispatch({type:`set-value`,value:resolveIdToText(field,subfield,value)}),isIdField&&isTextOp(op)&&isSingleIdOp(nextOp)){let resolvedValue=resolveTextToId(field,subfield,value);resolvedValue&&dispatch({type:`set-value`,value:resolvedValue})}if(isIdField&&isMultiIdOp(op)&&isTextOp(nextOp)&&(Array.isArray(value)&&value.length===1?dispatch({type:`set-value`,value:resolveIdToText(field,subfield,value[0])||``}):dispatch({type:`set-value`,value:``})),isIdField&&isTextOp(op)&&isMultiIdOp(nextOp)){let resolvedValue_0=resolveTextToId(field,subfield,value);resolvedValue_0&&dispatch({type:`set-value`,value:resolvedValue_0?[resolvedValue_0]:[]})}if(field===`account`&&isNoValueAccountOp(op)&&isTextOp(nextOp)&&dispatch(Array.isArray(value)?{type:`set-value`,value:value.length===1&&resolveIdToText(field,subfield,value[0])||``}:{type:`set-value`,value:resolveIdToText(field,subfield,value)||``}),field===`account`&&isNoValueAccountOp(op)&&isSingleIdOp(nextOp)&&dispatch(typeof value==`string`?{type:`set-value`,value:resolveTextToId(field,subfield,value)||value}:{type:`set-value`,value:``}),field===`account`&&isNoValueAccountOp(op)&&isMultiIdOp(nextOp))if(typeof value==`string`){let resolvedValue_2=resolveTextToId(field,subfield,value);dispatch({type:`set-value`,value:resolvedValue_2?[resolvedValue_2]:[value]})}else dispatch({type:`set-value`,value:[]});dispatch({type:`set-op`,op:nextOp})};return(0,import_jsx_runtime.jsxs)($535772f9d2c1f38d$export$20e40289641fbbb6,{children:[(0,import_jsx_runtime.jsx)(View,{style:{marginBottom:10},children:(0,import_jsx_runtime.jsx)(SpaceBetween,{style:{alignItems:`flex-start`},children:field===`amount`||field===`date`||field===`category`?(0,import_jsx_runtime.jsx)(Select,{options:(field_2=>{switch(field_2){case`amount`:return[[`amount`,t(`Amount`)],[`amount-inflow`,t(`Amount (inflow)`)],[`amount-outflow`,t(`Amount (outflow)`)]];case`date`:return[[`date`,t(`Date`)],[`month`,t(`Month`)],[`year`,t(`Year`)]];case`category`:return[[`category`,t(`Category`)],[`category_group`,t(`Category group`)]];default:return[]}})(field),value:subfield,onChange:sub=>{setSubfield(sub),(sub===`month`||sub===`year`)&&dispatch({type:`set-op`,op:`is`})}}):(0,import_jsx_runtime.jsx)(View,{style:{flexDirection:`row`,width:`100%`,alignItems:`center`,padding:0},children:(0,import_jsx_runtime.jsx)(View,{style:{flexGrow:1},children:titleFirst(mapField(field))})})})}),(0,import_jsx_runtime.jsx)(View,{style:{color:theme.pageTextLight,marginBottom:10},children:field===`saved`&&t(`Existing filters will be cleared`)}),(0,import_jsx_runtime.jsx)(SpaceBetween,{gap:5,style:{alignItems:`flex-start`,marginBottom:15},children:type===`boolean`?(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(OpButton,{op:`true`,isSelected:value===!0,onPress:()=>{dispatch({type:`set-op`,op:`is`}),dispatch({type:`set-value`,value:!0})}},`true`),(0,import_jsx_runtime.jsx)(OpButton,{op:`false`,isSelected:value===!1,onPress:()=>{dispatch({type:`set-op`,op:`is`}),dispatch({type:`set-value`,value:!1})}},`false`)]}):(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[ops.slice(0,3).map(currOp=>(0,import_jsx_runtime.jsx)(OpButton,{op:currOp,isSelected:currOp===op,onPress:()=>setOp(currOp)},currOp)),ops.slice(3,ops.length).map(currOp_0=>(0,import_jsx_runtime.jsx)(OpButton,{op:currOp_0,isSelected:currOp_0===op,onPress:()=>setOp(currOp_0)},currOp_0))]})}),(0,import_jsx_runtime.jsxs)($cdaed739b1139372$export$a7fed597f4b8afd8,{onSubmit:e=>{e.preventDefault();let submitValue=value,storableField=field;if(field===`amount`&&inputRef.current)try{if(inputRef.current.getCurrentAmount)submitValue=inputRef.current.getCurrentAmount();else{let rawValue=inputRef.current.value||``,parsed=format$1.fromEdit(rawValue,null);if(parsed==null)submitValue=value;else{let opts=subfieldToOptions(field,subfield);submitValue=opts?.inflow||opts?.outflow?Math.abs(parsed):parsed}}}catch{submitValue=value}field===`category`&&(storableField=subfield),onApply({field:storableField,op,value:submitValue,options:subfieldToOptions(field,subfield)})},children:[type!==`boolean`&&(field!==`notes`||!isTagOp(op))&&(field!==`payee`||!isIdOp(op))&&(field!==`account`||!isNoValueAccountOp(op))&&(0,import_jsx_runtime.jsx)(GenericInput,{ref:inputRef,field:field===`date`||field===`category`?subfield:field,type:type===`id`&&(op===`contains`||op===`matches`||op===`doesNotContain`)?`string`:type,numberFormatType:`currency`,value:formattedValue??(op===`oneOf`||op===`notOneOf`?[]:``),multi:op===`oneOf`||op===`notOneOf`,op,options:subfieldToOptions(field,subfield),style:{marginTop:10},onChange:v=>{dispatch({type:`set-value`,value:v})}}),field===`payee`&&isIdOp(op)&&(0,import_jsx_runtime.jsx)(PayeeFilter,{value:formattedValue,op,onChange:v_0=>dispatch({type:`set-value`,value:v_0})}),field===`notes`&&isTagOp(op)&&(0,import_jsx_runtime.jsx)(TagMultiAutocomplete,{value:formattedValue,setValue:v_1=>dispatch({type:`set-value`,value:v_1})}),(0,import_jsx_runtime.jsxs)(SpaceBetween,{style:{marginTop:15,justifyContent:`flex-end`,alignItems:`center`},children:[(0,import_jsx_runtime.jsx)(View,{style:{flex:1}}),(0,import_jsx_runtime.jsx)(Button,{variant:`primary`,type:`submit`,children:(0,import_jsx_runtime.jsx)(Trans,{children:`Apply`})})]})]})]})}function shouldShowFilterField(field,include,exclude){return include&&!include.includes(field)?!1:!exclude||!exclude.includes(field)}function FilterButton(t0){let $=(0,import_compiler_runtime.c)(42),{onApply,compact,hover,exclude,include}=t0,{t}=useTranslation(),filters=useTransactionFilters(),triggerRef=(0,import_react.useRef)(null),dateFormat=useDateFormat()||`MM/dd/yyyy`,retValue;$[0]===Symbol.for(`react.memo_cache_sentinel`)?(retValue=[...filterFields],retValue&&retValue.length>0&&retValue.forEach(_temp$1),$[0]=retValue):retValue=$[0];let translatedFilterFields=retValue,t1;$[1]===Symbol.for(`react.memo_cache_sentinel`)?(t1={fieldsOpen:!1,condOpen:!1,field:null,value:null},$[1]=t1):t1=$[1];let[state_0,dispatch]=(0,import_react.useReducer)(_temp2,t1),t2;$[2]!==dateFormat||$[3]!==filters||$[4]!==onApply||$[5]!==t?(t2=async function(cond){if(cond=unparse({...cond,type:FIELD_TYPES.get(cond.field)}),cond.type===`date`&&cond.options){if(cond.options.month){let date=parse(cond.value,getMonthYearFormat(dateFormat),new Date);if(isValid(date))cond.value=format(date,`yyyy-MM`);else{alert(t(`Invalid date format`));return}}else if(cond.options.year){let date_0=parse(cond.value,`yyyy`,new Date);if(isValid(date_0))cond.value=format(date_0,`yyyy`);else{alert(t(`Invalid date format`));return}}}let{error}=cond.field===`saved`?{error:null}:await send(`rule-validate`,{conditions:[cond],actions:[]}),saved=filters.find(f=>cond.value===f.id);if(error&&error.conditionErrors.length>0){let field_1=titleFirst(mapField(cond.field));alert(field_1+`: `+getFieldError(error.conditionErrors[0]))}else onApply(saved||cond),dispatch({type:`close`})},$[2]=dateFormat,$[3]=filters,$[4]=onApply,$[5]=t,$[6]=t2):t2=$[6];let onValidateAndApply=t2,t3,t4;$[7]===Symbol.for(`react.memo_cache_sentinel`)?(t3=()=>dispatch({type:`select-field`}),t4={scopes:[`app`]},$[7]=t3,$[8]=t4):(t3=$[7],t4=$[8]),B(`f`,t3,t4);let filterMenuItems;$[9]!==exclude||$[10]!==include?(filterMenuItems=translatedFilterFields.filter(t5=>{let[field_2]=t5;return shouldShowFilterField(field_2,include,exclude)}).sort(_temp3).map(_temp4),shouldShowFilterField(`saved`,include,exclude)&&(filterMenuItems.push(Menu.line),filterMenuItems.push({name:`saved`,text:titleFirst(mapField(`saved`))})),$[9]=exclude,$[10]=include,$[11]=filterMenuItems):filterMenuItems=$[11];let t5;$[12]===Symbol.for(`react.memo_cache_sentinel`)?(t5={...styles.tooltip,lineHeight:1.5,padding:`6px 10px`},$[12]=t5):t5=$[12];let t6;$[13]===Symbol.for(`react.memo_cache_sentinel`)?(t6=(0,import_jsx_runtime.jsx)(Text,{children:(0,import_jsx_runtime.jsx)(Trans,{children:`Filters`})}),$[13]=t6):t6=$[13];let t7=!hover,t8;$[14]===t7?t8=$[15]:(t8={isDisabled:t7},$[14]=t7,$[15]=t8);let t9;$[16]===compact?t9=$[17]:(t9=compact?(0,import_jsx_runtime.jsx)(CompactFiltersButton,{onPress:()=>dispatch({type:`select-field`})}):(0,import_jsx_runtime.jsx)(FiltersButton,{onPress:()=>dispatch({type:`select-field`})}),$[16]=compact,$[17]=t9);let t10;$[18]!==t8||$[19]!==t9?(t10=(0,import_jsx_runtime.jsx)(View,{ref:triggerRef,children:(0,import_jsx_runtime.jsx)(Tooltip,{style:t5,content:t6,placement:`bottom start`,triggerProps:t8,children:t9})}),$[18]=t8,$[19]=t9,$[20]=t10):t10=$[20];let t11;$[21]===Symbol.for(`react.memo_cache_sentinel`)?(t11=()=>dispatch({type:`close`}),$[21]=t11):t11=$[21];let t12;$[22]===Symbol.for(`react.memo_cache_sentinel`)?(t12=name_0=>{dispatch({type:`configure`,field:name_0})},$[22]=t12):t12=$[22];let t13;$[23]===filterMenuItems?t13=$[24]:(t13=(0,import_jsx_runtime.jsx)(Menu,{onMenuSelect:t12,items:filterMenuItems}),$[23]=filterMenuItems,$[24]=t13);let t14;$[25]!==state_0.fieldsOpen||$[26]!==t13?(t14=(0,import_jsx_runtime.jsx)(Popover,{triggerRef,placement:`bottom start`,isOpen:state_0.fieldsOpen,onOpenChange:t11,"data-testid":`filters-select-tooltip`,children:t13}),$[25]=state_0.fieldsOpen,$[26]=t13,$[27]=t14):t14=$[27];let t15;$[28]===Symbol.for(`react.memo_cache_sentinel`)?(t15=()=>{dispatch({type:`close`})},$[28]=t15):t15=$[28];let t16;$[29]===Symbol.for(`react.memo_cache_sentinel`)?(t16={width:275,padding:15,color:theme.menuItemText,zIndex:`2500 !important`},$[29]=t16):t16=$[29];let t17;$[30]!==onValidateAndApply||$[31]!==state_0.field||$[32]!==state_0.op||$[33]!==state_0.value?(t17=state_0.field&&(0,import_jsx_runtime.jsx)(ConfigureField,{field:state_0.field,op:state_0.op,value:state_0.value,dispatch,onApply:onValidateAndApply}),$[30]=onValidateAndApply,$[31]=state_0.field,$[32]=state_0.op,$[33]=state_0.value,$[34]=t17):t17=$[34];let t18;$[35]!==state_0.condOpen||$[36]!==t17?(t18=(0,import_jsx_runtime.jsx)(Popover,{triggerRef,placement:`bottom start`,isOpen:state_0.condOpen,onOpenChange:t15,shouldCloseOnInteractOutside:_temp5,style:t16,"data-testid":`filters-menu-tooltip`,children:t17}),$[35]=state_0.condOpen,$[36]=t17,$[37]=t18):t18=$[37];let t19;return $[38]!==t10||$[39]!==t14||$[40]!==t18?(t19=(0,import_jsx_runtime.jsxs)(View,{children:[t10,t14,t18]}),$[38]=t10,$[39]=t14,$[40]=t18,$[41]=t19):t19=$[41],t19}function _temp5(element){return element.dataset.pikaYear?(isDatepickerClick$1=!0,!1):isDatepickerClick$1?(isDatepickerClick$1=!1,!1):!(element instanceof HTMLElement&&(element.closest(`[data-testid="account-autocomplete-modal"]`)||element.closest(`[data-testid="payee-autocomplete-modal"]`)||element.closest(`[data-testid="category-autocomplete-modal"]`)))}function _temp4(t0){let[name,text]=t0;return{name,text:titleFirst(text)}}function _temp3(a,b){return a[0].localeCompare(b[0])}function _temp2(state,action){switch(action.type){case`select-field`:return{...state,fieldsOpen:!0,condOpen:!1};case`configure`:{let{field:field_0}=deserializeField(action.field),type=FIELD_TYPES.get(field_0),ops=getValidOps(field_0);return{...state,fieldsOpen:!1,condOpen:!0,field:action.field,op:ops[0],value:type===`boolean`||null}}case`close`:return{fieldsOpen:!1,condOpen:!1,value:null};default:return updateFilterReducer(state,action)}}function _temp$1(field){field[1]=mapField(field[0])}function FilterEditor(t0){let $=(0,import_compiler_runtime.c)(22),{field,op,value,options,onSave,onClose}=t0,dateFormat=useDateFormat()||`MM/dd/yyyy`,{t}=useTranslation(),t1;$[0]===onClose?t1=$[1]:(t1=(state,action)=>{switch(action.type){case`close`:return onClose(),state;default:return updateFilterReducer(state,action)}},$[0]=onClose,$[1]=t1);let t2;$[2]!==field||$[3]!==op||$[4]!==value?(t2={field,op,value},$[2]=field,$[3]=op,$[4]=value,$[5]=t2):t2=$[5];let[state_0,dispatch]=(0,import_react.useReducer)(t1,t2),t3=state_0.field,t4;$[6]!==field||$[7]!==options||$[8]!==value?(t4=subfieldFromFilter({field,options,value}),$[6]=field,$[7]=options,$[8]=value,$[9]=t4):t4=$[9];let t5;$[10]!==dateFormat||$[11]!==onClose||$[12]!==onSave||$[13]!==t?(t5=cond=>{if(cond=unparse({...cond,type:FIELD_TYPES.get(cond.field)}),cond.type===`date`&&cond.options){if(cond.options.month&&typeof cond.value==`string`&&!/\d{4}-\d{2}/.test(cond.value)){let date=parse(cond.value,getMonthYearFormat(dateFormat),new Date);if(isValid(date))cond.value=format(date,`yyyy-MM`);else{alert(t(`Invalid date format`));return}}else if(cond.options.year){let date_0=parse(cond.value,`yyyy`,new Date);if(isValid(date_0))cond.value=format(date_0,`yyyy`);else{alert(t(`Invalid date format`));return}}}onSave(cond),onClose()},$[10]=dateFormat,$[11]=onClose,$[12]=onSave,$[13]=t,$[14]=t5):t5=$[14];let t6;return $[15]!==options||$[16]!==state_0.field||$[17]!==state_0.op||$[18]!==state_0.value||$[19]!==t4||$[20]!==t5?(t6=(0,import_jsx_runtime.jsx)(ConfigureField,{field:t3,initialSubfield:t4,op:state_0.op,value:state_0.value,options,dispatch,onApply:t5}),$[15]=options,$[16]=state_0.field,$[17]=state_0.op,$[18]=state_0.value,$[19]=t4,$[20]=t5,$[21]=t6):t6=$[21],t6}var isDatepickerClick=!1;function FilterExpression(t0){let $=(0,import_compiler_runtime.c)(52),{field:originalField,customName,op,value,options,style,onChange,onDelete}=t0,{t}=useTranslation(),[editing,setEditing]=(0,import_react.useState)(!1),triggerRef=(0,import_react.useRef)(null),T0,T1,t1,t2,t3,t4,t5,t6,t7;if($[0]!==customName||$[1]!==op||$[2]!==options||$[3]!==originalField||$[4]!==style||$[5]!==value){let field=subfieldFromFilter({field:originalField,value});T1=View,$[15]===style?t6=$[16]:(t6={backgroundColor:theme.pillBackground,borderRadius:4,flexDirection:`row`,alignItems:`center`,marginRight:10,marginTop:10,...style},$[15]=style,$[16]=t6),T0=Button,t1=triggerRef,t2=`bare`,t3=customName!=null;let t8;$[17]===Symbol.for(`react.memo_cache_sentinel`)?(t4=()=>setEditing(!0),t5={maxWidth:`calc(100% - 26px)`,whiteSpace:`nowrap`,display:`block`},t8={paddingBlock:1,paddingLeft:5,paddingRight:2,overflow:`hidden`,textOverflow:`ellipsis`},$[17]=t4,$[18]=t5,$[19]=t8):(t4=$[17],t5=$[18],t8=$[19]),t7=(0,import_jsx_runtime.jsx)(`div`,{style:t8,children:customName?(0,import_jsx_runtime.jsx)(Text,{style:{color:theme.pageTextPositive},children:customName}):(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(Text,{style:{color:theme.pageTextPositive},children:mapField(field,options)}),` `,(0,import_jsx_runtime.jsx)(Text,{children:friendlyOp(op,null)}),` `,![`onbudget`,`offbudget`].includes(op?.toLocaleLowerCase())&&(0,import_jsx_runtime.jsx)(Value,{value,field,inline:!0,valueIsRaw:op===`contains`||op===`matches`||op===`doesNotContain`||op===`hasTags`||op===`hasAnyTag`})]})}),$[0]=customName,$[1]=op,$[2]=options,$[3]=originalField,$[4]=style,$[5]=value,$[6]=T0,$[7]=T1,$[8]=t1,$[9]=t2,$[10]=t3,$[11]=t4,$[12]=t5,$[13]=t6,$[14]=t7}else T0=$[6],T1=$[7],t1=$[8],t2=$[9],t3=$[10],t4=$[11],t5=$[12],t6=$[13],t7=$[14];let t8;$[20]!==T0||$[21]!==t1||$[22]!==t2||$[23]!==t3||$[24]!==t4||$[25]!==t5||$[26]!==t7?(t8=(0,import_jsx_runtime.jsx)(T0,{ref:t1,variant:t2,isDisabled:t3,onPress:t4,style:t5,children:t7}),$[20]=T0,$[21]=t1,$[22]=t2,$[23]=t3,$[24]=t4,$[25]=t5,$[26]=t7,$[27]=t8):t8=$[27];let t9;$[28]===t?t9=$[29]:(t9=t(`Delete filter`),$[28]=t,$[29]=t9);let t10;$[30]===Symbol.for(`react.memo_cache_sentinel`)?(t10=(0,import_jsx_runtime.jsx)(SvgDelete,{style:{width:8,height:8,margin:4}}),$[30]=t10):t10=$[30];let t11;$[31]!==onDelete||$[32]!==t9?(t11=(0,import_jsx_runtime.jsx)(Button,{variant:`bare`,onPress:onDelete,"aria-label":t9,children:t10}),$[31]=onDelete,$[32]=t9,$[33]=t11):t11=$[33];let t12;$[34]===Symbol.for(`react.memo_cache_sentinel`)?(t12=()=>setEditing(!1),$[34]=t12):t12=$[34];let t13;$[35]===Symbol.for(`react.memo_cache_sentinel`)?(t13={width:275,padding:15,color:theme.menuItemText,zIndex:`2500 !important`},$[35]=t13):t13=$[35];let t14;$[36]===Symbol.for(`react.memo_cache_sentinel`)?(t14=()=>setEditing(!1),$[36]=t14):t14=$[36];let t15;$[37]!==onChange||$[38]!==op||$[39]!==options||$[40]!==originalField||$[41]!==value?(t15=(0,import_jsx_runtime.jsx)(FilterEditor,{field:originalField,op,value,options,onSave:onChange,onClose:t14}),$[37]=onChange,$[38]=op,$[39]=options,$[40]=originalField,$[41]=value,$[42]=t15):t15=$[42];let t16;$[43]!==editing||$[44]!==t15?(t16=(0,import_jsx_runtime.jsx)(Popover,{triggerRef,placement:`bottom start`,isOpen:editing,onOpenChange:t12,shouldCloseOnInteractOutside:_temp,style:t13,"data-testid":`filters-menu-tooltip`,children:t15}),$[43]=editing,$[44]=t15,$[45]=t16):t16=$[45];let t17;return $[46]!==T1||$[47]!==t11||$[48]!==t16||$[49]!==t6||$[50]!==t8?(t17=(0,import_jsx_runtime.jsxs)(T1,{style:t6,children:[t8,t11,t16]}),$[46]=T1,$[47]=t11,$[48]=t16,$[49]=t6,$[50]=t8,$[51]=t17):t17=$[51],t17}function _temp(element){return element instanceof HTMLElement&&element.dataset.pikaYear?(isDatepickerClick=!0,!1):isDatepickerClick?(isDatepickerClick=!1,!1):!(element instanceof HTMLElement&&(element.closest(`[data-testid="account-autocomplete-modal"]`)||element.closest(`[data-testid="payee-autocomplete-modal"]`)||element.closest(`[data-testid="category-autocomplete-modal"]`)))}function AppliedFilters({conditions,onUpdate,onDelete,conditionsOp,onConditionsOpChange,style={}}){return(0,import_jsx_runtime.jsxs)(View,{style:{flexDirection:`row`,alignItems:`flex-start`,flexWrap:`wrap`,...style},children:[(0,import_jsx_runtime.jsx)(ConditionsOpMenu,{conditionsOp,onChange:onConditionsOpChange,conditions}),conditions.map((filter,i)=>(0,import_jsx_runtime.jsx)(FilterExpression,{customName:filter.customName,field:filter.field,op:filter.op,value:filter.value,options:filter.options,onChange:newFilter=>onUpdate(filter,newFilter),onDelete:()=>onDelete(filter)},i))]})}export{FilterButton as n,AppliedFilters as t};
|
|
2
|
-
//# sourceMappingURL=AppliedFilters.
|
|
1
|
+
import{i as require_react,l as __toESM,n as require_compiler_runtime,r as require_jsx_runtime,t as theme}from"./theme.BTyknj3e.chunk.js";import{Hs as parse,In as SpaceBetween,Kc as send,Ks as format,Ln as Text,Ms as titleFirst,Rn as Button,Wt as SvgFilter,Xs as isValid,_a as styles,al as Trans,gt as Popover,ha as View,ir as $535772f9d2c1f38d$export$20e40289641fbbb6,rl as useTranslation,t as useDateFormat,us as useAccounts,ya as css,z as getMonthYearFormat}from"./useDateFormat.BQBgttLk.chunk.js";import{An as Select,B as PayeeAutocomplete,Fr as Menu,Ga as $cdaed739b1139372$export$a7fed597f4b8afd8,Io as B,Nr as useFormat,V as usePayees,Xi as SvgDelete,_ as useTransactionFilters,_n as deserializeField,a as friendlyOp,bn as makeValue,c as mapField,ct as useCategories,gn as FIELD_TYPES,jn as Tooltip,m as GenericInput,n as FieldSelect,p as TagMultiAutocomplete,t as Value,vn as getFieldError,xn as unparse,yn as getValidOps}from"./Value.5y1eRFoA.chunk.js";var import_compiler_runtime=require_compiler_runtime(),import_react=__toESM(require_react()),import_jsx_runtime=require_jsx_runtime();function ConditionsOpMenu(t0){let $=(0,import_compiler_runtime.c)(4),{conditionsOp,onChange,conditions}=t0,t1;return $[0]!==conditions.length||$[1]!==conditionsOp||$[2]!==onChange?(t1=conditions.length>1?(0,import_jsx_runtime.jsxs)(Text,{style:{color:theme.pageText,marginTop:11,marginRight:5},children:[(0,import_jsx_runtime.jsx)(FieldSelect,{style:{display:`inline-flex`},fields:[[`and`,`all`],[`or`,`any`]],value:conditionsOp,onChange}),`of:`]}):(0,import_jsx_runtime.jsx)(View,{}),$[0]=conditions.length,$[1]=conditionsOp,$[2]=onChange,$[3]=t1):t1=$[3],t1}function CompactFiltersButton(t0){let $=(0,import_compiler_runtime.c)(4),{onPress}=t0,t1;$[0]===Symbol.for(`react.memo_cache_sentinel`)?(t1={minWidth:20},$[0]=t1):t1=$[0];let t2;$[1]===Symbol.for(`react.memo_cache_sentinel`)?(t2=(0,import_jsx_runtime.jsx)(SvgFilter,{width:15,height:15,style:{width:15,height:15,flexShrink:0}}),$[1]=t2):t2=$[1];let t3;return $[2]===onPress?t3=$[3]:(t3=(0,import_jsx_runtime.jsx)(Button,{variant:`bare`,onPress,style:t1,children:t2}),$[2]=onPress,$[3]=t3),t3}function FiltersButton(t0){let $=(0,import_compiler_runtime.c)(4),{onPress}=t0,t1;$[0]===Symbol.for(`react.memo_cache_sentinel`)?(t1=(0,import_jsx_runtime.jsx)(SvgFilter,{style:{width:12,height:12,marginRight:5,flexShrink:0}}),$[0]=t1):t1=$[0];let t2;$[1]===Symbol.for(`react.memo_cache_sentinel`)?(t2=(0,import_jsx_runtime.jsx)(Trans,{children:`Filter`}),$[1]=t2):t2=$[1];let t3;return $[2]===onPress?t3=$[3]:(t3=(0,import_jsx_runtime.jsxs)(Button,{variant:`bare`,onPress,children:[t1,` `,t2]}),$[2]=onPress,$[3]=t3),t3}function OpButton(t0){let $=(0,import_compiler_runtime.c)(9),{op,isSelected,style,onPress}=t0,t1;$[0]===isSelected?t1=$[1]:(t1=css({backgroundColor:theme.pillBackground,...isSelected&&{color:theme.buttonNormalSelectedText,"&,:hover,:active":{backgroundColor:theme.buttonNormalSelectedBackground,color:theme.buttonNormalSelectedText}}}),$[0]=isSelected,$[1]=t1);let t2;$[2]===op?t2=$[3]:(t2=friendlyOp(op),$[2]=op,$[3]=t2);let t3;return $[4]!==onPress||$[5]!==style||$[6]!==t1||$[7]!==t2?(t3=(0,import_jsx_runtime.jsx)(Button,{variant:`bare`,style,className:t1,onPress,children:t2}),$[4]=onPress,$[5]=style,$[6]=t1,$[7]=t2,$[8]=t3):t3=$[8],t3}var PayeeFilter=t0=>{let $=(0,import_compiler_runtime.c)(16),{value,op,onChange}=t0,{t}=useTranslation(),t1;$[0]===Symbol.for(`react.memo_cache_sentinel`)?(t1=[`oneOf`,`notOneOf`],$[0]=t1):t1=$[0];let multi=t1.includes(op),coercedValue;if(multi){let t2;$[1]===value?t2=$[2]:(t2=Array.isArray(value)?value:[],$[1]=value,$[2]=t2),coercedValue=t2}else coercedValue=Array.isArray(value)?value[0]??null:value;let t2;$[3]!==coercedValue||$[4]!==multi||$[5]!==t?(t2=multi&&coercedValue.length>0?void 0:t(`nothing`),$[3]=coercedValue,$[4]=multi,$[5]=t,$[6]=t2):t2=$[6];let placeholder=t2,t3=multi?`multi`:`single`,t4;$[7]===placeholder?t4=$[8]:(t4={placeholder},$[7]=placeholder,$[8]=t4);let t5;$[9]===onChange?t5=$[10]:(t5=(payeeIdOrIds,_)=>onChange(payeeIdOrIds),$[9]=onChange,$[10]=t5);let t6;return $[11]!==coercedValue||$[12]!==t3||$[13]!==t4||$[14]!==t5?(t6=(0,import_jsx_runtime.jsx)(PayeeAutocomplete,{type:t3,showInactivePayees:!0,showMakeTransfer:!1,openOnFocus:!0,value:coercedValue,inputProps:t4,onSelect:t5}),$[11]=coercedValue,$[12]=t3,$[13]=t4,$[14]=t5,$[15]=t6):t6=$[15],t6};function subfieldFromFilter({field,options,value}){if(field===`date`&&typeof value==`string`){if(value.length===7)return`month`;if(value.length===4)return`year`}if(field===`amount`){if(options&&options.inflow)return`amount-inflow`;if(options&&options.outflow)return`amount-outflow`}return field}function subfieldToOptions(field,subfield){let setOptions;switch(field){case`amount`:switch(subfield){case`amount-inflow`:setOptions={inflow:!0};break;case`amount-outflow`:setOptions={outflow:!0};break;default:break}break;case`date`:switch(subfield){case`month`:setOptions={month:!0};break;case`year`:setOptions={year:!0};break;default:break}break;default:break}return setOptions}function updateFilterReducer(state,action){switch(action.type){case`set-op`:{let type=FIELD_TYPES.get(state.field),value=state.value;return(type===`id`||type===`string`)&&state.field!==`notes`&&(action.op===`contains`||action.op===`matches`||action.op===`is`||action.op===`doesNotContain`||action.op===`isNot`||action.op===`hasTags`||action.op===`hasAnyTag`||action.op===`onBudget`||action.op===`offBudget`)?Array.isArray(value)&&(value=value.length>0?value[0]:null):(type===`id`||type===`string`)&&state.field!==`notes`&&(action.op===`oneOf`||action.op===`notOneOf`)&&(value==null?value=[]:Array.isArray(value)||(value=[value])),{...state,op:action.op,value}}case`set-value`:{let{value}=makeValue(action.value,{type:FIELD_TYPES.get(state.field)});return{...state,value}}default:throw Error(`Unhandled action type: ${action.type}`)}}var isDatepickerClick$1=!1,filterFields=[`date`,`account`,`payee`,`notes`,`category`,`amount`,`cleared`,`reconciled`,`transfer`].map(field=>[field,mapField(field)]);function ConfigureField({field:initialField,initialSubfield=initialField,op,value,dispatch,onApply}){let{t}=useTranslation(),format$1=useFormat(),dateFormat=useDateFormat()||`MM/dd/yyyy`,accounts=useAccounts(),categories=useCategories(),payees=usePayees(),field=initialField===`category_group`?`category`:initialField,[subfield,setSubfield]=(0,import_react.useState)(initialSubfield),inputRef=(0,import_react.useRef)(null),prevOp=(0,import_react.useRef)(null),prevSubfield=(0,import_react.useRef)(null);(0,import_react.useEffect)(()=>{prevOp.current!==op&&inputRef.current&&inputRef.current.focus(),prevOp.current=op},[op]),(0,import_react.useEffect)(()=>{prevSubfield.current!==subfield&&inputRef.current&&inputRef.current.focus(),prevSubfield.current=subfield},[subfield]);let type=FIELD_TYPES.get(field),ops=getValidOps(field).filter(op_0=>op_0!==`isbetween`);(subfield===`month`||subfield===`year`)&&(ops=[`is`]);let formattedValue=(0,import_react.useMemo)(()=>{if(field===`date`&&subfield===`month`&&typeof value==`string`&&/^\d{4}-\d{2}$/.test(value)){let date=parse(value,`yyyy-MM`,new Date);if(isValid(date))return format(date,getMonthYearFormat(dateFormat))}return value},[value,field,subfield,dateFormat]),isIdOp=op_1=>[`is`,`isNot`,`oneOf`,`notOneOf`].includes(op_1),isSingleIdOp=op_2=>[`is`,`isNot`].includes(op_2),isMultiIdOp=op_3=>[`oneOf`,`notOneOf`].includes(op_3),isTextOp=op_4=>[`contains`,`matches`,`doesNotContain`].includes(op_4),isNoValueAccountOp=op_5=>[`onBudget`,`offBudget`].includes(op_5),isTagOp=op_6=>[`hasAnyTag`,`hasTags`].includes(op_6),resolveIdToText=(field_0,subfield_0,value_0)=>{if(typeof value_0!=`string`)return``;if(field_0===`account`)return accounts.data?.find(account=>account.id===value_0)?.name??``;if(field_0===`payee`)return payees.data?.find(payee=>payee.id===value_0)?.name??``;if(field_0===`category`&&subfield_0===`category_group`)return categories.data?.grouped.find(group=>group.id===value_0)?.name??``;if(field_0===`category`&&subfield_0===`category`)for(let group_1 of categories.data?.grouped||[]){let category_0=group_1.categories?.find(category=>category.id===value_0);if(category_0)return category_0.name}return``},resolveTextToId=(field_1,subfield_1,value_1)=>{if(typeof value_1!=`string`)return null;if(field_1===`account`){let matches=accounts.data?.filter(account_1=>account_1.name===value_1)??[];return matches.length===1?matches[0].id:null}if(field_1===`payee`){let matches_0=payees.data?.filter(payee_1=>payee_1.name===value_1)??[];return matches_0.length===1?matches_0[0].id:null}if(field_1===`category`&&subfield_1===`category_group`){let matches_1=categories.data?.grouped.filter(group_2=>group_2.name===value_1)??[];return matches_1.length===1?matches_1[0].id:null}if(field_1===`category`&&subfield_1===`category`){let matches_2=[];for(let group_3 of categories.data?.grouped||[])for(let category_1 of group_3.categories||[])category_1.name===value_1&&matches_2.push(category_1);return matches_2.length===1?matches_2[0].id:null}return null},isIdField=field===`account`||field===`payee`||field===`category`,setOp=nextOp=>{if(isIdField&&isSingleIdOp(op)&&isTextOp(nextOp)&&dispatch({type:`set-value`,value:resolveIdToText(field,subfield,value)}),isIdField&&isTextOp(op)&&isSingleIdOp(nextOp)){let resolvedValue=resolveTextToId(field,subfield,value);resolvedValue&&dispatch({type:`set-value`,value:resolvedValue})}if(isIdField&&isMultiIdOp(op)&&isTextOp(nextOp)&&(Array.isArray(value)&&value.length===1?dispatch({type:`set-value`,value:resolveIdToText(field,subfield,value[0])||``}):dispatch({type:`set-value`,value:``})),isIdField&&isTextOp(op)&&isMultiIdOp(nextOp)){let resolvedValue_0=resolveTextToId(field,subfield,value);resolvedValue_0&&dispatch({type:`set-value`,value:resolvedValue_0?[resolvedValue_0]:[]})}if(field===`account`&&isNoValueAccountOp(op)&&isTextOp(nextOp)&&dispatch(Array.isArray(value)?{type:`set-value`,value:value.length===1&&resolveIdToText(field,subfield,value[0])||``}:{type:`set-value`,value:resolveIdToText(field,subfield,value)||``}),field===`account`&&isNoValueAccountOp(op)&&isSingleIdOp(nextOp)&&dispatch(typeof value==`string`?{type:`set-value`,value:resolveTextToId(field,subfield,value)||value}:{type:`set-value`,value:``}),field===`account`&&isNoValueAccountOp(op)&&isMultiIdOp(nextOp))if(typeof value==`string`){let resolvedValue_2=resolveTextToId(field,subfield,value);dispatch({type:`set-value`,value:resolvedValue_2?[resolvedValue_2]:[value]})}else dispatch({type:`set-value`,value:[]});dispatch({type:`set-op`,op:nextOp})};return(0,import_jsx_runtime.jsxs)($535772f9d2c1f38d$export$20e40289641fbbb6,{children:[(0,import_jsx_runtime.jsx)(View,{style:{marginBottom:10},children:(0,import_jsx_runtime.jsx)(SpaceBetween,{style:{alignItems:`flex-start`},children:field===`amount`||field===`date`||field===`category`?(0,import_jsx_runtime.jsx)(Select,{options:(field_2=>{switch(field_2){case`amount`:return[[`amount`,t(`Amount`)],[`amount-inflow`,t(`Amount (inflow)`)],[`amount-outflow`,t(`Amount (outflow)`)]];case`date`:return[[`date`,t(`Date`)],[`month`,t(`Month`)],[`year`,t(`Year`)]];case`category`:return[[`category`,t(`Category`)],[`category_group`,t(`Category group`)]];default:return[]}})(field),value:subfield,onChange:sub=>{setSubfield(sub),(sub===`month`||sub===`year`)&&dispatch({type:`set-op`,op:`is`})}}):(0,import_jsx_runtime.jsx)(View,{style:{flexDirection:`row`,width:`100%`,alignItems:`center`,padding:0},children:(0,import_jsx_runtime.jsx)(View,{style:{flexGrow:1},children:titleFirst(mapField(field))})})})}),(0,import_jsx_runtime.jsx)(View,{style:{color:theme.pageTextLight,marginBottom:10},children:field===`saved`&&t(`Existing filters will be cleared`)}),(0,import_jsx_runtime.jsx)(SpaceBetween,{gap:5,style:{alignItems:`flex-start`,marginBottom:15},children:type===`boolean`?(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(OpButton,{op:`true`,isSelected:value===!0,onPress:()=>{dispatch({type:`set-op`,op:`is`}),dispatch({type:`set-value`,value:!0})}},`true`),(0,import_jsx_runtime.jsx)(OpButton,{op:`false`,isSelected:value===!1,onPress:()=>{dispatch({type:`set-op`,op:`is`}),dispatch({type:`set-value`,value:!1})}},`false`)]}):(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[ops.slice(0,3).map(currOp=>(0,import_jsx_runtime.jsx)(OpButton,{op:currOp,isSelected:currOp===op,onPress:()=>setOp(currOp)},currOp)),ops.slice(3,ops.length).map(currOp_0=>(0,import_jsx_runtime.jsx)(OpButton,{op:currOp_0,isSelected:currOp_0===op,onPress:()=>setOp(currOp_0)},currOp_0))]})}),(0,import_jsx_runtime.jsxs)($cdaed739b1139372$export$a7fed597f4b8afd8,{onSubmit:e=>{e.preventDefault();let submitValue=value,storableField=field;if(field===`amount`&&inputRef.current)try{if(inputRef.current.getCurrentAmount)submitValue=inputRef.current.getCurrentAmount();else{let rawValue=inputRef.current.value||``,parsed=format$1.fromEdit(rawValue,null);if(parsed==null)submitValue=value;else{let opts=subfieldToOptions(field,subfield);submitValue=opts?.inflow||opts?.outflow?Math.abs(parsed):parsed}}}catch{submitValue=value}field===`category`&&(storableField=subfield),onApply({field:storableField,op,value:submitValue,options:subfieldToOptions(field,subfield)})},children:[type!==`boolean`&&(field!==`notes`||!isTagOp(op))&&(field!==`payee`||!isIdOp(op))&&(field!==`account`||!isNoValueAccountOp(op))&&(0,import_jsx_runtime.jsx)(GenericInput,{ref:inputRef,field:field===`date`||field===`category`?subfield:field,type:type===`id`&&(op===`contains`||op===`matches`||op===`doesNotContain`)?`string`:type,numberFormatType:`currency`,value:formattedValue??(op===`oneOf`||op===`notOneOf`?[]:``),multi:op===`oneOf`||op===`notOneOf`,op,options:subfieldToOptions(field,subfield),style:{marginTop:10},onChange:v=>{dispatch({type:`set-value`,value:v})}}),field===`payee`&&isIdOp(op)&&(0,import_jsx_runtime.jsx)(PayeeFilter,{value:formattedValue,op,onChange:v_0=>dispatch({type:`set-value`,value:v_0})}),field===`notes`&&isTagOp(op)&&(0,import_jsx_runtime.jsx)(TagMultiAutocomplete,{value:formattedValue,setValue:v_1=>dispatch({type:`set-value`,value:v_1})}),(0,import_jsx_runtime.jsxs)(SpaceBetween,{style:{marginTop:15,justifyContent:`flex-end`,alignItems:`center`},children:[(0,import_jsx_runtime.jsx)(View,{style:{flex:1}}),(0,import_jsx_runtime.jsx)(Button,{variant:`primary`,type:`submit`,children:(0,import_jsx_runtime.jsx)(Trans,{children:`Apply`})})]})]})]})}function shouldShowFilterField(field,include,exclude){return include&&!include.includes(field)?!1:!exclude||!exclude.includes(field)}function FilterButton(t0){let $=(0,import_compiler_runtime.c)(42),{onApply,compact,hover,exclude,include}=t0,{t}=useTranslation(),filters=useTransactionFilters(),triggerRef=(0,import_react.useRef)(null),dateFormat=useDateFormat()||`MM/dd/yyyy`,retValue;$[0]===Symbol.for(`react.memo_cache_sentinel`)?(retValue=[...filterFields],retValue&&retValue.length>0&&retValue.forEach(_temp$1),$[0]=retValue):retValue=$[0];let translatedFilterFields=retValue,t1;$[1]===Symbol.for(`react.memo_cache_sentinel`)?(t1={fieldsOpen:!1,condOpen:!1,field:null,value:null},$[1]=t1):t1=$[1];let[state_0,dispatch]=(0,import_react.useReducer)(_temp2,t1),t2;$[2]!==dateFormat||$[3]!==filters||$[4]!==onApply||$[5]!==t?(t2=async function(cond){if(cond=unparse({...cond,type:FIELD_TYPES.get(cond.field)}),cond.type===`date`&&cond.options){if(cond.options.month){let date=parse(cond.value,getMonthYearFormat(dateFormat),new Date);if(isValid(date))cond.value=format(date,`yyyy-MM`);else{alert(t(`Invalid date format`));return}}else if(cond.options.year){let date_0=parse(cond.value,`yyyy`,new Date);if(isValid(date_0))cond.value=format(date_0,`yyyy`);else{alert(t(`Invalid date format`));return}}}let{error}=cond.field===`saved`?{error:null}:await send(`rule-validate`,{conditions:[cond],actions:[]}),saved=filters.find(f=>cond.value===f.id);if(error&&error.conditionErrors.length>0){let field_1=titleFirst(mapField(cond.field));alert(field_1+`: `+getFieldError(error.conditionErrors[0]))}else onApply(saved||cond),dispatch({type:`close`})},$[2]=dateFormat,$[3]=filters,$[4]=onApply,$[5]=t,$[6]=t2):t2=$[6];let onValidateAndApply=t2,t3,t4;$[7]===Symbol.for(`react.memo_cache_sentinel`)?(t3=()=>dispatch({type:`select-field`}),t4={scopes:[`app`]},$[7]=t3,$[8]=t4):(t3=$[7],t4=$[8]),B(`f`,t3,t4);let filterMenuItems;$[9]!==exclude||$[10]!==include?(filterMenuItems=translatedFilterFields.filter(t5=>{let[field_2]=t5;return shouldShowFilterField(field_2,include,exclude)}).sort(_temp3).map(_temp4),shouldShowFilterField(`saved`,include,exclude)&&(filterMenuItems.push(Menu.line),filterMenuItems.push({name:`saved`,text:titleFirst(mapField(`saved`))})),$[9]=exclude,$[10]=include,$[11]=filterMenuItems):filterMenuItems=$[11];let t5;$[12]===Symbol.for(`react.memo_cache_sentinel`)?(t5={...styles.tooltip,lineHeight:1.5,padding:`6px 10px`},$[12]=t5):t5=$[12];let t6;$[13]===Symbol.for(`react.memo_cache_sentinel`)?(t6=(0,import_jsx_runtime.jsx)(Text,{children:(0,import_jsx_runtime.jsx)(Trans,{children:`Filters`})}),$[13]=t6):t6=$[13];let t7=!hover,t8;$[14]===t7?t8=$[15]:(t8={isDisabled:t7},$[14]=t7,$[15]=t8);let t9;$[16]===compact?t9=$[17]:(t9=compact?(0,import_jsx_runtime.jsx)(CompactFiltersButton,{onPress:()=>dispatch({type:`select-field`})}):(0,import_jsx_runtime.jsx)(FiltersButton,{onPress:()=>dispatch({type:`select-field`})}),$[16]=compact,$[17]=t9);let t10;$[18]!==t8||$[19]!==t9?(t10=(0,import_jsx_runtime.jsx)(View,{ref:triggerRef,children:(0,import_jsx_runtime.jsx)(Tooltip,{style:t5,content:t6,placement:`bottom start`,triggerProps:t8,children:t9})}),$[18]=t8,$[19]=t9,$[20]=t10):t10=$[20];let t11;$[21]===Symbol.for(`react.memo_cache_sentinel`)?(t11=()=>dispatch({type:`close`}),$[21]=t11):t11=$[21];let t12;$[22]===Symbol.for(`react.memo_cache_sentinel`)?(t12=name_0=>{dispatch({type:`configure`,field:name_0})},$[22]=t12):t12=$[22];let t13;$[23]===filterMenuItems?t13=$[24]:(t13=(0,import_jsx_runtime.jsx)(Menu,{onMenuSelect:t12,items:filterMenuItems}),$[23]=filterMenuItems,$[24]=t13);let t14;$[25]!==state_0.fieldsOpen||$[26]!==t13?(t14=(0,import_jsx_runtime.jsx)(Popover,{triggerRef,placement:`bottom start`,isOpen:state_0.fieldsOpen,onOpenChange:t11,"data-testid":`filters-select-tooltip`,children:t13}),$[25]=state_0.fieldsOpen,$[26]=t13,$[27]=t14):t14=$[27];let t15;$[28]===Symbol.for(`react.memo_cache_sentinel`)?(t15=()=>{dispatch({type:`close`})},$[28]=t15):t15=$[28];let t16;$[29]===Symbol.for(`react.memo_cache_sentinel`)?(t16={width:275,padding:15,color:theme.menuItemText,zIndex:`2500 !important`},$[29]=t16):t16=$[29];let t17;$[30]!==onValidateAndApply||$[31]!==state_0.field||$[32]!==state_0.op||$[33]!==state_0.value?(t17=state_0.field&&(0,import_jsx_runtime.jsx)(ConfigureField,{field:state_0.field,op:state_0.op,value:state_0.value,dispatch,onApply:onValidateAndApply}),$[30]=onValidateAndApply,$[31]=state_0.field,$[32]=state_0.op,$[33]=state_0.value,$[34]=t17):t17=$[34];let t18;$[35]!==state_0.condOpen||$[36]!==t17?(t18=(0,import_jsx_runtime.jsx)(Popover,{triggerRef,placement:`bottom start`,isOpen:state_0.condOpen,onOpenChange:t15,shouldCloseOnInteractOutside:_temp5,style:t16,"data-testid":`filters-menu-tooltip`,children:t17}),$[35]=state_0.condOpen,$[36]=t17,$[37]=t18):t18=$[37];let t19;return $[38]!==t10||$[39]!==t14||$[40]!==t18?(t19=(0,import_jsx_runtime.jsxs)(View,{children:[t10,t14,t18]}),$[38]=t10,$[39]=t14,$[40]=t18,$[41]=t19):t19=$[41],t19}function _temp5(element){return element.dataset.pikaYear?(isDatepickerClick$1=!0,!1):isDatepickerClick$1?(isDatepickerClick$1=!1,!1):!(element instanceof HTMLElement&&(element.closest(`[data-testid="account-autocomplete-modal"]`)||element.closest(`[data-testid="payee-autocomplete-modal"]`)||element.closest(`[data-testid="category-autocomplete-modal"]`)))}function _temp4(t0){let[name,text]=t0;return{name,text:titleFirst(text)}}function _temp3(a,b){return a[0].localeCompare(b[0])}function _temp2(state,action){switch(action.type){case`select-field`:return{...state,fieldsOpen:!0,condOpen:!1};case`configure`:{let{field:field_0}=deserializeField(action.field),type=FIELD_TYPES.get(field_0),ops=getValidOps(field_0);return{...state,fieldsOpen:!1,condOpen:!0,field:action.field,op:ops[0],value:type===`boolean`||null}}case`close`:return{fieldsOpen:!1,condOpen:!1,value:null};default:return updateFilterReducer(state,action)}}function _temp$1(field){field[1]=mapField(field[0])}function FilterEditor(t0){let $=(0,import_compiler_runtime.c)(22),{field,op,value,options,onSave,onClose}=t0,dateFormat=useDateFormat()||`MM/dd/yyyy`,{t}=useTranslation(),t1;$[0]===onClose?t1=$[1]:(t1=(state,action)=>{switch(action.type){case`close`:return onClose(),state;default:return updateFilterReducer(state,action)}},$[0]=onClose,$[1]=t1);let t2;$[2]!==field||$[3]!==op||$[4]!==value?(t2={field,op,value},$[2]=field,$[3]=op,$[4]=value,$[5]=t2):t2=$[5];let[state_0,dispatch]=(0,import_react.useReducer)(t1,t2),t3=state_0.field,t4;$[6]!==field||$[7]!==options||$[8]!==value?(t4=subfieldFromFilter({field,options,value}),$[6]=field,$[7]=options,$[8]=value,$[9]=t4):t4=$[9];let t5;$[10]!==dateFormat||$[11]!==onClose||$[12]!==onSave||$[13]!==t?(t5=cond=>{if(cond=unparse({...cond,type:FIELD_TYPES.get(cond.field)}),cond.type===`date`&&cond.options){if(cond.options.month&&typeof cond.value==`string`&&!/\d{4}-\d{2}/.test(cond.value)){let date=parse(cond.value,getMonthYearFormat(dateFormat),new Date);if(isValid(date))cond.value=format(date,`yyyy-MM`);else{alert(t(`Invalid date format`));return}}else if(cond.options.year){let date_0=parse(cond.value,`yyyy`,new Date);if(isValid(date_0))cond.value=format(date_0,`yyyy`);else{alert(t(`Invalid date format`));return}}}onSave(cond),onClose()},$[10]=dateFormat,$[11]=onClose,$[12]=onSave,$[13]=t,$[14]=t5):t5=$[14];let t6;return $[15]!==options||$[16]!==state_0.field||$[17]!==state_0.op||$[18]!==state_0.value||$[19]!==t4||$[20]!==t5?(t6=(0,import_jsx_runtime.jsx)(ConfigureField,{field:t3,initialSubfield:t4,op:state_0.op,value:state_0.value,options,dispatch,onApply:t5}),$[15]=options,$[16]=state_0.field,$[17]=state_0.op,$[18]=state_0.value,$[19]=t4,$[20]=t5,$[21]=t6):t6=$[21],t6}var isDatepickerClick=!1;function FilterExpression(t0){let $=(0,import_compiler_runtime.c)(52),{field:originalField,customName,op,value,options,style,onChange,onDelete}=t0,{t}=useTranslation(),[editing,setEditing]=(0,import_react.useState)(!1),triggerRef=(0,import_react.useRef)(null),T0,T1,t1,t2,t3,t4,t5,t6,t7;if($[0]!==customName||$[1]!==op||$[2]!==options||$[3]!==originalField||$[4]!==style||$[5]!==value){let field=subfieldFromFilter({field:originalField,value});T1=View,$[15]===style?t6=$[16]:(t6={backgroundColor:theme.pillBackground,borderRadius:4,flexDirection:`row`,alignItems:`center`,marginRight:10,marginTop:10,...style},$[15]=style,$[16]=t6),T0=Button,t1=triggerRef,t2=`bare`,t3=customName!=null;let t8;$[17]===Symbol.for(`react.memo_cache_sentinel`)?(t4=()=>setEditing(!0),t5={maxWidth:`calc(100% - 26px)`,whiteSpace:`nowrap`,display:`block`},t8={paddingBlock:1,paddingLeft:5,paddingRight:2,overflow:`hidden`,textOverflow:`ellipsis`},$[17]=t4,$[18]=t5,$[19]=t8):(t4=$[17],t5=$[18],t8=$[19]),t7=(0,import_jsx_runtime.jsx)(`div`,{style:t8,children:customName?(0,import_jsx_runtime.jsx)(Text,{style:{color:theme.pageTextPositive},children:customName}):(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(Text,{style:{color:theme.pageTextPositive},children:mapField(field,options)}),` `,(0,import_jsx_runtime.jsx)(Text,{children:friendlyOp(op,null)}),` `,![`onbudget`,`offbudget`].includes(op?.toLocaleLowerCase())&&(0,import_jsx_runtime.jsx)(Value,{value,field,inline:!0,valueIsRaw:op===`contains`||op===`matches`||op===`doesNotContain`||op===`hasTags`||op===`hasAnyTag`})]})}),$[0]=customName,$[1]=op,$[2]=options,$[3]=originalField,$[4]=style,$[5]=value,$[6]=T0,$[7]=T1,$[8]=t1,$[9]=t2,$[10]=t3,$[11]=t4,$[12]=t5,$[13]=t6,$[14]=t7}else T0=$[6],T1=$[7],t1=$[8],t2=$[9],t3=$[10],t4=$[11],t5=$[12],t6=$[13],t7=$[14];let t8;$[20]!==T0||$[21]!==t1||$[22]!==t2||$[23]!==t3||$[24]!==t4||$[25]!==t5||$[26]!==t7?(t8=(0,import_jsx_runtime.jsx)(T0,{ref:t1,variant:t2,isDisabled:t3,onPress:t4,style:t5,children:t7}),$[20]=T0,$[21]=t1,$[22]=t2,$[23]=t3,$[24]=t4,$[25]=t5,$[26]=t7,$[27]=t8):t8=$[27];let t9;$[28]===t?t9=$[29]:(t9=t(`Delete filter`),$[28]=t,$[29]=t9);let t10;$[30]===Symbol.for(`react.memo_cache_sentinel`)?(t10=(0,import_jsx_runtime.jsx)(SvgDelete,{style:{width:8,height:8,margin:4}}),$[30]=t10):t10=$[30];let t11;$[31]!==onDelete||$[32]!==t9?(t11=(0,import_jsx_runtime.jsx)(Button,{variant:`bare`,onPress:onDelete,"aria-label":t9,children:t10}),$[31]=onDelete,$[32]=t9,$[33]=t11):t11=$[33];let t12;$[34]===Symbol.for(`react.memo_cache_sentinel`)?(t12=()=>setEditing(!1),$[34]=t12):t12=$[34];let t13;$[35]===Symbol.for(`react.memo_cache_sentinel`)?(t13={width:275,padding:15,color:theme.menuItemText,zIndex:`2500 !important`},$[35]=t13):t13=$[35];let t14;$[36]===Symbol.for(`react.memo_cache_sentinel`)?(t14=()=>setEditing(!1),$[36]=t14):t14=$[36];let t15;$[37]!==onChange||$[38]!==op||$[39]!==options||$[40]!==originalField||$[41]!==value?(t15=(0,import_jsx_runtime.jsx)(FilterEditor,{field:originalField,op,value,options,onSave:onChange,onClose:t14}),$[37]=onChange,$[38]=op,$[39]=options,$[40]=originalField,$[41]=value,$[42]=t15):t15=$[42];let t16;$[43]!==editing||$[44]!==t15?(t16=(0,import_jsx_runtime.jsx)(Popover,{triggerRef,placement:`bottom start`,isOpen:editing,onOpenChange:t12,shouldCloseOnInteractOutside:_temp,style:t13,"data-testid":`filters-menu-tooltip`,children:t15}),$[43]=editing,$[44]=t15,$[45]=t16):t16=$[45];let t17;return $[46]!==T1||$[47]!==t11||$[48]!==t16||$[49]!==t6||$[50]!==t8?(t17=(0,import_jsx_runtime.jsxs)(T1,{style:t6,children:[t8,t11,t16]}),$[46]=T1,$[47]=t11,$[48]=t16,$[49]=t6,$[50]=t8,$[51]=t17):t17=$[51],t17}function _temp(element){return element instanceof HTMLElement&&element.dataset.pikaYear?(isDatepickerClick=!0,!1):isDatepickerClick?(isDatepickerClick=!1,!1):!(element instanceof HTMLElement&&(element.closest(`[data-testid="account-autocomplete-modal"]`)||element.closest(`[data-testid="payee-autocomplete-modal"]`)||element.closest(`[data-testid="category-autocomplete-modal"]`)))}function AppliedFilters({conditions,onUpdate,onDelete,conditionsOp,onConditionsOpChange,style={}}){return(0,import_jsx_runtime.jsxs)(View,{style:{flexDirection:`row`,alignItems:`flex-start`,flexWrap:`wrap`,...style},children:[(0,import_jsx_runtime.jsx)(ConditionsOpMenu,{conditionsOp,onChange:onConditionsOpChange,conditions}),conditions.map((filter,i)=>(0,import_jsx_runtime.jsx)(FilterExpression,{customName:filter.customName,field:filter.field,op:filter.op,value:filter.value,options:filter.options,onChange:newFilter=>onUpdate(filter,newFilter),onDelete:()=>onDelete(filter)},i))]})}export{FilterButton as n,AppliedFilters as t};
|
|
2
|
+
//# sourceMappingURL=AppliedFilters.B1TqwFTR.chunk.js.map
|