playbook_ui 14.16.0.pre.alpha.PBNTR881advancedtablefullscreen6929 → 14.16.0.pre.alpha.PBNTR881advancedtablefullscreen6934
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.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/pb_advanced_table/Utilities/types.ts +1 -12
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.scss +5 -1
- data/app/pb_kits/playbook/pb_advanced_table/_advanced_table.tsx +19 -63
- data/dist/chunks/_weekday_stacked-CON3AkXi.js +45 -0
- data/dist/chunks/vendor.js +1 -1
- data/dist/playbook-doc.js +1 -1
- data/dist/playbook.css +1 -1
- data/lib/playbook/version.rb +1 -1
- metadata +2 -2
- data/dist/chunks/_weekday_stacked-Di1bvE_E.js +0 -45
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7e6ae8dabe0a1aa24faea68ee263457d677481e8fb49058ef3bf98cb34d13509
|
4
|
+
data.tar.gz: aea28cf93c519443b913371efb9f7e36399b55ead106a9914698077d78df686f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: da72830c3590d1df9419ecb3d6310ef1513b16186c5bb12fcd42fdb6bca29b293c10f422ca18e618587f384bd618fe3b1487e7b90f8b7d8eaf1960f880a380ab
|
7
|
+
data.tar.gz: d75d70f4ae579220897598329343fa90978182a202efa1c29e46ccf51cdafc9b70a7b08624a89c5cda1b5a729519b5a58b9e2ca340136b87188079d0dea54f22
|
@@ -3,15 +3,4 @@ import { ExpandedState } from "@tanstack/react-table"
|
|
3
3
|
export type ExpandedStateObject = Extract<
|
4
4
|
ExpandedState,
|
5
5
|
Record<string, boolean>
|
6
|
-
>
|
7
|
-
|
8
|
-
declare global {
|
9
|
-
interface Document {
|
10
|
-
webkitExitFullscreen?: () => Promise<void>
|
11
|
-
msExitFullscreen?: () => Promise<void>
|
12
|
-
webkitRequestFullscreen?: () => Promise<void>
|
13
|
-
msRequestFullscreen?: () => Promise<void>
|
14
|
-
webkitFullscreenElement?: Element | null
|
15
|
-
msFullscreenElement?: Element | null
|
16
|
-
}
|
17
|
-
}
|
6
|
+
>
|
@@ -232,10 +232,14 @@
|
|
232
232
|
}
|
233
233
|
|
234
234
|
// Fullscreen
|
235
|
+
&.advanced-table-allow-fullscreen {
|
236
|
+
transition: all 0.3s ease;
|
237
|
+
}
|
238
|
+
|
235
239
|
&.advanced-table-fullscreen {
|
236
240
|
background-color: $border_light;
|
237
241
|
box-sizing: border-box;
|
238
|
-
height:
|
242
|
+
height: 100vh;
|
239
243
|
left: 0;
|
240
244
|
overflow: auto;
|
241
245
|
position: fixed;
|
@@ -162,73 +162,15 @@ const AdvancedTable = (props: AdvancedTableProps) => {
|
|
162
162
|
// Fullscreen
|
163
163
|
const [isFullscreen, setIsFullscreen] = useState(false)
|
164
164
|
|
165
|
-
const enterFullscreen = useCallback(async () => {
|
166
|
-
const element = tableWrapperRef.current
|
167
|
-
if (!element) return
|
168
|
-
|
169
|
-
try {
|
170
|
-
if (element.requestFullscreen) {
|
171
|
-
await element.requestFullscreen()
|
172
|
-
} else if ((element as any).webkitRequestFullscreen) {
|
173
|
-
await (element as any).webkitRequestFullscreen()
|
174
|
-
} else if ((element as any).msRequestFullscreen) {
|
175
|
-
await (element as any).msRequestFullscreen()
|
176
|
-
}
|
177
|
-
} catch (error) {
|
178
|
-
console.error('Error attempting to enable fullscreen:', error)
|
179
|
-
}
|
180
|
-
}, [])
|
181
|
-
|
182
|
-
const exitFullscreen = useCallback(async () => {
|
183
|
-
try {
|
184
|
-
if (document.exitFullscreen) {
|
185
|
-
await document.exitFullscreen()
|
186
|
-
} else if ((document as any).webkitExitFullscreen) {
|
187
|
-
await (document as any).webkitExitFullscreen()
|
188
|
-
} else if ((document as any).msExitFullscreen) {
|
189
|
-
await (document as any).msExitFullscreen()
|
190
|
-
}
|
191
|
-
} catch (error) {
|
192
|
-
console.error('Error exiting fullscreen:', error)
|
193
|
-
}
|
194
|
-
}, [])
|
195
|
-
|
196
165
|
const toggleFullscreen = useCallback(() => {
|
197
|
-
|
198
|
-
exitFullscreen()
|
199
|
-
} else {
|
200
|
-
enterFullscreen()
|
201
|
-
}
|
202
|
-
}, [isFullscreen, enterFullscreen, exitFullscreen])
|
203
|
-
|
204
|
-
const handleFullscreenChange = useCallback(() => {
|
205
|
-
const isCurrentlyFullscreen = !!(
|
206
|
-
document.fullscreenElement ||
|
207
|
-
(document as any).webkitFullscreenElement ||
|
208
|
-
(document as any).msFullscreenElement
|
209
|
-
)
|
210
|
-
setIsFullscreen(isCurrentlyFullscreen)
|
166
|
+
setIsFullscreen(prevState => !prevState)
|
211
167
|
}, [])
|
212
168
|
|
213
169
|
useEffect(() => {
|
214
|
-
if (
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
document.addEventListener('msfullscreenchange', handleFullscreenChange)
|
219
|
-
|
220
|
-
return () => {
|
221
|
-
document.removeEventListener('fullscreenchange', handleFullscreenChange)
|
222
|
-
document.removeEventListener('webkitfullscreenchange', handleFullscreenChange)
|
223
|
-
document.removeEventListener('msfullscreenchange', handleFullscreenChange)
|
224
|
-
}
|
225
|
-
}, [allowFullScreen, handleFullscreenChange])
|
226
|
-
|
227
|
-
useEffect(() => {
|
228
|
-
if (fullScreenControl && allowFullScreen) {
|
229
|
-
fullScreenControl({
|
230
|
-
toggleFullscreen,
|
231
|
-
isFullscreen
|
170
|
+
if (allowFullScreen && fullScreenControl) {
|
171
|
+
fullScreenControl({
|
172
|
+
toggleFullscreen,
|
173
|
+
isFullscreen
|
232
174
|
})
|
233
175
|
}
|
234
176
|
}, [allowFullScreen, fullScreenControl, toggleFullscreen, isFullscreen])
|
@@ -264,6 +206,20 @@ const AdvancedTable = (props: AdvancedTableProps) => {
|
|
264
206
|
)
|
265
207
|
}
|
266
208
|
|
209
|
+
useEffect(() => {
|
210
|
+
if (!allowFullScreen) return
|
211
|
+
|
212
|
+
const handleKeyDown = (event: KeyboardEvent) => {
|
213
|
+
if (event.key === 'Escape' && isFullscreen) {
|
214
|
+
event.preventDefault()
|
215
|
+
toggleFullscreen()
|
216
|
+
}
|
217
|
+
}
|
218
|
+
document.addEventListener('keydown', handleKeyDown)
|
219
|
+
return () => {
|
220
|
+
document.removeEventListener('keydown', handleKeyDown)
|
221
|
+
}
|
222
|
+
}, [allowFullScreen, toggleFullscreen, isFullscreen])
|
267
223
|
|
268
224
|
// Build CSS classes and props
|
269
225
|
const ariaProps = buildAriaProps(aria);
|