@things-factory/board-ui 6.1.32 → 6.1.40
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 +8 -1
- package/client/data-grist/color-map-editor.ts +13 -0
- package/client/data-grist/color-ranges-editor.ts +13 -0
- package/client/pages/theme/theme-editors.ts +56 -0
- package/client/pages/{share/share-list-page.ts → theme/theme-list-page.ts} +23 -73
- package/client/route.ts +4 -0
- package/dist-client/bootstrap.js +7 -1
- package/dist-client/bootstrap.js.map +1 -1
- package/dist-client/data-grist/color-map-editor.d.ts +7 -0
- package/dist-client/data-grist/color-map-editor.js +16 -0
- package/dist-client/data-grist/color-map-editor.js.map +1 -0
- package/dist-client/data-grist/color-ranges-editor.d.ts +7 -0
- package/dist-client/data-grist/color-ranges-editor.js +16 -0
- package/dist-client/data-grist/color-ranges-editor.js.map +1 -0
- package/dist-client/pages/theme/theme-editors.d.ts +5 -0
- package/dist-client/pages/theme/theme-editors.js +53 -0
- package/dist-client/pages/theme/theme-editors.js.map +1 -0
- package/dist-client/pages/theme/theme-list-page.d.ts +49 -0
- package/dist-client/pages/theme/theme-list-page.js +300 -0
- package/dist-client/pages/theme/theme-list-page.js.map +1 -0
- package/dist-client/route.js +3 -0
- package/dist-client/route.js.map +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/things-factory.config.js +4 -0
- package/translations/en.json +5 -3
- package/translations/ja.json +2 -0
- package/translations/ko.json +2 -0
- package/translations/ms.json +2 -0
- package/translations/zh.json +2 -0
- package/client/pages/share/share-importer.ts +0 -97
package/client/bootstrap.ts
CHANGED
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
import '@operato/board/ox-property-editor-board-selector.js'
|
|
2
2
|
|
|
3
3
|
import { OxPropertyEditor } from '@operato/property-editor'
|
|
4
|
-
import { registerEditor, registerRenderer } from '@operato/data-grist'
|
|
4
|
+
import { OxGristRendererJson5, registerEditor, registerRenderer } from '@operato/data-grist'
|
|
5
5
|
|
|
6
6
|
import { BoardEditor } from './data-grist/board-editor'
|
|
7
7
|
import { BoardRenderer } from './data-grist/board-renderer'
|
|
8
|
+
import { ColorMapEditor } from './data-grist/color-map-editor'
|
|
9
|
+
import { ColorRangesEditor } from './data-grist/color-ranges-editor'
|
|
8
10
|
|
|
9
11
|
export default function bootstrap() {
|
|
10
12
|
registerRenderer('board', BoardRenderer)
|
|
13
|
+
registerRenderer('color-map', OxGristRendererJson5)
|
|
14
|
+
registerRenderer('color-ranges', OxGristRendererJson5)
|
|
15
|
+
|
|
11
16
|
registerEditor('board', BoardEditor)
|
|
17
|
+
registerEditor('color-map', ColorMapEditor)
|
|
18
|
+
registerEditor('color-ranges', ColorRangesEditor)
|
|
12
19
|
|
|
13
20
|
OxPropertyEditor.register({
|
|
14
21
|
'board-selector': 'ox-property-editor-board-selector'
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { customElement } from 'lit/decorators.js'
|
|
2
|
+
|
|
3
|
+
import { OxGristEditorValueMap } from '@operato/grist-editor/ox-grist-editor-value-map.js'
|
|
4
|
+
|
|
5
|
+
@customElement('color-map-editor')
|
|
6
|
+
export class ColorMapEditor extends OxGristEditorValueMap {
|
|
7
|
+
get options() {
|
|
8
|
+
return {
|
|
9
|
+
name: `Color Map : ${this.record.name}`,
|
|
10
|
+
valuetype: 'color'
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { customElement } from 'lit/decorators.js'
|
|
2
|
+
|
|
3
|
+
import { OxGristEditorValueRanges } from '@operato/grist-editor/ox-grist-editor-value-ranges.js'
|
|
4
|
+
|
|
5
|
+
@customElement('color-ranges-editor')
|
|
6
|
+
export class ColorRangesEditor extends OxGristEditorValueRanges {
|
|
7
|
+
get options() {
|
|
8
|
+
return {
|
|
9
|
+
name: `Color Ranges : ${this.record.name}`,
|
|
10
|
+
valuetype: 'color'
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { getEditor, getRenderer } from '@operato/data-grist'
|
|
2
|
+
|
|
3
|
+
export function buildThemeValueRecordConfig() {
|
|
4
|
+
return {
|
|
5
|
+
editor: function (value, column, record, rowIndex, field) {
|
|
6
|
+
return getEditor(record.type || 'text')(value, column, record, rowIndex, field)
|
|
7
|
+
},
|
|
8
|
+
renderer: function (value, column, record, rowIndex, field) {
|
|
9
|
+
return getRenderer(record.type || 'text')(value, column, record, rowIndex, field)
|
|
10
|
+
},
|
|
11
|
+
editable: true
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function getEditorType(themeType: string): string {
|
|
16
|
+
switch (themeType) {
|
|
17
|
+
case 'legend':
|
|
18
|
+
case 'color-map':
|
|
19
|
+
return 'value-map'
|
|
20
|
+
case 'color-ranges':
|
|
21
|
+
return 'value-ranges'
|
|
22
|
+
case 'color':
|
|
23
|
+
return 'color'
|
|
24
|
+
default:
|
|
25
|
+
return 'text'
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
function getRendererType(themeType: string): string {
|
|
30
|
+
switch (themeType) {
|
|
31
|
+
case 'legend':
|
|
32
|
+
case 'color-map':
|
|
33
|
+
case 'color-ranges':
|
|
34
|
+
return 'json5'
|
|
35
|
+
case 'color':
|
|
36
|
+
return 'color'
|
|
37
|
+
default:
|
|
38
|
+
return 'text'
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function getOptions(themeType: string, name: string): any {
|
|
43
|
+
switch (themeType) {
|
|
44
|
+
case 'color-map':
|
|
45
|
+
case 'color-ranges':
|
|
46
|
+
return {
|
|
47
|
+
name: `${themeType.toUpperCase()} : ${name}`,
|
|
48
|
+
valuetype: 'color'
|
|
49
|
+
}
|
|
50
|
+
case 'color':
|
|
51
|
+
default:
|
|
52
|
+
return {
|
|
53
|
+
name: `${themeType?.toUpperCase() || ''} : ${name}`
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -14,23 +14,22 @@ import { i18next, localize } from '@operato/i18n'
|
|
|
14
14
|
import { notify, openPopup } from '@operato/layout'
|
|
15
15
|
import { OxPopup } from '@operato/popup'
|
|
16
16
|
import { isMobileDevice } from '@operato/utils'
|
|
17
|
+
import { buildThemeValueRecordConfig } from './theme-editors'
|
|
17
18
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
// export interface ShareType {
|
|
19
|
+
// export interface ThemeType {
|
|
21
20
|
// name: string
|
|
22
21
|
// propType: string
|
|
23
22
|
// }
|
|
24
23
|
|
|
25
|
-
// var
|
|
24
|
+
// var ThemeTypes: { [name: string]: ThemeType } = {
|
|
26
25
|
// Legend: {
|
|
27
26
|
// name: 'Legend',
|
|
28
27
|
// propType: 'legend'
|
|
29
28
|
// }
|
|
30
29
|
// }
|
|
31
30
|
|
|
32
|
-
@customElement('
|
|
33
|
-
export class
|
|
31
|
+
@customElement('theme-list-page')
|
|
32
|
+
export class ThemeListPage extends connect(store)(localize(i18next)(ScopedElementsMixin(PageView))) {
|
|
34
33
|
static styles = [
|
|
35
34
|
ScrollbarStyles,
|
|
36
35
|
CommonGristStyles,
|
|
@@ -46,12 +45,6 @@ export class ShareListPage extends connect(store)(localize(i18next)(ScopedElemen
|
|
|
46
45
|
`
|
|
47
46
|
]
|
|
48
47
|
|
|
49
|
-
static get scopedElements() {
|
|
50
|
-
return {
|
|
51
|
-
'share-importer': ShareImporter
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
48
|
@property({ type: Object }) gristConfig: any
|
|
56
49
|
@property({ type: String }) mode: 'CARD' | 'GRID' | 'LIST' = isMobileDevice() ? 'CARD' : 'GRID'
|
|
57
50
|
|
|
@@ -64,7 +57,7 @@ export class ShareListPage extends connect(store)(localize(i18next)(ScopedElemen
|
|
|
64
57
|
handler: (search: string) => {
|
|
65
58
|
this.grist.searchText = search
|
|
66
59
|
},
|
|
67
|
-
placeholder: i18next.t('title.
|
|
60
|
+
placeholder: i18next.t('title.theme list'),
|
|
68
61
|
value: this.grist.searchText
|
|
69
62
|
},
|
|
70
63
|
filter: {
|
|
@@ -72,26 +65,19 @@ export class ShareListPage extends connect(store)(localize(i18next)(ScopedElemen
|
|
|
72
65
|
this.grist.toggleHeadroom()
|
|
73
66
|
}
|
|
74
67
|
},
|
|
75
|
-
help: 'board-service/
|
|
68
|
+
help: 'board-service/theme',
|
|
76
69
|
actions: [
|
|
77
70
|
{
|
|
78
71
|
title: i18next.t('button.save'),
|
|
79
|
-
action: this.
|
|
72
|
+
action: this._updateTheme.bind(this),
|
|
80
73
|
...CommonButtonStyles.save
|
|
81
74
|
},
|
|
82
75
|
{
|
|
83
76
|
title: i18next.t('button.delete'),
|
|
84
|
-
action: this.
|
|
77
|
+
action: this._deleteTheme.bind(this),
|
|
85
78
|
...CommonButtonStyles.delete
|
|
86
79
|
}
|
|
87
|
-
]
|
|
88
|
-
exportable: {
|
|
89
|
-
name: i18next.t('title.share list'),
|
|
90
|
-
data: this.exportHandler.bind(this)
|
|
91
|
-
},
|
|
92
|
-
importable: {
|
|
93
|
-
handler: this.importHandler.bind(this)
|
|
94
|
-
}
|
|
80
|
+
]
|
|
95
81
|
}
|
|
96
82
|
}
|
|
97
83
|
|
|
@@ -102,7 +88,7 @@ export class ShareListPage extends connect(store)(localize(i18next)(ScopedElemen
|
|
|
102
88
|
<ox-grist .mode=${mode} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)}>
|
|
103
89
|
<div slot="headroom">
|
|
104
90
|
<div id="filters">
|
|
105
|
-
<ox-filters-form autofocus></ox-filters-form>
|
|
91
|
+
<ox-filters-form autofocus without-search></ox-filters-form>
|
|
106
92
|
</div>
|
|
107
93
|
|
|
108
94
|
<div id="sorters">
|
|
@@ -136,7 +122,7 @@ export class ShareListPage extends connect(store)(localize(i18next)(ScopedElemen
|
|
|
136
122
|
this.gristConfig = {
|
|
137
123
|
list: {
|
|
138
124
|
fields: ['name', 'description'],
|
|
139
|
-
details: ['
|
|
125
|
+
details: ['type', 'updatedAt']
|
|
140
126
|
},
|
|
141
127
|
columns: [
|
|
142
128
|
{ type: 'gutter', gutterName: 'sequence' },
|
|
@@ -167,7 +153,7 @@ export class ShareListPage extends connect(store)(localize(i18next)(ScopedElemen
|
|
|
167
153
|
name: 'type',
|
|
168
154
|
header: i18next.t('field.type'),
|
|
169
155
|
record: {
|
|
170
|
-
options: ['', '
|
|
156
|
+
options: ['', 'color-map', 'color-ranges', 'color', 'text'],
|
|
171
157
|
editable: true
|
|
172
158
|
},
|
|
173
159
|
width: 120
|
|
@@ -178,10 +164,10 @@ export class ShareListPage extends connect(store)(localize(i18next)(ScopedElemen
|
|
|
178
164
|
header: i18next.t('field.value'),
|
|
179
165
|
record: {
|
|
180
166
|
editor: function (value, column, record, rowIndex, field) {
|
|
181
|
-
return getEditor(record.
|
|
167
|
+
return getEditor(record.type || 'text')(value, column, record, rowIndex, field)
|
|
182
168
|
},
|
|
183
169
|
renderer: function (value, column, record, rowIndex, field) {
|
|
184
|
-
return getRenderer(record.
|
|
170
|
+
return getRenderer(record.type || 'text')(value, column, record, rowIndex, field)
|
|
185
171
|
},
|
|
186
172
|
editable: true
|
|
187
173
|
},
|
|
@@ -232,12 +218,13 @@ export class ShareListPage extends connect(store)(localize(i18next)(ScopedElemen
|
|
|
232
218
|
const response = await client.query({
|
|
233
219
|
query: gql`
|
|
234
220
|
query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {
|
|
235
|
-
responses:
|
|
221
|
+
responses: themes(filters: $filters, pagination: $pagination, sortings: $sortings) {
|
|
236
222
|
items {
|
|
237
223
|
id
|
|
238
224
|
name
|
|
239
225
|
description
|
|
240
|
-
|
|
226
|
+
type
|
|
227
|
+
value
|
|
241
228
|
updater {
|
|
242
229
|
id
|
|
243
230
|
name
|
|
@@ -261,14 +248,14 @@ export class ShareListPage extends connect(store)(localize(i18next)(ScopedElemen
|
|
|
261
248
|
}
|
|
262
249
|
}
|
|
263
250
|
|
|
264
|
-
async
|
|
251
|
+
async _deleteTheme() {
|
|
265
252
|
if (confirm(i18next.t('text.sure_to_x', { x: i18next.t('text.delete') }))) {
|
|
266
253
|
const ids = this.grist.selected.map(record => record.id)
|
|
267
254
|
if (ids && ids.length > 0) {
|
|
268
255
|
const response = await client.mutate({
|
|
269
256
|
mutation: gql`
|
|
270
257
|
mutation ($ids: [String!]!) {
|
|
271
|
-
|
|
258
|
+
deleteThemes(ids: $ids)
|
|
272
259
|
}
|
|
273
260
|
`,
|
|
274
261
|
variables: {
|
|
@@ -286,7 +273,7 @@ export class ShareListPage extends connect(store)(localize(i18next)(ScopedElemen
|
|
|
286
273
|
}
|
|
287
274
|
}
|
|
288
275
|
|
|
289
|
-
async
|
|
276
|
+
async _updateTheme() {
|
|
290
277
|
let patches = this.grist.dirtyRecords
|
|
291
278
|
if (patches && patches.length) {
|
|
292
279
|
patches = patches.map(patch => {
|
|
@@ -302,8 +289,8 @@ export class ShareListPage extends connect(store)(localize(i18next)(ScopedElemen
|
|
|
302
289
|
|
|
303
290
|
const response = await client.mutate({
|
|
304
291
|
mutation: gql`
|
|
305
|
-
mutation ($patches: [
|
|
306
|
-
|
|
292
|
+
mutation ($patches: [ThemePatch!]!) {
|
|
293
|
+
updateMultipleTheme(patches: $patches) {
|
|
307
294
|
name
|
|
308
295
|
}
|
|
309
296
|
}
|
|
@@ -318,41 +305,4 @@ export class ShareListPage extends connect(store)(localize(i18next)(ScopedElemen
|
|
|
318
305
|
}
|
|
319
306
|
}
|
|
320
307
|
}
|
|
321
|
-
|
|
322
|
-
async exportHandler() {
|
|
323
|
-
const exportTargets = this.grist.selected.length ? this.grist.selected : this.grist.dirtyData.records
|
|
324
|
-
const targetFieldSet = new Set(['id', 'name', 'description', 'active'])
|
|
325
|
-
|
|
326
|
-
return exportTargets.map(share => {
|
|
327
|
-
let tempObj = {}
|
|
328
|
-
for (const field of targetFieldSet) {
|
|
329
|
-
tempObj[field] = share[field]
|
|
330
|
-
}
|
|
331
|
-
|
|
332
|
-
return tempObj
|
|
333
|
-
})
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
async importHandler(records) {
|
|
337
|
-
const popup = openPopup(
|
|
338
|
-
html`
|
|
339
|
-
<share-importer
|
|
340
|
-
.shares=${records}
|
|
341
|
-
@imported=${() => {
|
|
342
|
-
history.back()
|
|
343
|
-
this.grist.fetch()
|
|
344
|
-
}}
|
|
345
|
-
></share-importer>
|
|
346
|
-
`,
|
|
347
|
-
{
|
|
348
|
-
backdrop: true,
|
|
349
|
-
size: 'large',
|
|
350
|
-
title: i18next.t('title.import share')
|
|
351
|
-
}
|
|
352
|
-
)
|
|
353
|
-
|
|
354
|
-
popup.onclosed = () => {
|
|
355
|
-
this.grist.fetch()
|
|
356
|
-
}
|
|
357
|
-
}
|
|
358
308
|
}
|
package/client/route.ts
CHANGED
package/dist-client/bootstrap.js
CHANGED
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import '@operato/board/ox-property-editor-board-selector.js';
|
|
2
2
|
import { OxPropertyEditor } from '@operato/property-editor';
|
|
3
|
-
import { registerEditor, registerRenderer } from '@operato/data-grist';
|
|
3
|
+
import { OxGristRendererJson5, registerEditor, registerRenderer } from '@operato/data-grist';
|
|
4
4
|
import { BoardEditor } from './data-grist/board-editor';
|
|
5
5
|
import { BoardRenderer } from './data-grist/board-renderer';
|
|
6
|
+
import { ColorMapEditor } from './data-grist/color-map-editor';
|
|
7
|
+
import { ColorRangesEditor } from './data-grist/color-ranges-editor';
|
|
6
8
|
export default function bootstrap() {
|
|
7
9
|
registerRenderer('board', BoardRenderer);
|
|
10
|
+
registerRenderer('color-map', OxGristRendererJson5);
|
|
11
|
+
registerRenderer('color-ranges', OxGristRendererJson5);
|
|
8
12
|
registerEditor('board', BoardEditor);
|
|
13
|
+
registerEditor('color-map', ColorMapEditor);
|
|
14
|
+
registerEditor('color-ranges', ColorRangesEditor);
|
|
9
15
|
OxPropertyEditor.register({
|
|
10
16
|
'board-selector': 'ox-property-editor-board-selector'
|
|
11
17
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../client/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,qDAAqD,CAAA;AAE5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../client/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,qDAAqD,CAAA;AAE5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAE5F,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AAEpE,MAAM,CAAC,OAAO,UAAU,SAAS;IAC/B,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;IACxC,gBAAgB,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAA;IACnD,gBAAgB,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAA;IAEtD,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;IACpC,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;IAC3C,cAAc,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAA;IAEjD,gBAAgB,CAAC,QAAQ,CAAC;QACxB,gBAAgB,EAAE,mCAAmC;KACtD,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import '@operato/board/ox-property-editor-board-selector.js'\n\nimport { OxPropertyEditor } from '@operato/property-editor'\nimport { OxGristRendererJson5, registerEditor, registerRenderer } from '@operato/data-grist'\n\nimport { BoardEditor } from './data-grist/board-editor'\nimport { BoardRenderer } from './data-grist/board-renderer'\nimport { ColorMapEditor } from './data-grist/color-map-editor'\nimport { ColorRangesEditor } from './data-grist/color-ranges-editor'\n\nexport default function bootstrap() {\n registerRenderer('board', BoardRenderer)\n registerRenderer('color-map', OxGristRendererJson5)\n registerRenderer('color-ranges', OxGristRendererJson5)\n\n registerEditor('board', BoardEditor)\n registerEditor('color-map', ColorMapEditor)\n registerEditor('color-ranges', ColorRangesEditor)\n\n OxPropertyEditor.register({\n 'board-selector': 'ox-property-editor-board-selector'\n })\n}\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { customElement } from 'lit/decorators.js';
|
|
3
|
+
import { OxGristEditorValueMap } from '@operato/grist-editor/ox-grist-editor-value-map.js';
|
|
4
|
+
let ColorMapEditor = class ColorMapEditor extends OxGristEditorValueMap {
|
|
5
|
+
get options() {
|
|
6
|
+
return {
|
|
7
|
+
name: `Color Map : ${this.record.name}`,
|
|
8
|
+
valuetype: 'color'
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
ColorMapEditor = __decorate([
|
|
13
|
+
customElement('color-map-editor')
|
|
14
|
+
], ColorMapEditor);
|
|
15
|
+
export { ColorMapEditor };
|
|
16
|
+
//# sourceMappingURL=color-map-editor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-map-editor.js","sourceRoot":"","sources":["../../client/data-grist/color-map-editor.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oDAAoD,CAAA;AAGnF,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,qBAAqB;IACvD,IAAI,OAAO;QACT,OAAO;YACL,IAAI,EAAE,eAAe,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YACvC,SAAS,EAAE,OAAO;SACnB,CAAA;IACH,CAAC;CACF,CAAA;AAPY,cAAc;IAD1B,aAAa,CAAC,kBAAkB,CAAC;GACrB,cAAc,CAO1B;SAPY,cAAc","sourcesContent":["import { customElement } from 'lit/decorators.js'\n\nimport { OxGristEditorValueMap } from '@operato/grist-editor/ox-grist-editor-value-map.js'\n\n@customElement('color-map-editor')\nexport class ColorMapEditor extends OxGristEditorValueMap {\n get options() {\n return {\n name: `Color Map : ${this.record.name}`,\n valuetype: 'color'\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { customElement } from 'lit/decorators.js';
|
|
3
|
+
import { OxGristEditorValueRanges } from '@operato/grist-editor/ox-grist-editor-value-ranges.js';
|
|
4
|
+
let ColorRangesEditor = class ColorRangesEditor extends OxGristEditorValueRanges {
|
|
5
|
+
get options() {
|
|
6
|
+
return {
|
|
7
|
+
name: `Color Ranges : ${this.record.name}`,
|
|
8
|
+
valuetype: 'color'
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
ColorRangesEditor = __decorate([
|
|
13
|
+
customElement('color-ranges-editor')
|
|
14
|
+
], ColorRangesEditor);
|
|
15
|
+
export { ColorRangesEditor };
|
|
16
|
+
//# sourceMappingURL=color-ranges-editor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-ranges-editor.js","sourceRoot":"","sources":["../../client/data-grist/color-ranges-editor.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uDAAuD,CAAA;AAGzF,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,wBAAwB;IAC7D,IAAI,OAAO;QACT,OAAO;YACL,IAAI,EAAE,kBAAkB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YAC1C,SAAS,EAAE,OAAO;SACnB,CAAA;IACH,CAAC;CACF,CAAA;AAPY,iBAAiB;IAD7B,aAAa,CAAC,qBAAqB,CAAC;GACxB,iBAAiB,CAO7B;SAPY,iBAAiB","sourcesContent":["import { customElement } from 'lit/decorators.js'\n\nimport { OxGristEditorValueRanges } from '@operato/grist-editor/ox-grist-editor-value-ranges.js'\n\n@customElement('color-ranges-editor')\nexport class ColorRangesEditor extends OxGristEditorValueRanges {\n get options() {\n return {\n name: `Color Ranges : ${this.record.name}`,\n valuetype: 'color'\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function buildThemeValueRecordConfig(): {
|
|
2
|
+
editor: (value: any, column: any, record: any, rowIndex: any, field: any) => import("@operato/data-grist").OxGristEditor;
|
|
3
|
+
renderer: (value: any, column: any, record: any, rowIndex: any, field: any) => string | void | import("lit-html").TemplateResult<2 | 1> | import("@operato/data-grist/dist/src/renderers/ox-grist-renderer").OxGristRenderer;
|
|
4
|
+
editable: boolean;
|
|
5
|
+
};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { getEditor, getRenderer } from '@operato/data-grist';
|
|
2
|
+
export function buildThemeValueRecordConfig() {
|
|
3
|
+
return {
|
|
4
|
+
editor: function (value, column, record, rowIndex, field) {
|
|
5
|
+
return getEditor(record.type || 'text')(value, column, record, rowIndex, field);
|
|
6
|
+
},
|
|
7
|
+
renderer: function (value, column, record, rowIndex, field) {
|
|
8
|
+
return getRenderer(record.type || 'text')(value, column, record, rowIndex, field);
|
|
9
|
+
},
|
|
10
|
+
editable: true
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
function getEditorType(themeType) {
|
|
14
|
+
switch (themeType) {
|
|
15
|
+
case 'legend':
|
|
16
|
+
case 'color-map':
|
|
17
|
+
return 'value-map';
|
|
18
|
+
case 'color-ranges':
|
|
19
|
+
return 'value-ranges';
|
|
20
|
+
case 'color':
|
|
21
|
+
return 'color';
|
|
22
|
+
default:
|
|
23
|
+
return 'text';
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function getRendererType(themeType) {
|
|
27
|
+
switch (themeType) {
|
|
28
|
+
case 'legend':
|
|
29
|
+
case 'color-map':
|
|
30
|
+
case 'color-ranges':
|
|
31
|
+
return 'json5';
|
|
32
|
+
case 'color':
|
|
33
|
+
return 'color';
|
|
34
|
+
default:
|
|
35
|
+
return 'text';
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function getOptions(themeType, name) {
|
|
39
|
+
switch (themeType) {
|
|
40
|
+
case 'color-map':
|
|
41
|
+
case 'color-ranges':
|
|
42
|
+
return {
|
|
43
|
+
name: `${themeType.toUpperCase()} : ${name}`,
|
|
44
|
+
valuetype: 'color'
|
|
45
|
+
};
|
|
46
|
+
case 'color':
|
|
47
|
+
default:
|
|
48
|
+
return {
|
|
49
|
+
name: `${(themeType === null || themeType === void 0 ? void 0 : themeType.toUpperCase()) || ''} : ${name}`
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=theme-editors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-editors.js","sourceRoot":"","sources":["../../../client/pages/theme/theme-editors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAE5D,MAAM,UAAU,2BAA2B;IACzC,OAAO;QACL,MAAM,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK;YACtD,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;QACjF,CAAC;QACD,QAAQ,EAAE,UAAU,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK;YACxD,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;QACnF,CAAC;QACD,QAAQ,EAAE,IAAI;KACf,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,SAAiB;IACtC,QAAQ,SAAS,EAAE;QACjB,KAAK,QAAQ,CAAC;QACd,KAAK,WAAW;YACd,OAAO,WAAW,CAAA;QACpB,KAAK,cAAc;YACjB,OAAO,cAAc,CAAA;QACvB,KAAK,OAAO;YACV,OAAO,OAAO,CAAA;QAChB;YACE,OAAO,MAAM,CAAA;KAChB;AACH,CAAC;AAED,SAAS,eAAe,CAAC,SAAiB;IACxC,QAAQ,SAAS,EAAE;QACjB,KAAK,QAAQ,CAAC;QACd,KAAK,WAAW,CAAC;QACjB,KAAK,cAAc;YACjB,OAAO,OAAO,CAAA;QAChB,KAAK,OAAO;YACV,OAAO,OAAO,CAAA;QAChB;YACE,OAAO,MAAM,CAAA;KAChB;AACH,CAAC;AAED,SAAS,UAAU,CAAC,SAAiB,EAAE,IAAY;IACjD,QAAQ,SAAS,EAAE;QACjB,KAAK,WAAW,CAAC;QACjB,KAAK,cAAc;YACjB,OAAO;gBACL,IAAI,EAAE,GAAG,SAAS,CAAC,WAAW,EAAE,MAAM,IAAI,EAAE;gBAC5C,SAAS,EAAE,OAAO;aACnB,CAAA;QACH,KAAK,OAAO,CAAC;QACb;YACE,OAAO;gBACL,IAAI,EAAE,GAAG,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,WAAW,EAAE,KAAI,EAAE,MAAM,IAAI,EAAE;aACpD,CAAA;KACJ;AACH,CAAC","sourcesContent":["import { getEditor, getRenderer } from '@operato/data-grist'\n\nexport function buildThemeValueRecordConfig() {\n return {\n editor: function (value, column, record, rowIndex, field) {\n return getEditor(record.type || 'text')(value, column, record, rowIndex, field)\n },\n renderer: function (value, column, record, rowIndex, field) {\n return getRenderer(record.type || 'text')(value, column, record, rowIndex, field)\n },\n editable: true\n }\n}\n\nfunction getEditorType(themeType: string): string {\n switch (themeType) {\n case 'legend':\n case 'color-map':\n return 'value-map'\n case 'color-ranges':\n return 'value-ranges'\n case 'color':\n return 'color'\n default:\n return 'text'\n }\n}\n\nfunction getRendererType(themeType: string): string {\n switch (themeType) {\n case 'legend':\n case 'color-map':\n case 'color-ranges':\n return 'json5'\n case 'color':\n return 'color'\n default:\n return 'text'\n }\n}\n\nfunction getOptions(themeType: string, name: string): any {\n switch (themeType) {\n case 'color-map':\n case 'color-ranges':\n return {\n name: `${themeType.toUpperCase()} : ${name}`,\n valuetype: 'color'\n }\n case 'color':\n default:\n return {\n name: `${themeType?.toUpperCase() || ''} : ${name}`\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import '@operato/data-grist';
|
|
2
|
+
import { PageView } from '@operato/shell';
|
|
3
|
+
import { FetchOption } from '@operato/data-grist';
|
|
4
|
+
declare const ThemeListPage_base: (new (...args: any[]) => {
|
|
5
|
+
_storeUnsubscribe: import("redux").Unsubscribe;
|
|
6
|
+
connectedCallback(): void;
|
|
7
|
+
disconnectedCallback(): void;
|
|
8
|
+
stateChanged(_state: unknown): void;
|
|
9
|
+
readonly isConnected: boolean;
|
|
10
|
+
}) & (new (...args: any[]) => import("lit").LitElement) & typeof PageView & import("@open-wc/dedupe-mixin").Constructor<import("@open-wc/scoped-elements/types/src/types").ScopedElementsHost>;
|
|
11
|
+
export declare class ThemeListPage extends ThemeListPage_base {
|
|
12
|
+
static styles: import("lit").CSSResult[];
|
|
13
|
+
gristConfig: any;
|
|
14
|
+
mode: 'CARD' | 'GRID' | 'LIST';
|
|
15
|
+
private grist;
|
|
16
|
+
private sortersControl;
|
|
17
|
+
get context(): {
|
|
18
|
+
search: {
|
|
19
|
+
handler: (search: string) => void;
|
|
20
|
+
placeholder: string;
|
|
21
|
+
value: string;
|
|
22
|
+
};
|
|
23
|
+
filter: {
|
|
24
|
+
handler: () => void;
|
|
25
|
+
};
|
|
26
|
+
help: string;
|
|
27
|
+
actions: {
|
|
28
|
+
icon: string;
|
|
29
|
+
emphasis: {
|
|
30
|
+
raised: boolean;
|
|
31
|
+
outlined: boolean;
|
|
32
|
+
dense: boolean;
|
|
33
|
+
danger: boolean;
|
|
34
|
+
};
|
|
35
|
+
title: string;
|
|
36
|
+
action: () => Promise<void>;
|
|
37
|
+
}[];
|
|
38
|
+
};
|
|
39
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
40
|
+
pageInitialized(lifecycle: any): Promise<void>;
|
|
41
|
+
pageUpdated(changes: any, lifecycle: any): Promise<void>;
|
|
42
|
+
fetchHandler({ page, limit, sortings, filters }: FetchOption): Promise<{
|
|
43
|
+
total: any;
|
|
44
|
+
records: any;
|
|
45
|
+
}>;
|
|
46
|
+
_deleteTheme(): Promise<void>;
|
|
47
|
+
_updateTheme(): Promise<void>;
|
|
48
|
+
}
|
|
49
|
+
export {};
|