@things-factory/board-ui 7.0.1-alpha.10 → 7.0.1-alpha.100

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 (96) hide show
  1. package/client/apptools/favorite-tool.ts +8 -7
  2. package/client/board-list/board-tile-list.ts +41 -36
  3. package/client/board-list/group-bar-styles.ts +61 -0
  4. package/client/board-list/group-bar.ts +10 -66
  5. package/client/board-list/play-group-bar.ts +9 -64
  6. package/client/data-grist/board-renderer.ts +6 -6
  7. package/client/pages/board-list-page.ts +20 -6
  8. package/client/pages/board-viewer-page.ts +8 -2
  9. package/client/pages/play-list-page.ts +8 -18
  10. package/client/pages/theme/theme-list-page.ts +6 -5
  11. package/client/setting-let/board-view-setting-let.ts +11 -7
  12. package/client/themes/board-theme.css +3 -3
  13. package/client/viewparts/board-basic-info.ts +192 -214
  14. package/client/viewparts/board-info-link.ts +1 -1
  15. package/client/viewparts/board-info.ts +3 -3
  16. package/client/viewparts/board-template-builder.ts +0 -1
  17. package/client/viewparts/board-versions.ts +20 -12
  18. package/client/viewparts/group-info-basic.ts +49 -37
  19. package/client/viewparts/group-info-import.ts +8 -11
  20. package/client/viewparts/group-info.ts +1 -1
  21. package/client/viewparts/link-builder.ts +8 -8
  22. package/client/viewparts/play-group-info-basic.ts +38 -34
  23. package/client/viewparts/play-group-info-link.ts +1 -1
  24. package/client/viewparts/play-group-info.ts +1 -1
  25. package/dist-client/apptools/favorite-tool.d.ts +3 -3
  26. package/dist-client/apptools/favorite-tool.js +6 -6
  27. package/dist-client/apptools/favorite-tool.js.map +1 -1
  28. package/dist-client/board-list/board-tile-list.d.ts +1 -1
  29. package/dist-client/board-list/board-tile-list.js +33 -28
  30. package/dist-client/board-list/board-tile-list.js.map +1 -1
  31. package/dist-client/board-list/group-bar-styles.d.ts +1 -0
  32. package/dist-client/board-list/group-bar-styles.js +61 -0
  33. package/dist-client/board-list/group-bar-styles.js.map +1 -0
  34. package/dist-client/board-list/group-bar.d.ts +1 -1
  35. package/dist-client/board-list/group-bar.js +9 -64
  36. package/dist-client/board-list/group-bar.js.map +1 -1
  37. package/dist-client/board-list/play-group-bar.d.ts +1 -1
  38. package/dist-client/board-list/play-group-bar.js +7 -62
  39. package/dist-client/board-list/play-group-bar.js.map +1 -1
  40. package/dist-client/data-grist/board-renderer.d.ts +1 -1
  41. package/dist-client/data-grist/board-renderer.js +6 -6
  42. package/dist-client/data-grist/board-renderer.js.map +1 -1
  43. package/dist-client/pages/board-list-page.d.ts +0 -1
  44. package/dist-client/pages/board-list-page.js +17 -5
  45. package/dist-client/pages/board-list-page.js.map +1 -1
  46. package/dist-client/pages/board-viewer-page.d.ts +1 -1
  47. package/dist-client/pages/board-viewer-page.js +6 -2
  48. package/dist-client/pages/board-viewer-page.js.map +1 -1
  49. package/dist-client/pages/play-list-page.d.ts +2 -2
  50. package/dist-client/pages/play-list-page.js +6 -9
  51. package/dist-client/pages/play-list-page.js.map +1 -1
  52. package/dist-client/pages/theme/theme-list-page.js +6 -5
  53. package/dist-client/pages/theme/theme-list-page.js.map +1 -1
  54. package/dist-client/setting-let/board-view-setting-let.d.ts +2 -3
  55. package/dist-client/setting-let/board-view-setting-let.js +11 -7
  56. package/dist-client/setting-let/board-view-setting-let.js.map +1 -1
  57. package/dist-client/themes/board-theme.css +3 -3
  58. package/dist-client/tsconfig.tsbuildinfo +1 -1
  59. package/dist-client/viewparts/board-basic-info.d.ts +7 -1
  60. package/dist-client/viewparts/board-basic-info.js +188 -209
  61. package/dist-client/viewparts/board-basic-info.js.map +1 -1
  62. package/dist-client/viewparts/board-info-link.js +1 -1
  63. package/dist-client/viewparts/board-info-link.js.map +1 -1
  64. package/dist-client/viewparts/board-info.js +1 -1
  65. package/dist-client/viewparts/board-info.js.map +1 -1
  66. package/dist-client/viewparts/board-template-builder.d.ts +0 -1
  67. package/dist-client/viewparts/board-template-builder.js +0 -1
  68. package/dist-client/viewparts/board-template-builder.js.map +1 -1
  69. package/dist-client/viewparts/board-versions.d.ts +2 -1
  70. package/dist-client/viewparts/board-versions.js +19 -12
  71. package/dist-client/viewparts/board-versions.js.map +1 -1
  72. package/dist-client/viewparts/group-info-basic.d.ts +3 -1
  73. package/dist-client/viewparts/group-info-basic.js +49 -37
  74. package/dist-client/viewparts/group-info-basic.js.map +1 -1
  75. package/dist-client/viewparts/group-info-import.d.ts +2 -1
  76. package/dist-client/viewparts/group-info-import.js +8 -11
  77. package/dist-client/viewparts/group-info-import.js.map +1 -1
  78. package/dist-client/viewparts/group-info.js +1 -1
  79. package/dist-client/viewparts/group-info.js.map +1 -1
  80. package/dist-client/viewparts/link-builder.d.ts +1 -1
  81. package/dist-client/viewparts/link-builder.js +6 -6
  82. package/dist-client/viewparts/link-builder.js.map +1 -1
  83. package/dist-client/viewparts/play-group-info-basic.d.ts +3 -1
  84. package/dist-client/viewparts/play-group-info-basic.js +34 -34
  85. package/dist-client/viewparts/play-group-info-basic.js.map +1 -1
  86. package/dist-client/viewparts/play-group-info-link.js +1 -1
  87. package/dist-client/viewparts/play-group-info-link.js.map +1 -1
  88. package/dist-client/viewparts/play-group-info.js +1 -1
  89. package/dist-client/viewparts/play-group-info.js.map +1 -1
  90. package/dist-server/tsconfig.tsbuildinfo +1 -1
  91. package/package.json +6 -8
  92. package/translations/en.json +1 -0
  93. package/translations/ja.json +1 -0
  94. package/translations/ko.json +1 -0
  95. package/translations/ms.json +1 -0
  96. package/translations/zh.json +1 -0
