@difizen/libro-core 0.3.13 → 0.3.14
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/es/cell/libro-cell-view.js +6 -6
- package/es/cell/libro-edit-cell-view.d.ts.map +1 -1
- package/es/cell/libro-edit-cell-view.js +19 -0
- package/es/command/libro-command-contribution.js +3 -3
- package/es/libro-protocol.d.ts +1 -2
- package/es/libro-protocol.d.ts.map +1 -1
- package/es/libro-service.d.ts.map +1 -1
- package/es/libro-service.js +7 -8
- package/es/libro-view-tracker.d.ts +21 -5
- package/es/libro-view-tracker.d.ts.map +1 -1
- package/es/libro-view-tracker.js +36 -9
- package/es/libro-view.d.ts +1 -1
- package/es/libro-view.d.ts.map +1 -1
- package/es/libro-view.js +20 -18
- package/es/utils/index.d.ts +13 -0
- package/es/utils/index.d.ts.map +1 -1
- package/es/utils/index.js +125 -1
- package/package.json +5 -5
- package/src/cell/libro-cell-view.tsx +6 -6
- package/src/cell/libro-edit-cell-view.tsx +24 -0
- package/src/command/libro-command-contribution.ts +3 -3
- package/src/libro-protocol.ts +1 -2
- package/src/libro-service.ts +3 -4
- package/src/libro-view-tracker.ts +37 -10
- package/src/libro-view.tsx +23 -19
- package/src/utils/index.ts +142 -0
|
@@ -100,11 +100,11 @@ export var LibroCellView = (_dec = view('libro-cell-view'), _dec2 = prop(), _dec
|
|
|
100
100
|
value: function onViewMount() {
|
|
101
101
|
var id = this.options.id + this.parent.id + 'add';
|
|
102
102
|
if (this.cellService.libroViewTracker.isEnabledSpmReporter && this.options.id && this.cellService.libroViewTracker.hasTracker(id)) {
|
|
103
|
-
var cellTracker = this.cellService.libroViewTracker.
|
|
103
|
+
var cellTracker = this.cellService.libroViewTracker.getOrCreateTrackers({
|
|
104
104
|
id: id
|
|
105
105
|
});
|
|
106
|
-
cellTracker
|
|
107
|
-
cellTracker
|
|
106
|
+
cellTracker['endTime'] = Date.now();
|
|
107
|
+
cellTracker['extra'].cellType = this.model.type;
|
|
108
108
|
this.cellService.libroViewTracker.tracker(cellTracker);
|
|
109
109
|
}
|
|
110
110
|
}
|
|
@@ -113,11 +113,11 @@ export var LibroCellView = (_dec = view('libro-cell-view'), _dec2 = prop(), _dec
|
|
|
113
113
|
value: function onViewUnmount() {
|
|
114
114
|
var id = this.model.id + this.parent.id + 'delete';
|
|
115
115
|
if (this.cellService.libroViewTracker.isEnabledSpmReporter && this.cellService.libroViewTracker.hasTracker(id)) {
|
|
116
|
-
var cellTracker = this.cellService.libroViewTracker.
|
|
116
|
+
var cellTracker = this.cellService.libroViewTracker.getOrCreateTrackers({
|
|
117
117
|
id: id
|
|
118
118
|
});
|
|
119
|
-
cellTracker
|
|
120
|
-
cellTracker
|
|
119
|
+
cellTracker['endTime'] = Date.now();
|
|
120
|
+
cellTracker['extra'].cellType = this.model.type;
|
|
121
121
|
this.cellService.libroViewTracker.tracker(cellTracker);
|
|
122
122
|
}
|
|
123
123
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libro-edit-cell-view.d.ts","sourceRoot":"","sources":["../../src/cell/libro-edit-cell-view.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,OAAO,EACR,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAEL,oBAAoB,EAOrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,WAAW,cAAe,SAAQ,QAAQ;IAC9C,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAE5B,IAAI,EAAE,MAAM,IAAI,CAAC;IAEjB,IAAI,EAAE,MAAM,IAAI,CAAC;IAEjB,YAAY,EAAE,MAAM,SAAS,CAAC;CAC/B;AAED,eAAO,MAAM,cAAc;cACf,OAAO,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS;CAWvC,CAAC;AAEF;;;GAGG;AACH,8BAAsB,mBACpB,SAAQ,aACR,YAAW,cAAc;IAEzB,SAAS,CAAC,iBAAiB,uBAA8B;IAEzD,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAEH,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAClD,iBAAiB,EAAE,iBAAiB,CAAC;IAGhE,UAAU,CAAC,EAAE,cAAc,CAAC;gBAGN,OAAO,EAAE,eAAe,EACvB,WAAW,EAAE,WAAW;IAK/C,SAAS,CAAC,eAAe,IAAI,qBAAqB;cAalC,gBAAgB;IAoB1B,YAAY;
|
|
1
|
+
{"version":3,"file":"libro-edit-cell-view.d.ts","sourceRoot":"","sources":["../../src/cell/libro-edit-cell-view.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,OAAO,EACR,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EAEL,oBAAoB,EAOrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,WAAW,cAAe,SAAQ,QAAQ;IAC9C,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAE5B,IAAI,EAAE,MAAM,IAAI,CAAC;IAEjB,IAAI,EAAE,MAAM,IAAI,CAAC;IAEjB,YAAY,EAAE,MAAM,SAAS,CAAC;CAC/B;AAED,eAAO,MAAM,cAAc;cACf,OAAO,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS;CAWvC,CAAC;AAEF;;;GAGG;AACH,8BAAsB,mBACpB,SAAQ,aACR,YAAW,cAAc;IAEzB,SAAS,CAAC,iBAAiB,uBAA8B;IAEzD,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAEH,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAClD,iBAAiB,EAAE,iBAAiB,CAAC;IAGhE,UAAU,CAAC,EAAE,cAAc,CAAC;gBAGN,OAAO,EAAE,eAAe,EACvB,WAAW,EAAE,WAAW;IAK/C,SAAS,CAAC,eAAe,IAAI,qBAAqB;cAalC,gBAAgB;IAoB1B,YAAY;IAmDlB,YAAY,EAAE,YAAY,CAA0B;IAEpD,YAAY,uDAKV;IAEO,WAAW;IASX,qBAAqB,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;IAQ/D,SAAS,CAAC,WAAW;IAgBZ,KAAK,WAAY,OAAO,UAS/B;IAEO,IAAI,aAGX;IAEF,IAAI,UAAU,WAEb;IAED,IAAI,IAAI,IAAI;IAIZ,IAAI,IAAI,IAAI;CAGb"}
|
|
@@ -164,6 +164,25 @@ export var LibroEditorCellView = (_dec = prop(), _dec2 = inject(LibroContextKey)
|
|
|
164
164
|
if (e.status === 'ready') {
|
|
165
165
|
_this3.editor = _this3.editorView.editor;
|
|
166
166
|
_this3.afterEditorReady();
|
|
167
|
+
if (_this3.parent.libroViewTracker.isEnabledSpmReporter) {
|
|
168
|
+
if (_this3.parent.libroViewTracker.hasTracker(_this3.parent.model.options['modelId'] || _this3.parent.model.options['id'])) {
|
|
169
|
+
var libroTracker = _this3.parent.libroViewTracker.getOrCreateTrackers({
|
|
170
|
+
id: _this3.parent.model.options['modelId'] || _this3.parent.model.options['id']
|
|
171
|
+
});
|
|
172
|
+
libroTracker['endTime'] = Date.now();
|
|
173
|
+
libroTracker['extra'].cellsCount = _this3.parent.model.cells.length;
|
|
174
|
+
_this3.parent.libroViewTracker.tracker(libroTracker);
|
|
175
|
+
}
|
|
176
|
+
var id = _this3.options.id + _this3.parent.id + 'add';
|
|
177
|
+
if (_this3.options.id && _this3.parent.libroViewTracker.hasTracker(id)) {
|
|
178
|
+
var cellTracker = _this3.parent.libroViewTracker.getOrCreateTrackers({
|
|
179
|
+
id: id
|
|
180
|
+
});
|
|
181
|
+
cellTracker['endTime'] = Date.now();
|
|
182
|
+
cellTracker['extra'].cellType = _this3.model.type;
|
|
183
|
+
_this3.parent.libroViewTracker.tracker(cellTracker);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
167
186
|
} else if (e.status === 'disposed') {
|
|
168
187
|
_this3.toDisposeOnEditor.dispose();
|
|
169
188
|
}
|
|
@@ -400,11 +400,11 @@ export var LibroCommandContribution = (_dec = singleton({
|
|
|
400
400
|
libro.addCell(newCell, insertIndex);
|
|
401
401
|
if (_this.libroViewTracker.isEnabledSpmReporter) {
|
|
402
402
|
id = newCell.id + libro.id;
|
|
403
|
-
libroTracker = _this.libroViewTracker.
|
|
403
|
+
libroTracker = _this.libroViewTracker.getOrCreateTrackers({
|
|
404
404
|
id: id
|
|
405
405
|
});
|
|
406
|
-
libroTracker
|
|
407
|
-
libroTracker
|
|
406
|
+
libroTracker['extra'].cellsCount = libro.model.cells.length;
|
|
407
|
+
libroTracker['extra'].cellOperation = 'add';
|
|
408
408
|
}
|
|
409
409
|
case 7:
|
|
410
410
|
case "end":
|
package/es/libro-protocol.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libro-protocol.d.ts","sourceRoot":"","sources":["../src/libro-protocol.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,KAAK,EACV,QAAQ,EACR,KAAK,EACL,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,eAAO,MAAM,gBAAgB;;;;CAI5B,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;CAM5B,CAAC;AACF,eAAO,MAAM,cAAc,eAA2B,CAAC;AACvD;;;GAGG;AACH,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC7C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,eAAO,MAAM,YAAY,eAAyB,CAAC;AACnD,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,cAAc,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,aAAa,CAAC;AAE7E,eAAO,MAAM,aAAa,eAA0B,CAAC;AAErD,oBAAY,YAAY;IACtB,SAAS,eAAe;IACxB,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,CAAC;AAEF,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB,
|
|
1
|
+
{"version":3,"file":"libro-protocol.d.ts","sourceRoot":"","sources":["../src/libro-protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libro-service.d.ts","sourceRoot":"","sources":["../src/libro-service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"libro-service.d.ts","sourceRoot":"","sources":["../src/libro-service.ts"],"names":[],"mappings":"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"}
|
package/es/libro-service.js
CHANGED
|
@@ -157,29 +157,28 @@ export var LibroService = (_dec = singleton({
|
|
|
157
157
|
key: "getOrCreateView",
|
|
158
158
|
value: function () {
|
|
159
159
|
var _getOrCreateView = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(options) {
|
|
160
|
-
var
|
|
160
|
+
var notebookViewPromise, notebookView;
|
|
161
161
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
162
162
|
while (1) switch (_context.prev = _context.next) {
|
|
163
163
|
case 0:
|
|
164
164
|
if (this.libroViewTracker.isEnabledSpmReporter) {
|
|
165
|
-
this.libroViewTracker.
|
|
166
|
-
id: options.modelId
|
|
165
|
+
this.libroViewTracker.getOrCreateTrackers({
|
|
166
|
+
id: options.modelId || options.id
|
|
167
167
|
});
|
|
168
168
|
}
|
|
169
|
-
model = this.getOrCreateModel(options);
|
|
170
169
|
notebookViewPromise = this.viewManager.getOrCreateView(notebookViewFactoryId, _objectSpread(_objectSpread({}, options || {}), {}, {
|
|
171
|
-
modelId:
|
|
170
|
+
modelId: options.modelId || options.id
|
|
172
171
|
}));
|
|
173
|
-
_context.next =
|
|
172
|
+
_context.next = 4;
|
|
174
173
|
return notebookViewPromise;
|
|
175
|
-
case
|
|
174
|
+
case 4:
|
|
176
175
|
notebookView = _context.sent;
|
|
177
176
|
if (!this.libroViewTracker.viewCache.has(notebookView.id)) {
|
|
178
177
|
this.watchNotebookView(notebookView);
|
|
179
178
|
}
|
|
180
179
|
this.libroViewTracker.viewCache.set(notebookView.id, notebookView);
|
|
181
180
|
return _context.abrupt("return", notebookViewPromise);
|
|
182
|
-
case
|
|
181
|
+
case 8:
|
|
183
182
|
case "end":
|
|
184
183
|
return _context.stop();
|
|
185
184
|
}
|
|
@@ -17,15 +17,31 @@ export declare class Tracker implements ITracker {
|
|
|
17
17
|
extra: any;
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
|
+
export declare class FpsTracker implements ITracker {
|
|
21
|
+
[key: string]: any;
|
|
22
|
+
extra?: any;
|
|
23
|
+
id: string;
|
|
24
|
+
avgFPS: number;
|
|
25
|
+
maxFrameTime: number;
|
|
26
|
+
totalDropped: number;
|
|
27
|
+
constructor(id?: string, extra?: any);
|
|
28
|
+
log(): {
|
|
29
|
+
id: string;
|
|
30
|
+
avgFPS: number;
|
|
31
|
+
maxFrameTime: number;
|
|
32
|
+
totalDropped: number;
|
|
33
|
+
extra: any;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
20
36
|
export declare class LibroViewTracker {
|
|
21
37
|
viewCache: Map<string, NotebookView>;
|
|
22
38
|
modelCache: Map<string, NotebookModel>;
|
|
23
|
-
|
|
39
|
+
trackers: Map<string, ITracker>;
|
|
24
40
|
isEnabledSpmReporter: boolean;
|
|
25
|
-
protected onTrackerEmitter: Emitter<
|
|
26
|
-
get onTracker(): import("@difizen/mana-app").Event<
|
|
27
|
-
|
|
28
|
-
tracker(tracker:
|
|
41
|
+
protected onTrackerEmitter: Emitter<Record<string, any>>;
|
|
42
|
+
get onTracker(): import("@difizen/mana-app").Event<Record<string, any>>;
|
|
43
|
+
getOrCreateTrackers(options: Options): ITracker | Tracker | FpsTracker;
|
|
44
|
+
tracker(tracker: ITracker): void;
|
|
29
45
|
hasTracker(id: string): boolean;
|
|
30
46
|
}
|
|
31
47
|
//# sourceMappingURL=libro-view-tracker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libro-view-tracker.d.ts","sourceRoot":"","sources":["../src/libro-view-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGvD,OAAO,KAAK,EACV,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,OAAO,EACR,MAAM,qBAAqB,CAAC;AAE7B,qBAAa,OAAQ,YAAW,QAAQ;IACtC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;gBAEC,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG;IAMpC,QAAQ;IAKR,WAAW;IAOX,GAAG;;;;;;;CAWJ;AAED,qBACa,gBAAgB;IAC3B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAa;IACjD,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAa;IACnD,
|
|
1
|
+
{"version":3,"file":"libro-view-tracker.d.ts","sourceRoot":"","sources":["../src/libro-view-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGvD,OAAO,KAAK,EACV,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,OAAO,EACR,MAAM,qBAAqB,CAAC;AAE7B,qBAAa,OAAQ,YAAW,QAAQ;IACtC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;gBAEC,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG;IAMpC,QAAQ;IAKR,WAAW;IAOX,GAAG;;;;;;;CAWJ;AAED,qBAAa,UAAW,YAAW,QAAQ;IACzC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;gBAET,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG;IAKpC,GAAG;;;;;;;CAUJ;AAED,qBACa,gBAAgB;IAC3B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAa;IACjD,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAa;IACnD,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAa;IAC5C,oBAAoB,EAAE,OAAO,CAAC;IAE9B,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAiB;IACzE,IAAI,SAAS,2DAEZ;IAED,mBAAmB,CAAC,OAAO,EAAE,OAAO;IAepC,OAAO,CAAC,OAAO,EAAE,QAAQ;IAMzB,UAAU,CAAC,EAAE,EAAE,MAAM;CAGtB"}
|
package/es/libro-view-tracker.js
CHANGED
|
@@ -48,12 +48,38 @@ export var Tracker = /*#__PURE__*/function () {
|
|
|
48
48
|
}]);
|
|
49
49
|
return Tracker;
|
|
50
50
|
}();
|
|
51
|
+
export var FpsTracker = /*#__PURE__*/function () {
|
|
52
|
+
function FpsTracker(id, extra) {
|
|
53
|
+
_classCallCheck(this, FpsTracker);
|
|
54
|
+
this.extra = void 0;
|
|
55
|
+
this.id = void 0;
|
|
56
|
+
this.avgFPS = void 0;
|
|
57
|
+
this.maxFrameTime = void 0;
|
|
58
|
+
this.totalDropped = void 0;
|
|
59
|
+
this.id = id || v4();
|
|
60
|
+
this.extra = extra || {};
|
|
61
|
+
}
|
|
62
|
+
_createClass(FpsTracker, [{
|
|
63
|
+
key: "log",
|
|
64
|
+
value: function log() {
|
|
65
|
+
var result = {
|
|
66
|
+
id: this.id,
|
|
67
|
+
avgFPS: this.avgFPS,
|
|
68
|
+
maxFrameTime: this.maxFrameTime,
|
|
69
|
+
totalDropped: this.totalDropped,
|
|
70
|
+
extra: this.extra
|
|
71
|
+
};
|
|
72
|
+
return result;
|
|
73
|
+
}
|
|
74
|
+
}]);
|
|
75
|
+
return FpsTracker;
|
|
76
|
+
}();
|
|
51
77
|
export var LibroViewTracker = (_dec = singleton(), _dec(_class = /*#__PURE__*/function () {
|
|
52
78
|
function LibroViewTracker() {
|
|
53
79
|
_classCallCheck(this, LibroViewTracker);
|
|
54
80
|
this.viewCache = new Map();
|
|
55
81
|
this.modelCache = new Map();
|
|
56
|
-
this.
|
|
82
|
+
this.trackers = new Map();
|
|
57
83
|
this.isEnabledSpmReporter = void 0;
|
|
58
84
|
this.onTrackerEmitter = new Emitter();
|
|
59
85
|
}
|
|
@@ -63,30 +89,31 @@ export var LibroViewTracker = (_dec = singleton(), _dec(_class = /*#__PURE__*/fu
|
|
|
63
89
|
return this.onTrackerEmitter.event;
|
|
64
90
|
}
|
|
65
91
|
}, {
|
|
66
|
-
key: "
|
|
67
|
-
value: function
|
|
92
|
+
key: "getOrCreateTrackers",
|
|
93
|
+
value: function getOrCreateTrackers(options) {
|
|
68
94
|
var id = options.id || v4();
|
|
69
|
-
var exist = this.
|
|
95
|
+
var exist = this.trackers.get(id);
|
|
70
96
|
if (exist) {
|
|
71
|
-
if (!exist
|
|
72
|
-
exist
|
|
97
|
+
if (options['type'] !== 'fps' && !exist['startTime']) {
|
|
98
|
+
exist['startTime'] = Date.now();
|
|
73
99
|
}
|
|
74
100
|
return exist;
|
|
75
101
|
}
|
|
76
|
-
var tracker = new Tracker(id);
|
|
77
|
-
this.
|
|
102
|
+
var tracker = options['type'] === 'fps' ? new FpsTracker(id) : new Tracker(id);
|
|
103
|
+
this.trackers.set(id, tracker);
|
|
78
104
|
return tracker;
|
|
79
105
|
}
|
|
80
106
|
}, {
|
|
81
107
|
key: "tracker",
|
|
82
108
|
value: function tracker(_tracker) {
|
|
83
109
|
var trackerLog = _tracker.log();
|
|
110
|
+
this.trackers.delete(_tracker.id);
|
|
84
111
|
this.onTrackerEmitter.fire(trackerLog);
|
|
85
112
|
}
|
|
86
113
|
}, {
|
|
87
114
|
key: "hasTracker",
|
|
88
115
|
value: function hasTracker(id) {
|
|
89
|
-
return this.
|
|
116
|
+
return this.trackers.has(id);
|
|
90
117
|
}
|
|
91
118
|
}]);
|
|
92
119
|
return LibroViewTracker;
|
package/es/libro-view.d.ts
CHANGED
|
@@ -39,7 +39,7 @@ export declare class LibroView extends BaseView implements NotebookView {
|
|
|
39
39
|
libroService: LibroService;
|
|
40
40
|
libroSlotManager: LibroSlotManager;
|
|
41
41
|
contextKey: LibroContextKey;
|
|
42
|
-
|
|
42
|
+
libroViewTracker: LibroViewTracker;
|
|
43
43
|
protected viewManager: ViewManager;
|
|
44
44
|
protected configurationService: ConfigurationService;
|
|
45
45
|
protected virtualizedManager: VirtualizedManager;
|
package/es/libro-view.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libro-view.d.ts","sourceRoot":"","sources":["../src/libro-view.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAMtE,OAAO,EAKL,QAAQ,EAIR,WAAW,EAEX,QAAQ,EAER,oBAAoB,EACpB,OAAO,EAIP,oBAAoB,EAErB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,EAAE,EAAE,yBAAyB,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAI1E,OAAO,EACL,WAAW,EAIZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAyB,MAAM,qBAAqB,CAAC;AAC7E,OAAO,KAAK,EACV,WAAW,EACX,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,cAAc,EACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAiB,MAAM,iBAAiB,CAAC;AAElE,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,cAAc,CAAC;AAEtB,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC;IACvB,KAAK,EAAE,SAAS,EAAE,CAAC;CACpB;AAED,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"libro-view.d.ts","sourceRoot":"","sources":["../src/libro-view.tsx"],"names":[],"mappings":"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"}
|
package/es/libro-view.js
CHANGED
|
@@ -47,7 +47,7 @@ import { LibroService } from "./libro-service.js";
|
|
|
47
47
|
import { AutoInsertWhenNoCell, EnterEditModeWhenAddCell, HeaderToolbarVisible, RightContentFixed } from "./libro-setting.js";
|
|
48
48
|
import { LibroViewTracker } from "./libro-view-tracker.js";
|
|
49
49
|
import { LibroSlotManager, LibroSlotView } from "./slot/index.js";
|
|
50
|
-
import { useSize } from "./utils/index.js";
|
|
50
|
+
import { useFrameMonitor, useSize } from "./utils/index.js";
|
|
51
51
|
import { VirtualizedManagerHelper } from "./virtualized-manager-helper.js";
|
|
52
52
|
import "./index.less";
|
|
53
53
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
@@ -67,6 +67,16 @@ export var LibroContentComponent = /*#__PURE__*/memo(function LibroContentCompon
|
|
|
67
67
|
var _useConfigurationValu3 = useConfigurationValue(RightContentFixed),
|
|
68
68
|
_useConfigurationValu4 = _slicedToArray(_useConfigurationValu3, 1),
|
|
69
69
|
rightContentFixed = _useConfigurationValu4[0];
|
|
70
|
+
useFrameMonitor(libroViewContentRef, instance.libroViewTracker.isEnabledSpmReporter, function (payload) {
|
|
71
|
+
var fpsTracker = instance.libroViewTracker.getOrCreateTrackers({
|
|
72
|
+
type: 'fps'
|
|
73
|
+
});
|
|
74
|
+
fpsTracker['avgFPS'] = payload.summary.avgFPS;
|
|
75
|
+
fpsTracker['maxFrameTime'] = payload.summary.maxFrameTime;
|
|
76
|
+
fpsTracker['totalDropped'] = payload.summary.totalDropped;
|
|
77
|
+
fpsTracker['extra'] = payload.frames;
|
|
78
|
+
instance.libroViewTracker.tracker(fpsTracker);
|
|
79
|
+
});
|
|
70
80
|
var handleScroll = useCallback(function () {
|
|
71
81
|
var _instance$container, _instance$activeCell, _instance$activeCell2, _instance$activeCell3, _activeOutput$outputs, _instance$activeCell4, _libroViewTopRef$curr;
|
|
72
82
|
instance.cellScrollEmitter.fire();
|
|
@@ -328,11 +338,11 @@ export var LibroView = (_dec = transient(), _dec2 = view(notebookViewFactoryId),
|
|
|
328
338
|
case 0:
|
|
329
339
|
if (_this.libroViewTracker.isEnabledSpmReporter && option.id) {
|
|
330
340
|
id = option.id + _this.id;
|
|
331
|
-
libroTracker = _this.libroViewTracker.
|
|
341
|
+
libroTracker = _this.libroViewTracker.getOrCreateTrackers({
|
|
332
342
|
id: id + 'add'
|
|
333
343
|
});
|
|
334
|
-
libroTracker
|
|
335
|
-
libroTracker
|
|
344
|
+
libroTracker['extra'].cellsCount = _this.model.cells.length;
|
|
345
|
+
libroTracker['extra'].cellOperation = 'add';
|
|
336
346
|
}
|
|
337
347
|
_context3.next = 3;
|
|
338
348
|
return _this.getCellViewByOption(option);
|
|
@@ -357,11 +367,11 @@ export var LibroView = (_dec = transient(), _dec2 = view(notebookViewFactoryId),
|
|
|
357
367
|
case 0:
|
|
358
368
|
if (_this.libroViewTracker.isEnabledSpmReporter && option.id) {
|
|
359
369
|
id = option.id + _this.id;
|
|
360
|
-
libroTracker = _this.libroViewTracker.
|
|
370
|
+
libroTracker = _this.libroViewTracker.getOrCreateTrackers({
|
|
361
371
|
id: id + 'add'
|
|
362
372
|
});
|
|
363
|
-
libroTracker
|
|
364
|
-
libroTracker
|
|
373
|
+
libroTracker['extra'].cellsCount = _this.model.cells.length;
|
|
374
|
+
libroTracker['extra'].cellOperation = 'add';
|
|
365
375
|
}
|
|
366
376
|
_context4.next = 3;
|
|
367
377
|
return _this.getCellViewByOption(option);
|
|
@@ -391,11 +401,11 @@ export var LibroView = (_dec = transient(), _dec2 = view(notebookViewFactoryId),
|
|
|
391
401
|
_this.deleteCell = function (cell) {
|
|
392
402
|
if (_this.libroViewTracker.isEnabledSpmReporter && cell.model.id) {
|
|
393
403
|
var id = cell.model.id + _this.id;
|
|
394
|
-
var libroTracker = _this.libroViewTracker.
|
|
404
|
+
var libroTracker = _this.libroViewTracker.getOrCreateTrackers({
|
|
395
405
|
id: id + 'delete'
|
|
396
406
|
});
|
|
397
|
-
libroTracker
|
|
398
|
-
libroTracker
|
|
407
|
+
libroTracker['extra'].cellsCount = _this.model.cells.length;
|
|
408
|
+
libroTracker['extra'].cellOperation = 'delete';
|
|
399
409
|
}
|
|
400
410
|
var deleteIndex = _this.model.getCells().findIndex(function (item) {
|
|
401
411
|
return equals(item, cell);
|
|
@@ -1826,14 +1836,6 @@ export var LibroView = (_dec = transient(), _dec2 = view(notebookViewFactoryId),
|
|
|
1826
1836
|
var _this2$model$onChange, _this2$model;
|
|
1827
1837
|
(_this2$model$onChange = (_this2$model = _this2.model).onChange) === null || _this2$model$onChange === void 0 || _this2$model$onChange.call(_this2$model);
|
|
1828
1838
|
}));
|
|
1829
|
-
if (_this2.libroViewTracker.isEnabledSpmReporter) {
|
|
1830
|
-
var libroTracker = _this2.libroViewTracker.getOrCreateSpmTracker({
|
|
1831
|
-
id: _this2.model.id
|
|
1832
|
-
});
|
|
1833
|
-
libroTracker.endTime = Date.now();
|
|
1834
|
-
libroTracker.extra.cellsCount = _this2.model.cells.length;
|
|
1835
|
-
_this2.libroViewTracker.tracker(libroTracker);
|
|
1836
|
-
}
|
|
1837
1839
|
_this2.initializedDefer.resolve();
|
|
1838
1840
|
}, 0);
|
|
1839
1841
|
case 8:
|
package/es/utils/index.d.ts
CHANGED
|
@@ -4,5 +4,18 @@ type Size = {
|
|
|
4
4
|
height: number;
|
|
5
5
|
};
|
|
6
6
|
export declare function useSize(ref: RefObject<HTMLDivElement>): Size | undefined;
|
|
7
|
+
interface FrameMetrics {
|
|
8
|
+
timestamp: number;
|
|
9
|
+
fps: number;
|
|
10
|
+
frameTime: number;
|
|
11
|
+
droppedFrames: number;
|
|
12
|
+
}
|
|
13
|
+
export declare const useFrameMonitor: (scrollContainerRef: React.RefObject<HTMLElement>, isEnabledSpmReporter: boolean, onReport?: ((payload: {
|
|
14
|
+
frames: FrameMetrics[];
|
|
15
|
+
summary: any;
|
|
16
|
+
}) => void) | undefined) => {
|
|
17
|
+
frameData: import("react").MutableRefObject<FrameMetrics[]>;
|
|
18
|
+
reportFrames: () => void;
|
|
19
|
+
};
|
|
7
20
|
export {};
|
|
8
21
|
//# sourceMappingURL=index.d.ts.map
|
package/es/utils/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAuBvC,KAAK,IAAI,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAC9C,wBAAgB,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,cAAc,CAAC,GAAG,IAAI,GAAG,SAAS,CAuBxE;AAED,UAAU,YAAY;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,eAAe,uBACN,eAAe,CAAC,WAAW,CAAC,wBAC1B,OAAO,wBACR;IAAE,QAAQ,YAAY,EAAE,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,KAAK,IAAI;;;CAiIvE,CAAC"}
|
package/es/utils/index.js
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
2
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
4
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
1
5
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
6
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
7
|
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); }
|
|
@@ -5,6 +9,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
5
9
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
6
10
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
11
|
import { useUnmount } from '@difizen/mana-app';
|
|
12
|
+
import { useEffect } from 'react';
|
|
8
13
|
import { useCallback, useLayoutEffect, useRef, useState } from 'react';
|
|
9
14
|
function useRafState(initialState) {
|
|
10
15
|
var ref = useRef(0);
|
|
@@ -50,4 +55,123 @@ export function useSize(ref) {
|
|
|
50
55
|
};
|
|
51
56
|
}, [ref, setSize]);
|
|
52
57
|
return size;
|
|
53
|
-
}
|
|
58
|
+
}
|
|
59
|
+
export var useFrameMonitor = function useFrameMonitor(scrollContainerRef, isEnabledSpmReporter, onReport) {
|
|
60
|
+
var frameData = useRef([]);
|
|
61
|
+
var lastFrameTime = useRef(performance.now());
|
|
62
|
+
var frameCount = useRef(0);
|
|
63
|
+
var lastScrollPos = useRef(0);
|
|
64
|
+
var rafId = useRef();
|
|
65
|
+
var isMonitoring = useRef(false);
|
|
66
|
+
// const reportTimeout = useRef<NodeJS.Timeout>();
|
|
67
|
+
var intervalId = useRef();
|
|
68
|
+
var scrollDebounceTimer = useRef();
|
|
69
|
+
var stopFrameCapture = useCallback(function () {
|
|
70
|
+
if (rafId.current) {
|
|
71
|
+
cancelAnimationFrame(rafId.current);
|
|
72
|
+
}
|
|
73
|
+
if (intervalId.current) {
|
|
74
|
+
clearInterval(intervalId.current);
|
|
75
|
+
}
|
|
76
|
+
isMonitoring.current = false;
|
|
77
|
+
frameCount.current = 0;
|
|
78
|
+
lastFrameTime.current = performance.now();
|
|
79
|
+
}, []);
|
|
80
|
+
var startFrameCapture = useCallback(function () {
|
|
81
|
+
if (isMonitoring.current) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
var calculateFPS = function calculateFPS() {
|
|
85
|
+
if (!isMonitoring.current) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
var now = performance.now();
|
|
89
|
+
var delta = now - lastFrameTime.current;
|
|
90
|
+
frameData.current.push({
|
|
91
|
+
timestamp: now,
|
|
92
|
+
fps: Math.round(frameCount.current * 1000 / delta),
|
|
93
|
+
frameTime: delta / frameCount.current,
|
|
94
|
+
droppedFrames: Math.max(0, Math.floor(delta / 16.67) - frameCount.current)
|
|
95
|
+
});
|
|
96
|
+
lastFrameTime.current = now;
|
|
97
|
+
frameCount.current = 0;
|
|
98
|
+
};
|
|
99
|
+
var loop = function loop() {
|
|
100
|
+
if (isMonitoring.current) {
|
|
101
|
+
frameCount.current++;
|
|
102
|
+
rafId.current = requestAnimationFrame(loop);
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
isMonitoring.current = true;
|
|
106
|
+
frameCount.current = 0;
|
|
107
|
+
lastFrameTime.current = performance.now();
|
|
108
|
+
if (intervalId.current) {
|
|
109
|
+
clearInterval(intervalId.current);
|
|
110
|
+
}
|
|
111
|
+
intervalId.current = setInterval(calculateFPS, 1500); // 每秒生成一个数据点
|
|
112
|
+
rafId.current = requestAnimationFrame(loop);
|
|
113
|
+
}, []);
|
|
114
|
+
var reportFrames = useCallback(function () {
|
|
115
|
+
if (frameData.current.length === 0) {
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
var send = function send() {
|
|
119
|
+
var payload = {
|
|
120
|
+
frames: frameData.current,
|
|
121
|
+
summary: {
|
|
122
|
+
avgFPS: frameData.current.reduce(function (a, b) {
|
|
123
|
+
return a + b.fps;
|
|
124
|
+
}, 0) / frameData.current.length,
|
|
125
|
+
maxFrameTime: Math.max.apply(Math, _toConsumableArray(frameData.current.map(function (f) {
|
|
126
|
+
return f.frameTime;
|
|
127
|
+
}))),
|
|
128
|
+
totalDropped: frameData.current.reduce(function (a, b) {
|
|
129
|
+
return a + b.droppedFrames;
|
|
130
|
+
}, 0)
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
if (onReport) {
|
|
134
|
+
onReport(payload); // 触发外部回调
|
|
135
|
+
}
|
|
136
|
+
frameData.current = [];
|
|
137
|
+
};
|
|
138
|
+
requestIdleCallback(send, {
|
|
139
|
+
timeout: 1000
|
|
140
|
+
}) || setTimeout(send, 0);
|
|
141
|
+
}, [onReport]); // 添加 onReport 依赖
|
|
142
|
+
|
|
143
|
+
useEffect(function () {
|
|
144
|
+
if (!isEnabledSpmReporter) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
var container = scrollContainerRef.current || window;
|
|
148
|
+
var handleScroll = function handleScroll() {
|
|
149
|
+
// const currentScroll =
|
|
150
|
+
// (container as Window).scrollY || (container as HTMLElement).scrollTop;
|
|
151
|
+
var currentScroll = container instanceof Window ? container.scrollY : container.scrollTop;
|
|
152
|
+
var scrollDelta = Math.abs(currentScroll - lastScrollPos.current);
|
|
153
|
+
if (scrollDelta > 10) {
|
|
154
|
+
if (!isMonitoring.current) {
|
|
155
|
+
startFrameCapture();
|
|
156
|
+
}
|
|
157
|
+
clearTimeout(scrollDebounceTimer.current);
|
|
158
|
+
scrollDebounceTimer.current = setTimeout(function () {
|
|
159
|
+
stopFrameCapture();
|
|
160
|
+
reportFrames();
|
|
161
|
+
}, 2000);
|
|
162
|
+
}
|
|
163
|
+
lastScrollPos.current = currentScroll;
|
|
164
|
+
};
|
|
165
|
+
container.addEventListener('scroll', handleScroll, {
|
|
166
|
+
passive: true
|
|
167
|
+
});
|
|
168
|
+
return function () {
|
|
169
|
+
container.removeEventListener('scroll', handleScroll);
|
|
170
|
+
stopFrameCapture();
|
|
171
|
+
};
|
|
172
|
+
}, [scrollContainerRef, startFrameCapture, stopFrameCapture, reportFrames, isEnabledSpmReporter]);
|
|
173
|
+
return {
|
|
174
|
+
frameData: frameData,
|
|
175
|
+
reportFrames: reportFrames
|
|
176
|
+
};
|
|
177
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@difizen/libro-core",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.14",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"libro",
|
|
@@ -34,10 +34,10 @@
|
|
|
34
34
|
],
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@ant-design/icons": "^5.1.0",
|
|
37
|
-
"@difizen/libro-code-editor": "^0.3.
|
|
38
|
-
"@difizen/libro-common": "^0.3.
|
|
39
|
-
"@difizen/libro-shared-model": "^0.3.
|
|
40
|
-
"@difizen/libro-virtualized": "^0.3.
|
|
37
|
+
"@difizen/libro-code-editor": "^0.3.14",
|
|
38
|
+
"@difizen/libro-common": "^0.3.14",
|
|
39
|
+
"@difizen/libro-shared-model": "^0.3.14",
|
|
40
|
+
"@difizen/libro-virtualized": "^0.3.14",
|
|
41
41
|
"@difizen/mana-app": "latest",
|
|
42
42
|
"@difizen/mana-l10n": "latest",
|
|
43
43
|
"@difizen/mana-react": "latest",
|
|
@@ -93,11 +93,11 @@ export class LibroCellView extends BaseView implements CellView {
|
|
|
93
93
|
) {
|
|
94
94
|
const cellTracker = (
|
|
95
95
|
this.cellService as LibroCellService
|
|
96
|
-
).libroViewTracker.
|
|
96
|
+
).libroViewTracker.getOrCreateTrackers({
|
|
97
97
|
id,
|
|
98
98
|
});
|
|
99
|
-
cellTracker
|
|
100
|
-
cellTracker
|
|
99
|
+
cellTracker['endTime'] = Date.now();
|
|
100
|
+
cellTracker['extra'].cellType = this.model.type;
|
|
101
101
|
(this.cellService as LibroCellService).libroViewTracker.tracker(cellTracker);
|
|
102
102
|
}
|
|
103
103
|
}
|
|
@@ -110,11 +110,11 @@ export class LibroCellView extends BaseView implements CellView {
|
|
|
110
110
|
) {
|
|
111
111
|
const cellTracker = (
|
|
112
112
|
this.cellService as LibroCellService
|
|
113
|
-
).libroViewTracker.
|
|
113
|
+
).libroViewTracker.getOrCreateTrackers({
|
|
114
114
|
id,
|
|
115
115
|
});
|
|
116
|
-
cellTracker
|
|
117
|
-
cellTracker
|
|
116
|
+
cellTracker['endTime'] = Date.now();
|
|
117
|
+
cellTracker['extra'].cellType = this.model.type;
|
|
118
118
|
(this.cellService as LibroCellService).libroViewTracker.tracker(cellTracker);
|
|
119
119
|
}
|
|
120
120
|
}
|
|
@@ -127,6 +127,30 @@ export abstract class LibroEditorCellView
|
|
|
127
127
|
if (e.status === 'ready') {
|
|
128
128
|
this.editor = this.editorView!.editor;
|
|
129
129
|
this.afterEditorReady();
|
|
130
|
+
if (this.parent.libroViewTracker.isEnabledSpmReporter) {
|
|
131
|
+
if (
|
|
132
|
+
this.parent.libroViewTracker.hasTracker(
|
|
133
|
+
this.parent.model.options['modelId'] || this.parent.model.options['id'],
|
|
134
|
+
)
|
|
135
|
+
) {
|
|
136
|
+
const libroTracker = this.parent.libroViewTracker.getOrCreateTrackers({
|
|
137
|
+
id:
|
|
138
|
+
this.parent.model.options['modelId'] || this.parent.model.options['id'],
|
|
139
|
+
});
|
|
140
|
+
libroTracker['endTime'] = Date.now();
|
|
141
|
+
libroTracker['extra'].cellsCount = this.parent.model.cells.length;
|
|
142
|
+
this.parent.libroViewTracker.tracker(libroTracker);
|
|
143
|
+
}
|
|
144
|
+
const id = this.options.id + this.parent.id + 'add';
|
|
145
|
+
if (this.options.id && this.parent.libroViewTracker.hasTracker(id)) {
|
|
146
|
+
const cellTracker = this.parent.libroViewTracker.getOrCreateTrackers({
|
|
147
|
+
id,
|
|
148
|
+
});
|
|
149
|
+
cellTracker['endTime'] = Date.now();
|
|
150
|
+
cellTracker['extra'].cellType = this.model.type;
|
|
151
|
+
this.parent.libroViewTracker.tracker(cellTracker);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
130
154
|
} else if (e.status === 'disposed') {
|
|
131
155
|
this.toDisposeOnEditor.dispose();
|
|
132
156
|
}
|
|
@@ -276,11 +276,11 @@ export class LibroCommandContribution implements CommandContribution {
|
|
|
276
276
|
libro.addCell(newCell, insertIndex);
|
|
277
277
|
if (this.libroViewTracker.isEnabledSpmReporter) {
|
|
278
278
|
const id = newCell.id + libro.id;
|
|
279
|
-
const libroTracker = this.libroViewTracker.
|
|
279
|
+
const libroTracker = this.libroViewTracker.getOrCreateTrackers({
|
|
280
280
|
id,
|
|
281
281
|
});
|
|
282
|
-
libroTracker
|
|
283
|
-
libroTracker
|
|
282
|
+
libroTracker['extra'].cellsCount = libro.model.cells.length;
|
|
283
|
+
libroTracker['extra'].cellOperation = 'add';
|
|
284
284
|
}
|
|
285
285
|
},
|
|
286
286
|
isVisible: (cell, libro, path) => {
|
package/src/libro-protocol.ts
CHANGED
package/src/libro-service.ts
CHANGED
|
@@ -145,16 +145,15 @@ export class LibroService implements NotebookService, Disposable {
|
|
|
145
145
|
}
|
|
146
146
|
async getOrCreateView(options: NotebookOption): Promise<NotebookView> {
|
|
147
147
|
if (this.libroViewTracker.isEnabledSpmReporter) {
|
|
148
|
-
this.libroViewTracker.
|
|
149
|
-
id: options.modelId,
|
|
148
|
+
this.libroViewTracker.getOrCreateTrackers({
|
|
149
|
+
id: options.modelId || options.id,
|
|
150
150
|
});
|
|
151
151
|
}
|
|
152
|
-
const model = this.getOrCreateModel(options);
|
|
153
152
|
const notebookViewPromise = this.viewManager.getOrCreateView<NotebookView>(
|
|
154
153
|
notebookViewFactoryId,
|
|
155
154
|
{
|
|
156
155
|
...(options || {}),
|
|
157
|
-
modelId:
|
|
156
|
+
modelId: options.modelId || options.id,
|
|
158
157
|
},
|
|
159
158
|
);
|
|
160
159
|
const notebookView = await notebookViewPromise;
|
|
@@ -46,38 +46,65 @@ export class Tracker implements ITracker {
|
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
+
export class FpsTracker implements ITracker {
|
|
50
|
+
[key: string]: any;
|
|
51
|
+
extra?: any;
|
|
52
|
+
id: string;
|
|
53
|
+
avgFPS: number;
|
|
54
|
+
maxFrameTime: number;
|
|
55
|
+
totalDropped: number;
|
|
56
|
+
|
|
57
|
+
constructor(id?: string, extra?: any) {
|
|
58
|
+
this.id = id || v4();
|
|
59
|
+
this.extra = extra || {};
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
log() {
|
|
63
|
+
const result = {
|
|
64
|
+
id: this.id,
|
|
65
|
+
avgFPS: this.avgFPS,
|
|
66
|
+
maxFrameTime: this.maxFrameTime,
|
|
67
|
+
totalDropped: this.totalDropped,
|
|
68
|
+
extra: this.extra,
|
|
69
|
+
};
|
|
70
|
+
return result;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
49
74
|
@singleton()
|
|
50
75
|
export class LibroViewTracker {
|
|
51
76
|
viewCache: Map<string, NotebookView> = new Map();
|
|
52
77
|
modelCache: Map<string, NotebookModel> = new Map();
|
|
53
|
-
|
|
78
|
+
trackers: Map<string, ITracker> = new Map();
|
|
54
79
|
isEnabledSpmReporter: boolean;
|
|
55
80
|
|
|
56
|
-
protected onTrackerEmitter: Emitter<
|
|
81
|
+
protected onTrackerEmitter: Emitter<Record<string, any>> = new Emitter();
|
|
57
82
|
get onTracker() {
|
|
58
83
|
return this.onTrackerEmitter.event;
|
|
59
84
|
}
|
|
60
85
|
|
|
61
|
-
|
|
86
|
+
getOrCreateTrackers(options: Options) {
|
|
62
87
|
const id = options.id || v4();
|
|
63
|
-
const exist = this.
|
|
88
|
+
const exist = this.trackers.get(id);
|
|
64
89
|
if (exist) {
|
|
65
|
-
if (!exist
|
|
66
|
-
exist
|
|
90
|
+
if (options['type'] !== 'fps' && !exist['startTime']) {
|
|
91
|
+
exist['startTime'] = Date.now();
|
|
67
92
|
}
|
|
68
93
|
return exist;
|
|
69
94
|
}
|
|
70
|
-
|
|
71
|
-
|
|
95
|
+
|
|
96
|
+
const tracker = options['type'] === 'fps' ? new FpsTracker(id) : new Tracker(id);
|
|
97
|
+
this.trackers.set(id, tracker);
|
|
72
98
|
return tracker;
|
|
73
99
|
}
|
|
74
100
|
|
|
75
|
-
tracker(tracker:
|
|
101
|
+
tracker(tracker: ITracker) {
|
|
76
102
|
const trackerLog = tracker.log();
|
|
103
|
+
this.trackers.delete(tracker.id);
|
|
77
104
|
this.onTrackerEmitter.fire(trackerLog);
|
|
78
105
|
}
|
|
79
106
|
|
|
80
107
|
hasTracker(id: string) {
|
|
81
|
-
return this.
|
|
108
|
+
return this.trackers.has(id);
|
|
82
109
|
}
|
|
83
110
|
}
|
package/src/libro-view.tsx
CHANGED
|
@@ -64,7 +64,7 @@ import {
|
|
|
64
64
|
} from './libro-setting.js';
|
|
65
65
|
import { LibroViewTracker } from './libro-view-tracker.js';
|
|
66
66
|
import { LibroSlotManager, LibroSlotView } from './slot/index.js';
|
|
67
|
-
import { useSize } from './utils/index.js';
|
|
67
|
+
import { useFrameMonitor, useSize } from './utils/index.js';
|
|
68
68
|
import { VirtualizedManagerHelper } from './virtualized-manager-helper.js';
|
|
69
69
|
import type { VirtualizedManager } from './virtualized-manager.js';
|
|
70
70
|
import './index.less';
|
|
@@ -84,6 +84,18 @@ export const LibroContentComponent = memo(function LibroContentComponent() {
|
|
|
84
84
|
const HeaderRender = getOrigin(instance.headerRender);
|
|
85
85
|
const [headerVisible] = useConfigurationValue(HeaderToolbarVisible);
|
|
86
86
|
const [rightContentFixed] = useConfigurationValue(RightContentFixed);
|
|
87
|
+
useFrameMonitor(
|
|
88
|
+
libroViewContentRef,
|
|
89
|
+
instance.libroViewTracker.isEnabledSpmReporter,
|
|
90
|
+
(payload) => {
|
|
91
|
+
const fpsTracker = instance.libroViewTracker.getOrCreateTrackers({ type: 'fps' });
|
|
92
|
+
fpsTracker['avgFPS'] = payload.summary.avgFPS;
|
|
93
|
+
fpsTracker['maxFrameTime'] = payload.summary.maxFrameTime;
|
|
94
|
+
fpsTracker['totalDropped'] = payload.summary.totalDropped;
|
|
95
|
+
fpsTracker['extra'] = payload.frames;
|
|
96
|
+
instance.libroViewTracker.tracker(fpsTracker);
|
|
97
|
+
},
|
|
98
|
+
);
|
|
87
99
|
|
|
88
100
|
const handleScroll = useCallback(() => {
|
|
89
101
|
instance.cellScrollEmitter.fire();
|
|
@@ -326,7 +338,7 @@ export class LibroView extends BaseView implements NotebookView {
|
|
|
326
338
|
@inject(LibroService) libroService: LibroService;
|
|
327
339
|
@inject(LibroSlotManager) libroSlotManager: LibroSlotManager;
|
|
328
340
|
@inject(LibroContextKey) contextKey: LibroContextKey;
|
|
329
|
-
@inject(LibroViewTracker)
|
|
341
|
+
@inject(LibroViewTracker) libroViewTracker: LibroViewTracker;
|
|
330
342
|
@inject(ViewManager) protected viewManager: ViewManager;
|
|
331
343
|
@inject(ConfigurationService) protected configurationService: ConfigurationService;
|
|
332
344
|
|
|
@@ -454,14 +466,6 @@ export class LibroView extends BaseView implements NotebookView {
|
|
|
454
466
|
this.model.onChange?.();
|
|
455
467
|
}),
|
|
456
468
|
);
|
|
457
|
-
if (this.libroViewTracker.isEnabledSpmReporter) {
|
|
458
|
-
const libroTracker = this.libroViewTracker.getOrCreateSpmTracker({
|
|
459
|
-
id: this.model.id,
|
|
460
|
-
});
|
|
461
|
-
libroTracker.endTime = Date.now();
|
|
462
|
-
libroTracker.extra.cellsCount = this.model.cells.length;
|
|
463
|
-
this.libroViewTracker.tracker(libroTracker);
|
|
464
|
-
}
|
|
465
469
|
this.initializedDefer.resolve();
|
|
466
470
|
}, 0);
|
|
467
471
|
}
|
|
@@ -530,11 +534,11 @@ export class LibroView extends BaseView implements NotebookView {
|
|
|
530
534
|
addCell = async (option: CellOptions, position?: number) => {
|
|
531
535
|
if (this.libroViewTracker.isEnabledSpmReporter && option.id) {
|
|
532
536
|
const id = option.id + this.id;
|
|
533
|
-
const libroTracker = this.libroViewTracker.
|
|
537
|
+
const libroTracker = this.libroViewTracker.getOrCreateTrackers({
|
|
534
538
|
id: id + 'add',
|
|
535
539
|
});
|
|
536
|
-
libroTracker
|
|
537
|
-
libroTracker
|
|
540
|
+
libroTracker['extra'].cellsCount = this.model.cells.length;
|
|
541
|
+
libroTracker['extra'].cellOperation = 'add';
|
|
538
542
|
}
|
|
539
543
|
const cellView = await this.getCellViewByOption(option);
|
|
540
544
|
this.model.addCell(cellView, position);
|
|
@@ -543,11 +547,11 @@ export class LibroView extends BaseView implements NotebookView {
|
|
|
543
547
|
addCellAbove = async (option: CellOptions, position?: number) => {
|
|
544
548
|
if (this.libroViewTracker.isEnabledSpmReporter && option.id) {
|
|
545
549
|
const id = option.id + this.id;
|
|
546
|
-
const libroTracker = this.libroViewTracker.
|
|
550
|
+
const libroTracker = this.libroViewTracker.getOrCreateTrackers({
|
|
547
551
|
id: id + 'add',
|
|
548
552
|
});
|
|
549
|
-
libroTracker
|
|
550
|
-
libroTracker
|
|
553
|
+
libroTracker['extra'].cellsCount = this.model.cells.length;
|
|
554
|
+
libroTracker['extra'].cellOperation = 'add';
|
|
551
555
|
}
|
|
552
556
|
const cellView = await this.getCellViewByOption(option);
|
|
553
557
|
this.model.addCell(cellView, position, 'above');
|
|
@@ -575,11 +579,11 @@ export class LibroView extends BaseView implements NotebookView {
|
|
|
575
579
|
deleteCell = (cell: CellView) => {
|
|
576
580
|
if (this.libroViewTracker.isEnabledSpmReporter && cell.model.id) {
|
|
577
581
|
const id = cell.model.id + this.id;
|
|
578
|
-
const libroTracker = this.libroViewTracker.
|
|
582
|
+
const libroTracker = this.libroViewTracker.getOrCreateTrackers({
|
|
579
583
|
id: id + 'delete',
|
|
580
584
|
});
|
|
581
|
-
libroTracker
|
|
582
|
-
libroTracker
|
|
585
|
+
libroTracker['extra'].cellsCount = this.model.cells.length;
|
|
586
|
+
libroTracker['extra'].cellOperation = 'delete';
|
|
583
587
|
}
|
|
584
588
|
const deleteIndex = this.model.getCells().findIndex((item) => {
|
|
585
589
|
return equals(item, cell);
|
package/src/utils/index.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { useUnmount } from '@difizen/mana-app';
|
|
2
2
|
import type { RefObject } from 'react';
|
|
3
|
+
import { useEffect } from 'react';
|
|
3
4
|
import { useCallback, useLayoutEffect, useRef, useState } from 'react';
|
|
4
5
|
|
|
5
6
|
function useRafState<S>(initialState?: S) {
|
|
@@ -46,3 +47,144 @@ export function useSize(ref: RefObject<HTMLDivElement>): Size | undefined {
|
|
|
46
47
|
}, [ref, setSize]);
|
|
47
48
|
return size;
|
|
48
49
|
}
|
|
50
|
+
|
|
51
|
+
interface FrameMetrics {
|
|
52
|
+
timestamp: number;
|
|
53
|
+
fps: number;
|
|
54
|
+
frameTime: number;
|
|
55
|
+
droppedFrames: number;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export const useFrameMonitor = (
|
|
59
|
+
scrollContainerRef: React.RefObject<HTMLElement>,
|
|
60
|
+
isEnabledSpmReporter: boolean,
|
|
61
|
+
onReport?: (payload: { frames: FrameMetrics[]; summary: any }) => void,
|
|
62
|
+
) => {
|
|
63
|
+
const frameData = useRef<FrameMetrics[]>([]);
|
|
64
|
+
const lastFrameTime = useRef(performance.now());
|
|
65
|
+
const frameCount = useRef(0);
|
|
66
|
+
const lastScrollPos = useRef(0);
|
|
67
|
+
const rafId = useRef<number>();
|
|
68
|
+
const isMonitoring = useRef(false);
|
|
69
|
+
// const reportTimeout = useRef<NodeJS.Timeout>();
|
|
70
|
+
const intervalId = useRef<NodeJS.Timeout>();
|
|
71
|
+
const scrollDebounceTimer = useRef<NodeJS.Timeout>();
|
|
72
|
+
|
|
73
|
+
const stopFrameCapture = useCallback(() => {
|
|
74
|
+
if (rafId.current) {
|
|
75
|
+
cancelAnimationFrame(rafId.current);
|
|
76
|
+
}
|
|
77
|
+
if (intervalId.current) {
|
|
78
|
+
clearInterval(intervalId.current);
|
|
79
|
+
}
|
|
80
|
+
isMonitoring.current = false;
|
|
81
|
+
frameCount.current = 0;
|
|
82
|
+
lastFrameTime.current = performance.now();
|
|
83
|
+
}, []);
|
|
84
|
+
|
|
85
|
+
const startFrameCapture = useCallback(() => {
|
|
86
|
+
if (isMonitoring.current) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
const calculateFPS = () => {
|
|
91
|
+
if (!isMonitoring.current) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
const now = performance.now();
|
|
95
|
+
const delta = now - lastFrameTime.current;
|
|
96
|
+
frameData.current.push({
|
|
97
|
+
timestamp: now,
|
|
98
|
+
fps: Math.round((frameCount.current * 1000) / delta),
|
|
99
|
+
frameTime: delta / frameCount.current,
|
|
100
|
+
droppedFrames: Math.max(0, Math.floor(delta / 16.67) - frameCount.current),
|
|
101
|
+
});
|
|
102
|
+
lastFrameTime.current = now;
|
|
103
|
+
frameCount.current = 0;
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
const loop = () => {
|
|
107
|
+
if (isMonitoring.current) {
|
|
108
|
+
frameCount.current++;
|
|
109
|
+
rafId.current = requestAnimationFrame(loop);
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
isMonitoring.current = true;
|
|
114
|
+
frameCount.current = 0;
|
|
115
|
+
lastFrameTime.current = performance.now();
|
|
116
|
+
|
|
117
|
+
if (intervalId.current) {
|
|
118
|
+
clearInterval(intervalId.current);
|
|
119
|
+
}
|
|
120
|
+
intervalId.current = setInterval(calculateFPS, 1500); // 每秒生成一个数据点
|
|
121
|
+
rafId.current = requestAnimationFrame(loop);
|
|
122
|
+
}, []);
|
|
123
|
+
|
|
124
|
+
const reportFrames = useCallback(() => {
|
|
125
|
+
if (frameData.current.length === 0) {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
const send = () => {
|
|
130
|
+
const payload = {
|
|
131
|
+
frames: frameData.current,
|
|
132
|
+
summary: {
|
|
133
|
+
avgFPS:
|
|
134
|
+
frameData.current.reduce((a, b) => a + b.fps, 0) / frameData.current.length,
|
|
135
|
+
maxFrameTime: Math.max(...frameData.current.map((f) => f.frameTime)),
|
|
136
|
+
totalDropped: frameData.current.reduce((a, b) => a + b.droppedFrames, 0),
|
|
137
|
+
},
|
|
138
|
+
};
|
|
139
|
+
if (onReport) {
|
|
140
|
+
onReport(payload); // 触发外部回调
|
|
141
|
+
}
|
|
142
|
+
frameData.current = [];
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
requestIdleCallback(send, { timeout: 1000 }) || setTimeout(send, 0);
|
|
146
|
+
}, [onReport]); // 添加 onReport 依赖
|
|
147
|
+
|
|
148
|
+
useEffect(() => {
|
|
149
|
+
if (!isEnabledSpmReporter) {
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
const container = scrollContainerRef.current || (window as unknown as HTMLElement);
|
|
153
|
+
|
|
154
|
+
const handleScroll = () => {
|
|
155
|
+
// const currentScroll =
|
|
156
|
+
// (container as Window).scrollY || (container as HTMLElement).scrollTop;
|
|
157
|
+
const currentScroll =
|
|
158
|
+
container instanceof Window ? container.scrollY : container.scrollTop;
|
|
159
|
+
const scrollDelta = Math.abs(currentScroll - lastScrollPos.current);
|
|
160
|
+
|
|
161
|
+
if (scrollDelta > 10) {
|
|
162
|
+
if (!isMonitoring.current) {
|
|
163
|
+
startFrameCapture();
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
clearTimeout(scrollDebounceTimer.current);
|
|
167
|
+
scrollDebounceTimer.current = setTimeout(() => {
|
|
168
|
+
stopFrameCapture();
|
|
169
|
+
reportFrames();
|
|
170
|
+
}, 2000);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
lastScrollPos.current = currentScroll;
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
container.addEventListener('scroll', handleScroll, { passive: true });
|
|
177
|
+
return () => {
|
|
178
|
+
container.removeEventListener('scroll', handleScroll);
|
|
179
|
+
stopFrameCapture();
|
|
180
|
+
};
|
|
181
|
+
}, [
|
|
182
|
+
scrollContainerRef,
|
|
183
|
+
startFrameCapture,
|
|
184
|
+
stopFrameCapture,
|
|
185
|
+
reportFrames,
|
|
186
|
+
isEnabledSpmReporter,
|
|
187
|
+
]);
|
|
188
|
+
|
|
189
|
+
return { frameData, reportFrames };
|
|
190
|
+
};
|