@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.
Files changed (32) hide show
  1. package/client/bootstrap.ts +8 -1
  2. package/client/data-grist/color-map-editor.ts +13 -0
  3. package/client/data-grist/color-ranges-editor.ts +13 -0
  4. package/client/pages/theme/theme-editors.ts +56 -0
  5. package/client/pages/{share/share-list-page.ts → theme/theme-list-page.ts} +23 -73
  6. package/client/route.ts +4 -0
  7. package/dist-client/bootstrap.js +7 -1
  8. package/dist-client/bootstrap.js.map +1 -1
  9. package/dist-client/data-grist/color-map-editor.d.ts +7 -0
  10. package/dist-client/data-grist/color-map-editor.js +16 -0
  11. package/dist-client/data-grist/color-map-editor.js.map +1 -0
  12. package/dist-client/data-grist/color-ranges-editor.d.ts +7 -0
  13. package/dist-client/data-grist/color-ranges-editor.js +16 -0
  14. package/dist-client/data-grist/color-ranges-editor.js.map +1 -0
  15. package/dist-client/pages/theme/theme-editors.d.ts +5 -0
  16. package/dist-client/pages/theme/theme-editors.js +53 -0
  17. package/dist-client/pages/theme/theme-editors.js.map +1 -0
  18. package/dist-client/pages/theme/theme-list-page.d.ts +49 -0
  19. package/dist-client/pages/theme/theme-list-page.js +300 -0
  20. package/dist-client/pages/theme/theme-list-page.js.map +1 -0
  21. package/dist-client/route.js +3 -0
  22. package/dist-client/route.js.map +1 -1
  23. package/dist-client/tsconfig.tsbuildinfo +1 -1
  24. package/dist-server/tsconfig.tsbuildinfo +1 -1
  25. package/package.json +2 -2
  26. package/things-factory.config.js +4 -0
  27. package/translations/en.json +5 -3
  28. package/translations/ja.json +2 -0
  29. package/translations/ko.json +2 -0
  30. package/translations/ms.json +2 -0
  31. package/translations/zh.json +2 -0
  32. package/client/pages/share/share-importer.ts +0 -97
@@ -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
- import { ShareImporter } from './share-importer'
19
-
20
- // export interface ShareType {
19
+ // export interface ThemeType {
21
20
  // name: string
22
21
  // propType: string
23
22
  // }
24
23
 
25
- // var ShareTypes: { [name: string]: ShareType } = {
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('share-list-page')
33
- export class ShareListPage extends connect(store)(localize(i18next)(ScopedElementsMixin(PageView))) {
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.share list'),
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/share',
68
+ help: 'board-service/theme',
76
69
  actions: [
77
70
  {
78
71
  title: i18next.t('button.save'),
79
- action: this._updateShare.bind(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._deleteShare.bind(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: ['active', 'updatedAt']
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: ['', 'legend'],
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.category)(value, column, record, rowIndex, field)
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.category)(value, column, record, rowIndex, field)
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: shares(filters: $filters, pagination: $pagination, sortings: $sortings) {
221
+ responses: themes(filters: $filters, pagination: $pagination, sortings: $sortings) {
236
222
  items {
237
223
  id
238
224
  name
239
225
  description
240
- active
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 _deleteShare() {
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
- deleteShares(ids: $ids)
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 _updateShare() {
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: [SharePatch!]!) {
306
- updateMultipleShare(patches: $patches) {
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
@@ -15,5 +15,9 @@ export default function route(page) {
15
15
  case 'printable-board-viewer':
16
16
  import('./pages/printable-board-viewer-page')
17
17
  return page
18
+
19
+ case 'theme-list':
20
+ import('./pages/theme/theme-list-page')
21
+ return page
18
22
  }
19
23
  }
@@ -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;AAEtE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAE3D,MAAM,CAAC,OAAO,UAAU,SAAS;IAC/B,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;IACxC,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;IAEpC,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 { registerEditor, registerRenderer } from '@operato/data-grist'\n\nimport { BoardEditor } from './data-grist/board-editor'\nimport { BoardRenderer } from './data-grist/board-renderer'\n\nexport default function bootstrap() {\n registerRenderer('board', BoardRenderer)\n registerEditor('board', BoardEditor)\n\n OxPropertyEditor.register({\n 'board-selector': 'ox-property-editor-board-selector'\n })\n}\n"]}
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,7 @@
1
+ import { OxGristEditorValueMap } from '@operato/grist-editor/ox-grist-editor-value-map.js';
2
+ export declare class ColorMapEditor extends OxGristEditorValueMap {
3
+ get options(): {
4
+ name: string;
5
+ valuetype: string;
6
+ };
7
+ }
@@ -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,7 @@
1
+ import { OxGristEditorValueRanges } from '@operato/grist-editor/ox-grist-editor-value-ranges.js';
2
+ export declare class ColorRangesEditor extends OxGristEditorValueRanges {
3
+ get options(): {
4
+ name: string;
5
+ valuetype: string;
6
+ };
7
+ }
@@ -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 {};