@things-factory/accounting 8.0.0-beta.0 → 8.0.0-beta.2

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 (136) hide show
  1. package/package.json +5 -5
  2. package/client/activities/activity-book-edit.ts +0 -88
  3. package/client/activities/activity-book-view.ts +0 -88
  4. package/client/activities/activity-expense-edit.ts +0 -88
  5. package/client/activities/activity-expense-view.ts +0 -88
  6. package/client/bootstrap.ts +0 -10
  7. package/client/components/accounting-category-selector.ts +0 -136
  8. package/client/components/accounting-category-view.ts +0 -75
  9. package/client/grist-editors/grist-editor-accounting-category-object.ts +0 -83
  10. package/client/grist-editors/grist-renderer-accounting-category-object.ts +0 -13
  11. package/client/index.ts +0 -0
  12. package/client/pages/account/account-importer.ts +0 -97
  13. package/client/pages/account/account-list-page.ts +0 -364
  14. package/client/pages/accounting-category/accounting-category-importer.ts +0 -97
  15. package/client/pages/accounting-category/accounting-category-list-page.ts +0 -368
  16. package/client/pages/accounting-category/accounting-category-tree-page.ts +0 -338
  17. package/client/pages/accounting-document/accounting-document-importer.ts +0 -90
  18. package/client/pages/accounting-document/accounting-document-list-page.ts +0 -398
  19. package/client/pages/bank/bank-importer.ts +0 -90
  20. package/client/pages/bank/bank-list-page.ts +0 -398
  21. package/client/pages/bank-account/bank-account-importer.ts +0 -90
  22. package/client/pages/bank-account/bank-account-list-page.ts +0 -398
  23. package/client/pages/financial-institution/financial-institution-importer.ts +0 -90
  24. package/client/pages/financial-institution/financial-institution-list-page.ts +0 -398
  25. package/client/pages/financial-statement/financial-statement-importer.ts +0 -97
  26. package/client/pages/financial-statement/financial-statement-list-page.ts +0 -338
  27. package/client/pages/fiscal-month/fiscal-month-importer.ts +0 -90
  28. package/client/pages/fiscal-month/fiscal-month-list-page.ts +0 -398
  29. package/client/pages/fiscal-quarter/fiscal-quarter-importer.ts +0 -90
  30. package/client/pages/fiscal-quarter/fiscal-quarter-list-page.ts +0 -398
  31. package/client/pages/fiscal-year/fiscal-year-importer.ts +0 -90
  32. package/client/pages/fiscal-year/fiscal-year-list-page.ts +0 -398
  33. package/client/pages/income-statement/income-statement-importer.ts +0 -97
  34. package/client/pages/income-statement/income-statement-list-page.ts +0 -338
  35. package/client/pages/payment/payment-importer.ts +0 -90
  36. package/client/pages/payment/payment-list-page.ts +0 -398
  37. package/client/pages/transaction/transaction-importer.ts +0 -97
  38. package/client/pages/transaction/transaction-list-page.ts +0 -338
  39. package/client/route.ts +0 -35
  40. package/client/tsconfig.json +0 -13
  41. package/client/types/accounting-category.ts +0 -23
  42. package/client/types/index.ts +0 -1
  43. package/server/activities/activity-book.ts +0 -172
  44. package/server/activities/activity-expense.ts +0 -149
  45. package/server/activities/index.ts +0 -18
  46. package/server/controllers/index.ts +0 -1
  47. package/server/controllers/summary-statements.ts +0 -166
  48. package/server/index.ts +0 -6
  49. package/server/middlewares/index.ts +0 -3
  50. package/server/migrations/1725200507196-seed-fiscal-entities.ts +0 -106
  51. package/server/migrations/1725201467183-seed-accounts.ts +0 -339
  52. package/server/migrations/1725201567284-seed-country-codes.ts +0 -261
  53. package/server/migrations/1725201667385-seed-financial-institutions.ts +0 -348
  54. package/server/migrations/index.ts +0 -9
  55. package/server/routes.ts +0 -26
  56. package/server/service/account/account-history.ts +0 -117
  57. package/server/service/account/account-mutation.ts +0 -140
  58. package/server/service/account/account-query.ts +0 -51
  59. package/server/service/account/account-type.ts +0 -44
  60. package/server/service/account/account.ts +0 -97
  61. package/server/service/account/event-subscriber.ts +0 -17
  62. package/server/service/account/index.ts +0 -9
  63. package/server/service/accounting-category/accounting-category-history.ts +0 -129
  64. package/server/service/accounting-category/accounting-category-mutation.ts +0 -148
  65. package/server/service/accounting-category/accounting-category-query.ts +0 -74
  66. package/server/service/accounting-category/accounting-category-type.ts +0 -48
  67. package/server/service/accounting-category/accounting-category.ts +0 -100
  68. package/server/service/accounting-category/event-subscriber.ts +0 -20
  69. package/server/service/accounting-category/index.ts +0 -9
  70. package/server/service/accounting-document/accounting-document-history.ts +0 -123
  71. package/server/service/accounting-document/accounting-document-mutation.ts +0 -137
  72. package/server/service/accounting-document/accounting-document-query.ts +0 -48
  73. package/server/service/accounting-document/accounting-document-type.ts +0 -52
  74. package/server/service/accounting-document/accounting-document.ts +0 -93
  75. package/server/service/accounting-document/event-subscriber.ts +0 -17
  76. package/server/service/accounting-document/index.ts +0 -9
  77. package/server/service/bank-account/bank-account-history.ts +0 -149
  78. package/server/service/bank-account/bank-account-mutation.ts +0 -137
  79. package/server/service/bank-account/bank-account-query.ts +0 -48
  80. package/server/service/bank-account/bank-account-type.ts +0 -112
  81. package/server/service/bank-account/bank-account.ts +0 -142
  82. package/server/service/bank-account/event-subscriber.ts +0 -17
  83. package/server/service/bank-account/index.ts +0 -9
  84. package/server/service/common-type.ts +0 -12
  85. package/server/service/financial-institution/financial-institution-mutation.ts +0 -198
  86. package/server/service/financial-institution/financial-institution-query.ts +0 -62
  87. package/server/service/financial-institution/financial-institution-type.ts +0 -91
  88. package/server/service/financial-institution/financial-institution.ts +0 -122
  89. package/server/service/financial-institution/index.ts +0 -7
  90. package/server/service/financial-statement/event-subscriber.ts +0 -17
  91. package/server/service/financial-statement/financial-statement-history.ts +0 -129
  92. package/server/service/financial-statement/financial-statement-line-item.ts +0 -82
  93. package/server/service/financial-statement/financial-statement-mutation.ts +0 -148
  94. package/server/service/financial-statement/financial-statement-query.ts +0 -53
  95. package/server/service/financial-statement/financial-statement-type.ts +0 -51
  96. package/server/service/financial-statement/financial-statement.ts +0 -116
  97. package/server/service/financial-statement/index.ts +0 -10
  98. package/server/service/fiscal-month/fiscal-month-mutation.ts +0 -145
  99. package/server/service/fiscal-month/fiscal-month-query.ts +0 -58
  100. package/server/service/fiscal-month/fiscal-month-type.ts +0 -66
  101. package/server/service/fiscal-month/fiscal-month.ts +0 -84
  102. package/server/service/fiscal-month/index.ts +0 -7
  103. package/server/service/fiscal-quarter/fiscal-quarter-mutation.ts +0 -148
  104. package/server/service/fiscal-quarter/fiscal-quarter-query.ts +0 -60
  105. package/server/service/fiscal-quarter/fiscal-quarter-type.ts +0 -60
  106. package/server/service/fiscal-quarter/fiscal-quarter.ts +0 -80
  107. package/server/service/fiscal-quarter/index.ts +0 -7
  108. package/server/service/fiscal-year/fiscal-year-mutation.ts +0 -145
  109. package/server/service/fiscal-year/fiscal-year-query.ts +0 -53
  110. package/server/service/fiscal-year/fiscal-year-type.ts +0 -54
  111. package/server/service/fiscal-year/fiscal-year.ts +0 -76
  112. package/server/service/fiscal-year/index.ts +0 -7
  113. package/server/service/income-statement/event-subscriber.ts +0 -17
  114. package/server/service/income-statement/income-statement-history.ts +0 -133
  115. package/server/service/income-statement/income-statement-line-item.ts +0 -84
  116. package/server/service/income-statement/income-statement-mutation.ts +0 -147
  117. package/server/service/income-statement/income-statement-query.ts +0 -50
  118. package/server/service/income-statement/income-statement-type.ts +0 -51
  119. package/server/service/income-statement/income-statement.ts +0 -120
  120. package/server/service/income-statement/index.ts +0 -10
  121. package/server/service/index.ts +0 -108
  122. package/server/service/payment/event-subscriber.ts +0 -17
  123. package/server/service/payment/index.ts +0 -9
  124. package/server/service/payment/payment-history.ts +0 -155
  125. package/server/service/payment/payment-mutation.ts +0 -139
  126. package/server/service/payment/payment-query.ts +0 -50
  127. package/server/service/payment/payment-type.ts +0 -82
  128. package/server/service/payment/payment.ts +0 -154
  129. package/server/service/transaction/event-subscriber.ts +0 -17
  130. package/server/service/transaction/index.ts +0 -9
  131. package/server/service/transaction/transaction-history.ts +0 -161
  132. package/server/service/transaction/transaction-mutation.ts +0 -146
  133. package/server/service/transaction/transaction-query.ts +0 -50
  134. package/server/service/transaction/transaction-type.ts +0 -48
  135. package/server/service/transaction/transaction.ts +0 -230
  136. package/server/tsconfig.json +0 -10
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/accounting",
3
- "version": "8.0.0-beta.0",
3
+ "version": "8.0.0-beta.2",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "dist-client/index.js",
6
6
  "things-factory": true,
