efront 3.25.7 → 3.25.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/apps/_index.html +1 -1
- package/coms/basic/Item.js +13 -3
- package/coms/basic/Speed.js +36 -17
- package/coms/basic/Tree.js +4 -4
- package/coms/{zimoli → basic}/cancelAnimationFrame.js +1 -0
- package/coms/basic/lazy.js +29 -12
- package/coms/basic/loader.js +12 -9
- package/coms/basic/mark.js +1 -1
- package/coms/basic/mark_test.js +7 -0
- package/coms/basic/renderExpress.js +3 -3
- package/coms/frame/route.js +12 -3
- package/coms/kugou/playList.less +6 -0
- package/coms/zimoli/bindAccesskey.js +13 -5
- package/coms/zimoli/button.js +2 -1
- package/coms/zimoli/getGenerator.js +24 -8
- package/coms/zimoli/getName.js +7 -5
- package/coms/zimoli/hexagon.js +33 -0
- package/coms/zimoli/innerHeight.js +2 -1
- package/coms/zimoli/innerWidth.js +2 -1
- package/coms/zimoli/list.js +146 -17
- package/coms/zimoli/menu.js +7 -3
- package/coms/zimoli/menuItem.html +8 -3
- package/coms/zimoli/menuItem.js +2 -2
- package/coms/zimoli/menuItem.less +3 -2
- package/coms/zimoli/menuList.js +188 -196
- package/coms/zimoli/menuList.less +1 -1
- package/coms/zimoli/moveupon.js +1 -0
- package/coms/zimoli/on.js +54 -16
- package/coms/zimoli/onmousewheel.js +1 -1
- package/coms/zimoli/popup.js +17 -22
- package/coms/zimoli/render.js +7 -5
- package/coms/zimoli/resize.js +1 -0
- package/coms/zimoli/slider.js +23 -9
- package/coms/zimoli/slider_test.js +1 -1
- package/coms/zimoli/table.js +7 -1
- package/coms/zimoli/touchList.js +22 -20
- package/coms/zimoli/vbox.js +11 -8
- package/docs/main.js +3 -0
- package/package.json +2 -2
- package/public/efront.js +1 -1
- package/coms/zimoli/menuList.html +0 -6
package/coms/zimoli/menuList.js
CHANGED
|
@@ -9,51 +9,21 @@ var release = function () {
|
|
|
9
9
|
var clear = function () {
|
|
10
10
|
clearTimeout(releaseTimer);
|
|
11
11
|
};
|
|
12
|
-
var unfocus = function () {
|
|
12
|
+
var unfocus = lazy(function () {
|
|
13
|
+
if (mounted_menus.indexOf(document.activeElement) >= 0) return;
|
|
13
14
|
remove(mounted_menus);
|
|
14
|
-
|
|
15
|
-
this.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
page.focused = focused;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
if (page.focused) {
|
|
29
|
-
removeClass(page.focused, 'focus');
|
|
30
|
-
page.focused = null;
|
|
31
|
-
}
|
|
15
|
+
if (root_menu) root_menu.setFocus(null);
|
|
16
|
+
var root = this.root || this;
|
|
17
|
+
if (root.ispop === 1) root.ispop = false;
|
|
18
|
+
root.actived = null;
|
|
19
|
+
root.setFocus(null);
|
|
20
|
+
});
|
|
21
|
+
var unblur = function () {
|
|
22
|
+
if (document.activeElement !== this) {
|
|
23
|
+
this.tabIndex = 0;
|
|
24
|
+
this.focus();
|
|
32
25
|
}
|
|
33
26
|
};
|
|
34
|
-
var moveFocus = function (delta) {
|
|
35
|
-
var page = this;
|
|
36
|
-
var focused = page.focused;
|
|
37
|
-
var newIndex = 0;
|
|
38
|
-
if (!focused) {
|
|
39
|
-
if (delta > 0) newIndex = 0;
|
|
40
|
-
else newIndex = page.total - 1;
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
var newIndex = focused.index + delta;
|
|
44
|
-
var total = page.total;
|
|
45
|
-
if (newIndex < 0) newIndex = total + newIndex;
|
|
46
|
-
if (newIndex > total - 1) newIndex = newIndex - total;
|
|
47
|
-
}
|
|
48
|
-
do {
|
|
49
|
-
var e = page.getIndexedElement(newIndex);
|
|
50
|
-
if (newIndex < 0) newIndex = total + newIndex;
|
|
51
|
-
newIndex += delta;
|
|
52
|
-
} while (e && (e.hasAttribute("disabled") || e.hasAttribute("line")));
|
|
53
|
-
if (!e) page.setFocus(null);
|
|
54
|
-
else if (page.ispop !== true) page.setFocus(e), page.open(e);
|
|
55
|
-
else page.setFocus(e);
|
|
56
|
-
};
|
|
57
27
|
var openFocus = function () {
|
|
58
28
|
var menu = mounted_menus[mounted_menus.length - 1] || root_menu;
|
|
59
29
|
if (!menu.ispop) menu.ispop = 1;
|
|
@@ -76,19 +46,24 @@ var keyAction = function (deltax, deltay) {
|
|
|
76
46
|
if (fmenu && fmenu.children && fmenu.children.length) {
|
|
77
47
|
openFocus();
|
|
78
48
|
}
|
|
79
|
-
else if (parent
|
|
80
|
-
|
|
49
|
+
else if (parent) {
|
|
50
|
+
var index = mounted_menus.lastIndexOf(parent);
|
|
51
|
+
while (parent && parent.direction === 'y') {
|
|
52
|
+
parent = mounted_menus[--index];
|
|
53
|
+
}
|
|
54
|
+
if (!parent && root_menu.direction !== 'y') parent = root_menu;
|
|
55
|
+
if (parent) parent.moveFocus(deltax, parent.ispop);
|
|
81
56
|
}
|
|
82
57
|
}
|
|
83
58
|
else if (deltax === -1) {
|
|
84
59
|
// left
|
|
85
60
|
if (parent) {
|
|
86
61
|
if (parent.direction === 'y') remove(mounted_menus.pop());
|
|
87
|
-
else parent.moveFocus(deltax);
|
|
62
|
+
else parent.moveFocus(deltax, parent.ispop);
|
|
88
63
|
}
|
|
89
64
|
}
|
|
90
65
|
else {
|
|
91
|
-
menu.moveFocus(deltay);
|
|
66
|
+
menu.moveFocus(deltay, menu.ispop);
|
|
92
67
|
}
|
|
93
68
|
}
|
|
94
69
|
else {
|
|
@@ -96,19 +71,24 @@ var keyAction = function (deltax, deltay) {
|
|
|
96
71
|
// down
|
|
97
72
|
if (menu.focused) var fmenu = menu.focused.menu;
|
|
98
73
|
if (fmenu && fmenu.children && fmenu.children.length) openFocus();
|
|
99
|
-
else if (parent
|
|
100
|
-
|
|
74
|
+
else if (parent) {
|
|
75
|
+
var index = mounted_menus.lastIndexOf(parent);
|
|
76
|
+
while (parent && parent.direction !== 'y') {
|
|
77
|
+
parent = mounted_menus[--index];
|
|
78
|
+
}
|
|
79
|
+
if (!parent && root_menu.direction === 'y') parent = root_menu;
|
|
80
|
+
if (parent) parent.moveFocus(deltay, parent.ispop);
|
|
101
81
|
}
|
|
102
82
|
}
|
|
103
83
|
else if (deltay === -1) {
|
|
104
84
|
// up
|
|
105
85
|
if (parent) {
|
|
106
86
|
if (parent.direction !== 'y') remove(mounted_menus.pop());
|
|
107
|
-
else parent.moveFocus(deltay);
|
|
87
|
+
else parent.moveFocus(deltay, parent.ispop);
|
|
108
88
|
}
|
|
109
89
|
}
|
|
110
90
|
else {
|
|
111
|
-
menu.moveFocus(deltax);
|
|
91
|
+
menu.moveFocus(deltax, menu.ispop);
|
|
112
92
|
}
|
|
113
93
|
}
|
|
114
94
|
};
|
|
@@ -117,7 +97,7 @@ function keyalt() {
|
|
|
117
97
|
else if (root_menu === this && root_menu !== document.activeElement) {
|
|
118
98
|
root_menu.tabIndex = 0;
|
|
119
99
|
root_menu.focus();
|
|
120
|
-
root_menu.setFocus(root_menu.
|
|
100
|
+
root_menu.setFocus(root_menu.getIndexedElement(0));
|
|
121
101
|
}
|
|
122
102
|
}
|
|
123
103
|
function keytab(event) {
|
|
@@ -144,26 +124,49 @@ function keyleft() {
|
|
|
144
124
|
function keyright() {
|
|
145
125
|
keyAction(1, 0);
|
|
146
126
|
}
|
|
147
|
-
function
|
|
127
|
+
function getFocusedMenu() {
|
|
148
128
|
var menu = mounted_menus[mounted_menus.length - 1];
|
|
149
129
|
if (!menu || !menu.focused) menu = mounted_menus[mounted_menus.length - 2] || root_menu;
|
|
150
|
-
if (
|
|
130
|
+
if (mounted_menus.indexOf(document.activeElement) >= 0 || document.activeElement === root_menu) return menu;
|
|
131
|
+
}
|
|
132
|
+
function keyspace() {
|
|
133
|
+
var menu = getFocusedMenu();
|
|
134
|
+
if (menu && menu.focused) {
|
|
151
135
|
menu.focused.click();
|
|
152
136
|
}
|
|
153
137
|
}
|
|
138
|
+
function keyhome() {
|
|
139
|
+
var menu = getFocusedMenu();
|
|
140
|
+
if (menu) menu.moveFocus("home", true);
|
|
141
|
+
}
|
|
142
|
+
function keyend() {
|
|
143
|
+
var menu = getFocusedMenu();
|
|
144
|
+
if (menu) menu.moveFocus("end", true);
|
|
145
|
+
}
|
|
146
|
+
function keypagedown() {
|
|
147
|
+
var menu = getFocusedMenu();
|
|
148
|
+
if (menu) menu.moveFocus("pagedown", true);
|
|
149
|
+
}
|
|
150
|
+
function keypageup() {
|
|
151
|
+
var menu = getFocusedMenu();
|
|
152
|
+
if (menu) menu.moveFocus("pageup", true);
|
|
153
|
+
}
|
|
154
154
|
function register() {
|
|
155
155
|
var menu = this;
|
|
156
156
|
// if (!root_menu) root_menu = this;
|
|
157
|
-
bind('keydown.alt.')(menu, keyalt);
|
|
158
|
-
bind('keydown.esc')(menu, keyesc);
|
|
159
|
-
on('keydown.
|
|
160
|
-
on('keydown.
|
|
161
|
-
on('keydown.
|
|
162
|
-
on('keydown.
|
|
163
|
-
on('keydown.
|
|
164
|
-
on('keydown.
|
|
165
|
-
on('keydown.
|
|
166
|
-
on(
|
|
157
|
+
bind('keydown.only.alt.')(menu, keyalt);
|
|
158
|
+
bind('keydown.esc.only')(menu, keyesc);
|
|
159
|
+
on('keydown.pageup.only')(menu, keypageup);
|
|
160
|
+
on('keydown.pagedown.only')(menu, keypagedown);
|
|
161
|
+
on('keydown.home.only')(menu, keyhome);
|
|
162
|
+
on('keydown.end.only')(menu, keyend);
|
|
163
|
+
on('keydown.tab.only')(menu, keytab);
|
|
164
|
+
on('keydown.left.only')(menu, keyleft);
|
|
165
|
+
on('keydown.right.only')(menu, keyright);
|
|
166
|
+
on('keydown.up.only')(menu, keyup);
|
|
167
|
+
on('keydown.down.only')(menu, keydown);
|
|
168
|
+
on('keydown.enter.only')(menu, keyspace);
|
|
169
|
+
on('keydown.space.only')(menu, keyspace);
|
|
167
170
|
}
|
|
168
171
|
function main() {
|
|
169
172
|
var page, items, active = _active, direction = 'y';
|
|
@@ -179,71 +182,64 @@ function main() {
|
|
|
179
182
|
var main = this;
|
|
180
183
|
if (direction == 'y') page.ispop = true;
|
|
181
184
|
var istoolbar = direction === 't';
|
|
182
|
-
function popMenu(item, target
|
|
185
|
+
function popMenu(item, target) {
|
|
183
186
|
if (page.actived) {
|
|
184
187
|
clear();
|
|
185
188
|
remove(page.actived);
|
|
186
189
|
}
|
|
187
|
-
if (emptyFocus !== false) page.setFocus(target);
|
|
188
190
|
if (!item.length) return;
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
191
|
+
var menu = item.menu;
|
|
192
|
+
if (!menu) {
|
|
193
|
+
var clone = template.cloneNode();
|
|
194
|
+
clone.$parentScopes = page.$parentScopes;
|
|
195
|
+
clone.$scope = page.$scope;
|
|
196
|
+
clone.$src = src;
|
|
197
|
+
clone.innerHTML = template.innerHTML;
|
|
198
|
+
menu = item.menu = main(clone, item.children, active);
|
|
199
|
+
}
|
|
196
200
|
mounted_menus.push(menu);
|
|
197
201
|
page.actived = menu;
|
|
198
202
|
menu.root = page.root || page;
|
|
199
|
-
menu.go(0);
|
|
203
|
+
if (menu.go) menu.go(0);
|
|
200
204
|
popup(menu, target);
|
|
201
205
|
if (page.ispop === true) {
|
|
202
206
|
} else {
|
|
203
207
|
page.ispop = 1;
|
|
204
|
-
page.tabIndex = 0;
|
|
205
|
-
page.focus();
|
|
206
208
|
}
|
|
207
|
-
on("
|
|
208
|
-
once("remove")(menu, function () {
|
|
209
|
+
on("remove")(menu, function () {
|
|
209
210
|
removeFromList(mounted_menus, this);
|
|
211
|
+
menu.setFocus(null);
|
|
212
|
+
css(menu, "width:;height:;max-height:;max-width:;");
|
|
210
213
|
});
|
|
214
|
+
return menu;
|
|
211
215
|
}
|
|
212
216
|
on("blur")(page, unfocus);
|
|
213
|
-
var template = page
|
|
214
|
-
if (!page
|
|
217
|
+
var template = page.$template || document.createElement(page.tagName);
|
|
218
|
+
if (!page.$template) {
|
|
215
219
|
template.className = '';
|
|
216
220
|
template.removeAttribute('mode');
|
|
217
221
|
template.innerHTML = page.innerHTML;
|
|
218
|
-
page
|
|
222
|
+
page.$template = template;
|
|
219
223
|
}
|
|
220
|
-
var
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
if (time) byMousedown = elem;
|
|
230
|
-
page.setFocus(elem);
|
|
231
|
-
popMenu(elem.menu, elem);
|
|
232
|
-
}, time || 10);
|
|
224
|
+
var enterMenu = lazy(function (menu) {
|
|
225
|
+
if (page.ispop) {
|
|
226
|
+
page.setFocus(menu);
|
|
227
|
+
popMenu(menu.menu, menu);
|
|
228
|
+
}
|
|
229
|
+
}, 60);
|
|
230
|
+
on('pointerdown')(page, unblur);
|
|
231
|
+
var autoremove = function () {
|
|
232
|
+
document.activeElement.blur();
|
|
233
233
|
};
|
|
234
|
-
var
|
|
235
|
-
clear();
|
|
236
|
-
clearTimeout(popTimer);
|
|
237
|
-
}
|
|
238
|
-
var fire = async function () {
|
|
239
|
-
cancel();
|
|
234
|
+
var activeMenu = function () {
|
|
240
235
|
if (this.menu.line) return;
|
|
241
|
-
if (byMousedown) return;
|
|
242
236
|
if (this.hasAttribute("disabled") || this.hasAttribute('line')) return;
|
|
243
237
|
var pop = active(this.menu.value, this);
|
|
244
238
|
if (pop === false) return;
|
|
245
239
|
var root = page.root || page;
|
|
246
|
-
|
|
240
|
+
var istool = root.direction === 't' || root.selected
|
|
241
|
+
if (root.ispop === 1) root.ispop = false;
|
|
242
|
+
if (istool) {
|
|
247
243
|
var menu = this.menu;
|
|
248
244
|
if (root.selected) root.selected.setActive(false);
|
|
249
245
|
if (root !== page) {
|
|
@@ -257,130 +253,126 @@ function main() {
|
|
|
257
253
|
}
|
|
258
254
|
menu.setActive(true);
|
|
259
255
|
root.selected = target.menu;
|
|
256
|
+
autoremove();
|
|
257
|
+
return;
|
|
260
258
|
}
|
|
261
|
-
if (root.ispop === 1) root.ispop = false;
|
|
262
259
|
if (page.actived && page.actived.target === this) {
|
|
263
|
-
while (mounted_menus.length && mounted_menus[mounted_menus.length - 1] !== page.actived) remove(mounted_menus.pop());
|
|
264
|
-
if (!mounted_menus.length) {
|
|
265
|
-
if (byMousedown === false) return;
|
|
260
|
+
if (mounted_menus.indexOf(page.actived) >= 0) while (mounted_menus.length && mounted_menus[mounted_menus.length - 1] !== page.actived) remove(mounted_menus.pop());
|
|
261
|
+
if (!mounted_menus.length || page === mounted_menus[mounted_menus.length - 1]) {
|
|
266
262
|
popMenu(this.menu, this, false);
|
|
267
263
|
}
|
|
268
264
|
else {
|
|
269
265
|
remove(mounted_menus.pop());
|
|
266
|
+
page.actived = null;
|
|
270
267
|
}
|
|
271
268
|
}
|
|
272
269
|
else {
|
|
273
270
|
while (mounted_menus.length && mounted_menus[mounted_menus.length - 1] !== page) remove(mounted_menus.pop());
|
|
274
|
-
|
|
271
|
+
page.actived = null;
|
|
275
272
|
popMenu(this.menu, this, false);
|
|
276
273
|
if (!page.actived) {
|
|
277
|
-
(
|
|
274
|
+
autoremove();
|
|
278
275
|
}
|
|
279
276
|
}
|
|
280
277
|
};
|
|
281
|
-
var
|
|
282
|
-
if (event.which === 3)
|
|
283
|
-
|
|
278
|
+
var pressMenu = function (event) {
|
|
279
|
+
if (event.which === 3) {
|
|
280
|
+
popMenu(this.menu, this);
|
|
281
|
+
}
|
|
282
|
+
else {
|
|
283
|
+
switchMenu.done = false;
|
|
284
|
+
switchMenu.call(this);
|
|
285
|
+
}
|
|
284
286
|
};
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
287
|
+
var clickMenu = function (event) {
|
|
288
|
+
switchMenu.cancel();
|
|
289
|
+
if (!switchMenu.done) activeMenu.call(this);
|
|
290
|
+
};
|
|
291
|
+
|
|
292
|
+
|
|
293
|
+
var switchMenu = lazy(function (event) {
|
|
294
|
+
if (onclick.preventClick) return;
|
|
295
|
+
popMenu(this.menu, this);
|
|
296
|
+
switchMenu.done = true;
|
|
297
|
+
}, 300);
|
|
298
|
+
var hasIcon = function () {
|
|
299
|
+
var menus = items;
|
|
300
|
+
for (var menu of menus) {
|
|
301
|
+
if (menu.icon) {
|
|
302
|
+
return true;
|
|
293
303
|
}
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
)
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
if (page.$src) {
|
|
316
|
-
var src = page.$src;
|
|
317
|
-
var itemName = src.itemName;
|
|
318
|
-
var className = `{'has-children':${itemName}.children&&${itemName}.children.length,
|
|
304
|
+
}
|
|
305
|
+
return false;
|
|
306
|
+
};
|
|
307
|
+
var $scope = {
|
|
308
|
+
"menu-item"(e, s) {
|
|
309
|
+
if (e && s === e.$scope) s = itemName ? s[itemName] : s.menu;
|
|
310
|
+
var a = button(
|
|
311
|
+
menuItem(e, s, this.hasIcon)
|
|
312
|
+
);
|
|
313
|
+
a.menu = s;
|
|
314
|
+
return a;
|
|
315
|
+
},
|
|
316
|
+
hasIcon: hasIcon(),
|
|
317
|
+
enterMenu,
|
|
318
|
+
clickMenu,
|
|
319
|
+
pressMenu,
|
|
320
|
+
};
|
|
321
|
+
if (!page.$src) page.$src = render.parseRepeat("m in menus");
|
|
322
|
+
var src = page.$src;
|
|
323
|
+
var itemName = src.itemName;
|
|
324
|
+
var className = `{'has-children':${itemName}.children&&${itemName}.children.length,
|
|
319
325
|
'warn':${itemName}.warn,
|
|
320
326
|
actived:${itemName}.isActived()
|
|
321
327
|
}`;
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
});
|
|
341
|
-
}
|
|
342
|
-
else {
|
|
343
|
-
page.innerHTML = menuList;
|
|
344
|
-
$scope.menus = items.map(i => i instanceof Item ? i : new Item(i));
|
|
345
|
-
render(page, $scope);
|
|
346
|
-
vbox(page);
|
|
347
|
-
}
|
|
348
|
-
page.total = items.length;
|
|
349
|
-
page.renders.unshift(function () {
|
|
350
|
-
this.$scope.hasIcon = hasIcon();
|
|
351
|
-
});
|
|
352
|
-
}
|
|
353
|
-
else {
|
|
354
|
-
var generator = getGenerator(page, 'menu-item');
|
|
355
|
-
list(page, function (index) {
|
|
356
|
-
var elem = generator(index);
|
|
357
|
-
if (!elem) return;
|
|
358
|
-
if (!page.firstMenu) {
|
|
359
|
-
page.firstMenu = elem;
|
|
360
|
-
page.total = this.src.length;
|
|
328
|
+
var notHidden = `!${itemName}.hidden`;
|
|
329
|
+
var ItemTemplate = document.createElement('menu-item');
|
|
330
|
+
ItemTemplate.setAttribute("on-click", "clickMenu.call(this,event)");
|
|
331
|
+
if (istoolbar) ItemTemplate.setAttribute("on-pointerdown", "pressMenu.call(this,event)");
|
|
332
|
+
else ItemTemplate.setAttribute("on-mouseenter", `enterMenu(this)`);
|
|
333
|
+
ItemTemplate.setAttribute("e-class", className);
|
|
334
|
+
if (src.itemName) ItemTemplate.setAttribute("e-if", notHidden);
|
|
335
|
+
ItemTemplate.setAttribute("_menu", src.itemName);
|
|
336
|
+
ItemTemplate.innerHTML = menuItem.template;
|
|
337
|
+
var generator = getGenerator(page, ItemTemplate);
|
|
338
|
+
page.$generatorScopes.push($scope);
|
|
339
|
+
list(page, function (index) {
|
|
340
|
+
var item = items[index];
|
|
341
|
+
if (!item) return;
|
|
342
|
+
if (item.constructor !== Item) item = new Item(item);
|
|
343
|
+
if (istoolbar) {
|
|
344
|
+
if (item.constructor === Item && item.length && !item.extended) {
|
|
345
|
+
item.extends(item[0]);
|
|
361
346
|
}
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
return elem;
|
|
369
|
-
}, direction);
|
|
370
|
-
}
|
|
347
|
+
}
|
|
348
|
+
return generator(index, item);
|
|
349
|
+
}, direction);
|
|
350
|
+
page.renders.unshift(function () {
|
|
351
|
+
this.$scope.hasIcon = hasIcon();
|
|
352
|
+
});
|
|
371
353
|
page.open = function (a) {
|
|
372
|
-
|
|
354
|
+
if (!a.menu || !a.menu.length) {
|
|
355
|
+
return;
|
|
356
|
+
}
|
|
357
|
+
var m = popMenu(a.menu, a);
|
|
358
|
+
m.moveFocus("home");
|
|
373
359
|
};
|
|
374
360
|
page.active = function (a) {
|
|
375
|
-
|
|
361
|
+
activeMenu.call(a);
|
|
376
362
|
};
|
|
377
|
-
page
|
|
378
|
-
|
|
363
|
+
on("focused")(page, function () {
|
|
364
|
+
var focused = page.focused;
|
|
365
|
+
if (page.ispop && page === root_menu) popMenu(focused.menu, focused, false);
|
|
366
|
+
});
|
|
379
367
|
page.openFocus = openFocus;
|
|
380
368
|
page.closeFocus = closeFocus;
|
|
381
369
|
page.direction = direction;
|
|
382
|
-
|
|
370
|
+
on("contextmenu")(page, e => e.preventDefault());
|
|
371
|
+
on("mouseleave")(page, function () {
|
|
372
|
+
enterMenu.cancel();
|
|
373
|
+
});
|
|
383
374
|
page.registerAsRoot = function () {
|
|
375
|
+
register.call(this);
|
|
384
376
|
root_menu = this;
|
|
385
377
|
};
|
|
386
378
|
return page;
|
package/coms/zimoli/moveupon.js
CHANGED
|
@@ -30,6 +30,7 @@ if (/Firefox/.test(navigator.userAgent)) on('dragstart')(document, function (e)
|
|
|
30
30
|
}
|
|
31
31
|
});
|
|
32
32
|
var locktouch = function (target) {
|
|
33
|
+
if (target.resizable) return false;
|
|
33
34
|
if (/(input|textarea|select)/i.test(target.tagName) || getTargetIn(a => String(a.contentEditable) === 'true' || a.draggable, target)) {
|
|
34
35
|
return true;
|
|
35
36
|
} else {
|