efront 3.18.0 → 3.18.3

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.
@@ -2,16 +2,22 @@ var change = function (data) {
2
2
  zimoli.go(data, this.params, this);
3
3
  };
4
4
  var gosrc = function () {
5
- if (this.hasAttribute('src')) {
6
- var src = this.getAttribute('src');
7
- if (src !== this.src) {
8
- this.src = src;
9
- if (src) cast(this, this.getAttribute('src'));
10
- }
5
+ var { src } = this;
6
+ if (this.hasAttribute && this.hasAttribute('src')) {
7
+ src = this.getAttribute('src');
8
+ }
9
+ if (src !== this._src) {
10
+ change.call(this, src);
11
+ this._src = src;
11
12
  }
12
13
  };
13
14
  function container(element) {
14
- care(element, change);
15
+ var src;
16
+ if (element && element.hasAttribute('src')) {
17
+ src = element.getAttribute('src');
18
+ }
19
+ element = document.createComment('container');
20
+ element.src = src;
15
21
  element.renders = [gosrc];
16
22
  return element;
17
23
  }
@@ -30,26 +30,8 @@ function contextmenu(target, menuItems) {
30
30
  css(menu, {
31
31
  position: "absolute",
32
32
  });
33
- popup(menu);
33
+ popup(menu, event);
34
34
  menu.focus();
35
- var { offsetWidth, offsetHeight } = menu;
36
- var left = event.clientX, top = event.clientY;
37
- if (offsetWidth + left > innerWidth) {
38
- left = left - offsetWidth;
39
- }
40
- if (left < 0) {
41
- left = 0;
42
- }
43
- if (offsetHeight + top > innerHeight) {
44
- top = top - offsetHeight;
45
- }
46
- if (top < 0) {
47
- top = 0;
48
- }
49
- css(menu, {
50
- left: left + "px",
51
- top: top + "px"
52
- });
53
35
  onmousedown(menu, e => e.preventDefault());
54
36
  onblur(menu, lazy(e => remove(menu)));
55
37
  });
@@ -1,7 +1,13 @@
1
- function createItemTarget(item) {
1
+ function createItemTarget(item, target) {
2
2
  var $scope = {};
3
- var { itemName } = this.$src;
3
+ var { itemName, indexName, keyName } = this.$src;
4
4
  if (itemName) $scope[itemName] = item;
5
5
  else $scope.$item = item;
6
+ if (target && target.$scope) {
7
+ if (indexName) $scope[indexName] = target.$scope[indexName];
8
+ if (keyName) $scope[keyName] = target.$scope[keyName];
9
+ $scope.$index = target.$scope.$index;
10
+ $scope.$key = target.$scope.$key;
11
+ }
6
12
  return { $scope };
7
13
  }
@@ -202,6 +202,21 @@ var resizeView = function (event) {
202
202
  }
203
203
  grid.reshape();
204
204
  };
205
+ var clearResizer = function (grid) {
206
+ var target = grid.editting.target;
207
+ if (target) target.style.zIndex = null;
208
+ var { clientX, clientY } = grid.editting;
209
+ if (clientX) {
210
+ clientX[1].forEach(e => removeClass(e, 'border-right'));
211
+ clientX[2].forEach(e => removeClass(e, 'border-left'));
212
+ }
213
+ if (clientY) {
214
+ clientY[1].forEach(e => removeClass(e, "border-bottom"));
215
+ clientY[2].forEach(e => removeClass(e, "border-top"));
216
+ }
217
+ grid.editting = null;
218
+ };
219
+
205
220
  var resizer = function (event) {
206
221
  var grid = this;
207
222
  if (!grid.direction) return;
@@ -227,24 +242,7 @@ var resizer = function (event) {
227
242
  //右边
228
243
  generateResizeParameters.call(grid, "x", "left", "right", "width", area.right, event, 1, resize);
229
244
  }
230
- grid.editting = resize;
231
- var cancelup = onmouseup(window, function () {
232
- var target = grid.editting.target;
233
- if (target) target.style.zIndex = null;
234
- var { clientX, clientY } = resize;
235
- resize = null;
236
- if (clientX) {
237
- clientX[1].forEach(e => removeClass(e, 'border-right'));
238
- clientX[2].forEach(e => removeClass(e, 'border-left'));
239
- }
240
- if (clientY) {
241
- clientY[1].forEach(e => removeClass(e, "border-bottom"));
242
- clientY[2].forEach(e => removeClass(e, "border-top"));
243
- }
244
- grid.editting = null;
245
-
246
- cancelup();
247
- });
245
+ return grid.editting = resize;
248
246
  };
249
247
  var gridListener = function () {
250
248
  var grid = this;
@@ -261,7 +259,14 @@ var gridListener = function () {
261
259
  /**
262
260
  * 指针按下
263
261
  */
264
- var offmousedown = onmousedown(grid, resizer);
262
+ var offmousedown = onmousedown(grid, function (event) {
263
+ if (!resizer.call(this, event)) return;
264
+ var that = this;
265
+ var cancelup = onmouseup(window, function () {
266
+ clearResizer(that);
267
+ cancelup();
268
+ });
269
+ });
265
270
 
266
271
  var offremove = onremove(grid, function () {
267
272
  offremove();
@@ -359,6 +364,51 @@ var bindToOrderedSpliters = function (split_points, target, value, side) {
359
364
  return split_points;
360
365
  };
361
366
  var grid_prototype = {
367
+ resizeCell(cell, side, delta) {
368
+ side = side.toLowerCase();
369
+ var { left, top, right, bottom } = getScreenPosition(cell);
370
+ var clientX, clientY, targetX, targetY;
371
+ var direction;
372
+ switch (side.toLowerCase()[0]) {
373
+ case "l":
374
+ case "w":
375
+ direction = 'w';
376
+ clientX = left;
377
+ targetX = left + delta;
378
+ targetY = clientY = top + bottom >> 1;
379
+ break;
380
+ case "t":
381
+ case "n":
382
+ direction = 'n';
383
+ clientY = top;
384
+ targetY = top + delta;
385
+ targetX = clientX = left + right >> 1;
386
+ break;
387
+ case "r":
388
+ case "e":
389
+ direction = 'e';
390
+ clientX = right;
391
+ targetX = right + delta;
392
+ targetY = clientY = left + right >> 1;
393
+
394
+ break;
395
+ case "b":
396
+ case "s":
397
+ direction = 's';
398
+ clientX = bottom;
399
+ targetY = bottom + delta;
400
+ targetX = clientX = left + right >> 1;
401
+ break;
402
+ default:
403
+ throw new Error("参数不支持", side);
404
+ }
405
+ this.direction = direction;
406
+ var e = resizer.call(this, { clientX, clientY, target: cell });
407
+ if (!e) return;
408
+ resizeView.call(this, { clientX: targetX, clientY: targetY, target: cell });
409
+ clearResizer(this);
410
+ this.direction = '';
411
+ },
362
412
  setGrid(breakpoints, bounds) {
363
413
  var grid = this;
364
414
  if (!bounds) {
@@ -351,7 +351,7 @@ function ylist(container, generator, $Y) {
351
351
  }
352
352
  }
353
353
  };
354
-
354
+ list.getLastVisibleElement = getLastVisibleElement;
355
355
  list.stopY = function (count, spd) {
356
356
  var firstElement = getFirstVisibleElement();
357
357
  var lastElement = getLastVisibleElement();