56 lines
1.3 KiB
JavaScript
56 lines
1.3 KiB
JavaScript
function clampHeight(viewportHeight) {
|
|
const numericHeight = Number(viewportHeight)
|
|
if (!Number.isFinite(numericHeight) || numericHeight <= 0) {
|
|
return 720
|
|
}
|
|
|
|
return Math.max(520, numericHeight - 220)
|
|
}
|
|
|
|
export function buildOnlyOfficePreviewConfig(config, options = {}) {
|
|
const viewportHeight = options.viewportHeight
|
|
const editorConfig = {
|
|
...(config.editorConfig || {}),
|
|
embedded: {
|
|
embedUrl: '',
|
|
fullscreenUrl: '',
|
|
saveUrl: '',
|
|
shareUrl: '',
|
|
toolbarDocked: 'top'
|
|
}
|
|
}
|
|
|
|
return {
|
|
...config,
|
|
type: 'embedded',
|
|
editorConfig,
|
|
width: '100%',
|
|
height: `${clampHeight(viewportHeight)}px`
|
|
}
|
|
}
|
|
|
|
export function buildOnlyOfficeEditorConfig(config, options = {}) {
|
|
const viewportHeight = options.viewportHeight
|
|
const editable = Boolean(options.editable)
|
|
const fillContainer = Boolean(options.fillContainer)
|
|
|
|
return {
|
|
...config,
|
|
type: editable ? 'desktop' : 'embedded',
|
|
editorConfig: {
|
|
...(config.editorConfig || {}),
|
|
embedded: editable
|
|
? undefined
|
|
: {
|
|
embedUrl: '',
|
|
fullscreenUrl: '',
|
|
saveUrl: '',
|
|
shareUrl: '',
|
|
toolbarDocked: 'top'
|
|
}
|
|
},
|
|
width: '100%',
|
|
height: fillContainer ? '100%' : `${clampHeight(viewportHeight)}px`
|
|
}
|
|
}
|