sanity-plugin-graph-view 1.0.4 → 1.0.8

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.
@@ -1,86 +1,55 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
-
4
+ var _typeof3 = require("@babel/runtime/helpers/typeof");
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.GraphView = GraphView;
11
-
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
-
14
9
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
15
-
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
16
11
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
-
18
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
19
-
20
13
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
21
-
22
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
15
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
25
-
26
16
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
27
-
28
17
  var _userColor = require("@sanity/base/user-color");
29
-
30
18
  var _color = require("@sanity/color");
31
-
32
19
  var _polished = require("polished");
33
-
34
20
  var _deepEqual = _interopRequireDefault(require("deep-equal"));
35
-
36
21
  var _react = _interopRequireWildcard(require("react"));
37
-
38
22
  var _client = _interopRequireDefault(require("part:@sanity/base/client"));
39
-
40
23
  var _reactForceGraph = require("react-force-graph");
41
-
42
24
  var _uuid = require("uuid");
43
-
44
25
  var _bezierEasing = _interopRequireDefault(require("bezier-easing"));
45
-
46
26
  var _router = require("part:@sanity/base/router");
47
-
48
27
  var _configGraphView = _interopRequireDefault(require("config:graph-view"));
49
-
50
28
  var _hooks = require("./hooks");
51
-
52
29
  var _GraphView = _interopRequireDefault(require("./GraphView.css"));
53
-
54
30
  var _utils = require("./utils");
55
-
56
- function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
57
-
31
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
32
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
58
34
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
59
-
60
35
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
61
-
62
- var DEFAULT_QUERY = "\n *[\n !(_id in path(\"_.*\")) &&\n !(_type match \"system.*\") &&\n _type != \"sanity.imageAsset\"\n ]\n";
36
+ var DEFAULT_QUERY = "\n *[\n !(_id in path(\"_.*\")) &&\n !(_type match \"system.*\") &&\n !(_type match \"sanity.*\")\n ]\n";
63
37
  var fadeEasing = (0, _bezierEasing["default"])(0, 0.9, 1, 1);
64
38
  var softEasing = (0, _bezierEasing["default"])(0.25, 0.1, 0.0, 1.0);
65
39
  var idleTimeout = 10000;
66
40
  var imageSize = 40;
67
-
68
41
  function getTopDocTypes(counts) {
69
42
  return (0, _utils.sortBy)(Object.keys(counts), function (docType) {
70
43
  return counts[docType] || 0;
71
44
  }).reverse().slice(0, 10);
72
45
  }
73
-
74
46
  function formatDocType(docType) {
75
47
  return (docType.substring(0, 1).toUpperCase() + docType.substring(1)).replace(/\./g, ' ').replace(/[A-Z]/g, ' $&').trim();
76
48
  }
