@tasenor/common-plugins 1.16.2 → 1.16.3

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 (40) hide show
  1. package/.turbo/turbo-audit.log +24 -0
  2. package/.turbo/turbo-build.log +5 -4
  3. package/.turbo/turbo-ci.log +22 -8
  4. package/.turbo/turbo-fix.log +18 -0
  5. package/.turbo/turbo-lint.log +5 -0
  6. package/.turbo/turbo-nightly.log +13 -0
  7. package/.turbo/turbo-nightly3.log +12 -0
  8. package/.turbo/turbo-release.log +8 -0
  9. package/.turbo/turbo-show-version.log +6 -0
  10. package/data/FinnishBalanceSheetReportSociety.mjs +10 -0
  11. package/data/FinnishSociety.mjs +6 -0
  12. package/data/src/FinnishBalanceSheetReportSociety - balance-sheet-society-detailed-fi.tsv +146 -0
  13. package/data/src/FinnishBalanceSheetReportSociety - balance-sheet-society-fi.tsv +70 -0
  14. package/data/src/FinnishBalanceSheetReportSociety - tilitin convert.tsv +145 -0
  15. package/data/src/FinnishSociety - fi-EUR.tsv +215 -0
  16. package/dist/CoinbaseImport/backend/CoinbaseHandler.js +37 -3
  17. package/dist/CoinbaseImport/backend/CoinbaseHandler.js.map +1 -1
  18. package/dist/CoinbaseImport/backend/index.js +2 -2
  19. package/dist/FinnishBalanceSheetReportSociety/backend/index.d.ts +19 -0
  20. package/dist/FinnishBalanceSheetReportSociety/backend/index.js +111 -0
  21. package/dist/FinnishBalanceSheetReportSociety/backend/index.js.map +1 -0
  22. package/dist/FinnishSociety/backend/index.d.ts +10 -0
  23. package/dist/FinnishSociety/backend/index.js +38 -0
  24. package/dist/FinnishSociety/backend/index.js.map +1 -0
  25. package/dist/FinnishSociety/ui/index.d.ts +16 -0
  26. package/dist/FinnishSociety/ui/index.js +24 -0
  27. package/dist/FinnishSociety/ui/index.js.map +1 -0
  28. package/dist/TagEditor/ui/index.js +3 -3
  29. package/dist/TagEditor/ui/index.js.map +1 -1
  30. package/package.json +5 -5
  31. package/src/CoinbaseImport/backend/CoinbaseHandler.ts +36 -3
  32. package/src/CoinbaseImport/backend/index.ts +2 -2
  33. package/src/CoinbaseImport/backend/rules.json +35 -0
  34. package/src/FinnishBalanceSheetReportSociety/backend/balance-sheet-society-detailed-fi.tsv +146 -0
  35. package/src/FinnishBalanceSheetReportSociety/backend/balance-sheet-society-fi.tsv +70 -0
  36. package/src/FinnishBalanceSheetReportSociety/backend/index.ts +123 -0
  37. package/src/FinnishSociety/backend/fi-EUR.tsv +215 -0
  38. package/src/FinnishSociety/backend/index.ts +48 -0
  39. package/src/FinnishSociety/ui/index.tsx +28 -0
  40. package/src/TagEditor/ui/index.tsx +3 -0
