@things-factory/organization 8.0.0-alpha.2 → 8.0.0-alpha.22

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 (35) hide show
  1. package/client/bootstrap.ts +10 -1
  2. package/client/filters-form/filter-department-object.ts +11 -0
  3. package/client/filters-form/ox-filter-department-object.ts +136 -0
  4. package/client/pages/employee/employee-list-page.ts +3 -3
  5. package/client/pages/employee/employees-by-department.ts +2 -2
  6. package/dist-client/bootstrap.js +8 -1
  7. package/dist-client/bootstrap.js.map +1 -1
  8. package/dist-client/filters-form/filter-department-object.d.ts +3 -0
  9. package/dist-client/filters-form/filter-department-object.js +8 -0
  10. package/dist-client/filters-form/filter-department-object.js.map +1 -0
  11. package/dist-client/filters-form/ox-filter-department-object.d.ts +15 -0
  12. package/dist-client/filters-form/ox-filter-department-object.js +130 -0
  13. package/dist-client/filters-form/ox-filter-department-object.js.map +1 -0
  14. package/dist-client/pages/employee/employee-list-page.js +3 -3
  15. package/dist-client/pages/employee/employee-list-page.js.map +1 -1
  16. package/dist-client/pages/employee/employees-by-department.js +2 -2
  17. package/dist-client/pages/employee/employees-by-department.js.map +1 -1
  18. package/dist-client/tsconfig.tsbuildinfo +1 -1
  19. package/dist-server/service/employee/employee-history.d.ts +6 -2
  20. package/dist-server/service/employee/employee-history.js +23 -3
  21. package/dist-server/service/employee/employee-history.js.map +1 -1
  22. package/dist-server/service/employee/employee-query.js +1 -1
  23. package/dist-server/service/employee/employee-query.js.map +1 -1
  24. package/dist-server/service/employee/employee-type.d.ts +13 -5
  25. package/dist-server/service/employee/employee-type.js +39 -7
  26. package/dist-server/service/employee/employee-type.js.map +1 -1
  27. package/dist-server/service/employee/employee.d.ts +6 -2
  28. package/dist-server/service/employee/employee.js +23 -3
  29. package/dist-server/service/employee/employee.js.map +1 -1
  30. package/dist-server/tsconfig.tsbuildinfo +1 -1
  31. package/package.json +6 -6
  32. package/server/service/employee/employee-history.ts +18 -2
  33. package/server/service/employee/employee-query.ts +1 -1
  34. package/server/service/employee/employee-type.ts +29 -5
  35. package/server/service/employee/employee.ts +18 -2
@@ -1,4 +1,8 @@
1
- import { registerEditor, registerRenderer } from '@operato/data-grist'
1
+ import { registerEditor, registerRenderer, registerFilterRenderer } from '@operato/data-grist'
2
+
3
+ import { FilterResourceCode } from '@operato/app/filters-form/filter-resource-code.js'
4
+ import { FilterResourceObject } from '@operato/app/filters-form/filter-resource-object.js'
5
+ import { FilterDepartmentObject } from './filters-form/filter-department-object.js'
2
6
 
3
7
  import { GristRendererDepartmentObject } from './grist-editor/grist-renderer-department-object'
4
8
  import { GristEditorDepartmentObject } from './grist-editor/grist-editor-department-object'
@@ -20,4 +24,9 @@ export default function bootstrap() {
20
24
  registerRenderer('approval-line', GristRendererApprovalLine)
21
25
  registerRenderer('assignees', GristRendererAssignees)
22
26
  registerRenderer('recipients', GristRendererRecipients)
27
+
28
+ registerFilterRenderer('code', [FilterResourceCode])
29
+ registerFilterRenderer('object', [FilterResourceObject])
30
+ registerFilterRenderer('resource-object', [FilterResourceObject])
31
+ registerFilterRenderer('department-object', [FilterDepartmentObject])
23
32
  }
