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

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 (88) hide show
  1. package/dist/es/Inspector/{Inspector.js → Inspector.mjs} +50 -55
  2. package/dist/es/Inspector/{Overlay.js → Overlay.mjs} +157 -125
  3. package/dist/es/Inspector/hooks/use-effect-event.mjs +17 -0
  4. package/dist/es/Inspector/hooks/use-layout-effect.mjs +9 -0
  5. package/dist/es/Inspector/hooks/{use-mouse.js → use-mouse.mjs} +8 -4
  6. package/dist/es/Inspector/index.mjs +5 -0
  7. package/dist/es/Inspector/utils/fiber.mjs +70 -0
  8. package/dist/es/Inspector/utils/highlight.mjs +78 -0
  9. package/dist/es/Inspector/utils/inspect.mjs +131 -0
  10. package/dist/es/Inspector/utils/{overlay.js → overlay.mjs} +7 -2
  11. package/dist/es/MiaodaInspector/MiaodaInspector.mjs +427 -0
  12. package/dist/es/MiaodaInspector/index.mjs +5 -0
  13. package/dist/es/chunk-I4E63NIC.mjs +24 -0
  14. package/dist/es/config/{ui-config.js → ui-config.mjs} +66 -286
  15. package/dist/es/global.d.mjs +0 -0
  16. package/dist/es/index.mjs +7 -0
  17. package/dist/es/types/iframe-events.mjs +0 -0
  18. package/dist/es/types/index.mjs +27 -0
  19. package/dist/es/utils/{config-mapper.js → config-mapper.mjs} +14 -56
  20. package/dist/es/utils/{css.js → css.mjs} +5 -1
  21. package/dist/es/utils/index.mjs +37 -0
  22. package/dist/es/utils/origin.mjs +26 -0
  23. package/dist/es/utils/style-calculator.mjs +177 -0
  24. package/dist/lib/Inspector/Inspector.js +99 -104
  25. package/dist/lib/Inspector/Overlay.js +172 -143
  26. package/dist/lib/Inspector/hooks/index.js +19 -19
  27. package/dist/lib/Inspector/hooks/use-effect-event.js +26 -15
  28. package/dist/lib/Inspector/hooks/use-layout-effect.js +25 -10
  29. package/dist/lib/Inspector/hooks/use-mouse.js +27 -14
  30. package/dist/lib/Inspector/index.js +21 -8
  31. package/dist/lib/Inspector/utils/fiber.js +49 -55
  32. package/dist/lib/Inspector/utils/highlight.js +44 -31
  33. package/dist/lib/Inspector/utils/index.js +19 -19
  34. package/dist/lib/Inspector/utils/inspect.js +62 -72
  35. package/dist/lib/Inspector/utils/overlay.js +20 -15
  36. package/dist/lib/MiaodaInspector/MiaodaInspector.js +265 -266
  37. package/dist/lib/MiaodaInspector/index.js +21 -8
  38. package/dist/lib/config/ui-config.js +81 -292
  39. package/dist/lib/global.d.js +1 -0
  40. package/dist/lib/index.js +22 -17
  41. package/dist/lib/types/iframe-events.js +15 -3
  42. package/dist/lib/types/index.js +30 -43
  43. package/dist/lib/utils/config-mapper.js +41 -69
  44. package/dist/lib/utils/css.js +33 -15
  45. package/dist/lib/utils/index.js +36 -57
  46. package/dist/lib/utils/origin.js +23 -22
  47. package/dist/lib/utils/style-calculator.js +113 -110
  48. package/dist/types/Inspector/Inspector.d.ts +95 -92
  49. package/dist/types/Inspector/Overlay.d.ts +61 -58
  50. package/dist/types/Inspector/hooks/index.d.ts +4 -3
  51. package/dist/types/Inspector/hooks/use-effect-event.d.ts +3 -1
  52. package/dist/types/Inspector/hooks/use-layout-effect.d.ts +5 -2
  53. package/dist/types/Inspector/hooks/use-mouse.d.ts +9 -8
  54. package/dist/types/Inspector/index.d.ts +4 -1
  55. package/dist/types/Inspector/utils/fiber.d.ts +12 -10
  56. package/dist/types/Inspector/utils/highlight.d.ts +7 -5
  57. package/dist/types/Inspector/utils/index.d.ts +4 -3
  58. package/dist/types/Inspector/utils/inspect.d.ts +45 -42
  59. package/dist/types/Inspector/utils/overlay.d.ts +24 -22
  60. package/dist/types/MiaodaInspector/MiaodaInspector.d.ts +42 -41
  61. package/dist/types/MiaodaInspector/index.d.ts +3 -1
  62. package/dist/types/config/ui-config.d.ts +42 -41
  63. package/dist/types/global.d.d.ts +17 -0
  64. package/dist/types/index.d.ts +5 -4
  65. package/dist/types/types/iframe-events.d.ts +133 -130
  66. package/dist/types/types/index.d.ts +2 -1
  67. package/dist/types/utils/config-mapper.d.ts +14 -11
  68. package/dist/types/utils/css.d.ts +5 -2
  69. package/dist/types/utils/index.d.ts +7 -3
  70. package/dist/types/utils/origin.d.ts +12 -8
  71. package/dist/types/utils/style-calculator.d.ts +20 -17
  72. package/package.json +13 -13
  73. package/dist/es/Inspector/hooks/use-effect-event.js +0 -15
  74. package/dist/es/Inspector/hooks/use-layout-effect.js +0 -3
  75. package/dist/es/Inspector/index.js +0 -1
  76. package/dist/es/Inspector/utils/fiber.js +0 -61
  77. package/dist/es/Inspector/utils/highlight.js +0 -74
  78. package/dist/es/Inspector/utils/inspect.js +0 -119
  79. package/dist/es/MiaodaInspector/MiaodaInspector.js +0 -397
  80. package/dist/es/MiaodaInspector/index.js +0 -1
  81. package/dist/es/index.js +0 -2
  82. package/dist/es/types/iframe-events.js +0 -1
  83. package/dist/es/types/index.js +0 -1
  84. package/dist/es/utils/index.js +0 -3
  85. package/dist/es/utils/origin.js +0 -19
  86. package/dist/es/utils/style-calculator.js +0 -158
  87. /package/dist/es/Inspector/hooks/{index.js → index.mjs} +0 -0
  88. /package/dist/es/Inspector/utils/{index.js → index.mjs} +0 -0
