@things-factory/accounting 8.0.0-alpha.1 → 8.0.0-alpha.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (279) hide show
  1. package/client/bootstrap.ts +10 -1
  2. package/client/components/accounting-category-selector.ts +136 -0
  3. package/client/components/accounting-category-view.ts +75 -0
  4. package/client/grist-editors/grist-editor-accounting-category-object.ts +83 -0
  5. package/client/grist-editors/grist-renderer-accounting-category-object.ts +13 -0
  6. package/client/pages/account/account-list-page.ts +33 -2
  7. package/client/pages/accounting-category/accounting-category-list-page.ts +31 -1
  8. package/client/pages/accounting-category/accounting-category-tree-page.ts +338 -0
  9. package/client/pages/accounting-document/accounting-document-importer.ts +90 -0
  10. package/client/pages/accounting-document/accounting-document-list-page.ts +398 -0
  11. package/client/pages/{ledger/ledger-importer.ts → payment/payment-importer.ts} +10 -17
  12. package/client/pages/{ledger/ledger-list-page.ts → payment/payment-list-page.ts} +118 -57
  13. package/client/route.ts +0 -4
  14. package/client/types/accounting-category.ts +23 -0
  15. package/client/types/index.ts +1 -0
  16. package/dist-client/bootstrap.js +7 -1
  17. package/dist-client/bootstrap.js.map +1 -1
  18. package/dist-client/components/accounting-category-selector.d.ts +16 -0
  19. package/dist-client/components/accounting-category-selector.js +134 -0
  20. package/dist-client/components/accounting-category-selector.js.map +1 -0
  21. package/dist-client/components/accounting-category-view.d.ts +14 -0
  22. package/dist-client/components/accounting-category-view.js +81 -0
  23. package/dist-client/components/accounting-category-view.js.map +1 -0
  24. package/dist-client/grist-editors/grist-editor-accounting-category-object.d.ts +11 -0
  25. package/dist-client/grist-editors/grist-editor-accounting-category-object.js +71 -0
  26. package/dist-client/grist-editors/grist-editor-accounting-category-object.js.map +1 -0
  27. package/dist-client/grist-editors/grist-renderer-accounting-category-object.d.ts +2 -0
  28. package/dist-client/grist-editors/grist-renderer-accounting-category-object.js +9 -0
  29. package/dist-client/grist-editors/grist-renderer-accounting-category-object.js.map +1 -0
  30. package/dist-client/pages/account/account-list-page.js +33 -2
  31. package/dist-client/pages/account/account-list-page.js.map +1 -1
  32. package/dist-client/pages/accounting-category/accounting-category-list-page.js +31 -1
  33. package/dist-client/pages/accounting-category/accounting-category-list-page.js.map +1 -1
  34. package/dist-client/pages/accounting-category/accounting-category-tree-page.d.ts +46 -0
  35. package/dist-client/pages/accounting-category/accounting-category-tree-page.js +329 -0
  36. package/dist-client/pages/accounting-category/accounting-category-tree-page.js.map +1 -0
  37. package/dist-client/pages/accounting-document/accounting-document-importer.d.ts +23 -0
  38. package/dist-client/pages/accounting-document/accounting-document-importer.js +93 -0
  39. package/dist-client/pages/accounting-document/accounting-document-importer.js.map +1 -0
  40. package/dist-client/pages/accounting-document/accounting-document-list-page.d.ts +66 -0
  41. package/dist-client/pages/accounting-document/accounting-document-list-page.js +370 -0
  42. package/dist-client/pages/accounting-document/accounting-document-list-page.js.map +1 -0
  43. package/dist-client/pages/{ledger/ledger-importer.d.ts → payment/payment-importer.d.ts} +3 -2
  44. package/dist-client/pages/{ledger/ledger-importer.js → payment/payment-importer.js} +14 -21
  45. package/dist-client/pages/payment/payment-importer.js.map +1 -0
  46. package/dist-client/pages/{ledger/ledger-list-page.d.ts → payment/payment-list-page.d.ts} +12 -8
  47. package/dist-client/pages/{ledger/ledger-list-page.js → payment/payment-list-page.js} +114 -67
  48. package/dist-client/pages/payment/payment-list-page.js.map +1 -0
  49. package/dist-client/route.d.ts +1 -1
  50. package/dist-client/route.js +0 -3
  51. package/dist-client/route.js.map +1 -1
  52. package/dist-client/tsconfig.tsbuildinfo +1 -1
  53. package/dist-client/types/accounting-category.d.ts +16 -0
  54. package/dist-client/types/accounting-category.js +3 -0
  55. package/dist-client/types/accounting-category.js.map +1 -0
  56. package/dist-client/types/index.d.ts +1 -0
  57. package/dist-client/types/index.js +2 -0
  58. package/dist-client/types/index.js.map +1 -0
  59. package/dist-server/activities/activity-book.js +31 -19
  60. package/dist-server/activities/activity-book.js.map +1 -1
  61. package/dist-server/controllers/summary-statements.js +13 -7
  62. package/dist-server/controllers/summary-statements.js.map +1 -1
  63. package/dist-server/index.d.ts +1 -0
  64. package/dist-server/index.js +1 -0
  65. package/dist-server/index.js.map +1 -1
  66. package/dist-server/migrations/1725200507196-seed-fiscal-entities.js +3 -3
  67. package/dist-server/migrations/1725200507196-seed-fiscal-entities.js.map +1 -1
  68. package/dist-server/migrations/1725201467183-seed-accounts.js +31 -31
  69. package/dist-server/migrations/1725201467183-seed-accounts.js.map +1 -1
  70. package/dist-server/routes.d.ts +0 -1
  71. package/dist-server/routes.js +0 -1
  72. package/dist-server/routes.js.map +1 -1
  73. package/dist-server/service/account/account-history.d.ts +4 -1
  74. package/dist-server/service/account/account-history.js +14 -4
  75. package/dist-server/service/account/account-history.js.map +1 -1
  76. package/dist-server/service/account/account-mutation.js +13 -9
  77. package/dist-server/service/account/account-mutation.js.map +1 -1
  78. package/dist-server/service/account/account-query.js +2 -0
  79. package/dist-server/service/account/account-query.js.map +1 -1
  80. package/dist-server/service/account/account.d.ts +1 -1
  81. package/dist-server/service/account/account.js +15 -4
  82. package/dist-server/service/account/account.js.map +1 -1
  83. package/dist-server/service/account/index.d.ts +1 -2
  84. package/dist-server/service/accounting-category/accounting-category-history.d.ts +26 -0
  85. package/dist-server/service/accounting-category/accounting-category-history.js +136 -0
  86. package/dist-server/service/accounting-category/accounting-category-history.js.map +1 -0
  87. package/dist-server/service/accounting-category/accounting-category-mutation.js +12 -8
  88. package/dist-server/service/accounting-category/accounting-category-mutation.js.map +1 -1
  89. package/dist-server/service/accounting-category/accounting-category-query.d.ts +1 -0
  90. package/dist-server/service/accounting-category/accounting-category-query.js +23 -0
  91. package/dist-server/service/accounting-category/accounting-category-query.js.map +1 -1
  92. package/dist-server/service/accounting-category/accounting-category.d.ts +1 -0
  93. package/dist-server/service/accounting-category/accounting-category.js +14 -3
  94. package/dist-server/service/accounting-category/accounting-category.js.map +1 -1
  95. package/dist-server/service/accounting-category/event-subscriber.d.ts +7 -0
  96. package/dist-server/service/accounting-category/event-subscriber.js +21 -0
  97. package/dist-server/service/accounting-category/event-subscriber.js.map +1 -0
  98. package/dist-server/service/accounting-category/index.d.ts +2 -1
  99. package/dist-server/service/accounting-category/index.js +4 -2
  100. package/dist-server/service/accounting-category/index.js.map +1 -1
  101. package/dist-server/service/accounting-document/accounting-document-history.d.ts +26 -0
  102. package/dist-server/service/accounting-document/accounting-document-history.js +129 -0
  103. package/dist-server/service/accounting-document/accounting-document-history.js.map +1 -0
  104. package/dist-server/service/accounting-document/accounting-document-mutation.d.ts +10 -0
  105. package/dist-server/service/accounting-document/accounting-document-mutation.js +128 -0
  106. package/dist-server/service/accounting-document/accounting-document-mutation.js.map +1 -0
  107. package/dist-server/service/accounting-document/accounting-document-query.d.ts +11 -0
  108. package/dist-server/service/accounting-document/accounting-document-query.js +79 -0
  109. package/dist-server/service/accounting-document/accounting-document-query.js.map +1 -0
  110. package/dist-server/service/accounting-document/accounting-document-type.d.ts +20 -0
  111. package/dist-server/service/accounting-document/accounting-document-type.js +74 -0
  112. package/dist-server/service/accounting-document/accounting-document-type.js.map +1 -0
  113. package/dist-server/service/accounting-document/accounting-document.d.ts +21 -0
  114. package/dist-server/service/accounting-document/accounting-document.js +104 -0
  115. package/dist-server/service/accounting-document/accounting-document.js.map +1 -0
  116. package/dist-server/service/accounting-document/event-subscriber.d.ts +7 -0
  117. package/dist-server/service/accounting-document/event-subscriber.js +21 -0
  118. package/dist-server/service/accounting-document/event-subscriber.js.map +1 -0
  119. package/dist-server/service/accounting-document/index.d.ts +7 -0
  120. package/dist-server/service/accounting-document/index.js +12 -0
  121. package/dist-server/service/accounting-document/index.js.map +1 -0
  122. package/dist-server/service/financial-statement/financial-statement-history.d.ts +9 -6
  123. package/dist-server/service/financial-statement/financial-statement-history.js +30 -20
  124. package/dist-server/service/financial-statement/financial-statement-history.js.map +1 -1
  125. package/dist-server/service/financial-statement/financial-statement-line-item.d.ts +19 -0
  126. package/dist-server/service/financial-statement/financial-statement-line-item.js +94 -0
  127. package/dist-server/service/financial-statement/financial-statement-line-item.js.map +1 -0
  128. package/dist-server/service/financial-statement/financial-statement-mutation.js +12 -8
  129. package/dist-server/service/financial-statement/financial-statement-mutation.js.map +1 -1
  130. package/dist-server/service/financial-statement/financial-statement-query.js +2 -0
  131. package/dist-server/service/financial-statement/financial-statement-query.js.map +1 -1
  132. package/dist-server/service/financial-statement/financial-statement.d.ts +2 -0
  133. package/dist-server/service/financial-statement/financial-statement.js +45 -24
  134. package/dist-server/service/financial-statement/financial-statement.js.map +1 -1
  135. package/dist-server/service/financial-statement/index.d.ts +2 -2
  136. package/dist-server/service/financial-statement/index.js +2 -1
  137. package/dist-server/service/financial-statement/index.js.map +1 -1
  138. package/dist-server/service/fiscal-month/fiscal-month-mutation.js +6 -0
  139. package/dist-server/service/fiscal-month/fiscal-month-mutation.js.map +1 -1
  140. package/dist-server/service/fiscal-month/fiscal-month-query.js +2 -0
  141. package/dist-server/service/fiscal-month/fiscal-month-query.js.map +1 -1
  142. package/dist-server/service/fiscal-month/fiscal-month.js +1 -1
  143. package/dist-server/service/fiscal-month/fiscal-month.js.map +1 -1
  144. package/dist-server/service/fiscal-quarter/fiscal-quarter-mutation.js +6 -0
  145. package/dist-server/service/fiscal-quarter/fiscal-quarter-mutation.js.map +1 -1
  146. package/dist-server/service/fiscal-quarter/fiscal-quarter-query.js +2 -0
  147. package/dist-server/service/fiscal-quarter/fiscal-quarter-query.js.map +1 -1
  148. package/dist-server/service/fiscal-quarter/fiscal-quarter.js +1 -1
  149. package/dist-server/service/fiscal-quarter/fiscal-quarter.js.map +1 -1
  150. package/dist-server/service/fiscal-year/fiscal-year-mutation.js +6 -0
  151. package/dist-server/service/fiscal-year/fiscal-year-mutation.js.map +1 -1
  152. package/dist-server/service/fiscal-year/fiscal-year-query.js +2 -0
  153. package/dist-server/service/fiscal-year/fiscal-year-query.js.map +1 -1
  154. package/dist-server/service/fiscal-year/fiscal-year.js +1 -1
  155. package/dist-server/service/fiscal-year/fiscal-year.js.map +1 -1
  156. package/dist-server/service/income-statement/income-statement-history.d.ts +9 -5
  157. package/dist-server/service/income-statement/income-statement-history.js +35 -20
  158. package/dist-server/service/income-statement/income-statement-history.js.map +1 -1
  159. package/dist-server/service/income-statement/income-statement-line-item.d.ts +19 -0
  160. package/dist-server/service/income-statement/income-statement-line-item.js +96 -0
  161. package/dist-server/service/income-statement/income-statement-line-item.js.map +1 -0
  162. package/dist-server/service/income-statement/income-statement-mutation.js +12 -8
  163. package/dist-server/service/income-statement/income-statement-mutation.js.map +1 -1
  164. package/dist-server/service/income-statement/income-statement-query.js +2 -0
  165. package/dist-server/service/income-statement/income-statement-query.js.map +1 -1
  166. package/dist-server/service/income-statement/income-statement.d.ts +2 -0
  167. package/dist-server/service/income-statement/income-statement.js +46 -26
  168. package/dist-server/service/income-statement/income-statement.js.map +1 -1
  169. package/dist-server/service/income-statement/index.d.ts +2 -2
  170. package/dist-server/service/income-statement/index.js +2 -1
  171. package/dist-server/service/income-statement/index.js.map +1 -1
  172. package/dist-server/service/index.d.ts +4 -2
  173. package/dist-server/service/index.js +10 -0
  174. package/dist-server/service/index.js.map +1 -1
  175. package/dist-server/service/payment/event-subscriber.d.ts +7 -0
  176. package/dist-server/service/payment/event-subscriber.js +21 -0
  177. package/dist-server/service/payment/event-subscriber.js.map +1 -0
  178. package/dist-server/service/payment/index.d.ts +8 -0
  179. package/dist-server/service/payment/index.js +12 -0
  180. package/dist-server/service/payment/index.js.map +1 -0
  181. package/dist-server/service/payment/payment-history.d.ts +30 -0
  182. package/dist-server/service/payment/payment-history.js +143 -0
  183. package/dist-server/service/payment/payment-history.js.map +1 -0
  184. package/dist-server/service/payment/payment-mutation.d.ts +10 -0
  185. package/dist-server/service/payment/payment-mutation.js +134 -0
  186. package/dist-server/service/payment/payment-mutation.js.map +1 -0
  187. package/dist-server/service/payment/payment-query.d.ts +11 -0
  188. package/dist-server/service/payment/payment-query.js +81 -0
  189. package/dist-server/service/payment/payment-query.js.map +1 -0
  190. package/dist-server/service/payment/payment-type.d.ts +24 -0
  191. package/dist-server/service/payment/payment-type.js +90 -0
  192. package/dist-server/service/payment/payment-type.js.map +1 -0
  193. package/dist-server/service/payment/payment.d.ts +30 -0
  194. package/dist-server/service/payment/payment.js +146 -0
  195. package/dist-server/service/payment/payment.js.map +1 -0
  196. package/dist-server/service/transaction/index.d.ts +2 -1
  197. package/dist-server/service/transaction/transaction-history.d.ts +6 -2
  198. package/dist-server/service/transaction/transaction-history.js +28 -9
  199. package/dist-server/service/transaction/transaction-history.js.map +1 -1
  200. package/dist-server/service/transaction/transaction-mutation.js +13 -9
  201. package/dist-server/service/transaction/transaction-mutation.js.map +1 -1
  202. package/dist-server/service/transaction/transaction-query.js +2 -0
  203. package/dist-server/service/transaction/transaction-query.js.map +1 -1
  204. package/dist-server/service/transaction/transaction.d.ts +28 -6
  205. package/dist-server/service/transaction/transaction.js +119 -31
  206. package/dist-server/service/transaction/transaction.js.map +1 -1
  207. package/dist-server/tsconfig.tsbuildinfo +1 -1
  208. package/helps/accounting/accounting-document.md +160 -0
  209. package/helps/accounting/contract.md +160 -0
  210. package/helps/accounting/payment.md +160 -0
  211. package/package.json +5 -5
  212. package/server/activities/activity-book.ts +31 -19
  213. package/server/controllers/summary-statements.ts +13 -7
  214. package/server/index.ts +1 -0
  215. package/server/migrations/1725200507196-seed-fiscal-entities.ts +3 -3
  216. package/server/migrations/1725201467183-seed-accounts.ts +31 -31
  217. package/server/routes.ts +0 -2
  218. package/server/service/account/account-history.ts +14 -6
  219. package/server/service/account/account-mutation.ts +13 -10
  220. package/server/service/account/account-query.ts +2 -0
  221. package/server/service/account/account.ts +15 -4
  222. package/server/service/accounting-category/accounting-category-history.ts +123 -0
  223. package/server/service/accounting-category/accounting-category-mutation.ts +12 -9
  224. package/server/service/accounting-category/accounting-category-query.ts +23 -0
  225. package/server/service/accounting-category/accounting-category.ts +14 -3
  226. package/server/service/accounting-category/event-subscriber.ts +20 -0
  227. package/server/service/accounting-category/index.ts +4 -2
  228. package/server/service/accounting-document/accounting-document-history.ts +117 -0
  229. package/server/service/accounting-document/accounting-document-mutation.ts +137 -0
  230. package/server/service/accounting-document/accounting-document-query.ts +48 -0
  231. package/server/service/accounting-document/accounting-document-type.ts +52 -0
  232. package/server/service/accounting-document/accounting-document.ts +93 -0
  233. package/server/service/accounting-document/event-subscriber.ts +17 -0
  234. package/server/service/accounting-document/index.ts +9 -0
  235. package/server/service/financial-statement/financial-statement-history.ts +27 -18
  236. package/server/service/financial-statement/financial-statement-line-item.ts +82 -0
  237. package/server/service/financial-statement/financial-statement-mutation.ts +12 -9
  238. package/server/service/financial-statement/financial-statement-query.ts +2 -0
  239. package/server/service/financial-statement/financial-statement.ts +52 -36
  240. package/server/service/financial-statement/index.ts +2 -1
  241. package/server/service/fiscal-month/fiscal-month-mutation.ts +10 -2
  242. package/server/service/fiscal-month/fiscal-month-query.ts +3 -1
  243. package/server/service/fiscal-month/fiscal-month.ts +1 -1
  244. package/server/service/fiscal-quarter/fiscal-quarter-mutation.ts +14 -3
  245. package/server/service/fiscal-quarter/fiscal-quarter-query.ts +2 -0
  246. package/server/service/fiscal-quarter/fiscal-quarter.ts +1 -1
  247. package/server/service/fiscal-year/fiscal-year-mutation.ts +10 -2
  248. package/server/service/fiscal-year/fiscal-year-query.ts +2 -0
  249. package/server/service/fiscal-year/fiscal-year.ts +1 -1
  250. package/server/service/income-statement/income-statement-history.ts +30 -17
  251. package/server/service/income-statement/income-statement-line-item.ts +84 -0
  252. package/server/service/income-statement/income-statement-mutation.ts +12 -10
  253. package/server/service/income-statement/income-statement-query.ts +2 -0
  254. package/server/service/income-statement/income-statement.ts +54 -39
  255. package/server/service/income-statement/index.ts +2 -1
  256. package/server/service/index.ts +18 -0
  257. package/server/service/payment/event-subscriber.ts +17 -0
  258. package/server/service/payment/index.ts +9 -0
  259. package/server/service/payment/payment-history.ts +126 -0
  260. package/server/service/payment/payment-mutation.ts +139 -0
  261. package/server/service/payment/payment-query.ts +50 -0
  262. package/server/service/payment/payment-type.ts +64 -0
  263. package/server/service/payment/payment.ts +123 -0
  264. package/server/service/transaction/transaction-history.ts +24 -8
  265. package/server/service/transaction/transaction-mutation.ts +13 -10
  266. package/server/service/transaction/transaction-query.ts +2 -0
  267. package/server/service/transaction/transaction.ts +130 -34
  268. package/things-factory.config.js +0 -1
  269. package/translations/en.json +9 -1
  270. package/translations/ja.json +9 -1
  271. package/translations/ko.json +9 -1
  272. package/translations/ms.json +9 -1
  273. package/translations/zh.json +9 -1
  274. package/client/pages/main.ts +0 -24
  275. package/dist-client/pages/ledger/ledger-importer.js.map +0 -1
  276. package/dist-client/pages/ledger/ledger-list-page.js.map +0 -1
  277. package/dist-client/pages/main.d.ts +0 -1
  278. package/dist-client/pages/main.js +0 -27
  279. package/dist-client/pages/main.js.map +0 -1
