@operato/board 8.0.0-alpha.9 → 8.0.0-beta.1

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 (93) hide show
  1. package/CHANGELOG.md +256 -0
  2. package/demo/index-viewer.html +1 -1
  3. package/demo/index.html +1 -1
  4. package/dist/src/ox-board-player.js +2 -1
  5. package/dist/src/ox-board-player.js.map +1 -1
  6. package/dist/src/ox-board-template-viewer.d.ts +1 -1
  7. package/dist/src/ox-board-viewer.d.ts +3 -2
  8. package/dist/src/ox-board-viewer.js +16 -6
  9. package/dist/src/ox-board-viewer.js.map +1 -1
  10. package/dist/src/player/ox-board-wrapper.js +3 -1
  11. package/dist/src/player/ox-board-wrapper.js.map +1 -1
  12. package/dist/tsconfig.tsbuildinfo +1 -1
  13. package/package.json +25 -25
  14. package/.storybook/main.js +0 -3
  15. package/.storybook/server.mjs +0 -8
  16. package/src/component/3d.ts +0 -29
  17. package/src/component/chart-and-gauge.ts +0 -28
  18. package/src/component/container.ts +0 -63
  19. package/src/component/data-source.ts +0 -30
  20. package/src/component/etc.ts +0 -88
  21. package/src/component/form.ts +0 -42
  22. package/src/component/index.ts +0 -12
  23. package/src/component/iot.ts +0 -52
  24. package/src/component/line.ts +0 -156
  25. package/src/component/register-default-groups.ts +0 -28
  26. package/src/component/shape.ts +0 -156
  27. package/src/component/table.ts +0 -28
  28. package/src/component/text-and-media.ts +0 -125
  29. package/src/component/warehouse.ts +0 -26
  30. package/src/data-storage/data-storage.ts +0 -76
  31. package/src/graphql/board.ts +0 -144
  32. package/src/graphql/data-subscription.ts +0 -30
  33. package/src/graphql/favorite-board.ts +0 -25
  34. package/src/graphql/group.ts +0 -138
  35. package/src/graphql/index.ts +0 -4
  36. package/src/graphql/play-group.ts +0 -225
  37. package/src/graphql/scenario.ts +0 -79
  38. package/src/index.ts +0 -10
  39. package/src/modeller/component-toolbar/component-detail.ts +0 -52
  40. package/src/modeller/component-toolbar/component-menu.ts +0 -196
  41. package/src/modeller/component-toolbar/component-toolbar.ts +0 -196
  42. package/src/modeller/component-toolbar/mode-icons.ts +0 -88
  43. package/src/modeller/edit-toolbar-style.ts +0 -232
  44. package/src/modeller/edit-toolbar.ts +0 -587
  45. package/src/modeller/property-sidebar/abstract-property.ts +0 -69
  46. package/src/modeller/property-sidebar/data-binding/data-binding-mapper.ts +0 -475
  47. package/src/modeller/property-sidebar/data-binding/data-binding-value-map.ts +0 -19
  48. package/src/modeller/property-sidebar/data-binding/data-binding-value-range.ts +0 -19
  49. package/src/modeller/property-sidebar/data-binding/data-binding.ts +0 -480
  50. package/src/modeller/property-sidebar/effects/effects-shared-style.ts +0 -62
  51. package/src/modeller/property-sidebar/effects/effects.ts +0 -69
  52. package/src/modeller/property-sidebar/effects/property-animation.ts +0 -146
  53. package/src/modeller/property-sidebar/effects/property-animations.ts +0 -93
  54. package/src/modeller/property-sidebar/effects/property-event-hover.ts +0 -200
  55. package/src/modeller/property-sidebar/effects/property-event-tap.ts +0 -251
  56. package/src/modeller/property-sidebar/effects/property-event.ts +0 -73
  57. package/src/modeller/property-sidebar/effects/property-shadow.ts +0 -114
  58. package/src/modeller/property-sidebar/effects/value-converter.ts +0 -23
  59. package/src/modeller/property-sidebar/inspector/inspector.ts +0 -404
  60. package/src/modeller/property-sidebar/property-shared-style.ts +0 -136
  61. package/src/modeller/property-sidebar/property-sidebar.ts +0 -326
  62. package/src/modeller/property-sidebar/shapes/box-padding-editor-styles.ts +0 -94
  63. package/src/modeller/property-sidebar/shapes/shapes.ts +0 -432
  64. package/src/modeller/property-sidebar/specifics/specific-properties-builder.ts +0 -152
  65. package/src/modeller/property-sidebar/specifics/specifics.ts +0 -81
  66. package/src/modeller/property-sidebar/styles/styles.ts +0 -577
  67. package/src/modeller/scene-viewer/confidential-overlay.ts +0 -18
  68. package/src/modeller/scene-viewer/ox-scene-handler.ts +0 -40
  69. package/src/modeller/scene-viewer/ox-scene-layer.ts +0 -42
  70. package/src/modeller/scene-viewer/ox-scene-property.ts +0 -10
  71. package/src/modeller/scene-viewer/ox-scene-viewer.ts +0 -263
  72. package/src/ox-board-component-info.ts +0 -236
  73. package/src/ox-board-list.ts +0 -401
  74. package/src/ox-board-modeller.ts +0 -408
  75. package/src/ox-board-player-style.ts +0 -200
  76. package/src/ox-board-player.ts +0 -331
  77. package/src/ox-board-template-list.ts +0 -267
  78. package/src/ox-board-template-viewer.ts +0 -198
  79. package/src/ox-board-viewer.ts +0 -718
  80. package/src/ox-editor-board-selector.ts +0 -91
  81. package/src/ox-property-editor-board-selector.ts +0 -23
  82. package/src/player/ox-board-player-carousel.ts +0 -197
  83. package/src/player/ox-board-player-grid.ts +0 -78
  84. package/src/player/ox-board-wrapper.ts +0 -150
  85. package/src/selector/board-creation-popup.ts +0 -151
  86. package/src/selector/board-thumbnail-card.ts +0 -175
  87. package/src/selector/ox-board-creation-card.ts +0 -98
  88. package/src/selector/ox-board-selector.ts +0 -382
  89. package/src/types.ts +0 -63
  90. package/stories/property-data-binding.stories.ts +0 -34
  91. package/tsconfig.json +0 -24
  92. package/web-dev-server.config.mjs +0 -30
  93. package/web-test-runner.config.mjs +0 -29
