Files
X-Financial/web/src/views/scripts/onlyOfficePreviewConfig.js

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`
}
}