@@ -0,0 +1,215 @@
1
+ # number / title text type code data
2
+ Vastaavaa
3
+ _Pysyvät vastaavat
4
+ __Aineettomat hyödykkeet
5
+ 1011 Perustamismenot ASSET {}
6
+ 1021 Tutkimusmenot ASSET {}
7
+ 1031 Kehittämismenot ASSET {}
8
+ 1041 Aineettomat oikeudet ASSET {}
9
+ 1081 Muut pitkävaikutteiset menot ASSET {}
10
+ 1091 Ennakkomaksut ASSET {}
11
+ __Aineelliset hyödykkeet
12
+ 1111 Maa- ja vesialueet ASSET {}
13
+ 1121 Maanvuokraoikeudet ASSET {}
14
+ 1151 Rakennukset ja rakennelmat ASSET {}
15
+ 1171 Rakennusten vuokraoikeudet ASSET {}
16
+ 1211 Koneet ja kalusto ASSET {}
17
+ 1311 Muut aineelliset hyödykkeet (poistokelpoiset) ASSET {}
18
+ 1351 Ennakkomaksut ja keskeneräiset hankinnat ASSET {}
19
+ __Sijoitukset
20
+ 1411 Osuudet ja osakkeet ASSET {}
21
+ 1451 Muut sijoitukset ASSET {}
22
+ _Vaihtuvat vastaavat
23
+ __Vaihto-omaisuus
24
+ 1511 Aineet ja tarvikkeet ASSET {}
25
+ 1521 Keskeneräiset tuotteet ASSET {}
26
+ 1531 Valmiit tuotteet ASSET {}
27
+ 1541 Tavarat ASSET {}
28
+ 1551 Muu vaihto-omaisuus ASSET {}
29
+ 1561 Ennakkomaksut ASSET {}
30
+ __Pitkäaikaiset saamiset
31
+ 1611 Myyntisaamiset (pitkäaikaiset) ASSET {}
32
+ 1641 Lainasaamiset (pitkäaikaiset) ASSET {}
33
+ 1651 Muut saamiset (pitkäaikaiset) ASSET {}
34
+ 1661 Maksamattomat osakkeet/osuudet (pitkäaikaiset) ASSET {}
35
+ 1671 Siirtosaamiset (pitkäaikaiset) ASSET {}
36
+ 1681 Laskennalliset verosaamiset (pitkäaikaiset) ASSET {}
37
+ __Lyhytaikaiset saamiset
38
+ 1711 Myyntisaamiset ASSET {}
39
+ 1761 Lainasaamiset ASSET {}
40
+ 1771 Muut saamiset ASSET {}
41
+ 1791 Maksamattomat osakkeet/osuudet ASSET {}
42
+ 1811 Siirtosaamiset ASSET {}
43
+ 1841 Laskennalliset verosaamiset ASSET {}
44
+ __Rahoitusarvopaperit
45
+ 1851 Osakkeet ja osuudet ASSET {}
46
+ 1881 Muut arvopaperit ASSET {}
47
+ __Rahat ja pankkisaamiset
48
+ 1901 Käteisvarat ASSET {}
49
+ 1911 Säästöpankki Optia ASSET {}
50
+ 1912 Osuuspankki ASSET {}
51
+ Vastattavaa
52
+ _Oma pääoma
53
+ 2011 Peruspääoma EQUITY {}
54
+ 2251 Edellisten tilikausien ylijäämät PROFIT_PREV {}
55
+ _Tilinpäätössiirtojen kertymä
56
+ 2411 Poistoero LIABILITY {}
57
+ 2451 Vapaaehtoiset varaukset LIABILITY {}
58
+ _Pakolliset varaukset
59
+ 2511 Eläkevaraukset LIABILITY {}
60
+ 2521 Verovaraukset LIABILITY {}
61
+ 2531 Muut pakolliset varaukset LIABILITY {}
62
+ _Vieras pääoma
63
+ __Pitkäaikainen vieras pääoma
64
+ 2631 Lainat rahoituslaitoksilta (pitkäaikaiset) LIABILITY {}
65
+ 2651 Eläkelainat (pitkäaikaiset) LIABILITY {}
66
+ 2661 Saadut ennakot (pitkäaikaiset) LIABILITY {}
67
+ 2671 Ostovelat (pitkäaikaiset) LIABILITY {}
68
+ 2681 Rahoitusvekselit (pitkäaikaiset) LIABILITY {}
69
+ 2731 Muut velat (pitkäaikaiset) LIABILITY {}
70
+ 2751 Siirtovelat (pitkäaikaiset) LIABILITY {}
71
+ __Lyhytaikainen vieras pääoma
72
+ 2831 Lainat rahoituslaitoksilta LIABILITY {}
73
+ 2851 Eläkelainat LIABILITY {}
74
+ 2861 Saadut ennakot LIABILITY {}
75
+ 2871 Ostovelat LIABILITY {}
76
+ 2891 Rahoitusvekselit LIABILITY {}
77
+ 2931 Ennakonpidätys- ja sosiaaliturvamaksuvelka LIABILITY {}
78
+ 2945 Arvonlisäverovelka LIABILITY {}
79
+ 2959 Muut velat LIABILITY {}
80
+ 2961 Siirtovelat LIABILITY {}
81
+ Tuloslaskelma
82
+ _Varsinaisen toiminnan tuotot
83
+ 3001 Osallistumismaksut REVENUE {}
84
+ 3101 Lahjoitukset REVENUE {}
85
+ 3901 Muut varsinaisen toiminnan tuotot REVENUE {}
86
+ _Varsinaisen toiminnan kulut
87
+ __Henkilöstökulut
88
+ ___Palkat ja palkkiot
89
+ 4001 Palkat EXPENSE {}
90
+ 4011 Lisät ja korvaukset EXPENSE {}
91
+ 4021 Loma-ajan palkat EXPENSE {}
92
+ 4031 Palkkiot EXPENSE {}
93
+ 4041 Luontoisedut EXPENSE {}
94
+ 4049 Luontoisetujen vastatili EXPENSE {}
95
+ 4051 Saadut sairausvakuutuskorvaukset EXPENSE {}
96
+ 4061 Saadut tapaturmavakuutuskorvaukset EXPENSE {}
97
+ ___Henkilösivukulut
98
+ 4101 Maksetut eläkkeet EXPENSE {}
99
+ 4111 Pakolliset eläkevakuutusmaksut EXPENSE {}
100
+ 4115 Vapaaehtoiset eläkevakuutusmaksut EXPENSE {}
101
+ 4121 Sosiaaliturvamaksut EXPENSE {}
102
+ 4131 Tapaturmavakuutusmaksut EXPENSE {}
103
+ 4135 Ryhmähenkivakuutusmaksut EXPENSE {}
104
+ 4141 Työttömyysvakuutusmaksut EXPENSE {}
105
+ 4151 Muut henkilöstön vakuutusmaksut EXPENSE {}
106
+ __Muut kulut
107
+ ___Toiminnan kulut
108
+ 4201 Toiminnan kulut EXPENSE {}
109
+ 4291 Muut toiminnan kulut EXPENSE {}
110
+ ___Henkilökunnan kulut
111
+ 4301 Henkilökunnan koulutus EXPENSE {}
112
+ 4311 Virkistys- ja harrastustoiminta EXPENSE {}
113
+ 4321 Työterveyshuolto EXPENSE {}
114
+ 4331 Henkilökunnan ruokailu EXPENSE {}
115
+ 4341 Työvaatteet ja suojavälineet EXPENSE {}
116
+ 4391 Muut henkilökunnan kulut EXPENSE {}
117
+ ___Toimitilakulut
118
+ 4401 Toimitilavuokrat EXPENSE {}
119
+ 4411 Sähkö EXPENSE {}
120
+ 4413 Lämmitys EXPENSE {}
121
+ 4415 Vesi ja jätevesi EXPENSE {}
122
+ 4421 Rakennusten korjaus EXPENSE {}
123
+ 4423 Ulkoalueiden huolto EXPENSE {}
124
+ 4431 Siivous- ja puhtaanapito EXPENSE {}
125
+ 4433 Jätehuolto EXPENSE {}
126
+ 4441 Kiinteistövakuutukset EXPENSE {}
127
+ 4451 Kiinteistövero EXPENSE {}
128
+ 4461 Vartiointi- ja turvallisuuskulut EXPENSE {}
129
+ 4491 Muut toimitilakulut EXPENSE {}
130
+ ___Ajoneuvokulut
131
+ 4501 Ajoneuvovuokrat EXPENSE {}
132
+ 4511 Ajoneuvojen polttoaine EXPENSE {}
133
+ 4521 Ajoneuvojen huolto ja korjaus EXPENSE {}
134
+ 4531 Ajoneuvojen julkiset maksut EXPENSE {}
135
+ 4541 Ajoneuvovakuutukset EXPENSE {}
136
+ 4591 Muut ajoneuvokulut EXPENSE {}
137
+ ___Kone- ja kalustokulut
138
+ 4601 Kone- ja kalustohankinnat EXPENSE {}
139
+ 4611 Kone- ja kalustovuokrat EXPENSE {}
140
+ 4621 Koneiden ja kaluston korjaus EXPENSE {}
141
+ 4631 Koneiden ja kaluston vakuutukset EXPENSE {}
142
+ 4691 Muut kone- ja kalustokulut EXPENSE {}
143
+ ___Matkakulut
144
+ 4701 Matkaliput EXPENSE {}
145
+ 4711 Taksikulut EXPENSE {}
146
+ 4721 Majoituskulut EXPENSE {}
147
+ 4731 Matkavakuutukset EXPENSE {}
148
+ 4741 Kilometrikorvaukset EXPENSE {}
149
+ 4751 Päivärahat EXPENSE {}
150
+ 4761 Ateriakorvaukset EXPENSE {}
151
+ 4791 Muut matkakulut EXPENSE {}
152
+ ___Markkinointikulut
153
+ 4801 Mainoskulut EXPENSE {}
154
+ 4811 Messut ja näyttelyt EXPENSE {}
155
+ 4821 Lahjoitukset EXPENSE {}
156
+ 4841 Muut markkinointikulut EXPENSE {}
157
+ ___Hallintopalvelut
158
+ 4851 Taloushallintopalvelut EXPENSE {}
159
+ 4861 Tilintarkastuspalvelut EXPENSE {}
160
+ 4871 Laki- ja konsultointipalvelut EXPENSE {}
161
+ 4891 Muut hallintopalvelut EXPENSE {}
162
+ ___Muut hallintokulut
163
+ 4901 Kirjat EXPENSE {}
164
+ 4903 Lehdet EXPENSE {}
165
+ 4911 Puhelinkulut EXPENSE {}
166
+ 4913 Datasiirtokulut EXPENSE {}
167
+ 4915 Postikulut EXPENSE {}
168
+ 4921 Rahaliikenteen kulut EXPENSE {}
169
+ 4931 Vastuuvakuutukset EXPENSE {}
170
+ 4933 Esinevakuutukset EXPENSE {}
171
+ 4935 Muut vakuutukset EXPENSE {}
172
+ 4941 Toimistotarvikkeet EXPENSE {}
173
+ 4951 Kokous- ja neuvottelukulut EXPENSE {}
174
+ 4961 Edustuskulut EXPENSE {}
175
+ 4971 Viranomaismaksut EXPENSE {}
176
+ 4991 Muut hallintokulut EXPENSE {}
177
+ _Varainhankinta
178
+ __Varainhankinnan tuotot
179
+ 5001 Jäsenmaksutulot REVENUE {}
180
+ 5011 Kannatusmaksutulot REVENUE {}
181
+ 5021 Mainostulot REVENUE {}
182
+ 5031 Myyntitulot REVENUE {}
183
+ 5041 Muut varainhankinnan tuotot REVENUE {}
184
+ __Varainhankinnan kulut
185
+ 5051 Jäsenmaksukulut EXPENSE {}
186
+ 5061 Ostot (myytävät tuotteet) EXPENSE {}
187
+ 5071 Myyntikulut EXPENSE {}
188
+ 5081 Muut varainhankinnan kulut EXPENSE {}
189
+ _Sijoitus- ja rahoitustoiminta
190
+ __Sijoitus- ja rahoitustoiminnan tuotot
191
+ 6001 Osinkotuotot REVENUE {}
192
+ 6005 Osakkeiden arvonnousut REVENUE {}
193
+ 6011 Korkotuotot REVENUE {}
194
+ 6021 Vuokratuotot REVENUE {}
195
+ 6031 Muut sijoitustoiminnan tuotot REVENUE {}
196
+ __Sijoitus- ja rahoitustoiminnan kulut
197
+ 6101 Korkokulut EXPENSE {}
198
+ 6102 Pankin palvelumaksut EXPENSE {}
199
+ 6111 Muut sijoitustoiminnan kulut EXPENSE {}
200
+ _Satunnaiset erät
201
+ __Satunnaiset tuotot
202
+ 7001 Satunnaiset tuotot REVENUE {}
203
+ __Satunnaiset kulut
204
+ 7101 Satunnaiset kulut EXPENSE {}
205
+ _Yleisavustukset
206
+ 7501 Yleisavustukset REVENUE {}
207
+ _Poistot
208
+ 8001 Poistot koneista ja kalustosta EXPENSE {}
209
+ 8011 Poistot rakennuksista EXPENSE {}
210
+ _Tilinpäätössiirrot
211
+ 9001 Poistoeron muutos EXPENSE {}
212
+ 9011 Vapaaehtoisten varausten muutos EXPENSE {}
213
+ _Tuloverot ja muut välittömät verot
214
+ 9501 Tuloverot EXPENSE {}
215
+ 9511 Muut välittömät verot EXPENSE {}
@@ -41,12 +41,12 @@ export class CoinbaseHandler extends TransactionImportHandler {
41
41
  if (file.firstLineMatch(/^$/) && file.secondLineMatch(/^Transactions$/)) {
42
42
  const data = file.decode();
43
43
  const lines = data.split('\n').splice(3);
44
- if (!/^Timestamp,Transaction Type,Asset,Quantity Transacted,Spot Price Currency,Spot Price at Transaction,Subtotal,Total/.test(lines[0])) {
45
- return 3;
46
- }
47
44
  if (!/^ID,Timestamp,Transaction Type,Asset,Quantity Transacted,Price Currency,Price at Transaction,Subtotal,Total (inclusive of fees and\/or spread),Fees and\/or Spread,Notes/.test(lines[0])) {
48
45
  return 4;
49
46
  }
47
+ if (!/^Timestamp,Transaction Type,Asset,Quantity Transacted,Spot Price Currency,Spot Price at Transaction,Subtotal,Total/.test(lines[0])) {
48
+ return 3;
49
+ }
50
50
  throw new Error('Coinbase parser is not able to understand the column format.');
51
51
  }
52
52
  return 0;
@@ -98,6 +98,40 @@ export class CoinbaseHandler extends TransactionImportHandler {
98
98
  columns.takeAsset = match[4];
99
99
  }
100
100
  }