@@ -1,47 +1,57 @@
1
- import '@operato/data-grist'
1
+ import '@material/web/icon/icon.js'
2
+ import '@material/web/button/elevated-button.js'
3
+ import '@operato/data-grist/ox-grist.js'
4
+ import '@operato/data-grist/ox-filters-form.js'
5
+ import '@operato/data-grist/ox-record-creator.js'
2
6
 
3
- import { CommonButtonStyles, CommonGristStyles, ScrollbarStyles } from '@operato/styles'
7
+ import { CommonButtonStyles, CommonHeaderStyles, CommonGristStyles, ScrollbarStyles } from '@operato/styles'
4
8
  import { PageView, store } from '@operato/shell'
5
9
  import { css, html } from 'lit'
6
10
  import { customElement, property, query } from 'lit/decorators.js'
7
11
  import { ScopedElementsMixin } from '@open-wc/scoped-elements'
8
- import { ColumnConfig, DataGrist, FetchOption, SortersControl } from '@operato/data-grist'
12
+ import { ColumnConfig, DataGrist, FetchOption } from '@operato/data-grist'
9
13
  import { client } from '@operato/graphql'
10
14
  import { i18next, localize } from '@operato/i18n'
11
15
  import { notify, openPopup } from '@operato/layout'
12
- import { OxPopup } from '@operato/popup'
16
+ import { OxPopup, OxPrompt } from '@operato/popup'
13
17
  import { isMobileDevice } from '@operato/utils'
