Greasy Fork is available in English.
UI Library for Waze Map Editor Greasy Fork scripts
当前为 
        此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greasyfork.icu/scripts/450320/1688694/WME%20UI.js
      
UI Library for Waze Map Editor Greasy Fork scripts
WMEUI.addTranslation(name, translation) – add translation to the I180n object, to call use syntax like this I180n.t(name).elementWMEUI.addStyle(css) – inject CSS to the pageWMEUI.addShortcut (name, desc, group, title, shortcut, callback, scope = null) - create shortcutcreatePanel (title, description = null, attributes = {}) – create a panel for the sidebar containercreateTab (title, description = null, attributes = {}) – create a tab for the sidebar containercreateModal (title, description = null) – create a modal window containercreateFieldset (title, description = null) – create a field containerA parent class for all containers
addElement (element) - add WMEUIHelperElement to a containeraddDiv (id, innerHTML, attributes) - add WMEUIHelperDiv to a containeraddText (id, text) - add WMEUIHelperText to a containeraddFieldset (id, title, description) - add WMEUIHelperFieldset to a containeraddInput (id, title, callback, value = '') - add WMEUIHelperControlInput with type=text to a containeraddNumber (id, title, callback, value = 0, min, max, step = 10) - WMEUIHelperControlInput with type=number to a containeraddCheckbox (id, title, callback, checked = false) - add WMEUIHelperControlInput with type=checkbox to a containeraddRadio (id, title, callback, name, value, checked = false) - add WMEUIHelperControlInput with type=radio to a containeraddRange (id, title, callback, value, min, max, step = 10) - add WMEUIHelperControlInput with type=range to a containeraddButton (id, title, description, callback, shortcut = null) - add WMEUIHelperControlButton to a containeraddButtons (buttons) - add set of the WMEUIHelperControlButton to a containerA container for the sidebar panel
A container for the sidebar tab
A container for modal window
A container for field set HTML element
Create shortcut for callback function
new WMEUIShortcut(name, description, group, title, shortcut, callback, scope = null) - create shortcut(function () {
  'use strict'
  const NAME = 'Script Name'
  // translation structure
  const TRANSLATION = {
    'en': {
      title: 'Copy address',
    },
    'uk': {
      title: 'Копіювати адресу',
    },
    'ru': {
      title: 'Копировать адреc',
    }
  }
  const STYLE = '.script-name { border: 1px solid #ccc }'
  // Add translation
  WMEUI.addTranslation(NAME, TRANSLATION)
  // Add custom style
  WMEUI.addStyle(STYLE)
  // Create shortcut
  new WMEUIShortcut(
    NAME + '-script',        // unique name
    I18n.t(NAME).title,      // description
    NAME,                    // group (use the same group for all shortcuts of the script)
    I18n.t(NAME).title,      // title shortcut section
    'C+D',                   // shortcut
    () => console.log('ok'), // callback
    null                     // scope
  )
  // buttons structure
  const BUTTONS = {
    A: {
      title: I180n.t(NAME).buttons.A.title,
      description: I180n.t(NAME).buttons.A.description,
      shortcut: 'S+49',
      callback: function() {
        console.log('Button 1');
        return false;
      }
    },
    B: {
      title: I180n.t(NAME).buttons.B.title,
      description: I180n.t(NAME).buttons.B.description,
      shortcut: 'S+50',
      callback: function() {
        console.log('Button 2');
        return false;
      }
    },
  };
  let helper, panel, modal, tab;
  $(document)
    .on('bootstrap.wme', function () {
      console.info('ready');
      helper = new WMEUIHelper(NAME);
      // Create buttons on the sidebar
      panel = helper.createPanel(I18n.t(NAME).title);
      panel.addButtons(BUTTONS);
      // Create buttons in the modal
      modal = helper.createModal(I18n.t(NAME).title);
      modal.addButtons(BUTTONS);
      // Create buttons on the sidebar in the dedicated tab
      tab = helper.createTab(I18n.t(NAME).title);
      tab.addButtons(BUTTONS);
      tab.inject();
    })
    .on('point.wme', (e, el) => {
      console.log('point', el);
      el.append(panel.toHTML());
    })
    .on('place.wme', (e, el) => {
      console.info('place', el);
      el.append(panel.toHTML());
    });
})();
Author homepage: https://anton.shevchuk.name/
Author pet projects: https://hohli.com/
Script homepage: https://github.com/AntonShevchuk/wme-ui
GreasyFork: http://greasyfork.icu/en/scripts/450320-wme-ui