@@ -1,13 +1,14 @@
1
- import '@material/mwc-icon'
1
+ import '@material/web/icon/icon.js'
2
2
 
3
3
  import gql from 'graphql-tag'
4
- import { css, html, LitElement } from 'lit'
5
- import { customElement, property, state } from 'lit/decorators.js'
4
+ import { css, html, LitElement, nothing } from 'lit'
5
+ import { customElement, property } from 'lit/decorators.js'
6
6
  import { connect } from 'pwa-helpers/connect-mixin.js'
7
7
 
8
8
  import { store } from '@operato/shell'
9
9
  import { client } from '@operato/graphql'
10
- import { UPDATE_FAVORITES } from '@things-factory/fav-base'
10
+
11
+ import { UPDATE_FAVORITES } from '@things-factory/fav-base/client'
11
12
 
12
13
  @customElement('favorite-tool')
13
14
  export class FavoriteTool extends connect(store)(LitElement) {
@@ -36,11 +37,11 @@ export class FavoriteTool extends connect(store)(LitElement) {
36
37
 
37
38
  return renderable
38
39
  ? html`
39
- <mwc-icon @click=${this.onClick.bind(this)} ?favorable=${!this.favored}
40
- >${this.favored ? 'star' : 'star_border'}</mwc-icon
40
+ <md-icon @click=${this.onClick.bind(this)} ?favorable=${!this.favored}
41
+ >${this.favored ? 'star' : 'star_border'}</md-icon
41
42
  >
42
43
  `
43
- : html``
44
+ : nothing
44
45
  }
45
46
 
46
47
  updated(changes) {
@@ -1,5 +1,5 @@
1
+ import '@material/web/icon/icon.js'
1
2
  import '@operato/board/ox-board-creation-card.js'
2
- import '@material/mwc-icon'
3
3
 
4
4
  import gql from 'graphql-tag'
5
5
  import { css, html, LitElement, PropertyValues, nothing } from 'lit'
@@ -7,6 +7,7 @@ import { customElement, property, state, query } from 'lit/decorators.js'
7
7
  import { keyed } from 'lit/directives/keyed.js'
8
8
 
9
9
  import { client } from '@operato/graphql'
10
+
10
11
  import { privileged } from '@things-factory/auth-base/dist-client'
11
12
 
12
13
  @customElement('board-tile-list')
@@ -17,6 +18,7 @@ export class BoardTileList extends LitElement {
17
18
  overflow: auto;
18
19
  padding: var(--popup-content-padding);
19
20
  display: grid;
21
+ background-color: var(--md-sys-color-background);
20
22
 
21
23
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
22
24
  grid-auto-rows: var(--card-list-rows-height);
@@ -37,6 +39,7 @@ export class BoardTileList extends LitElement {
37
39
 
38
40
  [card] > a {
39
41
  display: flex;
42
+ clip-path: border-box;
40
43
  }
41
44
 
42
45
  [card]:hover {
@@ -49,32 +52,29 @@ export class BoardTileList extends LitElement {
49
52
  overflow: hidden;
50
53
  margin-top: var(--margin-narrow);
51
54
  width: calc(100% - 45px);
52
- color: var(--primary-text-color);
55
+ color: var(--md-sys-color-on-background);
53
56
  font-weight: bolder;
54
57
  font-size: var(--fontsize-small);
55
58
  }
56
59
 
57
60
  img {
58
- display: block;
59
-
60
- margin: auto;
61
- max-width: 100%;
62
- max-height: 100%;
61
+ flex: 1;
62
+ object-fit: contain;
63
63
  }
64
64
 
65
- mwc-icon[iconBtn] {
65
+ md-icon[iconBtn] {
66
66
  float: right;
67
67
  margin-top: -20px;
68
68
  margin-left: 2px;
69
69
  color: var(--board-list-star-color);
70
70
  font-size: 1.4em;
71
71
  }
72
- mwc-icon[info] {
73
- color: var(--primary-color);
72
+ md-icon[info] {
73
+ color: var(--md-sys-color-primary);
74
74
  }
75
75
 
76
- mwc-icon[iconBtn][favored],
77
- mwc-icon[info]:hover {
76
+ md-icon[iconBtn][favored],
77
+ md-icon[info]:hover {
78
78
  color: var(--board-list-star-active-color);
79
79
  }
80
80
 
@@ -174,36 +174,41 @@ export class BoardTileList extends LitElement {
174
174
  ? privileged(
175
175
  { privilege: 'mutation', category: 'board' },
176
176
  html`
177
- <ox-board-creation-card .groups=${this.groups} .defaultGroup=${this.group} @create-board=${e => this.onCreateBoard(e)} card create></ox-board-creation-card>
177
+ <ox-board-creation-card
178
+ .groups=${this.groups}
179
+ .defaultGroup=${this.group}
180
+ @create-board=${e => this.onCreateBoard(e)}
181
+ card
182
+ create
183
+ ></ox-board-creation-card>
178
184
  `
179
185
  )
180
186
  : nothing}
181
187
  ${keyed(
182
188
  Date.now(),
183
189
  boards.map(
184
- board =>
185
- html`
186
- <div card draggable="true" id=${board.id}>
187
- <a href="board-viewer/${board.id}"> <img src=${board.thumbnail} /> </a>
188
-
189
- <div name>${board.name}</div>
190
- <!-- <div description>${board.description}</div> -->
191
-
192
- <mwc-icon
193
- iconBtn
194
- info
195
- @click=${e => {
196
- this.infoBoard(board)
197
- e.preventDefault()
198
- }}
199
- >info</mwc-icon
200
- >
201
-
202
- ${(this.favorites || []).includes(board.id)
203
- ? html` <mwc-icon iconBtn favored @click=${e => this.removeFavorite(board.id)}>star</mwc-icon> `
204
- : html` <mwc-icon iconBtn @click=${e => this.addFavorite(board.id)}>star_border</mwc-icon> `}
205
- </div>
206
- `
190
+ board => html`
191
+ <div card draggable="true" id=${board.id}>
192
+ <a href="board-viewer/${board.id}"> <img src=${board.thumbnail} /> </a>
193
+
194
+ <div name>${board.name}</div>
195
+ <!-- <div description>${board.description}</div> -->
196
+
197
+ <md-icon
198
+ iconBtn
199
+ info
200
+ @click=${e => {
201
+ this.infoBoard(board)
202
+ e.preventDefault()
203
+ }}
204
+ >info</md-icon
205
+ >
206
+
207
+ ${(this.favorites || []).includes(board.id)
208
+ ? html` <md-icon iconBtn favored @click=${e => this.removeFavorite(board.id)}>star</md-icon> `
209
+ : html` <md-icon iconBtn @click=${e => this.addFavorite(board.id)}>star_border</md-icon> `}
210
+ </div>
211
+ `
207
212
  )
208
213
  )}
209
214
  `
@@ -0,0 +1,61 @@
1
+ import { css } from 'lit'
2
+
3
+ export const GroupBarStyles = css`
4
+ :host {
5
+ background-color: var(--group-bar-background-color);
6
+
7
+ overflow-x: hidden;
8
+ }
9
+
10
+ ul {
11
+ display: flex;
12
+ flex-direction: row;
13
+ box-sizing: border-box;
14
+ list-style: none;
15
+ margin: 0;
16
+ padding: 0;
17
+ white-space: nowrap;
18
+ }
19
+
20
+ li {
21
+ display: inline-block;
22
+
23
+ box-sizing: border-box;
24
+ border-bottom: var(--group-bar-line);
25
+ align-self: auto;
26
+ min-height: 43px;
27
+ padding: 4px 8px;
28
+
29
+ * {
30
+ vertical-align: text-top;
31
+ }
32
+
33
+ a {
34
+ display: block;
35
+ text-decoration: none;
36
+ font: var(--group-bar-textbutton);
37
+ color: rgba(255, 255, 255, 0.8);
38
+ }
39
+
40
+ a md-icon {
41
+ font-variation-settings: 'FILL' 1;
42
+ }
43
+
44
+ &[active] {
45
+ border-color: var(--group-bar-active-line-color);
46
+
47
+ a {
48
+ font: var(--group-bar-textbutton-active);
49
+ color: rgba(255, 255, 255, 1);
50
+ }
51
+ }
52
+
53
+ &[padding] {
54
+ flex: 1;
55
+ }
56
+
57
+ &[add] * {
58
+ color: rgba(255, 255, 255, 0.5);
59
+ }
60
+ }
61
+ `
@@ -1,72 +1,16 @@
1
- import '@material/mwc-icon'
1
+ import '@material/web/icon/icon.js'
2
2
 
3
- import { css, html, nothing, LitElement } from 'lit'
3
+ import { html, LitElement } from 'lit'
4
4
  import { customElement, property } from 'lit/decorators.js'
5
-
6
5
  import ScrollBooster from 'scrollbooster'
7
6
 
7
+ import { longpressable } from '@operato/utils'
8
8
  import { privileged } from '@things-factory/auth-base/dist-client'
9
- import { longpressable } from '@things-factory/utils'
9
+ import { GroupBarStyles } from './group-bar-styles'
10
10
 
11
11
  @customElement('group-bar')
12
12
  export default class GroupBar extends LitElement {
13
- static styles = [
14
- css`
15
- :host {
16
- background-color: var(--group-bar-background-color);
17
-
18
- overflow-x: hidden;
19
- }
20
-
21
- ul {
22
- display: flex;
23
- list-style: none;
24
- margin: 0;
25
- padding: 0;
26
- white-space: nowrap;
27
- }
28
-
29
- li {
30
- display: inline-block;
31
- padding: 0px 3px;
32
-
33
- border-bottom: var(--group-bar-line);
34
- }
35
-
36
- li[active] {
37
- border-color: var(--group-bar-active-line-color);
38
- }
39
-
40
- li a {
41
- display: block;
42
- padding: 5px 4px 1px 4px;
43
- text-decoration: none;
44
- font: var(--group-bar-textbutton);
45
- color: rgba(255, 255, 255, 0.8);
46
- }
47
-
48
- li[active] a {
49
- font: var(--group-bar-textbutton-active);
50
- color: rgba(255, 255, 255, 1);
51
- }
52
-
53
- li[padding] {
54
- flex: 1;
55
- }
56
-
57
- li[add] {
58
- padding: 5px 4px 1px 4px;
59
- }
60
-
61
- li[add] * {
62
- color: rgba(255, 255, 255, 0.5);
63
- }
64
-
65
- mwc-icon {
66
- vertical-align: middle;
67
- }
68
- `
69
- ]
13
+ static styles = [GroupBarStyles]
70
14
 
71
15
  @property({ type: Array }) groups?: any[]
72
16
  @property({ type: String }) groupId?: string
@@ -78,17 +22,17 @@ export default class GroupBar extends LitElement {
78
22
  return html`
79
23
  <ul>
80
24
  <li ?active=${!this.groupId}>
81
- <a href=${this.targetPage || ''}><mwc-icon>dashboard</mwc-icon></a>
25
+ <a href=${this.targetPage || ''}><md-icon>dashboard</md-icon></a>
82
26
  </li>
83
27
 
84
28
  <li ?active=${this.groupId === 'favor'}>
85
- <a href="${this.targetPage}/favor"><mwc-icon>star</mwc-icon></a>
29
+ <a href="${this.targetPage}/favor"><md-icon>star</md-icon></a>
86
30
  </li>
87
31
 
88
32
  ${privileged(
89
33
  { privilege: 'mutation', category: 'board' },
90
34
  html`<li ?active=${this.groupId === 'mywork'}>
91
- <a href="${this.targetPage}/mywork"><mwc-icon>engineering</mwc-icon></a>
35
+ <a href="${this.targetPage}/mywork"><md-icon>engineering</md-icon></a>
92
36
  </li>`
93
37
  )}
94
38
  ${(this.groups || []).map(
@@ -102,7 +46,7 @@ export default class GroupBar extends LitElement {
102
46
  <li padding></li>
103
47
 
104
48
  <li add>
105
- <mwc-icon @click=${e => this.infoGroup()}>add</mwc-icon>
49
+ <md-icon @click=${e => this.infoGroup()}>add</md-icon>
106
50
  </li>
107
51
  </ul>
108
52
  `
@@ -139,7 +83,7 @@ export default class GroupBar extends LitElement {
139
83
  var scrollTarget = this.renderRoot.querySelector('ul')
140
84
 
141
85
  /* long-press */
142
- longpressable(scrollTarget)
86
+ longpressable(scrollTarget!)
143
87
 
144
88
  scrollTarget!.addEventListener('mousewheel', this.onWheelEvent.bind(this), false)
145
89
 
@@ -1,70 +1,15 @@
1
- import '@material/mwc-icon'
1
+ import '@material/web/icon/icon.js'
2
2
 
3
- import { css, html, LitElement } from 'lit'
4
- import { customElement, property, state } from 'lit/decorators.js'
3
+ import { html, LitElement } from 'lit'
4
+ import { customElement, property } from 'lit/decorators.js'
5
5
  import ScrollBooster from 'scrollbooster'
6
6
 
7
- import { longpressable } from '@things-factory/utils'
7
+ import { longpressable } from '@operato/utils'
8
+ import { GroupBarStyles } from './group-bar-styles'
8
9
 
9
10
  @customElement('play-group-bar')
10
11
  export default class PlayGroupBar extends LitElement {
11
- static styles = [
12
- css`
13
- :host {
14
- background-color: var(--group-bar-background-color);
15
-
16
- overflow-x: hidden;
17
- }
18
-
19
- ul {
20
- display: flex;
21
- list-style: none;
22
- margin: 0;
23
- padding: 0;
24
- white-space: nowrap;
25
- }
26
-
27
- li {
28
- display: inline-block;
29
- padding: 0px 3px;
30
-
31
- border-bottom: var(--group-bar-line);
32
- }
33
-
34
- li[active] {
35
- border-color: var(--group-bar-active-line-color);
36
- }
37
-
38
- li a {
39
- display: block;
40
- padding: 5px 4px 1px 4px;
41
- text-decoration: none;
42
- font: var(--group-bar-textbutton);
43
- color: rgba(255, 255, 255, 0.8);
44
- }
45
-
46
- li[active] a {
47
- font: var(--group-bar-textbutton-active);
48
- color: rgba(255, 255, 255, 1);
49
- }
50
-
51
- li[padding] {
52
- flex: 1;
53
- }
54
-
55
- li[add] {
56
- padding: 5px 4px 1px 4px;
57
- }
58
-
59
- li[add] * {
60
- color: rgba(255, 255, 255, 0.5);
61
- }
62
-
63
- mwc-icon {
64
- vertical-align: middle;
65
- }
66
- `
67
- ]
12
+ static styles = [GroupBarStyles]
68
13
 
69
14
  @property({ type: Array }) groups: { id: string; name: string }[] = []
70
15
  @property({ type: String }) groupId: string = ''
@@ -83,10 +28,10 @@ export default class PlayGroupBar extends LitElement {
83
28
  `
84
29
  )}
85
30
 
86
- <li padding></li>
31
+ <li padding>&nbsp;</li>
87
32
 
88
33
  <li add>
89
- <mwc-icon @click=${e => this._infoGroup()}>add</mwc-icon>
34
+ <md-icon @click=${e => this._infoGroup()}>add</md-icon>
90
35
  </li>
91
36
  </ul>
92
37
  `
@@ -127,7 +72,7 @@ export default class PlayGroupBar extends LitElement {
127
72
  var scrollTarget = this.renderRoot.querySelector('ul')
128
73
 
129
74
  /* long-press */
130
- longpressable(scrollTarget)
75
+ longpressable(scrollTarget!)
131
76
 
132
77
  scrollTarget!.addEventListener('mousewheel', this._onWheelEvent.bind(this), false)
133
78
 
@@ -1,4 +1,4 @@
1
- import '@material/mwc-icon'
1
+ import '@material/web/icon/icon.js'
2
2
 
3
3
  import gql from 'graphql-tag'
4
4
  import { css, html, LitElement } from 'lit'
@@ -49,7 +49,7 @@ class BoardRendererElement extends LitElement {
49
49
  max-width: 100%;
50
50
  max-height: 100%;
51
51
  }
52
- mwc-icon {
52
+ md-icon {
53
53
  position: absolute;
54
54
  top: 0;
55
55
  text-align: center;
@@ -59,13 +59,13 @@ class BoardRendererElement extends LitElement {
59
59
  height: var(--board-renderer-icon-size);
60
60
  font: var(--board-renderer-font);
61
61
  }
62
- mwc-icon[edit] {
62
+ md-icon[edit] {
63
63
  right: 0;
64
64
 
65
65
  border-bottom-left-radius: var(--board-renderer-icon-border-radius);
66
66
  background-color: var(--board-renderer-icon-edit-background-color);
67
67
  }
68
- mwc-icon[view] {
68
+ md-icon[view] {
69
69
  left: 0;
70
70
 
71
71
  border-bottom-right-radius: var(--board-renderer-icon-border-radius);
@@ -105,8 +105,8 @@ class BoardRendererElement extends LitElement {
105
105
  ? html`
106
106
  <span>${name}</span>
107
107
  <img src=${thumbnail} alt="no thumbnail!" />
108
- <mwc-icon view @mousedown=${e => this.onClickViewer(e, id)}>search</mwc-icon>
109
- <mwc-icon edit @mousedown=${e => this.onClickModeler(e, id)}>edit</mwc-icon>
108
+ <md-icon view @mousedown=${e => this.onClickViewer(e, id)}>search</md-icon>
109
+ <md-icon edit @mousedown=${e => this.onClickModeler(e, id)}>edit</md-icon>
110
110
  `
111
111
  : html` choose board.. `
112
112
  }
@@ -1,4 +1,3 @@
1
- import '@material/mwc-icon'
2
1
  import '../viewparts/board-info'
3
2
  import '../viewparts/group-info'
4
3
  import '../board-list/board-tile-list'
@@ -83,7 +82,13 @@ export class BoardListPage extends localize(i18next)(connect(store)(InfiniteScro
83
82
  return {
84
83
  title: {
85
84
  icon: 'dashboard',
86
- text: group ? 'Group ' + group.name : groupId == 'favor' ? 'Favorite' : groupId == 'mywork' ? 'My works' : 'Board List'
85
+ text: group
86
+ ? 'Group ' + group.name
87
+ : groupId == 'favor'
88
+ ? 'Favorite'
89
+ : groupId == 'mywork'
90
+ ? 'My works'
91
+ : 'Board List'
87
92
  },
88
93
  search: {
89
94
  handler: search => {
@@ -104,7 +109,12 @@ export class BoardListPage extends localize(i18next)(connect(store)(InfiniteScro
104
109
 
105
110
  render() {
106
111
  return html`
107
- <group-bar .groups=${this.groups} .groupId=${this.groupId} targetPage="board-list" @info-group=${e => this.onInfoGroup(e.detail)}></group-bar>
112
+ <group-bar
113
+ .groups=${this.groups}
114
+ .groupId=${this.groupId}
115
+ targetPage="board-list"
116
+ @info-group=${e => this.onInfoGroup(e.detail)}
117
+ ></group-bar>
108
118
 
109
119
  <board-tile-list
110
120
  id="list"
@@ -321,7 +331,9 @@ export class BoardListPage extends localize(i18next)(connect(store)(InfiniteScro
321
331
  list.style.transition = 'transform 0.3s'
322
332
  list.style.transform = `translate3d(${d < 0 ? '-100%' : '100%'}, 0, 0)`
323
333
 
324
- navigate(`${this.page}/${groups[currentIndex + (d < 0 ? 1 : -1)].id}${this.searchText ? '?search=' + this.searchText : ''}`)
334
+ navigate(
335
+ `${this.page}/${groups[currentIndex + (d < 0 ? 1 : -1)].id}${this.searchText ? '?search=' + this.searchText : ''}`
336
+ )
325
337
  }
326
338
  }
327
339
  }
@@ -501,7 +513,8 @@ export class BoardListPage extends localize(i18next)(connect(store)(InfiniteScro
501
513
  }
502
514
  })
503
515
 
504
- data && this._notify('info', i18next.t('text.joined into play-group', { board: board.name, playGroup: playGroup.name }))
516
+ data &&
517
+ this._notify('info', i18next.t('text.joined into play-group', { board: board.name, playGroup: playGroup.name }))
505
518
  } catch (ex) {
506
519
  this._notify('error', ex, ex)
507
520
  }
@@ -523,7 +536,8 @@ export class BoardListPage extends localize(i18next)(connect(store)(InfiniteScro
523
536
  }
524
537
  })
525
538
 
526
- data && this._notify('info', i18next.t('text.leaved from play-group', { board: board.name, playGroup: playGroup.name }))
539
+ data &&
540
+ this._notify('info', i18next.t('text.leaved from play-group', { board: board.name, playGroup: playGroup.name }))
527
541
  } catch (ex) {
528
542
  this._notify('error', ex, ex)
529
543
  }
@@ -95,7 +95,9 @@ export class BoardViewerPage extends connect(store)(PageView) {
95
95
  get context() {
96
96
  return {
97
97
  /* can set the page title with the 'title' parameter. */
98
- title: this.lifecycle.params['title'] || (this._board ? this._board.name : this._showSpinner ? 'Fetching board...' : 'Board Not Found')
98
+ title:
99
+ this.lifecycle.params['title'] ||
100
+ (this._board ? this._board.name : this._showSpinner ? 'Fetching board...' : 'Board Not Found')
99
101
  }
100
102
  }
101
103
 
@@ -149,6 +151,10 @@ export class BoardViewerPage extends connect(store)(PageView) {
149
151
  }
150
152
 
151
153
  async fetch(id: string) {
154
+ if (!id) {
155
+ return
156
+ }
157
+
152
158
  return await client.query({
153
159
  query: gql`
154
160
  query ($id: String!) {
@@ -174,7 +180,7 @@ export class BoardViewerPage extends connect(store)(PageView) {
174
180
  this._showSpinner = true
175
181
  this.updateContext()
176
182
 
177
- var { data, errors } = await this.fetch(this._boardId)
183
+ var { data, errors } = (await this.fetch(this._boardId)) || {}
178
184
 
179
185
  var board = data?.response
180
186
 
@@ -1,5 +1,6 @@
1
- import '@material/mwc-fab'
2
- import '@material/mwc-icon'
1
+ import '@material/web/icon/icon.js'
2
+ import '@material/web/fab/fab.js'
3
+
3
4
  import '../viewparts/play-group-info'
4
5
  import '../board-list/board-tile-list'
5
6
  import '../board-list/play-group-bar'
@@ -18,15 +19,7 @@ import { ScrollbarStyles } from '@operato/styles'
18
19
  import { pulltorefresh } from '@operato/pull-to-refresh'
19
20
  import { swipe, isMobileDevice } from '@things-factory/utils'
20
21
 
21
- import {
22
- createPlayGroup,
23
- deletePlayGroup,
24
- fetchPlayGroup,
25
- fetchPlayGroupList,
26
- leavePlayGroup,
27
- updateBoard,
28
- updatePlayGroup
29
- } from '../graphql'
22
+ import { createPlayGroup, deletePlayGroup, fetchPlayGroup, fetchPlayGroupList, leavePlayGroup, updateBoard, updatePlayGroup } from '../graphql'
30
23
 
31
24
  @customElement('play-list-page')
32
25
  export class PlayListPage extends localize(i18next)(connect(store)(PageView)) {
@@ -78,12 +71,7 @@ export class PlayListPage extends localize(i18next)(connect(store)(PageView)) {
78
71
 
79
72
  render() {
80
73
  return html`
81
- <play-group-bar
82
- .groups=${this.groups}
83
- .groupId=${this.groupId}
84
- target-page="play-list"
85
- @info-play-group=${e => this.onInfoPlayGroup(e.detail)}
86
- ></play-group-bar>
74
+ <play-group-bar .groups=${this.groups} .groupId=${this.groupId} target-page="play-list" @info-play-group=${e => this.onInfoPlayGroup(e.detail)}></play-group-bar>
87
75
 
88
76
  <board-tile-list
89
77
  .favorites=${this.favorites}
@@ -97,7 +85,9 @@ export class PlayListPage extends localize(i18next)(connect(store)(PageView)) {
97
85
  ></board-tile-list>
98
86
 
99
87
  <a id="play" .href=${'board-player/' + this.groupId}>
100
- <mwc-fab icon="play_arrow" title="play"> </mwc-fab>
88
+ <md-fab title="play">
89
+ <md-icon slot="icon">play_arrow</md-icon>
90
+ </md-fab>
101
91
  </a>
102
92
  `
103
93
  }
@@ -99,7 +99,7 @@ export class ThemeListPage extends connect(store)(localize(i18next)(ScopedElemen
99
99
 
100
100
  <div id="sorters">
101
101
  Sort
102
- <mwc-icon
102
+ <md-icon
103
103
  @click=${e => {
104
104
  const target = e.currentTarget
105
105
  this.sortersControl.open({
@@ -107,7 +107,7 @@ export class ThemeListPage extends connect(store)(localize(i18next)(ScopedElemen
107
107
  top: target.offsetTop + target.offsetHeight
108
108
  })
109
109
  }}
110
- >expand_more</mwc-icon
110
+ >expand_more</md-icon
111
111
  >
112
112
  <ox-popup id="sorter-control">
113
113
  <ox-sorters-control> </ox-sorters-control>
@@ -115,9 +115,10 @@ export class ThemeListPage extends connect(store)(localize(i18next)(ScopedElemen
115
115
  </div>
116
116
 
117
117
  <div id="modes">
118
- <mwc-icon @click=${() => (this.mode = 'GRID')} ?active=${mode == 'GRID'}>grid_on</mwc-icon>
119
- <mwc-icon @click=${() => (this.mode = 'LIST')} ?active=${mode == 'LIST'}>format_list_bulleted</mwc-icon>
120
- <mwc-icon @click=${() => (this.mode = 'CARD')} ?active=${mode == 'CARD'}>apps</mwc-icon>
118
+ <md-icon @click=${() => (this.mode = 'GRID')} ?active=${mode == 'GRID'}>grid_on</md-icon>
119
+ <md-icon @click=${() => (this.mode = 'LIST')} ?active=${mode == 'LIST'}>format_list_bulleted</md-icon>
120
+ <md-icon @click=${() => (this.mode = 'CARD')} ?active=${mode == 'CARD'}>apps</md-icon>
121
+ </div>
121
122
  </div>
122
123
  </div>
123
124
  </ox-grist>