@yanqirenshi/d3.deployment 0.6.0 → 0.8.0
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/dist/js/Rectum.js +42 -3
- package/package.json +1 -1
package/dist/js/Rectum.js
CHANGED
|
@@ -52,13 +52,28 @@ var Rectum = exports["default"] = /*#__PURE__*/function (_Colon) {
|
|
|
52
52
|
EDGE: new _Edges["default"](),
|
|
53
53
|
PORT: new _Ports["default"]()
|
|
54
54
|
};
|
|
55
|
+
|
|
56
|
+
// コールバック(任意)。描画は行わず通知のみ
|
|
57
|
+
// (インスペクタ等の外部ツールはこの通知に接続する)
|
|
58
|
+
_this._callbacks = _this.initCallbacks(params);
|
|
55
59
|
return _this;
|
|
56
60
|
}
|
|
57
|
-
/* ******** */
|
|
58
|
-
/* Getter */
|
|
59
|
-
/* ******** */
|
|
60
61
|
_inherits(Rectum, _Colon);
|
|
61
62
|
return _createClass(Rectum, [{
|
|
63
|
+
key: "initCallbacks",
|
|
64
|
+
value: function initCallbacks(params) {
|
|
65
|
+
var callbacks = params && params.callbacks || {};
|
|
66
|
+
var node = callbacks.node || {};
|
|
67
|
+
return {
|
|
68
|
+
node: {
|
|
69
|
+
click: node.click || null
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
/* ******** */
|
|
74
|
+
/* Getter */
|
|
75
|
+
/* ******** */
|
|
76
|
+
}, {
|
|
62
77
|
key: "node",
|
|
63
78
|
value: function node() {
|
|
64
79
|
return this._node;
|
|
@@ -403,6 +418,30 @@ var Rectum = exports["default"] = /*#__PURE__*/function (_Colon) {
|
|
|
403
418
|
_iterator8.f();
|
|
404
419
|
}
|
|
405
420
|
this.attachNodeDrag(place, data);
|
|
421
|
+
this.attachNodeClick(place);
|
|
422
|
+
}
|
|
423
|
+
/**
|
|
424
|
+
* ノードのクリック通知(callbacks.node.click)。
|
|
425
|
+
* d3.drag は移動を伴ったクリックを抑止するため、静止クリックだけが届く。
|
|
426
|
+
*
|
|
427
|
+
* コールバックには (core, node) を渡す。
|
|
428
|
+
* core: 入力データそのまま(ライブラリが解釈しないフィールドも落ちない)
|
|
429
|
+
* node: 正規化済みデータ(位置・サイズ等が必要な場合に使う)
|
|
430
|
+
*
|
|
431
|
+
* リンク(a.link-alt)のクリックはリンク側を優先し、コールバックは発火しない。
|
|
432
|
+
*/
|
|
433
|
+
}, {
|
|
434
|
+
key: "attachNodeClick",
|
|
435
|
+
value: function attachNodeClick(place) {
|
|
436
|
+
var callback = this._callbacks.node.click;
|
|
437
|
+
if (!callback) return;
|
|
438
|
+
place.selectAll('g.node, g.component').on('click', function (event, d) {
|
|
439
|
+
var target = event.target;
|
|
440
|
+
if (target && target.closest && target.closest('a.link-alt')) return; // リンク優先(既存の <a target="_blank"> と干渉しない)
|
|
441
|
+
|
|
442
|
+
event.stopPropagation();
|
|
443
|
+
callback(d._core, d);
|
|
444
|
+
});
|
|
406
445
|
}
|
|
407
446
|
///// ////////////////////////////////////////////////////////////////
|
|
408
447
|
///// Drag (grab + drag でノードを移動)
|