@things-factory/meta-ui 8.0.65 → 8.0.69

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.
@@ -2,7 +2,7 @@ import { html } from 'lit'
2
2
 
3
3
  import { OxGristEditor } from '@operato/data-grist'
4
4
  import { openPopup } from '@operato/layout'
5
- import { TermsUtil } from '../../../utils/terms-util';
5
+ import { TermsUtil } from '../../../utils/terms-util'
6
6
 
7
7
  import '../../popup/meta-object-selector-popup'
8
8
 
@@ -17,36 +17,39 @@ export class GristEditorMetaObjectSelector extends OxGristEditor {
17
17
  popup: Object
18
18
  }
19
19
  }
20
-
20
+
21
21
  get editorTemplate() {
22
- let text = '';
22
+ let text = ''
23
23
 
24
- if(this.value && this.column.record.options){
24
+ if (this.value && this.column.record.options) {
25
+ let fields = this.column.record.options.nameField.split(',')
26
+ text = this.value[fields[0]]
25
27
 
26
- let fields = this.column.record.options.nameField.split(",");
27
- text = this.value[fields[0]];
28
-
29
- if(fields.length > 1){
30
- text+= `(${fields.splice(1).map(field => { return this.value[field]}).join(",")})`
28
+ if (fields.length > 1) {
29
+ text += `(${fields
30
+ .splice(1)
31
+ .map(field => {
32
+ return this.value[field]
33
+ })
34
+ .join(',')})`
31
35
  }
32
- }
33
-
36
+ }
37
+
34
38
  return html`
35
39
  ${!this.value
36
40
  ? html`<span tabindex="0">${text}</span>`
37
41
  : html` <span tabindex="0" style="flex:1">${text}</span> `}
38
42
  `
39
43
  }
40
-
44
+
41
45
  async firstUpdated() {
42
46
  super.firstUpdated()
43
47
  }
44
48
 
45
49
  _onclick(e) {
46
50
  e.stopPropagation()
47
- this.openSelector()
48
51
  }
49
-
52
+
50
53
  _onkeydown(e) {
51
54
  const key = e.key
52
55
  if (key == 'Enter') {
@@ -54,28 +57,29 @@ export class GristEditorMetaObjectSelector extends OxGristEditor {
54
57
  this.openSelector()
55
58
  }
56
59
  }
57
-
60
+
61
+ _ondblclick(e) {
62
+ e.stopPropagation()
63
+ this.openSelector()
64
+ }
65
+
58
66
  openSelector() {
59
67
  if (this.popup) {
60
68
  delete this.popup
61
69
  }
62
70
 
63
- var {
64
- selectorName = TermsUtil.tTitle('select_item')
65
- } = this.column.record.options || {}
71
+ var { selectorName = TermsUtil.tTitle('select_item') } = this.column.record.options || {}
72
+
73
+ const confirmCallback = selected => {
74
+ let fieldMap = this.column.record.options.fieldMap || {}
66
75
 
67
- const confirmCallback = (selected) => {
68
- let fieldMap = this.column.record.options.fieldMap || {};
69
-
70
76
  this.dispatchEvent(
71
77
  new CustomEvent('field-change', {
72
78
  bubbles: true,
73
79
  composed: true,
74
80
  detail: {
75
81
  before: this.value,
76
- after: selected
77
- ? selected
78
- : null,
82
+ after: selected ? selected : null,
79
83
  record: this.record,
80
84
  column: this.column,
81
85
  row: this.row
@@ -83,18 +87,16 @@ export class GristEditorMetaObjectSelector extends OxGristEditor {
83
87
  })
84
88
  )
85
89
 
86
- Object.keys(fieldMap).forEach(key =>{
90
+ Object.keys(fieldMap).forEach(key => {
87
91
  this.dispatchEvent(
88
92
  new CustomEvent('field-change', {
89
93
  bubbles: true,
90
94
  composed: true,
91
95
  detail: {
92
96
  before: this.record[fieldMap[key]],
93
- after: selected
94
- ? selected[key]
95
- : null,
97
+ after: selected ? selected[key] : null,
96
98
  record: this.record,
97
- column: {name: fieldMap[key]},
99
+ column: { name: fieldMap[key] },
98
100
  row: this.row
99
101
  }
100
102
  })
@@ -103,20 +105,20 @@ export class GristEditorMetaObjectSelector extends OxGristEditor {
103
105
  }
104
106
 
105
107
  var template = html`
106
- <meta-object-selector-popup
107
- .value=${this.value}
108
- .options=${this.column.record.options}
109
- .record=${this.record}
110
- .confirmCallback=${confirmCallback.bind(this)}
111
- ></meta-object-selector-popup>
112
- `
108
+ <meta-object-selector-popup
109
+ .value=${this.value}
110
+ .options=${this.column.record.options}
111
+ .record=${this.record}
112
+ .confirmCallback=${confirmCallback.bind(this)}
113
+ ></meta-object-selector-popup>
114
+ `
113
115
 
114
116
  this.popup = openPopup(template, {
115
117
  backdrop: true,
116
118
  size: 'large',
117
119
  title: TermsUtil.tMenu(selectorName)
118
120
  })
119
- }
121
+ }
120
122
  }
121
-
122
- customElements.define('grist-editor-meta-object-selector', GristEditorMetaObjectSelector)
123
+
124
+ customElements.define('grist-editor-meta-object-selector', GristEditorMetaObjectSelector)
@@ -9,6 +9,7 @@ export class GristEditorMetaObjectSelector extends OxGristEditor {
9
9
  };
10
10
  _onclick(e: any): void;
11
11
  _onkeydown(e: any): void;
12
+ _ondblclick(e: any): void;
12
13
  openSelector(): void;
13
14
  popup: import("@operato/layout").PopupHandle | undefined;
14
15
  }
@@ -17,10 +17,15 @@ export class GristEditorMetaObjectSelector extends OxGristEditor {
17
17
  get editorTemplate() {
18
18
  let text = '';
19
19
  if (this.value && this.column.record.options) {
20
- let fields = this.column.record.options.nameField.split(",");
20
+ let fields = this.column.record.options.nameField.split(',');
21
21
  text = this.value[fields[0]];
22
22
  if (fields.length > 1) {
23
- text += `(${fields.splice(1).map(field => { return this.value[field]; }).join(",")})`;
23
+ text += `(${fields
24
+ .splice(1)
25
+ .map(field => {
26
+ return this.value[field];
27
+ })
28
+ .join(',')})`;
24
29
  }
25
30
  }
26
31
  return html `
@@ -34,7 +39,6 @@ export class GristEditorMetaObjectSelector extends OxGristEditor {
34
39
  }
35
40
  _onclick(e) {
36
41
  e.stopPropagation();
37
- this.openSelector();
38
42
  }
39
43
  _onkeydown(e) {
40
44
  const key = e.key;
@@ -43,21 +47,23 @@ export class GristEditorMetaObjectSelector extends OxGristEditor {
43
47
  this.openSelector();
44
48
  }
45
49
  }
50
+ _ondblclick(e) {
51
+ e.stopPropagation();
52
+ this.openSelector();
53
+ }
46
54
  openSelector() {
47
55
  if (this.popup) {
48
56
  delete this.popup;
49
57
  }
50
58
  var { selectorName = TermsUtil.tTitle('select_item') } = this.column.record.options || {};
51
- const confirmCallback = (selected) => {
59
+ const confirmCallback = selected => {
52
60
  let fieldMap = this.column.record.options.fieldMap || {};
53
61
  this.dispatchEvent(new CustomEvent('field-change', {
54
62
  bubbles: true,
55
63
  composed: true,
56
64
  detail: {
57
65
  before: this.value,
58
- after: selected
59
- ? selected
60
- : null,
66
+ after: selected ? selected : null,
61
67
  record: this.record,
62
68
  column: this.column,
63
69
  row: this.row
@@ -69,9 +75,7 @@ export class GristEditorMetaObjectSelector extends OxGristEditor {
69
75
  composed: true,
70
76
  detail: {
71
77
  before: this.record[fieldMap[key]],
72
- after: selected
73
- ? selected[key]
74
- : null,
78
+ after: selected ? selected[key] : null,
75
79
  record: this.record,
76
80
  column: { name: fieldMap[key] },
77
81
  row: this.row
@@ -80,13 +84,13 @@ export class GristEditorMetaObjectSelector extends OxGristEditor {
80
84
  });
81
85
  };
82
86
  var template = html `
83
- <meta-object-selector-popup
84
- .value=${this.value}
85
- .options=${this.column.record.options}
86
- .record=${this.record}
87
- .confirmCallback=${confirmCallback.bind(this)}
88
- ></meta-object-selector-popup>
89
- `;
87
+ <meta-object-selector-popup
88
+ .value=${this.value}
89
+ .options=${this.column.record.options}
90
+ .record=${this.record}
91
+ .confirmCallback=${confirmCallback.bind(this)}
92
+ ></meta-object-selector-popup>
93
+ `;
90
94
  this.popup = openPopup(template, {
91
95
  backdrop: true,
92
96
  size: 'large',
@@ -1 +1 @@
1
- {"version":3,"file":"grist-editor-meta-object-selector.js","sourceRoot":"","sources":["../../../../client/component/grist/editor/grist-editor-meta-object-selector.js"],"names":[],"mappings":"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","sourcesContent":["import { html } from 'lit'\n\nimport { OxGristEditor } from '@operato/data-grist'\nimport { openPopup } from '@operato/layout'\nimport { TermsUtil } from '../../../utils/terms-util';\n\nimport '../../popup/meta-object-selector-popup'\n\nexport class GristEditorMetaObjectSelector extends OxGristEditor {\n static get properties() {\n return {\n value: Object,\n column: Object,\n record: Object,\n rowIndex: Number,\n field: Object,\n popup: Object\n }\n }\n \n get editorTemplate() {\n let text = '';\n\n if(this.value && this.column.record.options){\n\n let fields = this.column.record.options.nameField.split(\",\");\n text = this.value[fields[0]];\n \n if(fields.length > 1){\n text+= `(${fields.splice(1).map(field => { return this.value[field]}).join(\",\")})` \n }\n } \n \n return html`\n ${!this.value\n ? html`<span tabindex=\"0\">${text}</span>`\n : html` <span tabindex=\"0\" style=\"flex:1\">${text}</span> `}\n `\n }\n \n async firstUpdated() {\n super.firstUpdated()\n }\n\n _onclick(e) {\n e.stopPropagation()\n this.openSelector()\n }\n \n _onkeydown(e) {\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 var {\n selectorName = TermsUtil.tTitle('select_item')\n } = this.column.record.options || {}\n\n const confirmCallback = (selected) => {\n let fieldMap = this.column.record.options.fieldMap || {};\n \n this.dispatchEvent(\n new CustomEvent('field-change', {\n bubbles: true,\n composed: true,\n detail: {\n before: this.value,\n after: selected\n ? selected\n : null,\n record: this.record,\n column: this.column,\n row: this.row\n }\n })\n )\n\n Object.keys(fieldMap).forEach(key =>{\n this.dispatchEvent(\n new CustomEvent('field-change', {\n bubbles: true,\n composed: true,\n detail: {\n before: this.record[fieldMap[key]],\n after: selected\n ? selected[key]\n : null,\n record: this.record,\n column: {name: fieldMap[key]},\n row: this.row\n }\n })\n )\n })\n }\n\n var template = html`\n <meta-object-selector-popup\n .value=${this.value}\n .options=${this.column.record.options}\n .record=${this.record}\n .confirmCallback=${confirmCallback.bind(this)}\n ></meta-object-selector-popup>\n `\n\n this.popup = openPopup(template, {\n backdrop: true,\n size: 'large',\n title: TermsUtil.tMenu(selectorName)\n })\n } \n}\n \ncustomElements.define('grist-editor-meta-object-selector', GristEditorMetaObjectSelector)"]}
1
+ {"version":3,"file":"grist-editor-meta-object-selector.js","sourceRoot":"","sources":["../../../../client/component/grist/editor/grist-editor-meta-object-selector.js"],"names":[],"mappings":"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","sourcesContent":["import { html } from 'lit'\n\nimport { OxGristEditor } from '@operato/data-grist'\nimport { openPopup } from '@operato/layout'\nimport { TermsUtil } from '../../../utils/terms-util'\n\nimport '../../popup/meta-object-selector-popup'\n\nexport class GristEditorMetaObjectSelector extends OxGristEditor {\n static get properties() {\n return {\n value: Object,\n column: Object,\n record: Object,\n rowIndex: Number,\n field: Object,\n popup: Object\n }\n }\n\n get editorTemplate() {\n let text = ''\n\n if (this.value && this.column.record.options) {\n let fields = this.column.record.options.nameField.split(',')\n text = this.value[fields[0]]\n\n if (fields.length > 1) {\n text += `(${fields\n .splice(1)\n .map(field => {\n return this.value[field]\n })\n .join(',')})`\n }\n }\n\n return html`\n ${!this.value\n ? html`<span tabindex=\"0\">${text}</span>`\n : html` <span tabindex=\"0\" style=\"flex:1\">${text}</span> `}\n `\n }\n\n async firstUpdated() {\n super.firstUpdated()\n }\n\n _onclick(e) {\n e.stopPropagation()\n }\n\n _onkeydown(e) {\n const key = e.key\n if (key == 'Enter') {\n e.stopPropagation()\n this.openSelector()\n }\n }\n\n _ondblclick(e) {\n e.stopPropagation()\n this.openSelector()\n }\n\n openSelector() {\n if (this.popup) {\n delete this.popup\n }\n\n var { selectorName = TermsUtil.tTitle('select_item') } = this.column.record.options || {}\n\n const confirmCallback = selected => {\n let fieldMap = this.column.record.options.fieldMap || {}\n\n this.dispatchEvent(\n new CustomEvent('field-change', {\n bubbles: true,\n composed: true,\n detail: {\n before: this.value,\n after: selected ? selected : null,\n record: this.record,\n column: this.column,\n row: this.row\n }\n })\n )\n\n Object.keys(fieldMap).forEach(key => {\n this.dispatchEvent(\n new CustomEvent('field-change', {\n bubbles: true,\n composed: true,\n detail: {\n before: this.record[fieldMap[key]],\n after: selected ? selected[key] : null,\n record: this.record,\n column: { name: fieldMap[key] },\n row: this.row\n }\n })\n )\n })\n }\n\n var template = html`\n <meta-object-selector-popup\n .value=${this.value}\n .options=${this.column.record.options}\n .record=${this.record}\n .confirmCallback=${confirmCallback.bind(this)}\n ></meta-object-selector-popup>\n `\n\n this.popup = openPopup(template, {\n backdrop: true,\n size: 'large',\n title: TermsUtil.tMenu(selectorName)\n })\n }\n}\n\ncustomElements.define('grist-editor-meta-object-selector', GristEditorMetaObjectSelector)\n"]}