UNPKG

golfnet-editor

Version:
135 lines (108 loc) 3.25 kB
import { assign } from 'min-dash'; import COLORS from '../../util/ColorUtil'; /** * A palette provider for postit elements. */ export default function PaletteProvider( palette, create, elementFactory, spaceTool, lassoTool, handTool, translate) { this._palette = palette; this._create = create; this._elementFactory = elementFactory; this._spaceTool = spaceTool; this._lassoTool = lassoTool; this._handTool = handTool; this._translate = translate; palette.registerProvider(this); } PaletteProvider.$inject = [ 'palette', 'create', 'elementFactory', 'spaceTool', 'lassoTool', 'handTool', 'translate' ]; PaletteProvider.prototype.getPaletteEntries = function (element) { const type = localStorage.getItem('type') // const type = 'Panel' var actions = {}, create = this._create, elementFactory = this._elementFactory, spaceTool = this._spaceTool, lassoTool = this._lassoTool, handTool = this._handTool, translate = this._translate; function createAction(type, group, className, title, options) { function createListener(event) { var shape = elementFactory.createShape(assign({ type: type }, options)); create.start(event, shape); } var shortType = type.replace(/^postit:/, ''); return { group: group, className: className, title: title || translate('Create {type}', { type: shortType }), action: { dragstart: createListener, click: createListener } }; } function createImage(event) { var shape = elementFactory.createShape({ type: 'postit:Image' }); create.start(event, shape, { hints: { selectImage: true } }); } if (type == 'Panel') { assign(actions, { 'create.rect-1-postit': createAction( 'postit:RectPostit-1', 'postits', 'pjs-postit-rect-1', translate('Create Square 100×200'), { color: COLORS.BLUE } ), 'create.rect-postit': createAction( 'postit:RectPostit', 'postits', 'pjs-postit-rect', translate('Create Square 150×150'), { color: COLORS.GREEN } ), 'create.square-postit': createAction( 'postit:SquarePostit', 'postits', 'pjs-postit-square', translate('Create Square 200×100'), { color: COLORS.YELLOW } ) }); } else if (type == 'Net') { assign(actions, { 'create.solar-net': createAction( 'postit:Group', 'artifact', 'solar-net', translate('Create Net 1') ), 'create.ball-net': createAction( 'postit:Group', 'artifact', 'ball-net', translate('Create Net 2') ) }); } else { assign(actions, { 'create.panel-postit': createAction( 'postit:PanelPostit', 'postits', 'solar_pannel', translate('Create Square 200×100'), { color: COLORS.YELLOW } ), 'create.net-postit': createAction( 'postit:NetPostit', 'postits', 'Net_pannel', translate('Create Square 150×150'), { color: COLORS.GREEN } ), 'create.support-postit': createAction( 'postit:SupportPostit', 'postits', 'Support_pannel', translate('Create Square 100×200'), { color: COLORS.BLUE } ), }); } return actions; };