OXIESEC PANEL
- Current Dir:
/
/
var
/
www
/
reader
/
_backup
/
tinymce
/
tinymce
/
src
/
themes
/
silver
/
main
/
ts
/
ui
/
sizing
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
02/20/2020 06:40:48 AM
rwxr-xr-x
📄
Resize.ts
1.86 KB
02/20/2020 06:38:48 AM
rw-r--r--
📄
Utils.ts
645 bytes
02/20/2020 06:38:50 AM
rw-r--r--
Editing: Resize.ts
Close
/** * Copyright (c) Tiny Technologies, Inc. All rights reserved. * Licensed under the LGPL or a commercial license. * For LGPL see License.txt in the project root for license information. * For commercial licenses see https://www.tiny.cloud/ */ import { Obj, Option } from '@ephox/katamari'; import { Css, Element, Height, Width } from '@ephox/sugar'; import { getMaxHeightSetting, getMaxWidthSetting, getMinHeightSetting, getMinWidthSetting } from '../../api/Settings'; import Events from '../../api/Events'; import Utils from './Utils'; import Editor from 'tinymce/core/api/Editor'; interface EditorDimensions { height?: number; width?: number; } export enum ResizeTypes { None, Both, Vertical } export const calcCappedSize = (originalSize: number, delta: number, minSize: Option<number>, maxSize: Option<number>): number => { const newSize = originalSize + delta; const minOverride = minSize.filter((min) => newSize < min); const maxOverride = maxSize.filter((max) => newSize > max); return minOverride.or(maxOverride).getOr(newSize); }; export const getDimensions = (editor, deltas, resizeType: ResizeTypes, originalHeight, originalWidth) => { const dimensions: EditorDimensions = {}; dimensions.height = calcCappedSize(originalHeight, deltas.top(), getMinHeightSetting(editor), getMaxHeightSetting(editor)); if (resizeType === ResizeTypes.Both) { dimensions.width = calcCappedSize(originalWidth, deltas.left(), getMinWidthSetting(editor), getMaxWidthSetting(editor)); } return dimensions; }; export const resize = (editor: Editor, deltas, resizeType: ResizeTypes) => { const container = Element.fromDom(editor.getContainer()); const dimensions = getDimensions(editor, deltas, resizeType, Height.get(container), Width.get(container)); Obj.each(dimensions, (val, dim) => Css.set(container, dim, Utils.numToPx(val))); Events.fireResizeEditor(editor); };