/* * Copyright [2015] [wisemapping] * * Licensed under WiseMapping Public License, Version 1.0 (the "License"). * It is basically the Apache License, Version 2.0 (the "License") plus the * "powered by wisemapping" text requirement on every single page; * you may not use this file except in compliance with the License. * You may obtain a copy of the license at * * http://www.wisemapping.org/license * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ const FloatingTip = require('./FloatingTip').default; const KeyboardShortcutTooltip = new Class({ Extends: FloatingTip, initialize(buttonElem, text) { $assert(buttonElem, 'buttonElem can not be null'); $assert(text, 'text can not be null'); this._text = text; const children = buttonElem.children().first(); const tipElemId = `${buttonElem.attr('id')}Tip`; const tipDiv = $('
').attr('id', tipElemId); tipDiv.append(children); buttonElem.append(tipDiv); this.parent(tipDiv, { // Content can also be a function of the target element! content: this._buildContent(), html: true, placement: 'bottom', className: 'keyboardShortcutTip', template: '', }); tipDiv.on('click', (e) => { tipDiv.trigger('mouseleave', e); }); }, _buildContent() { const result = $('
'); result.css({ padding: '3px 0px', width: '100%', color: 'white', }); const textContainer = $('
').text(this._text); textContainer.css({ width: '100%', 'font-size': '90%', textAlign: 'center', 'font-weight': 'bold', }); result.append(textContainer); return result; }, }); export default KeyboardShortcutTooltip;