@things-factory/board-ui 6.2.96 → 6.2.102

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 (160) hide show
  1. package/client/pages/board-modeller-page.ts +1 -1
  2. package/client/pages/board-player-page.ts +1 -1
  3. package/client/pages/board-viewer-page.ts +2 -4
  4. package/client/setting-let/board-view-setting-let.ts +2 -6
  5. package/package.json +4 -4
  6. package/translations/en.json +1 -0
  7. package/translations/ja.json +1 -0
  8. package/translations/ko.json +1 -0
  9. package/translations/ms.json +1 -1
  10. package/translations/zh.json +5 -4
  11. package/dist-client/apptools/favorite-tool.d.ts +0 -26
  12. package/dist-client/apptools/favorite-tool.js +0 -129
  13. package/dist-client/apptools/favorite-tool.js.map +0 -1
  14. package/dist-client/board-list/board-importer.d.ts +0 -6
  15. package/dist-client/board-list/board-importer.js +0 -112
  16. package/dist-client/board-list/board-importer.js.map +0 -1
  17. package/dist-client/board-list/board-tile-list.d.ts +0 -22
  18. package/dist-client/board-list/board-tile-list.js +0 -264
  19. package/dist-client/board-list/board-tile-list.js.map +0 -1
  20. package/dist-client/board-list/group-bar.d.ts +0 -14
  21. package/dist-client/board-list/group-bar.js +0 -145
  22. package/dist-client/board-list/group-bar.js.map +0 -1
  23. package/dist-client/board-list/play-group-bar.d.ts +0 -21
  24. package/dist-client/board-list/play-group-bar.js +0 -142
  25. package/dist-client/board-list/play-group-bar.js.map +0 -1
  26. package/dist-client/board-provider.d.ts +0 -3
  27. package/dist-client/board-provider.js +0 -77
  28. package/dist-client/board-provider.js.map +0 -1
  29. package/dist-client/bootstrap.d.ts +0 -2
  30. package/dist-client/bootstrap.js +0 -30
  31. package/dist-client/bootstrap.js.map +0 -1
  32. package/dist-client/data-grist/board-editor.d.ts +0 -14
  33. package/dist-client/data-grist/board-editor.js +0 -110
  34. package/dist-client/data-grist/board-editor.js.map +0 -1
  35. package/dist-client/data-grist/board-renderer.d.ts +0 -2
  36. package/dist-client/data-grist/board-renderer.js +0 -134
  37. package/dist-client/data-grist/board-renderer.js.map +0 -1
  38. package/dist-client/data-grist/color-map-editor.d.ts +0 -4
  39. package/dist-client/data-grist/color-map-editor.js +0 -15
  40. package/dist-client/data-grist/color-map-editor.js.map +0 -1
  41. package/dist-client/data-grist/color-ranges-editor.d.ts +0 -4
  42. package/dist-client/data-grist/color-ranges-editor.js +0 -15
  43. package/dist-client/data-grist/color-ranges-editor.js.map +0 -1
  44. package/dist-client/graphql/board-template.d.ts +0 -5
  45. package/dist-client/graphql/board-template.js +0 -128
  46. package/dist-client/graphql/board-template.js.map +0 -1
  47. package/dist-client/graphql/board.d.ts +0 -19
  48. package/dist-client/graphql/board.js +0 -231
  49. package/dist-client/graphql/board.js.map +0 -1
  50. package/dist-client/graphql/favorite-board.d.ts +0 -1
  51. package/dist-client/graphql/favorite-board.js +0 -24
  52. package/dist-client/graphql/favorite-board.js.map +0 -1
  53. package/dist-client/graphql/group.d.ts +0 -6
  54. package/dist-client/graphql/group.js +0 -125
  55. package/dist-client/graphql/group.js.map +0 -1
  56. package/dist-client/graphql/index.d.ts +0 -6
  57. package/dist-client/graphql/index.js +0 -7
  58. package/dist-client/graphql/index.js.map +0 -1
  59. package/dist-client/graphql/my-board.d.ts +0 -1
  60. package/dist-client/graphql/my-board.js +0 -24
  61. package/dist-client/graphql/my-board.js.map +0 -1
  62. package/dist-client/graphql/play-group.d.ts +0 -7
  63. package/dist-client/graphql/play-group.js +0 -173
  64. package/dist-client/graphql/play-group.js.map +0 -1
  65. package/dist-client/index.d.ts +0 -8
  66. package/dist-client/index.js +0 -9
  67. package/dist-client/index.js.map +0 -1
  68. package/dist-client/pages/attachment-list-page.d.ts +0 -30
  69. package/dist-client/pages/attachment-list-page.js +0 -128
  70. package/dist-client/pages/attachment-list-page.js.map +0 -1
  71. package/dist-client/pages/board-list-page.d.ts +0 -109
  72. package/dist-client/pages/board-list-page.js +0 -532
  73. package/dist-client/pages/board-list-page.js.map +0 -1
  74. package/dist-client/pages/board-modeller-page.d.ts +0 -49
  75. package/dist-client/pages/board-modeller-page.js +0 -309
  76. package/dist-client/pages/board-modeller-page.js.map +0 -1
  77. package/dist-client/pages/board-player-by-name-page.d.ts +0 -4
  78. package/dist-client/pages/board-player-by-name-page.js +0 -32
  79. package/dist-client/pages/board-player-by-name-page.js.map +0 -1
  80. package/dist-client/pages/board-player-page.d.ts +0 -42
  81. package/dist-client/pages/board-player-page.js +0 -230
  82. package/dist-client/pages/board-player-page.js.map +0 -1
  83. package/dist-client/pages/board-template/board-template-list-page.d.ts +0 -37
  84. package/dist-client/pages/board-template/board-template-list-page.js +0 -226
  85. package/dist-client/pages/board-template/board-template-list-page.js.map +0 -1
  86. package/dist-client/pages/board-viewer-by-name-page.d.ts +0 -4
  87. package/dist-client/pages/board-viewer-by-name-page.js +0 -27
  88. package/dist-client/pages/board-viewer-by-name-page.js.map +0 -1
  89. package/dist-client/pages/board-viewer-page.d.ts +0 -41
  90. package/dist-client/pages/board-viewer-page.js +0 -247
  91. package/dist-client/pages/board-viewer-page.js.map +0 -1
  92. package/dist-client/pages/font-list-page.d.ts +0 -9
  93. package/dist-client/pages/font-list-page.js +0 -31
  94. package/dist-client/pages/font-list-page.js.map +0 -1
  95. package/dist-client/pages/play-list-page.d.ts +0 -58
  96. package/dist-client/pages/play-list-page.js +0 -364
  97. package/dist-client/pages/play-list-page.js.map +0 -1
  98. package/dist-client/pages/printable-board-viewer-page.d.ts +0 -11
  99. package/dist-client/pages/printable-board-viewer-page.js +0 -43
  100. package/dist-client/pages/printable-board-viewer-page.js.map +0 -1
  101. package/dist-client/pages/theme/theme-editors.d.ts +0 -5
  102. package/dist-client/pages/theme/theme-editors.js +0 -53
  103. package/dist-client/pages/theme/theme-editors.js.map +0 -1
  104. package/dist-client/pages/theme/theme-list-page.d.ts +0 -49
  105. package/dist-client/pages/theme/theme-list-page.js +0 -318
  106. package/dist-client/pages/theme/theme-list-page.js.map +0 -1
  107. package/dist-client/pages/things-scene-components-with-tools.import +0 -0
  108. package/dist-client/pages/things-scene-components.import +0 -0
  109. package/dist-client/route.d.ts +0 -1
  110. package/dist-client/route.js +0 -41
  111. package/dist-client/route.js.map +0 -1
  112. package/dist-client/setting-let/board-view-setting-let.d.ts +0 -14
  113. package/dist-client/setting-let/board-view-setting-let.js +0 -70
  114. package/dist-client/setting-let/board-view-setting-let.js.map +0 -1
  115. package/dist-client/themes/board-theme.css +0 -76
  116. package/dist-client/tsconfig.tsbuildinfo +0 -1
  117. package/dist-client/viewparts/board-basic-info.d.ts +0 -47
  118. package/dist-client/viewparts/board-basic-info.js +0 -641
  119. package/dist-client/viewparts/board-basic-info.js.map +0 -1
  120. package/dist-client/viewparts/board-info-link.d.ts +0 -12
  121. package/dist-client/viewparts/board-info-link.js +0 -59
  122. package/dist-client/viewparts/board-info-link.js.map +0 -1
  123. package/dist-client/viewparts/board-info.d.ts +0 -14
  124. package/dist-client/viewparts/board-info.js +0 -94
  125. package/dist-client/viewparts/board-info.js.map +0 -1
  126. package/dist-client/viewparts/board-template-builder.d.ts +0 -16
  127. package/dist-client/viewparts/board-template-builder.js +0 -145
  128. package/dist-client/viewparts/board-template-builder.js.map +0 -1
  129. package/dist-client/viewparts/board-versions.d.ts +0 -12
  130. package/dist-client/viewparts/board-versions.js +0 -157
  131. package/dist-client/viewparts/board-versions.js.map +0 -1
  132. package/dist-client/viewparts/group-info-basic.d.ts +0 -16
  133. package/dist-client/viewparts/group-info-basic.js +0 -247
  134. package/dist-client/viewparts/group-info-basic.js.map +0 -1
  135. package/dist-client/viewparts/group-info-import.d.ts +0 -15
  136. package/dist-client/viewparts/group-info-import.js +0 -137
  137. package/dist-client/viewparts/group-info-import.js.map +0 -1
  138. package/dist-client/viewparts/group-info.d.ts +0 -10
  139. package/dist-client/viewparts/group-info.js +0 -92
  140. package/dist-client/viewparts/group-info.js.map +0 -1
  141. package/dist-client/viewparts/index.d.ts +0 -3
  142. package/dist-client/viewparts/index.js +0 -4
  143. package/dist-client/viewparts/index.js.map +0 -1
  144. package/dist-client/viewparts/link-builder.d.ts +0 -22
  145. package/dist-client/viewparts/link-builder.js +0 -217
  146. package/dist-client/viewparts/link-builder.js.map +0 -1
  147. package/dist-client/viewparts/play-group-info-basic.d.ts +0 -16
  148. package/dist-client/viewparts/play-group-info-basic.js +0 -249
  149. package/dist-client/viewparts/play-group-info-basic.js.map +0 -1
  150. package/dist-client/viewparts/play-group-info-link.d.ts +0 -10
  151. package/dist-client/viewparts/play-group-info-link.js +0 -48
  152. package/dist-client/viewparts/play-group-info-link.js.map +0 -1
  153. package/dist-client/viewparts/play-group-info.d.ts +0 -13
  154. package/dist-client/viewparts/play-group-info.js +0 -90
  155. package/dist-client/viewparts/play-group-info.js.map +0 -1
  156. package/dist-server/index.js +0 -5
  157. package/dist-server/index.js.map +0 -1
  158. package/dist-server/migrations/index.js +0 -12
  159. package/dist-server/migrations/index.js.map +0 -1
  160. package/dist-server/tsconfig.tsbuildinfo +0 -1
