@deepnoid/canvas 0.1.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.
package/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # deepnoid-canvas
2
+
3
+ 이 프로젝트는 본부 내 프로젝트에서 사용되는 공통 CANVAS 라이브러리입니다!!!
@@ -0,0 +1,15 @@
1
+ import { Coordinate } from '../types/coordinate';
2
+ type Props = {
3
+ moveX: number;
4
+ moveY: number;
5
+ zoomX: number;
6
+ zoomY: number;
7
+ zoom: number;
8
+ dx: number;
9
+ dy: number;
10
+ dw: number;
11
+ dh: number;
12
+ coordinates?: Coordinate[];
13
+ };
14
+ declare const Canvas: ({ moveX, moveY, zoom, zoomX, zoomY, dx, dy, dw, dh, coordinates }: Props) => import("react/jsx-runtime").JSX.Element;
15
+ export default Canvas;
@@ -0,0 +1,22 @@
1
+ import { ComponentType, ReactNode } from 'react';
2
+ import { Coordinate } from '../types/coordinate';
3
+ export type ZoomButtonType = {
4
+ onClick: () => void;
5
+ children: ReactNode;
6
+ };
7
+ type Props = {
8
+ image?: {
9
+ type: 'TOP' | 'SIDE' | 'REALITY';
10
+ imagePath: string;
11
+ itemId: number;
12
+ } | null;
13
+ coordinates?: Coordinate[];
14
+ hasZoom?: {
15
+ ZoomButton: ComponentType<{
16
+ onClick: () => void;
17
+ children: ReactNode;
18
+ }>;
19
+ };
20
+ };
21
+ declare const XrayViewer: ({ image, hasZoom, coordinates }: Props) => import("react/jsx-runtime").JSX.Element;
22
+ export default XrayViewer;
@@ -0,0 +1 @@
1
+ export declare const DRAW_LINE_SIZE = 4;
@@ -0,0 +1,18 @@
1
+ import { RefCallback, RefObject } from 'react';
2
+ type ObservedSize = {
3
+ width: number | undefined;
4
+ height: number | undefined;
5
+ };
6
+ type ResizeHandler = (size: ObservedSize) => void;
7
+ type HookResponse<T extends Element> = {
8
+ ref: RefCallback<T>;
9
+ } & ObservedSize;
10
+ type RoundingFunction = (n: number) => number;
11
+ type ResizeObserverBoxOptions = 'border-box' | 'content-box' | 'device-pixel-content-box';
12
+ declare const useResizeObserver: <T extends Element>(opts: {
13
+ ref?: RefObject<T | null> | T | null | undefined;
14
+ onResize?: ResizeHandler;
15
+ box?: ResizeObserverBoxOptions;
16
+ round?: RoundingFunction;
17
+ }) => HookResponse<T>;
18
+ export default useResizeObserver;
@@ -0,0 +1,3 @@
1
+ export { default as XrayViewer } from './components/XrayViewer';
2
+ export type { ZoomButtonType } from './components/XrayViewer';
3
+ export type { Rectangle, Coordinate } from './types/coordinate';
@@ -0,0 +1,10 @@
1
+ export type Rectangle = {
2
+ x: number;
3
+ y: number;
4
+ width: number;
5
+ height: number;
6
+ };
7
+ export type Coordinate = {
8
+ name: string;
9
+ color: 'success' | 'warning' | 'danger';
10
+ } & Rectangle;
@@ -0,0 +1,32 @@
1
+ import { Coordinate } from '../types/coordinate';
2
+ export declare const canvasCenterPoint: (canvas: HTMLCanvasElement, image: HTMLImageElement) => {
3
+ x: number;
4
+ y: number;
5
+ };
6
+ export declare const drawCanvas: (moveX: number, moveY: number, zoomX: number, zoomY: number, zoom: number, dx: number, dy: number, canvas_el?: HTMLCanvasElement, image?: HTMLImageElement, isClear?: boolean) => void;
7
+ export declare const drawRect: (context: CanvasRenderingContext2D, coordinate: Coordinate) => void;
8
+ export declare const setRectangleStyle: (context: CanvasRenderingContext2D, coordinate: Coordinate) => void;
9
+ export declare const resolutionCanvas: (canvas: HTMLCanvasElement | null | undefined, width?: number, height?: number) => HTMLCanvasElement | undefined;
10
+ type Point = {
11
+ x: number;
12
+ y: number;
13
+ };
14
+ export declare const __origin: (mouse: Point, origin: Point) => Point;
15
+ export declare const __move: (mouse: Point, move: Point) => Point;
16
+ export declare const __zoom: (mouse: Point, zoomPoint: Point, zoom: number, canvas_el: HTMLCanvasElement) => Point;
17
+ export declare const __rotate: (mouse: Point, rotate: number, center: Point) => Point;
18
+ /**
19
+ * [좌표 변형] 마우스 포인트 형태 변형
20
+ * 실행 순서 중요(graphic draw 순서와 동일)
21
+ *
22
+ * @param mousePoint: Point 현재 마우스 좌표
23
+ * @param movePoint: Point 이동 좌표
24
+ * @param zoomPoint: Point 확대 좌표
25
+ * @param originPoint: Point 원점 좌표
26
+ * @param zoom: number 확대 비율
27
+ * @param canvas_el: 캔버스 엘리먼트
28
+ * @param rotate: number 회전 각도 0~360
29
+ * @returns 캔버스 크기 해상도에 맞춰 변형된 마우스 좌표
30
+ */
31
+ export declare const getMousePointTransform: (mousePoint: Point, movePoint: Point, zoomPoint: Point, originPoint: Point, zoom: number, canvas_el: HTMLCanvasElement, rotate?: number) => Point;
32
+ export {};
package/package.json ADDED
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "@deepnoid/canvas",
3
+ "version": "0.1.1",
4
+ "type": "module",
5
+ "main": "./dist/deepnoid-canvas.cjs",
6
+ "module": "./dist/deepnoid-canvas.js",
7
+ "types": "./dist/index.d.ts",
8
+ "license": "MIT",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/deepnoid-canvas.js",
13
+ "require": "./dist/deepnoid-canvas.cjs"
14
+ }
15
+ },
16
+ "files": [
17
+ "dist"
18
+ ],
19
+ "scripts": {
20
+ "build": "npx tsc -p tsconfig.json",
21
+ "dev": "cd example && npm run dev",
22
+ "lint": "eslint . --ext js,jsx,ts,tsx --report-unused-disable-directives --max-warnings 0"
23
+ },
24
+ "peerDependencies": {
25
+ "react": "^19.0.0",
26
+ "react-dom": "^19.0.0"
27
+ },
28
+ "devDependencies": {
29
+ "@types/react": "^19.1.12",
30
+ "@types/react-dom": "^19.1.9",
31
+ "@vitejs/plugin-react": "^4.2.0",
32
+ "eslint": "^8.55.0",
33
+ "eslint-plugin-react": "^7.33.2",
34
+ "eslint-plugin-react-hooks": "^4.6.0",
35
+ "eslint-plugin-react-refresh": "^0.4.5",
36
+ "react": "^19.1.1",
37
+ "react-dom": "^19.1.1",
38
+ "typescript": "^5.9.2",
39
+ "vite": "^5.0.0"
40
+ },
41
+ "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
42
+ }