@things-factory/board-ui 10.1.41 → 10.1.42
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/dist-client/board-list/board-thumb.d.ts +33 -0
- package/dist-client/board-list/board-thumb.js +119 -0
- package/dist-client/board-list/board-thumb.js.map +1 -0
- package/dist-client/graphql/favorite-board.js +3 -0
- package/dist-client/graphql/favorite-board.js.map +1 -1
- package/dist-client/graphql/my-board.js +3 -0
- package/dist-client/graphql/my-board.js.map +1 -1
- package/dist-client/graphql/play-group.js +2 -0
- package/dist-client/graphql/play-group.js.map +1 -1
- package/dist-client/index.d.ts +1 -0
- package/dist-client/index.js +1 -0
- package/dist-client/index.js.map +1 -1
- package/dist-client/pages/board-list-page.d.ts +39 -42
- package/dist-client/pages/board-list-page.js +388 -284
- package/dist-client/pages/board-list-page.js.map +1 -1
- package/dist-client/pages/board-modeller-page.d.ts +2 -0
- package/dist-client/pages/board-modeller-page.js +18 -1
- package/dist-client/pages/board-modeller-page.js.map +1 -1
- package/dist-client/pages/board-template/board-template-list-page.d.ts +21 -10
- package/dist-client/pages/board-template/board-template-list-page.js +147 -136
- package/dist-client/pages/board-template/board-template-list-page.js.map +1 -1
- package/dist-client/pages/play-list-page.d.ts +22 -12
- package/dist-client/pages/play-list-page.js +264 -113
- package/dist-client/pages/play-list-page.js.map +1 -1
- package/dist-client/route.d.ts +1 -1
- package/dist-client/setting-let/board-modeller-setting-let.d.ts +21 -0
- package/dist-client/setting-let/board-modeller-setting-let.js +144 -0
- package/dist-client/setting-let/board-modeller-setting-let.js.map +1 -0
- package/dist-client/styles/board-card-styles.d.ts +11 -0
- package/dist-client/styles/board-card-styles.js +90 -0
- package/dist-client/styles/board-card-styles.js.map +1 -0
- package/dist-client/themes/board-theme.css +32 -19
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-client/utils/board-meta.d.ts +10 -0
- package/dist-client/utils/board-meta.js +34 -0
- package/dist-client/utils/board-meta.js.map +1 -0
- package/dist-client/viewparts/board-basic-info.d.ts +38 -7
- package/dist-client/viewparts/board-basic-info.js +378 -349
- package/dist-client/viewparts/board-basic-info.js.map +1 -1
- package/dist-client/viewparts/board-info-link.d.ts +5 -1
- package/dist-client/viewparts/board-info-link.js +79 -21
- package/dist-client/viewparts/board-info-link.js.map +1 -1
- package/dist-client/viewparts/board-info-template.d.ts +15 -0
- package/dist-client/viewparts/board-info-template.js +97 -0
- package/dist-client/viewparts/board-info-template.js.map +1 -0
- package/dist-client/viewparts/board-info.d.ts +5 -0
- package/dist-client/viewparts/board-info.js +24 -73
- package/dist-client/viewparts/board-info.js.map +1 -1
- package/dist-client/viewparts/board-template-builder.d.ts +1 -0
- package/dist-client/viewparts/board-template-builder.js +37 -65
- package/dist-client/viewparts/board-template-builder.js.map +1 -1
- package/dist-client/viewparts/board-template-info.d.ts +3 -0
- package/dist-client/viewparts/board-template-info.js +75 -134
- package/dist-client/viewparts/board-template-info.js.map +1 -1
- package/dist-client/viewparts/group-info-basic.d.ts +8 -3
- package/dist-client/viewparts/group-info-basic.js +54 -190
- package/dist-client/viewparts/group-info-basic.js.map +1 -1
- package/dist-client/viewparts/group-info-import.d.ts +3 -1
- package/dist-client/viewparts/group-info-import.js +29 -62
- package/dist-client/viewparts/group-info-import.js.map +1 -1
- package/dist-client/viewparts/group-info.d.ts +4 -0
- package/dist-client/viewparts/group-info.js +21 -55
- package/dist-client/viewparts/group-info.js.map +1 -1
- package/dist-client/viewparts/info-dialog-styles.d.ts +19 -0
- package/dist-client/viewparts/info-dialog-styles.js +194 -0
- package/dist-client/viewparts/info-dialog-styles.js.map +1 -0
- package/dist-client/viewparts/link-builder.d.ts +3 -0
- package/dist-client/viewparts/link-builder.js +87 -81
- package/dist-client/viewparts/link-builder.js.map +1 -1
- package/dist-client/viewparts/play-group-info-basic.d.ts +4 -3
- package/dist-client/viewparts/play-group-info-basic.js +49 -188
- package/dist-client/viewparts/play-group-info-basic.js.map +1 -1
- package/dist-client/viewparts/play-group-info.d.ts +4 -0
- package/dist-client/viewparts/play-group-info.js +22 -53
- package/dist-client/viewparts/play-group-info.js.map +1 -1
- package/package.json +4 -4
- package/translations/en.json +32 -0
- package/translations/ja.json +10 -0
- package/translations/ko.json +32 -0
- package/translations/ms.json +8 -0
- package/translations/zh.json +10 -0
|
@@ -1,194 +1,68 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
2
|
import '@material/web/icon/icon.js';
|
|
3
|
-
import '@material/web/
|
|
4
|
-
import '@material/web/button/
|
|
5
|
-
import {
|
|
3
|
+
import '@material/web/button/filled-button.js';
|
|
4
|
+
import '@material/web/button/text-button.js';
|
|
5
|
+
import { html, LitElement } from 'lit';
|
|
6
6
|
import { customElement, property, state } from 'lit/decorators.js';
|
|
7
7
|
import { i18next } from '@operato/i18n';
|
|
8
|
+
import { CommonPopupStyles } from '@operato/styles';
|
|
8
9
|
import { fetchPlayGroup } from '../graphql/index.js';
|
|
10
|
+
import { InfoFormStyles } from './info-dialog-styles.js';
|
|
11
|
+
/** The play-group form - the same shape as group-info-basic.ts, on purpose. */
|
|
9
12
|
let PlayGroupInfoBasic = class PlayGroupInfoBasic extends LitElement {
|
|
10
13
|
constructor() {
|
|
11
14
|
super(...arguments);
|
|
12
15
|
this.playGroup = { name: '', description: '' };
|
|
13
16
|
}
|
|
14
|
-
static { this.styles = [
|
|
15
|
-
css `
|
|
16
|
-
:host {
|
|
17
|
-
display: block;
|
|
18
|
-
color: var(--md-sys-color-on-surface);
|
|
19
|
-
background-color: var(--md-sys-color-surface);
|
|
20
|
-
height: 100%;
|
|
21
|
-
min-width: 360px;
|
|
22
|
-
overflow: auto;
|
|
23
|
-
position: relative;
|
|
24
|
-
|
|
25
|
-
--form-grid-gap: 2px 0;
|
|
26
|
-
--input-field-padding: var(--spacing-medium);
|
|
27
|
-
--legend-padding: var(--spacing-medium) 0 var(--spacing-small) 0;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
form {
|
|
31
|
-
display: grid;
|
|
32
|
-
grid-template-columns: repeat(12, 1fr);
|
|
33
|
-
grid-gap: var(--form-grid-gap);
|
|
34
|
-
grid-auto-rows: minmax(24px, auto);
|
|
35
|
-
padding: var(--spacing-large);
|
|
36
|
-
align-items: center;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
md-filled-text-field {
|
|
40
|
-
grid-column: span 12;
|
|
41
|
-
padding: 10px 0;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
[buttons] {
|
|
45
|
-
grid-column: span 12;
|
|
46
|
-
padding: var(--spacing-medium) 0;
|
|
47
|
-
text-align: right;
|
|
48
|
-
|
|
49
|
-
display: flex;
|
|
50
|
-
gap: var(--spacing-small);
|
|
51
|
-
align-items: center;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
[buttons] * {
|
|
55
|
-
margin: 0 0 0 auto;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
[danger] {
|
|
59
|
-
float: left;
|
|
60
|
-
margin: 0;
|
|
61
|
-
--md-elevated-button-icon-color: var(--md-sys-color-on-error);
|
|
62
|
-
--md-elevated-button-label-text-color: var(--md-sys-color-on-error);
|
|
63
|
-
--md-elevated-button-container-color: var(--md-sys-color-error);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
fieldset {
|
|
67
|
-
display: contents;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
legend {
|
|
71
|
-
grid-column: span 12;
|
|
72
|
-
padding: var(--legend-padding);
|
|
73
|
-
font: var(--legend-font);
|
|
74
|
-
color: var(--md-sys-color-primary);
|
|
75
|
-
text-transform: capitalize;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
label {
|
|
79
|
-
grid-column: span 12;
|
|
80
|
-
text-transform: capitalize;
|
|
81
|
-
color: var(--md-sys-color-primary);
|
|
82
|
-
font: var(--label-font);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
span {
|
|
86
|
-
grid-column: span 12;
|
|
87
|
-
border-bottom: var(--border-dim-color);
|
|
88
|
-
margin-bottom: var(--spacing-medium);
|
|
89
|
-
padding-bottom: var(--spacing-small);
|
|
90
|
-
font: var(--input-field-font);
|
|
91
|
-
}
|
|
92
|
-
span md-icon {
|
|
93
|
-
font-variation-settings: 'FILL' 1;
|
|
94
|
-
|
|
95
|
-
vertical-align: middle;
|
|
96
|
-
font-size: var(--fontsize-large);
|
|
97
|
-
color: var(--md-sys-color-primary);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
input,
|
|
101
|
-
table,
|
|
102
|
-
select,
|
|
103
|
-
textarea,
|
|
104
|
-
[custom-input] {
|
|
105
|
-
grid-column: span 12;
|
|
106
|
-
|
|
107
|
-
border: var(--input-field-border);
|
|
108
|
-
border-radius: var(--input-field-border-radius);
|
|
109
|
-
margin-bottom: var(--spacing-medium);
|
|
110
|
-
padding: var(--input-field-padding);
|
|
111
|
-
font: var(--input-field-font);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
input[type='checkbox'],
|
|
115
|
-
input[type='radio'] {
|
|
116
|
-
place-self: center;
|
|
117
|
-
margin: 0;
|
|
118
|
-
grid-column: 1;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
input[type='checkbox'] + label,
|
|
122
|
-
input[type='radio'] + label {
|
|
123
|
-
text-align: left;
|
|
124
|
-
grid-column: span 11 / auto;
|
|
125
|
-
|
|
126
|
-
font: var(--form-sublabel-font);
|
|
127
|
-
color: var(--md-sys-color-secondary);
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
input:focus {
|
|
131
|
-
outline: none;
|
|
132
|
-
border: 1px solid var(--focus-background-color);
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
@media screen and (max-width: 460px) {
|
|
136
|
-
:host {
|
|
137
|
-
width: 100vw;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
`
|
|
141
|
-
]; }
|
|
17
|
+
static { this.styles = [CommonPopupStyles, InfoFormStyles]; }
|
|
142
18
|
render() {
|
|
143
19
|
const playGroup = this.playGroup || { name: '', description: '' };
|
|
144
20
|
return html `
|
|
145
|
-
<
|
|
146
|
-
<
|
|
147
|
-
|
|
148
|
-
<
|
|
21
|
+
<div class="fields">
|
|
22
|
+
<label>
|
|
23
|
+
${i18next.t('label.name')}
|
|
24
|
+
<input type="text" .value=${playGroup.name || ''} @change=${e => (this.playGroup.name = e.target.value)} autofocus />
|
|
25
|
+
</label>
|
|
26
|
+
|
|
27
|
+
<label>
|
|
28
|
+
${i18next.t('label.description')}
|
|
29
|
+
<input
|
|
149
30
|
type="text"
|
|
150
|
-
label=${String(i18next.t('label.name'))}
|
|
151
|
-
.value=${playGroup.name || ''}
|
|
152
|
-
@change=${e => (this.playGroup.name = e.target.value)}
|
|
153
|
-
></md-filled-text-field>
|
|
154
|
-
|
|
155
|
-
<md-filled-text-field
|
|
156
|
-
type="text"
|
|
157
|
-
label=${String(i18next.t('label.description'))}
|
|
158
31
|
.value=${playGroup.description || ''}
|
|
159
32
|
@change=${e => (this.playGroup.description = e.target.value)}
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
<span>
|
|
164
|
-
<md-icon>person</md-icon> ${playGroup.creator && playGroup.creator.name}
|
|
165
|
-
<md-icon>schedule</md-icon> ${new Date(playGroup.createdAt).toLocaleString()}
|
|
166
|
-
</span>
|
|
33
|
+
/>
|
|
34
|
+
</label>
|
|
35
|
+
</div>
|
|
167
36
|
|
|
168
|
-
|
|
169
|
-
<span>
|
|
170
|
-
<md-icon>person</md-icon> ${playGroup.updater && playGroup.updater.name}
|
|
171
|
-
<md-icon>schedule</md-icon> ${new Date(playGroup.updatedAt).toLocaleString()}
|
|
172
|
-
</span>
|
|
37
|
+
${this.playGroupId ? this.renderProvenance(playGroup) : ''}
|
|
173
38
|
|
|
174
|
-
|
|
175
|
-
|
|
39
|
+
<div class="buttons">
|
|
40
|
+
${this.playGroupId
|
|
176
41
|
? html `
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
42
|
+
<md-text-button cap danger @click=${this.deletePlayGroup.bind(this)}>
|
|
43
|
+
<md-icon slot="icon">delete_outline</md-icon>${i18next.t('button.delete')}
|
|
44
|
+
</md-text-button>
|
|
45
|
+
<div filler></div>
|
|
46
|
+
<md-filled-button cap @click=${this.updateGroup.bind(this)}>
|
|
47
|
+
<md-icon slot="icon">save</md-icon>${i18next.t('button.save')}
|
|
48
|
+
</md-filled-button>
|
|
49
|
+
`
|
|
184
50
|
: html `
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
51
|
+
<div filler></div>
|
|
52
|
+
<md-filled-button cap @click=${this.createPlayGroup.bind(this)}>
|
|
53
|
+
<md-icon slot="icon">create_new_folder</md-icon>${i18next.t('button.create')}
|
|
54
|
+
</md-filled-button>
|
|
55
|
+
`}
|
|
56
|
+
</div>
|
|
57
|
+
`;
|
|
58
|
+
}
|
|
59
|
+
renderProvenance(playGroup) {
|
|
60
|
+
const when = (value) => (value ? new Date(value).toLocaleString() : '');
|
|
61
|
+
return html `
|
|
62
|
+
<div class="provenance">
|
|
63
|
+
<span>${i18next.t('label.creator')} <b>${playGroup.creator?.name || '-'}</b> ${when(playGroup.createdAt)}</span>
|
|
64
|
+
<span>${i18next.t('label.updater')} <b>${playGroup.updater?.name || '-'}</b> ${when(playGroup.updatedAt)}</span>
|
|
65
|
+
</div>
|
|
192
66
|
`;
|
|
193
67
|
}
|
|
194
68
|
updated(changes) {
|
|
@@ -199,12 +73,11 @@ let PlayGroupInfoBasic = class PlayGroupInfoBasic extends LitElement {
|
|
|
199
73
|
firstUpdated() {
|
|
200
74
|
setTimeout(() => {
|
|
201
75
|
;
|
|
202
|
-
this.renderRoot.querySelector('
|
|
76
|
+
this.renderRoot.querySelector('input')?.focus();
|
|
203
77
|
}, 100);
|
|
204
78
|
}
|
|
205
79
|
async refresh() {
|
|
206
80
|
if (!this.playGroupId) {
|
|
207
|
-
/* model이 없으므로, 기본 모델을 제공함. */
|
|
208
81
|
this.playGroup = { name: '', description: '' };
|
|
209
82
|
}
|
|
210
83
|
else {
|
|
@@ -213,27 +86,15 @@ let PlayGroupInfoBasic = class PlayGroupInfoBasic extends LitElement {
|
|
|
213
86
|
}
|
|
214
87
|
}
|
|
215
88
|
async createPlayGroup() {
|
|
216
|
-
this.dispatchEvent(new CustomEvent('create-play-group', {
|
|
217
|
-
detail: this.playGroup,
|
|
218
|
-
bubbles: true,
|
|
219
|
-
composed: true
|
|
220
|
-
}));
|
|
89
|
+
this.dispatchEvent(new CustomEvent('create-play-group', { detail: this.playGroup, bubbles: true, composed: true }));
|
|
221
90
|
this.close();
|
|
222
91
|
}
|
|
223
92
|
async updateGroup() {
|
|
224
|
-
this.dispatchEvent(new CustomEvent('update-play-group', {
|
|
225
|
-
detail: this.playGroup,
|
|
226
|
-
bubbles: true,
|
|
227
|
-
composed: true
|
|
228
|
-
}));
|
|
93
|
+
this.dispatchEvent(new CustomEvent('update-play-group', { detail: this.playGroup, bubbles: true, composed: true }));
|
|
229
94
|
this.close();
|
|
230
95
|
}
|
|
231
96
|
async deletePlayGroup() {
|
|
232
|
-
this.dispatchEvent(new CustomEvent('delete-play-group', {
|
|
233
|
-
detail: this.playGroup,
|
|
234
|
-
bubbles: true,
|
|
235
|
-
composed: true
|
|
236
|
-
}));
|
|
97
|
+
this.dispatchEvent(new CustomEvent('delete-play-group', { detail: this.playGroup, bubbles: true, composed: true }));
|
|
237
98
|
this.close();
|
|
238
99
|
}
|
|
239
100
|
close() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"play-group-info-basic.js","sourceRoot":"","sources":["../../client/viewparts/play-group-info-basic.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@material/web/textfield/filled-text-field.js'\nimport '@material/web/button/elevated-button.js'\n\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\n\nimport { i18next } from '@operato/i18n'\n\nimport { fetchPlayGroup } from '../graphql/index.js'\n\n@customElement('play-group-info-basic')\nexport class PlayGroupInfoBasic extends LitElement {\n static styles = [\n css`\n :host {\n display: block;\n color: var(--md-sys-color-on-surface);\n background-color: var(--md-sys-color-surface);\n height: 100%;\n min-width: 360px;\n overflow: auto;\n position: relative;\n\n --form-grid-gap: 2px 0;\n --input-field-padding: var(--spacing-medium);\n --legend-padding: var(--spacing-medium) 0 var(--spacing-small) 0;\n }\n\n form {\n display: grid;\n grid-template-columns: repeat(12, 1fr);\n grid-gap: var(--form-grid-gap);\n grid-auto-rows: minmax(24px, auto);\n padding: var(--spacing-large);\n align-items: center;\n }\n\n md-filled-text-field {\n grid-column: span 12;\n padding: 10px 0;\n }\n\n [buttons] {\n grid-column: span 12;\n padding: var(--spacing-medium) 0;\n text-align: right;\n\n display: flex;\n gap: var(--spacing-small);\n align-items: center;\n }\n\n [buttons] * {\n margin: 0 0 0 auto;\n }\n\n [danger] {\n float: left;\n margin: 0;\n --md-elevated-button-icon-color: var(--md-sys-color-on-error);\n --md-elevated-button-label-text-color: var(--md-sys-color-on-error);\n --md-elevated-button-container-color: var(--md-sys-color-error);\n }\n\n fieldset {\n display: contents;\n }\n\n legend {\n grid-column: span 12;\n padding: var(--legend-padding);\n font: var(--legend-font);\n color: var(--md-sys-color-primary);\n text-transform: capitalize;\n }\n\n label {\n grid-column: span 12;\n text-transform: capitalize;\n color: var(--md-sys-color-primary);\n font: var(--label-font);\n }\n\n span {\n grid-column: span 12;\n border-bottom: var(--border-dim-color);\n margin-bottom: var(--spacing-medium);\n padding-bottom: var(--spacing-small);\n font: var(--input-field-font);\n }\n span md-icon {\n font-variation-settings: 'FILL' 1;\n\n vertical-align: middle;\n font-size: var(--fontsize-large);\n color: var(--md-sys-color-primary);\n }\n\n input,\n table,\n select,\n textarea,\n [custom-input] {\n grid-column: span 12;\n\n border: var(--input-field-border);\n border-radius: var(--input-field-border-radius);\n margin-bottom: var(--spacing-medium);\n padding: var(--input-field-padding);\n font: var(--input-field-font);\n }\n\n input[type='checkbox'],\n input[type='radio'] {\n place-self: center;\n margin: 0;\n grid-column: 1;\n }\n\n input[type='checkbox'] + label,\n input[type='radio'] + label {\n text-align: left;\n grid-column: span 11 / auto;\n\n font: var(--form-sublabel-font);\n color: var(--md-sys-color-secondary);\n }\n\n input:focus {\n outline: none;\n border: 1px solid var(--focus-background-color);\n }\n\n @media screen and (max-width: 460px) {\n :host {\n width: 100vw;\n }\n }\n `\n ]\n\n @property({ type: String }) playGroupId?: string\n\n @state() playGroup: any = { name: '', description: '' }\n\n private link?: string\n\n render() {\n const playGroup = this.playGroup || { name: '', description: '' }\n\n return html`\n <form>\n <fieldset>\n <legend>playgroup information</legend>\n <md-filled-text-field\n type=\"text\"\n label=${String(i18next.t('label.name'))}\n .value=${playGroup.name || ''}\n @change=${e => (this.playGroup.name = e.target.value)}\n ></md-filled-text-field>\n\n <md-filled-text-field\n type=\"text\"\n label=${String(i18next.t('label.description'))}\n .value=${playGroup.description || ''}\n @change=${e => (this.playGroup.description = e.target.value)}\n ></md-filled-text-field>\n\n <label>${i18next.t('label.creator')}</label>\n <span>\n <md-icon>person</md-icon> ${playGroup.creator && playGroup.creator.name}\n <md-icon>schedule</md-icon> ${new Date(playGroup.createdAt).toLocaleString()}\n </span>\n\n <label>${i18next.t('label.updater')}</label>\n <span>\n <md-icon>person</md-icon> ${playGroup.updater && playGroup.updater.name}\n <md-icon>schedule</md-icon> ${new Date(playGroup.updatedAt).toLocaleString()}\n </span>\n\n <div buttons>\n ${this.playGroupId\n ? html`\n <md-elevated-button danger @click=${this.deletePlayGroup.bind(this)}\n ><md-icon slot=\"icon\">delete_outline</md-icon>${String(\n i18next.t('button.delete')\n )}</md-elevated-button\n >\n <md-elevated-button @click=${this.updateGroup.bind(this)}\n ><md-icon slot=\"icon\">save</md-icon>${String(i18next.t('button.save'))}</md-elevated-button\n >\n `\n : html`\n <md-elevated-button @click=${this.createPlayGroup.bind(this)}\n ><md-icon slot=\"icon\">create_new_folder</md-icon>${String(\n i18next.t('button.create')\n )}</md-elevated-button\n >\n `}\n </div>\n </fieldset>\n </form>\n `\n }\n\n updated(changes) {\n if (changes.has('playGroupId')) {\n this.refresh()\n }\n }\n\n firstUpdated() {\n setTimeout(() => {\n ;(this.renderRoot.querySelector('[type=text]') as any).focus()\n }, 100)\n }\n\n async refresh() {\n if (!this.playGroupId) {\n /* model이 없으므로, 기본 모델을 제공함. */\n this.playGroup = { name: '', description: '' }\n } else {\n const response = await fetchPlayGroup(this.playGroupId)\n this.playGroup = response.playGroup\n }\n }\n\n async createPlayGroup() {\n this.dispatchEvent(\n new CustomEvent('create-play-group', {\n detail: this.playGroup,\n bubbles: true,\n composed: true\n })\n )\n\n this.close()\n }\n\n async updateGroup() {\n this.dispatchEvent(\n new CustomEvent('update-play-group', {\n detail: this.playGroup,\n bubbles: true,\n composed: true\n })\n )\n\n this.close()\n }\n\n async deletePlayGroup() {\n this.dispatchEvent(\n new CustomEvent('delete-play-group', {\n detail: this.playGroup,\n bubbles: true,\n composed: true\n })\n )\n\n this.close()\n }\n\n close() {\n history.back()\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"play-group-info-basic.js","sourceRoot":"","sources":["../../client/viewparts/play-group-info-basic.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@material/web/button/filled-button.js'\nimport '@material/web/button/text-button.js'\n\nimport { html, LitElement } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\n\nimport { i18next } from '@operato/i18n'\nimport { CommonPopupStyles } from '@operato/styles'\n\nimport { fetchPlayGroup } from '../graphql/index.js'\nimport { InfoFormStyles } from './info-dialog-styles.js'\n\n/** The play-group form - the same shape as group-info-basic.ts, on purpose. */\n@customElement('play-group-info-basic')\nexport class PlayGroupInfoBasic extends LitElement {\n static styles = [CommonPopupStyles, InfoFormStyles]\n\n @property({ type: String }) playGroupId?: string\n\n @state() playGroup: any = { name: '', description: '' }\n\n render() {\n const playGroup = this.playGroup || { name: '', description: '' }\n\n return html`\n <div class=\"fields\">\n <label>\n ${i18next.t('label.name')}\n <input type=\"text\" .value=${playGroup.name || ''} @change=${e => (this.playGroup.name = e.target.value)} autofocus />\n </label>\n\n <label>\n ${i18next.t('label.description')}\n <input\n type=\"text\"\n .value=${playGroup.description || ''}\n @change=${e => (this.playGroup.description = e.target.value)}\n />\n </label>\n </div>\n\n ${this.playGroupId ? this.renderProvenance(playGroup) : ''}\n\n <div class=\"buttons\">\n ${this.playGroupId\n ? html`\n <md-text-button cap danger @click=${this.deletePlayGroup.bind(this)}>\n <md-icon slot=\"icon\">delete_outline</md-icon>${i18next.t('button.delete')}\n </md-text-button>\n <div filler></div>\n <md-filled-button cap @click=${this.updateGroup.bind(this)}>\n <md-icon slot=\"icon\">save</md-icon>${i18next.t('button.save')}\n </md-filled-button>\n `\n : html`\n <div filler></div>\n <md-filled-button cap @click=${this.createPlayGroup.bind(this)}>\n <md-icon slot=\"icon\">create_new_folder</md-icon>${i18next.t('button.create')}\n </md-filled-button>\n `}\n </div>\n `\n }\n\n private renderProvenance(playGroup: any) {\n const when = (value?: string) => (value ? new Date(value).toLocaleString() : '')\n\n return html`\n <div class=\"provenance\">\n <span>${i18next.t('label.creator')} <b>${playGroup.creator?.name || '-'}</b> ${when(playGroup.createdAt)}</span>\n <span>${i18next.t('label.updater')} <b>${playGroup.updater?.name || '-'}</b> ${when(playGroup.updatedAt)}</span>\n </div>\n `\n }\n\n updated(changes) {\n if (changes.has('playGroupId')) {\n this.refresh()\n }\n }\n\n firstUpdated() {\n setTimeout(() => {\n ;(this.renderRoot.querySelector('input') as any)?.focus()\n }, 100)\n }\n\n async refresh() {\n if (!this.playGroupId) {\n this.playGroup = { name: '', description: '' }\n } else {\n const response = await fetchPlayGroup(this.playGroupId)\n this.playGroup = response.playGroup\n }\n }\n\n async createPlayGroup() {\n this.dispatchEvent(new CustomEvent('create-play-group', { detail: this.playGroup, bubbles: true, composed: true }))\n this.close()\n }\n\n async updateGroup() {\n this.dispatchEvent(new CustomEvent('update-play-group', { detail: this.playGroup, bubbles: true, composed: true }))\n this.close()\n }\n\n async deletePlayGroup() {\n this.dispatchEvent(new CustomEvent('delete-play-group', { detail: this.playGroup, bubbles: true, composed: true }))\n this.close()\n }\n\n close() {\n history.back()\n }\n}\n"]}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { LitElement } from 'lit';
|
|
2
2
|
import './play-group-info-basic.js';
|
|
3
3
|
import './play-group-info-link.js';
|
|
4
|
+
/**
|
|
5
|
+
* The play-group dialog. A new play group is one short form with no tabs; an existing one adds
|
|
6
|
+
* the link tab (a headless player URL needs a group id to point at).
|
|
7
|
+
*/
|
|
4
8
|
export declare class PlayGroupInfo extends LitElement {
|
|
5
9
|
static styles: import("lit").CSSResult[];
|
|
6
10
|
playGroup?: {
|
|
@@ -1,70 +1,39 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import {
|
|
2
|
+
import { html, LitElement } from 'lit';
|
|
3
3
|
import { customElement, property, state } from 'lit/decorators.js';
|
|
4
4
|
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
5
|
+
import { i18next } from '@operato/i18n';
|
|
5
6
|
import { ScrollbarStyles } from '@operato/styles';
|
|
6
7
|
import './play-group-info-basic.js';
|
|
7
8
|
import './play-group-info-link.js';
|
|
9
|
+
import { InfoDialogStyles } from './info-dialog-styles.js';
|
|
10
|
+
/**
|
|
11
|
+
* The play-group dialog. A new play group is one short form with no tabs; an existing one adds
|
|
12
|
+
* the link tab (a headless player URL needs a group id to point at).
|
|
13
|
+
*/
|
|
8
14
|
let PlayGroupInfo = class PlayGroupInfo extends LitElement {
|
|
9
15
|
constructor() {
|
|
10
16
|
super(...arguments);
|
|
11
17
|
this.tab = 'basic';
|
|
12
18
|
}
|
|
13
|
-
static { this.styles = [
|
|
14
|
-
ScrollbarStyles,
|
|
15
|
-
css `
|
|
16
|
-
:host {
|
|
17
|
-
height: 100%;
|
|
18
|
-
min-width: 360px;
|
|
19
|
-
|
|
20
|
-
display: flex;
|
|
21
|
-
flex-direction: column;
|
|
22
|
-
position: relative;
|
|
23
|
-
background-color: var(--md-sys-color-surface);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
[tab] {
|
|
27
|
-
width: 100%;
|
|
28
|
-
display: flex;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
[tab] > * {
|
|
32
|
-
flex: 1;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
[content] {
|
|
36
|
-
flex: 1;
|
|
37
|
-
overflow-y: auto;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
span {
|
|
41
|
-
padding: 5px 4px 1px;
|
|
42
|
-
font: var(--group-bar-textbutton);
|
|
43
|
-
background-color: var(--md-sys-color-secondary);
|
|
44
|
-
color: rgba(255, 255, 255, 0.8);
|
|
45
|
-
text-align: center;
|
|
46
|
-
text-transform: uppercase;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
span[active] {
|
|
50
|
-
background-color: var(--md-sys-color-primary);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
@media screen and (max-width: 460px) {
|
|
54
|
-
:host {
|
|
55
|
-
width: 100vw;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
`
|
|
59
|
-
]; }
|
|
19
|
+
static { this.styles = [ScrollbarStyles, InfoDialogStyles]; }
|
|
60
20
|
render() {
|
|
21
|
+
const existing = !!this.playGroup?.id;
|
|
61
22
|
return html `
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
23
|
+
${existing
|
|
24
|
+
? html `
|
|
25
|
+
<div tab>
|
|
26
|
+
<span @click=${() => (this.tab = 'basic')} ?active=${this.tab == 'basic'}>
|
|
27
|
+
${i18next.t('label.basic', { defaultValue: 'Basic' })}
|
|
28
|
+
</span>
|
|
29
|
+
<span @click=${() => (this.tab = 'link')} ?active=${this.tab == 'link'}>
|
|
30
|
+
${i18next.t('label.link', { defaultValue: 'Link' })}
|
|
31
|
+
</span>
|
|
32
|
+
</div>
|
|
33
|
+
`
|
|
34
|
+
: ''}
|
|
66
35
|
<div content>
|
|
67
|
-
${this.tab == 'basic'
|
|
36
|
+
${this.tab == 'basic' || !existing
|
|
68
37
|
? html `<play-group-info-basic playGroupId=${ifDefined(this.playGroup?.id)}></play-group-info-basic>`
|
|
69
38
|
: html `<play-group-info-link .playGroup=${this.playGroup}></play-group-info-link>`}
|
|
70
39
|
</div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"play-group-info.js","sourceRoot":"","sources":["../../client/viewparts/play-group-info.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"play-group-info.js","sourceRoot":"","sources":["../../client/viewparts/play-group-info.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,4BAA4B,CAAA;AACnC,OAAO,2BAA2B,CAAA;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE1D;;;GAGG;AAEI,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,UAAU;IAAtC;;QAKI,QAAG,GAAW,OAAO,CAAA;IA6BhC,CAAC;aAjCQ,WAAM,GAAG,CAAC,eAAe,EAAE,gBAAgB,CAAC,AAAtC,CAAsC;IAMnD,MAAM;QACJ,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAA;QAErC,OAAO,IAAI,CAAA;QACP,QAAQ;YACR,CAAC,CAAC,IAAI,CAAA;;6BAEe,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,GAAG,IAAI,OAAO;kBACpE,OAAO,CAAC,CAAC,CAAC,aAAa,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;;6BAExC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,YAAY,IAAI,CAAC,GAAG,IAAI,MAAM;kBAClE,OAAO,CAAC,CAAC,CAAC,YAAY,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;;;WAGxD;YACH,CAAC,CAAC,EAAE;;UAEF,IAAI,CAAC,GAAG,IAAI,OAAO,IAAI,CAAC,QAAQ;YAChC,CAAC,CAAC,IAAI,CAAA,sCAAsC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,2BAA2B;YACpG,CAAC,CAAC,IAAI,CAAA,oCAAoC,IAAI,CAAC,SAAS,0BAA0B;;KAEvF,CAAA;IACH,CAAC;IAED,KAAK;QACH,OAAO,CAAC,IAAI,EAAE,CAAA;IAChB,CAAC;;AA9B2B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;gDAAyC;AAE3D;IAAR,KAAK,EAAE;;0CAAsB;AALnB,aAAa;IADzB,aAAa,CAAC,iBAAiB,CAAC;GACpB,aAAa,CAkCzB","sourcesContent":["import { html, LitElement } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\n\nimport { i18next } from '@operato/i18n'\nimport { ScrollbarStyles } from '@operato/styles'\n\nimport './play-group-info-basic.js'\nimport './play-group-info-link.js'\nimport { InfoDialogStyles } from './info-dialog-styles.js'\n\n/**\n * The play-group dialog. A new play group is one short form with no tabs; an existing one adds\n * the link tab (a headless player URL needs a group id to point at).\n */\n@customElement('play-group-info')\nexport class PlayGroupInfo extends LitElement {\n static styles = [ScrollbarStyles, InfoDialogStyles]\n\n @property({ type: Object }) playGroup?: { id: string; name: string }\n\n @state() tab: string = 'basic'\n\n render() {\n const existing = !!this.playGroup?.id\n\n return html`\n ${existing\n ? html`\n <div tab>\n <span @click=${() => (this.tab = 'basic')} ?active=${this.tab == 'basic'}>\n ${i18next.t('label.basic', { defaultValue: 'Basic' })}\n </span>\n <span @click=${() => (this.tab = 'link')} ?active=${this.tab == 'link'}>\n ${i18next.t('label.link', { defaultValue: 'Link' })}\n </span>\n </div>\n `\n : ''}\n <div content>\n ${this.tab == 'basic' || !existing\n ? html`<play-group-info-basic playGroupId=${ifDefined(this.playGroup?.id)}></play-group-info-basic>`\n : html`<play-group-info-link .playGroup=${this.playGroup}></play-group-info-link>`}\n </div>\n `\n }\n\n close() {\n history.back()\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@things-factory/board-ui",
|
|
3
|
-
"version": "10.1.
|
|
3
|
+
"version": "10.1.42",
|
|
4
4
|
"main": "dist-server/index.js",
|
|
5
5
|
"browser": "dist-client/index.js",
|
|
6
6
|
"things-factory": true,
|
|
@@ -43,11 +43,11 @@
|
|
|
43
43
|
"@operato/shell": "^10.0.0",
|
|
44
44
|
"@operato/styles": "^10.0.0",
|
|
45
45
|
"@operato/utils": "^10.0.0",
|
|
46
|
-
"@things-factory/barcode-base": "^10.1.
|
|
47
|
-
"@things-factory/board-ai": "^10.1.
|
|
46
|
+
"@things-factory/barcode-base": "^10.1.42",
|
|
47
|
+
"@things-factory/board-ai": "^10.1.42",
|
|
48
48
|
"@things-factory/fav-base": "^10.1.40",
|
|
49
49
|
"@things-factory/setting-base": "^10.1.40",
|
|
50
50
|
"@things-factory/utils": "^10.1.20"
|
|
51
51
|
},
|
|
52
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "982aa01403b979c4e348fd207a3fb4d1a7b5f521"
|
|
53
53
|
}
|
package/translations/en.json
CHANGED
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
"button.confirm": "confirm",
|
|
26
26
|
"button.copy": "copy",
|
|
27
27
|
"button.copy to draft": "copy to draft",
|
|
28
|
+
"button.copy-link": "Copy headless link",
|
|
28
29
|
"button.create": "create",
|
|
29
30
|
"button.create board": "create board",
|
|
30
31
|
"button.decrease-font": "decrease font",
|
|
@@ -32,9 +33,11 @@
|
|
|
32
33
|
"button.detail": "detail",
|
|
33
34
|
"button.diff with draft": "diff with draft",
|
|
34
35
|
"button.diff with previous": "diff with previous",
|
|
36
|
+
"button.duplicate": "Duplicate…",
|
|
35
37
|
"button.edit": "edit",
|
|
36
38
|
"button.edit-group": "Edit Group",
|
|
37
39
|
"button.export": "export",
|
|
40
|
+
"button.export-json": "Export as JSON",
|
|
38
41
|
"button.export-locale-file": "export locale files",
|
|
39
42
|
"button.font-selector": "Font Selector",
|
|
40
43
|
"button.fullscreen": "fullscreen",
|
|
@@ -52,6 +55,7 @@
|
|
|
52
55
|
"button.new-group": "New Group",
|
|
53
56
|
"button.open modeller": "open modeller",
|
|
54
57
|
"button.open-import": "Import",
|
|
58
|
+
"button.open-modeller": "Open in modeller",
|
|
55
59
|
"button.profile": "profile",
|
|
56
60
|
"button.redo": "redo",
|
|
57
61
|
"button.refresh": "refresh",
|
|
@@ -163,6 +167,7 @@
|
|
|
163
167
|
"label.back-side-template": "back side template",
|
|
164
168
|
"label.background-color": "background color",
|
|
165
169
|
"label.base-url": "Base URL",
|
|
170
|
+
"label.basic": "basic",
|
|
166
171
|
"label.begin-size": "begin size",
|
|
167
172
|
"label.begin-type": "begin type",
|
|
168
173
|
"label.bevel": "bevel",
|
|
@@ -314,6 +319,7 @@
|
|
|
314
319
|
"label.image-source": "Source",
|
|
315
320
|
"label.image-src": "Image Source",
|
|
316
321
|
"label.image-view": "image view",
|
|
322
|
+
"label.import": "import",
|
|
317
323
|
"label.import progress": "conversion progress",
|
|
318
324
|
"label.in-text": "in text",
|
|
319
325
|
"label.indoor-style": "indoor style",
|
|
@@ -352,6 +358,7 @@
|
|
|
352
358
|
"label.line-type": "line type",
|
|
353
359
|
"label.line-width": "Line Width",
|
|
354
360
|
"label.lines": "Lines",
|
|
361
|
+
"label.link": "link",
|
|
355
362
|
"label.locale": "Locale",
|
|
356
363
|
"label.location": "location",
|
|
357
364
|
"label.location-field": "Location Field",
|
|
@@ -386,6 +393,9 @@
|
|
|
386
393
|
"label.mm": "mm",
|
|
387
394
|
"label.modal": "modal",
|
|
388
395
|
"label.mode": "mode",
|
|
396
|
+
"label.modeller toolbar contextual": "Floating, next to the selection",
|
|
397
|
+
"label.modeller toolbar docked": "Docked at the top of the canvas",
|
|
398
|
+
"label.modeller toolbar fixed": "Classic toolbar with every tool",
|
|
389
399
|
"label.move_to_admin": "Move to Administrator Page",
|
|
390
400
|
"label.multi-axis": "Multi Axis",
|
|
391
401
|
"label.multiple": "multiple",
|
|
@@ -408,6 +418,7 @@
|
|
|
408
418
|
"label.opacity": "opacity",
|
|
409
419
|
"label.opinion": "opinion",
|
|
410
420
|
"label.options": "options",
|
|
421
|
+
"label.overwrite": "overwrite",
|
|
411
422
|
"label.padding": "padding",
|
|
412
423
|
"label.page": "page",
|
|
413
424
|
"label.parsing": "parsing",
|
|
@@ -456,6 +467,7 @@
|
|
|
456
467
|
"label.reasoning": "reasoning",
|
|
457
468
|
"label.rect-style": "rect style",
|
|
458
469
|
"label.ref": "reference",
|
|
470
|
+
"label.released": "released",
|
|
459
471
|
"label.released_at": "Released at",
|
|
460
472
|
"label.releases": "releases",
|
|
461
473
|
"label.remove": "remove",
|
|
@@ -608,6 +620,7 @@
|
|
|
608
620
|
"label.variable-list": "variable list",
|
|
609
621
|
"label.variables": "Variables",
|
|
610
622
|
"label.version": "Version",
|
|
623
|
+
"label.versions": "versions",
|
|
611
624
|
"label.vertical": "vertical",
|
|
612
625
|
"label.view type": "drawing type",
|
|
613
626
|
"label.viewer-option": "viewer option",
|
|
@@ -669,6 +682,7 @@
|
|
|
669
682
|
"text.Sure to X": "Are you sure to {x}",
|
|
670
683
|
"text.add_files": "text.Add Files",
|
|
671
684
|
"text.ai_assistant": "ai assistant",
|
|
685
|
+
"text.appliance token needs security privilege": "Adding an access token needs domain-owner or security query permission.",
|
|
672
686
|
"text.backfilling thumbnails": "generating thumbnails...",
|
|
673
687
|
"text.board cloned": "board '{board}' is cloned successfully",
|
|
674
688
|
"text.board created": "board '{board}' is created successfully",
|
|
@@ -677,6 +691,7 @@
|
|
|
677
691
|
"text.board reverted": "board '{board}' is reverted to version-'{version}' successfully",
|
|
678
692
|
"text.board updated": "board '{board}' is updated successfully",
|
|
679
693
|
"text.board-template deleted": "board template is deleted successfully",
|
|
694
|
+
"text.board-template hint": "Keeps a copy of this board as a starting point for new boards.",
|
|
680
695
|
"text.board-template updated": "board template is updated successfully",
|
|
681
696
|
"text.boards imported": "{count} boards are imported into group {group}",
|
|
682
697
|
"text.can-not-change-group": "You don't have authority to change group information!",
|
|
@@ -695,6 +710,9 @@
|
|
|
695
710
|
"text.drop or click to upload": "Drop a drawing here or click to browse",
|
|
696
711
|
"text.drop_file_here": "text.Drop file here...",
|
|
697
712
|
"text.drop_files_here": "text.Drop files here...",
|
|
713
|
+
"text.duplicate": "Duplicate",
|
|
714
|
+
"text.duplicate hint": "Copies this board into a domain and group. Give it a new name when copying within this domain.",
|
|
715
|
+
"text.edit group": "Edit",
|
|
698
716
|
"text.empty-admin-url-allowed": "Administrator Page URL should not be empty! Please set the Administrator Page URL at Settings page",
|
|
699
717
|
"text.empty-base-url-not-allowed": "Base URL should not be empty! Please set the Base URL",
|
|
700
718
|
"text.emptyDataMessage": "Search Result is Nothing.",
|
|
@@ -707,6 +725,7 @@
|
|
|
707
725
|
"text.group deleted": "group '{group}' is deleted successfully",
|
|
708
726
|
"text.group updated": "group '{group}' is updated successfully",
|
|
709
727
|
"text.group-required": "Label Group is Required!",
|
|
728
|
+
"text.headless-link hint": "Opens this board full screen with no application chrome - for a wall display or a kiosk.",
|
|
710
729
|
"text.import success": "Board created successfully",
|
|
711
730
|
"text.incorrect_file_type": "text.Incorrect File Type.",
|
|
712
731
|
"text.info_invalid": "Typed information is not valid.",
|
|
@@ -718,17 +737,23 @@
|
|
|
718
737
|
"text.joined into play-group": "board '{board}' joined into play-group '{playGroup}'",
|
|
719
738
|
"text.latest": "latest",
|
|
720
739
|
"text.leaved from play-group": "board '{board}' leaved from play-group '{playGroup}'",
|
|
740
|
+
"text.link copied": "Link copied",
|
|
721
741
|
"text.loading": "Loading...",
|
|
722
742
|
"text.login_failure": "Login failure.",
|
|
723
743
|
"text.model-overlay": "Because this label is status of {1} \n, you can not edit more.",
|
|
724
744
|
"text.model-overlay-authority-not-allow-change": "Cause of your authority, you can not edit more.",
|
|
725
745
|
"text.model-overlay-status-not-allow-change": "Because this label is status of {1} \n, you can not edit more.",
|
|
746
|
+
"text.modeller toolbar contextual": "Shows only the tools that apply to what is selected. The top row keeps undo, redo, fit, preview and the panel.",
|
|
747
|
+
"text.modeller toolbar docked": "The same selection tools, pinned top-centre of the canvas so they never cover a shape or a handle.",
|
|
748
|
+
"text.modeller toolbar fixed": "Every tool in one row across the top, all the time.",
|
|
726
749
|
"text.modeller-release-msg": "The version now you edit is older version, do you want to create and release new version base on the version?",
|
|
727
750
|
"text.modeller-release-title": "Release:Version Warning",
|
|
728
751
|
"text.modeller-save-msg": "The version now you edit is older version, do you want to create new version base on the version?",
|
|
729
752
|
"text.modeller-save-title": "Save:Version Warning",
|
|
730
753
|
"text.move-to-home": "It will be moved to home.",
|
|
731
754
|
"text.name-and-group-required": "Label Name and Label Group is Required!",
|
|
755
|
+
"text.new group": "New Group",
|
|
756
|
+
"text.new play-group": "New Play Group",
|
|
732
757
|
"text.no board to design": "no board is specified in the address, or the specified board was not found.",
|
|
733
758
|
"text.no board to show": "no board is specified in the address, or the specified board was not found.",
|
|
734
759
|
"text.no comment": "no comment",
|
|
@@ -745,7 +770,9 @@
|
|
|
745
770
|
"text.perspective notice": "Perspective drawings are difficult to infer floor plan positions — positional accuracy may be low. Please verify and adjust.",
|
|
746
771
|
"text.play-group created": "play-group '{playGroup}' is created successfully",
|
|
747
772
|
"text.play-group deleted": "play-group '{playGroup}' is deleted successfully",
|
|
773
|
+
"text.play-group membership applies at once": "Tap a play group to add or remove this board. This applies right away.",
|
|
748
774
|
"text.play-group updated": "play-group '{playGroup}' is updated successfully",
|
|
775
|
+
"text.plays in": "Plays in",
|
|
749
776
|
"text.pls-name-board": "Type board name",
|
|
750
777
|
"text.processing_file": "Processing File...",
|
|
751
778
|
"text.processing_msg": "Your Request is Processing.",
|
|
@@ -758,8 +785,11 @@
|
|
|
758
785
|
"text.reorder play-group": "play-group '{playGroup}' is reordered successfully",
|
|
759
786
|
"text.request-role-success": "Role requested and admin will check it at e-mail.",
|
|
760
787
|
"text.required_error": "Value Required.",
|
|
788
|
+
"text.save before release": "Save your changes first",
|
|
761
789
|
"text.saved": "saved",
|
|
762
790
|
"text.saving": "Saving...",
|
|
791
|
+
"text.search boards by name": "Search boards by name",
|
|
792
|
+
"text.search templates by name": "Search templates by name",
|
|
763
793
|
"text.search with type, id or tag": "search with type, id or tag",
|
|
764
794
|
"text.select_file": "Select File",
|
|
765
795
|
"text.server_unavailable": "text.Server Unavailable",
|
|
@@ -773,6 +803,7 @@
|
|
|
773
803
|
"text.too_many_files": "Too Many Files.",
|
|
774
804
|
"text.unexpected_server_error": "Unexpected Server Error",
|
|
775
805
|
"text.unknown_remaining_time": "unknown remaining time",
|
|
806
|
+
"text.updated by": "updated by",
|
|
776
807
|
"text.uploading": "Uploading...",
|
|
777
808
|
"text.user-active-confirm": "Would you like to active this user?",
|
|
778
809
|
"text.want-to-cancel-request-confirm": "Do you want to change this version to eidting version?",
|
|
@@ -780,6 +811,7 @@
|
|
|
780
811
|
"text.want-to-request-confirm": "Do you want to change this to finished version?",
|
|
781
812
|
"text.want-to-version-up": "Do you want to version up?",
|
|
782
813
|
"title.attachment list": "attachment list",
|
|
814
|
+
"title.board modeller setting": "Modeller contextual edit toolbar",
|
|
783
815
|
"title.board view setting": "Board UI setting",
|
|
784
816
|
"title.board-template list": "board template list",
|
|
785
817
|
"title.copy": "Copy",
|