@highlight-run/rrweb 1.1.20 → 2.0.1-alpha.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.
Files changed (150) hide show
  1. package/dist/plugins/console-record.js +655 -0
  2. package/dist/plugins/console-record.min.js +16 -0
  3. package/dist/plugins/console-record.min.js.map +1 -0
  4. package/dist/plugins/console-replay.js +293 -0
  5. package/dist/plugins/console-replay.min.js +16 -0
  6. package/dist/plugins/console-replay.min.js.map +1 -0
  7. package/dist/plugins/sequential-id-record.js +33 -0
  8. package/dist/plugins/sequential-id-record.min.js +2 -0
  9. package/dist/plugins/sequential-id-record.min.js.map +1 -0
  10. package/dist/plugins/sequential-id-replay.js +37 -0
  11. package/dist/plugins/sequential-id-replay.min.js +2 -0
  12. package/dist/plugins/sequential-id-replay.min.js.map +1 -0
  13. package/dist/record/rrweb-record-pack.js +747 -0
  14. package/dist/record/rrweb-record-pack.min.js +16 -0
  15. package/dist/record/rrweb-record-pack.min.js.map +1 -0
  16. package/dist/record/rrweb-record.js +3318 -0
  17. package/dist/record/rrweb-record.min.js +16 -0
  18. package/dist/record/rrweb-record.min.js.map +1 -0
  19. package/dist/replay/rrweb-replay-unpack.js +4626 -0
  20. package/dist/replay/rrweb-replay-unpack.min.css +2 -0
  21. package/dist/replay/rrweb-replay-unpack.min.css.map +1 -0
  22. package/dist/replay/rrweb-replay-unpack.min.js +30 -0
  23. package/dist/replay/rrweb-replay-unpack.min.js.map +1 -0
  24. package/dist/replay/rrweb-replay.js +4216 -0
  25. package/dist/replay/rrweb-replay.min.css +2 -0
  26. package/dist/replay/rrweb-replay.min.css.map +1 -0
  27. package/dist/replay/rrweb-replay.min.js +30 -0
  28. package/dist/replay/rrweb-replay.min.js.map +1 -0
  29. package/dist/rrweb-all.js +8708 -0
  30. package/dist/rrweb-all.min.css +2 -0
  31. package/dist/rrweb-all.min.css.map +1 -0
  32. package/dist/rrweb-all.min.js +30 -0
  33. package/dist/rrweb-all.min.js.map +1 -0
  34. package/dist/rrweb.js +7294 -0
  35. package/dist/rrweb.min.css +2 -0
  36. package/dist/rrweb.min.css.map +1 -0
  37. package/dist/rrweb.min.js +30 -0
  38. package/dist/rrweb.min.js.map +1 -0
  39. package/es/rrweb/ext/@xstate/fsm/es/index.js +17 -0
  40. package/es/rrweb/ext/base64-arraybuffer/dist/base64-arraybuffer.es5.js +49 -0
  41. package/es/rrweb/ext/fflate/esm/browser.js +777 -0
  42. package/es/rrweb/ext/mitt/dist/mitt.es.js +63 -0
  43. package/es/rrweb/packages/rrweb/ext/tslib/tslib.es6.js +78 -0
  44. package/es/rrweb/packages/rrweb/src/entries/all.js +13 -0
  45. package/es/rrweb/packages/rrweb/src/index.js +12 -0
  46. package/es/rrweb/packages/rrweb/src/packer/base.js +3 -0
  47. package/es/rrweb/packages/rrweb/src/packer/pack.js +10 -0
  48. package/es/rrweb/packages/rrweb/src/packer/unpack.js +29 -0
  49. package/es/rrweb/packages/rrweb/src/plugins/console/record/error-stack-parser.js +179 -0
  50. package/es/rrweb/packages/rrweb/src/plugins/console/record/index.js +134 -0
  51. package/es/rrweb/packages/rrweb/src/plugins/console/record/stringify.js +141 -0
  52. package/es/rrweb/packages/rrweb/src/plugins/console/replay/index.js +111 -0
  53. package/es/rrweb/packages/rrweb/src/plugins/sequential-id/record/index.js +23 -0
  54. package/es/rrweb/packages/rrweb/src/plugins/sequential-id/replay/index.js +28 -0
  55. package/es/rrweb/packages/rrweb/src/record/iframe-manager.js +32 -0
  56. package/es/rrweb/packages/rrweb/src/record/index.js +381 -0
  57. package/es/rrweb/packages/rrweb/src/record/mutation.js +532 -0
  58. package/es/rrweb/packages/rrweb/src/record/observer.js +665 -0
  59. package/es/rrweb/packages/rrweb/src/record/observers/canvas/2d.js +78 -0
  60. package/es/rrweb/packages/rrweb/src/record/observers/canvas/canvas-manager.js +93 -0
  61. package/es/rrweb/packages/rrweb/src/record/observers/canvas/canvas.js +30 -0
  62. package/es/rrweb/packages/rrweb/src/record/observers/canvas/serialize-args.js +116 -0
  63. package/es/rrweb/packages/rrweb/src/record/observers/canvas/webgl.js +78 -0
  64. package/es/rrweb/packages/rrweb/src/record/shadow-dom-manager.js +45 -0
  65. package/es/rrweb/packages/rrweb/src/replay/canvas/2d.js +25 -0
  66. package/es/rrweb/packages/rrweb/src/replay/canvas/index.js +35 -0
  67. package/es/rrweb/packages/rrweb/src/replay/canvas/webgl.js +124 -0
  68. package/es/rrweb/packages/rrweb/src/replay/index.js +1864 -0
  69. package/es/rrweb/packages/rrweb/src/replay/machine.js +321 -0
  70. package/es/rrweb/packages/rrweb/src/replay/smoothscroll.js +221 -0
  71. package/es/rrweb/packages/rrweb/src/replay/styles/inject-style.js +8 -0
  72. package/es/rrweb/packages/rrweb/src/replay/timer.js +96 -0
  73. package/es/rrweb/packages/rrweb/src/replay/virtual-styles.js +121 -0
  74. package/es/rrweb/packages/rrweb/src/types.js +75 -0
  75. package/es/rrweb/packages/rrweb/src/utils.js +509 -0
  76. package/es/rrweb/packages/rrweb-snapshot/es/rrweb-snapshot.js +1697 -0
  77. package/lib/plugins/console-record.js +650 -0
  78. package/lib/plugins/console-replay.js +288 -0
  79. package/lib/plugins/sequential-id-record.js +28 -0
  80. package/lib/plugins/sequential-id-replay.js +32 -0
  81. package/lib/record/rrweb-record-pack.js +742 -0
  82. package/lib/record/rrweb-record.js +3315 -0
  83. package/lib/replay/rrweb-replay-unpack.js +4621 -0
  84. package/lib/replay/rrweb-replay.js +4211 -0
  85. package/lib/rrweb-all.js +8703 -0
  86. package/{dist/index.js → lib/rrweb.js} +6562 -7422
  87. package/package.json +42 -41
  88. package/typings/entries/all.d.ts +6 -0
  89. package/{dist → typings}/entries/record-pack.d.ts +0 -0
  90. package/{dist → typings}/entries/replay-unpack.d.ts +0 -0
  91. package/{dist → typings}/index.d.ts +1 -2
  92. package/{dist → typings}/packer/base.d.ts +0 -0
  93. package/{dist → typings}/packer/index.d.ts +0 -0
  94. package/{dist → typings}/packer/pack.d.ts +0 -0
  95. package/{dist → typings}/packer/unpack.d.ts +0 -0
  96. package/{dist → typings}/plugins/console/record/error-stack-parser.d.ts +0 -0
  97. package/{dist → typings}/plugins/console/record/index.d.ts +3 -2
  98. package/{dist → typings}/plugins/console/record/stringify.d.ts +0 -0
  99. package/{dist → typings}/plugins/console/replay/index.d.ts +2 -2
  100. package/{dist → typings}/plugins/sequential-id/record/index.d.ts +0 -0
  101. package/{dist → typings}/plugins/sequential-id/replay/index.d.ts +0 -0
  102. package/{dist → typings}/record/iframe-manager.d.ts +1 -1
  103. package/{dist → typings}/record/index.d.ts +0 -0
  104. package/{dist → typings}/record/mutation.d.ts +5 -8
  105. package/typings/record/observer.d.ts +7 -0
  106. package/{dist → typings}/record/observers/canvas/2d.d.ts +0 -0
  107. package/{dist → typings}/record/observers/canvas/canvas-manager.d.ts +0 -0
  108. package/{dist → typings}/record/observers/canvas/canvas.d.ts +0 -0
  109. package/{dist → typings}/record/observers/canvas/serialize-args.d.ts +1 -1
  110. package/{dist → typings}/record/observers/canvas/webgl.d.ts +0 -0
  111. package/typings/record/observers/canvas/webgl2.d.ts +2 -0
  112. package/typings/record/shadow-dom-manager.d.ts +21 -0
  113. package/{dist → typings}/replay/canvas/2d.d.ts +0 -0
  114. package/{dist → typings}/replay/canvas/index.d.ts +0 -0
  115. package/{dist → typings}/replay/canvas/webgl.d.ts +0 -0
  116. package/{dist → typings}/replay/index.d.ts +1 -0
  117. package/{dist → typings}/replay/machine.d.ts +0 -0
  118. package/{dist → typings}/replay/smoothscroll.d.ts +0 -0
  119. package/{dist → typings}/replay/styles/inject-style.d.ts +0 -0
  120. package/{dist → typings}/replay/timer.d.ts +0 -0
  121. package/{dist → typings}/replay/virtual-styles.d.ts +1 -1
  122. package/{dist → typings}/rrdom/index.d.ts +0 -0
  123. package/{dist → typings}/rrdom/tree-node.d.ts +0 -0
  124. package/{dist → typings}/types.d.ts +7 -8
  125. package/{dist → typings}/utils.d.ts +3 -4
  126. package/CHANGELOG.md +0 -26
  127. package/README.md +0 -124
  128. package/README.zh_CN.md +0 -122
  129. package/dist/entries/all.d.ts +0 -4
  130. package/dist/image-bitmap-data-url-worker.worker.js +0 -257
  131. package/dist/image-bitmap-data-url-worker.worker.js.map +0 -1
  132. package/dist/image-bitmap-data-url.worker.worker.js +0 -2
  133. package/dist/image-bitmap-data-url.worker.worker.js.map +0 -1
  134. package/dist/image-bitmap-data-url.worker.worker.worker.js +0 -2
  135. package/dist/image-bitmap-data-url.worker.worker.worker.js.map +0 -1
  136. package/dist/index.css +0 -82
  137. package/dist/index.css.map +0 -1
  138. package/dist/index.js.LICENSE.txt +0 -14
  139. package/dist/index.js.map +0 -1
  140. package/dist/record/observer.d.ts +0 -11
  141. package/dist/record/shadow-dom-manager.d.ts +0 -34
  142. package/dist/record/workers/image-bitmap-data-url-worker.d.ts +0 -5
  143. package/dist/record/workers/image-bitmap-data-url.worker.d.ts +0 -5
  144. package/dist/replay/canvas/deserialize-args.d.ts +0 -7
  145. package/dist/snapshot/css.d.ts +0 -92
  146. package/dist/snapshot/index.d.ts +0 -5
  147. package/dist/snapshot/rebuild.d.ts +0 -19
  148. package/dist/snapshot/snapshot.d.ts +0 -49
  149. package/dist/snapshot/types.d.ts +0 -99
  150. package/dist/snapshot/utils.d.ts +0 -11
