mirror of
https://github.com/amark/gun.git
synced 2025-06-25 15:32:33 +00:00
Merge pull request #1025 from jussiry/master
meta lib update: open/close on hover and back button fixes
This commit is contained in:
commit
1703e6003c
45
lib/meta.js
45
lib/meta.js
@ -1,9 +1,4 @@
|
|||||||
;(function(){
|
;(function(){
|
||||||
var root;
|
|
||||||
if(typeof window !== "undefined"){ root = window }
|
|
||||||
if(typeof global !== "undefined"){ root = global }
|
|
||||||
root = root || {};
|
|
||||||
var console = root.console || {log: function(){}};
|
|
||||||
function USE(arg, req){
|
function USE(arg, req){
|
||||||
return req? require(arg) : arg.slice? USE[R(arg)] : function(mod, path){
|
return req? require(arg) : arg.slice? USE[R(arg)] : function(mod, path){
|
||||||
arg(mod = {exports: {}});
|
arg(mod = {exports: {}});
|
||||||
@ -13,8 +8,8 @@
|
|||||||
return p.split('/').slice(-1).toString().replace('.js','');
|
return p.split('/').slice(-1).toString().replace('.js','');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(typeof module !== "undefined"){ var common = module }
|
if(typeof module !== "undefined"){ var MODULE = module }
|
||||||
|
|
||||||
/* UNBUILD */
|
/* UNBUILD */
|
||||||
;USE(function(module){
|
;USE(function(module){
|
||||||
var noop = function(){}, u;
|
var noop = function(){}, u;
|
||||||
@ -23,14 +18,6 @@
|
|||||||
var k = m.key = {};
|
var k = m.key = {};
|
||||||
k.meta = {17:17, 91:17, 93:17, 224:17, 18: 17}; // ALT added
|
k.meta = {17:17, 91:17, 93:17, 224:17, 18: 17}; // ALT added
|
||||||
function withMeta(eve){ return eve.metaKey || eve.ctrlKey || eve.altKey } // ALT added
|
function withMeta(eve){ return eve.metaKey || eve.ctrlKey || eve.altKey } // ALT added
|
||||||
var defaults = {
|
|
||||||
8: { // backspace: close root or go back on submenu
|
|
||||||
on: () => k.at == m.edit ? m.flip(false) : m.check('down', 'back')
|
|
||||||
},
|
|
||||||
27: { // esc: close and reset menu
|
|
||||||
up: () => k.wipe()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
k.down = function(eve){
|
k.down = function(eve){
|
||||||
var key = (k.eve = m.eve = eve).which = eve.which || eve.fake || eve.keyCode;
|
var key = (k.eve = m.eve = eve).which = eve.which || eve.fake || eve.keyCode;
|
||||||
if(eve.repeat){ return }
|
if(eve.repeat){ return }
|
||||||
@ -54,8 +41,10 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
m.flip = function(tmp){
|
m.flip = function(tmp){
|
||||||
|
m.flip.active = true;
|
||||||
((tmp === false) || (!tmp && m.ui.board.is(':visible')))?
|
((tmp === false) || (!tmp && m.ui.board.is(':visible')))?
|
||||||
m.close() : m.open();
|
m.close() : m.open();
|
||||||
|
m.flip.active = false;
|
||||||
}
|
}
|
||||||
m.open = function(){
|
m.open = function(){
|
||||||
m.check.fired = null;
|
m.check.fired = null;
|
||||||
@ -86,7 +75,7 @@
|
|||||||
else k.down.keys[key] = 1;
|
else k.down.keys[key] = 1;
|
||||||
}
|
}
|
||||||
if('up' == how){ return }
|
if('up' == how){ return }
|
||||||
if(at != next){ next.back = at }
|
if(at != next && !next.back){ next.back = at }
|
||||||
(k.combo || (k.combo = [])).push(key);
|
(k.combo || (k.combo = [])).push(key);
|
||||||
m.list(next, true);
|
m.list(next, true);
|
||||||
}
|
}
|
||||||
@ -112,9 +101,7 @@
|
|||||||
if(k.styles) meta.ui.iniline($li[0], k.styles);
|
if(k.styles) meta.ui.iniline($li[0], k.styles);
|
||||||
});
|
});
|
||||||
if(opt){ m.flip(true) }
|
if(opt){ m.flip(true) }
|
||||||
$ul.append($('<li>').html('←').on('click', function(){
|
$ul.append($('<li>').html('←').on('click', back));
|
||||||
m.list(at.back);
|
|
||||||
}));
|
|
||||||
}
|
}
|
||||||
m.ask = function(help, cb){
|
m.ask = function(help, cb){
|
||||||
var $ul = $('#meta .meta-menu ul').empty();
|
var $ul = $('#meta .meta-menu ul').empty();
|
||||||
@ -123,8 +110,7 @@
|
|||||||
eve.preventDefault();
|
eve.preventDefault();
|
||||||
cb($put.val());
|
cb($put.val());
|
||||||
$li.remove();
|
$li.remove();
|
||||||
//k.wipe();
|
k.wipe();
|
||||||
m.list(k.at);
|
|
||||||
});
|
});
|
||||||
var $li = $('<li>').append($form);
|
var $li = $('<li>').append($form);
|
||||||
$ul.append($li);
|
$ul.append($li);
|
||||||
@ -139,7 +125,7 @@
|
|||||||
m.tap = function(){
|
m.tap = function(){
|
||||||
var on = $('.meta-on')
|
var on = $('.meta-on')
|
||||||
.or($($(document.querySelectorAll(':hover')).get().reverse()).first())
|
.or($($(document.querySelectorAll(':hover')).get().reverse()).first())
|
||||||
.or($(document.elementFromPoint(meta.tap.x||0, meta.tap.y||0)));
|
.or($(document.elementFromPoint(meta.tap.x, meta.tap.y)));
|
||||||
return on;
|
return on;
|
||||||
}
|
}
|
||||||
meta.edit = function(e){
|
meta.edit = function(e){
|
||||||
@ -154,6 +140,13 @@
|
|||||||
e.combow = path.join(','); // deprecate?
|
e.combow = path.join(','); // deprecate?
|
||||||
m.list(k.at || meta.edit);
|
m.list(k.at || meta.edit);
|
||||||
}
|
}
|
||||||
|
function back(){ // close root or go back on submenu
|
||||||
|
k.at == m.edit ? m.flip(false) : m.check('down', 'back')
|
||||||
|
}
|
||||||
|
var defaults = {
|
||||||
|
8: { on: back }, // backspace
|
||||||
|
27: { up: k.wipe } // esc: close and reset menu
|
||||||
|
}
|
||||||
$.extend(meta.edit, defaults)
|
$.extend(meta.edit, defaults)
|
||||||
})(USE, './metaCore');
|
})(USE, './metaCore');
|
||||||
;USE(function(module){
|
;USE(function(module){
|
||||||
@ -177,6 +170,14 @@
|
|||||||
var $m = $('<div>').attr('id', 'meta');
|
var $m = $('<div>').attr('id', 'meta');
|
||||||
$m.append($('<span>').html('☰').addClass('meta-start'));
|
$m.append($('<span>').html('☰').addClass('meta-start'));
|
||||||
$m.append($('<div>').addClass('meta-menu meta-none').append('<ul>'));
|
$m.append($('<div>').addClass('meta-menu meta-none').append('<ul>'));
|
||||||
|
$m.on('mouseenter', function(){
|
||||||
|
if (meta.flip.active || meta.flip.is()) return;
|
||||||
|
meta.flip();
|
||||||
|
})
|
||||||
|
$m.on('mouseleave', function(){
|
||||||
|
if (meta.flip.active || !meta.flip.is()) return;
|
||||||
|
meta.flip(false);
|
||||||
|
})
|
||||||
$(document.body).append($m);
|
$(document.body).append($m);
|
||||||
meta.ui.board = $('.meta-menu', $m);
|
meta.ui.board = $('.meta-menu', $m);
|
||||||
css({
|
css({
|
||||||
|
Loading…
x
Reference in New Issue
Block a user