101
+ if (this.version === 4) {
102
+ if (columns.type === 'Advanced Trade Buy') {
103
+ // 1 2 3 4 5 6 7 8
104
+ // Bought 0.33694052 ETH for 0.012835268969159 BTC on ETH-BTC at 0.03781 BTC/ETH
105
+ const match = /Bought ([0-9.]+) ([A-Z]+) for ([0-9.]+) ([A-Z]+) on ([A-Z]+)-([A-Z]+) at [0-9.]+ ([A-Z]+)\/([A-Z]+)/.exec(`${columns.Notes}`);
106
+ if (!match) {
107
+ throw new Error(`Unexpected format for notes: "${columns.Notes}".`);
108
+ }
109
+ if (match[2] !== match[5] || match[5] !== match[8] || match[4] !== match[6] || match[6] !== match[7]) {
110
+ throw new Error(`Coin tickers did not match as expected: "${columns.Notes}"`);
111
+ }
112
+ columns.type = 'Advanced Convert';
113
+ columns.takeAmount = parseFloat(match[1]);
114
+ columns.takeAsset = match[2];
115
+ columns.giveAmount = parseFloat(match[3]);
116
+ columns.giveAsset = match[4];
117
+ }
118
+ else if (columns.type === 'Advanced Trade Sell') {
119
+ // 1 2 3 4 5 6 7 8
120
+ // Sold 0.41459303 ETH for 0.0128917806326757 BTC on ETH-BTC at 0.03133 BTC/ETH
121
+ const match = /Sold ([0-9.]+) ([A-Z]+) for ([0-9.]+) ([A-Z]+) on ([A-Z]+)-([A-Z]+) at [0-9.]+ ([A-Z]+)\/([A-Z]+)/.exec(`${columns.Notes}`);
122
+ if (!match) {
123
+ throw new Error(`Unexpected format for notes: "${columns.Notes}".`);
124
+ }
125
+ if (match[2] !== match[5] || match[5] !== match[8] || match[4] !== match[6] || match[6] !== match[7]) {
126
+ throw new Error(`Coin tickers did not match as expected: "${columns.Notes}"`);
127
+ }
128
+ columns.type = 'Advanced Convert';
129
+ columns.giveAmount = parseFloat(match[1]);
130
+ columns.giveAsset = match[2];
131
+ columns.takeAmount = parseFloat(match[3]);
132
+ columns.takeAsset = match[4];
133
+ }
134
+ }
101
135
  return columns;