package/README.zh_CN.md DELETED
@@ -1,122 +0,0 @@
1
- <p align="center">
2
- <img width="100px" height="100px" src="https://www.rrweb.io/favicon.png">
3
- </p>
4
- <p align="center">
5
- <a href="https://www.rrweb.io/" style="font-weight: bold">Try rrweb</a>
6
- </p>
7
-
8
- # rrweb
9
-
10
- **[rrweb 社区新的征程](http://www.myriptide.com/rrweb-community-cn/)**
11
-
12
- [![Join the chat at slack](https://img.shields.io/badge/slack-@rrweb-teal.svg?logo=slack)](https://join.slack.com/t/rrweb/shared_invite/zt-siwoc6hx-uWay3s2wyG8t5GpZVb8rWg)
13
- ![total gzip size](https://img.badgesize.io/https://cdn.jsdelivr.net/npm/rrweb@latest/dist/rrweb.min.js?compression=gzip&label=total%20gzip%20size)
14
- ![recorder gzip size](https://img.badgesize.io/https://cdn.jsdelivr.net/npm/rrweb@latest/dist/record/rrweb-record.min.js?compression=gzip&label=recorder%20gzip%20size)
15
- [![](https://data.jsdelivr.com/v1/package/npm/rrweb/badge)](https://www.jsdelivr.com/package/npm/rrweb)
16
-
17
- > 我已开通 Github Sponsor, 您可以通过赞助的形式帮助 rrweb 的开发。
18
-
19
- rrweb 是 'record and replay the web' 的简写,旨在利用现代浏览器所提供的强大 API 录制并回放任意 web 界面中的用户操作。
20
-
21
- ## 指南
22
-
23
- [**📚 rrweb 使用指南 📚**](./guide.zh_CN.md)
24
-
25
- [**🍳 场景示例 🍳**](./docs/recipes/index.zh_CN.md)
26
-
27
- ## 项目结构
28
-
29
- rrweb 主要由 3 部分组成:
30
-
31
- - **[rrweb-snapshot](https://github.com/rrweb-io/rrweb-snapshot)**,包含 snapshot 和 rebuild 两个功能。snapshot 用于将 DOM 及其状态转化为可序列化的数据结构并添加唯一标识;rebuild 则是将 snapshot 记录的数据结构重建为对应的 DOM。
32
- - **[rrweb](https://github.com/rrweb-io/rrweb)**,包含 record 和 replay 两个功能。record 用于记录 DOM 中的所有变更(mutation);replay 则是将记录的变更按照对应的时间一一重放。
33
- - **[rrweb-player](https://github.com/rrweb-io/rrweb-player)**,为 rrweb 提供一套 UI 控件,提供基于 GUI 的暂停、快进、拖拽至任意时间点播放等功能。
34
-
35
- ## Roadmap
36
-
37
- - rrdom: rrweb 数据专用的 DOM 实现 [#419](https://github.com/rrweb-io/rrweb/issues/419)
38
- - storage engine: 对大规模 rrweb 数据进行去重
39
- - 更多的 E2E 测试
40
- - 在常见场景下对 mutation 数据进行压缩
41
- - 基于新的插件 API 提供更多插件,包括:
42
- - XHR 插件
43
- - fetch 插件
44
- - GraphQL 插件
45
- - ...
46
-
47
- ## Internal Design
48
-
49
- - [序列化](./docs/serialization.zh_CN.md)
50
- - [增量快照](./docs/observer.zh_CN.md)
51
- - [回放](./docs/replay.zh_CN.md)
52
- - [沙盒](./docs/sandbox.zh_CN.md)
53
-
54
- ## Contribute Guide
55
-
56
- 为了保证录制和回放时可以对应到一致的数据结构,rrweb 采用 typescript 开发以提供更强的类型支持。
57
-
58
- [Typescript 手册](https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html)
59
-
60
- 1. Fork 需要修改的 rrweb 组件仓库
61
- 2. `npm install` 安装所需依赖
62
- 3. 修改代码并通过测试
63
- 4. 提交代码,创建 pull request
64
-
65
- 除了添加集成测试和单元测试之外,rrweb 还提供了交互式的测试工具。
66
-
67
- [使用 REPL 工具](./guide.zh_CN.md#REPL-工具)
68
-
69
- ## Core Team Members
70
-
71
- <table>
72
- <tr>
73
- <td align="center">
74
- <a href="https://github.com/Yuyz0112">
75
- <img
76
- src="https://avatars.githubusercontent.com/u/13651389?s=100"
77
- width="100px;"
78
- alt=""
79
- />
80
- <br /><sub><b>Yuyz0112</b></sub>
81
- </a>
82
- </td>
83
- <td align="center">
84
- <a href="https://github.com/Mark-Fenng">
85
- <img
86
- src="https://avatars.githubusercontent.com/u/27533910?s=100"
87
- width="100px;"
88
- alt=""
89
- />
90
- <br /><sub><b>Mark-Fenng</b></sub>
91
- </a>
92
- </td>
93
- <td align="center">
94
- <a href="https://github.com/eoghanmurray">
95
- <img
96
- src="https://avatars.githubusercontent.com/u/156780?s=100"
97
- width="100px;"
98
- alt=""
99
- />
100
- <br /><sub><b>eoghanmurray</b></sub>
101
- </a>
102
- </td>
103
- <td align="center">
104
- <a href="https://github.com/Juice10">
105
- <img
106
- src="https://avatars.githubusercontent.com/u/4106?s=100"
107
- width="100px;"
108
- alt=""
109
- />
110
- <br /><sub><b>Juice10</b></sub>
111
- </a>
112
- </td>
113
- </tr>
114
- </table>
115
-
116
- ## Who's using rrweb
117
-
118
- <p align="center">
119
- <a href="http://www.smartx.com/" target="_blank">
120
- <img width="260px" src="https://www.rrweb.io/logos/smartx.png">
121
- </a>
122
- </p>
@@ -1,4 +0,0 @@
1
- export * from '../index';
2
- export * from '../packer';
3
- export * from '../plugins/console/record';
4
- export * from '../plugins/console/replay';
@@ -1,257 +0,0 @@
1
- /******/ (() => { // webpackBootstrap
2
- /******/ "use strict";
3
- /******/ var __webpack_modules__ = ({
4
-
5
- /***/ "./node_modules/base64-arraybuffer/dist/base64-arraybuffer.es5.js":
6
- /*!************************************************************************!*\
7
- !*** ./node_modules/base64-arraybuffer/dist/base64-arraybuffer.es5.js ***!
8
- \************************************************************************/
9
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
10
-
11
- __webpack_require__.r(__webpack_exports__);
12
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
13
- /* harmony export */ "decode": () => (/* binding */ decode),
14
- /* harmony export */ "encode": () => (/* binding */ encode)
15
- /* harmony export */ });
16
- /*
17
- * base64-arraybuffer 1.0.1 <https://github.com/niklasvh/base64-arraybuffer>
18
- * Copyright (c) 2021 Niklas von Hertzen <https://hertzen.com>
19
- * Released under MIT License
20
- */
21
- var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
22
- // Use a lookup table to find the index.
23
- var lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);
24
- for (var i = 0; i < chars.length; i++) {
25
- lookup[chars.charCodeAt(i)] = i;
26
- }
27
- var encode = function (arraybuffer) {
28
- var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';
29
- for (i = 0; i < len; i += 3) {
30
- base64 += chars[bytes[i] >> 2];
31
- base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];
32
- base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];
33
- base64 += chars[bytes[i + 2] & 63];
34
- }
35
- if (len % 3 === 2) {
36
- base64 = base64.substring(0, base64.length - 1) + '=';
37
- }
38
- else if (len % 3 === 1) {
39
- base64 = base64.substring(0, base64.length - 2) + '==';
40
- }
41
- return base64;
42
- };
43
- var decode = function (base64) {
44
- var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;
45
- if (base64[base64.length - 1] === '=') {
46
- bufferLength--;
47
- if (base64[base64.length - 2] === '=') {
48
- bufferLength--;
49
- }
50
- }
51
- var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);
52
- for (i = 0; i < len; i += 4) {
53
- encoded1 = lookup[base64.charCodeAt(i)];
54
- encoded2 = lookup[base64.charCodeAt(i + 1)];
55
- encoded3 = lookup[base64.charCodeAt(i + 2)];
56
- encoded4 = lookup[base64.charCodeAt(i + 3)];
57
- bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);
58
- bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);
59
- bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);
60
- }
61
- return arraybuffer;
62
- };
63
-
64
-
65
- //# sourceMappingURL=base64-arraybuffer.es5.js.map
66
-
67
-
68
- /***/ }),
69
-
70
- /***/ "./node_modules/ts-loader/index.js!./src/record/workers/image-bitmap-data-url-worker.ts":
71
- /*!**********************************************************************************************!*\
72
- !*** ./node_modules/ts-loader/index.js!./src/record/workers/image-bitmap-data-url-worker.ts ***!
73
- \**********************************************************************************************/
74
- /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
75
-
76
-
77
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
78
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
79
- return new (P || (P = Promise))(function (resolve, reject) {
80
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
81
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
82
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
83
- step((generator = generator.apply(thisArg, _arguments || [])).next());
84
- });
85
- };
86
- var __generator = (this && this.__generator) || function (thisArg, body) {
87
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
88
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
89
- function verb(n) { return function (v) { return step([n, v]); }; }
90
- function step(op) {
91
- if (f) throw new TypeError("Generator is already executing.");
92
- while (_) try {
93
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
94
- if (y = 0, t) op = [op[0] & 2, t.value];
95
- switch (op[0]) {
96
- case 0: case 1: t = op; break;
97
- case 4: _.label++; return { value: op[1], done: false };
98
- case 5: _.label++; y = op[1]; op = [0]; continue;
99
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
100
- default:
101
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
102
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
103
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
104
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
105
- if (t[2]) _.ops.pop();
106
- _.trys.pop(); continue;
107
- }
108
- op = body.call(thisArg, _);
109
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
110
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
111
- }
112
- };
113
- Object.defineProperty(exports, "__esModule", ({ value: true }));
114
- var base64_arraybuffer_1 = __webpack_require__(/*! base64-arraybuffer */ "./node_modules/base64-arraybuffer/dist/base64-arraybuffer.es5.js");
115
- var lastBlobMap = new Map();
116
- var transparentBlobMap = new Map();
117
- function getTransparentBlobFor(width, height) {
118
- return __awaiter(this, void 0, void 0, function () {
119
- var id, offscreen, blob, arrayBuffer, base64;
120
- return __generator(this, function (_a) {
121
- switch (_a.label) {
122
- case 0:
123
- id = "".concat(width, "-").concat(height);
124
- if (transparentBlobMap.has(id))
125
- return [2, transparentBlobMap.get(id)];
126
- offscreen = new OffscreenCanvas(width, height);
127
- offscreen.getContext('2d');
128
- return [4, offscreen.convertToBlob()];
129
- case 1:
130
- blob = _a.sent();
131
- return [4, blob.arrayBuffer()];
132
- case 2:
133
- arrayBuffer = _a.sent();
134
- base64 = (0, base64_arraybuffer_1.encode)(arrayBuffer);
135
- transparentBlobMap.set(id, base64);
136
- return [2, base64];
137
- }
138
- });
139
- });
140
- }
141
- var worker = self;
142
- worker.onmessage = function (e) {
143
- return __awaiter(this, void 0, void 0, function () {
144
- var _a, id, bitmap, width, height, transparentBase64, offscreen, ctx, blob, type, arrayBuffer, base64, _b;
145
- return __generator(this, function (_c) {
146
- switch (_c.label) {
147
- case 0:
148
- if (!('OffscreenCanvas' in globalThis))
149
- return [2, worker.postMessage({ id: e.data.id })];
150
- _a = e.data, id = _a.id, bitmap = _a.bitmap, width = _a.width, height = _a.height;
151
- transparentBase64 = getTransparentBlobFor(width, height);
152
- offscreen = new OffscreenCanvas(width, height);
153
- ctx = offscreen.getContext('2d');
154
- ctx.drawImage(bitmap, 0, 0);
155
- bitmap.close();
156
- return [4, offscreen.convertToBlob()];
157
- case 1:
158
- blob = _c.sent();
159
- type = blob.type;
160
- return [4, blob.arrayBuffer()];
161
- case 2:
162
- arrayBuffer = _c.sent();
163
- base64 = (0, base64_arraybuffer_1.encode)(arrayBuffer);
164
- _b = !lastBlobMap.has(id);
165
- if (!_b) return [3, 4];
166
- return [4, transparentBase64];
167
- case 3:
168
- _b = (_c.sent()) === base64;
169
- _c.label = 4;
170
- case 4:
171
- if (_b) {
172
- lastBlobMap.set(id, base64);
173
- return [2, worker.postMessage({ id: id })];
174
- }
175
- if (lastBlobMap.get(id) === base64)
176
- return [2, worker.postMessage({ id: id })];
177
- worker.postMessage({
178
- id: id,
179
- type: type,
180
- base64: base64,
181
- width: width,
182
- height: height,
183
- });
184
- lastBlobMap.set(id, base64);
185
- return [2];
186
- }
187
- });
188
- });
189
- };
190
-
191
-
192
- /***/ })
193
-
194
- /******/ });
195
- /************************************************************************/
196
- /******/ // The module cache
197
- /******/ var __webpack_module_cache__ = {};
198
- /******/
199
- /******/ // The require function
200
- /******/ function __webpack_require__(moduleId) {
201
- /******/ // Check if module is in cache
202
- /******/ if(__webpack_module_cache__[moduleId]) {
203
- /******/ return __webpack_module_cache__[moduleId].exports;
204
- /******/ }
205
- /******/ // Create a new module (and put it into the cache)
206
- /******/ var module = __webpack_module_cache__[moduleId] = {
207
- /******/ // no module.id needed
208
- /******/ // no module.loaded needed
209
- /******/ exports: {}
210
- /******/ };
211
- /******/
212
- /******/ // Execute the module function
213
- /******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
214
- /******/
215
- /******/ // Return the exports of the module
216
- /******/ return module.exports;
217
- /******/ }
218
- /******/
219
- /************************************************************************/
220
- /******/ /* webpack/runtime/define property getters */
221
- /******/ (() => {
222
- /******/ // define getter functions for harmony exports
223
- /******/ __webpack_require__.d = (exports, definition) => {
224
- /******/ for(var key in definition) {
225
- /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
226
- /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
227
- /******/ }
228
- /******/ }
229
- /******/ };
230
- /******/ })();
231
- /******/
232
- /******/ /* webpack/runtime/hasOwnProperty shorthand */
233
- /******/ (() => {
234
- /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
235
- /******/ })();
236
- /******/
237
- /******/ /* webpack/runtime/make namespace object */
238
- /******/ (() => {
239
- /******/ // define __esModule on exports
240
- /******/ __webpack_require__.r = (exports) => {
241
- /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
242
- /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
243
- /******/ }
244
- /******/ Object.defineProperty(exports, '__esModule', { value: true });
245
- /******/ };
246
- /******/ })();
247
- /******/
248
- /************************************************************************/
249
- /******/
250
- /******/ // startup
251
- /******/ // Load entry module and return exports
252
- /******/ // This entry module is referenced by other modules so it can't be inlined
253
- /******/ var __webpack_exports__ = __webpack_require__("./node_modules/ts-loader/index.js!./src/record/workers/image-bitmap-data-url-worker.ts");
254
- /******/
255
- /******/ })()
256
- ;
257
- //# sourceMappingURL=image-bitmap-data-url-worker.worker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack://highlightLib/./node_modules/base64-arraybuffer/dist/base64-arraybuffer.es5.js","webpack://highlightLib/./src/record/workers/image-bitmap-data-url-worker.ts","webpack://highlightLib/webpack/bootstrap","webpack://highlightLib/webpack/runtime/define property getters","webpack://highlightLib/webpack/runtime/hasOwnProperty shorthand","webpack://highlightLib/webpack/runtime/make namespace object","webpack://highlightLib/webpack/startup"],"names":[],"mappings":"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","file":"image-bitmap-data-url-worker.worker.js","sourcesContent":["/*\n * base64-arraybuffer 1.0.1 <https://github.com/niklasvh/base64-arraybuffer>\n * Copyright (c) 2021 Niklas von Hertzen <https://hertzen.com>\n * Released under MIT License\n */\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nvar encode = function (arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nvar decode = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n\nexport { decode, encode };\n//# sourceMappingURL=base64-arraybuffer.es5.js.map\n","import { encode } from 'base64-arraybuffer';\nimport {\n ImageBitmapDataURLWorkerParams,\n ImageBitmapDataURLWorkerResponse,\n} from '../../types';\n\nconst lastBlobMap: Map<number, string> = new Map();\nconst transparentBlobMap: Map<string, string> = new Map();\n\nexport interface ImageBitmapDataURLRequestWorker {\n postMessage: (\n message: ImageBitmapDataURLWorkerParams,\n transfer?: [ImageBitmap],\n ) => void;\n onmessage: (message: MessageEvent<ImageBitmapDataURLWorkerResponse>) => void;\n}\n\ninterface ImageBitmapDataURLResponseWorker {\n onmessage:\n | null\n | ((message: MessageEvent<ImageBitmapDataURLWorkerParams>) => void);\n postMessage(e: ImageBitmapDataURLWorkerResponse): void;\n}\n\nasync function getTransparentBlobFor(\n width: number,\n height: number,\n): Promise<string> {\n const id = `${width}-${height}`;\n if (transparentBlobMap.has(id)) return transparentBlobMap.get(id)!;\n const offscreen = new OffscreenCanvas(width, height);\n offscreen.getContext('2d'); // creates rendering context for `converToBlob`\n const blob = await offscreen.convertToBlob(); // takes a while\n const arrayBuffer = await blob.arrayBuffer();\n const base64 = encode(arrayBuffer); // cpu intensive\n transparentBlobMap.set(id, base64);\n return base64;\n}\n\n// `as any` because: https://github.com/Microsoft/TypeScript/issues/20595\nconst worker: ImageBitmapDataURLResponseWorker = self;\n\nworker.onmessage = async function (e) {\n if (!('OffscreenCanvas' in globalThis))\n return worker.postMessage({ id: e.data.id });\n\n const { id, bitmap, width, height } = e.data;\n\n const transparentBase64 = getTransparentBlobFor(width, height);\n\n const offscreen = new OffscreenCanvas(width, height);\n const ctx = offscreen.getContext('2d')!;\n\n ctx.drawImage(bitmap, 0, 0);\n bitmap.close();\n const blob = await offscreen.convertToBlob(); // takes a while\n const type = blob.type;\n const arrayBuffer = await blob.arrayBuffer();\n const base64 = encode(arrayBuffer); // cpu intensive\n\n // on first try we should check if canvas is transparent,\n // no need to save it's contents in that case\n if (!lastBlobMap.has(id) && (await transparentBase64) === base64) {\n lastBlobMap.set(id, base64);\n return worker.postMessage({ id });\n }\n\n if (lastBlobMap.get(id) === base64) return worker.postMessage({ id }); // unchanged\n worker.postMessage({\n id,\n type,\n base64,\n width,\n height,\n });\n lastBlobMap.set(id, base64);\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tif(__webpack_module_cache__[moduleId]) {\n\t\treturn __webpack_module_cache__[moduleId].exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./node_modules/ts-loader/index.js!./src/record/workers/image-bitmap-data-url-worker.ts\");\n"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- (()=>{"use strict";var r={477:r=>{r.exports=function(r,t,e,o){var n=self||window;try{try{var i;try{i=new n.Blob([r])}catch(t){(i=new(n.BlobBuilder||n.WebKitBlobBuilder||n.MozBlobBuilder||n.MSBlobBuilder)).append(r),i=i.getBlob()}var c=n.URL||n.webkitURL,a=c.createObjectURL(i),p=new n[t](a,e);return c.revokeObjectURL(a),p}catch(o){return new n[t]("data:application/javascript,".concat(encodeURIComponent(r)),e)}}catch(r){if(!o)throw Error("Inline worker is not supported");return new n[t](o,e)}}}},t={};function e(o){if(t[o])return t[o].exports;var n=t[o]={exports:{}};return r[o](n,n.exports,e),n.exports}e.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(r){if("object"==typeof window)return window}}(),(()=>{var r;e.g.importScripts&&(r=e.g.location+"");var t=e.g.document;if(!r&&t&&(t.currentScript&&(r=t.currentScript.src),!r)){var o=t.getElementsByTagName("script");o.length&&(r=o[o.length-1].src)}if(!r)throw new Error("Automatic publicPath is not supported in this browser");r=r.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),e.p=r})(),e(477)})();
2
- //# sourceMappingURL=image-bitmap-data-url.worker.worker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack://highlightLib/./node_modules/worker-loader/dist/runtime/inline.js","webpack://highlightLib/webpack/bootstrap","webpack://highlightLib/webpack/runtime/global","webpack://highlightLib/webpack/runtime/publicPath","webpack://highlightLib/./src/record/workers/image-bitmap-data-url.worker.ts"],"names":["module","exports","content","workerConstructor","workerOptions","url","globalScope","self","window","blob","Blob","e","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","append","getBlob","URL","webkitURL","objectURL","createObjectURL","worker","revokeObjectURL","concat","encodeURIComponent","Error","__webpack_module_cache__","__webpack_require__","moduleId","__webpack_modules__","g","globalThis","this","Function","scriptUrl","importScripts","location","document","currentScript","src","scripts","getElementsByTagName","length","replace","p"],"mappings":"kCAKAA,EAAOC,QAAU,SAAUC,EAASC,EAAmBC,EAAeC,GACpE,IAAIC,EAAcC,MAAQC,OAE1B,IACE,IACE,IAAIC,EAEJ,IAEEA,EAAO,IAAIH,EAAYI,KAAK,CAACR,IAC7B,MAAOS,IAGPF,EAAO,IADWH,EAAYM,aAAeN,EAAYO,mBAAqBP,EAAYQ,gBAAkBR,EAAYS,gBAEnHC,OAAOd,GACZO,EAAOA,EAAKQ,UAGd,IAAIC,EAAMZ,EAAYY,KAAOZ,EAAYa,UACrCC,EAAYF,EAAIG,gBAAgBZ,GAChCa,EAAS,IAAIhB,EAAYH,GAAmBiB,EAAWhB,GAE3D,OADAc,EAAIK,gBAAgBH,GACbE,EACP,MAAOX,GACP,OAAO,IAAIL,EAAYH,GAAmB,+BAA+BqB,OAAOC,mBAAmBvB,IAAWE,IAEhH,MAAOO,GACP,IAAKN,EACH,MAAMqB,MAAM,kCAGd,OAAO,IAAIpB,EAAYH,GAAmBE,EAAKD,OCnC/CuB,EAA2B,GAG/B,SAASC,EAAoBC,GAE5B,GAAGF,EAAyBE,GAC3B,OAAOF,EAAyBE,GAAU5B,QAG3C,IAAID,EAAS2B,EAAyBE,GAAY,CAGjD5B,QAAS,IAOV,OAHA6B,EAAoBD,GAAU7B,EAAQA,EAAOC,QAAS2B,GAG/C5B,EAAOC,QCpBf2B,EAAoBG,EAAI,WACvB,GAA0B,iBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAOC,MAAQ,IAAIC,SAAS,cAAb,GACd,MAAOvB,GACR,GAAsB,iBAAXH,OAAqB,OAAOA,QALjB,G,MCAxB,IAAI2B,EACAP,EAAoBG,EAAEK,gBAAeD,EAAYP,EAAoBG,EAAEM,SAAW,IACtF,IAAIC,EAAWV,EAAoBG,EAAEO,SACrC,IAAKH,GAAaG,IACbA,EAASC,gBACZJ,EAAYG,EAASC,cAAcC,MAC/BL,GAAW,CACf,IAAIM,EAAUH,EAASI,qBAAqB,UACzCD,EAAQE,SAAQR,EAAYM,EAAQA,EAAQE,OAAS,GAAGH,KAK7D,IAAKL,EAAW,MAAM,IAAIT,MAAM,yDAChCS,EAAYA,EAAUS,QAAQ,OAAQ,IAAIA,QAAQ,QAAS,IAAIA,QAAQ,YAAa,KACpFhB,EAAoBiB,EAAIV,G,GCdxB,Q","file":"image-bitmap-data-url.worker.worker.js","sourcesContent":["\"use strict\";\n\n/* eslint-env browser */\n\n/* eslint-disable no-undef, no-use-before-define, new-cap */\nmodule.exports = function (content, workerConstructor, workerOptions, url) {\n var globalScope = self || window;\n\n try {\n try {\n var blob;\n\n try {\n // New API\n blob = new globalScope.Blob([content]);\n } catch (e) {\n // BlobBuilder = Deprecated, but widely implemented\n var BlobBuilder = globalScope.BlobBuilder || globalScope.WebKitBlobBuilder || globalScope.MozBlobBuilder || globalScope.MSBlobBuilder;\n blob = new BlobBuilder();\n blob.append(content);\n blob = blob.getBlob();\n }\n\n var URL = globalScope.URL || globalScope.webkitURL;\n var objectURL = URL.createObjectURL(blob);\n var worker = new globalScope[workerConstructor](objectURL, workerOptions);\n URL.revokeObjectURL(objectURL);\n return worker;\n } catch (e) {\n return new globalScope[workerConstructor](\"data:application/javascript,\".concat(encodeURIComponent(content)), workerOptions);\n }\n } catch (e) {\n if (!url) {\n throw Error(\"Inline worker is not supported\");\n }\n\n return new globalScope[workerConstructor](url, workerOptions);\n }\n};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tif(__webpack_module_cache__[moduleId]) {\n\t\treturn __webpack_module_cache__[moduleId].exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","\nimport worker from \"!!../../../node_modules/worker-loader/dist/runtime/inline.js\";\n\nexport default function Worker_fn() {\n return worker(\"(()=>{\\\"use strict\\\";var e={247:(e,t,n)=>{n.r(t),n.d(t,{decode:()=>s,encode:()=>i});for(var r=\\\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\\\",o=\\\"undefined\\\"==typeof Uint8Array?[]:new Uint8Array(256),a=0;a<r.length;a++)o[r.charCodeAt(a)]=a;var i=function(e){var t,n=new Uint8Array(e),o=n.length,a=\\\"\\\";for(t=0;t<o;t+=3)a+=r[n[t]>>2],a+=r[(3&n[t])<<4|n[t+1]>>4],a+=r[(15&n[t+1])<<2|n[t+2]>>6],a+=r[63&n[t+2]];return o%3==2?a=a.substring(0,a.length-1)+\\\"=\\\":o%3==1&&(a=a.substring(0,a.length-2)+\\\"==\\\"),a},s=function(e){var t,n,r,a,i,s=.75*e.length,c=e.length,u=0;\\\"=\\\"===e[e.length-1]&&(s--,\\\"=\\\"===e[e.length-2]&&s--);var l=new ArrayBuffer(s),f=new Uint8Array(l);for(t=0;t<c;t+=4)n=o[e.charCodeAt(t)],r=o[e.charCodeAt(t+1)],a=o[e.charCodeAt(t+2)],i=o[e.charCodeAt(t+3)],f[u++]=n<<2|r>>4,f[u++]=(15&r)<<4|a>>2,f[u++]=(3&a)<<6|63&i;return l}},212:function(e,t,n){var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,a){function i(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},\\\"function\\\"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError(\\\"Generator is already executing.\\\");for(;i;)try{if(n=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,r=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!((o=(o=i.trys).length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1],o=a;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(a);break}o[2]&&i.ops.pop(),i.trys.pop();continue}a=t.call(e,i)}catch(e){a=[6,e],r=0}finally{n=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,s])}}};Object.defineProperty(t,\\\"__esModule\\\",{value:!0});var a=n(247),i=new Map,s=new Map,c=self;console.log(\\\"worker initialized\\\"),c.onmessage=function(e){return r(this,void 0,void 0,(function(){var t,n,u,l,f,d,h,p,y,b,g,v;return o(this,(function(w){switch(w.label){case 0:return\\\"OffscreenCanvas\\\"in globalThis?(t=e.data,n=t.id,u=t.bitmap,l=t.width,f=t.height,d=function(e,t){return r(this,void 0,void 0,(function(){var n,r,i,c;return o(this,(function(o){switch(o.label){case 0:return n=\\\"\\\".concat(e,\\\"-\\\").concat(t),s.has(n)?[2,s.get(n)]:((r=new OffscreenCanvas(e,t)).getContext(\\\"2d\\\"),[4,r.convertToBlob()]);case 1:return[4,o.sent().arrayBuffer()];case 2:return i=o.sent(),c=(0,a.encode)(i),s.set(n,c),[2,c]}}))}))}(l,f),(h=new OffscreenCanvas(l,f)).getContext(\\\"2d\\\").drawImage(u,0,0),u.close(),[4,h.convertToBlob()]):[2,c.postMessage({id:e.data.id})];case 1:return p=w.sent(),y=p.type,[4,p.arrayBuffer()];case 2:return b=w.sent(),g=(0,a.encode)(b),(v=!i.has(n))?[4,d]:[3,4];case 3:v=w.sent()===g,w.label=4;case 4:return v?(i.set(n,g),[2,c.postMessage({id:n})]):i.get(n)===g?[2,c.postMessage({id:n})]:(c.postMessage({id:n,type:y,base64:g,width:l,height:f}),i.set(n,g),[2])}}))}))}}},t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={exports:{}};return e[r].call(o.exports,o,o.exports,n),o.exports}n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{\\\"undefined\\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\\\"Module\\\"}),Object.defineProperty(e,\\\"__esModule\\\",{value:!0})},n(212)})();\\n//# sourceMappingURL=image-bitmap-data-url.worker.worker.worker.js.map\", \"Worker\", undefined, __webpack_public_path__ + \"image-bitmap-data-url.worker.worker.worker.js\");\n}\n"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- (()=>{"use strict";var e={247:(e,t,n)=>{n.r(t),n.d(t,{decode:()=>s,encode:()=>i});for(var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o="undefined"==typeof Uint8Array?[]:new Uint8Array(256),a=0;a<r.length;a++)o[r.charCodeAt(a)]=a;var i=function(e){var t,n=new Uint8Array(e),o=n.length,a="";for(t=0;t<o;t+=3)a+=r[n[t]>>2],a+=r[(3&n[t])<<4|n[t+1]>>4],a+=r[(15&n[t+1])<<2|n[t+2]>>6],a+=r[63&n[t+2]];return o%3==2?a=a.substring(0,a.length-1)+"=":o%3==1&&(a=a.substring(0,a.length-2)+"=="),a},s=function(e){var t,n,r,a,i,s=.75*e.length,c=e.length,u=0;"="===e[e.length-1]&&(s--,"="===e[e.length-2]&&s--);var l=new ArrayBuffer(s),f=new Uint8Array(l);for(t=0;t<c;t+=4)n=o[e.charCodeAt(t)],r=o[e.charCodeAt(t+1)],a=o[e.charCodeAt(t+2)],i=o[e.charCodeAt(t+3)],f[u++]=n<<2|r>>4,f[u++]=(15&r)<<4|a>>2,f[u++]=(3&a)<<6|63&i;return l}},212:function(e,t,n){var r=this&&this.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(o,a){function i(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,s)}c((r=r.apply(e,t||[])).next())}))},o=this&&this.__generator||function(e,t){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,r=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!((o=(o=i.trys).length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){i.label=a[1];break}if(6===a[0]&&i.label<o[1]){i.label=o[1],o=a;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(a);break}o[2]&&i.ops.pop(),i.trys.pop();continue}a=t.call(e,i)}catch(e){a=[6,e],r=0}finally{n=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,s])}}};Object.defineProperty(t,"__esModule",{value:!0});var a=n(247),i=new Map,s=new Map,c=self;console.log("worker initialized"),c.onmessage=function(e){return r(this,void 0,void 0,(function(){var t,n,u,l,f,d,h,p,y,b,g,v;return o(this,(function(w){switch(w.label){case 0:return"OffscreenCanvas"in globalThis?(t=e.data,n=t.id,u=t.bitmap,l=t.width,f=t.height,d=function(e,t){return r(this,void 0,void 0,(function(){var n,r,i,c;return o(this,(function(o){switch(o.label){case 0:return n="".concat(e,"-").concat(t),s.has(n)?[2,s.get(n)]:((r=new OffscreenCanvas(e,t)).getContext("2d"),[4,r.convertToBlob()]);case 1:return[4,o.sent().arrayBuffer()];case 2:return i=o.sent(),c=(0,a.encode)(i),s.set(n,c),[2,c]}}))}))}(l,f),(h=new OffscreenCanvas(l,f)).getContext("2d").drawImage(u,0,0),u.close(),[4,h.convertToBlob()]):[2,c.postMessage({id:e.data.id})];case 1:return p=w.sent(),y=p.type,[4,p.arrayBuffer()];case 2:return b=w.sent(),g=(0,a.encode)(b),(v=!i.has(n))?[4,d]:[3,4];case 3:v=w.sent()===g,w.label=4;case 4:return v?(i.set(n,g),[2,c.postMessage({id:n})]):i.get(n)===g?[2,c.postMessage({id:n})]:(c.postMessage({id:n,type:y,base64:g,width:l,height:f}),i.set(n,g),[2])}}))}))}}},t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={exports:{}};return e[r].call(o.exports,o,o.exports,n),o.exports}n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n(212)})();
2
- //# sourceMappingURL=image-bitmap-data-url.worker.worker.worker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack://highlightLib/./node_modules/base64-arraybuffer/dist/base64-arraybuffer.es5.js","webpack://highlightLib/./src/record/workers/image-bitmap-data-url.worker.ts","webpack://highlightLib/webpack/bootstrap","webpack://highlightLib/webpack/runtime/define property getters","webpack://highlightLib/webpack/runtime/hasOwnProperty shorthand","webpack://highlightLib/webpack/runtime/make namespace object","webpack://highlightLib/webpack/startup"],"names":["chars","lookup","Uint8Array","i","length","charCodeAt","encode","arraybuffer","bytes","len","base64","substring","decode","encoded1","encoded2","encoded3","encoded4","bufferLength","p","ArrayBuffer","lastBlobMap","Map","transparentBlobMap","worker","self","console","log","onmessage","e","globalThis","data","id","bitmap","width","height","transparentBase64","has","get","offscreen","OffscreenCanvas","getContext","convertToBlob","arrayBuffer","set","getTransparentBlobFor","drawImage","close","postMessage","blob","type","__webpack_module_cache__","__webpack_require__","moduleId","exports","module","__webpack_modules__","call","d","definition","key","o","Object","defineProperty","enumerable","obj","prop","prototype","hasOwnProperty","r","Symbol","toStringTag","value"],"mappings":"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","file":"image-bitmap-data-url.worker.worker.worker.js","sourcesContent":["/*\n * base64-arraybuffer 1.0.1 <https://github.com/niklasvh/base64-arraybuffer>\n * Copyright (c) 2021 Niklas von Hertzen <https://hertzen.com>\n * Released under MIT License\n */\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nvar encode = function (arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nvar decode = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n\nexport { decode, encode };\n//# sourceMappingURL=base64-arraybuffer.es5.js.map\n","import { encode } from 'base64-arraybuffer';\nimport {\n ImageBitmapDataURLWorkerParams,\n ImageBitmapDataURLWorkerResponse,\n} from '../../types';\n\nconst lastBlobMap: Map<number, string> = new Map();\nconst transparentBlobMap: Map<string, string> = new Map();\n\nexport interface ImageBitmapDataURLRequestWorker {\n postMessage: (\n message: ImageBitmapDataURLWorkerParams,\n transfer?: [ImageBitmap],\n ) => void;\n onmessage: (message: MessageEvent<ImageBitmapDataURLWorkerResponse>) => void;\n}\n\ninterface ImageBitmapDataURLResponseWorker {\n onmessage:\n | null\n | ((message: MessageEvent<ImageBitmapDataURLWorkerParams>) => void);\n postMessage(e: ImageBitmapDataURLWorkerResponse): void;\n}\n\nasync function getTransparentBlobFor(\n width: number,\n height: number,\n): Promise<string> {\n const id = `${width}-${height}`;\n if (transparentBlobMap.has(id)) return transparentBlobMap.get(id)!;\n const offscreen = new OffscreenCanvas(width, height);\n offscreen.getContext('2d'); // creates rendering context for `converToBlob`\n const blob = await offscreen.convertToBlob(); // takes a while\n const arrayBuffer = await blob.arrayBuffer();\n const base64 = encode(arrayBuffer); // cpu intensive\n transparentBlobMap.set(id, base64);\n return base64;\n}\n\n// `as any` because: https://github.com/Microsoft/TypeScript/issues/20595\nconst worker: ImageBitmapDataURLResponseWorker = self;\nconsole.log('worker initialized');\n\nworker.onmessage = async function (e) {\n if (!('OffscreenCanvas' in globalThis))\n return worker.postMessage({ id: e.data.id });\n\n const { id, bitmap, width, height } = e.data;\n\n const transparentBase64 = getTransparentBlobFor(width, height);\n\n const offscreen = new OffscreenCanvas(width, height);\n const ctx = offscreen.getContext('2d')!;\n\n ctx.drawImage(bitmap, 0, 0);\n bitmap.close();\n const blob = await offscreen.convertToBlob(); // takes a while\n const type = blob.type;\n const arrayBuffer = await blob.arrayBuffer();\n const base64 = encode(arrayBuffer); // cpu intensive\n\n // on first try we should check if canvas is transparent,\n // no need to save it's contents in that case\n if (!lastBlobMap.has(id) && (await transparentBase64) === base64) {\n lastBlobMap.set(id, base64);\n return worker.postMessage({ id });\n }\n\n if (lastBlobMap.get(id) === base64) return worker.postMessage({ id }); // unchanged\n worker.postMessage({\n id,\n type,\n base64,\n width,\n height,\n });\n lastBlobMap.set(id, base64);\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tif(__webpack_module_cache__[moduleId]) {\n\t\treturn __webpack_module_cache__[moduleId].exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(212);\n"],"sourceRoot":""}
package/dist/index.css DELETED
@@ -1,82 +0,0 @@
1
- .replayer-wrapper {
2
- position: relative;
3
- }
4
- .replayer-mouse {
5
- position: absolute;
6
- width: 20px;
7
- height: 20px;
8
- transition: left 0.05s linear, top 0.05s linear;
9
- background-size: contain;
10
- background-position: center center;
11
- background-repeat: no-repeat;
12
- background-image: url('data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgdmlld0JveD0iNyA1IDE4IDE4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyOCAyOCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgaGVpZ2h0PSIzMDBweCIgd2lkdGg9IjMwMHB4Ij4NCjxwb2x5Z29uIGZpbGw9IiNGRkZGRkYiIHBvaW50cz0iOC4yLDIwLjkgOC4yLDQuOSAxOS44LDE2LjUgMTMsMTYuNSAxMi42LDE2LjYgIi8+DQo8cG9seWdvbiBmaWxsPSIjRkZGRkZGIiBwb2ludHM9IjE3LjMsMjEuNiAxMy43LDIzLjEgOSwxMiAxMi43LDEwLjUgIi8+DQo8cmVjdCB4PSIxMi41IiB5PSIxMy42IiB0cmFuc2Zvcm09Im1hdHJpeCgwLjkyMjEgLTAuMzg3MSAwLjM4NzEgMC45MjIxIC01Ljc2MDUgNi41OTA5KSIgd2lkdGg9IjIiIGhlaWdodD0iOCIvPg0KPHBvbHlnb24gcG9pbnRzPSI5LjIsNy4zIDkuMiwxOC41IDEyLjIsMTUuNiAxMi42LDE1LjUgMTcuNCwxNS41ICIvPg0KPC9zdmc+DQo=');
13
- border-color: transparent; /* otherwise we transition from black when .touch-device class is added */
14
- }
15
-
16
- .replayer-mouse::after {
17
- background: transparent;
18
- }
19
-
20
- .replayer-mouse.active::after {
21
- animation: click 0.2s ease-in-out 1;
22
- }
23
- .replayer-mouse.touch-device {
24
- background-image: none; /* there's no passive cursor on touch-only screens */
25
- width: 70px;
26
- height: 70px;
27
- border-width: 4px;
28
- border-style: solid;
29
- border-radius: 100%;
30
- margin-left: -37px;
31
- margin-top: -37px;
32
- border-color: rgba(73, 80, 246, 0);
33
- transition: left 0s linear, top 0s linear, border-color 0.2s ease-in-out;
34
- }
35
- .replayer-mouse.touch-device.touch-active {
36
- border-color: rgba(73, 80, 246, 1);
37
- transition: left 0.25s linear, top 0.25s linear, border-color 0.2s ease-in-out;
38
- }
39
- .replayer-mouse.touch-device::after {
40
- opacity: 0; /* there's no passive cursor on touch-only screens */
41
- }
42
- .replayer-mouse.touch-device.active::after {
43
- animation: touch-click 0.2s ease-in-out 1;
44
- }
45
- .replayer-mouse-tail {
46
- position: absolute;
47
- pointer-events: none;
48
- }
49
-
50
- @keyframes click {
51
- 0% {
52
- opacity: 0.3;
53
- width: 20px;
54
- height: 20px;
55
- background: transparent;
56
- }
57
- 75% {
58
- width: 24px;
59
- height: 24px;
60
- opacity: 0.8;
61
- background: #dc2626;
62
- }
63
- 100% {
64
- background: transparent;
65
- }
66
- }
67
-
68
- @keyframes touch-click {
69
- 0% {
70
- opacity: 0;
71
- width: 20px;
72
- height: 20px;
73
- }
74
- 50% {
75
- opacity: 0.5;
76
- width: 10px;
77
- height: 10px;
78
- }
79
- }
80
-
81
-
82
- /*# sourceMappingURL=index.css.map*/
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack://highlightLib/./src/replay/styles/style.css"],"names":[],"mappings":"AAAA;EACE,kBAAkB;AACpB;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,+CAA+C;EAC/C,wBAAwB;EACxB,kCAAkC;EAClC,4BAA4B;EAC5B,uzBAAuzB;EACvzB,yBAAyB,EAAE,yEAAyE;AACtG;;AAEA;EACE,uBAAuB;AACzB;;AAEA;EACE,mCAAmC;AACrC;AACA;EACE,sBAAsB,EAAE,oDAAoD;EAC5E,WAAW;EACX,YAAY;EACZ,iBAAiB;EACjB,mBAAmB;EACnB,mBAAmB;EACnB,kBAAkB;EAClB,iBAAiB;EACjB,kCAAkC;EAClC,wEAAwE;AAC1E;AACA;EACE,kCAAkC;EAClC,8EAA8E;AAChF;AACA;EACE,UAAU,EAAE,oDAAoD;AAClE;AACA;EACE,yCAAyC;AAC3C;AACA;EACE,kBAAkB;EAClB,oBAAoB;AACtB;;AAEA;EACE;IACE,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,uBAAuB;EACzB;EACA;IACE,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,mBAAmB;EACrB;EACA;IACE,uBAAuB;EACzB;AACF;;AAEA;EACE;IACE,UAAU;IACV,WAAW;IACX,YAAY;EACd;EACA;IACE,YAAY;IACZ,WAAW;IACX,YAAY;EACd;AACF","file":"index.css","sourcesContent":[".replayer-wrapper {\n position: relative;\n}\n.replayer-mouse {\n position: absolute;\n width: 20px;\n height: 20px;\n transition: left 0.05s linear, top 0.05s linear;\n background-size: contain;\n background-position: center center;\n background-repeat: no-repeat;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgdmlld0JveD0iNyA1IDE4IDE4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyOCAyOCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgaGVpZ2h0PSIzMDBweCIgd2lkdGg9IjMwMHB4Ij4NCjxwb2x5Z29uIGZpbGw9IiNGRkZGRkYiIHBvaW50cz0iOC4yLDIwLjkgOC4yLDQuOSAxOS44LDE2LjUgMTMsMTYuNSAxMi42LDE2LjYgIi8+DQo8cG9seWdvbiBmaWxsPSIjRkZGRkZGIiBwb2ludHM9IjE3LjMsMjEuNiAxMy43LDIzLjEgOSwxMiAxMi43LDEwLjUgIi8+DQo8cmVjdCB4PSIxMi41IiB5PSIxMy42IiB0cmFuc2Zvcm09Im1hdHJpeCgwLjkyMjEgLTAuMzg3MSAwLjM4NzEgMC45MjIxIC01Ljc2MDUgNi41OTA5KSIgd2lkdGg9IjIiIGhlaWdodD0iOCIvPg0KPHBvbHlnb24gcG9pbnRzPSI5LjIsNy4zIDkuMiwxOC41IDEyLjIsMTUuNiAxMi42LDE1LjUgMTcuNCwxNS41ICIvPg0KPC9zdmc+DQo=');\n border-color: transparent; /* otherwise we transition from black when .touch-device class is added */\n}\n\n.replayer-mouse::after {\n background: transparent;\n}\n\n.replayer-mouse.active::after {\n animation: click 0.2s ease-in-out 1;\n}\n.replayer-mouse.touch-device {\n background-image: none; /* there's no passive cursor on touch-only screens */\n width: 70px;\n height: 70px;\n border-width: 4px;\n border-style: solid;\n border-radius: 100%;\n margin-left: -37px;\n margin-top: -37px;\n border-color: rgba(73, 80, 246, 0);\n transition: left 0s linear, top 0s linear, border-color 0.2s ease-in-out;\n}\n.replayer-mouse.touch-device.touch-active {\n border-color: rgba(73, 80, 246, 1);\n transition: left 0.25s linear, top 0.25s linear, border-color 0.2s ease-in-out;\n}\n.replayer-mouse.touch-device::after {\n opacity: 0; /* there's no passive cursor on touch-only screens */\n}\n.replayer-mouse.touch-device.active::after {\n animation: touch-click 0.2s ease-in-out 1;\n}\n.replayer-mouse-tail {\n position: absolute;\n pointer-events: none;\n}\n\n@keyframes click {\n 0% {\n opacity: 0.3;\n width: 20px;\n height: 20px;\n background: transparent;\n }\n 75% {\n width: 24px;\n height: 24px;\n opacity: 0.8;\n background: #dc2626;\n }\n 100% {\n background: transparent;\n }\n}\n\n@keyframes touch-click {\n 0% {\n opacity: 0;\n width: 20px;\n height: 20px;\n }\n 50% {\n opacity: 0.5;\n width: 10px;\n height: 10px;\n }\n}\n"],"sourceRoot":""}
@@ -1,14 +0,0 @@
1
- /*! *****************************************************************************
2
- Copyright (c) Microsoft Corporation.
3
-
4
- Permission to use, copy, modify, and/or distribute this software for any
5
- purpose with or without fee is hereby granted.
6
-
7
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
8
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
9
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
10
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
11
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
12
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
13
- PERFORMANCE OF THIS SOFTWARE.
14
- ***************************************************************************** */