14
18
 
15
19
  import { connect } from 'pwa-helpers/connect-mixin'
16
20
  import gql from 'graphql-tag'
17
21
 
18
- import { LedgerImporter } from './ledger-importer'
22
+ import { PaymentImporter } from './payment-importer'
23
+
24
+ @customElement('payment-list-page')
25
+ export class PaymentListPage extends connect(store)(localize(i18next)(ScopedElementsMixin(PageView))) {
19
26
 
20
- @customElement('ledger-list-page')
21
- export class LedgerListPage extends connect(store)(localize(i18next)(ScopedElementsMixin(PageView))) {
22
27
  static styles = [
23
28
  ScrollbarStyles,
24
29
  CommonGristStyles,
30
+ CommonHeaderStyles,
25
31
  css`
26
32
  :host {
27
33
  display: flex;
28
34
 
29
35
  width: 100%;
30
36
 
31
- --grid-record-emphasized-background-color: #8b0000;
32
- --grid-record-emphasized-color: #ff6b6b;
37
+ --grid-record-emphasized-background-color: #8B0000;
38
+ --grid-record-emphasized-color: #FF6B6B;
33
39
  }
34
40
 
35
41
  ox-grist {
36
42
  overflow-y: auto;
37
43
  flex: 1;
38
44
  }
45
+
46
+ ox-filters-form {
47
+ flex: 1;
48
+ }
39
49
  `
40
50
  ]
41
51
 
42
52
  static get scopedElements() {
43
53
  return {
44
- 'ledger-importer': LedgerImporter
54
+ 'payment-importer': PaymentImporter
45
55
  }
46
56
  }
47
57
 
@@ -49,37 +59,36 @@ export class LedgerListPage extends connect(store)(localize(i18next)(ScopedEleme
49
59
  @property({ type: String }) mode: 'CARD' | 'GRID' | 'LIST' = isMobileDevice() ? 'CARD' : 'GRID'
50
60
 
51
61
  @query('ox-grist') private grist!: DataGrist
52
- @query('#sorter-control') private sortersControl!: OxPopup
53
62
 
54
63
  get context() {
55
64
  return {
56
- title: i18next.t('title.ledger list'),
65
+ title: i18next.t('title.payment list'),
57
66
  search: {
58
67
  handler: (search: string) => {
59
68
  this.grist.searchText = search
60
69
  },
61
- value: this.grist?.searchText || ''
70
+ value: this.grist.searchText
62
71
  },
63
72
  filter: {
64
73
  handler: () => {
65
74
  this.grist.toggleHeadroom()
66
75
  }
67
76
  },
68
- help: 'accounting/ledger',
77
+ help: 'accounting/payment',
69
78
  actions: [
70
79
  {
71
80
  title: i18next.t('button.save'),
72
- action: this._updateLedger.bind(this),
81
+ action: this._updatePayment.bind(this),
73
82
  ...CommonButtonStyles.save
74
83
  },
75
84
  {
76
85
  title: i18next.t('button.delete'),
77
- action: this._deleteLedger.bind(this),
86
+ action: this._deletePayment.bind(this),
78
87
  ...CommonButtonStyles.delete
79
88
  }
80
89
  ],
81
90
  exportable: {
82
- name: i18next.t('title.ledger list'),
91
+ name: i18next.t('title.payment list'),
83
92
  data: this.exportHandler.bind(this)
84
93
  },
85
94
  importable: {
@@ -92,33 +101,27 @@ export class LedgerListPage extends connect(store)(localize(i18next)(ScopedEleme
92
101
  const mode = this.mode || (isMobileDevice() ? 'CARD' : 'GRID')
93
102
 
94
103
  return html`
95
- <ox-grist .mode=${mode} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)}>
96
- <div slot="headroom">
97
- <div id="filters">
98
- <ox-filters-form autofocus></ox-filters-form>
99
- </div>
104
+ <ox-grist
105
+ .mode=${mode}
106
+ .config=${this.gristConfig}
107
+ .fetchHandler=${this.fetchHandler.bind(this)}
108
+ >
109
+ <div slot="headroom" class="header">
110
+ <div class="filters">
111
+ <ox-filters-form autofocus without-search></ox-filters-form>
100
112
 
101
- <div id="sorters">
102
- Sort
103
- <mwc-icon
104
- @click=${e => {
105
- const target = e.currentTarget
106
- this.sortersControl.open({
107
- right: 0,
108
- top: target.offsetTop + target.offsetHeight
109
- })
110
- }}
111
- >expand_more</mwc-icon
112
- >
113
- <ox-popup id="sorter-control">
114
- <ox-sorters-control> </ox-sorters-control>
115
- </ox-popup>
116
- </div>
113
+ <div id="modes">
114
+ <md-icon @click=${() => (this.mode = 'GRID')} ?active=${mode == 'GRID'}>grid_on</md-icon>
115
+ <md-icon @click=${() => (this.mode = 'LIST')} ?active=${mode == 'LIST'}>format_list_bulleted</md-icon>
116
+ <md-icon @click=${() => (this.mode = 'CARD')} ?active=${mode == 'CARD'}>apps</md-icon>
117
+ </div>
118
+
119
+ <ox-record-creator id="add" .callback=${this.creationCallback.bind(this)}>
120
+ <button>
121
+ <md-icon>add</md-icon>
122
+ </button>
123
+ </ox-record-creator>
117
124
 
118
- <div id="modes">
119
- <mwc-icon @click=${() => (this.mode = 'GRID')} ?active=${mode == 'GRID'}>grid_on</mwc-icon>
120
- <mwc-icon @click=${() => (this.mode = 'LIST')} ?active=${mode == 'LIST'}>format_list_bulleted</mwc-icon>
121
- <mwc-icon @click=${() => (this.mode = 'CARD')} ?active=${mode == 'CARD'}>apps</mwc-icon>
122
125
  </div>
123
126
  </div>
124
127
  </ox-grist>
@@ -189,6 +192,7 @@ export class LedgerListPage extends connect(store)(localize(i18next)(ScopedEleme
189
192
  }
190
193
  ],
191
194
  rows: {
195
+ appendable: false,
192
196
  selectable: {
193
197
  multiple: true
194
198
  }
@@ -211,7 +215,7 @@ export class LedgerListPage extends connect(store)(localize(i18next)(ScopedEleme
211
215
  const response = await client.query({
212
216
  query: gql`
213
217
  query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {
214
- responses: ledgers(filters: $filters, pagination: $pagination, sortings: $sortings) {
218
+ responses: payments(filters: $filters, pagination: $pagination, sortings: $sortings) {
215
219
  items {
216
220
  id
217
221
  name
@@ -240,14 +244,21 @@ export class LedgerListPage extends connect(store)(localize(i18next)(ScopedEleme
240
244
  }
241
245
  }
242
246
 
243
- async _deleteLedger() {
244
- if (confirm(i18next.t('text.sure_to_x', { x: i18next.t('text.delete') }))) {
247
+ async _deletePayment() {
248
+ if (
249
+ await OxPrompt.open({
250
+ title: i18next.t('text.are_you_sure'),
251
+ text: i18next.t('text.sure_to_x', { x: i18next.t('text.delete') }),
252
+ confirmButton: { text: i18next.t('button.confirm') },
253
+ cancelButton: { text: i18next.t('button.cancel') }
254
+ })
255
+ ) {
245
256
  const ids = this.grist.selected.map(record => record.id)
246
257
  if (ids && ids.length > 0) {
247
258
  const response = await client.mutate({
248
259
  mutation: gql`
249
260
  mutation ($ids: [String!]!) {
250
- deleteLedgers(ids: $ids)
261
+ deletePayments(ids: $ids)
251
262
  }
252
263
  `,
253
264
  variables: {
@@ -265,7 +276,7 @@ export class LedgerListPage extends connect(store)(localize(i18next)(ScopedEleme
265
276
  }
266
277
  }
267
278
 
268
- async _updateLedger() {
279
+ async _updatePayment() {
269
280
  let patches = this.grist.dirtyRecords
270
281
  if (patches && patches.length) {
271
282
  patches = patches.map(patch => {
@@ -281,8 +292,8 @@ export class LedgerListPage extends connect(store)(localize(i18next)(ScopedEleme
281
292
 
282
293
  const response = await client.mutate({
283
294
  mutation: gql`
284
- mutation ($patches: [LedgerPatch!]!) {
285
- updateMultipleLedger(patches: $patches) {
295
+ mutation ($patches: [PaymentPatch!]!) {
296
+ updateMultiplePayment(patches: $patches) {
286
297
  name
287
298
  }
288
299
  }
@@ -298,14 +309,63 @@ export class LedgerListPage extends connect(store)(localize(i18next)(ScopedEleme
298
309
  }
299
310
  }
300
311
 
312
+ async creationCallback(payment) {
313
+ try {
314
+ const response = await client.query({
315
+ query: gql`
316
+ mutation ($payment: NewPayment!) {
317
+ createPayment(payment: $payment) {
318
+ id
319
+ }
320
+ }
321
+ `,
322
+ variables: {
323
+ payment
324
+ },
325
+ context: {
326
+ hasUpload: true
327
+ }
328
+ })
329
+
330
+ if (!response.errors) {
331
+ this.grist.fetch()
332
+ document.dispatchEvent(
333
+ new CustomEvent('notify', {
334
+ detail: {
335
+ message: i18next.t('text.data_created_successfully')
336
+ }
337
+ })
338
+ )
339
+ }
340
+
341
+ return true
342
+ } catch (ex) {
343
+ console.error(ex)
344
+ document.dispatchEvent(
345
+ new CustomEvent('notify', {
346
+ detail: {
347
+ type: 'error',
348
+ message: i18next.t('text.error')
349
+ }
350
+ })
351
+ )
352
+ return false
353
+ }
354
+ }
355
+
301
356
  async exportHandler() {
302
357
  const exportTargets = this.grist.selected.length ? this.grist.selected : this.grist.dirtyData.records
303
- const targetFieldSet = new Set(['id', 'name', 'description', 'active'])
358
+ const targetFieldSet = new Set([
359
+ 'id',
360
+ 'name',
361
+ 'description',
362
+ 'active'
363
+ ])
304
364
 
305
- return exportTargets.map(ledger => {
365
+ return exportTargets.map(payment => {
306
366
  let tempObj = {}
307
367
  for (const field of targetFieldSet) {
308
- tempObj[field] = ledger[field]
368
+ tempObj[field] = payment[field]
309
369
  }
310
370
 
311
371
  return tempObj
@@ -315,23 +375,24 @@ export class LedgerListPage extends connect(store)(localize(i18next)(ScopedEleme
315
375
  async importHandler(records) {
316
376
  const popup = openPopup(
317
377
  html`
318
- <ledger-importer
319
- .ledgers=${records}
378
+ <payment-importer
379
+ .payments=${records}
320
380
  @imported=${() => {
321
381
  history.back()
322
382
  this.grist.fetch()
323
383
  }}
324
- ></ledger-importer>
384
+ ></payment-importer>
325
385
  `,
326
386
  {
327
387
  backdrop: true,
328
388
  size: 'large',
329
- title: i18next.t('title.import ledger')
389
+ title: i18next.t('title.import payment')
330
390
  }
331
391
  )
332
-
392
+
333
393
  popup.onclosed = () => {
334
394
  this.grist.fetch()
335
395
  }
336
396
  }
337
397
  }
398
+
package/client/route.ts CHANGED
@@ -1,9 +1,5 @@
1
1
  export default function route(page: string) {
2
2
  switch (page) {
3
- case 'ledger-list':
4
- import('./pages/ledger/ledger-list-page')
5
- return page
6
-
7
3
  case 'account-list':
8
4
  import('./pages/account/account-list-page')
9
5
  return page
@@ -0,0 +1,23 @@
1
+ import { Domain, User } from '@operato/shell'
2
+
3
+ export class AccountingCategory {
4
+ readonly id?: string
5
+
6
+ domain?: Domain
7
+
8
+ code?: string
9
+ name?: string
10
+ description?: string
11
+
12
+ parent?: AccountingCategory
13
+ children?: AccountingCategory[]
14
+
15
+ active?: boolean
16
+
17
+ createdAt?: Date
18
+ updatedAt?: Date
19
+ deletedAt?: Date
20
+
21
+ creator?: User
22
+ updater?: User
23
+ }
@@ -0,0 +1 @@
1
+ export * from './accounting-category'
@@ -1,2 +1,8 @@
1
- export default function bootstrap() { }
1
+ import { registerEditor, registerRenderer } from '@operato/data-grist';
2
+ import { GristRendererAccountingCategoryObject } from './grist-editors/grist-renderer-accounting-category-object';
3
+ import { GristEditorAccountingCategoryObject } from './grist-editors/grist-editor-accounting-category-object';
4
+ export default function bootstrap() {
5
+ registerEditor('accounting-category-object', GristEditorAccountingCategoryObject);
6
+ registerRenderer('accounting-category-object', GristRendererAccountingCategoryObject);
7
+ }
2
8
  //# sourceMappingURL=bootstrap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../client/bootstrap.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,SAAS,KAAI,CAAC","sourcesContent":["export default function bootstrap() {}\n"]}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../client/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEtE,OAAO,EAAE,qCAAqC,EAAE,MAAM,2DAA2D,CAAA;AACjH,OAAO,EAAE,mCAAmC,EAAE,MAAM,yDAAyD,CAAA;AAE7G,MAAM,CAAC,OAAO,UAAU,SAAS;IAC/B,cAAc,CAAC,4BAA4B,EAAE,mCAAmC,CAAC,CAAA;IAEjF,gBAAgB,CAAC,4BAA4B,EAAE,qCAAqC,CAAC,CAAA;AACvF,CAAC","sourcesContent":["import { registerEditor, registerRenderer } from '@operato/data-grist'\n\nimport { GristRendererAccountingCategoryObject } from './grist-editors/grist-renderer-accounting-category-object'\nimport { GristEditorAccountingCategoryObject } from './grist-editors/grist-editor-accounting-category-object'\n\nexport default function bootstrap() {\n registerEditor('accounting-category-object', GristEditorAccountingCategoryObject)\n\n registerRenderer('accounting-category-object', GristRendererAccountingCategoryObject)\n}\n"]}
@@ -0,0 +1,16 @@
1
+ import '@material/web/icon/icon.js';
2
+ import '@operato/data-tree';
3
+ import { LitElement } from 'lit';
4
+ import { AccountingCategory } from '../types/accounting-category';
5
+ export declare class AccountingCategorySelector extends LitElement {
6
+ static styles: import("lit").CSSResult[];
7
+ confirmCallback?: (selected?: any) => void;
8
+ value?: AccountingCategory;
9
+ root?: AccountingCategory;
10
+ render(): import("lit-html").TemplateResult<1>;
11
+ onSelect(e: CustomEvent, confirm?: boolean): void;
12
+ onEmpty(): void;
13
+ onCancel(): void;
14
+ onConfirm(): void;
15
+ firstUpdated(): Promise<void>;
16
+ }
@@ -0,0 +1,134 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import '@material/web/icon/icon.js';
3
+ import '@operato/data-tree';
4
+ import gql from 'graphql-tag';
5
+ import { css, html, LitElement } from 'lit';
6
+ import { customElement, property, state } from 'lit/decorators.js';
7
+ import { client } from '@operato/graphql';
8
+ import { i18next } from '@operato/i18n';
9
+ import { closePopup } from '@operato/popup';
10
+ import { CommonHeaderStyles } from '@operato/styles';
11
+ import { AccountingCategory } from '../types/accounting-category';
12
+ const accountingCategoryFragment = gql `
13
+ fragment SubAccountingCategory on AccountingCategory {
14
+ id
15
+ code
16
+ name
17
+ description
18
+ active
19
+ }
20
+ `;
21
+ let AccountingCategorySelector = class AccountingCategorySelector extends LitElement {
22
+ render() {
23
+ return html `
24
+ <ox-tree-vertical
25
+ .data=${this.root}
26
+ .selected=${this.value}
27
+ @select=${e => this.onSelect(e, false)}
28
+ @select-confirm=${e => this.onSelect(e, true)}
29
+ id-property="code"
30
+ label-property="name"
31
+ description-property="description"
32
+ ></ox-tree-vertical>
33
+
34
+ <div class="footer" style="margin-left:unset;">
35
+ <button @click=${this.onEmpty.bind(this)}>
36
+ <md-icon>check_box_outline_blank</md-icon>${i18next.t('button.empty')}
37
+ </button>
38
+ <div filler></div>
39
+ <button @click=${this.onCancel.bind(this)}><md-icon>cancel</md-icon>${i18next.t('button.cancel')}</button>
40
+ <button @click=${this.onConfirm.bind(this)} done><md-icon>done</md-icon>${i18next.t('button.confirm')}</button>
41
+ </div>
42
+ `;
43
+ }
44
+ onSelect(e, confirm) {
45
+ this.value = e.detail;
46
+ if (confirm) {
47
+ this.onConfirm();
48
+ }
49
+ }
50
+ onEmpty() {
51
+ this.confirmCallback && this.confirmCallback(null);
52
+ closePopup(this);
53
+ }
54
+ onCancel() {
55
+ closePopup(this);
56
+ }
57
+ onConfirm() {
58
+ this.confirmCallback && this.confirmCallback(this.value);
59
+ closePopup(this);
60
+ }
61
+ async firstUpdated() {
62
+ const response = await client.query({
63
+ query: gql `
64
+ query {
65
+ responses: accountingCategoryRoots {
66
+ total
67
+ items {
68
+ ...SubAccountingCategory
69
+ children {
70
+ ...SubAccountingCategory
71
+ children {
72
+ ...SubAccountingCategory
73
+ children {
74
+ ...SubAccountingCategory
75
+ children {
76
+ ...SubAccountingCategory
77
+ children {
78
+ ...SubAccountingCategory
79
+ children {
80
+ ...SubAccountingCategory
81
+ }
82
+ }
83
+ }
84
+ }
85
+ }
86
+ }
87
+ }
88
+ }
89
+ }
90
+
91
+ ${accountingCategoryFragment}
92
+ `
93
+ });
94
+ const { items: records, total } = response.data.responses;
95
+ this.root = records[0];
96
+ }
97
+ };
98
+ AccountingCategorySelector.styles = [
99
+ CommonHeaderStyles,
100
+ css `
101
+ :host {
102
+ display: flex;
103
+ flex-direction: column;
104
+
105
+ background-color: var(--md-sys-color-surface);
106
+
107
+ width: var(--overlay-center-normal-width, 50%);
108
+ height: var(--overlay-center-normal-height, 50%);
109
+
110
+ overflow: auto;
111
+ }
112
+
113
+ ox-tree-vertical {
114
+ flex: 1;
115
+ }
116
+ `
117
+ ];
118
+ __decorate([
119
+ property({ type: Object }),
120
+ __metadata("design:type", Function)
121
+ ], AccountingCategorySelector.prototype, "confirmCallback", void 0);
122
+ __decorate([
123
+ property({ type: Object }),
124
+ __metadata("design:type", AccountingCategory)
125
+ ], AccountingCategorySelector.prototype, "value", void 0);
126
+ __decorate([
127
+ state(),
128
+ __metadata("design:type", AccountingCategory)
129
+ ], AccountingCategorySelector.prototype, "root", void 0);
130
+ AccountingCategorySelector = __decorate([
131
+ customElement('accounting-category-selector')
132
+ ], AccountingCategorySelector);
133
+ export { AccountingCategorySelector };
134
+ //# sourceMappingURL=accounting-category-selector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accounting-category-selector.js","sourceRoot":"","sources":["../../client/components/accounting-category-selector.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@operato/data-tree'\n\nimport gql from 'graphql-tag'\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\n\nimport { client } from '@operato/graphql'\nimport { i18next } from '@operato/i18n'\nimport { closePopup } from '@operato/popup'\nimport { CommonHeaderStyles } from '@operato/styles'\n\nimport { AccountingCategory } from '../types/accounting-category'\n\nconst accountingCategoryFragment = gql`\n fragment SubAccountingCategory on AccountingCategory {\n id\n code\n name\n description\n active\n }\n`\n\n@customElement('accounting-category-selector')\nexport class AccountingCategorySelector extends LitElement {\n static styles = [\n CommonHeaderStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n\n background-color: var(--md-sys-color-surface);\n\n width: var(--overlay-center-normal-width, 50%);\n height: var(--overlay-center-normal-height, 50%);\n\n overflow: auto;\n }\n\n ox-tree-vertical {\n flex: 1;\n }\n `\n ]\n\n @property({ type: Object }) confirmCallback?: (selected?: any) => void\n @property({ type: Object }) value?: AccountingCategory\n\n @state() root?: AccountingCategory\n\n render() {\n return html`\n <ox-tree-vertical\n .data=${this.root}\n .selected=${this.value}\n @select=${e => this.onSelect(e, false)}\n @select-confirm=${e => this.onSelect(e, true)}\n id-property=\"code\"\n label-property=\"name\"\n description-property=\"description\"\n ></ox-tree-vertical>\n\n <div class=\"footer\" style=\"margin-left:unset;\">\n <button @click=${this.onEmpty.bind(this)}>\n <md-icon>check_box_outline_blank</md-icon>${i18next.t('button.empty')}\n </button>\n <div filler></div>\n <button @click=${this.onCancel.bind(this)}><md-icon>cancel</md-icon>${i18next.t('button.cancel')}</button>\n <button @click=${this.onConfirm.bind(this)} done><md-icon>done</md-icon>${i18next.t('button.confirm')}</button>\n </div>\n `\n }\n\n onSelect(e: CustomEvent, confirm?: boolean) {\n this.value = e.detail as AccountingCategory\n\n if (confirm) {\n this.onConfirm()\n }\n }\n\n onEmpty() {\n this.confirmCallback && this.confirmCallback(null)\n closePopup(this)\n }\n\n onCancel() {\n closePopup(this)\n }\n\n onConfirm() {\n this.confirmCallback && this.confirmCallback(this.value)\n closePopup(this)\n }\n\n async firstUpdated() {\n const response = await client.query({\n query: gql`\n query {\n responses: accountingCategoryRoots {\n total\n items {\n ...SubAccountingCategory\n children {\n ...SubAccountingCategory\n children {\n ...SubAccountingCategory\n children {\n ...SubAccountingCategory\n children {\n ...SubAccountingCategory\n children {\n ...SubAccountingCategory\n children {\n ...SubAccountingCategory\n }\n }\n }\n }\n }\n }\n }\n }\n }\n\n ${accountingCategoryFragment}\n `\n })\n\n const { items: records, total } = response.data.responses\n\n this.root = records[0]\n }\n}\n"]}
@@ -0,0 +1,14 @@
1
+ import '@operato/property-editor';
2
+ import '@operato/property-editor/ox-properties-dynamic-view.js';
3
+ import { LitElement, PropertyValueMap } from 'lit';
4
+ declare const AccountingCategoryView_base: (new (...args: any[]) => LitElement) & typeof LitElement & import("@open-wc/dedupe-mixin").Constructor<import("@open-wc/scoped-elements/types/src/types").ScopedElementsHost>;
5
+ export declare class AccountingCategoryView extends AccountingCategoryView_base {
6
+ static styles: import("lit").CSSResult[];
7
+ accountingCategory: any;
8
+ dynamicView: any;
9
+ private properties;
10
+ protected firstUpdated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void;
11
+ render(): import("lit-html").TemplateResult<1>;
12
+ onPropertyChange(e: CustomEvent): void;
13
+ }
14
+ export {};
@@ -0,0 +1,81 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import '@operato/property-editor';
3
+ import '@operato/property-editor/ox-properties-dynamic-view.js';
4
+ import { LitElement, css, html } from 'lit';
5
+ import { customElement, property, query, state } from 'lit/decorators.js';
6
+ import { ScopedElementsMixin } from '@open-wc/scoped-elements';
7
+ import { i18next, localize } from '@operato/i18n';
8
+ import { ScrollbarStyles } from '@operato/styles';
9
+ let AccountingCategoryView = class AccountingCategoryView extends localize(i18next)(ScopedElementsMixin(LitElement)) {
10
+ firstUpdated(_changedProperties) {
11
+ this.properties = [
12
+ {
13
+ type: 'string',
14
+ name: 'code',
15
+ label: 'code'
16
+ },
17
+ {
18
+ type: 'string',
19
+ name: 'name',
20
+ label: 'name'
21
+ },
22
+ {
23
+ type: 'string',
24
+ name: 'description',
25
+ label: 'description'
26
+ },
27
+ {
28
+ type: 'boolean',
29
+ name: 'active',
30
+ label: 'active'
31
+ }
32
+ ];
33
+ }
34
+ render() {
35
+ return html `
36
+ <ox-properties-dynamic-view
37
+ .props=${this.properties}
38
+ .value=${this.accountingCategory}
39
+ @property-change=${this.onPropertyChange.bind(this)}
40
+ ></ox-properties-dynamic-view>
41
+ `;
42
+ }
43
+ onPropertyChange(e) {
44
+ this.accountingCategory = e.detail;
45
+ }
46
+ };
47
+ AccountingCategoryView.styles = [
48
+ ScrollbarStyles,
49
+ css `
50
+ :host {
51
+ display: flex;
52
+ flex-direction: column;
53
+
54
+ overflow: auto;
55
+ }
56
+
57
+ ox-properties-dynamic-view {
58
+ flex: 1;
59
+
60
+ display: flex;
61
+ flex-direction: column;
62
+ }
63
+ `
64
+ ];
65
+ __decorate([
66
+ property({ type: Object }),
67
+ __metadata("design:type", Object)
68
+ ], AccountingCategoryView.prototype, "accountingCategory", void 0);
69
+ __decorate([
70
+ query('ox-properties-dynamic-view'),
71
+ __metadata("design:type", Object)
72
+ ], AccountingCategoryView.prototype, "dynamicView", void 0);
73
+ __decorate([
74
+ state(),
75
+ __metadata("design:type", Object)
76
+ ], AccountingCategoryView.prototype, "properties", void 0);
77
+ AccountingCategoryView = __decorate([
78
+ customElement('accounting-category-view')
79
+ ], AccountingCategoryView);
80
+ export { AccountingCategoryView };
81
+ //# sourceMappingURL=accounting-category-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accounting-category-view.js","sourceRoot":"","sources":["../../client/components/accounting-category-view.ts"],"names":[],"mappings":";AAAA,OAAO,0BAA0B,CAAA;AACjC,OAAO,wDAAwD,CAAA;AAE/D,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAoB,MAAM,KAAK,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAG1C,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,QAAQ,CAAC,OAAO,CAAC,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;IA0BlF,YAAY,CAAC,kBAAqE;QAC1F,IAAI,CAAC,UAAU,GAAG;YAChB;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;aACd;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;aACd;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,aAAa;aACrB;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;aAChB;SACF,CAAA;IACH,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;;iBAEE,IAAI,CAAC,UAAU;iBACf,IAAI,CAAC,kBAAkB;2BACb,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;;KAEtD,CAAA;IACH,CAAC;IAED,gBAAgB,CAAC,CAAc;QAC7B,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAA;IACpC,CAAC;;AA9DM,6BAAM,GAAG;IACd,eAAe;IACf,GAAG,CAAA;;;;;;;;;;;;;;KAcF;CACF,AAjBY,CAiBZ;AAE2B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;kEAAwB;AAEd;IAApC,KAAK,CAAC,4BAA4B,CAAC;;2DAAkB;AAErC;IAAhB,KAAK,EAAE;;0DAAwB;AAxBrB,sBAAsB;IADlC,aAAa,CAAC,0BAA0B,CAAC;GAC7B,sBAAsB,CAgElC","sourcesContent":["import '@operato/property-editor'\nimport '@operato/property-editor/ox-properties-dynamic-view.js'\n\nimport { LitElement, css, html, PropertyValueMap } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements'\nimport { i18next, localize } from '@operato/i18n'\nimport { ScrollbarStyles } from '@operato/styles'\n\n@customElement('accounting-category-view')\nexport class AccountingCategoryView extends localize(i18next)(ScopedElementsMixin(LitElement)) {\n static styles = [\n ScrollbarStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n\n overflow: auto;\n }\n\n ox-properties-dynamic-view {\n flex: 1;\n\n display: flex;\n flex-direction: column;\n }\n `\n ]\n\n @property({ type: Object }) accountingCategory: any\n\n @query('ox-properties-dynamic-view') dynamicView!: any\n\n @state() private properties: any\n\n protected firstUpdated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {\n this.properties = [\n {\n type: 'string',\n name: 'code',\n label: 'code'\n },\n {\n type: 'string',\n name: 'name',\n label: 'name'\n },\n {\n type: 'string',\n name: 'description',\n label: 'description'\n },\n {\n type: 'boolean',\n name: 'active',\n label: 'active'\n }\n ]\n }\n\n render() {\n return html`\n <ox-properties-dynamic-view\n .props=${this.properties}\n .value=${this.accountingCategory}\n @property-change=${this.onPropertyChange.bind(this)}\n ></ox-properties-dynamic-view>\n `\n }\n\n onPropertyChange(e: CustomEvent) {\n this.accountingCategory = e.detail\n }\n}\n"]}
@@ -0,0 +1,11 @@
1
+ import '../components/accounting-category-selector.js';
2
+ import { TemplateResult } from 'lit';
3
+ import { OxGristEditor } from '@operato/data-grist';
4
+ export declare class GristEditorAccountingCategoryObject extends OxGristEditor {
5
+ private popup?;
6
+ private template?;
7
+ get editorTemplate(): TemplateResult<1>;
8
+ _onclick(e: Event): void;
9
+ _onkeydown(e: KeyboardEvent): void;
10
+ openSelector(): void;
11
+ }