@@ -1,264 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import '@operato/board/ox-board-creation-card.js';
3
- import '@material/mwc-icon';
4
- import gql from 'graphql-tag';
5
- import { css, html, LitElement, nothing } from 'lit';
6
- import { customElement, property } from 'lit/decorators.js';
7
- import { keyed } from 'lit/directives/keyed.js';
8
- import { client } from '@operato/graphql';
9
- import { privileged } from '@things-factory/auth-base/dist-client';
10
- let BoardTileList = class BoardTileList extends LitElement {
11
- constructor() {
12
- super(...arguments);
13
- this.boards = [];
14
- this.favorites = [];
15
- this.groups = [];
16
- this.creatable = false;
17
- this.reorderable = false;
18
- }
19
- connectedCallback() {
20
- super.connectedCallback();
21
- if (this.reorderable) {
22
- this.renderRoot.addEventListener('dragstart', (e) => {
23
- var _a;
24
- const target = e.target;
25
- this.draggedItem = target.closest('[card]');
26
- (_a = e.dataTransfer) === null || _a === void 0 ? void 0 : _a.setData('text/plain', target.innerHTML);
27
- });
28
- this.renderRoot.addEventListener('dragover', (e) => {
29
- e.preventDefault();
30
- const target = e.target;
31
- const targetItem = target.closest('[card]');
32
- if (targetItem && targetItem !== this.draggedItem) {
33
- const targetRect = targetItem.getBoundingClientRect();
34
- const mousePos = e.clientX - targetRect.left;
35
- if (mousePos < targetRect.width / 2) {
36
- // 마우스 위치가 아이템 좌측 반절에 있을 때
37
- this.renderRoot.insertBefore(this.draggedItem, targetItem);
38
- }
39
- else {
40
- // 마우스 위치가 아이템 우측 반절에 있을 때
41
- this.renderRoot.insertBefore(this.draggedItem, targetItem.nextSibling);
42
- }
43
- }
44
- });
45
- this.renderRoot.addEventListener('drop', (e) => {
46
- e.preventDefault();
47
- const boardIds = Array.from(this.renderRoot.querySelectorAll('[card]'))
48
- .map(board => board.getAttribute('id'))
49
- .filter(Boolean);
50
- this.dispatchEvent(new CustomEvent('reordered', {
51
- detail: {
52
- groupId: this.group,
53
- boardIds
54
- }
55
- }));
56
- });
57
- }
58
- }
59
- render() {
60
- var boards = this.boards || [];
61
- return html `
62
- ${this.creatable
63
- ? privileged({ privilege: 'mutation', category: 'board' }, html `
64
- <ox-board-creation-card .groups=${this.groups} .defaultGroup=${this.group} @create-board=${e => this.onCreateBoard(e)} card create></ox-board-creation-card>
65
- `)
66
- : nothing}
67
- ${keyed(Date.now(), boards.map(board => html `
68
- <div card draggable="true" id=${board.id}>
69
- <a href="board-viewer/${board.id}"> <img src=${board.thumbnail} /> </a>
70
-
71
- <div name>${board.name}</div>
72
- <!-- <div description>${board.description}</div> -->
73
-
74
- <mwc-icon
75
- iconBtn
76
- info
77
- @click=${e => {
78
- this.infoBoard(board);
79
- e.preventDefault();
80
- }}
81
- >info</mwc-icon
82
- >
83
-
84
- ${(this.favorites || []).includes(board.id)
85
- ? html ` <mwc-icon iconBtn favored @click=${e => this.removeFavorite(board.id)}>star</mwc-icon> `
86
- : html ` <mwc-icon iconBtn @click=${e => this.addFavorite(board.id)}>star_border</mwc-icon> `}
87
- </div>
88
- `))}
89
- `;
90
- }
91
- updated(changes) {
92
- var creationCard = this.renderRoot.querySelector('ox-board-creation-card');
93
- if (creationCard) {
94
- creationCard.reset();
95
- }
96
- }
97
- onCreateBoard(e) {
98
- this.dispatchEvent(new CustomEvent('create-board', {
99
- detail: e.detail
100
- }));
101
- }
102
- infoBoard(board) {
103
- this.dispatchEvent(new CustomEvent('info-board', {
104
- detail: board
105
- }));
106
- }
107
- async removeFavorite(boardId) {
108
- await client.query({
109
- query: gql `
110
- mutation {
111
- deleteFavorite(routing: "${boardId}")
112
- }
113
- `
114
- });
115
- this.refreshFavorites();
116
- }
117
- async addFavorite(boardId) {
118
- await client.query({
119
- query: gql `
120
- mutation {
121
- createFavorite(favorite: {
122
- routing: "${boardId}"
123
- }) {
124
- id
125
- routing
126
- }
127
- }
128
- `
129
- });
130
- this.refreshFavorites();
131
- }
132
- async refreshFavorites() {
133
- this.dispatchEvent(new CustomEvent('refresh-favorites'));
134
- }
135
- };
136
- BoardTileList.styles = [
137
- css `
138
- :host {
139
- overflow: auto;
140
- padding: var(--popup-content-padding);
141
- display: grid;
142
-
143
- grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
144
- grid-auto-rows: var(--card-list-rows-height);
145
- grid-gap: 20px;
146
- --mdc-button-horizontal-padding: var(--padding-default);
147
- }
148
-
149
- [card] {
150
- position: relative;
151
- align-items: center;
152
- overflow: hidden;
153
- }
154
-
155
- [card][create] {
156
- overflow: visible;
157
- background-color: initial;
158
- }
159
-
160
- [card] > a {
161
- display: flex;
162
- }
163
-
164
- [card]:hover {
165
- cursor: pointer;
166
- }
167
-
168
- [name] {
169
- text-overflow: ellipsis;
170
- white-space: nowrap;
171
- overflow: hidden;
172
- margin-top: var(--margin-narrow);
173
- width: calc(100% - 45px);
174
- color: var(--primary-text-color);
175
- font-weight: bolder;
176
- font-size: var(--fontsize-small);
177
- }
178
-
179
- img {
180
- display: block;
181
-
182
- margin: auto;
183
- max-width: 100%;
184
- max-height: 100%;
185
- }
186
-
187
- mwc-icon[iconBtn] {
188
- float: right;
189
- margin-top: -20px;
190
- margin-left: 2px;
191
- color: var(--board-list-star-color);
192
- font-size: 1.4em;
193
- }
194
- mwc-icon[info] {
195
- color: var(--primary-color);
196
- }
197
-
198
- mwc-icon[iconBtn][favored],
199
- mwc-icon[info]:hover {
200
- color: var(--board-list-star-active-color);
201
- }
202
-
203
- a {
204
- display: block;
205
- border-radius: var(--card-list-border-radius);
206
- border: var(--border-dark-color);
207
- box-sizing: border-box;
208
- background-color: var(--card-list-background-color);
209
- margin: 0px;
210
- height: calc(100% - 25px);
211
- }
212
-
213
- :host > *:hover [info] {
214
- opacity: 1;
215
- -webkit-transition: opacity 0.8s;
216
- -moz-transition: opacity 0.8s;
217
- -o-transition: opacity 0.8s;
218
- transition: opacity 0.8s;
219
- }
220
-
221
- [draggable='true'] {
222
- cursor: grab;
223
- }
224
-
225
- @media screen and (max-width: 800px), screen and (max-height: 600px) {
226
- ox-board-creation-card {
227
- display: none;
228
- }
229
- }
230
- `
231
- ];
232
- __decorate([
233
- property({ type: Array }),
234
- __metadata("design:type", Array)
235
- ], BoardTileList.prototype, "boards", void 0);
236
- __decorate([
237
- property({ type: Array }),
238
- __metadata("design:type", Array)
239
- ], BoardTileList.prototype, "favorites", void 0);
240
- __decorate([
241
- property({ type: Array }),
242
- __metadata("design:type", Array)
243
- ], BoardTileList.prototype, "groups", void 0);
244
- __decorate([
245
- property({ type: String }),
246
- __metadata("design:type", String)
247
- ], BoardTileList.prototype, "group", void 0);
248
- __decorate([
249
- property({ type: Boolean }),
250
- __metadata("design:type", Boolean)
251
- ], BoardTileList.prototype, "creatable", void 0);
252
- __decorate([
253
- property({ type: String, attribute: 'search-text' }),
254
- __metadata("design:type", String)
255
- ], BoardTileList.prototype, "searchText", void 0);
256
- __decorate([
257
- property({ type: Boolean, attribute: 'reorderable' }),
258
- __metadata("design:type", Boolean)
259
- ], BoardTileList.prototype, "reorderable", void 0);
260
- BoardTileList = __decorate([
261
- customElement('board-tile-list')
262
- ], BoardTileList);
263
- export { BoardTileList };
264
- //# sourceMappingURL=board-tile-list.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"board-tile-list.js","sourceRoot":"","sources":["../../client/board-list/board-tile-list.ts"],"names":[],"mappings":"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","sourcesContent":["import '@operato/board/ox-board-creation-card.js'\nimport '@material/mwc-icon'\n\nimport gql from 'graphql-tag'\nimport { css, html, LitElement, PropertyValues, nothing } from 'lit'\nimport { customElement, property, state, query } from 'lit/decorators.js'\nimport { keyed } from 'lit/directives/keyed.js'\n\nimport { client } from '@operato/graphql'\nimport { privileged } from '@things-factory/auth-base/dist-client'\n\n@customElement('board-tile-list')\nexport class BoardTileList extends LitElement {\n static styles = [\n css`\n :host {\n overflow: auto;\n padding: var(--popup-content-padding);\n display: grid;\n\n grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));\n grid-auto-rows: var(--card-list-rows-height);\n grid-gap: 20px;\n --mdc-button-horizontal-padding: var(--padding-default);\n }\n\n [card] {\n position: relative;\n align-items: center;\n overflow: hidden;\n }\n\n [card][create] {\n overflow: visible;\n background-color: initial;\n }\n\n [card] > a {\n display: flex;\n }\n\n [card]:hover {\n cursor: pointer;\n }\n\n [name] {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n margin-top: var(--margin-narrow);\n width: calc(100% - 45px);\n color: var(--primary-text-color);\n font-weight: bolder;\n font-size: var(--fontsize-small);\n }\n\n img {\n display: block;\n\n margin: auto;\n max-width: 100%;\n max-height: 100%;\n }\n\n mwc-icon[iconBtn] {\n float: right;\n margin-top: -20px;\n margin-left: 2px;\n color: var(--board-list-star-color);\n font-size: 1.4em;\n }\n mwc-icon[info] {\n color: var(--primary-color);\n }\n\n mwc-icon[iconBtn][favored],\n mwc-icon[info]:hover {\n color: var(--board-list-star-active-color);\n }\n\n a {\n display: block;\n border-radius: var(--card-list-border-radius);\n border: var(--border-dark-color);\n box-sizing: border-box;\n background-color: var(--card-list-background-color);\n margin: 0px;\n height: calc(100% - 25px);\n }\n\n :host > *:hover [info] {\n opacity: 1;\n -webkit-transition: opacity 0.8s;\n -moz-transition: opacity 0.8s;\n -o-transition: opacity 0.8s;\n transition: opacity 0.8s;\n }\n\n [draggable='true'] {\n cursor: grab;\n }\n\n @media screen and (max-width: 800px), screen and (max-height: 600px) {\n ox-board-creation-card {\n display: none;\n }\n }\n `\n ]\n\n @property({ type: Array }) boards: any[] = []\n @property({ type: Array }) favorites: any[] = []\n @property({ type: Array }) groups: any[] = []\n @property({ type: String }) group?: string\n @property({ type: Boolean }) creatable?: boolean = false\n @property({ type: String, attribute: 'search-text' }) searchText?: string\n @property({ type: Boolean, attribute: 'reorderable' }) reorderable: boolean = false\n\n private draggedItem\n\n connectedCallback() {\n super.connectedCallback()\n\n if (this.reorderable) {\n this.renderRoot.addEventListener('dragstart', (e: Event) => {\n const target = e.target! as HTMLElement\n this.draggedItem = target.closest('[card]')\n ;(e as DragEvent).dataTransfer?.setData('text/plain', target.innerHTML)\n })\n\n this.renderRoot.addEventListener('dragover', (e: Event) => {\n e.preventDefault()\n\n const target = e.target! as HTMLElement\n const targetItem = target.closest('[card]')\n if (targetItem && targetItem !== this.draggedItem) {\n const targetRect = targetItem.getBoundingClientRect()\n const mousePos = (e as DragEvent).clientX - targetRect.left\n\n if (mousePos < targetRect.width / 2) {\n // 마우스 위치가 아이템 좌측 반절에 있을 때\n this.renderRoot.insertBefore(this.draggedItem, targetItem)\n } else {\n // 마우스 위치가 아이템 우측 반절에 있을 때\n this.renderRoot.insertBefore(this.draggedItem, targetItem.nextSibling)\n }\n }\n })\n\n this.renderRoot.addEventListener('drop', (e: Event) => {\n e.preventDefault()\n\n const boardIds = Array.from(this.renderRoot.querySelectorAll('[card]'))\n .map(board => board.getAttribute('id'))\n .filter(Boolean)\n\n this.dispatchEvent(\n new CustomEvent('reordered', {\n detail: {\n groupId: this.group,\n boardIds\n }\n })\n )\n })\n }\n }\n\n render() {\n var boards = this.boards || []\n\n return html`\n ${this.creatable\n ? privileged(\n { privilege: 'mutation', category: 'board' },\n html`\n <ox-board-creation-card .groups=${this.groups} .defaultGroup=${this.group} @create-board=${e => this.onCreateBoard(e)} card create></ox-board-creation-card>\n `\n )\n : nothing}\n ${keyed(\n Date.now(),\n boards.map(\n board =>\n html`\n <div card draggable=\"true\" id=${board.id}>\n <a href=\"board-viewer/${board.id}\"> <img src=${board.thumbnail} /> </a>\n\n <div name>${board.name}</div>\n <!-- <div description>${board.description}</div> -->\n\n <mwc-icon\n iconBtn\n info\n @click=${e => {\n this.infoBoard(board)\n e.preventDefault()\n }}\n >info</mwc-icon\n >\n\n ${(this.favorites || []).includes(board.id)\n ? html` <mwc-icon iconBtn favored @click=${e => this.removeFavorite(board.id)}>star</mwc-icon> `\n : html` <mwc-icon iconBtn @click=${e => this.addFavorite(board.id)}>star_border</mwc-icon> `}\n </div>\n `\n )\n )}\n `\n }\n\n updated(changes: PropertyValues<this>) {\n var creationCard = this.renderRoot.querySelector('ox-board-creation-card') as any\n if (creationCard) {\n creationCard.reset()\n }\n }\n\n onCreateBoard(e) {\n this.dispatchEvent(\n new CustomEvent('create-board', {\n detail: e.detail\n })\n )\n }\n\n infoBoard(board) {\n this.dispatchEvent(\n new CustomEvent('info-board', {\n detail: board\n })\n )\n }\n\n async removeFavorite(boardId) {\n await client.query({\n query: gql`\n mutation {\n deleteFavorite(routing: \"${boardId}\")\n }\n `\n })\n\n this.refreshFavorites()\n }\n\n async addFavorite(boardId) {\n await client.query({\n query: gql`\n mutation {\n createFavorite(favorite: {\n routing: \"${boardId}\"\n }) {\n id\n routing\n }\n }\n `\n })\n\n this.refreshFavorites()\n }\n\n async refreshFavorites() {\n this.dispatchEvent(new CustomEvent('refresh-favorites'))\n }\n}\n"]}
@@ -1,14 +0,0 @@
1
- import '@material/mwc-icon';
2
- import { LitElement } from 'lit';
3
- export default class GroupBar extends LitElement {
4
- static styles: import("lit").CSSResult[];
5
- groups?: any[];
6
- groupId?: string;
7
- targetPage?: string;
8
- private __sb?;
9
- render(): import("lit-html").TemplateResult<1>;
10
- infoGroup(groupId?: string): void;
11
- onWheelEvent(e: any): void;
12
- updated(change: any): void;
13
- firstUpdated(): void;
14
- }
@@ -1,145 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import '@material/mwc-icon';
3
- import { css, html, LitElement } from 'lit';
4
- import { customElement, property } from 'lit/decorators.js';
5
- import ScrollBooster from 'scrollbooster';
6
- import { privileged } from '@things-factory/auth-base/dist-client';
7
- import { longpressable } from '@things-factory/utils';
8
- let GroupBar = class GroupBar extends LitElement {
9
- render() {
10
- return html `
11
- <ul>
12
- <li ?active=${!this.groupId}>
13
- <a href=${this.targetPage || ''}><mwc-icon>dashboard</mwc-icon></a>
14
- </li>
15
-
16
- <li ?active=${this.groupId === 'favor'}>
17
- <a href="${this.targetPage}/favor"><mwc-icon>star</mwc-icon></a>
18
- </li>
19
-
20
- ${privileged({ privilege: 'mutation', category: 'board' }, html `<li ?active=${this.groupId === 'mywork'}>
21
- <a href="${this.targetPage}/mywork"><mwc-icon>engineering</mwc-icon></a>
22
- </li>`)}
23
- ${(this.groups || []).map(group => html `
24
- <li ?active=${this.groupId === group.id} @long-press=${e => this.infoGroup(group.id)}>
25
- <a href=${`${this.targetPage}/${group.id}`}>${group.name}</a>
26
- </li>
27
- `)}
28
-
29
- <li padding></li>
30
-
31
- <li add>
32
- <mwc-icon @click=${e => this.infoGroup()}>add</mwc-icon>
33
- </li>
34
- </ul>
35
- `;
36
- }
37
- infoGroup(groupId) {
38
- this.dispatchEvent(new CustomEvent('info-group', {
39
- detail: groupId
40
- }));
41
- }
42
- onWheelEvent(e) {
43
- var delta = Math.max(-1, Math.min(1, e.wheelDelta || -e.detail));
44
- this.scrollLeft -= delta * 40;
45
- e.preventDefault();
46
- }
47
- updated(change) {
48
- if (change.has('groups')) {
49
- /* groups가 바뀔 때마다, contents의 폭이 달라지므로, 다시 폭을 계산해준다. */
50
- this.__sb && this.__sb.updateMetrics();
51
- }
52
- if (change.has('groupId')) {
53
- var active = this.renderRoot.querySelector('li[active]');
54
- active && active.scrollIntoView();
55
- }
56
- }
57
- firstUpdated() {
58
- var scrollTarget = this.renderRoot.querySelector('ul');
59
- /* long-press */
60
- longpressable(scrollTarget);
61
- scrollTarget.addEventListener('mousewheel', this.onWheelEvent.bind(this), false);
62
- this.__sb = new ScrollBooster({
63
- viewport: this,
64
- content: scrollTarget,
65
- mode: 'x',
66
- onUpdate: data => {
67
- this.scrollLeft = data.position.x;
68
- }
69
- });
70
- }
71
- };
72
- GroupBar.styles = [
73
- css `
74
- :host {
75
- background-color: var(--group-bar-background-color);
76
-
77
- overflow-x: hidden;
78
- }
79
-
80
- ul {
81
- display: flex;
82
- list-style: none;
83
- margin: 0;
84
- padding: 0;
85
- white-space: nowrap;
86
- }
87
-
88
- li {
89
- display: inline-block;
90
- padding: 0px 3px;
91
-
92
- border-bottom: var(--group-bar-line);
93
- }
94
-
95
- li[active] {
96
- border-color: var(--group-bar-active-line-color);
97
- }
98
-
99
- li a {
100
- display: block;
101
- padding: 5px 4px 1px 4px;
102
- text-decoration: none;
103
- font: var(--group-bar-textbutton);
104
- color: rgba(255, 255, 255, 0.8);
105
- }
106
-
107
- li[active] a {
108
- font: var(--group-bar-textbutton-active);
109
- color: rgba(255, 255, 255, 1);
110
- }
111
-
112
- li[padding] {
113
- flex: 1;
114
- }
115
-
116
- li[add] {
117
- padding: 5px 4px 1px 4px;
118
- }
119
-
120
- li[add] * {
121
- color: rgba(255, 255, 255, 0.5);
122
- }
123
-
124
- mwc-icon {
125
- vertical-align: middle;
126
- }
127
- `
128
- ];
129
- __decorate([
130
- property({ type: Array }),
131
- __metadata("design:type", Array)
132
- ], GroupBar.prototype, "groups", void 0);
133
- __decorate([
134
- property({ type: String }),
135
- __metadata("design:type", String)
136
- ], GroupBar.prototype, "groupId", void 0);
137
- __decorate([
138
- property({ type: String }),
139
- __metadata("design:type", String)
140
- ], GroupBar.prototype, "targetPage", void 0);
141
- GroupBar = __decorate([
142
- customElement('group-bar')
143
- ], GroupBar);
144
- export default GroupBar;
145
- //# sourceMappingURL=group-bar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"group-bar.js","sourceRoot":"","sources":["../../client/board-list/group-bar.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/mwc-icon'\n\nimport { css, html, nothing, LitElement } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport ScrollBooster from 'scrollbooster'\n\nimport { privileged } from '@things-factory/auth-base/dist-client'\nimport { longpressable } from '@things-factory/utils'\n\n@customElement('group-bar')\nexport default class GroupBar extends LitElement {\n static styles = [\n css`\n :host {\n background-color: var(--group-bar-background-color);\n\n overflow-x: hidden;\n }\n\n ul {\n display: flex;\n list-style: none;\n margin: 0;\n padding: 0;\n white-space: nowrap;\n }\n\n li {\n display: inline-block;\n padding: 0px 3px;\n\n border-bottom: var(--group-bar-line);\n }\n\n li[active] {\n border-color: var(--group-bar-active-line-color);\n }\n\n li a {\n display: block;\n padding: 5px 4px 1px 4px;\n text-decoration: none;\n font: var(--group-bar-textbutton);\n color: rgba(255, 255, 255, 0.8);\n }\n\n li[active] a {\n font: var(--group-bar-textbutton-active);\n color: rgba(255, 255, 255, 1);\n }\n\n li[padding] {\n flex: 1;\n }\n\n li[add] {\n padding: 5px 4px 1px 4px;\n }\n\n li[add] * {\n color: rgba(255, 255, 255, 0.5);\n }\n\n mwc-icon {\n vertical-align: middle;\n }\n `\n ]\n\n @property({ type: Array }) groups?: any[]\n @property({ type: String }) groupId?: string\n @property({ type: String }) targetPage?: string\n\n private __sb?: ScrollBooster\n\n render() {\n return html`\n <ul>\n <li ?active=${!this.groupId}>\n <a href=${this.targetPage || ''}><mwc-icon>dashboard</mwc-icon></a>\n </li>\n\n <li ?active=${this.groupId === 'favor'}>\n <a href=\"${this.targetPage}/favor\"><mwc-icon>star</mwc-icon></a>\n </li>\n\n ${privileged(\n { privilege: 'mutation', category: 'board' },\n html`<li ?active=${this.groupId === 'mywork'}>\n <a href=\"${this.targetPage}/mywork\"><mwc-icon>engineering</mwc-icon></a>\n </li>`\n )}\n ${(this.groups || []).map(\n group => html`\n <li ?active=${this.groupId === group.id} @long-press=${e => this.infoGroup(group.id)}>\n <a href=${`${this.targetPage}/${group.id}`}>${group.name}</a>\n </li>\n `\n )}\n\n <li padding></li>\n\n <li add>\n <mwc-icon @click=${e => this.infoGroup()}>add</mwc-icon>\n </li>\n </ul>\n `\n }\n\n infoGroup(groupId?: string) {\n this.dispatchEvent(\n new CustomEvent('info-group', {\n detail: groupId\n })\n )\n }\n\n onWheelEvent(e) {\n var delta = Math.max(-1, Math.min(1, e.wheelDelta || -e.detail))\n this.scrollLeft -= delta * 40\n\n e.preventDefault()\n }\n\n updated(change) {\n if (change.has('groups')) {\n /* groups가 바뀔 때마다, contents의 폭이 달라지므로, 다시 폭을 계산해준다. */\n this.__sb && this.__sb.updateMetrics()\n }\n\n if (change.has('groupId')) {\n var active = this.renderRoot.querySelector('li[active]')\n active && active.scrollIntoView()\n }\n }\n\n firstUpdated() {\n var scrollTarget = this.renderRoot.querySelector('ul')\n\n /* long-press */\n longpressable(scrollTarget)\n\n scrollTarget!.addEventListener('mousewheel', this.onWheelEvent.bind(this), false)\n\n this.__sb = new ScrollBooster({\n viewport: this,\n content: scrollTarget,\n mode: 'x',\n onUpdate: data => {\n this.scrollLeft = data.position.x\n }\n })\n }\n}\n"]}
@@ -1,21 +0,0 @@
1
- import '@material/mwc-icon';
2
- import { LitElement } from 'lit';
3
- export default class PlayGroupBar extends LitElement {
4
- static styles: import("lit").CSSResult[];
5
- groups: {
6
- id: string;
7
- name: string;
8
- }[];
9
- groupId: string;
10
- targetPage: string;
11
- private __sb?;
12
- render(): import("lit-html").TemplateResult<1>;
13
- _infoGroup(group?: {
14
- id: string;
15
- name: string;
16
- }): void;
17
- _onWheelEvent(e: any): void;
18
- _onClickAdd(e: any): void;
19
- updated(change: any): void;
20
- firstUpdated(): void;
21
- }
@@ -1,142 +0,0 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import '@material/mwc-icon';
3
- import { css, html, LitElement } from 'lit';
4
- import { customElement, property } from 'lit/decorators.js';
5
- import ScrollBooster from 'scrollbooster';
6
- import { longpressable } from '@things-factory/utils';
7
- let PlayGroupBar = class PlayGroupBar extends LitElement {
8
- constructor() {
9
- super(...arguments);
10
- this.groups = [];
11
- this.groupId = '';
12
- this.targetPage = '';
13
- }
14
- render() {
15
- return html `
16
- <ul>
17
- ${(this.groups || []).map(group => html `
18
- <li ?active=${this.groupId === group.id} @long-press=${e => this._infoGroup(group)}>
19
- <a href=${`${this.targetPage}/${group.id}`}>${group.name}</a>
20
- </li>
21
- `)}
22
-
23
- <li padding></li>
24
-
25
- <li add>
26
- <mwc-icon @click=${e => this._infoGroup()}>add</mwc-icon>
27
- </li>
28
- </ul>
29
- `;
30
- }
31
- _infoGroup(group) {
32
- this.dispatchEvent(new CustomEvent('info-play-group', {
33
- detail: group
34
- }));
35
- }
36
- _onWheelEvent(e) {
37
- var delta = Math.max(-1, Math.min(1, e.wheelDelta || -e.detail));
38
- this.scrollLeft -= delta * 40;
39
- e.preventDefault();
40
- }
41
- _onClickAdd(e) {
42
- // TODO Implements
43
- }
44
- updated(change) {
45
- if (change.has('groups')) {
46
- /* groups가 바뀔 때마다, contents의 폭이 달라지므로, 다시 폭을 계산해준다. */
47
- this.__sb && this.__sb.updateMetrics();
48
- }
49
- if (change.has('groupId')) {
50
- var active = this.renderRoot.querySelector('li[active]');
51
- active && active.scrollIntoView();
52
- }
53
- }
54
- firstUpdated() {
55
- var scrollTarget = this.renderRoot.querySelector('ul');
56
- /* long-press */
57
- longpressable(scrollTarget);
58
- scrollTarget.addEventListener('mousewheel', this._onWheelEvent.bind(this), false);
59
- this.__sb = new ScrollBooster({
60
- viewport: this,
61
- content: scrollTarget,
62
- mode: 'x',
63
- onUpdate: data => {
64
- this.scrollLeft = data.position.x;
65
- }
66
- });
67
- }
68
- };
69
- PlayGroupBar.styles = [
70
- css `
71
- :host {
72
- background-color: var(--group-bar-background-color);
73
-
74
- overflow-x: hidden;
75
- }
76
-
77
- ul {
78
- display: flex;
79
- list-style: none;
80
- margin: 0;
81
- padding: 0;
82
- white-space: nowrap;
83
- }
84
-
85
- li {
86
- display: inline-block;
87
- padding: 0px 3px;
88
-
89
- border-bottom: var(--group-bar-line);
90
- }
91
-
92
- li[active] {
93
- border-color: var(--group-bar-active-line-color);
94
- }
95
-
96
- li a {
97
- display: block;
98
- padding: 5px 4px 1px 4px;
99
- text-decoration: none;
100
- font: var(--group-bar-textbutton);
101
- color: rgba(255, 255, 255, 0.8);
102
- }
103
-
104
- li[active] a {
105
- font: var(--group-bar-textbutton-active);
106
- color: rgba(255, 255, 255, 1);
107
- }
108
-
109
- li[padding] {
110
- flex: 1;
111
- }
112
-
113
- li[add] {
114
- padding: 5px 4px 1px 4px;
115
- }
116
-
117
- li[add] * {
118
- color: rgba(255, 255, 255, 0.5);
119
- }
120
-
121
- mwc-icon {
122
- vertical-align: middle;
123
- }
124
- `
125
- ];
126
- __decorate([
127
- property({ type: Array }),
128
- __metadata("design:type", Array)
129
- ], PlayGroupBar.prototype, "groups", void 0);
130
- __decorate([
131
- property({ type: String }),
132
- __metadata("design:type", String)
133
- ], PlayGroupBar.prototype, "groupId", void 0);
134
- __decorate([
135
- property({ type: String, attribute: 'target-page' }),
136
- __metadata("design:type", String)
137
- ], PlayGroupBar.prototype, "targetPage", void 0);
138
- PlayGroupBar = __decorate([
139
- customElement('play-group-bar')
140
- ], PlayGroupBar);
141
- export default PlayGroupBar;
142
- //# sourceMappingURL=play-group-bar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"play-group-bar.js","sourceRoot":"","sources":["../../client/board-list/play-group-bar.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/mwc-icon'\n\nimport { css, html, LitElement } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport ScrollBooster from 'scrollbooster'\n\nimport { longpressable } from '@things-factory/utils'\n\n@customElement('play-group-bar')\nexport default class PlayGroupBar extends LitElement {\n static styles = [\n css`\n :host {\n background-color: var(--group-bar-background-color);\n\n overflow-x: hidden;\n }\n\n ul {\n display: flex;\n list-style: none;\n margin: 0;\n padding: 0;\n white-space: nowrap;\n }\n\n li {\n display: inline-block;\n padding: 0px 3px;\n\n border-bottom: var(--group-bar-line);\n }\n\n li[active] {\n border-color: var(--group-bar-active-line-color);\n }\n\n li a {\n display: block;\n padding: 5px 4px 1px 4px;\n text-decoration: none;\n font: var(--group-bar-textbutton);\n color: rgba(255, 255, 255, 0.8);\n }\n\n li[active] a {\n font: var(--group-bar-textbutton-active);\n color: rgba(255, 255, 255, 1);\n }\n\n li[padding] {\n flex: 1;\n }\n\n li[add] {\n padding: 5px 4px 1px 4px;\n }\n\n li[add] * {\n color: rgba(255, 255, 255, 0.5);\n }\n\n mwc-icon {\n vertical-align: middle;\n }\n `\n ]\n\n @property({ type: Array }) groups: { id: string; name: string }[] = []\n @property({ type: String }) groupId: string = ''\n @property({ type: String, attribute: 'target-page' }) targetPage: string = ''\n\n private __sb?: ScrollBooster\n\n render() {\n return html`\n <ul>\n ${(this.groups || []).map(\n group => html`\n <li ?active=${this.groupId === group.id} @long-press=${e => this._infoGroup(group)}>\n <a href=${`${this.targetPage}/${group.id}`}>${group.name}</a>\n </li>\n `\n )}\n\n <li padding></li>\n\n <li add>\n <mwc-icon @click=${e => this._infoGroup()}>add</mwc-icon>\n </li>\n </ul>\n `\n }\n\n _infoGroup(group?: { id: string; name: string }) {\n this.dispatchEvent(\n new CustomEvent('info-play-group', {\n detail: group\n })\n )\n }\n\n _onWheelEvent(e) {\n var delta = Math.max(-1, Math.min(1, e.wheelDelta || -e.detail))\n this.scrollLeft -= delta * 40\n\n e.preventDefault()\n }\n\n _onClickAdd(e) {\n // TODO Implements\n }\n\n updated(change) {\n if (change.has('groups')) {\n /* groups가 바뀔 때마다, contents의 폭이 달라지므로, 다시 폭을 계산해준다. */\n this.__sb && this.__sb.updateMetrics()\n }\n\n if (change.has('groupId')) {\n var active = this.renderRoot.querySelector('li[active]')\n active && active.scrollIntoView()\n }\n }\n\n firstUpdated() {\n var scrollTarget = this.renderRoot.querySelector('ul')\n\n /* long-press */\n longpressable(scrollTarget)\n\n scrollTarget!.addEventListener('mousewheel', this._onWheelEvent.bind(this), false)\n\n this.__sb = new ScrollBooster({\n viewport: this,\n content: scrollTarget,\n mode: 'x',\n onUpdate: data => {\n this.scrollLeft = data.position.x\n }\n })\n }\n}\n"]}
@@ -1,3 +0,0 @@
1
- import { ReferenceMap, Scene } from '@hatiolab/things-scene';
2
- export declare function createBoardProvider(): ReferenceMap<Scene>;
3
- export declare const provider: ReferenceMap<Scene>;