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

Sign up to get free protection for your applications and to get access to all the features.
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.1",
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.1",
34
- "@things-factory/shell": "^8.0.0-beta.1",
35
- "@things-factory/worklist": "^8.0.0-beta.1"
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": "36c494e587640c1490318ef7b95adab02606e0c2"
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