@@ -0,0 +1,11 @@
1
+ import './ox-filter-department-object.js'
2
+
3
+ import { html } from 'lit-html'
4
+
5
+ import { FilterSelectRenderer } from '@operato/data-grist'
6
+
7
+ export const FilterDepartmentObject: FilterSelectRenderer = (column, value, owner) => {
8
+ return html`
9
+ <ox-filter-department-object name=${column?.name} .column=${column} .value=${value}></ox-filter-department-object>
10
+ `
11
+ }
@@ -0,0 +1,136 @@
1
+ import '../component/department-selector.js'
2
+
3
+ import { css, html, TemplateResult } from 'lit'
4
+ import { customElement, property, state } from 'lit/decorators.js'
5
+
6
+ import { i18next } from '@operato/i18n'
7
+ import { openPopup, PopupHandle } from '@operato/layout'
8
+ import { OxFormField } from '@operato/input'
9
+
10
+ @customElement('ox-filter-department-object')
11
+ export class OxFilterDepartmentObject extends OxFormField {
12
+ static styles = [
13
+ css`
14
+ :host {
15
+ display: block;
16
+ position: relative;
17
+ border-bottom: 1px solid rgba(0, 0, 0, 0.15);
18
+ min-width: 100px;
19
+
20
+ --ox-select-padding: var(--spacing-tiny);
21
+ --ox-select-font: var(--input-font);
22
+ --ox-select-color: var(--input-color, var(--md-sys-color-on-surface-variant));
23
+ --ox-select-icon-color: var(--theme-primary-text-color, var(--md-sys-color-on-surface-variant));
24
+ --ox-select-icon-hover-color: var(--md-sys-color-on-primary-container, #3c3938);
25
+ }
26
+
27
+ div {
28
+ width: 100%;
29
+ box-sizing: border-box;
30
+
31
+ display: flex;
32
+ flex-direction: row;
33
+ align-items: center;
34
+ justify-content: center;
35
+ cursor: pointer;
36
+ padding: var(--ox-select-padding);
37
+ font: var(--ox-select-font);
38
+ color: var(--ox-select-color);
39
+ }
40
+
41
+ span {
42
+ flex: 1;
43
+ overflow: hidden;
44
+ text-overflow: ellipsis;
45
+ white-space: nowrap;
46
+ gap: 4px;
47
+ }
48
+
49
+ md-icon {
50
+ --md-icon-size: 16px;
51
+ display: block;
52
+ text-align: right;
53
+ color: var(--ox-select-icon-color);
54
+ opacity: 0.7;
55
+ }
56
+
57
+ div:hover md-icon {
58
+ color: var(--md-sys-color-on-primary-container);
59
+ }
60
+ `
61
+ ]
62
+
63
+ @property({ type: Object }) column: any
64
+ @property({ type: String }) value?: string
65
+
66
+ @state() department?: any
67
+
68
+ private popup?: PopupHandle
69
+ private template?: TemplateResult
70
+
71
+ render() {
72
+ var { name, description } = this.department || (this.value ? { name: this.value } : {})
73
+
74
+ return html`
75
+ <div @click=${this._onclick} @keydown=${this._onkeydown}>
76
+ <span tabindex="0" style="flex:1">${name || ''}${(description && `(${description})`) || ''}</span>
77
+ <md-icon>search</md-icon>
78
+ </div>
79
+ `
80
+ }
81
+
82
+ _onclick(e: Event): void {
83
+ e.stopPropagation()
84
+ this.openSelector()
85
+ }
86
+
87
+ _onkeydown(e: KeyboardEvent): void {
88
+ const key = e.key
89
+ if (key == 'Enter') {
90
+ e.stopPropagation()
91
+ this.openSelector()
92
+ }
93
+ }
94
+
95
+ openSelector() {
96
+ if (this.popup) {
97
+ delete this.popup
98
+ }
99
+
100
+ const confirmCallback = (selected?: { [field: string]: any }) => {
101
+ this.department = selected
102
+ ? {
103
+ id: selected.id,
104
+ controlNo: selected.controlNo,
105
+ name: selected.name,
106
+ description: selected.description
107
+ }
108
+ : null
109
+
110
+ this.value = this.department?.name
111
+
112
+ this.dispatchEvent(
113
+ new CustomEvent('change', {
114
+ bubbles: true,
115
+ composed: true,
116
+ detail: this.value
117
+ })
118
+ )
119
+ }
120
+
121
+ var template =
122
+ this.template ||
123
+ html`
124
+ <department-selector
125
+ .value=${this.department || {}}
126
+ .confirmCallback=${confirmCallback.bind(this)}
127
+ ></department-selector>
128
+ `
129
+
130
+ this.popup = openPopup(template, {
131
+ backdrop: true,
132
+ size: 'large',
133
+ title: i18next.t('title.select_item')
134
+ })
135
+ }
136
+ }
@@ -412,7 +412,7 @@ export class EmployeeListPage extends connect(store)(p13n(localize(i18next)(Scop
412
412
  },
413
413
  {
414
414
  type: 'date',
415
- name: 'retiredAt',
415
+ name: 'retiredOn',
416
416
  header: i18next.t('label.retired-at'),
417
417
  width: 120,
418
418
  record: {
@@ -514,7 +514,7 @@ export class EmployeeListPage extends connect(store)(p13n(localize(i18next)(Scop
514
514
  }
515
515
  note
516
516
  hiredOn
517
- retiredAt
517
+ retiredOn
518
518
  contact {
519
519
  id
520
520
  email
@@ -619,7 +619,7 @@ export class EmployeeListPage extends connect(store)(p13n(localize(i18next)(Scop
619
619
  'alias',
620
620
  'type',
621
621
  'hiredOn',
622
- 'retiredAt',
622
+ 'retiredOn',
623
623
  'active',
624
624
  'note'
625
625
  ])
@@ -346,7 +346,7 @@ export class EmployeesByDepartment extends connect(store)(localize(i18next)(Scop
346
346
  },
347
347
  {
348
348
  type: 'date',
349
- name: 'retiredAt',
349
+ name: 'retiredOn',
350
350
  header: i18next.t('label.retired-at'),
351
351
  width: 100,
352
352
  record: {
@@ -443,7 +443,7 @@ export class EmployeesByDepartment extends connect(store)(localize(i18next)(Scop
443
443
  }
444
444
  note
445
445
  hiredOn
446
- retiredAt
446
+ retiredOn
447
447
  contact {
448
448
  id
449
449
  email
@@ -1,4 +1,7 @@
1
- import { registerEditor, registerRenderer } from '@operato/data-grist';
1
+ import { registerEditor, registerRenderer, registerFilterRenderer } from '@operato/data-grist';
2
+ import { FilterResourceCode } from '@operato/app/filters-form/filter-resource-code.js';
3
+ import { FilterResourceObject } from '@operato/app/filters-form/filter-resource-object.js';
4
+ import { FilterDepartmentObject } from './filters-form/filter-department-object.js';
2
5
  import { GristRendererDepartmentObject } from './grist-editor/grist-renderer-department-object';
3
6
  import { GristEditorDepartmentObject } from './grist-editor/grist-editor-department-object';
4
7
  import { GristEditorAssignees } from './grist-editor/grist-editor-assignees';
@@ -17,5 +20,9 @@ export default function bootstrap() {
17
20
  registerRenderer('approval-line', GristRendererApprovalLine);
18
21
  registerRenderer('assignees', GristRendererAssignees);
19
22
  registerRenderer('recipients', GristRendererRecipients);
23
+ registerFilterRenderer('code', [FilterResourceCode]);
24
+ registerFilterRenderer('object', [FilterResourceObject]);
25
+ registerFilterRenderer('resource-object', [FilterResourceObject]);
26
+ registerFilterRenderer('department-object', [FilterDepartmentObject]);
20
27
  }
21
28
  //# sourceMappingURL=bootstrap.js.map
@@ -1 +1 @@
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,6BAA6B,EAAE,MAAM,iDAAiD,CAAA;AAC/F,OAAO,EAAE,2BAA2B,EAAE,MAAM,+CAA+C,CAAA;AAC3F,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAA;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAA;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAA;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAA;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAA;AAEvF,MAAM,CAAC,OAAO,UAAU,SAAS;IAC/B,2CAA2C;IAC3C,cAAc,CAAC,mBAAmB,EAAE,2BAA2B,CAAC,CAAA;IAChE,cAAc,CAAC,eAAe,EAAE,uBAAuB,CAAC,CAAA;IACxD,cAAc,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAA;IACjD,cAAc,CAAC,YAAY,EAAE,qBAAqB,CAAC,CAAA;IAEnD,gBAAgB,CAAC,mBAAmB,EAAE,6BAA6B,CAAC,CAAA;IACpE,gBAAgB,CAAC,eAAe,EAAE,yBAAyB,CAAC,CAAA;IAC5D,gBAAgB,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAA;IACrD,gBAAgB,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAA;AACzD,CAAC","sourcesContent":["import { registerEditor, registerRenderer } from '@operato/data-grist'\n\nimport { GristRendererDepartmentObject } from './grist-editor/grist-renderer-department-object'\nimport { GristEditorDepartmentObject } from './grist-editor/grist-editor-department-object'\nimport { GristEditorAssignees } from './grist-editor/grist-editor-assignees'\nimport { GristRendererAssignees } from './grist-editor/grist-renderer-assignees'\nimport { GristEditorRecipients } from './grist-editor/grist-editor-recipients'\nimport { GristRendererRecipients } from './grist-editor/grist-renderer-recipients'\nimport { GristEditorApprovalLine } from './grist-editor/grist-editor-approval-line'\nimport { GristRendererApprovalLine } from './grist-editor/grist-renderer-approval-line'\n\nexport default function bootstrap() {\n /* register grist renderer/editor for id */\n registerEditor('department-object', GristEditorDepartmentObject)\n registerEditor('approval-line', GristEditorApprovalLine)\n registerEditor('assignees', GristEditorAssignees)\n registerEditor('recipients', GristEditorRecipients)\n\n registerRenderer('department-object', GristRendererDepartmentObject)\n registerRenderer('approval-line', GristRendererApprovalLine)\n registerRenderer('assignees', GristRendererAssignees)\n registerRenderer('recipients', GristRendererRecipients)\n}\n"]}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../client/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAE9F,OAAO,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAA;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qDAAqD,CAAA;AAC1F,OAAO,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAA;AAEnF,OAAO,EAAE,6BAA6B,EAAE,MAAM,iDAAiD,CAAA;AAC/F,OAAO,EAAE,2BAA2B,EAAE,MAAM,+CAA+C,CAAA;AAC3F,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAA;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAA;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAA;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAA;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAA;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAA;AAEvF,MAAM,CAAC,OAAO,UAAU,SAAS;IAC/B,2CAA2C;IAC3C,cAAc,CAAC,mBAAmB,EAAE,2BAA2B,CAAC,CAAA;IAChE,cAAc,CAAC,eAAe,EAAE,uBAAuB,CAAC,CAAA;IACxD,cAAc,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAA;IACjD,cAAc,CAAC,YAAY,EAAE,qBAAqB,CAAC,CAAA;IAEnD,gBAAgB,CAAC,mBAAmB,EAAE,6BAA6B,CAAC,CAAA;IACpE,gBAAgB,CAAC,eAAe,EAAE,yBAAyB,CAAC,CAAA;IAC5D,gBAAgB,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAA;IACrD,gBAAgB,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAA;IAEvD,sBAAsB,CAAC,MAAM,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAA;IACpD,sBAAsB,CAAC,QAAQ,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAA;IACxD,sBAAsB,CAAC,iBAAiB,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAA;IACjE,sBAAsB,CAAC,mBAAmB,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAA;AACvE,CAAC","sourcesContent":["import { registerEditor, registerRenderer, registerFilterRenderer } from '@operato/data-grist'\n\nimport { FilterResourceCode } from '@operato/app/filters-form/filter-resource-code.js'\nimport { FilterResourceObject } from '@operato/app/filters-form/filter-resource-object.js'\nimport { FilterDepartmentObject } from './filters-form/filter-department-object.js'\n\nimport { GristRendererDepartmentObject } from './grist-editor/grist-renderer-department-object'\nimport { GristEditorDepartmentObject } from './grist-editor/grist-editor-department-object'\nimport { GristEditorAssignees } from './grist-editor/grist-editor-assignees'\nimport { GristRendererAssignees } from './grist-editor/grist-renderer-assignees'\nimport { GristEditorRecipients } from './grist-editor/grist-editor-recipients'\nimport { GristRendererRecipients } from './grist-editor/grist-renderer-recipients'\nimport { GristEditorApprovalLine } from './grist-editor/grist-editor-approval-line'\nimport { GristRendererApprovalLine } from './grist-editor/grist-renderer-approval-line'\n\nexport default function bootstrap() {\n /* register grist renderer/editor for id */\n registerEditor('department-object', GristEditorDepartmentObject)\n registerEditor('approval-line', GristEditorApprovalLine)\n registerEditor('assignees', GristEditorAssignees)\n registerEditor('recipients', GristEditorRecipients)\n\n registerRenderer('department-object', GristRendererDepartmentObject)\n registerRenderer('approval-line', GristRendererApprovalLine)\n registerRenderer('assignees', GristRendererAssignees)\n registerRenderer('recipients', GristRendererRecipients)\n\n registerFilterRenderer('code', [FilterResourceCode])\n registerFilterRenderer('object', [FilterResourceObject])\n registerFilterRenderer('resource-object', [FilterResourceObject])\n registerFilterRenderer('department-object', [FilterDepartmentObject])\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import './ox-filter-department-object.js';
2
+ import { FilterSelectRenderer } from '@operato/data-grist';
3
+ export declare const FilterDepartmentObject: FilterSelectRenderer;
@@ -0,0 +1,8 @@
1
+ import './ox-filter-department-object.js';
2
+ import { html } from 'lit-html';
3
+ export const FilterDepartmentObject = (column, value, owner) => {
4
+ return html `
5
+ <ox-filter-department-object name=${column === null || column === void 0 ? void 0 : column.name} .column=${column} .value=${value}></ox-filter-department-object>
6
+ `;
7
+ };
8
+ //# sourceMappingURL=filter-department-object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-department-object.js","sourceRoot":"","sources":["../../client/filters-form/filter-department-object.ts"],"names":[],"mappings":"AAAA,OAAO,kCAAkC,CAAA;AAEzC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAI/B,MAAM,CAAC,MAAM,sBAAsB,GAAyB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;IACnF,OAAO,IAAI,CAAA;wCAC2B,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,YAAY,MAAM,WAAW,KAAK;GACnF,CAAA;AACH,CAAC,CAAA","sourcesContent":["import './ox-filter-department-object.js'\n\nimport { html } from 'lit-html'\n\nimport { FilterSelectRenderer } from '@operato/data-grist'\n\nexport const FilterDepartmentObject: FilterSelectRenderer = (column, value, owner) => {\n return html`\n <ox-filter-department-object name=${column?.name} .column=${column} .value=${value}></ox-filter-department-object>\n `\n}\n"]}
@@ -0,0 +1,15 @@
1
+ import '../component/department-selector.js';
2
+ import { TemplateResult } from 'lit';
3
+ import { OxFormField } from '@operato/input';
4
+ export declare class OxFilterDepartmentObject extends OxFormField {
5
+ static styles: import("lit").CSSResult[];
6
+ column: any;
7
+ value?: string;
8
+ department?: any;
9
+ private popup?;
10
+ private template?;
11
+ render(): TemplateResult<1>;
12
+ _onclick(e: Event): void;
13
+ _onkeydown(e: KeyboardEvent): void;
14
+ openSelector(): void;
15
+ }
@@ -0,0 +1,130 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import '../component/department-selector.js';
3
+ import { css, html } from 'lit';
4
+ import { customElement, property, state } from 'lit/decorators.js';
5
+ import { i18next } from '@operato/i18n';
6
+ import { openPopup } from '@operato/layout';
7
+ import { OxFormField } from '@operato/input';
8
+ let OxFilterDepartmentObject = class OxFilterDepartmentObject extends OxFormField {
9
+ render() {
10
+ var { name, description } = this.department || (this.value ? { name: this.value } : {});
11
+ return html `
12
+ <div @click=${this._onclick} @keydown=${this._onkeydown}>
13
+ <span tabindex="0" style="flex:1">${name || ''}${(description && `(${description})`) || ''}</span>
14
+ <md-icon>search</md-icon>
15
+ </div>
16
+ `;
17
+ }
18
+ _onclick(e) {
19
+ e.stopPropagation();
20
+ this.openSelector();
21
+ }
22
+ _onkeydown(e) {
23
+ const key = e.key;
24
+ if (key == 'Enter') {
25
+ e.stopPropagation();
26
+ this.openSelector();
27
+ }
28
+ }
29
+ openSelector() {
30
+ if (this.popup) {
31
+ delete this.popup;
32
+ }
33
+ const confirmCallback = (selected) => {
34
+ var _a;
35
+ this.department = selected
36
+ ? {
37
+ id: selected.id,
38
+ controlNo: selected.controlNo,
39
+ name: selected.name,
40
+ description: selected.description
41
+ }
42
+ : null;
43
+ this.value = (_a = this.department) === null || _a === void 0 ? void 0 : _a.name;
44
+ this.dispatchEvent(new CustomEvent('change', {
45
+ bubbles: true,
46
+ composed: true,
47
+ detail: this.value
48
+ }));
49
+ };
50
+ var template = this.template ||
51
+ html `
52
+ <department-selector
53
+ .value=${this.department || {}}
54
+ .confirmCallback=${confirmCallback.bind(this)}
55
+ ></department-selector>
56
+ `;
57
+ this.popup = openPopup(template, {
58
+ backdrop: true,
59
+ size: 'large',
60
+ title: i18next.t('title.select_item')
61
+ });
62
+ }
63
+ };
64
+ OxFilterDepartmentObject.styles = [
65
+ css `
66
+ :host {
67
+ display: block;
68
+ position: relative;
69
+ border-bottom: 1px solid rgba(0, 0, 0, 0.15);
70
+ min-width: 100px;
71
+
72
+ --ox-select-padding: var(--spacing-tiny);
73
+ --ox-select-font: var(--input-font);
74
+ --ox-select-color: var(--input-color, var(--md-sys-color-on-surface-variant));
75
+ --ox-select-icon-color: var(--theme-primary-text-color, var(--md-sys-color-on-surface-variant));
76
+ --ox-select-icon-hover-color: var(--md-sys-color-on-primary-container, #3c3938);
77
+ }
78
+
79
+ div {
80
+ width: 100%;
81
+ box-sizing: border-box;
82
+
83
+ display: flex;
84
+ flex-direction: row;
85
+ align-items: center;
86
+ justify-content: center;
87
+ cursor: pointer;
88
+ padding: var(--ox-select-padding);
89
+ font: var(--ox-select-font);
90
+ color: var(--ox-select-color);
91
+ }
92
+
93
+ span {
94
+ flex: 1;
95
+ overflow: hidden;
96
+ text-overflow: ellipsis;
97
+ white-space: nowrap;
98
+ gap: 4px;
99
+ }
100
+
101
+ md-icon {
102
+ --md-icon-size: 16px;
103
+ display: block;
104
+ text-align: right;
105
+ color: var(--ox-select-icon-color);
106
+ opacity: 0.7;
107
+ }
108
+
109
+ div:hover md-icon {
110
+ color: var(--md-sys-color-on-primary-container);
111
+ }
112
+ `
113
+ ];
114
+ __decorate([
115
+ property({ type: Object }),
116
+ __metadata("design:type", Object)
117
+ ], OxFilterDepartmentObject.prototype, "column", void 0);
118
+ __decorate([
119
+ property({ type: String }),
120
+ __metadata("design:type", String)
121
+ ], OxFilterDepartmentObject.prototype, "value", void 0);
122
+ __decorate([
123
+ state(),
124
+ __metadata("design:type", Object)
125
+ ], OxFilterDepartmentObject.prototype, "department", void 0);
126
+ OxFilterDepartmentObject = __decorate([
127
+ customElement('ox-filter-department-object')
128
+ ], OxFilterDepartmentObject);
129
+ export { OxFilterDepartmentObject };
130
+ //# sourceMappingURL=ox-filter-department-object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ox-filter-department-object.js","sourceRoot":"","sources":["../../client/filters-form/ox-filter-department-object.ts"],"names":[],"mappings":"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","sourcesContent":["import '../component/department-selector.js'\n\nimport { css, html, TemplateResult } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\n\nimport { i18next } from '@operato/i18n'\nimport { openPopup, PopupHandle } from '@operato/layout'\nimport { OxFormField } from '@operato/input'\n\n@customElement('ox-filter-department-object')\nexport class OxFilterDepartmentObject extends OxFormField {\n static styles = [\n css`\n :host {\n display: block;\n position: relative;\n border-bottom: 1px solid rgba(0, 0, 0, 0.15);\n min-width: 100px;\n\n --ox-select-padding: var(--spacing-tiny);\n --ox-select-font: var(--input-font);\n --ox-select-color: var(--input-color, var(--md-sys-color-on-surface-variant));\n --ox-select-icon-color: var(--theme-primary-text-color, var(--md-sys-color-on-surface-variant));\n --ox-select-icon-hover-color: var(--md-sys-color-on-primary-container, #3c3938);\n }\n\n div {\n width: 100%;\n box-sizing: border-box;\n\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n padding: var(--ox-select-padding);\n font: var(--ox-select-font);\n color: var(--ox-select-color);\n }\n\n span {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n gap: 4px;\n }\n\n md-icon {\n --md-icon-size: 16px;\n display: block;\n text-align: right;\n color: var(--ox-select-icon-color);\n opacity: 0.7;\n }\n\n div:hover md-icon {\n color: var(--md-sys-color-on-primary-container);\n }\n `\n ]\n\n @property({ type: Object }) column: any\n @property({ type: String }) value?: string\n\n @state() department?: any\n\n private popup?: PopupHandle\n private template?: TemplateResult\n\n render() {\n var { name, description } = this.department || (this.value ? { name: this.value } : {})\n\n return html`\n <div @click=${this._onclick} @keydown=${this._onkeydown}>\n <span tabindex=\"0\" style=\"flex:1\">${name || ''}${(description && `(${description})`) || ''}</span>\n <md-icon>search</md-icon>\n </div>\n `\n }\n\n _onclick(e: Event): void {\n e.stopPropagation()\n this.openSelector()\n }\n\n _onkeydown(e: KeyboardEvent): void {\n const key = e.key\n if (key == 'Enter') {\n e.stopPropagation()\n this.openSelector()\n }\n }\n\n openSelector() {\n if (this.popup) {\n delete this.popup\n }\n\n const confirmCallback = (selected?: { [field: string]: any }) => {\n this.department = selected\n ? {\n id: selected.id,\n controlNo: selected.controlNo,\n name: selected.name,\n description: selected.description\n }\n : null\n\n this.value = this.department?.name\n\n this.dispatchEvent(\n new CustomEvent('change', {\n bubbles: true,\n composed: true,\n detail: this.value\n })\n )\n }\n\n var template =\n this.template ||\n html`\n <department-selector\n .value=${this.department || {}}\n .confirmCallback=${confirmCallback.bind(this)}\n ></department-selector>\n `\n\n this.popup = openPopup(template, {\n backdrop: true,\n size: 'large',\n title: i18next.t('title.select_item')\n })\n }\n}\n"]}
@@ -376,7 +376,7 @@ let EmployeeListPage = class EmployeeListPage extends connect(store)(p13n(locali
376
376
  },
377
377
  {
378
378
  type: 'date',
379
- name: 'retiredAt',
379
+ name: 'retiredOn',
380
380
  header: i18next.t('label.retired-at'),
381
381
  width: 120,
382
382
  record: {
@@ -476,7 +476,7 @@ let EmployeeListPage = class EmployeeListPage extends connect(store)(p13n(locali
476
476
  }
477
477
  note
478
478
  hiredOn
479
- retiredAt
479
+ retiredOn
480
480
  contact {
481
481
  id
482
482
  email
@@ -572,7 +572,7 @@ let EmployeeListPage = class EmployeeListPage extends connect(store)(p13n(locali
572
572
  'alias',
573
573
  'type',
574
574
  'hiredOn',
575
- 'retiredAt',
575
+ 'retiredOn',
576
576
  'active',
577
577
  'note'
578
578
  ]);