/** * 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 SizeSlider from './SizeSlider'; import * as ToolbarWidgets from './ToolbarWidgets'; import FontSizes from '../util/FontSizes'; import * as UiDomFactory from '../util/UiDomFactory'; import { SketchSpec } from '@ephox/alloy'; const sizes = FontSizes.candidates(); const makeSlider = function (spec) { return SizeSlider.sketch({ onChange: spec.onChange, sizes, category: 'font', getInitialValue: spec.getInitialValue }); }; const makeItems = function (spec) { return [ UiDomFactory.spec(''), makeSlider(spec), UiDomFactory.spec('') ]; }; const sketch = function (realm, editor): SketchSpec { const spec = { onChange (value) { FontSizes.apply(editor, value); }, getInitialValue (/* slider */) { return FontSizes.get(editor); } }; return ToolbarWidgets.button(realm, 'font-size', function () { return makeItems(spec); }, editor); }; export { makeItems, sketch };