102
136
  }
103
137
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CoinbaseHandler.js","sourceRoot":"","sources":["../../../src/CoinbaseImport/backend/CoinbaseHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CoinbaseHandler.js","sourceRoot":"","sources":["../../../src/CoinbaseImport/backend/CoinbaseHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AAE5E;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,wBAAwB;IAE3D;QACE,KAAK,CAAC,gBAAgB,CAAC,CAAA;QACvB,IAAI,CAAC,aAAa,GAAG;YACnB,MAAM,EAAE,KAAK;YACb,aAAa,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC;YACtF,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,MAAM;YACjB,gBAAgB,EAAE,QAAQ;YAC1B,GAAG,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE;YACnC,cAAc,EAAE;gBACd,KAAK;gBACL,qBAAqB,EAAE,MAAM;gBAC7B,KAAK;gBACL,kBAAkB,EAAE,MAAM;gBAC1B,qBAAqB,EAAE,UAAU;gBACjC,qBAAqB,EAAE,UAAU;gBACjC,2BAA2B,EAAE,OAAO;gBACpC,yCAAyC,EAAE,OAAO;gBAClD,oBAAoB,EAAE,MAAM;gBAC5B,KAAK;gBACL,sBAAsB,EAAE,OAAO;gBAC/B,gBAAgB,EAAE,UAAU;aAC7B;SACF,CAAA;IACH,CAAC;IAED,IAAI,IAAI;QACN,OAAO,SAA0B,CAAA;IACnC,CAAC;IAED,SAAS,CAAC,IAAiB;QACzB,IAAI,IAAI,CAAC,cAAc,CAAC,0FAA0F,CAAC,EAAE,CAAC;YACpH,OAAO,CAAC,CAAA;QACV,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,CAAC,sCAAsC,CAAC,EAAE,CAAC;YAChE,OAAO,CAAC,CAAA;QACV,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACxE,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;YAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YACxC,IAAI,CAAC,0KAA0K,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/L,OAAO,CAAC,CAAA;YACV,CAAC;YACD,IAAI,CAAC,oHAAoH,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzI,OAAO,CAAC,CAAA;YACV,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAA;QACjF,CAAC;QAED,OAAO,CAAC,CAAA;IACV,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAoB;QAC7B,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,KAAK,CAAA;QACd,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACnE,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,OAAO,CAAA;YACtC,qCAAqC;YACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;gBAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBACjE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;YAC5B,CAAC;YACD,OAAO,KAAK,CAAA;QACd,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,iEAAiE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAA;IACnG,CAAC;IAED,SAAS,CAAC,IAAkB;QAC1B,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACnE,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1D,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;YACpC,CAAC;YACD,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QACjC,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,sEAAsE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAA;IACxG,CAAC;IAED,IAAI,CAAC,IAAkB;QACrB,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACnE,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QAC9E,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACpE,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,iEAAiE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAA;IACnG,CAAC;IAED,KAAK,CAAC,6BAA6B,CAAC,OAAgC;QAClE,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,8CAA8C,CAAC,IAAI,CAAC,OAAO,CAAC,KAAe,CAAC,CAAA;YAC1F,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;gBACzC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;gBAC5B,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;gBACzC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YAC9B,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACvB,IAAI,OAAO,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;gBAC1C,8EAA8E;gBAC9E,gFAAgF;gBAChF,MAAM,KAAK,GAAG,qGAAqG,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;gBAC5I,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,MAAM,IAAI,KAAK,CAAC,iCAAiC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAA;gBACrE,CAAC;gBACD,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrG,MAAM,IAAI,KAAK,CAAC,4CAA4C,OAAO,CAAC,KAAK,GAAG,CAAC,CAAA;gBAC/E,CAAC;gBACD,OAAO,CAAC,IAAI,GAAG,kBAAkB,CAAA;gBACjC,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;gBACzC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;gBAC5B,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;gBACzC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YAC9B,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;gBAClD,6EAA6E;gBAC7E,+EAA+E;gBAC/E,MAAM,KAAK,GAAG,mGAAmG,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;gBAC1I,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,MAAM,IAAI,KAAK,CAAC,iCAAiC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAA;gBACrE,CAAC;gBACD,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrG,MAAM,IAAI,KAAK,CAAC,4CAA4C,OAAO,CAAC,KAAK,GAAG,CAAC,CAAA;gBAC/E,CAAC;gBACD,OAAO,CAAC,IAAI,GAAG,kBAAkB,CAAA;gBACjC,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;gBACzC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;gBAC5B,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;gBACzC,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YAC9B,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;CACF"}
@@ -5,9 +5,9 @@ class CoinbaseImportPlugin extends ImportPlugin {
5
5
  super(new CoinbaseHandler());
6
6
  this.code = 'CoinbaseImport';
7
7
  this.title = 'Import for Coinbase';
8
- this.version = '1.0.29';
8
+ this.version = '1.0.30';
9
9
  this.icon = '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M5 6.99h3V14h2V6.99h3L9 3zM14 10v7.01h-3L15 21l4-3.99h-3V10z"/></svg>';
10
- this.releaseDate = '2022-10-24';
10
+ this.releaseDate = '2024-10-19';
11
11
  this.use = 'backend';
12
12
  this.type = 'import';
13
13
  this.description = 'Import plugin for importing transaction data in CSV format provided by Coinbase crypto exchange.';
@@ -0,0 +1,19 @@
1
+ import { Language, ReportOptions } from '@tasenor/common';
2
+ import { ReportPlugin } from '@tasenor/common-node';
3
+ declare class FinnishBalanceSheetReportSociety extends ReportPlugin {
4
+ constructor();
5
+ forceOptions(): {
6
+ negateAssetAndProfit: boolean;
7
+ addPreviousPeriod: boolean;
8
+ };
9
+ getLanguages(): Language[];
10
+ getReportOptions(): ReportOptions;
11
+ columnTitle(id: any, period: any, options: any): string;
12
+ getColumns(id: any, entries: any, options: any): Promise<any>;
13
+ preProcess(id: any, entries: any, options: any, settings: any, columns: any): Promise<import("@tasenor/common").ReportLine[]>;
14
+ /**
15
+ * Mark mismatching Vastaavaa and Vastattavaa with red.
16
+ */
17
+ postProcess(id: any, data: any): Promise<any>;
18
+ }
19
+ export default FinnishBalanceSheetReportSociety;
@@ -0,0 +1,111 @@
1
+ import { ReportPlugin } from '@tasenor/common-node';
2
+ import dayjs from 'dayjs';
3
+ import quarterOfYear from 'dayjs/plugin/quarterOfYear';
4
+ dayjs.extend(quarterOfYear);
5
+ class FinnishBalanceSheetReportSociety extends ReportPlugin {
6
+ constructor() {
7
+ super('balance-sheet-society', 'balance-sheet-society-detailed');
8
+ this.schemes = new Set(['FinnishSociety']);
9
+ this.code = 'FinnishBalanceSheetReportSociety';
10
+ this.title = 'Balance Sheet Report (Finnish - Society)';
11
+ this.version = '1.0.0';
12
+ this.icon = '<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><g><path d="M0,0h24v24H0V0z" fill="none"/></g><g><g><path d="M14,5H5v14h14v-9h-5V5z M8,17c-0.55,0-1-0.45-1-1s0.45-1,1-1s1,0.45,1,1S8.55,17,8,17z M8,13 c-0.55,0-1-0.45-1-1s0.45-1,1-1s1,0.45,1,1S8.55,13,8,13z M8,9C7.45,9,7,8.55,7,8s0.45-1,1-1s1,0.45,1,1S8.55,9,8,9z" opacity=".3"/><circle cx="8" cy="8" r="1"/><path d="M15,3H5C3.9,3,3.01,3.9,3.01,5L3,19c0,1.1,0.89,2,1.99,2H19c1.1,0,2-0.9,2-2V9L15,3z M19,19H5V5h9v5h5V19z"/><circle cx="8" cy="12" r="1"/><circle cx="8" cy="16" r="1"/></g></g></svg>';
13
+ this.releaseDate = '2025-08-12';
14
+ this.use = 'backend';
15
+ this.type = 'report';
16
+ this.description = 'Balance sheet report for Finnish societies, i.e. rekisteröity yhdistys.';
17
+ this.languages = {
18
+ en: {
19
+ 'report-balance-sheet-society-detailed': 'Detailed alance sheet',
20
+ 'report-balance-sheet-society': 'Balance sheet'
21
+ },
22
+ fi: {
23
+ 'report-balance-sheet-society-detailed': 'Tase tilierittelyin',
24
+ 'report-balance-sheet-society': 'Tase'
25
+ }
26
+ };
27
+ }
28
+ forceOptions() {
29
+ return {
30
+ negateAssetAndProfit: true,
31
+ addPreviousPeriod: true
32
+ };
33
+ }
34
+ getLanguages() {
35
+ return ['fi'];
36
+ }
37
+ getReportOptions() {
38
+ return {
39
+ quarter1: 'radio:1',
40
+ quarter2: 'radio:1',
41
+ quarter3: 'radio:1',
42
+ full: 'radio:1:default'
43
+ };
44
+ }
45
+ columnTitle(id, period, options) {
46
+ if (options.quarter1) {
47
+ const year = dayjs(period.start_date).year();
48
+ return `{${dayjs(`${year}-04-01`).subtract(1, 'day').format('YYYY-MM-DD')}}`;
49
+ }
50
+ else if (options.quarter2) {
51
+ const year = dayjs(period.start_date).year();
52
+ return `{${dayjs(`${year}-07-01`).subtract(1, 'day').format('YYYY-MM-DD')}}`;
53
+ }
54
+ else if (options.quarter3) {
55
+ const year = dayjs(period.start_date).year();
56
+ return `{${dayjs(`${year}-10-01`).subtract(1, 'day').format('YYYY-MM-DD')}}`;
57
+ }
58
+ else {
59
+ return `{${this.time2str(period.end_date)}}`;
60
+ }
61
+ }
62
+ async getColumns(id, entries, options) {
63
+ const columns = options.periods.map((period) => {
64
+ return {
65
+ type: 'currency',
66
+ name: 'period' + period.id,
67
+ title: this.columnTitle(id, period, options)
68
+ };
69
+ });
70
+ columns.unshift({
71
+ name: 'title',
72
+ title: '',
73
+ type: 'name'
74
+ });
75
+ return columns;
76
+ }
77
+ async preProcess(id, entries, options, settings, columns) {
78
+ const columnNames = columns.map((col) => col.name);
79
+ // Summarize all totals from the entries.
80
+ const totals = {};
81
+ columnNames.forEach((column) => (totals[column] = {}));
82
+ const accountNames = {};
83
+ const accountNumbers = new Set();
84
+ entries.forEach((entry) => {
85
+ const column = 'period' + entry.periodId;
86
+ totals[column][entry.number] = totals[column][entry.number] || 0;
87
+ totals[column][entry.number] += entry.amount;
88
+ accountNames[entry.number] = entry.name;
89
+ accountNumbers.add(entry.number);
90
+ });
91
+ return this.parseAndCombineReport([...accountNumbers], accountNames, columns, options.format, totals);
92
+ }
93
+ /**
94
+ * Mark mismatching Vastaavaa and Vastattavaa with red.
95
+ */
96
+ async postProcess(id, data) {
97
+ const liabilities = data.find(line => line.name === 'Vastattavaa yhteensä');
98
+ const assets = data.find(line => line.name === 'Vastaavaa yhteensä');
99
+ if (liabilities && assets) {
100
+ Object.values(liabilities.values).forEach((value, idx) => {
101
+ if (Object.values(assets.values)[idx] !== value) {
102
+ assets.error = true;
103
+ liabilities.error = true;
104
+ }
105
+ });
106
+ }
107
+ return data;
108
+ }
109
+ }
110
+ export default FinnishBalanceSheetReportSociety;
111
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/FinnishBalanceSheetReportSociety/backend/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { SchemePlugin } from '@tasenor/common-node';
2
+ import { Currency, Language, TsvFilePath } from '@tasenor/common';
3
+ declare class FinnishSociety extends SchemePlugin {
4
+ constructor();
5
+ getSchemePaths(code: any): TsvFilePath[];
6
+ getSchemeDefaults(code: any): Record<string, unknown>;
7
+ supportedCurrencies(): Currency[];
8
+ supportedLanguages(): Language[];
9
+ }
10
+ export default FinnishSociety;
@@ -0,0 +1,38 @@
1
+ import path from 'path';
2
+ import { SchemePlugin } from '@tasenor/common-node';
3
+ class FinnishSociety extends SchemePlugin {
4
+ constructor() {
5
+ super('FinnishSociety');
6
+ this.code = 'FinnishSociety';
7
+ this.title = 'Finnish Society';
8
+ this.version = '1.0.0';
9
+ this.icon = '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M11.17 8l-.58-.59L9.17 6H4v12h16V8h-8z" opacity=".3"/><path d="M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V6h5.17l1.41 1.41.59.59H20v10z"/></svg>';
10
+ this.releaseDate = '2025-08-12';
11
+ this.use = 'both';
12
+ this.type = 'scheme';
13
+ this.description = 'Small accounting scheme for Finnish societies i.e. rekisteröity yhdistys.';
14
+ this.languages = {
15
+ fi: {}
16
+ };
17
+ }
18
+ getSchemePaths(code) {
19
+ if (code === 'FinnishSociety') {
20
+ return [
21
+ path.join(__dirname, 'fi-EUR.tsv'),
22
+ ];
23
+ }
24
+ return [];
25
+ }
26
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
27
+ getSchemeDefaults(code) {
28
+ return {};
29
+ }
30
+ supportedCurrencies() {
31
+ return ['EUR'];
32
+ }
33
+ supportedLanguages() {
34
+ return ['fi'];
35
+ }
36
+ }
37
+ export default FinnishSociety;
38
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/FinnishSociety/backend/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGnD,MAAM,cAAe,SAAQ,YAAY;IAEvC;QACE,KAAK,CAAC,gBAA8B,CAAC,CAAA;QAErC,IAAI,CAAC,IAAI,GAAG,gBAA8B,CAAA;QAC1C,IAAI,CAAC,KAAK,GAAG,iBAAiB,CAAA;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAkB,CAAA;QACjC,IAAI,CAAC,IAAI,GAAG,gWAAgW,CAAA;QAC5W,IAAI,CAAC,WAAW,GAAG,YAAY,CAAA;QAC/B,IAAI,CAAC,GAAG,GAAG,MAAM,CAAA;QACjB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAA;QACpB,IAAI,CAAC,WAAW,GAAG,2EAA2E,CAAA;QAE9F,IAAI,CAAC,SAAS,GAAG;YACf,EAAE,EAAE,EACH;SACF,CAAA;IACH,CAAC;IAED,cAAc,CAAC,IAAI;QACjB,IAAI,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC9B,OAAO;gBACL,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC;aAClB,CAAA;QACpB,CAAC;QACD,OAAO,EAAE,CAAA;IACX,CAAC;IAED,6DAA6D;IAC7D,iBAAiB,CAAC,IAAI;QACpB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,mBAAmB;QACjB,OAAO,CAAC,KAAK,CAAC,CAAA;IAChB,CAAC;IAED,kBAAkB;QAChB,OAAO,CAAC,IAAI,CAAC,CAAA;IACf,CAAC;CACF;AAED,eAAe,cAAc,CAAA"}
@@ -0,0 +1,16 @@
1
+ import { SchemePlugin } from '@tasenor/common-ui';
2
+ declare class FinnishSociety extends SchemePlugin {
3
+ static code: string;
4
+ static title: string;
5
+ static version: string;
6
+ static icon: string;
7
+ static releaseDate: string;
8
+ static use: string;
9
+ static type: string;
10
+ static description: string;
11
+ constructor();
12
+ getAccountingSchemes(): {
13
+ FinnishSociety: string;
14
+ };
15
+ }
16
+ export default FinnishSociety;
@@ -0,0 +1,24 @@
1
+ import { SchemePlugin } from '@tasenor/common-ui';
2
+ class FinnishSociety extends SchemePlugin {
3
+ static code = 'FinnishSociety';
4
+ static title = 'Finnish Society';
5
+ static version = '1.0.0';
6
+ static icon = '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M11.17 8l-.58-.59L9.17 6H4v12h16V8h-8z" opacity=".3"/><path d="M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V6h5.17l1.41 1.41.59.59H20v10z"/></svg>';
7
+ static releaseDate = '2025-08-12';
8
+ static use = 'both';
9
+ static type = 'scheme';
10
+ static description = 'Small accounting scheme for Finnish societies i.e. rekisteröity yhdistys.';
11
+ constructor() {
12
+ super();
13
+ this.languages = {
14
+ fi: {
15
+ FinnishSociety: 'Yhdistys'
16
+ }
17
+ };
18
+ }
19
+ getAccountingSchemes() {
20
+ return { FinnishSociety: 'Yhdistys' };
21
+ }
22
+ }
23
+ export default FinnishSociety;
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/FinnishSociety/ui/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,MAAM,cAAe,SAAQ,YAAY;IAEvC,MAAM,CAAC,IAAI,GAAG,gBAAgB,CAAA;IAC9B,MAAM,CAAC,KAAK,GAAG,iBAAiB,CAAA;IAChC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,MAAM,CAAC,IAAI,GAAG,gWAAgW,CAAA;IAC9W,MAAM,CAAC,WAAW,GAAG,YAAY,CAAA;IACjC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAA;IACnB,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAA;IACtB,MAAM,CAAC,WAAW,GAAG,2EAA2E,CAAA;IAEhG;QACE,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,SAAS,GAAG;YACf,EAAE,EAAE;gBACF,cAAc,EAAE,UAAU;aAC3B;SACF,CAAA;IACH,CAAC;IAED,oBAAoB;QAClB,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,CAAA;IACvC,CAAC;;AAGH,eAAe,cAAc,CAAA"}
@@ -125,11 +125,11 @@ const TagCard = observer((props) => {
125
125
  React.createElement(Button, { size: "small", onClick: () => { setIsNew(true); setEdit(!edit); } },
126
126
  React.createElement(Trans, null, "Add New"))),
127
127
  edit && React.createElement(React.Fragment, null,
128
- React.createElement(TextField, { autoFocus: true, onFocus: () => cursor.disableHandler(), onBlur: () => cursor.enableHandler(), error: !!validateName(), label: validateName(), value: tagName, onChange: (ev) => { setTagName(ev.target.value); setChanged(true); }, onKeyUp: (ev) => onKeyUp(ev.key) }),
128
+ React.createElement(TextField, { autoFocus: true, autoComplete: "off", onFocus: () => cursor.disableHandler(), onBlur: () => cursor.enableHandler(), error: !!validateName(), label: validateName(), value: tagName, onChange: (ev) => { setTagName(ev.target.value); setChanged(true); }, onKeyUp: (ev) => onKeyUp(ev.key) }),
129
129
  React.createElement(IconButton, { title: t('Cancel'), onClick: onCancel, sx: { color: red[800] } },
130
130
  React.createElement(Cancel, null)),
131
131
  React.createElement("br", null),
132
- React.createElement(TextField, { onFocus: () => cursor.disableHandler(), onBlur: () => cursor.enableHandler(), value: tagTag, error: !!validateTag(), label: validateTag(), onChange: (ev) => { setTagTag(ev.target.value); setChanged(true); }, onKeyUp: (ev) => onKeyUp(ev.key) }),
132
+ React.createElement(TextField, { autoComplete: "off", onFocus: () => cursor.disableHandler(), onBlur: () => cursor.enableHandler(), value: tagTag, error: !!validateTag(), label: validateTag(), onChange: (ev) => { setTagTag(ev.target.value); setChanged(true); }, onKeyUp: (ev) => onKeyUp(ev.key) }),
133
133
  React.createElement(IconButton, { title: t('Save'), onClick: onSave, sx: { color: green[800] } },
134
134
  React.createElement(CheckCircle, null)))),
135
135
  edit &&
@@ -274,7 +274,7 @@ const TagsEditor = observer((props) => {
274
274
  types.map((type, idx) => (React.createElement(Tab, { key: idx, label: type }))),
275
275
  React.createElement(Tab, { key: -1, disableRipple: true, icon: types[tab] && React.createElement(Add, null), iconPosition: "start", label: types[tab]
276
276
  ? t('Add Tag Type')
277
- : React.createElement(TextField, { autoFocus: true, onFocus: () => cursor.disableHandler(), onBlur: () => cursor.enableHandler(), value: addingTab, onChange: ev => setAddingTab(ev.target.value), onKeyUp: (ev) => onKeyUp(ev.key) }) })),
277
+ : React.createElement(TextField, { autoFocus: true, autoComplete: "off", onFocus: () => cursor.disableHandler(), onBlur: () => cursor.enableHandler(), value: addingTab, onChange: ev => setAddingTab(ev.target.value), onKeyUp: (ev) => onKeyUp(ev.key) }) })),
278
278
  types[tab] && (React.createElement(React.Fragment, null,
279
279
  React.createElement(GroupPanel, { group: types[tab], tags: groups[types[tab]], existingTags: existingTags, onSave: tag => onSave(tag), onCreate: tag => onCreate(tag), onDelete: tag => onDelete(tag) }))),
280
280
  types.length === 0 && (React.createElement(Typography, { variant: "h6", sx: { padding: 1 } },