@operato/data-grist 0.2.46 → 0.2.47
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/CHANGELOG.md +9 -0
- package/custom-elements.json +98 -98
- package/dist/src/data-list/record-partial.d.ts +1 -1
- package/dist/src/data-list/record-partial.js +2 -3
- package/dist/src/data-list/record-partial.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -7
- package/src/data-list/record-partial.ts +3 -4
- package/yarn-error.log +2427 -3205
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,15 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
### [0.2.47](https://github.com/hatiolab/operato/compare/v0.2.46...v0.2.47) (2021-12-13)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### :bug: Bug Fix
|
|
10
|
+
|
|
11
|
+
* operato/board/board-modeller and operato/input/buttons-radio ([d2a4344](https://github.com/hatiolab/operato/commit/d2a4344ae2ad10c9ebfca919a0c9ff7de29d7c6a))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
6
15
|
### [0.2.46](https://github.com/hatiolab/operato/compare/v0.2.45...v0.2.46) (2021-12-12)
|
|
7
16
|
|
|
8
17
|
|
package/custom-elements.json
CHANGED
|
@@ -17,6 +17,69 @@
|
|
|
17
17
|
}
|
|
18
18
|
]
|
|
19
19
|
},
|
|
20
|
+
{
|
|
21
|
+
"kind": "javascript-module",
|
|
22
|
+
"path": "stories/index.stories.ts",
|
|
23
|
+
"declarations": [
|
|
24
|
+
{
|
|
25
|
+
"kind": "variable",
|
|
26
|
+
"name": "Regular"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"kind": "variable",
|
|
30
|
+
"name": "CustomTitle"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"kind": "variable",
|
|
34
|
+
"name": "CustomCounter"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"kind": "variable",
|
|
38
|
+
"name": "SlottedContent"
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
"exports": [
|
|
42
|
+
{
|
|
43
|
+
"kind": "js",
|
|
44
|
+
"name": "default",
|
|
45
|
+
"declaration": {
|
|
46
|
+
"module": "stories/index.stories.ts"
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"kind": "js",
|
|
51
|
+
"name": "Regular",
|
|
52
|
+
"declaration": {
|
|
53
|
+
"name": "Regular",
|
|
54
|
+
"module": "stories/index.stories.ts"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"kind": "js",
|
|
59
|
+
"name": "CustomTitle",
|
|
60
|
+
"declaration": {
|
|
61
|
+
"name": "CustomTitle",
|
|
62
|
+
"module": "stories/index.stories.ts"
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"kind": "js",
|
|
67
|
+
"name": "CustomCounter",
|
|
68
|
+
"declaration": {
|
|
69
|
+
"name": "CustomCounter",
|
|
70
|
+
"module": "stories/index.stories.ts"
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"kind": "js",
|
|
75
|
+
"name": "SlottedContent",
|
|
76
|
+
"declaration": {
|
|
77
|
+
"name": "SlottedContent",
|
|
78
|
+
"module": "stories/index.stories.ts"
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
]
|
|
82
|
+
},
|
|
20
83
|
{
|
|
21
84
|
"kind": "javascript-module",
|
|
22
85
|
"path": "src/const.ts",
|
|
@@ -1034,69 +1097,6 @@
|
|
|
1034
1097
|
"declarations": [],
|
|
1035
1098
|
"exports": []
|
|
1036
1099
|
},
|
|
1037
|
-
{
|
|
1038
|
-
"kind": "javascript-module",
|
|
1039
|
-
"path": "stories/index.stories.ts",
|
|
1040
|
-
"declarations": [
|
|
1041
|
-
{
|
|
1042
|
-
"kind": "variable",
|
|
1043
|
-
"name": "Regular"
|
|
1044
|
-
},
|
|
1045
|
-
{
|
|
1046
|
-
"kind": "variable",
|
|
1047
|
-
"name": "CustomTitle"
|
|
1048
|
-
},
|
|
1049
|
-
{
|
|
1050
|
-
"kind": "variable",
|
|
1051
|
-
"name": "CustomCounter"
|
|
1052
|
-
},
|
|
1053
|
-
{
|
|
1054
|
-
"kind": "variable",
|
|
1055
|
-
"name": "SlottedContent"
|
|
1056
|
-
}
|
|
1057
|
-
],
|
|
1058
|
-
"exports": [
|
|
1059
|
-
{
|
|
1060
|
-
"kind": "js",
|
|
1061
|
-
"name": "default",
|
|
1062
|
-
"declaration": {
|
|
1063
|
-
"module": "stories/index.stories.ts"
|
|
1064
|
-
}
|
|
1065
|
-
},
|
|
1066
|
-
{
|
|
1067
|
-
"kind": "js",
|
|
1068
|
-
"name": "Regular",
|
|
1069
|
-
"declaration": {
|
|
1070
|
-
"name": "Regular",
|
|
1071
|
-
"module": "stories/index.stories.ts"
|
|
1072
|
-
}
|
|
1073
|
-
},
|
|
1074
|
-
{
|
|
1075
|
-
"kind": "js",
|
|
1076
|
-
"name": "CustomTitle",
|
|
1077
|
-
"declaration": {
|
|
1078
|
-
"name": "CustomTitle",
|
|
1079
|
-
"module": "stories/index.stories.ts"
|
|
1080
|
-
}
|
|
1081
|
-
},
|
|
1082
|
-
{
|
|
1083
|
-
"kind": "js",
|
|
1084
|
-
"name": "CustomCounter",
|
|
1085
|
-
"declaration": {
|
|
1086
|
-
"name": "CustomCounter",
|
|
1087
|
-
"module": "stories/index.stories.ts"
|
|
1088
|
-
}
|
|
1089
|
-
},
|
|
1090
|
-
{
|
|
1091
|
-
"kind": "js",
|
|
1092
|
-
"name": "SlottedContent",
|
|
1093
|
-
"declaration": {
|
|
1094
|
-
"name": "SlottedContent",
|
|
1095
|
-
"module": "stories/index.stories.ts"
|
|
1096
|
-
}
|
|
1097
|
-
}
|
|
1098
|
-
]
|
|
1099
|
-
},
|
|
1100
1100
|
{
|
|
1101
1101
|
"kind": "javascript-module",
|
|
1102
1102
|
"path": "src/configure/column-builder.ts",
|
|
@@ -10608,6 +10608,41 @@
|
|
|
10608
10608
|
}
|
|
10609
10609
|
]
|
|
10610
10610
|
},
|
|
10611
|
+
{
|
|
10612
|
+
"kind": "javascript-module",
|
|
10613
|
+
"path": "src/interfaces/index.ts",
|
|
10614
|
+
"declarations": [],
|
|
10615
|
+
"exports": [
|
|
10616
|
+
{
|
|
10617
|
+
"kind": "js",
|
|
10618
|
+
"name": "*",
|
|
10619
|
+
"declaration": {
|
|
10620
|
+
"name": "*",
|
|
10621
|
+
"package": "./ox-search-field"
|
|
10622
|
+
}
|
|
10623
|
+
},
|
|
10624
|
+
{
|
|
10625
|
+
"kind": "js",
|
|
10626
|
+
"name": "*",
|
|
10627
|
+
"declaration": {
|
|
10628
|
+
"name": "*",
|
|
10629
|
+
"package": "./ox-grist-search-form"
|
|
10630
|
+
}
|
|
10631
|
+
}
|
|
10632
|
+
]
|
|
10633
|
+
},
|
|
10634
|
+
{
|
|
10635
|
+
"kind": "javascript-module",
|
|
10636
|
+
"path": "src/interfaces/ox-grist-search-form.ts",
|
|
10637
|
+
"declarations": [],
|
|
10638
|
+
"exports": []
|
|
10639
|
+
},
|
|
10640
|
+
{
|
|
10641
|
+
"kind": "javascript-module",
|
|
10642
|
+
"path": "src/interfaces/ox-search-field.ts",
|
|
10643
|
+
"declarations": [],
|
|
10644
|
+
"exports": []
|
|
10645
|
+
},
|
|
10611
10646
|
{
|
|
10612
10647
|
"kind": "javascript-module",
|
|
10613
10648
|
"path": "src/handlers/index.ts",
|
|
@@ -10777,41 +10812,6 @@
|
|
|
10777
10812
|
}
|
|
10778
10813
|
]
|
|
10779
10814
|
},
|
|
10780
|
-
{
|
|
10781
|
-
"kind": "javascript-module",
|
|
10782
|
-
"path": "src/interfaces/index.ts",
|
|
10783
|
-
"declarations": [],
|
|
10784
|
-
"exports": [
|
|
10785
|
-
{
|
|
10786
|
-
"kind": "js",
|
|
10787
|
-
"name": "*",
|
|
10788
|
-
"declaration": {
|
|
10789
|
-
"name": "*",
|
|
10790
|
-
"package": "./ox-search-field"
|
|
10791
|
-
}
|
|
10792
|
-
},
|
|
10793
|
-
{
|
|
10794
|
-
"kind": "js",
|
|
10795
|
-
"name": "*",
|
|
10796
|
-
"declaration": {
|
|
10797
|
-
"name": "*",
|
|
10798
|
-
"package": "./ox-grist-search-form"
|
|
10799
|
-
}
|
|
10800
|
-
}
|
|
10801
|
-
]
|
|
10802
|
-
},
|
|
10803
|
-
{
|
|
10804
|
-
"kind": "javascript-module",
|
|
10805
|
-
"path": "src/interfaces/ox-grist-search-form.ts",
|
|
10806
|
-
"declarations": [],
|
|
10807
|
-
"exports": []
|
|
10808
|
-
},
|
|
10809
|
-
{
|
|
10810
|
-
"kind": "javascript-module",
|
|
10811
|
-
"path": "src/interfaces/ox-search-field.ts",
|
|
10812
|
-
"declarations": [],
|
|
10813
|
-
"exports": []
|
|
10814
|
-
},
|
|
10815
10815
|
{
|
|
10816
10816
|
"kind": "javascript-module",
|
|
10817
10817
|
"path": "src/record-view/index.ts",
|
|
@@ -2,8 +2,8 @@ import '@material/mwc-icon';
|
|
|
2
2
|
import './data-list-gutter';
|
|
3
3
|
import './data-list-field';
|
|
4
4
|
import '../record-view';
|
|
5
|
-
import { GristConfig, GristData, GristRecord } from '../types';
|
|
6
5
|
import { LitElement, PropertyValues } from 'lit';
|
|
6
|
+
import { GristConfig, GristData, GristRecord } from '../types';
|
|
7
7
|
export declare class RecordPartial extends LitElement {
|
|
8
8
|
static styles: import("lit").CSSResult[];
|
|
9
9
|
config: GristConfig;
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
|
-
// import { longpressable } from '@things-factory/utils'
|
|
3
2
|
import '@material/mwc-icon';
|
|
4
3
|
import './data-list-gutter';
|
|
5
4
|
import './data-list-field';
|
|
6
5
|
import '../record-view';
|
|
7
|
-
import {
|
|
8
|
-
import { ZERO_CONFIG, ZERO_DATA, ZERO_RECORD } from '../configure/zero-config';
|
|
6
|
+
import { css, html, LitElement } from 'lit';
|
|
9
7
|
import { customElement, property } from 'lit/decorators.js';
|
|
8
|
+
import { ZERO_CONFIG, ZERO_DATA, ZERO_RECORD } from '../configure/zero-config';
|
|
10
9
|
import { recordPartialClickHandler } from './event-handlers/record-partial-click-handler';
|
|
11
10
|
import { recordPartialDblClickHandler } from './event-handlers/record-partial-dblclick-handler';
|
|
12
11
|
// import { recordPartialLongPressHandler } from './event-handlers/record-partial-long-press-handler'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record-partial.js","sourceRoot":"","sources":["../../../src/data-list/record-partial.ts"],"names":[],"mappings":"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","sourcesContent":["// import { longpressable } from '@things-factory/utils'\nimport '@material/mwc-icon'\nimport './data-list-gutter'\nimport './data-list-field'\nimport '../record-view'\n\nimport { GristConfig, GristData, GristRecord } from '../types'\nimport { LitElement, PropertyValues, css, html } from 'lit'\nimport { ZERO_CONFIG, ZERO_DATA, ZERO_RECORD } from '../configure/zero-config'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { recordPartialClickHandler } from './event-handlers/record-partial-click-handler'\nimport { recordPartialDblClickHandler } from './event-handlers/record-partial-dblclick-handler'\n\n// import { recordPartialLongPressHandler } from './event-handlers/record-partial-long-press-handler'\n\n// TODO 로케일 설정에 따라서 포맷이 바뀌도록 해야한다.\nconst OPTIONS: Intl.DateTimeFormatOptions = {\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n hour12: false\n // timeZone: 'America/Los_Angeles'\n}\n\nconst formatter = new Intl.DateTimeFormat(navigator.language, OPTIONS)\n\n@customElement('ox-record-partial')\nexport class RecordPartial extends LitElement {\n static styles = [\n css`\n :host {\n display: flex;\n flex-direction: row;\n align-items: center;\n border-bottom: var(--data-list-item-border-bottom);\n position: relative;\n min-height: 42px;\n }\n\n ox-list-gutter {\n flex: 0 0 14px;\n }\n\n :host([dirty])::before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n\n width: 0px;\n height: 0px;\n border-top: var(--grid-record-dirty-border-top);\n border-right: var(--grid-record-dirty-border-left);\n }\n\n :host > * {\n margin: var(--data-list-item-margin);\n zoom: 1.4;\n }\n\n :host [dirty] {\n position: absolute;\n margin: 0;\n height: 20px;\n font: var(--grid-record-dirty-icon-font);\n text-indent: 1px;\n left: 0;\n top: 0;\n color: var(--grid-record-dirty-color);\n }\n\n [content] {\n flex: auto;\n display: block;\n zoom: 1;\n }\n\n ox-list-field {\n padding-top: 3px;\n font: var(--data-list-item-etc-font);\n color: var(--data-list-item-etc-color);\n }\n\n ox-list-field[name] {\n font: var(--data-list-item-name-font);\n color: var(--data-list-item-name-color);\n }\n\n ox-list-field[desc] {\n font: var(--data-list-item-disc-font);\n color: var(--data-list-item-disc-color);\n }\n\n .update-info {\n font: var(--data-list-item-etc-font);\n color: var(--data-list-item-etc-color);\n }\n\n .update-info mwc-icon {\n vertical-align: middle;\n font-size: 1em;\n }\n `\n ]\n\n @property({ type: Object }) config: GristConfig = ZERO_CONFIG\n @property({ type: Object }) data: GristData = ZERO_DATA\n @property({ type: Object }) record: GristRecord = ZERO_RECORD\n @property({ type: Number }) rowIndex: number = -1\n /*\n * row-selector를 사용자가 변경할 때, record-partial의 update를 유도하기 위해 selected-row attribute를 property에 추가함.\n * (이를 해주지 않으면, 리스트 refresh 경우에 selected-row checkbox가 클리어되지 않는 현상이 발생함.)\n */\n @property({ type: Boolean, attribute: 'selected-row' }) selectedRow: boolean = false\n\n private _recordView: any\n\n attributeChangedCallback(name: string, oldval: any, newval: any) {\n super.attributeChangedCallback(name, oldval, newval)\n }\n\n onFieldChange(e: Event) {\n /* record-view의 이벤트를 부모에게로 전달한다. */\n this.dispatchEvent(\n new CustomEvent('field-change', {\n bubbles: true,\n composed: true,\n detail: (e as any).detail\n })\n )\n }\n\n get recordView() {\n if (!this._recordView) {\n this._recordView = document.createElement('ox-record-view')\n this._recordView.addEventListener('field-change', (e: CustomEvent) => this.onFieldChange(e))\n }\n\n var columns = this.config.columns\n\n this._recordView.columns = columns\n this._recordView.record = this.record\n this._recordView.rowIndex = this.rowIndex\n\n return this._recordView\n }\n\n firstUpdated() {\n /*\n long-press\n TODO. performance를 확인한 후에 활성화하자.\n */\n // longpressable(this.renderRoot.querySelector('[content]'))\n\n // this.renderRoot.addEventListener('long-press', recordPartialLongPressHandler.bind(this))\n this.renderRoot.addEventListener('click', recordPartialClickHandler.bind(this) as EventListener)\n this.renderRoot.addEventListener('dblclick', recordPartialDblClickHandler.bind(this) as EventListener)\n }\n\n updated(changes: PropertyValues<this>) {\n if (changes.has('record') && this._recordView) {\n this._recordView.record = this.record\n }\n }\n\n render() {\n var record = this.record\n var rowIndex = this.rowIndex\n var { columns, list } = this.config\n var { fields, details } = list || {}\n\n var displayColumns =\n [...fields, ...details].map(field => columns.find(column => column.name == field)).filter(column => column) || []\n var gutters = (columns || []).filter(column => column.type == 'gutter' && column.forList)\n\n if (this.hasAttribute('dirty')) {\n var dirtyIcon\n\n switch (this.record['__dirty__']) {\n case 'M':\n dirtyIcon = 'done'\n break\n case '+':\n dirtyIcon = 'add'\n break\n case '-':\n dirtyIcon = 'remove'\n break\n }\n }\n\n return html`\n ${dirtyIcon ? html` <mwc-icon dirty>${dirtyIcon}</mwc-icon> ` : html``}\n ${gutters.map(\n gutter =>\n html`\n <ox-list-gutter\n .rowIndex=${rowIndex}\n .column=${gutter}\n .record=${record}\n .value=${record[gutter.name]}\n ></ox-list-gutter>\n `\n )}\n\n <div content>\n ${displayColumns.map(\n (column, idx) =>\n html`\n <ox-list-field\n .rowIndex=${rowIndex}\n .column=${column}\n .record=${record}\n .value=${record[column?.name || '']}\n ?name=${idx == 0}\n ?desc=${idx == 1}\n ></ox-list-field>\n `\n )}\n </div>\n `\n }\n\n popupRecordView() {\n var titleField = this.config.list.fields[0] || 'name'\n var title = this.record[titleField]\n\n /* field가 오브젝트형인 경우에는 렌더러를 타이틀로 사용한다. */\n if (typeof title == 'object') {\n var column = this.config.columns.find(column => column.name == titleField)\n title = column?.record.renderer(title, column, this.record, this.rowIndex, this /* cautious */)\n }\n\n document.dispatchEvent(\n new CustomEvent('open-popup', {\n detail: {\n template: this.recordView,\n options: {\n backdrop: true,\n size: 'large',\n title\n },\n callback: (popup: any) => {\n this.recordView.addEventListener('reset', () => {\n this.dispatchEvent(\n new CustomEvent('record-reset', {\n bubbles: true,\n composed: true,\n detail: {\n record: this.record,\n row: this.rowIndex\n }\n })\n )\n })\n\n this.recordView.addEventListener('cancel', () => {\n this.dispatchEvent(\n new CustomEvent('record-reset', {\n bubbles: true,\n composed: true,\n detail: {\n record: this.record,\n row: this.rowIndex\n }\n })\n )\n popup.close()\n })\n\n this.recordView.addEventListener('ok', () => {\n popup.close()\n })\n\n popup.onclosed = () => {\n delete this._recordView\n }\n }\n }\n })\n )\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"record-partial.js","sourceRoot":"","sources":["../../../src/data-list/record-partial.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/mwc-icon'\nimport './data-list-gutter'\nimport './data-list-field'\nimport '../record-view'\n\nimport { css, html, LitElement, PropertyValues } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { ZERO_CONFIG, ZERO_DATA, ZERO_RECORD } from '../configure/zero-config'\nimport { GristConfig, GristData, GristRecord } from '../types'\nimport { recordPartialClickHandler } from './event-handlers/record-partial-click-handler'\nimport { recordPartialDblClickHandler } from './event-handlers/record-partial-dblclick-handler'\n\n// import { recordPartialLongPressHandler } from './event-handlers/record-partial-long-press-handler'\n\n// TODO 로케일 설정에 따라서 포맷이 바뀌도록 해야한다.\nconst OPTIONS: Intl.DateTimeFormatOptions = {\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n hour12: false\n // timeZone: 'America/Los_Angeles'\n}\n\nconst formatter = new Intl.DateTimeFormat(navigator.language, OPTIONS)\n\n@customElement('ox-record-partial')\nexport class RecordPartial extends LitElement {\n static styles = [\n css`\n :host {\n display: flex;\n flex-direction: row;\n align-items: center;\n border-bottom: var(--data-list-item-border-bottom);\n position: relative;\n min-height: 42px;\n }\n\n ox-list-gutter {\n flex: 0 0 14px;\n }\n\n :host([dirty])::before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n\n width: 0px;\n height: 0px;\n border-top: var(--grid-record-dirty-border-top);\n border-right: var(--grid-record-dirty-border-left);\n }\n\n :host > * {\n margin: var(--data-list-item-margin);\n zoom: 1.4;\n }\n\n :host [dirty] {\n position: absolute;\n margin: 0;\n height: 20px;\n font: var(--grid-record-dirty-icon-font);\n text-indent: 1px;\n left: 0;\n top: 0;\n color: var(--grid-record-dirty-color);\n }\n\n [content] {\n flex: auto;\n display: block;\n zoom: 1;\n }\n\n ox-list-field {\n padding-top: 3px;\n font: var(--data-list-item-etc-font);\n color: var(--data-list-item-etc-color);\n }\n\n ox-list-field[name] {\n font: var(--data-list-item-name-font);\n color: var(--data-list-item-name-color);\n }\n\n ox-list-field[desc] {\n font: var(--data-list-item-disc-font);\n color: var(--data-list-item-disc-color);\n }\n\n .update-info {\n font: var(--data-list-item-etc-font);\n color: var(--data-list-item-etc-color);\n }\n\n .update-info mwc-icon {\n vertical-align: middle;\n font-size: 1em;\n }\n `\n ]\n\n @property({ type: Object }) config: GristConfig = ZERO_CONFIG\n @property({ type: Object }) data: GristData = ZERO_DATA\n @property({ type: Object }) record: GristRecord = ZERO_RECORD\n @property({ type: Number }) rowIndex: number = -1\n /*\n * row-selector를 사용자가 변경할 때, record-partial의 update를 유도하기 위해 selected-row attribute를 property에 추가함.\n * (이를 해주지 않으면, 리스트 refresh 경우에 selected-row checkbox가 클리어되지 않는 현상이 발생함.)\n */\n @property({ type: Boolean, attribute: 'selected-row' }) selectedRow: boolean = false\n\n private _recordView: any\n\n attributeChangedCallback(name: string, oldval: any, newval: any) {\n super.attributeChangedCallback(name, oldval, newval)\n }\n\n onFieldChange(e: Event) {\n /* record-view의 이벤트를 부모에게로 전달한다. */\n this.dispatchEvent(\n new CustomEvent('field-change', {\n bubbles: true,\n composed: true,\n detail: (e as any).detail\n })\n )\n }\n\n get recordView() {\n if (!this._recordView) {\n this._recordView = document.createElement('ox-record-view')\n this._recordView.addEventListener('field-change', (e: CustomEvent) => this.onFieldChange(e))\n }\n\n var columns = this.config.columns\n\n this._recordView.columns = columns\n this._recordView.record = this.record\n this._recordView.rowIndex = this.rowIndex\n\n return this._recordView\n }\n\n firstUpdated() {\n /*\n long-press\n TODO. performance를 확인한 후에 활성화하자.\n */\n // longpressable(this.renderRoot.querySelector('[content]'))\n\n // this.renderRoot.addEventListener('long-press', recordPartialLongPressHandler.bind(this))\n this.renderRoot.addEventListener('click', recordPartialClickHandler.bind(this) as EventListener)\n this.renderRoot.addEventListener('dblclick', recordPartialDblClickHandler.bind(this) as EventListener)\n }\n\n updated(changes: PropertyValues<this>) {\n if (changes.has('record') && this._recordView) {\n this._recordView.record = this.record\n }\n }\n\n render() {\n var record = this.record\n var rowIndex = this.rowIndex\n var { columns, list } = this.config\n var { fields, details } = list || {}\n\n var displayColumns =\n [...fields, ...details].map(field => columns.find(column => column.name == field)).filter(column => column) || []\n var gutters = (columns || []).filter(column => column.type == 'gutter' && column.forList)\n\n if (this.hasAttribute('dirty')) {\n var dirtyIcon\n\n switch (this.record['__dirty__']) {\n case 'M':\n dirtyIcon = 'done'\n break\n case '+':\n dirtyIcon = 'add'\n break\n case '-':\n dirtyIcon = 'remove'\n break\n }\n }\n\n return html`\n ${dirtyIcon ? html` <mwc-icon dirty>${dirtyIcon}</mwc-icon> ` : html``}\n ${gutters.map(\n gutter =>\n html`\n <ox-list-gutter\n .rowIndex=${rowIndex}\n .column=${gutter}\n .record=${record}\n .value=${record[gutter.name]}\n ></ox-list-gutter>\n `\n )}\n\n <div content>\n ${displayColumns.map(\n (column, idx) =>\n html`\n <ox-list-field\n .rowIndex=${rowIndex}\n .column=${column}\n .record=${record}\n .value=${record[column?.name || '']}\n ?name=${idx == 0}\n ?desc=${idx == 1}\n ></ox-list-field>\n `\n )}\n </div>\n `\n }\n\n popupRecordView() {\n var titleField = this.config.list.fields[0] || 'name'\n var title = this.record[titleField]\n\n /* field가 오브젝트형인 경우에는 렌더러를 타이틀로 사용한다. */\n if (typeof title == 'object') {\n var column = this.config.columns.find(column => column.name == titleField)\n title = column?.record.renderer(title, column, this.record, this.rowIndex, this /* cautious */)\n }\n\n document.dispatchEvent(\n new CustomEvent('open-popup', {\n detail: {\n template: this.recordView,\n options: {\n backdrop: true,\n size: 'large',\n title\n },\n callback: (popup: any) => {\n this.recordView.addEventListener('reset', () => {\n this.dispatchEvent(\n new CustomEvent('record-reset', {\n bubbles: true,\n composed: true,\n detail: {\n record: this.record,\n row: this.rowIndex\n }\n })\n )\n })\n\n this.recordView.addEventListener('cancel', () => {\n this.dispatchEvent(\n new CustomEvent('record-reset', {\n bubbles: true,\n composed: true,\n detail: {\n record: this.record,\n row: this.rowIndex\n }\n })\n )\n popup.close()\n })\n\n this.recordView.addEventListener('ok', () => {\n popup.close()\n })\n\n popup.onclosed = () => {\n delete this._recordView\n }\n }\n }\n })\n )\n }\n}\n"]}
|