@operato/layout 2.0.0-alpha.98 → 2.0.0-beta.0

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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,232 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [2.0.0-beta.0](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.158...v2.0.0-beta.0) (2024-06-01)
7
+
8
+ **Note:** Version bump only for package @operato/layout
9
+
10
+
11
+
12
+
13
+
14
+ ## [2.0.0-alpha.157](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.156...v2.0.0-alpha.157) (2024-06-01)
15
+
16
+ **Note:** Version bump only for package @operato/layout
17
+
18
+
19
+
20
+
21
+
22
+ ## [2.0.0-alpha.156](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.155...v2.0.0-alpha.156) (2024-06-01)
23
+
24
+ **Note:** Version bump only for package @operato/layout
25
+
26
+
27
+
28
+
29
+
30
+ ## [2.0.0-alpha.154](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.153...v2.0.0-alpha.154) (2024-06-01)
31
+
32
+ **Note:** Version bump only for package @operato/layout
33
+
34
+
35
+
36
+
37
+
38
+ ## [2.0.0-alpha.152](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.151...v2.0.0-alpha.152) (2024-05-30)
39
+
40
+ **Note:** Version bump only for package @operato/layout
41
+
42
+
43
+
44
+
45
+
46
+ ## [2.0.0-alpha.151](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.150...v2.0.0-alpha.151) (2024-05-30)
47
+
48
+ **Note:** Version bump only for package @operato/layout
49
+
50
+
51
+
52
+
53
+
54
+ ## [2.0.0-alpha.150](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.149...v2.0.0-alpha.150) (2024-05-30)
55
+
56
+ **Note:** Version bump only for package @operato/layout
57
+
58
+
59
+
60
+
61
+
62
+ ## [2.0.0-alpha.149](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.148...v2.0.0-alpha.149) (2024-05-30)
63
+
64
+ **Note:** Version bump only for package @operato/layout
65
+
66
+
67
+
68
+
69
+
70
+ ## [2.0.0-alpha.148](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.147...v2.0.0-alpha.148) (2024-05-30)
71
+
72
+
73
+ ### :rocket: New Features
74
+
75
+ * md3 ([55b7496](https://github.com/hatiolab/operato/commit/55b7496ea46a6b65ac6ab71bc1be7c89d1ba91e5))
76
+
77
+
78
+
79
+ ## [2.0.0-alpha.145](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.144...v2.0.0-alpha.145) (2024-05-28)
80
+
81
+ **Note:** Version bump only for package @operato/layout
82
+
83
+
84
+
85
+
86
+
87
+ ## [2.0.0-alpha.142](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.141...v2.0.0-alpha.142) (2024-05-21)
88
+
89
+ **Note:** Version bump only for package @operato/layout
90
+
91
+
92
+
93
+
94
+
95
+ ## [2.0.0-alpha.138](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.137...v2.0.0-alpha.138) (2024-05-15)
96
+
97
+
98
+ ### :bug: Bug Fix
99
+
100
+ * ox-resize-splitter 를 더 부드럽게 동작하도록 개선함 ([3487481](https://github.com/hatiolab/operato/commit/34874813f4c78df8fafbe202bce46e98df09f667))
101
+
102
+
103
+
104
+ ## [2.0.0-alpha.134](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.133...v2.0.0-alpha.134) (2024-05-13)
105
+
106
+ **Note:** Version bump only for package @operato/layout
107
+
108
+
109
+
110
+
111
+
112
+ ## [2.0.0-alpha.129](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.128...v2.0.0-alpha.129) (2024-05-08)
113
+
114
+ **Note:** Version bump only for package @operato/layout
115
+
116
+
117
+
118
+
119
+
120
+ ## [2.0.0-alpha.124](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.123...v2.0.0-alpha.124) (2024-05-08)
121
+
122
+ **Note:** Version bump only for package @operato/layout
123
+
124
+
125
+
126
+
127
+
128
+ ## [2.0.0-alpha.122](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.121...v2.0.0-alpha.122) (2024-05-06)
129
+
130
+ **Note:** Version bump only for package @operato/layout
131
+
132
+
133
+
134
+
135
+
136
+ ## [2.0.0-alpha.120](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.119...v2.0.0-alpha.120) (2024-05-05)
137
+
138
+ **Note:** Version bump only for package @operato/layout
139
+
140
+
141
+
142
+
143
+
144
+ ## [2.0.0-alpha.118](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.117...v2.0.0-alpha.118) (2024-05-04)
145
+
146
+ **Note:** Version bump only for package @operato/layout
147
+
148
+
149
+
150
+
151
+
152
+ ## [2.0.0-alpha.116](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.115...v2.0.0-alpha.116) (2024-05-04)
153
+
154
+ **Note:** Version bump only for package @operato/layout
155
+
156
+
157
+
158
+
159
+
160
+ ## [2.0.0-alpha.114](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.113...v2.0.0-alpha.114) (2024-05-04)
161
+
162
+ **Note:** Version bump only for package @operato/layout
163
+
164
+
165
+
166
+
167
+
168
+ ## [2.0.0-alpha.112](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.111...v2.0.0-alpha.112) (2024-05-02)
169
+
170
+ **Note:** Version bump only for package @operato/layout
171
+
172
+
173
+
174
+
175
+
176
+ ## [2.0.0-alpha.111](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.110...v2.0.0-alpha.111) (2024-05-02)
177
+
178
+ **Note:** Version bump only for package @operato/layout
179
+
180
+
181
+
182
+
183
+
184
+ ## [2.0.0-alpha.110](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.109...v2.0.0-alpha.110) (2024-05-02)
185
+
186
+ **Note:** Version bump only for package @operato/layout
187
+
188
+
189
+
190
+
191
+
192
+ ## [2.0.0-alpha.109](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.108...v2.0.0-alpha.109) (2024-05-02)
193
+
194
+ **Note:** Version bump only for package @operato/layout
195
+
196
+
197
+
198
+
199
+
200
+ ## [2.0.0-alpha.107](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.106...v2.0.0-alpha.107) (2024-05-01)
201
+
202
+ **Note:** Version bump only for package @operato/layout
203
+
204
+
205
+
206
+
207
+
208
+ ## [2.0.0-alpha.102](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.101...v2.0.0-alpha.102) (2024-04-22)
209
+
210
+ **Note:** Version bump only for package @operato/layout
211
+
212
+
213
+
214
+
215
+
216
+ ## [2.0.0-alpha.100](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.99...v2.0.0-alpha.100) (2024-04-21)
217
+
218
+ **Note:** Version bump only for package @operato/layout
219
+
220
+
221
+
222
+
223
+
224
+ ## [2.0.0-alpha.99](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.98...v2.0.0-alpha.99) (2024-04-21)
225
+
226
+ **Note:** Version bump only for package @operato/layout
227
+
228
+
229
+
230
+
231
+
6
232
  ## [2.0.0-alpha.98](https://github.com/hatiolab/operato/compare/v2.0.0-alpha.97...v2.0.0-alpha.98) (2024-04-21)
7
233
 
8
234
  **Note:** Version bump only for package @operato/layout
@@ -52,6 +52,7 @@ let ResizeSplitter = class ResizeSplitter extends LitElement {
52
52
  if (!this.dragstart) {
53
53
  return;
54
54
  }
55
+ e.preventDefault();
55
56
  this.dispatchEvent(new CustomEvent('splitter-drag', {
56
57
  bubbles: true,
57
58
  composed: true,
@@ -63,6 +64,13 @@ let ResizeSplitter = class ResizeSplitter extends LitElement {
63
64
  requestAnimationFrame(() => {
64
65
  dispatchEvent(new Event('resize'));
65
66
  });
67
+ if (this.hasAttribute('vertical')) {
68
+ document.body.style.cursor = 'col-resize';
69
+ }
70
+ else {
71
+ document.body.style.cursor = 'row-resize';
72
+ }
73
+ document.body.style.userSelect = 'none';
66
74
  e.stopPropagation();
67
75
  }
68
76
  onMouseUp(e) {
@@ -80,6 +88,8 @@ let ResizeSplitter = class ResizeSplitter extends LitElement {
80
88
  dispatchEvent(new Event('resize'));
81
89
  delete this.dragstart;
82
90
  });
91
+ document.body.style.cursor = '';
92
+ document.body.style.userSelect = '';
83
93
  e.stopPropagation();
84
94
  }
85
95
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ox-resize-splitter.js","sourceRoot":"","sources":["../../../src/components/ox-resize-splitter.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, css, html } from 'lit'\n\nimport { customElement } from 'lit/decorators.js'\n\n@customElement('ox-resize-splitter')\nexport class ResizeSplitter extends LitElement {\n static styles = css`\n :host {\n position: relative;\n opacity: 0.7;\n background-color: var(--splitter-background-color);\n }\n\n :host(:hover) {\n background-color: var(--splitter-hover-background-color);\n }\n\n div {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n `\n\n private dragstart?: { x: number; y: number }\n\n connectedCallback() {\n super.connectedCallback()\n\n if (this.hasAttribute('vertical')) {\n this.style.width = '3px'\n this.style.height = '100%'\n this.style.cursor = 'col-resize'\n } else {\n this.style.width = '100%'\n this.style.height = '3px'\n this.style.cursor = 'row-resize'\n }\n }\n\n render() {\n return html` <div @mousedown=${(e: MouseEvent) => this.onMouseDown(e)}></div> `\n }\n\n // TODO onDrag 이벤트가 계속 발생하므로 처리하는 성능 저하됨. 그래서 throttling 하도록 함\n _throttled(delay: number, fn: (...args: any) => void) {\n let lastCall = 0\n return function (...args: any) {\n const now = new Date().getTime()\n if (now - lastCall < delay) {\n return\n }\n lastCall = now\n return fn(...args)\n }\n }\n\n private onMouseDown(e: MouseEvent) {\n this.dragstart = {\n x: e.clientX,\n y: e.clientY\n }\n\n this.dispatchEvent(\n new CustomEvent('splitter-dragstart', {\n bubbles: true,\n composed: true\n })\n )\n\n window.addEventListener('mousemove', this.onMouseMoveHandler)\n window.addEventListener('mouseup', this.onMouseUpHandler)\n\n e.stopPropagation()\n }\n\n onMouseMoveHandler = this._throttled(100, this.onMouseMove.bind(this)) // this.onMouseMove.bind(this)\n onMouseUpHandler = this.onMouseUp.bind(this)\n\n private onMouseMove(e: MouseEvent) {\n if (!this.dragstart) {\n return\n }\n\n this.dispatchEvent(\n new CustomEvent('splitter-drag', {\n bubbles: true,\n composed: true,\n detail: {\n x: e.clientX - this.dragstart!.x,\n y: e.clientY - this.dragstart!.y\n }\n })\n )\n requestAnimationFrame(() => {\n dispatchEvent(new Event('resize'))\n })\n\n e.stopPropagation()\n }\n\n private onMouseUp(e: MouseEvent) {\n window.removeEventListener('mousemove', this.onMouseMoveHandler)\n window.removeEventListener('mouseup', this.onMouseUpHandler)\n\n this.dispatchEvent(\n new CustomEvent('splitter-dragend', {\n bubbles: true,\n composed: true,\n detail: {\n x: e.clientX - this.dragstart!.x,\n y: e.clientY - this.dragstart!.y\n }\n })\n )\n\n requestAnimationFrame(() => {\n dispatchEvent(new Event('resize'))\n delete this.dragstart\n })\n\n e.stopPropagation()\n }\n}\n"]}
1
+ {"version":3,"file":"ox-resize-splitter.js","sourceRoot":"","sources":["../../../src/components/ox-resize-splitter.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, css, html } from 'lit'\n\nimport { customElement } from 'lit/decorators.js'\n\n@customElement('ox-resize-splitter')\nexport class ResizeSplitter extends LitElement {\n static styles = css`\n :host {\n position: relative;\n opacity: 0.7;\n background-color: var(--splitter-background-color);\n }\n\n :host(:hover) {\n background-color: var(--splitter-hover-background-color);\n }\n\n div {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n `\n\n private dragstart?: { x: number; y: number }\n\n connectedCallback() {\n super.connectedCallback()\n\n if (this.hasAttribute('vertical')) {\n this.style.width = '3px'\n this.style.height = '100%'\n this.style.cursor = 'col-resize'\n } else {\n this.style.width = '100%'\n this.style.height = '3px'\n this.style.cursor = 'row-resize'\n }\n }\n\n render() {\n return html` <div @mousedown=${(e: MouseEvent) => this.onMouseDown(e)}></div> `\n }\n\n // TODO onDrag 이벤트가 계속 발생하므로 처리하는 성능 저하됨. 그래서 throttling 하도록 함\n _throttled(delay: number, fn: (...args: any) => void) {\n let lastCall = 0\n return function (...args: any) {\n const now = new Date().getTime()\n if (now - lastCall < delay) {\n return\n }\n lastCall = now\n return fn(...args)\n }\n }\n\n private onMouseDown(e: MouseEvent) {\n this.dragstart = {\n x: e.clientX,\n y: e.clientY\n }\n\n this.dispatchEvent(\n new CustomEvent('splitter-dragstart', {\n bubbles: true,\n composed: true\n })\n )\n\n window.addEventListener('mousemove', this.onMouseMoveHandler)\n window.addEventListener('mouseup', this.onMouseUpHandler)\n\n e.stopPropagation()\n }\n\n onMouseMoveHandler = this._throttled(100, this.onMouseMove.bind(this)) // this.onMouseMove.bind(this)\n onMouseUpHandler = this.onMouseUp.bind(this)\n\n private onMouseMove(e: MouseEvent) {\n if (!this.dragstart) {\n return\n }\n\n e.preventDefault()\n\n this.dispatchEvent(\n new CustomEvent('splitter-drag', {\n bubbles: true,\n composed: true,\n detail: {\n x: e.clientX - this.dragstart!.x,\n y: e.clientY - this.dragstart!.y\n }\n })\n )\n requestAnimationFrame(() => {\n dispatchEvent(new Event('resize'))\n })\n\n if (this.hasAttribute('vertical')) {\n document.body.style.cursor = 'col-resize'\n } else {\n document.body.style.cursor = 'row-resize'\n }\n\n document.body.style.userSelect = 'none'\n\n e.stopPropagation()\n }\n\n private onMouseUp(e: MouseEvent) {\n window.removeEventListener('mousemove', this.onMouseMoveHandler)\n window.removeEventListener('mouseup', this.onMouseUpHandler)\n\n this.dispatchEvent(\n new CustomEvent('splitter-dragend', {\n bubbles: true,\n composed: true,\n detail: {\n x: e.clientX - this.dragstart!.x,\n y: e.clientY - this.dragstart!.y\n }\n })\n )\n\n requestAnimationFrame(() => {\n dispatchEvent(new Event('resize'))\n delete this.dragstart\n })\n\n document.body.style.cursor = ''\n document.body.style.userSelect = ''\n\n e.stopPropagation()\n }\n}\n"]}
@@ -73,7 +73,7 @@ OxSplitPane.styles = css `
73
73
  #splitter {
74
74
  background-color: #ccc;
75
75
  cursor: var(--cursor-shape, col-resize);
76
- color: var(--primary-color, #ccc);
76
+ color: var(--md-sys-color-on-primary-container, #ccc);
77
77
  }
78
78
 
79
79
  :host([direction='row']) #splitter {
@@ -1 +1 @@
1
- {"version":3,"file":"ox-split-pane.js","sourceRoot":"","sources":["../../../src/components/ox-split-pane.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, css, PropertyValues, nothing } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\n\n@customElement('ox-split-pane')\nexport class OxSplitPane extends LitElement {\n static styles = css`\n :host {\n display: flex;\n flex-direction: var(--flex-direction, column);\n\n width: 100%;\n height: 100%;\n }\n\n #splitter {\n background-color: #ccc;\n cursor: var(--cursor-shape, col-resize);\n }\n\n #splitter {\n background-color: #ccc;\n cursor: var(--cursor-shape, col-resize);\n color: var(--primary-color, #ccc);\n }\n\n :host([direction='row']) #splitter {\n height: 100%;\n width: 4px;\n }\n\n :host([direction='column']) #splitter {\n width: 100%;\n height: 4px;\n }\n\n ::slotted(*) {\n overflow: hidden;\n }\n\n slot[name='front']::slotted(*) {\n flex: var(--split-ratio, 0.5);\n }\n\n slot[name='back']::slotted(*) {\n flex: calc(1 - var(--split-ratio, 0.5));\n }\n `\n\n @property({ type: String, attribute: true }) direction: string = 'row'\n @property({ type: Number, attribute: true }) ratio: number = 0.5\n @property({ type: Boolean, attribute: true }) resizable: boolean = false\n\n @query('#splitter') splitter!: HTMLDivElement\n\n render() {\n return html`\n <slot name=\"front\"></slot>\n ${this.resizable\n ? html`<div id=\"splitter\" @mousedown=${this.startDragging} direction=${this.direction}></div>`\n : nothing}\n <slot name=\"back\"></slot>\n `\n }\n\n async updated(changes: PropertyValues<this>) {\n if (changes.has('direction')) {\n this.style.setProperty('--flex-direction', this.direction)\n this.style.setProperty('--cursor-shape', this.direction == 'row' ? 'col-resize' : 'row-resize')\n }\n\n if (changes.has('ratio')) {\n this.style.setProperty('--split-ratio', String(this.ratio))\n }\n }\n\n startDragging(e: MouseEvent) {\n e.stopPropagation()\n e.preventDefault()\n\n document.addEventListener('mousemove', this.drag)\n document.addEventListener('mouseup', this.stopDragging)\n\n document.body.style.cursor = this.direction == 'row' ? 'col-resize' : 'row-resize'\n }\n\n drag = (e: MouseEvent) => {\n e.stopPropagation()\n e.preventDefault()\n\n const { width, height, left, top } = this.getBoundingClientRect()\n\n const mouseX = e.clientX - left\n const mouseY = e.clientY - top\n\n if (this.direction == 'row') {\n const totalWidth = this.offsetWidth\n this.ratio = mouseX / width\n } else {\n const totalHeight = this.offsetHeight\n this.ratio = mouseY / height\n }\n }\n\n stopDragging = (e: MouseEvent) => {\n e.stopPropagation()\n e.preventDefault()\n\n document.removeEventListener('mousemove', this.drag)\n document.removeEventListener('mouseup', this.stopDragging)\n\n document.body.style.cursor = 'auto'\n }\n}\n"]}
1
+ {"version":3,"file":"ox-split-pane.js","sourceRoot":"","sources":["../../../src/components/ox-split-pane.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, css, PropertyValues, nothing } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\n\n@customElement('ox-split-pane')\nexport class OxSplitPane extends LitElement {\n static styles = css`\n :host {\n display: flex;\n flex-direction: var(--flex-direction, column);\n\n width: 100%;\n height: 100%;\n }\n\n #splitter {\n background-color: #ccc;\n cursor: var(--cursor-shape, col-resize);\n }\n\n #splitter {\n background-color: #ccc;\n cursor: var(--cursor-shape, col-resize);\n color: var(--md-sys-color-on-primary-container, #ccc);\n }\n\n :host([direction='row']) #splitter {\n height: 100%;\n width: 4px;\n }\n\n :host([direction='column']) #splitter {\n width: 100%;\n height: 4px;\n }\n\n ::slotted(*) {\n overflow: hidden;\n }\n\n slot[name='front']::slotted(*) {\n flex: var(--split-ratio, 0.5);\n }\n\n slot[name='back']::slotted(*) {\n flex: calc(1 - var(--split-ratio, 0.5));\n }\n `\n\n @property({ type: String, attribute: true }) direction: string = 'row'\n @property({ type: Number, attribute: true }) ratio: number = 0.5\n @property({ type: Boolean, attribute: true }) resizable: boolean = false\n\n @query('#splitter') splitter!: HTMLDivElement\n\n render() {\n return html`\n <slot name=\"front\"></slot>\n ${this.resizable\n ? html`<div id=\"splitter\" @mousedown=${this.startDragging} direction=${this.direction}></div>`\n : nothing}\n <slot name=\"back\"></slot>\n `\n }\n\n async updated(changes: PropertyValues<this>) {\n if (changes.has('direction')) {\n this.style.setProperty('--flex-direction', this.direction)\n this.style.setProperty('--cursor-shape', this.direction == 'row' ? 'col-resize' : 'row-resize')\n }\n\n if (changes.has('ratio')) {\n this.style.setProperty('--split-ratio', String(this.ratio))\n }\n }\n\n startDragging(e: MouseEvent) {\n e.stopPropagation()\n e.preventDefault()\n\n document.addEventListener('mousemove', this.drag)\n document.addEventListener('mouseup', this.stopDragging)\n\n document.body.style.cursor = this.direction == 'row' ? 'col-resize' : 'row-resize'\n }\n\n drag = (e: MouseEvent) => {\n e.stopPropagation()\n e.preventDefault()\n\n const { width, height, left, top } = this.getBoundingClientRect()\n\n const mouseX = e.clientX - left\n const mouseY = e.clientY - top\n\n if (this.direction == 'row') {\n const totalWidth = this.offsetWidth\n this.ratio = mouseX / width\n } else {\n const totalHeight = this.offsetHeight\n this.ratio = mouseY / height\n }\n }\n\n stopDragging = (e: MouseEvent) => {\n e.stopPropagation()\n e.preventDefault()\n\n document.removeEventListener('mousemove', this.drag)\n document.removeEventListener('mouseup', this.stopDragging)\n\n document.body.style.cursor = 'auto'\n }\n}\n"]}
@@ -34,35 +34,35 @@ let AsideBar = class AsideBar extends connect(store)(LitElement) {
34
34
  ? html ``
35
35
  : asidebar.hovering
36
36
  ? html `
37
- <ox-floating-overlay
38
- .backdrop=${asidebar.backdrop}
39
- direction="left"
40
- .hovering=${asidebar.hovering}
41
- .name=${asidebar.name}
42
- .size=${asidebar.size}
43
- .title=${asidebar.title}
44
- .help=${asidebar.help}
45
- .closable=${asidebar.closable}
46
- .templateProperties=${asidebar.templateProperties}
47
- .historical=${true}
48
- .search=${asidebar.search}
49
- .filter=${asidebar.filter}
50
- z-index=${ifDefined(asidebar.zIndex)}
51
- >${asidebar.template}</ox-floating-overlay
52
- >
53
- `
37
+ <ox-floating-overlay
38
+ .backdrop=${asidebar.backdrop}
39
+ direction="left"
40
+ .hovering=${asidebar.hovering}
41
+ .name=${asidebar.name}
42
+ .size=${asidebar.size}
43
+ .title=${asidebar.title}
44
+ .help=${asidebar.help}
45
+ .closable=${asidebar.closable}
46
+ .templateProperties=${asidebar.templateProperties}
47
+ .historical=${true}
48
+ .search=${asidebar.search}
49
+ .filter=${asidebar.filter}
50
+ z-index=${ifDefined(asidebar.zIndex)}
51
+ >${asidebar.template}</ox-floating-overlay
52
+ >
53
+ `
54
54
  : html `
55
- <div asidebar>${asidebar.template}</div>
56
- ${asidebar.resizable
55
+ <div asidebar>${asidebar.template}</div>
56
+ ${asidebar.resizable
57
57
  ? html `
58
- <ox-resize-splitter
59
- @splitter-dragstart=${(e) => this.resizeStart(e)}
60
- @splitter-drag=${(e) => this.resizeDrag(e)}
61
- vertical
62
- ></ox-resize-splitter>
63
- `
58
+ <ox-resize-splitter
59
+ @splitter-dragstart=${(e) => this.resizeStart(e)}
60
+ @splitter-drag=${(e) => this.resizeDrag(e)}
61
+ vertical
62
+ ></ox-resize-splitter>
63
+ `
64
64
  : html ``}
65
- `)}
65
+ `)}
66
66
  `;
67
67
  }
68
68
  resizeStart(e) {
@@ -72,7 +72,7 @@ let AsideBar = class AsideBar extends connect(store)(LitElement) {
72
72
  resizeDrag(e) {
73
73
  var _a, _b;
74
74
  var delta = e.detail;
75
- var x = (_b = (_a = e.target) === null || _a === void 0 ? void 0 : _a.previousElementSibling) === null || _b === void 0 ? void 0 : _b.querySelectorAll('*');
75
+ var x = (_b = (_a = e.target) === null || _a === void 0 ? void 0 : _a.previousElementSibling) === null || _b === void 0 ? void 0 : _b.children;
76
76
  Array.from(x).forEach(ele => {
77
77
  ;
78
78
  ele.style.width = `${this._startWidth - delta.x}px`;
@@ -1 +1 @@
1
- {"version":3,"file":"ox-aside-bar.js","sourceRoot":"","sources":["../../../src/layouts/ox-aside-bar.ts"],"names":[],"mappings":"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","sourcesContent":["import '@operato/popup/ox-floating-overlay.js'\nimport '../components/ox-resize-splitter.js'\n\nimport { css, html, LitElement } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { connect } from 'pwa-helpers/connect-mixin.js'\n\nimport { ScrollbarStyles } from '@operato/styles'\n\nimport { Viewpart, VIEWPART_LEVEL } from '../actions/layout.js'\nimport store from '../initializer.js'\n\n@customElement('ox-aside-bar')\nclass AsideBar extends connect(store)(LitElement) {\n static styles = [\n ScrollbarStyles,\n css`\n :host {\n display: flex;\n flex-flow: row-reverse nowrap;\n align-items: stretch;\n\n position: relative;\n }\n\n *[asidebar] {\n display: block;\n overflow-y: auto;\n }\n `\n ]\n\n @property({ type: Boolean, attribute: 'fullbleed' }) fullbleed: boolean = false\n\n @state() viewparts: { [name: string]: Viewpart } = {}\n\n private _startWidth: number = 0\n\n render() {\n var viewparts = this.viewparts\n var asidebars = Object.keys(viewparts)\n .map(name => {\n return {\n name,\n ...viewparts[name]\n }\n })\n .filter(viewpart => viewpart.position == 'asidebar' && (!this.fullbleed || viewpart.hovering))\n\n asidebars = [\n ...asidebars.filter(viewpart => viewpart.level == VIEWPART_LEVEL.TOPMOST),\n ...asidebars.filter(viewpart => viewpart.level !== VIEWPART_LEVEL.TOPMOST)\n ]\n\n return html`\n ${asidebars.map(asidebar =>\n !asidebar.show\n ? html``\n : asidebar.hovering\n ? html`\n <ox-floating-overlay\n .backdrop=${asidebar.backdrop}\n direction=\"left\"\n .hovering=${asidebar.hovering}\n .name=${asidebar.name}\n .size=${asidebar.size}\n .title=${asidebar.title}\n .help=${asidebar.help}\n .closable=${asidebar.closable}\n .templateProperties=${asidebar.templateProperties}\n .historical=${true}\n .search=${asidebar.search}\n .filter=${asidebar.filter}\n z-index=${ifDefined(asidebar.zIndex)}\n >${asidebar.template}</ox-floating-overlay\n >\n `\n : html`\n <div asidebar>${asidebar.template}</div>\n ${asidebar.resizable\n ? html`\n <ox-resize-splitter\n @splitter-dragstart=${(e: CustomEvent) => this.resizeStart(e)}\n @splitter-drag=${(e: CustomEvent) => this.resizeDrag(e)}\n vertical\n ></ox-resize-splitter>\n `\n : html``}\n `\n )}\n `\n }\n\n resizeStart(e: CustomEvent) {\n this._startWidth = ((e.target as HTMLElement)?.previousElementSibling as HTMLElement)?.offsetWidth\n }\n\n resizeDrag(e: CustomEvent) {\n var delta = e.detail\n\n var x = ((e.target as HTMLElement)?.previousElementSibling as HTMLElement)?.querySelectorAll('*')\n Array.from(x).forEach(ele => {\n ;(ele as HTMLElement).style.width = `${this._startWidth - delta.x}px`\n })\n }\n\n stateChanged(state: any) {\n this.viewparts = state.layout.viewparts || {}\n }\n}\n"]}
1
+ {"version":3,"file":"ox-aside-bar.js","sourceRoot":"","sources":["../../../src/layouts/ox-aside-bar.ts"],"names":[],"mappings":"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","sourcesContent":["import '@operato/popup/ox-floating-overlay.js'\nimport '../components/ox-resize-splitter.js'\n\nimport { css, html, LitElement } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { connect } from 'pwa-helpers/connect-mixin.js'\n\nimport { ScrollbarStyles } from '@operato/styles'\n\nimport { Viewpart, VIEWPART_LEVEL } from '../actions/layout.js'\nimport store from '../initializer.js'\n\n@customElement('ox-aside-bar')\nclass AsideBar extends connect(store)(LitElement) {\n static styles = [\n ScrollbarStyles,\n css`\n :host {\n display: flex;\n flex-flow: row-reverse nowrap;\n align-items: stretch;\n\n position: relative;\n }\n\n *[asidebar] {\n display: block;\n overflow-y: auto;\n }\n `\n ]\n\n @property({ type: Boolean, attribute: 'fullbleed' }) fullbleed: boolean = false\n\n @state() viewparts: { [name: string]: Viewpart } = {}\n\n private _startWidth: number = 0\n\n render() {\n var viewparts = this.viewparts\n var asidebars = Object.keys(viewparts)\n .map(name => {\n return {\n name,\n ...viewparts[name]\n }\n })\n .filter(viewpart => viewpart.position == 'asidebar' && (!this.fullbleed || viewpart.hovering))\n\n asidebars = [\n ...asidebars.filter(viewpart => viewpart.level == VIEWPART_LEVEL.TOPMOST),\n ...asidebars.filter(viewpart => viewpart.level !== VIEWPART_LEVEL.TOPMOST)\n ]\n\n return html`\n ${asidebars.map(asidebar =>\n !asidebar.show\n ? html``\n : asidebar.hovering\n ? html`\n <ox-floating-overlay\n .backdrop=${asidebar.backdrop}\n direction=\"left\"\n .hovering=${asidebar.hovering}\n .name=${asidebar.name}\n .size=${asidebar.size}\n .title=${asidebar.title}\n .help=${asidebar.help}\n .closable=${asidebar.closable}\n .templateProperties=${asidebar.templateProperties}\n .historical=${true}\n .search=${asidebar.search}\n .filter=${asidebar.filter}\n z-index=${ifDefined(asidebar.zIndex)}\n >${asidebar.template}</ox-floating-overlay\n >\n `\n : html`\n <div asidebar>${asidebar.template}</div>\n ${asidebar.resizable\n ? html`\n <ox-resize-splitter\n @splitter-dragstart=${(e: CustomEvent) => this.resizeStart(e)}\n @splitter-drag=${(e: CustomEvent) => this.resizeDrag(e)}\n vertical\n ></ox-resize-splitter>\n `\n : html``}\n `\n )}\n `\n }\n\n resizeStart(e: CustomEvent) {\n this._startWidth = ((e.target as HTMLElement)?.previousElementSibling as HTMLElement)?.offsetWidth\n }\n\n resizeDrag(e: CustomEvent) {\n var delta = e.detail\n\n var x = ((e.target as HTMLElement)?.previousElementSibling as HTMLElement)?.children\n Array.from(x).forEach(ele => {\n ;(ele as HTMLElement).style.width = `${this._startWidth - delta.x}px`\n })\n }\n\n stateChanged(state: any) {\n this.viewparts = state.layout.viewparts || {}\n }\n}\n"]}
@@ -33,34 +33,34 @@ let FooterBar = class FooterBar extends connect(store)(LitElement) {
33
33
  ? html ``
34
34
  : footerbar.hovering
35
35
  ? html `
36
- <ox-floating-overlay
37
- .backdrop=${footerbar.backdrop}
38
- direction="up"
39
- .hovering=${footerbar.hovering}
40
- .name=${footerbar.name}
41
- .title=${footerbar.title || ''}
42
- .help=${footerbar.help}
43
- .size=${footerbar.size}
44
- .closable=${footerbar.closable}
45
- .templateProperties=${footerbar.templateProperties}
46
- .historical=${true}
47
- .search=${footerbar.search}
48
- .filter=${footerbar.filter}
49
- z-index=${ifDefined(footerbar.zIndex)}
50
- >${footerbar.template}</ox-floating-overlay
51
- >
52
- `
36
+ <ox-floating-overlay
37
+ .backdrop=${footerbar.backdrop}
38
+ direction="up"
39
+ .hovering=${footerbar.hovering}
40
+ .name=${footerbar.name}
41
+ .title=${footerbar.title || ''}
42
+ .help=${footerbar.help}
43
+ .size=${footerbar.size}
44
+ .closable=${footerbar.closable}
45
+ .templateProperties=${footerbar.templateProperties}
46
+ .historical=${true}
47
+ .search=${footerbar.search}
48
+ .filter=${footerbar.filter}
49
+ z-index=${ifDefined(footerbar.zIndex)}
50
+ >${footerbar.template}</ox-floating-overlay
51
+ >
52
+ `
53
53
  : html `
54
- <div footerbar>${footerbar.template}</div>
55
- ${footerbar.resizable
54
+ <div footerbar>${footerbar.template}</div>
55
+ ${footerbar.resizable
56
56
  ? html `
57
- <ox-resize-splitter
58
- @splitter-dragstart=${(e) => this.resizeStart(e)}
59
- @splitter-drag=${(e) => this.resizeDrag(e)}
60
- ></ox-resize-splitter>
61
- `
57
+ <ox-resize-splitter
58
+ @splitter-dragstart=${(e) => this.resizeStart(e)}
59
+ @splitter-drag=${(e) => this.resizeDrag(e)}
60
+ ></ox-resize-splitter>
61
+ `
62
62
  : html ``}
63
- `)}
63
+ `)}
64
64
  `;
65
65
  }
66
66
  resizeStart(e) {
@@ -70,7 +70,7 @@ let FooterBar = class FooterBar extends connect(store)(LitElement) {
70
70
  resizeDrag(e) {
71
71
  var _a;
72
72
  var delta = e.detail;
73
- var x = ((_a = e.target) === null || _a === void 0 ? void 0 : _a.previousElementSibling).querySelectorAll('*');
73
+ var x = ((_a = e.target) === null || _a === void 0 ? void 0 : _a.previousElementSibling).children;
74
74
  Array.from(x).forEach(ele => {
75
75
  ;
76
76
  ele.style.height = `${this._startHeight - delta.y}px`;
@@ -1 +1 @@
1
- {"version":3,"file":"ox-footer-bar.js","sourceRoot":"","sources":["../../../src/layouts/ox-footer-bar.ts"],"names":[],"mappings":";AAAA,OAAO,uCAAuC,CAAA;AAC9C,OAAO,qCAAqC,CAAA;AAE5C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAEtD,OAAO,EAAY,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,KAAK,MAAM,mBAAmB,CAAA;AAGrC,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC;IAAlD;;QAuBuD,cAAS,GAAY,KAAK,CAAA;QAEtE,cAAS,GAAiC,EAAE,CAAA;QAE7C,iBAAY,GAAW,CAAC,CAAA;IAwElC,CAAC;IAtEC,MAAM;QACJ,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QAC9B,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;aACpC,GAAG,CAAC,IAAI,CAAC,EAAE;YACV,OAAO;gBACL,IAAI;gBACJ,GAAG,SAAS,CAAC,IAAI,CAAC;aACnB,CAAA;QACH,CAAC,CAAC;aACD,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,IAAI,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;QAEjG,UAAU,GAAG;YACX,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,IAAI,cAAc,CAAC,OAAO,CAAC;YAC1E,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,KAAK,cAAc,CAAC,OAAO,CAAC;SAC5E,CAAA;QAED,OAAO,IAAI,CAAA;QACP,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAC3B,CAAC,SAAS,CAAC,IAAI;YACb,CAAC,CAAC,IAAI,CAAA,EAAE;YACR,CAAC,CAAC,SAAS,CAAC,QAAQ;gBACpB,CAAC,CAAC,IAAI,CAAA;;4BAEY,SAAS,CAAC,QAAQ;;4BAElB,SAAS,CAAC,QAAQ;wBACtB,SAAS,CAAC,IAAI;yBACb,SAAS,CAAC,KAAK,IAAI,EAAE;wBACtB,SAAS,CAAC,IAAI;wBACd,SAAS,CAAC,IAAI;4BACV,SAAS,CAAC,QAAQ;sCACR,SAAS,CAAC,kBAAkB;8BACpC,IAAI;0BACR,SAAS,CAAC,MAAM;0BAChB,SAAS,CAAC,MAAM;0BAChB,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC;mBAClC,SAAS,CAAC,QAAQ;;aAExB;gBACH,CAAC,CAAC,IAAI,CAAA;+BACe,SAAS,CAAC,QAAQ;gBACjC,SAAS,CAAC,SAAS;oBACnB,CAAC,CAAC,IAAI,CAAA;;4CAEsB,CAAC,CAAc,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;uCAC5C,CAAC,CAAc,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;;mBAE1D;oBACH,CAAC,CAAC,IAAI,CAAA,EAAE;aACX,CACN;KACF,CAAA;IACH,CAAC;IAED,WAAW,CAAC,CAAc;;QACxB,IAAI,CAAC,YAAY,GAAG,CAAC,MAAC,CAAC,CAAC,MAAsB,0CAAE,sBAAsC,CAAA,CAAC,YAAY,CAAA;IACrG,CAAC;IAED,UAAU,CAAC,CAAc;;QACvB,IAAI,KAAK,GAAG,CAAC,CAAC,MAAM,CAAA;QAEpB,IAAI,CAAC,GAAG,CAAC,MAAC,CAAC,CAAC,MAAsB,0CAAE,sBAAsC,CAAA,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAA;QAChG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC1B,CAAC;YAAC,GAAmB,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC,IAAI,CAAA;QACzE,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,YAAY,CAAC,KAAU;QACrB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAA;IAC/C,CAAC;;AAjGM,gBAAM,GAAG;IACd,GAAG,CAAA;;;;;;;;;;;;;;;;;;KAkBF;CACF,AApBY,CAoBZ;AAEoD;IAApD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;4CAA2B;AAEtE;IAAR,KAAK,EAAE;4CAA6C;AAzBjD,SAAS;IADd,aAAa,CAAC,eAAe,CAAC;GACzB,SAAS,CAmGd","sourcesContent":["import '@operato/popup/ox-floating-overlay.js'\nimport '../components/ox-resize-splitter.js'\n\nimport { css, html, LitElement } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { connect } from 'pwa-helpers/connect-mixin.js'\n\nimport { Viewpart, VIEWPART_LEVEL } from '../actions/layout.js'\nimport store from '../initializer.js'\n\n@customElement('ox-footer-bar')\nclass FooterBar extends connect(store)(LitElement) {\n static styles = [\n css`\n :host {\n display: flex;\n flex-flow: column-reverse nowrap;\n align-items: stretch;\n position: relative;\n }\n\n *[footerbar] {\n display: block;\n max-width: 100vw;\n }\n\n @media screen and (max-width: 460px) {\n :host {\n padding-bottom: 0;\n }\n }\n `\n ]\n\n @property({ type: Boolean, attribute: 'fullbleed' }) fullbleed: boolean = false\n\n @state() viewparts: { [name: string]: Viewpart } = {}\n\n private _startHeight: number = 0\n\n render() {\n var viewparts = this.viewparts\n var footerbars = Object.keys(viewparts)\n .map(name => {\n return {\n name,\n ...viewparts[name]\n }\n })\n .filter(viewpart => viewpart.position == 'footerbar' && (!this.fullbleed || viewpart.hovering))\n\n footerbars = [\n ...footerbars.filter(viewpart => viewpart.level == VIEWPART_LEVEL.TOPMOST),\n ...footerbars.filter(viewpart => viewpart.level !== VIEWPART_LEVEL.TOPMOST)\n ]\n\n return html`\n ${footerbars.map(footerbar =>\n !footerbar.show\n ? html``\n : footerbar.hovering\n ? html`\n <ox-floating-overlay\n .backdrop=${footerbar.backdrop}\n direction=\"up\"\n .hovering=${footerbar.hovering}\n .name=${footerbar.name}\n .title=${footerbar.title || ''}\n .help=${footerbar.help}\n .size=${footerbar.size}\n .closable=${footerbar.closable}\n .templateProperties=${footerbar.templateProperties}\n .historical=${true}\n .search=${footerbar.search}\n .filter=${footerbar.filter}\n z-index=${ifDefined(footerbar.zIndex)}\n >${footerbar.template}</ox-floating-overlay\n >\n `\n : html`\n <div footerbar>${footerbar.template}</div>\n ${footerbar.resizable\n ? html`\n <ox-resize-splitter\n @splitter-dragstart=${(e: CustomEvent) => this.resizeStart(e)}\n @splitter-drag=${(e: CustomEvent) => this.resizeDrag(e)}\n ></ox-resize-splitter>\n `\n : html``}\n `\n )}\n `\n }\n\n resizeStart(e: CustomEvent) {\n this._startHeight = ((e.target as HTMLElement)?.previousElementSibling as HTMLElement).offsetHeight\n }\n\n resizeDrag(e: CustomEvent) {\n var delta = e.detail\n\n var x = ((e.target as HTMLElement)?.previousElementSibling as HTMLElement).querySelectorAll('*')\n Array.from(x).forEach(ele => {\n ;(ele as HTMLElement).style.height = `${this._startHeight - delta.y}px`\n })\n }\n\n stateChanged(state: any) {\n this.viewparts = state.layout.viewparts || {}\n }\n}\n"]}
1
+ {"version":3,"file":"ox-footer-bar.js","sourceRoot":"","sources":["../../../src/layouts/ox-footer-bar.ts"],"names":[],"mappings":"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","sourcesContent":["import '@operato/popup/ox-floating-overlay.js'\nimport '../components/ox-resize-splitter.js'\n\nimport { css, html, LitElement } from 'lit'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { connect } from 'pwa-helpers/connect-mixin.js'\n\nimport { Viewpart, VIEWPART_LEVEL } from '../actions/layout.js'\nimport store from '../initializer.js'\n\n@customElement('ox-footer-bar')\nclass FooterBar extends connect(store)(LitElement) {\n static styles = [\n css`\n :host {\n display: flex;\n flex-flow: column-reverse nowrap;\n align-items: stretch;\n position: relative;\n }\n\n *[footerbar] {\n display: block;\n max-width: 100vw;\n }\n\n @media screen and (max-width: 460px) {\n :host {\n padding-bottom: 0;\n }\n }\n `\n ]\n\n @property({ type: Boolean, attribute: 'fullbleed' }) fullbleed: boolean = false\n\n @state() viewparts: { [name: string]: Viewpart } = {}\n\n private _startHeight: number = 0\n\n render() {\n var viewparts = this.viewparts\n var footerbars = Object.keys(viewparts)\n .map(name => {\n return {\n name,\n ...viewparts[name]\n }\n })\n .filter(viewpart => viewpart.position == 'footerbar' && (!this.fullbleed || viewpart.hovering))\n\n footerbars = [\n ...footerbars.filter(viewpart => viewpart.level == VIEWPART_LEVEL.TOPMOST),\n ...footerbars.filter(viewpart => viewpart.level !== VIEWPART_LEVEL.TOPMOST)\n ]\n\n return html`\n ${footerbars.map(footerbar =>\n !footerbar.show\n ? html``\n : footerbar.hovering\n ? html`\n <ox-floating-overlay\n .backdrop=${footerbar.backdrop}\n direction=\"up\"\n .hovering=${footerbar.hovering}\n .name=${footerbar.name}\n .title=${footerbar.title || ''}\n .help=${footerbar.help}\n .size=${footerbar.size}\n .closable=${footerbar.closable}\n .templateProperties=${footerbar.templateProperties}\n .historical=${true}\n .search=${footerbar.search}\n .filter=${footerbar.filter}\n z-index=${ifDefined(footerbar.zIndex)}\n >${footerbar.template}</ox-floating-overlay\n >\n `\n : html`\n <div footerbar>${footerbar.template}</div>\n ${footerbar.resizable\n ? html`\n <ox-resize-splitter\n @splitter-dragstart=${(e: CustomEvent) => this.resizeStart(e)}\n @splitter-drag=${(e: CustomEvent) => this.resizeDrag(e)}\n ></ox-resize-splitter>\n `\n : html``}\n `\n )}\n `\n }\n\n resizeStart(e: CustomEvent) {\n this._startHeight = ((e.target as HTMLElement)?.previousElementSibling as HTMLElement).offsetHeight\n }\n\n resizeDrag(e: CustomEvent) {\n var delta = e.detail\n\n var x = ((e.target as HTMLElement)?.previousElementSibling as HTMLElement).children\n Array.from(x).forEach(ele => {\n ;(ele as HTMLElement).style.height = `${this._startHeight - delta.y}px`\n })\n }\n\n stateChanged(state: any) {\n this.viewparts = state.layout.viewparts || {}\n }\n}\n"]}
@@ -33,34 +33,34 @@ let HeaderBar = class HeaderBar extends connect(store)(LitElement) {
33
33
  ? html ``
34
34
  : headerbar.hovering
35
35
  ? html `
36
- <ox-floating-overlay
37
- .backdrop=${headerbar.backdrop}
38
- direction="down"
39
- .hovering=${headerbar.hovering}
40
- .name=${headerbar.name}
41
- .title=${headerbar.title}
42
- .help=${headerbar.help}
43
- .size=${headerbar.size}
44
- .closable=${headerbar.closable}
45
- .templateProperties=${headerbar.templateProperties}
46
- .historical=${true}
47
- .search=${headerbar.search}
48
- .filter=${headerbar.filter}
49
- z-index=${ifDefined(headerbar.zIndex)}
50
- >${headerbar.template}</ox-floating-overlay
51
- >
52
- `
36
+ <ox-floating-overlay
37
+ .backdrop=${headerbar.backdrop}
38
+ direction="down"
39
+ .hovering=${headerbar.hovering}
40
+ .name=${headerbar.name}
41
+ .title=${headerbar.title}
42
+ .help=${headerbar.help}
43
+ .size=${headerbar.size}
44
+ .closable=${headerbar.closable}
45
+ .templateProperties=${headerbar.templateProperties}
46
+ .historical=${true}
47
+ .search=${headerbar.search}
48
+ .filter=${headerbar.filter}
49
+ z-index=${ifDefined(headerbar.zIndex)}
50
+ >${headerbar.template}</ox-floating-overlay
51
+ >
52
+ `
53
53
  : html `
54
- <div headerbar>${headerbar.template}</div>
55
- ${headerbar.resizable
54
+ <div headerbar>${headerbar.template}</div>
55
+ ${headerbar.resizable
56
56
  ? html `
57
- <ox-resize-splitter
58
- @splitter-dragstart=${(e) => this.resizeStart(e)}
59
- @splitter-drag=${(e) => this.resizeDrag(e)}
60
- ></ox-resize-splitter>
61
- `
57
+ <ox-resize-splitter
58
+ @splitter-dragstart=${(e) => this.resizeStart(e)}
59
+ @splitter-drag=${(e) => this.resizeDrag(e)}
60
+ ></ox-resize-splitter>
61
+ `
62
62
  : html ``}
63
- `)}
63
+ `)}
64
64
  `;
65
65
  }
66
66
  resizeStart(e) {
@@ -70,7 +70,7 @@ let HeaderBar = class HeaderBar extends connect(store)(LitElement) {
70
70
  resizeDrag(e) {
71
71
  var _a;
72
72
  var delta = e.detail;
73
- var x = ((_a = e.target) === null || _a === void 0 ? void 0 : _a.previousElementSibling).querySelectorAll('*');
73
+ var x = ((_a = e.target) === null || _a === void 0 ? void 0 : _a.previousElementSibling).children;
74
74
  Array.from(x).forEach(ele => {
75
75
  ;
76
76
  ele.style.height = `${this._startHeight + delta.y}px`;