@@ -1,198 +0,0 @@
1
- import '@material/web/icon/icon.js'
2
- import '@material/web/fab/fab.js'
3
-
4
- import { css, html, LitElement, PropertyValues } from 'lit'
5
- import { customElement, property, query, state } from 'lit/decorators.js'
6
-
7
- import { create, SCENE_MODE } from '@hatiolab/things-scene'
8
- import { ScrollbarStyles } from '@operato/styles'
9
-
10
- @customElement('ox-board-template-viewer')
11
- export class BoardTemplateViewer extends LitElement {
12
- static styles = [
13
- ScrollbarStyles,
14
- css`
15
- :host {
16
- display: flex;
17
- flex-direction: column;
18
-
19
- position: relative;
20
-
21
- width: 100%; /* 전체화면보기를 위해서 필요함. */
22
- overflow: hidden;
23
- }
24
-
25
- #target {
26
- flex: 1;
27
-
28
- width: 100%; /* 전체화면보기를 위해서 필요함. */
29
- height: 100%;
30
-
31
- outline: 0;
32
- }
33
-
34
- @media print {
35
- md-fab,
36
- md-icon {
37
- display: none;
38
- }
39
- }
40
- `
41
- ]
42
-
43
- @property({ type: Object }) boardTemplate: any = {}
44
-
45
- @state() _scene: any = null
46
-
47
- @query('#target') _target!: HTMLElement
48
-
49
- render() {
50
- return html` <div id="target"></div> `
51
- }
52
-
53
- private resizeHandler = () => {
54
- this._scene && this._scene.fit()
55
- }
56
-
57
- connectedCallback() {
58
- super.connectedCallback()
59
-
60
- window.addEventListener('resize', this.resizeHandler)
61
-
62
- window.addEventListener('orientationchange', this.resizeHandler)
63
- }
64
-
65
- disconnectedCallback() {
66
- window.removeEventListener('resize', this.resizeHandler)
67
- window.removeEventListener('orientationchange', this.resizeHandler)
68
-
69
- super.disconnectedCallback()
70
-
71
- this.closeScene()
72
- }
73
-
74
- updated(changes: PropertyValues<this>) {
75
- if (changes.has('boardTemplate')) {
76
- this.closeScene()
77
-
78
- if (this.boardTemplate && this.boardTemplate.id) {
79
- this.initScene()
80
- }
81
- }
82
- }
83
-
84
- initScene() {
85
- if (!this.boardTemplate || !this.boardTemplate.id) return
86
-
87
- this._scene = create({
88
- model: {
89
- ...this.boardTemplate.model
90
- },
91
- mode: SCENE_MODE.VIEW
92
- })
93
-
94
- this.setupScene({ id: this.boardTemplate.id, scene: this._scene })
95
- }
96
-
97
- closeScene() {
98
- if (this._scene) {
99
- this._scene.target = null
100
- this._scene.release && this._scene.release()
101
-
102
- this._scene = null
103
- }
104
- }
105
-
106
- releaseScene() {
107
- this.closeScene()
108
- }
109
-
110
- setupScene({ id, scene }: { id: string; scene: any }) {
111
- this._scene = scene
112
-
113
- const backgroundColor = this._scene?.root.state.fillStyle
114
- if (typeof backgroundColor === 'string') {
115
- this.style.backgroundColor = backgroundColor
116
- } else {
117
- this.style.backgroundColor = 'initial'
118
- }
119
-
120
- /* scene의 기존 target을 보관한다. */
121
-
122
- this._scene.fit(this._scene.fitMode)
123
- this._scene.target = this._target
124
- }
125
-
126
- /* event handlers */
127
- async getSceneImageData(base64 = false) {
128
- if (!this._scene) {
129
- return
130
- }
131
-
132
- var { width, height } = this._scene.model
133
- var pixelRatio = window.devicePixelRatio
134
-
135
- // 1. Scene의 바운드에 근거하여, 오프스크린 캔바스를 만든다.
136
- var canvas = document.createElement('canvas')
137
- canvas.width = Number(width)
138
- canvas.height = Number(height)
139
-
140
- var root = this._scene.root
141
- // 2. 모델레이어의 원래 위치와 스케일을 저장한다.
142
- var translate = root.get('translate')
143
- var scale = root.get('scale')
144
-
145
- // 3. 위치와 스케일 기본 설정.
146
- root.set('translate', { x: 0, y: 0 })
147
- root.set('scale', { x: 1 / pixelRatio, y: 1 / pixelRatio })
148
-
149
- // 4. 오프스크린 캔바스의 Context2D를 구한뒤, 모델레이어를 그 위에 그린다.
150
- var context = canvas.getContext('2d')
151
-
152
- root.draw(context)
153
-
154
- root.set('translate', translate)
155
- root.set('scale', scale)
156
-
157
- var data = base64 ? canvas.toDataURL() : context!.getImageData(0, 0, width, height).data
158
-
159
- return {
160
- width,
161
- height,
162
- data
163
- }
164
- }
165
-
166
- async printTrick(image: string) {
167
- var viewTarget: HTMLElement | null = null
168
- var printTarget: HTMLImageElement | null = null
169
-
170
- if (!image) {
171
- image = (await this.getSceneImageData(true))?.data as string
172
- }
173
-
174
- printTarget = document.createElement('img')
175
- printTarget.id = 'target'
176
- printTarget.src = image
177
- printTarget.style.width = '100%'
178
- printTarget.style.height = '100%'
179
-
180
- const x = (mql: MediaQueryListEvent) => {
181
- if (mql.matches) {
182
- if (!viewTarget) {
183
- viewTarget = (this.renderRoot as ShadowRoot)!.getElementById('target')
184
- this.renderRoot.replaceChild(printTarget!, viewTarget!)
185
- }
186
- } else {
187
- this.renderRoot.replaceChild(viewTarget!, printTarget!)
188
- printTarget!.remove()
189
- mediaQueryList.removeEventListener('change', x)
190
- }
191
- }
192
-
193
- if (window.matchMedia) {
194
- var mediaQueryList = window.matchMedia('print')
195
- mediaQueryList.addEventListener('change', x)
196
- }
197
- }
198
- }