@@ -1,102 +1,105 @@
1
- import { type ReactNode } from 'react';
2
- import type { Fiber } from 'react-reconciler';
3
- import { type CodeInfo } from './utils';
1
+ import { ReactNode } from 'react';
2
+ import { Fiber } from 'react-reconciler';
3
+ import { CodeInfo } from './utils/inspect.js';
4
+
4
5
  /**
5
6
  * the inspect meta info that is sent to the callback when an element is hovered over or clicked.
6
7
  */
7
- export interface InspectParams {
8
- /** hover / click event target dom element */
9
- element: HTMLElement;
10
- /** nearest named react component fiber for dom element */
11
- fiber?: Fiber;
12
- /** source file line / column / path info for react component */
13
- codeInfo?: CodeInfo;
14
- /** react component name for dom element */
15
- name?: string;
16
- title?: string;
8
+ interface InspectParams {
9
+ /** hover / click event target dom element */
10
+ element: HTMLElement;
11
+ /** nearest named react component fiber for dom element */
12
+ fiber?: Fiber;
13
+ /** source file line / column / path info for react component */
14
+ codeInfo?: CodeInfo;
15
+ /** react component name for dom element */
16
+ name?: string;
17
+ title?: string;
17
18
  }
18
19
  /**
19
20
  * `v2.0.0` changes:
20
21
  * - make 'Ctrl + Shift + Alt + C' as default shortcut on Windows/Linux
21
22
  * - export `defaultHotkeys`
22
23
  */
23
- export declare const defaultHotkeys: () => string[];
24
- export interface InspectorProps {
25
- /**
26
- * Inspector Component toggle hotkeys,
27
- *
28
- * supported keys see: https://github.com/jaywcjlove/hotkeys#supported-keys
29
- *
30
- * @default - `['Ctrl', 'Shift', 'Command', 'C']` on macOS, `['Ctrl', 'Shift', 'Alt', 'C']` on other platforms.
31
- *
32
- * Setting `keys={null}` explicitly means that disable use hotkeys to trigger it.
33
- */
34
- keys?: string[] | null;
35
- /**
36
- * If setting `active` prop, the Inspector will be a Controlled React Component,
37
- * you need to control the `true`/`false` state to active the Inspector.
38
- *
39
- * If not setting `active` prop, this only a Uncontrolled component that
40
- * will activate/deactivate by hotkeys.
41
- *
42
- * > add in version `v2.0.0`
43
- */
44
- active?: boolean;
45
- /**
46
- * Trigger by `active` state change, includes:
47
- * - hotkeys toggle, before activate/deactivate Inspector
48
- * - Escape / Click, before deactivate Inspector
49
- *
50
- * will NOT trigger by `active` prop change.
51
- *
52
- * > add in version `v2.0.0`
53
- */
54
- onActiveChange?: (active: boolean) => void;
55
- /**
56
- * Whether to disable all behavior include hotkeys listening or trigger,
57
- * will automatically disable in production environment by default.
58
- *
59
- * @default `true` if `NODE_ENV` is 'production', otherwise is `false`.
60
- * > add in version `v2.0.0`
61
- */
62
- disable?: boolean;
63
- /**
64
- * Callback when left-clicking on an element, with ensuring the source code info is found.
65
- *
66
- * By setting the `onInspectElement` prop, the default behavior ("open local IDE") will be disabled,
67
- * that means you want to manually handle the source info, or handle how to goto editor by yourself.
68
- *
69
- * You can also use builtin `gotoServerEditor` utils in `onInspectElement` to get origin behavior ("open local IDE on server-side"),
70
- * it looks like:
71
- *
72
- * ```tsx
73
- * import { Inspector, gotoServerEditor } from 'react-dev-inspector'
74
- *
75
- * <Inspector
76
- * onInspectElement={({ codeInfo }) => {
77
- * ...; // your processing
78
- * gotoServerEditor(codeInfo)
79
- * }}
80
- * </Inspector>
81
- * ```
82
- *
83
- * > add in version `v2.0.0`
84
- */
85
- onInspectElement?: (params: Required<InspectParams>) => void;
86
- /** Callback when hovering on an element */
87
- onHoverElement?: (params: InspectParams) => void;
88
- /**
89
- * Callback when left-clicking on an element.
90
- */
91
- onClickElement?: (params: InspectParams) => void;
92
- /** any children of react nodes */
93
- children?: ReactNode;
94
- /**
95
- * custom handler for component name and info display
96
- * @param name component name
97
- * @param info component info (file path)
98
- * @returns [displayName, displayInfo] tuple for display
99
- */
100
- handleCodeInfo?: (name: string, info?: string) => [string, string];
24
+ declare const defaultHotkeys: () => string[];
25
+ interface InspectorProps {
26
+ /**
27
+ * Inspector Component toggle hotkeys,
28
+ *
29
+ * supported keys see: https://github.com/jaywcjlove/hotkeys#supported-keys
30
+ *
31
+ * @default - `['Ctrl', 'Shift', 'Command', 'C']` on macOS, `['Ctrl', 'Shift', 'Alt', 'C']` on other platforms.
32
+ *
33
+ * Setting `keys={null}` explicitly means that disable use hotkeys to trigger it.
34
+ */
35
+ keys?: string[] | null;
36
+ /**
37
+ * If setting `active` prop, the Inspector will be a Controlled React Component,
38
+ * you need to control the `true`/`false` state to active the Inspector.
39
+ *
40
+ * If not setting `active` prop, this only a Uncontrolled component that
41
+ * will activate/deactivate by hotkeys.
42
+ *
43
+ * > add in version `v2.0.0`
44
+ */
45
+ active?: boolean;
46
+ /**
47
+ * Trigger by `active` state change, includes:
48
+ * - hotkeys toggle, before activate/deactivate Inspector
49
+ * - Escape / Click, before deactivate Inspector
50
+ *
51
+ * will NOT trigger by `active` prop change.
52
+ *
53
+ * > add in version `v2.0.0`
54
+ */
55
+ onActiveChange?: (active: boolean) => void;
56
+ /**
57
+ * Whether to disable all behavior include hotkeys listening or trigger,
58
+ * will automatically disable in production environment by default.
59
+ *
60
+ * @default `true` if `NODE_ENV` is 'production', otherwise is `false`.
61
+ * > add in version `v2.0.0`
62
+ */
63
+ disable?: boolean;
64
+ /**
65
+ * Callback when left-clicking on an element, with ensuring the source code info is found.
66
+ *
67
+ * By setting the `onInspectElement` prop, the default behavior ("open local IDE") will be disabled,
68
+ * that means you want to manually handle the source info, or handle how to goto editor by yourself.
69
+ *
70
+ * You can also use builtin `gotoServerEditor` utils in `onInspectElement` to get origin behavior ("open local IDE on server-side"),
71
+ * it looks like:
72
+ *
73
+ * ```tsx
74
+ * import { Inspector, gotoServerEditor } from 'react-dev-inspector'
75
+ *
76
+ * <Inspector
77
+ * onInspectElement={({ codeInfo }) => {
78
+ * ...; // your processing
79
+ * gotoServerEditor(codeInfo)
80
+ * }}
81
+ * </Inspector>
82
+ * ```
83
+ *
84
+ * > add in version `v2.0.0`
85
+ */
86
+ onInspectElement?: (params: Required<InspectParams>) => void;
87
+ /** Callback when hovering on an element */
88
+ onHoverElement?: (params: InspectParams) => void;
89
+ /**
90
+ * Callback when left-clicking on an element.
91
+ */
92
+ onClickElement?: (params: InspectParams) => void;
93
+ /** any children of react nodes */
94
+ children?: ReactNode;
95
+ /**
96
+ * custom handler for component name and info display
97
+ * @param name component name
98
+ * @param info component info (file path)
99
+ * @returns [displayName, displayInfo] tuple for display
100
+ */
101
+ handleCodeInfo?: (name: string, info?: string) => [string, string];
101
102
  }
102
- export declare const Inspector: (props: InspectorProps) => JSX.Element;
103
+ declare const Inspector: (props: InspectorProps) => JSX.Element;
104
+
105
+ export { type InspectParams, Inspector, type InspectorProps, defaultHotkeys };
@@ -1,71 +1,74 @@
1
+ import { Rect, BoxSizing } from './utils/overlay.js';
2
+
1
3
  /**
2
4
  * mirror from https://github.com/facebook/react/blob/v16.13.1/packages/react-devtools-shared/src/backend/views/utils.js
3
5
  */
4
- import { type Rect, type BoxSizing } from './utils';
6
+
5
7
  interface Box {
6
- top: number;
7
- left: number;
8
- width: number;
9
- height: number;
8
+ top: number;
9
+ left: number;
10
+ width: number;
11
+ height: number;
10
12
  }
11
13
  declare class OverlayRect {
12
- node: HTMLElement;
13
- border: HTMLElement;
14
- padding: HTMLElement;
15
- content: HTMLElement;
16
- constructor(doc: Document, container: HTMLElement);
17
- remove(): void;
18
- update(box: Rect, dims: BoxSizing): void;
14
+ node: HTMLElement;
15
+ border: HTMLElement;
16
+ padding: HTMLElement;
17
+ content: HTMLElement;
18
+ constructor(doc: Document, container: HTMLElement);
19
+ remove(): void;
20
+ update(box: Rect, dims: BoxSizing): void;
19
21
  }
20
22
  declare class ClickOverlayRect {
21
- node: HTMLElement;
22
- border: HTMLElement;
23
- constructor(doc: Document, container: HTMLElement);
24
- remove(): void;
25
- update(box: Rect, dims: BoxSizing): void;
23
+ node: HTMLElement;
24
+ border: HTMLElement;
25
+ constructor(doc: Document, container: HTMLElement);
26
+ remove(): void;
27
+ update(box: Rect, dims: BoxSizing): void;
26
28
  }
27
29
  declare class OverlayTip {
28
- tip: HTMLElement;
29
- nameSpan: HTMLElement;
30
- titleDiv: HTMLElement;
31
- constructor(doc: Document, container: HTMLElement);
32
- remove(): void;
33
- updateText(name: string): void;
34
- updatePosition(dims: Box, bounds: Box): void;
35
- invisible(): void;
30
+ tip: HTMLElement;
31
+ nameSpan: HTMLElement;
32
+ titleDiv: HTMLElement;
33
+ constructor(doc: Document, container: HTMLElement);
34
+ remove(): void;
35
+ updateText(name: string): void;
36
+ updatePosition(dims: Box, bounds: Box): void;
37
+ invisible(): void;
36
38
  }
37
- export declare class Overlay {
38
- window: Window;
39
- tipBoundsWindow: Window;
40
- container: HTMLElement;
41
- tip: OverlayTip;
42
- rects: Array<OverlayRect>;
43
- removeCallback: (this: Overlay) => void;
44
- handleCodeInfo?: (name: string, info?: string) => [string, string];
45
- resizeObserver: ResizeObserver;
46
- currentElements?: HTMLElement[];
47
- currentName?: string;
48
- constructor(handleCodeInfo?: (name: string, info?: string) => [string, string]);
49
- remove(): void;
50
- setRemoveCallback(callback: () => void): void;
51
- inspect(nodes: Array<HTMLElement>, name?: string, info?: string): void;
52
- updatePositions(nodes: Array<HTMLElement>, name?: string, info?: string): void;
53
- clearRect(): void;
39
+ declare class Overlay {
40
+ window: Window;
41
+ tipBoundsWindow: Window;
42
+ container: HTMLElement;
43
+ tip: OverlayTip;
44
+ rects: Array<OverlayRect>;
45
+ removeCallback: (this: Overlay) => void;
46
+ handleCodeInfo?: (name: string, info?: string) => [string, string];
47
+ resizeObserver: ResizeObserver;
48
+ currentElements?: HTMLElement[];
49
+ currentName?: string;
50
+ constructor(handleCodeInfo?: (name: string, info?: string) => [string, string]);
51
+ remove(): void;
52
+ setRemoveCallback(callback: () => void): void;
53
+ inspect(nodes: Array<HTMLElement>, name?: string, info?: string): void;
54
+ updatePositions(nodes: Array<HTMLElement>, name?: string, info?: string): void;
55
+ clearRect(): void;
54
56
  }
55
- export declare class ClickOverlay {
56
- window: Window;
57
- container: HTMLElement;
58
- rect: ClickOverlayRect | null;
59
- tip: OverlayTip;
60
- tipBoundsWindow: Window;
61
- resizeObserver: ResizeObserver;
62
- currentElement: HTMLElement | null;
63
- currentName: string | undefined;
64
- positionUpdate?: () => void;
65
- constructor(positionUpdate?: () => void);
66
- remove(): void;
67
- highlight(element: HTMLElement, name?: string): void;
68
- updatePosition(element: HTMLElement): void;
69
- clearRect(): void;
57
+ declare class ClickOverlay {
58
+ window: Window;
59
+ container: HTMLElement;
60
+ rect: ClickOverlayRect | null;
61
+ tip: OverlayTip;
62
+ tipBoundsWindow: Window;
63
+ resizeObserver: ResizeObserver;
64
+ currentElement: HTMLElement | null;
65
+ currentName: string | undefined;
66
+ positionUpdate?: () => void;
67
+ constructor(positionUpdate?: () => void);
68
+ remove(): void;
69
+ highlight(element: HTMLElement, name?: string): void;
70
+ updatePosition(element: HTMLElement): void;
71
+ clearRect(): void;
70
72
  }
71
- export {};
73
+
74
+ export { ClickOverlay, Overlay };
@@ -1,3 +1,4 @@
1
- export * from './use-layout-effect';
2
- export * from './use-effect-event';
3
- export * from './use-mouse';
1
+ export { useLayoutEffect } from './use-layout-effect.js';
2
+ export { useEffectEvent } from './use-effect-event.js';
3
+ export { useMousePosition } from './use-mouse.js';
4
+ import 'react';
@@ -6,4 +6,6 @@
6
6
  * - `useEvent` in https://github.com/scottrippey/react-use-event-hook
7
7
  * - `useMemoizedFn` in https://github.com/alibaba/hooks
8
8
  */
9
- export declare const useEffectEvent: <T extends (...args: any[]) => any>(callback?: T | undefined) => T;
9
+ declare const useEffectEvent: <T extends (...args: any[]) => any>(callback?: T) => T;
10
+
11
+ export { useEffectEvent };
@@ -1,2 +1,5 @@
1
- import { useLayoutEffect as _useLayoutEffect } from 'react';
2
- export declare const useLayoutEffect: typeof _useLayoutEffect;
1
+ import { useLayoutEffect as useLayoutEffect$1 } from 'react';
2
+
3
+ declare const useLayoutEffect: typeof useLayoutEffect$1;
4
+
5
+ export { useLayoutEffect };
@@ -1,9 +1,10 @@
1
- import { type MutableRefObject } from 'react';
2
- export declare const useMousePosition: ({
3
- disable
4
- }: {
5
- disable?: boolean | undefined;
1
+ import { MutableRefObject } from 'react';
2
+
3
+ declare const useMousePosition: ({ disable, }: {
4
+ disable?: boolean;
6
5
  }) => MutableRefObject<{
7
- x: number;
8
- y: number;
9
- }>;
6
+ x: number;
7
+ y: number;
8
+ }>;
9
+
10
+ export { useMousePosition };
@@ -1 +1,4 @@
1
- export { Inspector } from './Inspector';
1
+ export { Inspector } from './Inspector.js';
2
+ import 'react';
3
+ import 'react-reconciler';
4
+ import './utils/inspect.js';
@@ -1,28 +1,29 @@
1
- import type { Fiber } from 'react-reconciler';
1
+ import { Fiber } from 'react-reconciler';
2
+
2
3
  /**
3
4
  * only native html tag fiber's type will be string,
4
5
  * all the others (component / functional component / context) type will be function or object
5
6
  */
6
- export declare const isNativeTagFiber: (fiber?: Fiber) => boolean;
7
+ declare const isNativeTagFiber: (fiber?: Fiber) => boolean;
7
8
  /**
8
9
  * react fiber symbol types see:
9
10
  * https://github.com/facebook/react/blob/v17.0.0/packages/shared/ReactSymbols.js#L39-L58
10
11
  */
11
- export declare const isReactSymbolFiber: (fiber?: Fiber) => boolean;
12
- export declare const isForwardRef: (fiber?: Fiber) => boolean;
12
+ declare const isReactSymbolFiber: (fiber?: Fiber) => boolean;
13
+ declare const isForwardRef: (fiber?: Fiber) => boolean;
13
14
  type FiberHTMLElement = HTMLElement & {
14
- [fiberKey: string]: Fiber | undefined;
15
+ [fiberKey: string]: Fiber | undefined;
15
16
  };
16
17
  /**
17
18
  * https://stackoverflow.com/questions/29321742/react-getting-a-component-from-a-dom-element-for-debugging
18
19
  */
19
- export declare const getElementFiber: (element: FiberHTMLElement) => Fiber | undefined;
20
- export declare const getElementFiberUpward: (element: HTMLElement | null) => Fiber | undefined;
20
+ declare const getElementFiber: (element: FiberHTMLElement) => Fiber | undefined;
21
+ declare const getElementFiberUpward: (element: HTMLElement | null) => Fiber | undefined;
21
22
  /**
22
23
  * find first parent of native html tag or react component,
23
24
  * skip react Provider / Context / ForwardRef / Fragment etc.
24
25
  */
25
- export declare const getDirectParentFiber: (child: Fiber) => Fiber | null;
26
+ declare const getDirectParentFiber: (child: Fiber) => Fiber | null;
26
27
  /**
27
28
  * The displayName property is not guaranteed to be a string.
28
29
  * It's only safe to use for our purposes if it's a string.
@@ -30,5 +31,6 @@ export declare const getDirectParentFiber: (child: Fiber) => Fiber | null;
30
31
  *
31
32
  * https://github.com/facebook/react/blob/v17.0.0/packages/react-devtools-shared/src/utils.js#L90-L112
32
33
  */
33
- export declare const getFiberName: (fiber?: Fiber) => string | undefined;
34
- export {};
34
+ declare const getFiberName: (fiber?: Fiber) => string | undefined;
35
+
36
+ export { getDirectParentFiber, getElementFiber, getElementFiberUpward, getFiberName, isForwardRef, isNativeTagFiber, isReactSymbolFiber };
@@ -1,8 +1,10 @@
1
1
  /**
2
2
  * mirror from https://github.com/facebook/react/blob/v16.13.1/packages/react-devtools-shared/src/backend/views/Highlighter/index.js
3
3
  */
4
- export type StopFunction = () => void;
5
- export declare function setupHighlighter(handlers: {
6
- onPointerOver?: (element: HTMLElement) => void;
7
- onClick?: (element: HTMLElement) => void;
8
- }): StopFunction;
4
+ type StopFunction = () => void;
5
+ declare function setupHighlighter(handlers: {
6
+ onPointerOver?: (element: HTMLElement) => void;
7
+ onClick?: (element: HTMLElement) => void;
8
+ }): StopFunction;
9
+
10
+ export { type StopFunction, setupHighlighter };
@@ -1,3 +1,4 @@
1
- export * from './highlight';
2
- export * from './inspect';
3
- export * from './overlay';
1
+ export { StopFunction, setupHighlighter } from './highlight.js';
2
+ export { CodeDataAttribute, CodeInfo, getCodeInfoFromDebugSource, getCodeInfoFromFiber, getCodeInfoFromProps, getElementCodeInfo, getElementInspect, getNamedFiber, getReferenceFiber } from './inspect.js';
3
+ export { BoxSizing, Rect, getElementDimensions, getNestedBoundingClientRect } from './overlay.js';
4
+ import 'react-reconciler';
@@ -1,28 +1,29 @@
1
- import type { Fiber } from 'react-reconciler';
2
- export interface CodeInfo {
3
- name?: string;
4
- lineNumber: string;
5
- columnNumber: string;
6
- /**
7
- * code source file relative path to dev-server cwd(current working directory)
8
- * need use with `react-dev-inspector/plugins/babel`
9
- */
10
- relativePath?: string;
11
- /**
12
- * code source file absolute path
13
- * just need use with `@babel/plugin-transform-react-jsx-source` which auto set by most framework
14
- */
15
- absolutePath?: string;
16
- /**
17
- * metadata information from babel plugin
18
- */
19
- metadata?: {
20
- elementStart: number;
21
- elementEnd: number;
22
- tagStart: number;
23
- tagEnd: number;
24
- classNameLiteral: boolean;
25
- };
1
+ import { Fiber } from 'react-reconciler';
2
+
3
+ interface CodeInfo {
4
+ name?: string;
5
+ lineNumber: string;
6
+ columnNumber: string;
7
+ /**
8
+ * code source file relative path to dev-server cwd(current working directory)
9
+ * need use with `react-dev-inspector/plugins/babel`
10
+ */
11
+ relativePath?: string;
12
+ /**
13
+ * code source file absolute path
14
+ * just need use with `@babel/plugin-transform-react-jsx-source` which auto set by most framework
15
+ */
16
+ absolutePath?: string;
17
+ /**
18
+ * metadata information from babel plugin
19
+ */
20
+ metadata?: {
21
+ elementStart: number;
22
+ elementEnd: number;
23
+ tagStart: number;
24
+ tagEnd: number;
25
+ classNameLiteral: boolean;
26
+ };
26
27
  }
27
28
  /**
28
29
  * props that injected into react nodes
@@ -30,12 +31,12 @@ export interface CodeInfo {
30
31
  * like <div data-inspector-line="2" data-inspector-column="3" data-inspector-relative-path="xxx/ooo" />
31
32
  * this props will be record in fiber
32
33
  */
33
- export interface CodeDataAttribute {
34
- 'data-miaoda-line': string;
35
- 'data-miaoda-column': string;
36
- 'data-miaoda-relative-path': string;
37
- 'data-miaoda-component-name'?: string;
38
- 'data-miaoda-metadata'?: string;
34
+ interface CodeDataAttribute {
35
+ 'data-miaoda-line': string;
36
+ 'data-miaoda-column': string;
37
+ 'data-miaoda-relative-path': string;
38
+ 'data-miaoda-component-name'?: string;
39
+ 'data-miaoda-metadata'?: string;
39
40
  }
40
41
  /**
41
42
  * react fiber property `_debugSource` created by `@babel/plugin-transform-react-jsx-source`
@@ -49,12 +50,12 @@ export interface CodeDataAttribute {
49
50
  * finally, used by `createFiberFromElement` to become a fiber property `_debugSource`.
50
51
  * https://github.com/facebook/react/blob/v18.0.0/packages/react-reconciler/src/ReactFiber.new.js#L648-L649
51
52
  */
52
- export declare const getCodeInfoFromDebugSource: (fiber?: Fiber) => CodeInfo | undefined;
53
+ declare const getCodeInfoFromDebugSource: (fiber?: Fiber) => CodeInfo | undefined;
53
54
  /**
54
55
  * code location data-attribute props inject by `react-dev-inspector/plugins/babel`
55
56
  */
56
- export declare const getCodeInfoFromProps: (fiber?: Fiber) => CodeInfo | undefined;
57
- export declare const getCodeInfoFromFiber: (fiber?: Fiber) => CodeInfo | undefined;
57
+ declare const getCodeInfoFromProps: (fiber?: Fiber) => CodeInfo | undefined;
58
+ declare const getCodeInfoFromFiber: (fiber?: Fiber) => CodeInfo | undefined;
58
59
  /**
59
60
  * give a `base` dom fiber,
60
61
  * and will try to get the human friendly react component `reference` fiber from it;
@@ -100,11 +101,13 @@ export declare const getCodeInfoFromFiber: (fiber?: Fiber) => CodeInfo | undefin
100
101
  * └─ span
101
102
  * └─ div
102
103
  */
103
- export declare const getReferenceFiber: (baseFiber?: Fiber) => Fiber | undefined;
104
- export declare const getElementCodeInfo: (element: HTMLElement) => CodeInfo | undefined;
105
- export declare const getNamedFiber: (baseFiber?: Fiber) => Fiber | undefined;
106
- export declare const getElementInspect: (element: HTMLElement) => {
107
- fiber?: Fiber | undefined;
108
- name?: string | undefined;
109
- title: string;
110
- };
104
+ declare const getReferenceFiber: (baseFiber?: Fiber) => Fiber | undefined;
105
+ declare const getElementCodeInfo: (element: HTMLElement) => CodeInfo | undefined;
106
+ declare const getNamedFiber: (baseFiber?: Fiber) => Fiber | undefined;
107
+ declare const getElementInspect: (element: HTMLElement) => {
108
+ fiber?: Fiber;
109
+ name?: string;
110
+ title: string;
111
+ };
112
+
113
+ export { type CodeDataAttribute, type CodeInfo, getCodeInfoFromDebugSource, getCodeInfoFromFiber, getCodeInfoFromProps, getElementCodeInfo, getElementInspect, getNamedFiber, getReferenceFiber };
@@ -4,27 +4,29 @@
4
4
  * remove all process for iframe, because iframe only need to think in chrome extension app,
5
5
  * which will deal multiple levels of nesting iframe.
6
6
  */
7
- export interface Rect {
8
- bottom: number;
9
- height: number;
10
- left: number;
11
- right: number;
12
- top: number;
13
- width: number;
7
+ interface Rect {
8
+ bottom: number;
9
+ height: number;
10
+ left: number;
11
+ right: number;
12
+ top: number;
13
+ width: number;
14
14
  }
15
- export interface BoxSizing {
16
- borderTop: number;
17
- borderBottom: number;
18
- borderLeft: number;
19
- borderRight: number;
20
- paddingTop: number;
21
- paddingBottom: number;
22
- paddingLeft: number;
23
- paddingRight: number;
24
- marginTop: number;
25
- marginBottom: number;
26
- marginLeft: number;
27
- marginRight: number;
15
+ interface BoxSizing {
16
+ borderTop: number;
17
+ borderBottom: number;
18
+ borderLeft: number;
19
+ borderRight: number;
20
+ paddingTop: number;
21
+ paddingBottom: number;
22
+ paddingLeft: number;
23
+ paddingRight: number;
24
+ marginTop: number;
25
+ marginBottom: number;
26
+ marginLeft: number;
27
+ marginRight: number;
28
28
  }
29
- export declare function getNestedBoundingClientRect(node: HTMLElement, boundaryWindow: Window | HTMLElement): Rect;
30
- export declare function getElementDimensions(domElement: Element): BoxSizing;
29
+ declare function getNestedBoundingClientRect(node: HTMLElement, boundaryWindow: Window | HTMLElement): Rect;
30
+ declare function getElementDimensions(domElement: Element): BoxSizing;
31
+
32
+ export { type BoxSizing, type Rect, getElementDimensions, getNestedBoundingClientRect };