@@ -30,9 +30,9 @@
30
30
  "@material/web": "^2.0.0",
31
31
  "@operato/graphql": "^8.0.0-beta",
32
32
  "@operato/shell": "^8.0.0-beta",
33
- "@things-factory/auth-base": "^8.0.0-beta.0",
34
- "@things-factory/shell": "^8.0.0-beta.0",
35
- "@things-factory/worklist": "^8.0.0-beta.0"
33
+ "@things-factory/auth-base": "^8.0.0-beta.2",
34
+ "@things-factory/shell": "^8.0.0-beta.2",
35
+ "@things-factory/worklist": "^8.0.0-beta.2"
36
36
  },
37
- "gitHead": "add6fb8224b2cb19cbea47bed6a5ecb0424c9a28"
37
+ "gitHead": "f03431a09435511b2595515658f9cb8f78ba4ebb"
38
38
  }
@@ -1,88 +0,0 @@
1
- /*
2
- Add the following line to clinet/bootstrap.ts so that activity editor can be registered when loading a module.
3
- --
4
- import './activities/book-edit.js' // refered by the activity template (activity-book) on server
5
- */
6
-
7
- import '../components/book-edit.js'
8
-
9
- import gql from 'graphql-tag'
10
- import { css, html, LitElement } from 'lit'
11
- import { customElement, property, query, state } from 'lit/decorators.js'
12
-
13
- import { client } from '@operato/graphql'
14
- import { i18next, localize } from '@operato/i18n'
15
- import { ScrollbarStyles } from '@operato/styles'
16
-
17
- // import { BookView } from '../components/book-edit.js'
18
-
19
- @customElement('activity-book-edit')
20
- export class ActivityBookView extends localize(i18next)(LitElement) {
21
- static styles = [
22
- ScrollbarStyles,
23
- css`
24
- :host {
25
- display: flex;
26
- flex-direction: column;
27
-
28
- background-color: #fff;
29
- }
30
-
31
- book-edit {
32
- flex: 1;
33
- padding: 10px;
34
- overflow: auto;
35
- }
36
- `
37
- ]
38
-
39
- @property({ type: Object }) input?: any
40
- @property({ type: Object }) output?: any
41
-
42
- @state() book?: any //Book
43
-
44
- // @query('book-edit') bookView!: BookView
45
-
46
- render() {
47
- return html` <book-edit .book=${this.book} .value=${this.output} @change=${this.onChange}></book-edit> `
48
- }
49
-
50
- async onChange() {
51
- // this.output = this.bookView.value
52
-
53
- this.dispatchEvent(
54
- new CustomEvent('change', {
55
- detail: this.output
56
- })
57
- )
58
- }
59
-
60
- updated(changes) {
61
- if (changes.has('input')) {
62
- this.fetchBook()
63
- }
64
- }
65
-
66
- async fetchBook() {
67
- const id = this.input.bookId
68
-
69
- if (id) {
70
- const response = await client.query({
71
- query: gql`
72
- query ($id: String!) {
73
- book(id: $id) {
74
- id
75
- name
76
- description
77
- }
78
- }
79
- `,
80
- variables: {
81
- id
82
- }
83
- })
84
-
85
- this.book = response.data.book
86
- }
87
- }
88
- }
@@ -1,88 +0,0 @@
1
- /*
2
- Add the following line to clinet/bootstrap.ts so that activity view can be registered when loading a module.
3
- --
4
- import './activities/book-view.js' // refered by the activity template (activity-data-collect) on server
5
- */
6
-
7
- import '../components/book-view.js'
8
-
9
- import gql from 'graphql-tag'
10
- import { css, html, LitElement } from 'lit'
11
- import { customElement, property, query, state } from 'lit/decorators.js'
12
-
13
- import { client } from '@operato/graphql'
14
- import { i18next, localize } from '@operato/i18n'
15
- import { ScrollbarStyles } from '@operato/styles'
16
-
17
- // import { BookView } from '../components/book-view.js'
18
-
19
- @customElement('activity-book-view')
20
- export class ActivityBookView extends localize(i18next)(LitElement) {
21
- static styles = [
22
- ScrollbarStyles,
23
- css`
24
- :host {
25
- display: flex;
26
- flex-direction: column;
27
-
28
- background-color: #fff;
29
- }
30
-
31
- book-view {
32
- flex: 1;
33
- padding: 10px;
34
- overflow: auto;
35
- }
36
- `
37
- ]
38
-
39
- @property({ type: Object }) input?: any
40
- @property({ type: Object }) output?: any
41
-
42
- @state() book?: any //Book
43
-
44
- // @query('book-view') bookView!: BookView
45
-
46
- render() {
47
- return html` <book-view .book=${this.book} .value=${this.output} @change=${this.onChange}></book-view> `
48
- }
49
-
50
- async onChange() {
51
- // this.output = this.bookView.value
52
-
53
- this.dispatchEvent(
54
- new CustomEvent('change', {
55
- detail: this.output
56
- })
57
- )
58
- }
59
-
60
- updated(changes) {
61
- if (changes.has('input')) {
62
- this.fetchBook()
63
- }
64
- }
65
-
66
- async fetchBook() {
67
- const id = this.input.bookId
68
-
69
- if (id) {
70
- const response = await client.query({
71
- query: gql`
72
- query ($id: String!) {
73
- book(id: $id) {
74
- id
75
- name
76
- description
77
- }
78
- }
79
- `,
80
- variables: {
81
- id
82
- }
83
- })
84
-
85
- this.book = response.data.book
86
- }
87
- }
88
- }
@@ -1,88 +0,0 @@
1
- /*
2
- Add the following line to clinet/bootstrap.ts so that activity editor can be registered when loading a module.
3
- --
4
- import './activities/expense-edit.js' // refered by the activity template (activity-expense) on server
5
- */
6
-
7
- import '../components/expense-edit.js'
8
-
9
- import gql from 'graphql-tag'
10
- import { css, html, LitElement } from 'lit'
11
- import { customElement, property, query, state } from 'lit/decorators.js'
12
-
13
- import { client } from '@operato/graphql'
14
- import { i18next, localize } from '@operato/i18n'
15
- import { ScrollbarStyles } from '@operato/styles'
16
-
17
- // import { ExpenseView } from '../components/expense-edit.js'
18
-
19
- @customElement('activity-expense-edit')
20
- export class ActivityExpenseView extends localize(i18next)(LitElement) {
21
- static styles = [
22
- ScrollbarStyles,
23
- css`
24
- :host {
25
- display: flex;
26
- flex-direction: column;
27
-
28
- background-color: #fff;
29
- }
30
-
31
- expense-edit {
32
- flex: 1;
33
- padding: 10px;
34
- overflow: auto;
35
- }
36
- `
37
- ]
38
-
39
- @property({ type: Object }) input?: any
40
- @property({ type: Object }) output?: any
41
-
42
- @state() expense?: any //Expense
43
-
44
- // @query('expense-edit') expenseView!: ExpenseView
45
-
46
- render() {
47
- return html` <expense-edit .expense=${this.expense} .value=${this.output} @change=${this.onChange}></expense-edit> `
48
- }
49
-
50
- async onChange() {
51
- // this.output = this.expenseView.value
52
-
53
- this.dispatchEvent(
54
- new CustomEvent('change', {
55
- detail: this.output
56
- })
57
- )
58
- }
59
-
60
- updated(changes) {
61
- if (changes.has('input')) {
62
- this.fetchExpense()
63
- }
64
- }
65
-
66
- async fetchExpense() {
67
- const id = this.input.expenseId
68
-
69
- if (id) {
70
- const response = await client.query({
71
- query: gql`
72
- query ($id: String!) {
73
- expense(id: $id) {
74
- id
75
- name
76
- description
77
- }
78
- }
79
- `,
80
- variables: {
81
- id
82
- }
83
- })
84
-
85
- this.expense = response.data.expense
86
- }
87
- }
88
- }
@@ -1,88 +0,0 @@
1
- /*
2
- Add the following line to clinet/bootstrap.ts so that activity view can be registered when loading a module.
3
- --
4
- import './activities/expense-view.js' // refered by the activity template (activity-data-collect) on server
5
- */
6
-
7
- import '../components/expense-view.js'
8
-
9
- import gql from 'graphql-tag'
10
- import { css, html, LitElement } from 'lit'
11
- import { customElement, property, query, state } from 'lit/decorators.js'
12
-
13
- import { client } from '@operato/graphql'
14
- import { i18next, localize } from '@operato/i18n'
15
- import { ScrollbarStyles } from '@operato/styles'
16
-
17
- // import { ExpenseView } from '../components/expense-view.js'
18
-
19
- @customElement('activity-expense-view')
20
- export class ActivityExpenseView extends localize(i18next)(LitElement) {
21
- static styles = [
22
- ScrollbarStyles,
23
- css`
24
- :host {
25
- display: flex;
26
- flex-direction: column;
27
-
28
- background-color: #fff;
29
- }
30
-
31
- expense-view {
32
- flex: 1;
33
- padding: 10px;
34
- overflow: auto;
35
- }
36
- `
37
- ]
38
-
39
- @property({ type: Object }) input?: any
40
- @property({ type: Object }) output?: any
41
-
42
- @state() expense?: any //Expense
43
-
44
- // @query('expense-view') expenseView!: ExpenseView
45
-
46
- render() {
47
- return html` <expense-view .expense=${this.expense} .value=${this.output} @change=${this.onChange}></expense-view> `
48
- }
49
-
50
- async onChange() {
51
- // this.output = this.expenseView.value
52
-
53
- this.dispatchEvent(
54
- new CustomEvent('change', {
55
- detail: this.output
56
- })
57
- )
58
- }
59
-
60
- updated(changes) {
61
- if (changes.has('input')) {
62
- this.fetchExpense()
63
- }
64
- }
65
-
66
- async fetchExpense() {
67
- const id = this.input.expenseId
68
-
69
- if (id) {
70
- const response = await client.query({
71
- query: gql`
72
- query ($id: String!) {
73
- expense(id: $id) {
74
- id
75
- name
76
- description
77
- }
78
- }
79
- `,
80
- variables: {
81
- id
82
- }
83
- })
84
-
85
- this.expense = response.data.expense
86
- }
87
- }
88
- }
@@ -1,10 +0,0 @@
1
- import { registerEditor, registerRenderer } from '@operato/data-grist'
2
-
3
- import { GristRendererAccountingCategoryObject } from './grist-editors/grist-renderer-accounting-category-object'
4
- import { GristEditorAccountingCategoryObject } from './grist-editors/grist-editor-accounting-category-object'
5
-
6
- export default function bootstrap() {
7
- registerEditor('accounting-category-object', GristEditorAccountingCategoryObject)
8
-
9
- registerRenderer('accounting-category-object', GristRendererAccountingCategoryObject)
10
- }
@@ -1,136 +0,0 @@
1
- import '@material/web/icon/icon.js'
2
- import '@operato/data-tree'
3
-
4
- import gql from 'graphql-tag'
5
- import { css, html, LitElement } from 'lit'
6
- import { customElement, property, query, state } from 'lit/decorators.js'
7
-
8
- import { client } from '@operato/graphql'
9
- import { i18next } from '@operato/i18n'
10
- import { closePopup } from '@operato/popup'
11
- import { CommonHeaderStyles } from '@operato/styles'
12
-
13
- import { AccountingCategory } from '../types/accounting-category'
14
-
15
- const accountingCategoryFragment = gql`
16
- fragment SubAccountingCategory on AccountingCategory {
17
- id
18
- code
19
- name
20
- description
21
- active
22
- }
23
- `
24
-
25
- @customElement('accounting-category-selector')
26
- export class AccountingCategorySelector extends LitElement {
27
- static styles = [
28
- CommonHeaderStyles,
29
- css`
30
- :host {
31
- display: flex;
32
- flex-direction: column;
33
-
34
- background-color: var(--md-sys-color-surface);
35
-
36
- width: var(--overlay-center-normal-width, 50%);
37
- height: var(--overlay-center-normal-height, 50%);
38
-
39
- overflow: auto;
40
- }
41
-
42
- ox-tree-vertical {
43
- flex: 1;
44
- }
45
- `
46
- ]
47
-
48
- @property({ type: Object }) confirmCallback?: (selected?: any) => void
49
- @property({ type: Object }) value?: AccountingCategory
50
-
51
- @state() root?: AccountingCategory
52
-
53
- render() {
54
- return html`
55
- <ox-tree-vertical
56
- .data=${this.root}
57
- .selected=${this.value}
58
- @select=${e => this.onSelect(e, false)}
59
- @select-confirm=${e => this.onSelect(e, true)}
60
- id-property="code"
61
- label-property="name"
62
- description-property="description"
63
- ></ox-tree-vertical>
64
-
65
- <div class="footer" style="margin-left:unset;">
66
- <button @click=${this.onEmpty.bind(this)}>
67
- <md-icon>check_box_outline_blank</md-icon>${i18next.t('button.empty')}
68
- </button>
69
- <div filler></div>
70
- <button @click=${this.onCancel.bind(this)}><md-icon>cancel</md-icon>${i18next.t('button.cancel')}</button>
71
- <button @click=${this.onConfirm.bind(this)} done><md-icon>done</md-icon>${i18next.t('button.confirm')}</button>
72
- </div>
73
- `
74
- }
75
-
76
- onSelect(e: CustomEvent, confirm?: boolean) {
77
- this.value = e.detail as AccountingCategory
78
-
79
- if (confirm) {
80
- this.onConfirm()
81
- }
82
- }
83
-
84
- onEmpty() {
85
- this.confirmCallback && this.confirmCallback(null)
86
- closePopup(this)
87
- }
88
-
89
- onCancel() {
90
- closePopup(this)
91
- }
92
-
93
- onConfirm() {
94
- this.confirmCallback && this.confirmCallback(this.value)
95
- closePopup(this)
96
- }
97
-
98
- async firstUpdated() {
99
- const response = await client.query({
100
- query: gql`
101
- query {
102
- responses: accountingCategoryRoots {
103
- total
104
- items {
105
- ...SubAccountingCategory
106
- children {
107
- ...SubAccountingCategory
108
- children {
109
- ...SubAccountingCategory
110
- children {
111
- ...SubAccountingCategory
112
- children {
113
- ...SubAccountingCategory
114
- children {
115
- ...SubAccountingCategory
116
- children {
117
- ...SubAccountingCategory
118
- }
119
- }
120
- }
121
- }
122
- }
123
- }
124
- }
125
- }
126
- }
127
-
128
- ${accountingCategoryFragment}
129
- `
130
- })
131
-
132
- const { items: records, total } = response.data.responses
133
-
134
- this.root = records[0]
135
- }
136
- }
@@ -1,75 +0,0 @@
1
- import '@operato/property-editor'
2
- import '@operato/property-editor/ox-properties-dynamic-view.js'
3
-
4
- import { LitElement, css, html, PropertyValueMap } 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
-
10
- @customElement('accounting-category-view')
11
- export class AccountingCategoryView extends localize(i18next)(ScopedElementsMixin(LitElement)) {
12
- static styles = [
13
- ScrollbarStyles,
14
- css`
15
- :host {
16
- display: flex;
17
- flex-direction: column;
18
-
19
- overflow: auto;
20
- }
21
-
22
- ox-properties-dynamic-view {
23
- flex: 1;
24
-
25
- display: flex;
26
- flex-direction: column;
27
- }
28
- `
29
- ]
30
-
31
- @property({ type: Object }) accountingCategory: any
32
-
33
- @query('ox-properties-dynamic-view') dynamicView!: any
34
-
35
- @state() private properties: any
36
-
37
- protected firstUpdated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void {
38
- this.properties = [
39
- {
40
- type: 'string',
41
- name: 'code',
42
- label: 'code'
43
- },
44
- {
45
- type: 'string',
46
- name: 'name',
47
- label: 'name'
48
- },
49
- {
50
- type: 'string',
51
- name: 'description',
52
- label: 'description'
53
- },
54
- {
55
- type: 'boolean',
56
- name: 'active',
57
- label: 'active'
58
- }
59
- ]
60
- }
61
-
62
- render() {
63
- return html`
64
- <ox-properties-dynamic-view
65
- .props=${this.properties}
66
- .value=${this.accountingCategory}
67
- @property-change=${this.onPropertyChange.bind(this)}
68
- ></ox-properties-dynamic-view>
69
- `
70
- }
71
-
72
- onPropertyChange(e: CustomEvent) {
73
- this.accountingCategory = e.detail
74
- }
75
- }
@@ -1,83 +0,0 @@
1
- import '../components/accounting-category-selector.js'
2
-
3
- import { html, TemplateResult } from 'lit'
4
- import { customElement } from 'lit/decorators.js'
5
-
6
- import { OxGristEditor } from '@operato/data-grist'
7
- import { i18next } from '@operato/i18n'
8
- import { openPopup, PopupHandle } from '@operato/layout'
9
-
10
- @customElement('grist-editor-accounting-category-object')
11
- export class GristEditorAccountingCategoryObject extends OxGristEditor {
12
- private popup?: PopupHandle
13
- private template?: TemplateResult
14
-
15
- get editorTemplate() {
16
- var { name, description } = this.value || {}
17
-
18
- return html`
19
- ${!this.value
20
- ? html``
21
- : html` <span tabindex="0" style="flex:1">${name || ''}${(description && `(${description})`) || ''}</span> `}
22
- `
23
- }
24
-
25
- _onclick(e: Event): void {
26
- e.stopPropagation()
27
- this.openSelector()
28
- }
29
-
30
- _onkeydown(e: KeyboardEvent): void {
31
- const key = e.key
32
- if (key == 'Enter') {
33
- e.stopPropagation()
34
- this.openSelector()
35
- }
36
- }
37
-
38
- openSelector() {
39
- if (this.popup) {
40
- delete this.popup
41
- }
42
-
43
- const confirmCallback = (selected?: { [field: string]: any }) => {
44
- this.dispatchEvent(
45
- new CustomEvent('field-change', {
46
- bubbles: true,
47
- composed: true,
48
- detail: {
49
- before: this.value,
50
- after: selected
51
- ? {
52
- id: selected.id,
53
- code: selected.code,
54
- name: selected.name,
55
- description: selected.description
56
- }
57
- : null,
58
- record: this.record,
59
- column: this.column,
60
- row: this.row
61
- }
62
- })
63
- )
64
- }
65
-
66
- var value = this.value || {}
67
-
68
- var template =
69
- this.template ||
70
- html`
71
- <accounting-category-selector
72
- .value=${value}
73
- .confirmCallback=${confirmCallback.bind(this)}
74
- ></accounting-category-selector>
75
- `
76
-
77
- this.popup = openPopup(template, {
78
- backdrop: true,
79
- size: 'large',
80
- title: i18next.t('title.select_item')
81
- })
82
- }
83
- }
@@ -1,13 +0,0 @@
1
- import { html } from 'lit-html'
2
-
3
- import { FieldRenderer } from '@operato/data-grist'
4
-
5
- export const GristRendererAccountingCategoryObject: FieldRenderer = (value, column, record, rowIndex, field) => {
6
- if (!value) {
7
- return ''
8
- }
9
-
10
- const { name, description } = value
11
-
12
- return html`<span>${name || ''}${(description && `(${description})`) || ''}</span> `
13
- }
package/client/index.ts DELETED
File without changes