@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.
- package/client/bootstrap.ts +10 -1
- package/client/filters-form/filter-department-object.ts +11 -0
- package/client/filters-form/ox-filter-department-object.ts +136 -0
- package/client/pages/employee/employee-list-page.ts +3 -3
- package/client/pages/employee/employees-by-department.ts +2 -2
- package/dist-client/bootstrap.js +8 -1
- package/dist-client/bootstrap.js.map +1 -1
- package/dist-client/filters-form/filter-department-object.d.ts +3 -0
- package/dist-client/filters-form/filter-department-object.js +8 -0
- package/dist-client/filters-form/filter-department-object.js.map +1 -0
- package/dist-client/filters-form/ox-filter-department-object.d.ts +15 -0
- package/dist-client/filters-form/ox-filter-department-object.js +130 -0
- package/dist-client/filters-form/ox-filter-department-object.js.map +1 -0
- package/dist-client/pages/employee/employee-list-page.js +3 -3
- package/dist-client/pages/employee/employee-list-page.js.map +1 -1
- package/dist-client/pages/employee/employees-by-department.js +2 -2
- package/dist-client/pages/employee/employees-by-department.js.map +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-server/service/employee/employee-history.d.ts +6 -2
- package/dist-server/service/employee/employee-history.js +23 -3
- package/dist-server/service/employee/employee-history.js.map +1 -1
- package/dist-server/service/employee/employee-query.js +1 -1
- package/dist-server/service/employee/employee-query.js.map +1 -1
- package/dist-server/service/employee/employee-type.d.ts +13 -5
- package/dist-server/service/employee/employee-type.js +39 -7
- package/dist-server/service/employee/employee-type.js.map +1 -1
- package/dist-server/service/employee/employee.d.ts +6 -2
- package/dist-server/service/employee/employee.js +23 -3
- package/dist-server/service/employee/employee.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
- package/server/service/employee/employee-history.ts +18 -2
- package/server/service/employee/employee-query.ts +1 -1
- package/server/service/employee/employee-type.ts +29 -5
- package/server/service/employee/employee.ts +18 -2
package/client/bootstrap.ts
CHANGED
|
@@ -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: '
|
|
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
|
-
|
|
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
|
-
'
|
|
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: '
|
|
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
|
-
|
|
446
|
+
retiredOn
|
|
447
447
|
contact {
|
|
448
448
|
id
|
|
449
449
|
email
|
package/dist-client/bootstrap.js
CHANGED
|
@@ -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;
|
|
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,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: '
|
|
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
|
-
|
|
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
|
-
'
|
|
575
|
+
'retiredOn',
|
|
576
576
|
'active',
|
|
577
577
|
'note'
|
|
578
578
|
]);
|