@operato/board 7.1.31 → 7.1.33

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 (87) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/tsconfig.tsbuildinfo +1 -1
  3. package/package.json +14 -14
  4. package/.storybook/main.js +0 -3
  5. package/.storybook/server.mjs +0 -8
  6. package/demo/index-modeller.html +0 -112
  7. package/demo/index-player.html +0 -112
  8. package/demo/index-viewer.html +0 -112
  9. package/demo/index.html +0 -112
  10. package/src/component/3d.ts +0 -29
  11. package/src/component/chart-and-gauge.ts +0 -28
  12. package/src/component/container.ts +0 -63
  13. package/src/component/data-source.ts +0 -30
  14. package/src/component/etc.ts +0 -88
  15. package/src/component/form.ts +0 -42
  16. package/src/component/index.ts +0 -12
  17. package/src/component/iot.ts +0 -52
  18. package/src/component/line.ts +0 -156
  19. package/src/component/register-default-groups.ts +0 -28
  20. package/src/component/shape.ts +0 -156
  21. package/src/component/table.ts +0 -28
  22. package/src/component/text-and-media.ts +0 -125
  23. package/src/component/warehouse.ts +0 -26
  24. package/src/data-storage/data-storage.ts +0 -76
  25. package/src/graphql/board.ts +0 -144
  26. package/src/graphql/data-subscription.ts +0 -30
  27. package/src/graphql/favorite-board.ts +0 -25
  28. package/src/graphql/group.ts +0 -138
  29. package/src/graphql/index.ts +0 -4
  30. package/src/graphql/play-group.ts +0 -225
  31. package/src/graphql/scenario.ts +0 -79
  32. package/src/index.ts +0 -10
  33. package/src/modeller/component-toolbar/component-detail.ts +0 -52
  34. package/src/modeller/component-toolbar/component-menu.ts +0 -196
  35. package/src/modeller/component-toolbar/component-toolbar.ts +0 -196
  36. package/src/modeller/component-toolbar/mode-icons.ts +0 -88
  37. package/src/modeller/edit-toolbar-style.ts +0 -232
  38. package/src/modeller/edit-toolbar.ts +0 -587
  39. package/src/modeller/property-sidebar/abstract-property.ts +0 -69
  40. package/src/modeller/property-sidebar/data-binding/data-binding-mapper.ts +0 -475
  41. package/src/modeller/property-sidebar/data-binding/data-binding-value-map.ts +0 -19
  42. package/src/modeller/property-sidebar/data-binding/data-binding-value-range.ts +0 -19
  43. package/src/modeller/property-sidebar/data-binding/data-binding.ts +0 -480
  44. package/src/modeller/property-sidebar/effects/effects-shared-style.ts +0 -62
  45. package/src/modeller/property-sidebar/effects/effects.ts +0 -69
  46. package/src/modeller/property-sidebar/effects/property-animation.ts +0 -146
  47. package/src/modeller/property-sidebar/effects/property-animations.ts +0 -93
  48. package/src/modeller/property-sidebar/effects/property-event-hover.ts +0 -200
  49. package/src/modeller/property-sidebar/effects/property-event-tap.ts +0 -251
  50. package/src/modeller/property-sidebar/effects/property-event.ts +0 -73
  51. package/src/modeller/property-sidebar/effects/property-shadow.ts +0 -114
  52. package/src/modeller/property-sidebar/effects/value-converter.ts +0 -23
  53. package/src/modeller/property-sidebar/inspector/inspector.ts +0 -404
  54. package/src/modeller/property-sidebar/property-shared-style.ts +0 -136
  55. package/src/modeller/property-sidebar/property-sidebar.ts +0 -326
  56. package/src/modeller/property-sidebar/shapes/box-padding-editor-styles.ts +0 -94
  57. package/src/modeller/property-sidebar/shapes/shapes.ts +0 -432
  58. package/src/modeller/property-sidebar/specifics/specific-properties-builder.ts +0 -152
  59. package/src/modeller/property-sidebar/specifics/specifics.ts +0 -81
  60. package/src/modeller/property-sidebar/styles/styles.ts +0 -577
  61. package/src/modeller/scene-viewer/confidential-overlay.ts +0 -18
  62. package/src/modeller/scene-viewer/ox-scene-handler.ts +0 -40
  63. package/src/modeller/scene-viewer/ox-scene-layer.ts +0 -42
  64. package/src/modeller/scene-viewer/ox-scene-property.ts +0 -10
  65. package/src/modeller/scene-viewer/ox-scene-viewer.ts +0 -263
  66. package/src/ox-board-component-info.ts +0 -236
  67. package/src/ox-board-list.ts +0 -401
  68. package/src/ox-board-modeller.ts +0 -408
  69. package/src/ox-board-player-style.ts +0 -200
  70. package/src/ox-board-player.ts +0 -333
  71. package/src/ox-board-template-list.ts +0 -267
  72. package/src/ox-board-template-viewer.ts +0 -198
  73. package/src/ox-board-viewer.ts +0 -727
  74. package/src/ox-editor-board-selector.ts +0 -91
  75. package/src/ox-property-editor-board-selector.ts +0 -23
  76. package/src/player/ox-board-player-carousel.ts +0 -197
  77. package/src/player/ox-board-player-grid.ts +0 -78
  78. package/src/player/ox-board-wrapper.ts +0 -152
  79. package/src/selector/board-creation-popup.ts +0 -151
  80. package/src/selector/board-thumbnail-card.ts +0 -175
  81. package/src/selector/ox-board-creation-card.ts +0 -98
  82. package/src/selector/ox-board-selector.ts +0 -382
  83. package/src/types.ts +0 -63
  84. package/stories/property-data-binding.stories.ts +0 -34
  85. package/tsconfig.json +0 -24
  86. package/web-dev-server.config.mjs +0 -30
  87. package/web-test-runner.config.mjs +0 -29
