svelte-tweakpane-ui 1.5.2 → 1.5.4
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/dist/control/Button.svelte +30 -30
- package/dist/control/Button.svelte.d.ts +18 -18
- package/dist/control/ButtonGrid.svelte +25 -25
- package/dist/control/ButtonGrid.svelte.d.ts +35 -35
- package/dist/control/Checkbox.svelte +2 -2
- package/dist/control/Checkbox.svelte.d.ts +23 -23
- package/dist/control/Color.svelte +34 -34
- package/dist/control/Color.svelte.d.ts +40 -40
- package/dist/control/CubicBezier.svelte +30 -30
- package/dist/control/CubicBezier.svelte.d.ts +47 -47
- package/dist/control/File.svelte +20 -20
- package/dist/control/File.svelte.d.ts +38 -38
- package/dist/control/Image.svelte +22 -22
- package/dist/control/Image.svelte.d.ts +31 -31
- package/dist/control/IntervalSlider.svelte +24 -24
- package/dist/control/IntervalSlider.svelte.d.ts +39 -39
- package/dist/control/List.svelte +35 -35
- package/dist/control/List.svelte.d.ts +31 -31
- package/dist/control/Point.svelte +31 -31
- package/dist/control/Point.svelte.d.ts +81 -81
- package/dist/control/RadioGrid.svelte +24 -24
- package/dist/control/RadioGrid.svelte.d.ts +40 -40
- package/dist/control/Ring.svelte +9 -9
- package/dist/control/Ring.svelte.d.ts +40 -40
- package/dist/control/RotationEuler.svelte +25 -25
- package/dist/control/RotationEuler.svelte.d.ts +53 -53
- package/dist/control/RotationQuaternion.svelte +24 -24
- package/dist/control/RotationQuaternion.svelte.d.ts +47 -47
- package/dist/control/Slider.svelte +9 -9
- package/dist/control/Slider.svelte.d.ts +32 -32
- package/dist/control/Stepper.svelte +16 -16
- package/dist/control/Stepper.svelte.d.ts +32 -32
- package/dist/control/Text.svelte +13 -13
- package/dist/control/Text.svelte.d.ts +26 -26
- package/dist/control/Textarea.svelte +34 -34
- package/dist/control/Textarea.svelte.d.ts +29 -29
- package/dist/control/Wheel.svelte +8 -8
- package/dist/control/Wheel.svelte.d.ts +32 -32
- package/dist/core/Binding.svelte +60 -60
- package/dist/core/Binding.svelte.d.ts +33 -33
- package/dist/core/Blade.svelte +30 -30
- package/dist/core/Blade.svelte.d.ts +21 -21
- package/dist/core/Folder.svelte +34 -34
- package/dist/core/Folder.svelte.d.ts +22 -22
- package/dist/core/Pane.svelte +17 -17
- package/dist/core/Pane.svelte.d.ts +56 -56
- package/dist/core/Separator.svelte +5 -5
- package/dist/core/Separator.svelte.d.ts +20 -20
- package/dist/core/TabGroup.svelte +29 -29
- package/dist/core/TabGroup.svelte.d.ts +18 -18
- package/dist/core/TabPage.svelte +36 -36
- package/dist/core/TabPage.svelte.d.ts +21 -21
- package/dist/extra/AutoObject.svelte +20 -20
- package/dist/extra/AutoObject.svelte.d.ts +22 -22
- package/dist/extra/AutoValue.svelte +3 -3
- package/dist/extra/AutoValue.svelte.d.ts +26 -26
- package/dist/extra/Element.svelte +10 -10
- package/dist/extra/Element.svelte.d.ts +26 -26
- package/dist/index.d.ts +48 -48
- package/dist/index.js +35 -35
- package/dist/internal/ClsPad.svelte +11 -11
- package/dist/internal/ClsPad.svelte.d.ts +17 -17
- package/dist/internal/GenericBinding.svelte +11 -11
- package/dist/internal/GenericBinding.svelte.d.ts +25 -25
- package/dist/internal/GenericBladeFolding.svelte +19 -19
- package/dist/internal/GenericBladeFolding.svelte.d.ts +20 -20
- package/dist/internal/GenericInput.svelte +7 -7
- package/dist/internal/GenericInput.svelte.d.ts +27 -27
- package/dist/internal/GenericInputFolding.svelte +21 -21
- package/dist/internal/GenericInputFolding.svelte.d.ts +32 -32
- package/dist/internal/GenericMonitor.svelte +10 -10
- package/dist/internal/GenericMonitor.svelte.d.ts +29 -29
- package/dist/internal/GenericPane.svelte +48 -48
- package/dist/internal/GenericPane.svelte.d.ts +22 -22
- package/dist/internal/GenericSlider.svelte +15 -15
- package/dist/internal/GenericSlider.svelte.d.ts +29 -29
- package/dist/internal/InternalMonitorBoolean.svelte +5 -5
- package/dist/internal/InternalMonitorBoolean.svelte.d.ts +31 -31
- package/dist/internal/InternalMonitorNumber.svelte +14 -14
- package/dist/internal/InternalMonitorNumber.svelte.d.ts +37 -37
- package/dist/internal/InternalMonitorString.svelte +9 -9
- package/dist/internal/InternalMonitorString.svelte.d.ts +32 -32
- package/dist/internal/InternalPaneDraggable.svelte +169 -173
- package/dist/internal/InternalPaneDraggable.svelte.d.ts +30 -30
- package/dist/internal/InternalPaneFixed.svelte +13 -13
- package/dist/internal/InternalPaneFixed.svelte.d.ts +23 -23
- package/dist/internal/InternalPaneInline.svelte +14 -14
- package/dist/internal/InternalPaneInline.svelte.d.ts +21 -21
- package/dist/monitor/FpsGraph.svelte +35 -35
- package/dist/monitor/FpsGraph.svelte.d.ts +50 -42
- package/dist/monitor/Monitor.svelte +4 -4
- package/dist/monitor/Monitor.svelte.d.ts +87 -88
- package/dist/monitor/Profiler.svelte +37 -37
- package/dist/monitor/Profiler.svelte.d.ts +78 -76
- package/dist/monitor/WaveformMonitor.svelte +12 -12
- package/dist/monitor/WaveformMonitor.svelte.d.ts +39 -39
- package/dist/theme.d.ts +61 -61
- package/dist/theme.js +49 -53
- package/dist/utils.d.ts +62 -66
- package/dist/utils.js +78 -78
- package/license.txt +1 -1
- package/package.json +105 -120
- package/readme.md +1 -1
|
@@ -1,67 +1,67 @@
|
|
|
1
1
|
<script context="module">
|
|
2
|
-
const localStorePrefix = 'svelte-tweakpane-ui-draggable-position-'
|
|
3
|
-
const localStoreDefaultId = '1'
|
|
4
|
-
const localStoreIds = []
|
|
5
|
-
let zIndexGlobal = 1e3
|
|
2
|
+
const localStorePrefix = 'svelte-tweakpane-ui-draggable-position-'
|
|
3
|
+
const localStoreDefaultId = '1'
|
|
4
|
+
const localStoreIds = []
|
|
5
|
+
let zIndexGlobal = 1e3
|
|
6
6
|
</script>
|
|
7
7
|
|
|
8
8
|
<script>
|
|
9
|
-
import GenericPane from './GenericPane.svelte'
|
|
10
|
-
import { clamp, getSwatchButton, pickerIsOpen, removeKeys } from '../utils.js'
|
|
11
|
-
import { onDestroy, onMount } from 'svelte'
|
|
12
|
-
import { persisted } from 'svelte-persisted-store'
|
|
13
|
-
const titlebarWindowShadeSingleClick = true
|
|
14
|
-
const titlebarWindowShadeDoubleClick = false
|
|
15
|
-
const pointerCancelOnWindowBlur = true
|
|
16
|
-
const dragMovementDistanceThreshold = 3
|
|
17
|
-
let initialDragEvent
|
|
18
|
-
export let storePositionLocally = true
|
|
19
|
-
export let localStoreId = localStoreDefaultId
|
|
20
|
-
export let tpPane = void 0
|
|
21
|
-
let positionStore
|
|
9
|
+
import GenericPane from './GenericPane.svelte'
|
|
10
|
+
import { clamp, getSwatchButton, pickerIsOpen, removeKeys } from '../utils.js'
|
|
11
|
+
import { onDestroy, onMount } from 'svelte'
|
|
12
|
+
import { persisted } from 'svelte-persisted-store'
|
|
13
|
+
const titlebarWindowShadeSingleClick = true
|
|
14
|
+
const titlebarWindowShadeDoubleClick = false
|
|
15
|
+
const pointerCancelOnWindowBlur = true
|
|
16
|
+
const dragMovementDistanceThreshold = 3
|
|
17
|
+
let initialDragEvent
|
|
18
|
+
export let storePositionLocally = true
|
|
19
|
+
export let localStoreId = localStoreDefaultId
|
|
20
|
+
export let tpPane = void 0
|
|
21
|
+
let positionStore
|
|
22
22
|
if (storePositionLocally) {
|
|
23
23
|
positionStore = persisted(`${localStorePrefix}${localStoreId}`, {
|
|
24
24
|
x: 0,
|
|
25
25
|
y: 0,
|
|
26
26
|
expanded: true,
|
|
27
|
-
width: 350
|
|
28
|
-
})
|
|
27
|
+
width: 350,
|
|
28
|
+
})
|
|
29
29
|
}
|
|
30
|
-
export let expanded = $positionStore?.expanded ?? true
|
|
31
|
-
export let collapseChildrenToFit = false
|
|
32
|
-
export let x = $positionStore?.x ?? 0
|
|
33
|
-
export let y = $positionStore?.y ?? 0
|
|
34
|
-
export let width = $positionStore?.width ?? 256
|
|
35
|
-
export let resizable = true
|
|
36
|
-
export let userExpandable = true
|
|
37
|
-
export let minWidth = 200
|
|
38
|
-
export let maxWidth = 600
|
|
39
|
-
export let title = 'Tweakpane'
|
|
40
|
-
export let scale = 1
|
|
41
|
-
export let padding = '0'
|
|
42
|
-
let containerElement
|
|
43
|
-
let dragBarElement
|
|
44
|
-
let widthHandleElement
|
|
45
|
-
let containerHeight
|
|
46
|
-
let containerHeightScaled
|
|
47
|
-
let containerWidth
|
|
48
|
-
let documentWidth
|
|
49
|
-
let documentHeight
|
|
50
|
-
let zIndexLocal = zIndexGlobal
|
|
30
|
+
export let expanded = $positionStore?.expanded ?? true
|
|
31
|
+
export let collapseChildrenToFit = false
|
|
32
|
+
export let x = $positionStore?.x ?? 0
|
|
33
|
+
export let y = $positionStore?.y ?? 0
|
|
34
|
+
export let width = $positionStore?.width ?? 256
|
|
35
|
+
export let resizable = true
|
|
36
|
+
export let userExpandable = true
|
|
37
|
+
export let minWidth = 200
|
|
38
|
+
export let maxWidth = 600
|
|
39
|
+
export let title = 'Tweakpane'
|
|
40
|
+
export let scale = 1
|
|
41
|
+
export let padding = '0'
|
|
42
|
+
let containerElement
|
|
43
|
+
let dragBarElement
|
|
44
|
+
let widthHandleElement
|
|
45
|
+
let containerHeight
|
|
46
|
+
let containerHeightScaled
|
|
47
|
+
let containerWidth
|
|
48
|
+
let documentWidth
|
|
49
|
+
let documentHeight
|
|
50
|
+
let zIndexLocal = zIndexGlobal
|
|
51
51
|
function addStorageId() {
|
|
52
52
|
if (localStoreId !== void 0) {
|
|
53
53
|
if (localStoreIds.includes(localStoreId)) {
|
|
54
54
|
console.warn(
|
|
55
|
-
'Multiple instances of <Pane> with `mode="draggable"` and `storePositionLocally=true` detected. You must explicitly set unique localStoreId property on each component to avoid collisions.'
|
|
56
|
-
)
|
|
55
|
+
'Multiple instances of <Pane> with `mode="draggable"` and `storePositionLocally=true` detected. You must explicitly set unique localStoreId property on each component to avoid collisions.',
|
|
56
|
+
)
|
|
57
57
|
}
|
|
58
|
-
localStoreIds.push(localStoreId)
|
|
58
|
+
localStoreIds.push(localStoreId)
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
function removeStorageId() {
|
|
62
62
|
if (localStoreId) {
|
|
63
|
-
localStoreIds.splice(localStoreIds.indexOf(localStoreId), 1)
|
|
64
|
-
localStorage.removeItem(`${localStorePrefix}${localStoreId}`)
|
|
63
|
+
localStoreIds.splice(localStoreIds.indexOf(localStoreId), 1)
|
|
64
|
+
localStorage.removeItem(`${localStorePrefix}${localStoreId}`)
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
function updateLocalStoreId(id) {
|
|
@@ -77,40 +77,40 @@
|
|
|
77
77
|
x,
|
|
78
78
|
y,
|
|
79
79
|
expanded,
|
|
80
|
-
width
|
|
81
|
-
})
|
|
80
|
+
width,
|
|
81
|
+
})
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
function setDocumentSize() {
|
|
85
85
|
if (x !== void 0 && y !== void 0 && width !== void 0) {
|
|
86
|
-
const documentWidthPrevious = documentWidth
|
|
87
|
-
const documentHeightPrevious = documentHeight
|
|
88
|
-
documentWidth = document.documentElement.clientWidth
|
|
89
|
-
documentHeight = document.documentElement.clientHeight
|
|
90
|
-
const dx = documentWidth - documentWidthPrevious
|
|
91
|
-
const dy = documentHeight - documentHeightPrevious
|
|
92
|
-
const centerPercentX = (x + width / 2) / documentWidth
|
|
93
|
-
const centerPercentY = (y + containerHeightScaled / 2) / documentHeight
|
|
86
|
+
const documentWidthPrevious = documentWidth
|
|
87
|
+
const documentHeightPrevious = documentHeight
|
|
88
|
+
documentWidth = document.documentElement.clientWidth
|
|
89
|
+
documentHeight = document.documentElement.clientHeight
|
|
90
|
+
const dx = documentWidth - documentWidthPrevious
|
|
91
|
+
const dy = documentHeight - documentHeightPrevious
|
|
92
|
+
const centerPercentX = (x + width / 2) / documentWidth
|
|
93
|
+
const centerPercentY = (y + containerHeightScaled / 2) / documentHeight
|
|
94
94
|
if (!Number.isNaN(dx) && centerPercentX >= 0.5) {
|
|
95
|
-
x += dx
|
|
95
|
+
x += dx
|
|
96
96
|
}
|
|
97
97
|
if (!Number.isNaN(dy) && centerPercentY >= 0.5) {
|
|
98
|
-
y += dy
|
|
98
|
+
y += dy
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
102
|
const clickBlocker = (event) => {
|
|
103
|
-
event.stopPropagation()
|
|
104
|
-
}
|
|
105
|
-
let startWidth = 0
|
|
106
|
-
let startOffsetX = 0
|
|
107
|
-
let startOffsetY = 0
|
|
108
|
-
let moveDistance = 0
|
|
103
|
+
event.stopPropagation()
|
|
104
|
+
}
|
|
105
|
+
let startWidth = 0
|
|
106
|
+
let startOffsetX = 0
|
|
107
|
+
let startOffsetY = 0
|
|
108
|
+
let moveDistance = 0
|
|
109
109
|
const doubleClickListener = (event) => {
|
|
110
|
-
event.stopPropagation()
|
|
110
|
+
event.stopPropagation()
|
|
111
111
|
if (event.target) {
|
|
112
112
|
if (width !== void 0 && event.target === widthHandleElement) {
|
|
113
|
-
width = width < maxAvailablePanelWidth ? maxAvailablePanelWidth : minWidth
|
|
113
|
+
width = width < maxAvailablePanelWidth ? maxAvailablePanelWidth : minWidth
|
|
114
114
|
} else if (
|
|
115
115
|
// Consider pointer movement threshold check...
|
|
116
116
|
// e.g. if (moveDistance < dragMovementDistanceThreshold && userExpandable)...
|
|
@@ -118,26 +118,26 @@
|
|
|
118
118
|
event.target === dragBarElement &&
|
|
119
119
|
tpPane
|
|
120
120
|
) {
|
|
121
|
-
tpPane.expanded = !tpPane.expanded
|
|
121
|
+
tpPane.expanded = !tpPane.expanded
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
|
-
}
|
|
124
|
+
}
|
|
125
125
|
const dragStartListener = (event) => {
|
|
126
126
|
if (x !== void 0 && y !== void 0 && event.button === 0 && event.target instanceof HTMLElement) {
|
|
127
|
-
moveDistance = 0
|
|
128
|
-
initialDragEvent = event
|
|
129
|
-
removeDragStartListeners()
|
|
130
|
-
addDragMoveAndEndListeners()
|
|
127
|
+
moveDistance = 0
|
|
128
|
+
initialDragEvent = event
|
|
129
|
+
removeDragStartListeners()
|
|
130
|
+
addDragMoveAndEndListeners()
|
|
131
131
|
if (event.target === dragBarElement) {
|
|
132
|
-
dragBarElement.style.cursor = 'grabbing'
|
|
132
|
+
dragBarElement.style.cursor = 'grabbing'
|
|
133
133
|
}
|
|
134
|
-
containerElement.style.transition = 'width 0s ease'
|
|
135
|
-
event.target.setPointerCapture(event.pointerId)
|
|
136
|
-
startWidth = width ?? 0
|
|
137
|
-
startOffsetX = x - event.pageX
|
|
138
|
-
startOffsetY = y - event.pageY
|
|
134
|
+
containerElement.style.transition = 'width 0s ease'
|
|
135
|
+
event.target.setPointerCapture(event.pointerId)
|
|
136
|
+
startWidth = width ?? 0
|
|
137
|
+
startOffsetX = x - event.pageX
|
|
138
|
+
startOffsetY = y - event.pageY
|
|
139
139
|
}
|
|
140
|
-
}
|
|
140
|
+
}
|
|
141
141
|
const dragMoveListener = (event) => {
|
|
142
142
|
if (
|
|
143
143
|
event.target instanceof HTMLElement &&
|
|
@@ -147,43 +147,39 @@
|
|
|
147
147
|
y !== void 0
|
|
148
148
|
) {
|
|
149
149
|
if (event.target === dragBarElement) {
|
|
150
|
-
moveDistance += Math.hypot(event.movementX, event.movementY)
|
|
151
|
-
x = event.pageX + startOffsetX
|
|
152
|
-
y = event.pageY + startOffsetY
|
|
150
|
+
moveDistance += Math.hypot(event.movementX, event.movementY)
|
|
151
|
+
x = event.pageX + startOffsetX
|
|
152
|
+
y = event.pageY + startOffsetY
|
|
153
153
|
} else if (event.target === widthHandleElement) {
|
|
154
|
-
width = clamp(
|
|
155
|
-
event.pageX + startOffsetX + startWidth - x,
|
|
156
|
-
minWidth,
|
|
157
|
-
maxAvailablePanelWidth
|
|
158
|
-
);
|
|
154
|
+
width = clamp(event.pageX + startOffsetX + startWidth - x, minWidth, maxAvailablePanelWidth)
|
|
159
155
|
}
|
|
160
156
|
}
|
|
161
|
-
}
|
|
157
|
+
}
|
|
162
158
|
const blurListener = () => {
|
|
163
159
|
if (pointerCancelOnWindowBlur && initialDragEvent?.target instanceof HTMLElement) {
|
|
164
|
-
const { target } = initialDragEvent
|
|
165
|
-
const bounds = target.getBoundingClientRect()
|
|
160
|
+
const { target } = initialDragEvent
|
|
161
|
+
const bounds = target.getBoundingClientRect()
|
|
166
162
|
const pointerCancelEvent = new PointerEvent('pointercancel', {
|
|
167
163
|
bubbles: true,
|
|
168
164
|
clientX: bounds.left + bounds.width / 2,
|
|
169
165
|
clientY: bounds.top + bounds.height / 2,
|
|
170
166
|
composed: true,
|
|
171
167
|
pointerId: initialDragEvent.pointerId,
|
|
172
|
-
pointerType: initialDragEvent.pointerType
|
|
173
|
-
})
|
|
174
|
-
target.dispatchEvent(pointerCancelEvent)
|
|
168
|
+
pointerType: initialDragEvent.pointerType,
|
|
169
|
+
})
|
|
170
|
+
target.dispatchEvent(pointerCancelEvent)
|
|
175
171
|
}
|
|
176
|
-
}
|
|
172
|
+
}
|
|
177
173
|
const dragEndListener = (event) => {
|
|
178
|
-
event.stopImmediatePropagation()
|
|
174
|
+
event.stopImmediatePropagation()
|
|
179
175
|
if (event.target instanceof HTMLElement) {
|
|
180
176
|
if (event.target.hasPointerCapture(event.pointerId)) {
|
|
181
|
-
event.target.releasePointerCapture(event.pointerId)
|
|
177
|
+
event.target.releasePointerCapture(event.pointerId)
|
|
182
178
|
}
|
|
183
179
|
if (event.target === dragBarElement) {
|
|
184
|
-
dragBarElement.style.removeProperty('cursor')
|
|
180
|
+
dragBarElement.style.removeProperty('cursor')
|
|
185
181
|
}
|
|
186
|
-
containerElement.style.removeProperty('transition')
|
|
182
|
+
containerElement.style.removeProperty('transition')
|
|
187
183
|
if (
|
|
188
184
|
event.type === 'pointerup' &&
|
|
189
185
|
titlebarWindowShadeSingleClick &&
|
|
@@ -192,99 +188,99 @@
|
|
|
192
188
|
userExpandable &&
|
|
193
189
|
tpPane
|
|
194
190
|
) {
|
|
195
|
-
tpPane.expanded = !tpPane.expanded
|
|
191
|
+
tpPane.expanded = !tpPane.expanded
|
|
196
192
|
}
|
|
197
|
-
initialDragEvent = void 0
|
|
198
|
-
removeDragMoveAndEndListeners()
|
|
199
|
-
addDragStartListeners()
|
|
193
|
+
initialDragEvent = void 0
|
|
194
|
+
removeDragMoveAndEndListeners()
|
|
195
|
+
addDragStartListeners()
|
|
200
196
|
}
|
|
201
|
-
}
|
|
197
|
+
}
|
|
202
198
|
const addDragStartListeners = () => {
|
|
203
|
-
dragBarElement.addEventListener('pointerdown', dragStartListener)
|
|
204
|
-
widthHandleElement?.addEventListener('pointerdown', dragStartListener)
|
|
205
|
-
}
|
|
199
|
+
dragBarElement.addEventListener('pointerdown', dragStartListener)
|
|
200
|
+
widthHandleElement?.addEventListener('pointerdown', dragStartListener)
|
|
201
|
+
}
|
|
206
202
|
const removeDragStartListeners = () => {
|
|
207
|
-
dragBarElement.removeEventListener('pointerdown', dragStartListener)
|
|
208
|
-
widthHandleElement?.removeEventListener('pointerdown', dragStartListener)
|
|
209
|
-
}
|
|
203
|
+
dragBarElement.removeEventListener('pointerdown', dragStartListener)
|
|
204
|
+
widthHandleElement?.removeEventListener('pointerdown', dragStartListener)
|
|
205
|
+
}
|
|
210
206
|
const addDragMoveAndEndListeners = () => {
|
|
211
|
-
window.addEventListener('blur', blurListener)
|
|
212
|
-
dragBarElement.addEventListener('pointermove', dragMoveListener)
|
|
213
|
-
dragBarElement.addEventListener('pointerup', dragEndListener)
|
|
214
|
-
dragBarElement.addEventListener('pointercancel', dragEndListener)
|
|
215
|
-
widthHandleElement?.addEventListener('pointermove', dragMoveListener)
|
|
216
|
-
widthHandleElement?.addEventListener('pointerup', dragEndListener)
|
|
217
|
-
widthHandleElement?.addEventListener('pointercancel', dragEndListener)
|
|
218
|
-
}
|
|
207
|
+
window.addEventListener('blur', blurListener)
|
|
208
|
+
dragBarElement.addEventListener('pointermove', dragMoveListener)
|
|
209
|
+
dragBarElement.addEventListener('pointerup', dragEndListener)
|
|
210
|
+
dragBarElement.addEventListener('pointercancel', dragEndListener)
|
|
211
|
+
widthHandleElement?.addEventListener('pointermove', dragMoveListener)
|
|
212
|
+
widthHandleElement?.addEventListener('pointerup', dragEndListener)
|
|
213
|
+
widthHandleElement?.addEventListener('pointercancel', dragEndListener)
|
|
214
|
+
}
|
|
219
215
|
const removeDragMoveAndEndListeners = () => {
|
|
220
|
-
window.removeEventListener('blur', blurListener)
|
|
221
|
-
dragBarElement.removeEventListener('pointermove', dragMoveListener)
|
|
222
|
-
dragBarElement.removeEventListener('pointerup', dragEndListener)
|
|
223
|
-
dragBarElement.removeEventListener('pointercancel', dragEndListener)
|
|
224
|
-
widthHandleElement?.removeEventListener('pointermove', dragMoveListener)
|
|
225
|
-
widthHandleElement?.removeEventListener('pointerup', dragEndListener)
|
|
226
|
-
widthHandleElement?.removeEventListener('pointercancel', dragEndListener)
|
|
227
|
-
}
|
|
216
|
+
window.removeEventListener('blur', blurListener)
|
|
217
|
+
dragBarElement.removeEventListener('pointermove', dragMoveListener)
|
|
218
|
+
dragBarElement.removeEventListener('pointerup', dragEndListener)
|
|
219
|
+
dragBarElement.removeEventListener('pointercancel', dragEndListener)
|
|
220
|
+
widthHandleElement?.removeEventListener('pointermove', dragMoveListener)
|
|
221
|
+
widthHandleElement?.removeEventListener('pointerup', dragEndListener)
|
|
222
|
+
widthHandleElement?.removeEventListener('pointercancel', dragEndListener)
|
|
223
|
+
}
|
|
228
224
|
const touchScrollBlocker = (event) => {
|
|
229
|
-
event.preventDefault()
|
|
230
|
-
}
|
|
225
|
+
event.preventDefault()
|
|
226
|
+
}
|
|
231
227
|
onMount(() => {
|
|
232
|
-
setDocumentSize()
|
|
228
|
+
setDocumentSize()
|
|
233
229
|
if (tpPane) {
|
|
234
|
-
containerElement.append(tpPane.element)
|
|
230
|
+
containerElement.append(tpPane.element)
|
|
235
231
|
} else {
|
|
236
|
-
console.warn('no tpPane in draggable')
|
|
232
|
+
console.warn('no tpPane in draggable')
|
|
237
233
|
}
|
|
238
|
-
containerElement.addEventListener('touchmove', touchScrollBlocker, { passive: false })
|
|
239
|
-
const dragBarElementCheck = containerElement.querySelector('.tp-rotv_t')
|
|
234
|
+
containerElement.addEventListener('touchmove', touchScrollBlocker, { passive: false })
|
|
235
|
+
const dragBarElementCheck = containerElement.querySelector('.tp-rotv_t')
|
|
240
236
|
if (dragBarElementCheck) {
|
|
241
|
-
dragBarElement = dragBarElementCheck
|
|
242
|
-
dragBarElement.addEventListener('click', clickBlocker)
|
|
243
|
-
dragBarElement.addEventListener('dblclick', doubleClickListener)
|
|
244
|
-
widthHandleElement = dragBarElement.parentElement?.appendChild(document.createElement('div'))
|
|
237
|
+
dragBarElement = dragBarElementCheck
|
|
238
|
+
dragBarElement.addEventListener('click', clickBlocker)
|
|
239
|
+
dragBarElement.addEventListener('dblclick', doubleClickListener)
|
|
240
|
+
widthHandleElement = dragBarElement.parentElement?.appendChild(document.createElement('div'))
|
|
245
241
|
if (widthHandleElement) {
|
|
246
|
-
widthHandleElement.className = 'tp-custom-width-handle'
|
|
247
|
-
widthHandleElement.textContent = '\u2194'
|
|
248
|
-
widthHandleElement.addEventListener('click', clickBlocker)
|
|
249
|
-
widthHandleElement.addEventListener('dblclick', doubleClickListener)
|
|
242
|
+
widthHandleElement.className = 'tp-custom-width-handle'
|
|
243
|
+
widthHandleElement.textContent = '\u2194'
|
|
244
|
+
widthHandleElement.addEventListener('click', clickBlocker)
|
|
245
|
+
widthHandleElement.addEventListener('dblclick', doubleClickListener)
|
|
250
246
|
}
|
|
251
|
-
addDragStartListeners()
|
|
247
|
+
addDragStartListeners()
|
|
252
248
|
}
|
|
253
|
-
})
|
|
249
|
+
})
|
|
254
250
|
onDestroy(() => {
|
|
255
|
-
removeDragStartListeners()
|
|
256
|
-
removeDragMoveAndEndListeners()
|
|
257
|
-
dragBarElement.removeEventListener('click', clickBlocker)
|
|
258
|
-
dragBarElement.removeEventListener('dblclick', doubleClickListener)
|
|
259
|
-
widthHandleElement?.removeEventListener('click', clickBlocker)
|
|
260
|
-
widthHandleElement?.removeEventListener('dblclick', doubleClickListener)
|
|
261
|
-
containerElement?.removeEventListener('touchmove', touchScrollBlocker)
|
|
251
|
+
removeDragStartListeners()
|
|
252
|
+
removeDragMoveAndEndListeners()
|
|
253
|
+
dragBarElement.removeEventListener('click', clickBlocker)
|
|
254
|
+
dragBarElement.removeEventListener('dblclick', doubleClickListener)
|
|
255
|
+
widthHandleElement?.removeEventListener('click', clickBlocker)
|
|
256
|
+
widthHandleElement?.removeEventListener('dblclick', doubleClickListener)
|
|
257
|
+
containerElement?.removeEventListener('touchmove', touchScrollBlocker)
|
|
262
258
|
if (localStoreId !== void 0) {
|
|
263
|
-
localStoreIds.splice(localStoreIds.indexOf(localStoreId), 1)
|
|
259
|
+
localStoreIds.splice(localStoreIds.indexOf(localStoreId), 1)
|
|
264
260
|
}
|
|
265
|
-
})
|
|
261
|
+
})
|
|
266
262
|
function updateResizability(isResizable) {
|
|
267
263
|
if (widthHandleElement) {
|
|
268
|
-
widthHandleElement.style.display = isResizable ? 'block' : 'none'
|
|
264
|
+
widthHandleElement.style.display = isResizable ? 'block' : 'none'
|
|
269
265
|
}
|
|
270
266
|
}
|
|
271
|
-
$: tpPane && resizable && updateResizability(resizable)
|
|
267
|
+
$: tpPane && resizable && updateResizability(resizable)
|
|
272
268
|
function recursiveCollapse(children, maxToCollapse = Number.MAX_SAFE_INTEGER) {
|
|
273
269
|
if (maxToCollapse > 0) {
|
|
274
270
|
for (const child of children) {
|
|
275
271
|
if ('expanded' in child) {
|
|
276
272
|
if (child.expanded) {
|
|
277
|
-
maxToCollapse
|
|
278
|
-
child.expanded = false
|
|
273
|
+
maxToCollapse--
|
|
274
|
+
child.expanded = false
|
|
279
275
|
}
|
|
280
276
|
if ('children' in child) {
|
|
281
|
-
recursiveCollapse(child.children, maxToCollapse)
|
|
277
|
+
recursiveCollapse(child.children, maxToCollapse)
|
|
282
278
|
}
|
|
283
279
|
} else {
|
|
284
|
-
const swatchButton = getSwatchButton(child)
|
|
280
|
+
const swatchButton = getSwatchButton(child)
|
|
285
281
|
if (swatchButton && pickerIsOpen(child)) {
|
|
286
|
-
maxToCollapse
|
|
287
|
-
swatchButton.click()
|
|
282
|
+
maxToCollapse--
|
|
283
|
+
swatchButton.click()
|
|
288
284
|
}
|
|
289
285
|
}
|
|
290
286
|
}
|
|
@@ -301,34 +297,34 @@
|
|
|
301
297
|
maxWidth !== void 0
|
|
302
298
|
) {
|
|
303
299
|
if (collapseChildrenToFit && containerHeightScaled > documentHeight && tpPane) {
|
|
304
|
-
recursiveCollapse(tpPane.children)
|
|
300
|
+
recursiveCollapse(tpPane.children)
|
|
305
301
|
}
|
|
306
|
-
x = clamp(x, 0, Math.max(0, documentWidth - containerWidth))
|
|
307
|
-
y = clamp(y, 0, Math.max(0, documentHeight - containerHeightScaled))
|
|
302
|
+
x = clamp(x, 0, Math.max(0, documentWidth - containerWidth))
|
|
303
|
+
y = clamp(y, 0, Math.max(0, documentHeight - containerHeightScaled))
|
|
308
304
|
if (documentWidth < containerWidth) {
|
|
309
|
-
width = Math.max(minWidth, Math.min(maxWidth, documentWidth))
|
|
305
|
+
width = Math.max(minWidth, Math.min(maxWidth, documentWidth))
|
|
310
306
|
}
|
|
311
307
|
}
|
|
312
|
-
$: maxAvailablePanelWidth = Math.min(maxWidth ?? 600, documentWidth - (x ?? 0))
|
|
313
|
-
$: localStoreId, storePositionLocally && addStorageId()
|
|
314
|
-
$: localStoreId, !storePositionLocally && removeStorageId()
|
|
315
|
-
$: localStoreId !== `${localStorePrefix}${localStoreId}` && updateLocalStoreId(localStoreId)
|
|
308
|
+
$: maxAvailablePanelWidth = Math.min(maxWidth ?? 600, documentWidth - (x ?? 0))
|
|
309
|
+
$: localStoreId, storePositionLocally && addStorageId()
|
|
310
|
+
$: localStoreId, !storePositionLocally && removeStorageId()
|
|
311
|
+
$: localStoreId !== `${localStorePrefix}${localStoreId}` && updateLocalStoreId(localStoreId)
|
|
316
312
|
$: storePositionLocally &&
|
|
317
313
|
localStoreId !== void 0 &&
|
|
318
314
|
x !== void 0 &&
|
|
319
315
|
y !== void 0 &&
|
|
320
316
|
width !== void 0 &&
|
|
321
317
|
expanded !== void 0 &&
|
|
322
|
-
positionStore?.set({ x, y, expanded, width })
|
|
318
|
+
positionStore?.set({ x, y, expanded, width })
|
|
323
319
|
$: {
|
|
324
320
|
if (containerElement) {
|
|
325
321
|
if (scale === void 0 || scale === 1) {
|
|
326
|
-
containerHeightScaled = containerHeight
|
|
322
|
+
containerHeightScaled = containerHeight
|
|
327
323
|
} else {
|
|
328
|
-
const style = window.getComputedStyle(containerElement)
|
|
324
|
+
const style = window.getComputedStyle(containerElement)
|
|
329
325
|
const vPadding =
|
|
330
|
-
Number.parseFloat(style.paddingTop) + Number.parseFloat(style.paddingBottom)
|
|
331
|
-
containerHeightScaled = (containerHeight - vPadding) * scale + vPadding
|
|
326
|
+
Number.parseFloat(style.paddingTop) + Number.parseFloat(style.paddingBottom)
|
|
327
|
+
containerHeightScaled = (containerHeight - vPadding) * scale + vPadding
|
|
332
328
|
}
|
|
333
329
|
}
|
|
334
330
|
}
|
|
@@ -341,10 +337,10 @@
|
|
|
341
337
|
bind:clientWidth={containerWidth}
|
|
342
338
|
bind:this={containerElement}
|
|
343
339
|
on:focus|capture={() => {
|
|
344
|
-
zIndexLocal = ++zIndexGlobal
|
|
340
|
+
zIndexLocal = ++zIndexGlobal
|
|
345
341
|
}}
|
|
346
342
|
on:pointerdown|capture={() => {
|
|
347
|
-
zIndexLocal = ++zIndexGlobal
|
|
343
|
+
zIndexLocal = ++zIndexGlobal
|
|
348
344
|
}}
|
|
349
345
|
class="draggable-container"
|
|
350
346
|
class:not-collapsable={!userExpandable}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SvelteComponent } from 'svelte'
|
|
1
|
+
import { SvelteComponent } from 'svelte'
|
|
2
2
|
declare const __propDef: {
|
|
3
3
|
props: {
|
|
4
4
|
/**
|
|
@@ -11,7 +11,7 @@ declare const __propDef: {
|
|
|
11
11
|
* @default `0`
|
|
12
12
|
* @bindable
|
|
13
13
|
* */
|
|
14
|
-
x?: number
|
|
14
|
+
x?: number
|
|
15
15
|
/**
|
|
16
16
|
* Vertical position of the pane relative to the top of the window, in pixels.
|
|
17
17
|
*
|
|
@@ -22,30 +22,30 @@ declare const __propDef: {
|
|
|
22
22
|
* @default `0`
|
|
23
23
|
* @bindable
|
|
24
24
|
* */
|
|
25
|
-
y?: number
|
|
25
|
+
y?: number
|
|
26
26
|
/**
|
|
27
27
|
* Minimum pane width in pixels.
|
|
28
28
|
* @default `200`
|
|
29
29
|
* */
|
|
30
|
-
minWidth?: number
|
|
30
|
+
minWidth?: number
|
|
31
31
|
/**
|
|
32
32
|
* Maximum pane width in pixels.
|
|
33
33
|
* @default `600`
|
|
34
34
|
* */
|
|
35
|
-
maxWidth?: number
|
|
35
|
+
maxWidth?: number
|
|
36
36
|
/**
|
|
37
37
|
* Automatically collapse open panels when the available window size is less than the height
|
|
38
38
|
* of the pane.
|
|
39
39
|
*
|
|
40
40
|
* @default `false`
|
|
41
41
|
* */
|
|
42
|
-
collapseChildrenToFit?: boolean
|
|
42
|
+
collapseChildrenToFit?: boolean
|
|
43
43
|
/**
|
|
44
44
|
* Identifier to be used if multiple `<Pane position="draggable">` components with
|
|
45
45
|
* `storePositionLocally` set to true are used on the same page.
|
|
46
46
|
* @default `'1'`
|
|
47
47
|
*/
|
|
48
|
-
localStoreId?: string
|
|
48
|
+
localStoreId?: string
|
|
49
49
|
/**
|
|
50
50
|
* CSS [padding property string](https://developer.mozilla.org/en-US/docs/Web/CSS/padding)
|
|
51
51
|
* to apply to the draggable pane container to prevent it from being dragged all the way to
|
|
@@ -54,13 +54,13 @@ declare const __propDef: {
|
|
|
54
54
|
* Useful for keeping the pane away from of menu bars, etc.
|
|
55
55
|
* @default `'0'`
|
|
56
56
|
*/
|
|
57
|
-
padding?: string
|
|
57
|
+
padding?: string
|
|
58
58
|
/**
|
|
59
59
|
* Allow the user to resize the width of the pane by dragging the right corner of the title
|
|
60
60
|
* bar.
|
|
61
61
|
* @default `true`
|
|
62
62
|
* */
|
|
63
|
-
resizable?: boolean
|
|
63
|
+
resizable?: boolean
|
|
64
64
|
/**
|
|
65
65
|
* Store the pane's position and width when the user changes it interactively.
|
|
66
66
|
*
|
|
@@ -68,7 +68,7 @@ declare const __propDef: {
|
|
|
68
68
|
* `storePositionLocally` set to `true`.
|
|
69
69
|
* @default `true`
|
|
70
70
|
* */
|
|
71
|
-
storePositionLocally?: boolean
|
|
71
|
+
storePositionLocally?: boolean
|
|
72
72
|
/**
|
|
73
73
|
* Width of the pane, in pixels.
|
|
74
74
|
*
|
|
@@ -84,7 +84,7 @@ declare const __propDef: {
|
|
|
84
84
|
* @default `256`
|
|
85
85
|
* @bindable
|
|
86
86
|
* */
|
|
87
|
-
width?: number
|
|
87
|
+
width?: number
|
|
88
88
|
} & Omit<
|
|
89
89
|
{
|
|
90
90
|
/**
|
|
@@ -93,20 +93,20 @@ declare const __propDef: {
|
|
|
93
93
|
* Unless `position="inline"`, in which case the default is `undefined` and no title bar is
|
|
94
94
|
* shown.
|
|
95
95
|
*/
|
|
96
|
-
title?: string | undefined
|
|
96
|
+
title?: string | undefined
|
|
97
97
|
/**
|
|
98
98
|
* Allow users to interactively expand / contract the pane by clicking its title bar.
|
|
99
99
|
*
|
|
100
100
|
* Hides the collapse button from the title bar when `false`.
|
|
101
101
|
* @default `true`
|
|
102
102
|
*/
|
|
103
|
-
userExpandable?: boolean
|
|
103
|
+
userExpandable?: boolean
|
|
104
104
|
/**
|
|
105
105
|
* Expand or collapse the pane into its title bar.
|
|
106
106
|
* @default `true`
|
|
107
107
|
* @bindable
|
|
108
108
|
*/
|
|
109
|
-
expanded?: boolean
|
|
109
|
+
expanded?: boolean
|
|
110
110
|
/**
|
|
111
111
|
* Custom color scheme.
|
|
112
112
|
*
|
|
@@ -125,7 +125,7 @@ declare const __propDef: {
|
|
|
125
125
|
* Inherits default Tweakpane theme equivalent to `ThemeUtils.presets.standard`, or the theme
|
|
126
126
|
* set with `setGlobalDefaultTheme()`.
|
|
127
127
|
*/
|
|
128
|
-
theme?: import('..').Theme | undefined
|
|
128
|
+
theme?: import('..').Theme | undefined
|
|
129
129
|
/**
|
|
130
130
|
* Scales the pane's elements by a factor of `scale` to make it easier to see.
|
|
131
131
|
*
|
|
@@ -139,9 +139,9 @@ declare const __propDef: {
|
|
|
139
139
|
* Negative values are ignored.
|
|
140
140
|
* @default `1`
|
|
141
141
|
*/
|
|
142
|
-
scale?: number
|
|
142
|
+
scale?: number
|
|
143
143
|
/** Internal use only. */
|
|
144
|
-
userCreatedPane?: boolean
|
|
144
|
+
userCreatedPane?: boolean
|
|
145
145
|
/**
|
|
146
146
|
* The internal Tweakpane [`Pane`](https://tweakpane.github.io/docs/api/classes/Pane.html) object.
|
|
147
147
|
*
|
|
@@ -156,25 +156,25 @@ declare const __propDef: {
|
|
|
156
156
|
* @bindable
|
|
157
157
|
* @readonly
|
|
158
158
|
*/
|
|
159
|
-
tpPane?: import('tweakpane').Pane | undefined
|
|
159
|
+
tpPane?: import('tweakpane').Pane | undefined
|
|
160
160
|
},
|
|
161
161
|
'userCreatedPane'
|
|
162
|
-
|
|
162
|
+
>
|
|
163
163
|
events: {
|
|
164
|
-
[evt: string]: CustomEvent<any
|
|
165
|
-
}
|
|
164
|
+
[evt: string]: CustomEvent<any>
|
|
165
|
+
}
|
|
166
166
|
slots: {
|
|
167
167
|
/**
|
|
168
168
|
* Any Tweakpane component, except another `<Pane>`.
|
|
169
169
|
*/
|
|
170
|
-
default: {}
|
|
171
|
-
}
|
|
172
|
-
exports?: {} | undefined
|
|
173
|
-
bindings?: string | undefined
|
|
174
|
-
}
|
|
175
|
-
export type InternalPaneDraggableProps = typeof __propDef.props
|
|
176
|
-
export type InternalPaneDraggableEvents = typeof __propDef.events
|
|
177
|
-
export type InternalPaneDraggableSlots = typeof __propDef.slots
|
|
170
|
+
default: {}
|
|
171
|
+
}
|
|
172
|
+
exports?: {} | undefined
|
|
173
|
+
bindings?: string | undefined
|
|
174
|
+
}
|
|
175
|
+
export type InternalPaneDraggableProps = typeof __propDef.props
|
|
176
|
+
export type InternalPaneDraggableEvents = typeof __propDef.events
|
|
177
|
+
export type InternalPaneDraggableSlots = typeof __propDef.slots
|
|
178
178
|
/**
|
|
179
179
|
* This component is for internal use only.
|
|
180
180
|
*
|
|
@@ -186,4 +186,4 @@ export default class InternalPaneDraggable extends SvelteComponent<
|
|
|
186
186
|
InternalPaneDraggableEvents,
|
|
187
187
|
InternalPaneDraggableSlots
|
|
188
188
|
> {}
|
|
189
|
-
export {}
|
|
189
|
+
export {}
|