77
-
78
49
  function getDocTypeCounts(docs) {
79
50
  var types = {};
80
-
81
51
  var _iterator = _createForOfIteratorHelper(docs),
82
- _step;
83
-
52
+ _step;
84
53
  try {
85
54
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
86
55
  var doc = _step.value;
@@ -91,38 +60,30 @@ function getDocTypeCounts(docs) {
91
60
  } finally {
92
61
  _iterator.f();
93
62
  }
94
-
95
63
  return types;
96
64
  }
97
-
98
65
  function labelFor(doc) {
99
66
  return "".concat(doc.title || doc.name || doc._id).trim();
100
67
  }
101
-
102
68
  function valueFor(doc, maxSize) {
103
69
  return 5 + 100 * ((0, _utils.sizeOf)(doc) / maxSize);
104
70
  }
105
-
106
71
  function findRefs(obj) {
107
72
  var dest = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
108
-
109
73
  if (obj != null) {
110
74
  if ((0, _typeof2["default"])(obj) === 'object') {
111
75
  for (var _i = 0, _Object$entries = Object.entries(obj); _i < _Object$entries.length; _i++) {
112
76
  var _Object$entries$_i = (0, _slicedToArray2["default"])(_Object$entries[_i], 2),
113
- k = _Object$entries$_i[0],
114
- v = _Object$entries$_i[1];
115
-
77
+ k = _Object$entries$_i[0],
78
+ v = _Object$entries$_i[1];
116
79
  if (k === '_ref' && typeof v === 'string' && v.length > 0) {
117
80
  dest.push(stripDraftId(v));
118
81
  }
119
-
120
82
  findRefs(v, dest);
121
83
  }
122
84
  } else if (Array.isArray(obj)) {
123
85
  var _iterator2 = _createForOfIteratorHelper(obj),
124
- _step2;
125
-
86
+ _step2;
126
87
  try {
127
88
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
128
89
  var _v = _step2.value;
@@ -135,24 +96,18 @@ function findRefs(obj) {
135
96
  }
136
97
  }
137
98
  }
138
-
139
99
  return dest;
140
100
  }
141
-
142
101
  function stripDraftId(id) {
143
102
  return id.replace(/^drafts\./, '');
144
103
  }
145
-
146
104
  function deduplicateDrafts(docs) {
147
105
  var deduped = {};
148
-
149
106
  var _iterator3 = _createForOfIteratorHelper(docs),
150
- _step3;
151
-
107
+ _step3;
152
108
  try {
153
109
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
154
110
  var doc = _step3.value;
155
-
156
111
  if (!/^drafts\./.test(doc._id)) {
157
112
  deduped[doc._id] = doc;
158
113
  }
@@ -162,14 +117,11 @@ function deduplicateDrafts(docs) {
162
117
  } finally {
163
118
  _iterator3.f();
164
119
  }
165
-
166
120
  var _iterator4 = _createForOfIteratorHelper(docs),
167
- _step4;
168
-
121
+ _step4;
169
122
  try {
170
123
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
171
124
  var _doc = _step4.value;
172
-
173
125
  if (/^drafts\./.test(_doc._id)) {
174
126
  var id = stripDraftId(_doc._id);
175
127
  deduped[id] = Object.assign(_doc, {
@@ -182,16 +134,13 @@ function deduplicateDrafts(docs) {
182
134
  } finally {
183
135
  _iterator4.f();
184
136
  }
185
-
186
137
  return Object.values(deduped);
187
138
  }
188
-
189
139
  var Users = /*#__PURE__*/function () {
190
140
  function Users() {
191
141
  (0, _classCallCheck2["default"])(this, Users);
192
142
  (0, _defineProperty2["default"])(this, "_users", []);
193
143
  }
194
-
195
144
  (0, _createClass2["default"])(Users, [{
196
145
  key: "getById",
197
146
  value: function () {
@@ -204,29 +153,21 @@ var Users = /*#__PURE__*/function () {
204
153
  user = this._users.find(function (u) {
205
154
  return u._id === id;
206
155
  });
207
-
208
156
  if (user) {
209
157
  _context.next = 9;
210
158
  break;
211
159
  }
212
-
213
160
  _context.next = 4;
214
161
  return _client["default"].users.getById(id);
215
-
216
162
  case 4:
217
163
  user = _context.sent;
218
-
219
164
  this._users.push(user);
220
-
221
165
  _context.next = 8;
222
166
  return (0, _utils.loadImage)(user.imageUrl || 'https://raw.githubusercontent.com/sanity-io/sanity-plugin-graph-view/main/assets/head-silhouette.jpg', imageSize, imageSize);
223
-
224
167
  case 8:
225
168
  user.image = _context.sent;
226
-
227
169
  case 9:
228
170
  return _context.abrupt("return", user);
229
-
230
171
  case 10:
231
172
  case "end":
232
173
  return _context.stop();
@@ -234,34 +175,28 @@ var Users = /*#__PURE__*/function () {
234
175
  }
235
176
  }, _callee, this);
236
177
  }));
237
-
238
178
  function getById(_x) {
239
179
  return _getById.apply(this, arguments);
240
180
  }
241
-
242
181
  return getById;
243
182
  }()
244
183
  }]);
245
184
  return Users;
246
185
  }();
247
-
248
- var Session = function Session() {
186
+ var Session = /*#__PURE__*/(0, _createClass2["default"])(function Session() {
249
187
  (0, _classCallCheck2["default"])(this, Session);
250
188
  (0, _defineProperty2["default"])(this, "user", null);
251
189
  (0, _defineProperty2["default"])(this, "doc", null);
252
190
  (0, _defineProperty2["default"])(this, "lastActive", null);
253
- };
254
-
191
+ });
255
192
  var GraphData = /*#__PURE__*/function () {
256
193
  function GraphData() {
257
194
  var docs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
258
195
  (0, _classCallCheck2["default"])(this, GraphData);
259
196
  (0, _defineProperty2["default"])(this, "sessions", []);
260
197
  var docsById = {};
261
-
262
198
  var _iterator5 = _createForOfIteratorHelper(docs),
263
- _step5;
264
-
199
+ _step5;
265
200
  try {
266
201
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
267
202
  var doc = _step5.value;
@@ -272,7 +207,6 @@ var GraphData = /*#__PURE__*/function () {
272
207
  } finally {
273
208
  _iterator5.f();
274
209
  }
275
-
276
210
  this.data = {
277
211
  nodes: docs.map(function (d) {
278
212
  return Object.assign({
@@ -293,14 +227,12 @@ var GraphData = /*#__PURE__*/function () {
293
227
  })
294
228
  };
295
229
  }
296
-
297
230
  (0, _createClass2["default"])(GraphData, [{
298
231
  key: "setSession",
299
232
  value: function setSession(user, docNode) {
300
233
  var session = this.sessions.find(function (s) {
301
234
  return s.user.id === user.id && s.doc._id === docNode.doc._id;
302
235
  });
303
-
304
236
  if (!session) {
305
237
  session = new Session();
306
238
  session.id = (0, _uuid.v4)();
@@ -310,7 +242,6 @@ var GraphData = /*#__PURE__*/function () {
310
242
  session.angle = Math.random() * 2 * Math.PI;
311
243
  this.sessions.push(session);
312
244
  }
313
-
314
245
  session.lastActive = Date.now();
315
246
  }
316
247
  }, {
@@ -318,7 +249,6 @@ var GraphData = /*#__PURE__*/function () {
318
249
  value: function reapSessions() {
319
250
  for (var i = 0; i < this.sessions.length; i++) {
320
251
  var session = this.sessions[i];
321
-
322
252
  if (Date.now() - session.lastActive > idleTimeout) {
323
253
  this.sessions = [].concat((0, _toConsumableArray2["default"])(this.sessions.slice(0, i)), (0, _toConsumableArray2["default"])(this.sessions.slice(i + 1)));
324
254
  i--;
@@ -339,40 +269,32 @@ var GraphData = /*#__PURE__*/function () {
339
269
  }]);
340
270
  return GraphData;
341
271
  }();
342
-
343
272
  var users = new Users();
344
-
345
273
  function GraphView() {
346
274
  var query = _configGraphView["default"].query || DEFAULT_QUERY;
347
275
  var userColorManager = (0, _userColor.useUserColorManager)();
348
-
349
276
  var _useState = (0, _react.useState)(0),
350
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
351
- maxSize = _useState2[0],
352
- setMaxSize = _useState2[1];
353
-
277
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
278
+ maxSize = _useState2[0],
279
+ setMaxSize = _useState2[1];
354
280
  var _useState3 = (0, _react.useState)(null),
355
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
356
- hoverNode = _useState4[0],
357
- setHoverNode = _useState4[1];
358
-
281
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
282
+ hoverNode = _useState4[0],
283
+ setHoverNode = _useState4[1];
359
284
  var _useState5 = (0, _react.useState)([]),
360
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
361
- documents = _useState6[0],
362
- setDocuments = _useState6[1];
363
-
285
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
286
+ documents = _useState6[0],
287
+ setDocuments = _useState6[1];
364
288
  var _useState7 = (0, _react.useState)([]),
365
- _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
366
- docTypes = _useState8[0],
367
- setDocTypes = _useState8[1];
368
-
289
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
290
+ docTypes = _useState8[0],
291
+ setDocTypes = _useState8[1];
369
292
  var _useState9 = (0, _react.useState)(function () {
370
- return new GraphData();
371
- }),
372
- _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
373
- graph = _useState10[0],
374
- setGraph = _useState10[1];
375
-
293
+ return new GraphData();
294
+ }),
295
+ _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
296
+ graph = _useState10[0],
297
+ setGraph = _useState10[1];
376
298
  var router = (0, _router.useRouter)();
377
299
  var fetchCallback = (0, _react.useCallback)(function (docs) {
378
300
  docs = deduplicateDrafts(docs);
@@ -383,58 +305,50 @@ function GraphView() {
383
305
  }, []);
384
306
  var listenCallback = (0, _react.useCallback)( /*#__PURE__*/function () {
385
307
  var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(update) {
386
- var doc, _docsById, _iterator6, _step6, _doc2, oldDoc, docs, idx, newGraph, oldRefs, newRefs, graphChanged, docNode, nodeIdx, user, docId, _docs, _newGraph;
387
-
308
+ var doc, docsById, _iterator6, _step6, _doc2, oldDoc, docs, idx, newGraph, oldRefs, newRefs, graphChanged, docNode, nodeIdx, user, docId, _docs, _newGraph;
388
309
  return _regenerator["default"].wrap(function _callee2$(_context2) {
389
310
  while (1) {
390
311
  switch (_context2.prev = _context2.next) {
391
312
  case 0:
392
313
  doc = update.result;
393
-
394
314
  if (!doc) {
395
315
  _context2.next = 26;
396
316
  break;
397
317
  }
398
-
399
318
  doc._id = stripDraftId(doc._id);
400
- _docsById = {};
319
+ docsById = {};
401
320
  _iterator6 = _createForOfIteratorHelper(documents);
402
-
403
321
  try {
404
322
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
405
323
  _doc2 = _step6.value;
406
- _docsById[_doc2._id] = _doc2;
324
+ docsById[_doc2._id] = _doc2;
407
325
  }
408
326
  } catch (err) {
409
327
  _iterator6.e(err);
410
328
  } finally {
411
329
  _iterator6.f();
412
330
  }
413
-
414
331
  docs = (0, _toConsumableArray2["default"])(documents);
415
332
  idx = documents.findIndex(function (d) {
416
333
  return d._id === doc._id;
417
334
  });
418
-
419
335
  if (idx >= 0) {
420
336
  oldDoc = docs[idx];
421
337
  docs[idx] = doc;
422
338
  } else {
423
339
  docs.push(doc);
424
340
  }
425
-
426
341
  setDocuments(docs);
427
342
  setDocTypes(getDocTypeCounts(docs));
428
343
  setMaxSize(Math.max.apply(Math, (0, _toConsumableArray2["default"])(docs.map(_utils.sizeOf))));
429
344
  newGraph = graph.clone();
430
345
  oldRefs = findRefs(oldDoc || {}).filter(function (id) {
431
- return id === doc._id || _docsById[id] != null;
346
+ return id === doc._id || docsById[id] != null;
432
347
  });
433
348
  newRefs = findRefs(doc).filter(function (id) {
434
- return id === doc._id || _docsById[id] != null;
349
+ return id === doc._id || docsById[id] != null;
435
350
  });
436
351
  graphChanged = !(0, _deepEqual["default"])(oldRefs, newRefs);
437
-
438
352
  if (graphChanged) {
439
353
  newGraph.data.links = newGraph.data.links.filter(function (l) {
440
354
  return l.source.id !== doc._id;
@@ -445,11 +359,9 @@ function GraphView() {
445
359
  };
446
360
  }));
447
361
  }
448
-
449
362
  nodeIdx = graph.data.nodes.findIndex(function (n) {
450
363
  return n.doc && n.doc._id === doc._id;
451
364
  });
452
-
453
365
  if (nodeIdx >= 0) {
454
366
  docNode = graph.data.nodes[nodeIdx];
455
367
  docNode.doc = doc;
@@ -462,20 +374,16 @@ function GraphView() {
462
374
  newGraph.data.nodes.push(docNode);
463
375
  graphChanged = true;
464
376
  }
465
-
466
377
  if (graphChanged) {
467
378
  setGraph(newGraph);
468
379
  }
469
-
470
380
  _context2.next = 22;
471
381
  return users.getById(update.identity);
472
-
473
382
  case 22:
474
383
  user = _context2.sent;
475
384
  graph.setSession(user, docNode);
476
385
  _context2.next = 27;
477
386
  break;
478
-
479
387
  case 26:
480
388
  if (update.transition === 'disappear') {
481
389
  docId = stripDraftId(update.documentId);
@@ -494,7 +402,6 @@ function GraphView() {
494
402
  });
495
403
  setGraph(_newGraph);
496
404
  }
497
-
498
405
  case 27:
499
406
  case "end":
500
407
  return _context2.stop();
@@ -502,7 +409,6 @@ function GraphView() {
502
409
  }
503
410
  }, _callee2);
504
411
  }));
505
-
506
412
  return function (_x2) {
507
413
  return _ref.apply(this, arguments);
508
414
  };
@@ -564,15 +470,13 @@ function GraphView() {
564
470
  },
565
471
  onRenderFramePost: function onRenderFramePost(ctx, globalScale) {
566
472
  var _iterator7 = _createForOfIteratorHelper(graph.sessions),
567
- _step7;
568
-
473
+ _step7;
569
474
  try {
570
475
  var _loop = function _loop() {
571
476
  var session = _step7.value;
572
477
  var node = graph.data.nodes.find(function (n) {
573
478
  return n.doc && n.doc._id === session.doc._id;
574
479
  });
575
-
576
480
  if (node) {
577
481
  var idleFactorRange = idleTimeout;
578
482
  var angle = session.angle;
@@ -585,7 +489,6 @@ function GraphView() {
585
489
  var x = node.x + Math.sin(angle) * distance / globalScale;
586
490
  var y = node.y + Math.cos(angle) * distance / globalScale;
587
491
  ctx.save();
588
-
589
492
  try {
590
493
  ctx.globalAlpha = fadeEasing(1 - Math.min(idleFactorRange, Date.now() - session.lastActive) / idleFactorRange);
591
494
  ctx.font = "bold ".concat(Math.round(12 / globalScale), "px sans-serif");
@@ -600,21 +503,17 @@ function GraphView() {
600
503
  ctx.lineWidth = 2 / globalScale;
601
504
  ctx.arc(node.x, node.y, radius, 0, 2 * Math.PI, false);
602
505
  ctx.stroke();
603
-
604
506
  if (image) {
605
507
  ctx.save();
606
-
607
508
  try {
608
509
  var dur = 700;
609
510
  var f = softEasing(Math.max(0, (dur - (Date.now() - session.startTime)) / dur));
610
-
611
511
  if (f > 0) {
612
512
  ctx.beginPath();
613
513
  ctx.fillStyle = (0, _polished.rgba)(userColor, f);
614
514
  ctx.arc(x, y, (imgW / 2 + 10) / globalScale, 0, 2 * Math.PI, false);
615
515
  ctx.fill();
616
516
  }
617
-
618
517
  ctx.beginPath();
619
518
  ctx.fillStyle = (0, _polished.rgba)(_color.color.white.hex, 1.0);
620
519
  ctx.arc(x, y, imgW / globalScale / 2, 0, 2 * Math.PI, false);
@@ -630,7 +529,6 @@ function GraphView() {
630
529
  ctx.restore();
631
530
  }
632
531
  }
633
-
634
532
  ctx.beginPath();
635
533
  ctx.strokeStyle = (0, _polished.rgba)(_color.color.black.hex, 1);
636
534
  ctx.lineWidth = 0.5 / globalScale;
@@ -647,7 +545,6 @@ function GraphView() {
647
545
  }
648
546
  }
649
547
  };
650
-
651
548
  for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
652
549
  _loop();
653
550
  }
@@ -671,15 +568,12 @@ function GraphView() {
671
568
  ctx.arc(node.x, node.y, radius, 0, 2 * Math.PI, false);
672
569
  ctx.stroke();
673
570
  ctx.fill();
674
-
675
571
  if (radius * globalScale > 10) {
676
572
  ctx.font = "".concat(fontSize, "px sans-serif");
677
573
  var w = radius * 2 + 30 / globalScale;
678
-
679
574
  for (var len = 50; len >= 5; len /= 1.2) {
680
575
  var label = (0, _utils.truncate)(labelFor(node.doc), Math.round(len));
681
576
  var textMetrics = ctx.measureText(label);
682
-
683
577
  if (textMetrics.width < w) {
684
578
  // ctx.fillStyle = rgba(color.white.hex, 1.0)
685
579
  ctx.textAlign = 'center';
@@ -705,15 +599,12 @@ function GraphView() {
705
599
  }
706
600
  }));
707
601
  }
708
-
709
602
  var colorCache = {};
710
603
  var typeColorNum = 0;
711
-
712
604
  function getDocTypeColor(docType) {
713
605
  if (colorCache[docType]) {
714
606
  return colorCache[docType];
715
607
  }
716
-
717
608
  var hue = _color.COLOR_HUES[typeColorNum % _color.COLOR_HUES.length];
718
609
  typeColorNum += 1;
719
610
  colorCache[docType] = {
@@ -1,14 +1,11 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.GraphViewIcon = void 0;
9
-
10
8
  var _react = _interopRequireDefault(require("react"));
11
-
12
9
  /**
13
10
  * Couple of things to note:
14
11
  * - width and height is set to 1em
@@ -28,5 +25,4 @@ var GraphViewIcon = function GraphViewIcon() {
28
25
  d: "M18.022 38.676v2.813h-1.21q-4.864 0-6.525-1.447-1.64-1.445-1.64-5.762v-4.666q0-2.95-1.055-4.083-1.055-1.13-3.828-1.13h-1.19v-2.794h1.19q2.793 0 3.828-1.114 1.055-1.132 1.055-4.043V11.76q0-4.316 1.64-5.742 1.66-1.446 6.524-1.446h1.212v2.793h-1.328q-2.754 0-3.594.86-.84.86-.84 3.613v4.844q0 3.066-.898 4.453-.88 1.387-3.028 1.875 2.168.527 3.047 1.914.88 1.387.88 4.434v4.843q0 2.754.84 3.614.84.86 3.594.86h1.328zM28.04 38.676h1.368q2.735 0 3.555-.84.84-.84.84-3.633V29.36q0-3.047.88-4.434.878-1.387 3.046-1.914-2.17-.488-3.048-1.875-.88-1.387-.88-4.453V11.84q0-2.773-.84-3.613-.82-.86-3.554-.86H28.04V4.574h1.232q4.863 0 6.484 1.446 1.64 1.426 1.64 5.742v4.687q0 2.91 1.055 4.042 1.056 1.114 3.83 1.114h1.21V24.4h-1.21q-2.774 0-3.83 1.13-1.053 1.134-1.053 4.084v4.667q0 4.318-1.64 5.763-1.622 1.446-6.485 1.446h-1.23v-2.814z"
29
26
  }));
30
27
  };
31
-
32
28
  exports.GraphViewIcon = GraphViewIcon;
package/lib/tool/hooks.js CHANGED
@@ -1,29 +1,23 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports.useListen = useListen;
9
7
  exports.useFetchDocuments = useFetchDocuments;
10
-
8
+ exports.useListen = useListen;
11
9
  var _react = require("react");
12
-
13
10
  var _client = _interopRequireDefault(require("part:@sanity/base/client"));
14
-
15
11
  function useListen(query, params, options, onUpdate, dependencies) {
16
12
  (0, _react.useEffect)(function () {
17
13
  var subscription = _client["default"].listen(query, params, options).subscribe(function (update) {
18
14
  onUpdate(update);
19
15
  });
20
-
21
16
  return function () {
22
17
  subscription.unsubscribe();
23
18
  };
24
19
  }, dependencies);
25
20
  }
26
-
27
21
  function useFetchDocuments(query, onFetch, dependencies) {
28
22
  (0, _react.useEffect)(function () {
29
23
  _client["default"].fetch(query).then(function (result) {
package/lib/tool/index.js CHANGED
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports["default"] = void 0;
7
-
8
7
  var _router = require("part:@sanity/base/router");
9
-
10
8
  var _GraphView = require("./GraphView");
11
-
12
9
  var _GraphViewIcon = require("./GraphViewIcon");
13
-
14
10
  var _default = {
15
11
  title: 'Graph',
16
12
  name: 'graph-your-content',