@@ -1,175 +0,0 @@
1
- import { css, html, LitElement } from 'lit'
2
- import { customElement, property } from 'lit/decorators.js'
3
-
4
- import { i18next, localize } from '@operato/i18n'
5
-
6
- @customElement('board-thumbnail-card')
7
- export class BoardThumbnailCard extends localize(i18next)(LitElement) {
8
- static get styles() {
9
- return [
10
- css`
11
- :host {
12
- position: relative;
13
-
14
- padding: 0;
15
- margin: 0;
16
- height: 100%;
17
-
18
- -webkit-transform-style: preserve-3d;
19
- transform-style: preserve-3d;
20
- -webkit-transition: all 0.5s ease-in-out;
21
- transition: all 0.5s ease-in-out;
22
- }
23
-
24
- :host(.flipped) {
25
- -webkit-transform: var(--card-list-flip-transform);
26
- transform: var(--card-list-flip-transform);
27
- }
28
-
29
- [front],
30
- [back] {
31
- position: absolute;
32
-
33
- width: 100%;
34
- height: 100%;
35
- margin: 0;
36
- padding: 0;
37
-
38
- border: var(--card-list-create-border);
39
- border-radius: var(--card-list-create-border-radius);
40
-
41
- background-color: var(--md-sys-color-surface);
42
-
43
- -webkit-backface-visibility: hidden;
44
- backface-visibility: hidden;
45
- }
46
-
47
- [front] {
48
- text-align: center;
49
- font-size: 0.8em;
50
- color: var(--card-list-create-color);
51
- text-transform: capitalize;
52
- }
53
-
54
- [front] md-icon {
55
- margin-top: 15%;
56
- display: block;
57
- font-size: 3.5em;
58
- color: var(--card-list-create-icon-color);
59
- }
60
-
61
- [back] {
62
- -webkit-transform: var(--card-list-flip-transform);
63
- transform: var(--card-list-flip-transform);
64
- }
65
-
66
- [back] form {
67
- padding: var(--card-list-create-form-padding);
68
- display: flex;
69
- flex-flow: row wrap;
70
- }
71
-
72
- [back] form label {
73
- flex: 1 1 25%;
74
- font: var(--card-list-create-label-font);
75
- color: var(--card-list-create-label-color);
76
- }
77
-
78
- [back] form input,
79
- [back] form select {
80
- flex: 1 1 60%;
81
- width: 10px;
82
- background-color: var(--md-sys-color-surface);
83
- border: var(--card-list-create-input-border);
84
- border-radius: var(--card-list-create-input-border-radius);
85
- padding: var(--card-list-create-input-padding);
86
- font: var(--card-list-create-input-font);
87
- color: var(--card-list-create-input-color);
88
- }
89
-
90
- form * {
91
- margin: var(--card-list-create-margin);
92
- }
93
-
94
- input[type='submit'] {
95
- background-color: var(--button-background-color) !important;
96
- margin: var(--button-margin);
97
- font: var(--button-font);
98
- color: var(--button-color) !important;
99
- border-radius: var(--button-radius);
100
- border: var(--button-border);
101
- }
102
- `
103
- ]
104
- }
105
-
106
- @property({ type: String }) defaultGroup?: string
107
- @property({ type: Array }) groups?: { id: string; name: string }[]
108
-
109
- render() {
110
- var groups = this.groups || []
111
-
112
- return html`
113
- <div @click=${(e: Event) => this.onClickFlip(e)} front><md-icon>add_circle_outline</md-icon>create board</div>
114
-
115
- <div @click=${(e: Event) => this.onClickFlip(e)} back>
116
- <form @submit=${(e: Event) => this.onClickSubmit(e)}>
117
- <label>${i18next.t('label.name')}</label>
118
- <input type="text" name="name" />
119
-
120
- <label>${i18next.t('label.description')}</label>
121
- <input type="text" name="description" />
122
-
123
- <label>${i18next.t('label.group')}</label>
124
- <select .value=${this.defaultGroup || ''} name="groupId">
125
- ${groups.map(
126
- group => html`
127
- <option value=${group.id} ?selected=${this.defaultGroup == group.id}>${group.name}</option>
128
- `
129
- )}
130
- </select>
131
-
132
- <input type="submit" value=${String(i18next.t('button.create'))} />
133
- </form>
134
- </div>
135
- `
136
- }
137
-
138
- onClickFlip(e: Event) {
139
- if ((e.currentTarget as any)?.hasAttribute('front') || (e.target as any)?.hasAttribute('back')) {
140
- this.classList.toggle('flipped')
141
- }
142
-
143
- e.stopPropagation()
144
- }
145
-
146
- onClickSubmit(e: Event) {
147
- e.preventDefault()
148
- e.stopPropagation()
149
-
150
- var form = e.target as any
151
-
152
- var name = form.elements['name'].value
153
- var description = form.elements['description'].value
154
- var groupId = form.elements['groupId'].value
155
-
156
- this.dispatchEvent(
157
- new CustomEvent('create-board', {
158
- detail: {
159
- name,
160
- description,
161
- groupId
162
- }
163
- })
164
- )
165
- }
166
-
167
- reset() {
168
- var form = this.shadowRoot?.querySelector('form')
169
- if (form) {
170
- form.reset()
171
- }
172
-
173
- this.classList.remove('flipped')
174
- }
175
- }
@@ -1,98 +0,0 @@
1
- import '@material/web/icon/icon.js'
2
- import './board-creation-popup'
3
-
4
- import { css, html, LitElement } from 'lit'
5
- import { customElement, property } from 'lit/decorators.js'
6
-
7
- import { i18next, localize } from '@operato/i18n'
8
- import { openPopup } from '@operato/layout'
9
-
10
- @customElement('ox-board-creation-card')
11
- export class BoardCreationCard extends localize(i18next)(LitElement) {
12
- static get styles() {
13
- return [
14
- css`
15
- :host {
16
- display: flex;
17
- border: var(--card-list-create-border);
18
- border-radius: var(--card-list-create-border-radius);
19
-
20
- background-color: var(--md-sys-color-surface);
21
-
22
- align-content: center;
23
- justify-content: center;
24
- }
25
-
26
- div {
27
- display: flex;
28
- flex-direction: column;
29
- align-items: center;
30
- text-align: center;
31
- font-size: 0.8em;
32
- color: var(--card-list-create-color);
33
- text-transform: capitalize;
34
- }
35
-
36
- md-icon {
37
- --md-icon-size: 42px;
38
- display: block;
39
- font-size: 3.5em;
40
- color: var(--card-list-create-icon-color);
41
- }
42
- `
43
- ]
44
- }
45
-
46
- /* default group id */
47
- @property({ type: String }) defaultGroup?: string
48
- @property({ type: Array }) groups: any
49
-
50
- private popup: any
51
-
52
- render() {
53
- return html`<div @click=${(e: Event) => this.onClick()}><md-icon>add_circle_outline</md-icon>create board</div> `
54
- }
55
-
56
- onClick() {
57
- if (this.popup) {
58
- delete this.popup
59
- }
60
-
61
- /*
62
- * 기존 설정된 이미지가 선택된 상태가 되게 하기 위해서는 selector에 value를 전달해줄 필요가 있음.
63
- * 주의. value는 object일 수도 있고, string일 수도 있다.
64
- * string인 경우에는 해당 보드의 id로 해석한다.
65
- */
66
- var template = html`
67
- <board-creation-popup
68
- .defaultGroup=${this.defaultGroup}
69
- .groups=${this.groups}
70
- @create-board=${async (e: CustomEvent) => {
71
- var { name, description, groupId, model, thumbnail } = e.detail
72
-
73
- this.dispatchEvent(
74
- new CustomEvent('create-board', {
75
- detail: {
76
- name,
77
- description,
78
- groupId,
79
- model,
80
- thumbnail
81
- }
82
- })
83
- )
84
-
85
- this.popup && this.popup.close()
86
- }}
87
- ></board-creation-popup>
88
- `
89
-
90
- this.popup = openPopup(template, {
91
- backdrop: true,
92
- size: 'large',
93
- title: i18next.t('title.create-board')
94
- })
95
- }
96
-
97
- reset() {}
98
- }
@@ -1,382 +0,0 @@
1
- import '@operato/input/ox-input-search.js'
2
- import './ox-board-creation-card'
3
-
4
- import gql from 'graphql-tag'
5
- import { css, html, LitElement, PropertyValues } from 'lit'
6
- import { customElement, property } from 'lit/decorators.js'
7
-
8
- import { client, gqlContext } from '@operato/graphql'
9
- import { i18next, localize } from '@operato/i18n'
10
- import { ScrollbarStyles } from '@operato/styles'
11
- import InfiniteScrollable from '@operato/utils/mixins/infinite-scrollable.js'
12
- import { InheritedValueType } from '@operato/shell'
13
- import { adjustFilters } from '@operato/utils'
14
-
15
- const FETCH_BOARD_LIST_GQL = gql`
16
- query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!], $inherited: InheritedValueType) {
17
- boards(filters: $filters, pagination: $pagination, sortings: $sortings, inherited: $inherited) {
18
- items {
19
- id
20
- name
21
- description
22
- thumbnail
23
- }
24
- total
25
- }
26
- }
27
- `
28
-
29
- const FETCH_BOARD_GROUP_LIST_GQL = gql`
30
- {
31
- groups {
32
- items {
33
- id
34
- name
35
- description
36
- }
37
- total
38
- }
39
- }
40
- `
41
-
42
- const CREATE_BOARD_GQL = gql`
43
- mutation CreateBoard($board: NewBoard!) {
44
- createBoard(board: $board) {
45
- id
46
- name
47
- description
48
- model
49
- createdAt
50
- updatedAt
51
- }
52
- }
53
- `
54
-
55
- @customElement('ox-board-selector')
56
- export class BoardSelector extends InfiniteScrollable(localize(i18next)(LitElement)) {
57
- static get styles() {
58
- return [
59
- ScrollbarStyles,
60
- css`
61
- :host {
62
- display: grid;
63
- grid-template-rows: auto auto 1fr;
64
- overflow: hidden;
65
- color: var(--md-sys-color-on-surface);
66
- background-color: var(--md-sys-color-surface);
67
- }
68
-
69
- #main {
70
- overflow: auto;
71
- padding: var(--popup-content-padding);
72
- display: grid;
73
- grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
74
- grid-auto-rows: var(--card-list-rows-height);
75
- grid-gap: 20px;
76
- }
77
-
78
- .card {
79
- display: flex;
80
- flex-direction: column;
81
- align-items: center;
82
- overflow: hidden;
83
- border-radius: var(--card-list-border-radius);
84
- background-color: var(--card-list-background-color);
85
- }
86
-
87
- .card[selected] {
88
- border: red solid;
89
- }
90
-
91
- .card.create {
92
- overflow: visible;
93
- }
94
-
95
- .card:hover {
96
- cursor: pointer;
97
- }
98
-
99
- .card > .name {
100
- color: var(--md-sys-color-on-secondary);
101
- background-color: var(--md-sys-color-secondary);
102
- opacity: 0.9;
103
- margin-top: -35px;
104
- width: 100%;
105
- font-weight: bolder;
106
- font-size: 13px;
107
- text-indent: 7px;
108
- }
109
-
110
- .card > .description {
111
- color: var(--md-sys-color-on-secondary);
112
- background-color: var(--md-sys-color-secondary);
113
- width: 100%;
114
- min-height: 16px;
115
- font-size: 0.6rem;
116
- text-indent: 7px;
117
- }
118
- .card img {
119
- max-height: 100%;
120
- min-height: 100%;
121
- }
122
-
123
- #filter {
124
- display: flex;
125
- align-items: center;
126
- padding: var(--popup-content-padding);
127
- color: var(--md-sys-color-on-surface-variant);
128
- background-color: var(--md-sys-color-surface-variant);
129
- box-shadow: var(--box-shadow);
130
- }
131
-
132
- #filter > ox-input-search {
133
- margin-right: auto;
134
- border: var(--md-sys-color-primary) 1px solid;
135
- padding: var(--spacing-small) var(--spacing-small);
136
- border-radius: 999px;
137
- color: var(--md-sys-color-primary);
138
- }
139
-
140
- #filter > div {
141
- float: right;
142
- margin-left: 10px;
143
- }
144
-
145
- #filter * {
146
- font-size: 15px;
147
- }
148
-
149
- select {
150
- text-transform: capitalize;
151
- }
152
- `
153
- ]
154
- }
155
-
156
- @property({ type: Array }) groups: { id: string; name: string; description: string }[] = []
157
- @property({ type: Array }) boards: any[] = []
158
- @property({ type: String }) group?: string
159
- @property({ type: String }) search?: string
160
- @property({ type: String }) inherited?: InheritedValueType = InheritedValueType.Include
161
- @property({ type: Boolean }) creatable: boolean = false
162
- @property({ type: String }) value?: string
163
-
164
- private _page: number = 1
165
- private _total: number = 0
166
-
167
- constructor() {
168
- super()
169
-
170
- this._infiniteScrollOptions.limit = 50
171
- }
172
-
173
- render() {
174
- return html`
175
- <div id="filter">
176
- <ox-input-search
177
- @change=${(e: Event) => {
178
- this.search = (e.currentTarget as any)?.value
179
- }}
180
- ></ox-input-search>
181
- <div>
182
- <label for="group">Group</label>
183
- <select
184
- id="group"
185
- @change=${(e: Event) => {
186
- this.group = (e.currentTarget as any)?.value
187
- this.requestUpdate()
188
- }}
189
- >
190
- <option value="">${i18next.t('label.all')}</option>
191
- ${this.groups.map(group => html` <option value=${group.id}>${group.description}</option> `)}
192
- </select>
193
- </div>
194
-
195
- <div>
196
- <label for="inherited">Inherited</label>
197
- <select
198
- id="inherited"
199
- @change=${(e: Event) => {
200
- this.inherited = (e.currentTarget as any)?.value
201
- this.requestUpdate()
202
- }}
203
- >
204
- <option value="Include">Include</option>
205
- <option value="Only">Only</option>
206
- <option value="None">None</option>
207
- </select>
208
- </div>
209
- </div>
210
-
211
- <div
212
- id="main"
213
- @scroll=${(e: Event) => {
214
- this.onScroll(e)
215
- }}
216
- >
217
- ${this.creatable
218
- ? html`
219
- <ox-board-creation-card
220
- class="card create"
221
- .groups=${this.groups}
222
- .defaultGroup=${this.group}
223
- @create-board=${(e: CustomEvent) => this.onCreateBoard(e)}
224
- ></ox-board-creation-card>
225
- `
226
- : html``}
227
- ${this.boards.map(
228
- board => html`
229
- <div class="card" @click=${(e: Event) => this.onClickSelect(board)} ?selected=${this.value === board.id}>
230
- <img src=${board.thumbnail} />
231
- <div class="name">${board.name}</div>
232
- <div class="description">${board.description}</div>
233
- </div>
234
- `
235
- )}
236
- </div>
237
- `
238
- }
239
-
240
- get scrollTargetEl(): HTMLElement | null {
241
- return this.renderRoot.querySelector('#main') as HTMLElement
242
- }
243
-
244
- async scrollAction() {
245
- return this.appendBoards()
246
- }
247
-
248
- firstUpdated() {
249
- this.refreshGroups()
250
- }
251
-
252
- async updated(changed: PropertyValues<this>) {
253
- if (changed.has('group') || changed.has('inherited') || changed.has('search')) {
254
- this.refreshBoards()
255
- }
256
- }
257
-
258
- onClickSelect(board: any) {
259
- this.dispatchEvent(
260
- new CustomEvent('board-selected', {
261
- composed: true,
262
- bubbles: true,
263
- detail: {
264
- board
265
- }
266
- })
267
- )
268
- }
269
-
270
- async onCreateBoard(e: CustomEvent) {
271
- var { name, description, groupId, model, thumbnail } = e.detail
272
-
273
- await this.createBoard(name, description, groupId, model, thumbnail)
274
- this.refreshBoards()
275
- }
276
-
277
- async refreshGroups() {
278
- var groupListResponse = await client.query({
279
- query: FETCH_BOARD_GROUP_LIST_GQL,
280
- context: gqlContext()
281
- })
282
-
283
- if (!groupListResponse || !groupListResponse.data) return
284
-
285
- var groups = groupListResponse.data.groups.items
286
- this.groups = [...groups]
287
-
288
- this.group = groups.filter((group: { id: string }) => group.id == this.group).length > 0 ? this.group : ''
289
- }
290
-
291
- async refreshBoards() {
292
- var boards = await this.getBoards()
293
- this.boards = [...boards]
294
-
295
- var creationCard = this.renderRoot.querySelector('ox-board-creation-card')
296
- if (creationCard) {
297
- ;(creationCard as any).reset()
298
- }
299
- }
300
-
301
- async appendBoards() {
302
- var boards = await this.getBoards({ page: this._page + 1 })
303
- this.boards = [...this.boards, ...boards]
304
- }
305
-
306
- async getBoards({ page = 1, limit = this._infiniteScrollOptions.limit } = {}) {
307
- var filters = []
308
- var sortings = [] as any[]
309
- var pagination = {
310
- limit,
311
- page
312
- }
313
-
314
- if (this.group) {
315
- filters.push({
316
- name: 'groupId',
317
- operator: 'eq',
318
- value: this.group
319
- })
320
- }
321
-
322
- if (this.search) {
323
- const value = `%${this.search.trim()}%`
324
-
325
- filters.push({
326
- name: 'name',
327
- operator: 'search',
328
- value: this.search
329
- })
330
-
331
- filters.push({
332
- name: 'description',
333
- operator: 'search',
334
- value: this.search
335
- })
336
- }
337
-
338
- var variables = {
339
- filters,
340
- sortings,
341
- pagination,
342
- inherited: this.inherited || InheritedValueType.Include
343
- }
344
-
345
- var boardListResponse = await client.query({
346
- query: FETCH_BOARD_LIST_GQL,
347
- variables
348
- })
349
-
350
- if (!boardListResponse || !boardListResponse.data) return []
351
- this._total = boardListResponse.data.boards.total
352
- this._page = page
353
-
354
- return boardListResponse.data.boards.items
355
- }
356
-
357
- async createBoard(name: string, description: string, groupId: string, modelTemplate: any, thumbnail: string) {
358
- var model = JSON.stringify(
359
- modelTemplate || {
360
- width: 1200,
361
- height: 800,
362
- fillStyle: 'white'
363
- }
364
- )
365
-
366
- const response = await client.mutate({
367
- mutation: CREATE_BOARD_GQL,
368
- variables: {
369
- board: {
370
- name,
371
- description,
372
- groupId,
373
- model,
374
- thumbnail
375
- }
376
- },
377
- context: gqlContext()
378
- })
379
-
380
- return response.data
381
- }
382
- }
package/src/types.ts DELETED
@@ -1,63 +0,0 @@
1
- import { Model } from '@hatiolab/things-scene'
2
-
3
- export interface PalletItem {
4
- type: string
5
- description: string
6
- icon: HTMLImageElement
7
- group: string | string[]
8
- model: Model
9
- }
10
-
11
- export interface Pallet {
12
- name: string
13
- templates: PalletItem[]
14
- }
15
-
16
- export type ComponentTemplate = {
17
- type: string
18
- description: string
19
- group:
20
- | 'line'
21
- | 'shape'
22
- | 'textAndMedia'
23
- | 'chartAndGauge'
24
- | 'table'
25
- | 'container'
26
- | 'dataSource'
27
- | 'IoT'
28
- | '3D'
29
- | 'warehouse'
30
- | 'form'
31
- | 'etc'
32
- | string
33
- icon: any
34
- model: Model
35
- }
36
-
37
- export type ComponentGroup = {
38
- name: string
39
- description: string
40
- icon: string
41
- templates: ComponentTemplate[]
42
- }
43
-
44
- export type Board = {
45
- id?: string
46
- name?: string
47
- description?: string
48
- model?: any
49
- groupId?: string
50
- thumbnail?: string
51
- }
52
-
53
- export type BoardGroup = {
54
- id?: string
55
- name?: string
56
- description?: string
57
- }
58
-
59
- export type PlayGroup = {
60
- id?: string
61
- name?: string
62
- description?: string
63
- }