@lark-apaas/miaoda-inspector 0.1.0-alpha.1

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 (74) hide show
  1. package/LICENSE +13 -0
  2. package/README.md +1 -0
  3. package/dist/es/Inspector/Inspector.js +179 -0
  4. package/dist/es/Inspector/Overlay.js +400 -0
  5. package/dist/es/Inspector/hooks/index.js +3 -0
  6. package/dist/es/Inspector/hooks/use-effect-event.js +15 -0
  7. package/dist/es/Inspector/hooks/use-layout-effect.js +3 -0
  8. package/dist/es/Inspector/hooks/use-mouse.js +22 -0
  9. package/dist/es/Inspector/index.js +1 -0
  10. package/dist/es/Inspector/utils/fiber.js +61 -0
  11. package/dist/es/Inspector/utils/highlight.js +74 -0
  12. package/dist/es/Inspector/utils/index.js +3 -0
  13. package/dist/es/Inspector/utils/inspect.js +119 -0
  14. package/dist/es/Inspector/utils/overlay.js +20 -0
  15. package/dist/es/MiaodaInspector/MiaodaInspector.css +46 -0
  16. package/dist/es/MiaodaInspector/MiaodaInspector.js +397 -0
  17. package/dist/es/MiaodaInspector/index.js +1 -0
  18. package/dist/es/config/ui-config.js +787 -0
  19. package/dist/es/index.js +2 -0
  20. package/dist/es/types/iframe-events.js +1 -0
  21. package/dist/es/types/index.js +1 -0
  22. package/dist/es/utils/config-mapper.js +163 -0
  23. package/dist/es/utils/css.js +5 -0
  24. package/dist/es/utils/index.js +3 -0
  25. package/dist/es/utils/origin.js +19 -0
  26. package/dist/es/utils/style-calculator.js +158 -0
  27. package/dist/lib/Inspector/Inspector.js +203 -0
  28. package/dist/lib/Inspector/Overlay.js +419 -0
  29. package/dist/lib/Inspector/hooks/index.js +20 -0
  30. package/dist/lib/Inspector/hooks/use-effect-event.js +25 -0
  31. package/dist/lib/Inspector/hooks/use-layout-effect.js +13 -0
  32. package/dist/lib/Inspector/hooks/use-mouse.js +32 -0
  33. package/dist/lib/Inspector/index.js +11 -0
  34. package/dist/lib/Inspector/utils/fiber.js +95 -0
  35. package/dist/lib/Inspector/utils/highlight.js +84 -0
  36. package/dist/lib/Inspector/utils/index.js +20 -0
  37. package/dist/lib/Inspector/utils/inspect.js +153 -0
  38. package/dist/lib/Inspector/utils/overlay.js +39 -0
  39. package/dist/lib/MiaodaInspector/MiaodaInspector.css +46 -0
  40. package/dist/lib/MiaodaInspector/MiaodaInspector.js +447 -0
  41. package/dist/lib/MiaodaInspector/index.js +11 -0
  42. package/dist/lib/config/ui-config.js +797 -0
  43. package/dist/lib/index.js +21 -0
  44. package/dist/lib/types/iframe-events.js +4 -0
  45. package/dist/lib/types/index.js +47 -0
  46. package/dist/lib/utils/config-mapper.js +182 -0
  47. package/dist/lib/utils/css.js +20 -0
  48. package/dist/lib/utils/index.js +61 -0
  49. package/dist/lib/utils/origin.js +44 -0
  50. package/dist/lib/utils/style-calculator.js +207 -0
  51. package/dist/types/Inspector/Inspector.d.ts +102 -0
  52. package/dist/types/Inspector/Overlay.d.ts +71 -0
  53. package/dist/types/Inspector/hooks/index.d.ts +3 -0
  54. package/dist/types/Inspector/hooks/use-effect-event.d.ts +9 -0
  55. package/dist/types/Inspector/hooks/use-layout-effect.d.ts +2 -0
  56. package/dist/types/Inspector/hooks/use-mouse.d.ts +9 -0
  57. package/dist/types/Inspector/index.d.ts +1 -0
  58. package/dist/types/Inspector/utils/fiber.d.ts +34 -0
  59. package/dist/types/Inspector/utils/highlight.d.ts +8 -0
  60. package/dist/types/Inspector/utils/index.d.ts +3 -0
  61. package/dist/types/Inspector/utils/inspect.d.ts +110 -0
  62. package/dist/types/Inspector/utils/overlay.d.ts +30 -0
  63. package/dist/types/MiaodaInspector/MiaodaInspector.d.ts +47 -0
  64. package/dist/types/MiaodaInspector/index.d.ts +1 -0
  65. package/dist/types/config/ui-config.d.ts +49 -0
  66. package/dist/types/index.d.ts +4 -0
  67. package/dist/types/types/iframe-events.d.ts +155 -0
  68. package/dist/types/types/index.d.ts +1 -0
  69. package/dist/types/utils/config-mapper.d.ts +12 -0
  70. package/dist/types/utils/css.d.ts +2 -0
  71. package/dist/types/utils/index.d.ts +3 -0
  72. package/dist/types/utils/origin.d.ts +9 -0
  73. package/dist/types/utils/style-calculator.d.ts +19 -0
  74. package/package.json +48 -0
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ _export_star(require("./highlight"), exports);
6
+ _export_star(require("./inspect"), exports);
7
+ _export_star(require("./overlay"), exports);
8
+ function _export_star(from, to) {
9
+ Object.keys(from).forEach(function(k) {
10
+ if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
11
+ Object.defineProperty(to, k, {
12
+ enumerable: true,
13
+ get: function() {
14
+ return from[k];
15
+ }
16
+ });
17
+ }
18
+ });
19
+ return from;
20
+ }
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for (var name in all)
7
+ Object.defineProperty(target, name, {
8
+ enumerable: true,
9
+ get: all[name]
10
+ });
11
+ }
12
+ _export(exports, {
13
+ getCodeInfoFromDebugSource: function() {
14
+ return getCodeInfoFromDebugSource;
15
+ },
16
+ getCodeInfoFromProps: function() {
17
+ return getCodeInfoFromProps;
18
+ },
19
+ getCodeInfoFromFiber: function() {
20
+ return getCodeInfoFromFiber;
21
+ },
22
+ getReferenceFiber: function() {
23
+ return getReferenceFiber;
24
+ },
25
+ getElementCodeInfo: function() {
26
+ return getElementCodeInfo;
27
+ },
28
+ getNamedFiber: function() {
29
+ return getNamedFiber;
30
+ },
31
+ getElementInspect: function() {
32
+ return getElementInspect;
33
+ }
34
+ });
35
+ const _fiber = require("./fiber");
36
+ const getCodeInfoFromDebugSource = (fiber) => {
37
+ var _fiber__debugOwner;
38
+ if (!fiber)
39
+ return void 0;
40
+ var _fiber__debugSource;
41
+ const debugSource = (_fiber__debugSource = fiber._debugSource) !== null && _fiber__debugSource !== void 0 ? _fiber__debugSource : (_fiber__debugOwner = fiber._debugOwner) === null || _fiber__debugOwner === void 0 ? void 0 : _fiber__debugOwner._debugSource;
42
+ if (!debugSource)
43
+ return void 0;
44
+ const { fileName, lineNumber, columnNumber } = debugSource;
45
+ if (fileName && lineNumber) {
46
+ return {
47
+ lineNumber: String(lineNumber),
48
+ columnNumber: String(columnNumber !== null && columnNumber !== void 0 ? columnNumber : 1),
49
+ /**
50
+ * `fileName` in `_debugSource` is absolutely
51
+ * ---
52
+ *
53
+ * compatible with the incorrect `fileName: "</xxx/file>"` by [rspack](https://github.com/web-infra-dev/rspack)
54
+ */
55
+ absolutePath: fileName.match(/^<.*>$/) ? fileName.replace(/^<|>$/g, "") : fileName
56
+ };
57
+ }
58
+ return void 0;
59
+ };
60
+ const getCodeInfoFromProps = (fiber) => {
61
+ if (!(fiber === null || fiber === void 0 ? void 0 : fiber.pendingProps))
62
+ return void 0;
63
+ const { "data-miaoda-line": lineNumber, "data-miaoda-column": columnNumber, "data-miaoda-relative-path": relativePath, "data-miaoda-component-name": name, "data-miaoda-metadata": metadataStr } = fiber.pendingProps;
64
+ let metadata;
65
+ if (metadataStr) {
66
+ try {
67
+ metadata = JSON.parse(metadataStr);
68
+ } catch (e) {
69
+ metadata = void 0;
70
+ }
71
+ }
72
+ if (name && lineNumber && columnNumber && relativePath) {
73
+ return {
74
+ name,
75
+ lineNumber,
76
+ columnNumber,
77
+ relativePath,
78
+ metadata
79
+ };
80
+ }
81
+ return void 0;
82
+ };
83
+ const getCodeInfoFromFiber = (fiber) => {
84
+ const codeInfos = [
85
+ // getCodeInfoFromDebugSource(fiber),
86
+ getCodeInfoFromProps(fiber)
87
+ ].filter(Boolean);
88
+ if (!codeInfos.length)
89
+ return void 0;
90
+ return Object.assign({}, ...codeInfos);
91
+ };
92
+ const getReferenceFiber = (baseFiber) => {
93
+ if (!baseFiber)
94
+ return void 0;
95
+ const directParent = (0, _fiber.getDirectParentFiber)(baseFiber);
96
+ if (!directParent)
97
+ return void 0;
98
+ const isParentNative = (0, _fiber.isNativeTagFiber)(directParent);
99
+ const isOnlyOneChild = !directParent.child.sibling;
100
+ let referenceFiber = !isParentNative && isOnlyOneChild ? directParent : baseFiber;
101
+ const originReferenceFiber = referenceFiber;
102
+ while (referenceFiber) {
103
+ if (getCodeInfoFromFiber(referenceFiber))
104
+ return referenceFiber;
105
+ referenceFiber = referenceFiber.return;
106
+ }
107
+ return originReferenceFiber;
108
+ };
109
+ const getElementCodeInfo = (element) => {
110
+ const fiber = (0, _fiber.getElementFiberUpward)(element);
111
+ const referenceFiber = getReferenceFiber(fiber);
112
+ return getCodeInfoFromFiber(referenceFiber);
113
+ };
114
+ const getNamedFiber = (baseFiber) => {
115
+ let fiber = baseFiber;
116
+ let originNamedFiber;
117
+ while (fiber) {
118
+ var _fiber_return;
119
+ let parent = (_fiber_return = fiber.return) !== null && _fiber_return !== void 0 ? _fiber_return : void 0;
120
+ let forwardParent;
121
+ while ((0, _fiber.isReactSymbolFiber)(parent)) {
122
+ if ((0, _fiber.isForwardRef)(parent)) {
123
+ forwardParent = parent;
124
+ }
125
+ var _parent_return;
126
+ parent = (_parent_return = parent === null || parent === void 0 ? void 0 : parent.return) !== null && _parent_return !== void 0 ? _parent_return : void 0;
127
+ }
128
+ if (forwardParent) {
129
+ fiber = forwardParent;
130
+ }
131
+ if ((0, _fiber.getFiberName)(fiber)) {
132
+ if (!originNamedFiber)
133
+ originNamedFiber = fiber;
134
+ if (getCodeInfoFromFiber(fiber))
135
+ return fiber;
136
+ }
137
+ fiber = parent;
138
+ }
139
+ return originNamedFiber;
140
+ };
141
+ const getElementInspect = (element) => {
142
+ const fiber = (0, _fiber.getElementFiberUpward)(element);
143
+ const referenceFiber = getReferenceFiber(fiber);
144
+ const namedFiber = getNamedFiber(referenceFiber);
145
+ const fiberName = (0, _fiber.getFiberName)(namedFiber);
146
+ const nodeName = element.nodeName.toLowerCase();
147
+ const title = fiberName !== null && fiberName !== void 0 ? fiberName : nodeName;
148
+ return {
149
+ fiber: referenceFiber,
150
+ name: fiberName,
151
+ title
152
+ };
153
+ };
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for (var name in all)
7
+ Object.defineProperty(target, name, {
8
+ enumerable: true,
9
+ get: all[name]
10
+ });
11
+ }
12
+ _export(exports, {
13
+ getNestedBoundingClientRect: function() {
14
+ return getNestedBoundingClientRect;
15
+ },
16
+ getElementDimensions: function() {
17
+ return getElementDimensions;
18
+ }
19
+ });
20
+ function getNestedBoundingClientRect(node) {
21
+ return node.getBoundingClientRect();
22
+ }
23
+ function getElementDimensions(domElement) {
24
+ const calculatedStyle = window.getComputedStyle(domElement);
25
+ return {
26
+ borderLeft: Number.parseInt(calculatedStyle.borderLeftWidth, 10),
27
+ borderRight: Number.parseInt(calculatedStyle.borderRightWidth, 10),
28
+ borderTop: Number.parseInt(calculatedStyle.borderTopWidth, 10),
29
+ borderBottom: Number.parseInt(calculatedStyle.borderBottomWidth, 10),
30
+ marginLeft: Number.parseInt(calculatedStyle.marginLeft, 10),
31
+ marginRight: Number.parseInt(calculatedStyle.marginRight, 10),
32
+ marginTop: Number.parseInt(calculatedStyle.marginTop, 10),
33
+ marginBottom: Number.parseInt(calculatedStyle.marginBottom, 10),
34
+ paddingLeft: Number.parseInt(calculatedStyle.paddingLeft, 10),
35
+ paddingRight: Number.parseInt(calculatedStyle.paddingRight, 10),
36
+ paddingTop: Number.parseInt(calculatedStyle.paddingTop, 10),
37
+ paddingBottom: Number.parseInt(calculatedStyle.paddingBottom, 10)
38
+ };
39
+ }
@@ -0,0 +1,46 @@
1
+ .dev-inspector > div:first-child {
2
+ outline: 1px dashed #1456f0 !important;
3
+ border-color: #1456f01a !important;
4
+ }
5
+ .dev-inspector > div > div {
6
+ border-color: #1456f01a !important;
7
+ }
8
+ .dev-inspector > div > div > div {
9
+ border-color: #1456f01a !important;
10
+ }
11
+ .dev-inspector > div > div > div > div {
12
+ background-color: #1456f01a !important;
13
+ }
14
+ .dev-inspector > div:nth-child(2) {
15
+ background-color: #1456f0 !important;
16
+ border-radius: 6px !important;
17
+ font-size: 14px !important;
18
+ }
19
+ .dev-inspector > div:nth-child(2) > span:first-child > div {
20
+ color: #fff !important;
21
+ font-size: 14px !important;
22
+ }
23
+ .dev-inspector > div:nth-child(2) > span:first-child {
24
+ border: none !important;
25
+ margin: 0 !important;
26
+ }
27
+ #selected-inspector > div {
28
+ background-color: transparent !important;
29
+ outline: 1px solid #1456f0 !important;
30
+ border-color: transparent !important;
31
+ }
32
+ #selected-inspector > div > div {
33
+ border-color: transparent !important;
34
+ }
35
+ #selected-inspector > div > div > div {
36
+ border-color: transparent !important;
37
+ }
38
+ #selected-inspector > div > div > div > div {
39
+ background-color: transparent !important;
40
+ }
41
+ #selected-inspector > div:nth-child(2) {
42
+ display: none !important;
43
+ }
44
+ [contenteditable=true] {
45
+ outline: none !important;
46
+ }