diff --git a/packages/core/src/middleware/selector/config.ts b/packages/core/src/middleware/selector/config.ts index d4556bb..fe7326a 100644 --- a/packages/core/src/middleware/selector/config.ts +++ b/packages/core/src/middleware/selector/config.ts @@ -20,5 +20,7 @@ export const keyDebugStartHorizontal = Symbol(`${key}_debug_startHorizontal`); export const keyDebugEndHorizontal = Symbol(`${key}_debug_endHorizontal`); export const keyDebugEnd0 = Symbol(`${key}_debug_end0`); -export const resizeControllerBorderWidth = 2; +export const selectWrapperBorderWidth = 2; +export const resizeControllerBorderWidth = 4; +export const areaBorderWidth = 1; export const wrapperColor = '#1973ba'; diff --git a/packages/core/src/middleware/selector/draw-wrapper.ts b/packages/core/src/middleware/selector/draw-wrapper.ts index 8e07367..359769b 100644 --- a/packages/core/src/middleware/selector/draw-wrapper.ts +++ b/packages/core/src/middleware/selector/draw-wrapper.ts @@ -12,7 +12,7 @@ import type { import { rotateElementVertexes, calcViewVertexes } from '@idraw/util'; import type { AreaSize } from './types'; -import { resizeControllerBorderWidth, wrapperColor } from './config'; +import { resizeControllerBorderWidth, areaBorderWidth, wrapperColor, selectWrapperBorderWidth } from './config'; function drawVertexes( ctx: ViewContext2D, @@ -59,9 +59,9 @@ export function drawSelectedElementControllersVertexes( if (!controller) { return; } - const { elementWrapper, left, right, top, bottom, topLeft, topRight, bottomLeft, bottomRight } = controller; + const { elementWrapper, topLeft, topRight, bottomLeft, bottomRight } = controller; // const wrapperColor = 'red'; // TODO - const wrapperOpts = { borderColor: wrapperColor, borderWidth: 1, background: 'transparent', lineDash: [] }; + const wrapperOpts = { borderColor: wrapperColor, borderWidth: selectWrapperBorderWidth, background: 'transparent', lineDash: [] }; const ctrlOpts = { ...wrapperOpts, borderWidth: resizeControllerBorderWidth, background: '#FFFFFF' }; drawVertexes(ctx, calcViewVertexes(elementWrapper, opts), wrapperOpts); @@ -109,7 +109,7 @@ export function drawElementListShadows(ctx: ViewContext2D, elements: Element; - // private #opts: IDrawOptions; + #opts: IDrawOptions; constructor(mount: HTMLDivElement, opts: IDrawOptions) { - const core = new Core(mount, opts); + const { width, height, devicePixelRatio } = opts; + const core = new Core(mount, { width, height, devicePixelRatio }); this.#core = core; - // this.#opts = opts; - core.use(MiddlewareScroller); - core.use(MiddlewareSelector); - core.use(MiddlewareScaler); - core.use(MiddlewareRuler); - core.use(MiddlewareTextEditor); + this.#opts = opts; + this.#init(); + } + + #init() { + const { disableRuler, disableScale, disableScroll, disableSelect, disableTextEdit } = this.#opts; + const core = this.#core; + disableScroll !== true && core.use(MiddlewareScroller); + disableSelect !== true && core.use(MiddlewareSelector); + disableScale !== true && core.use(MiddlewareScaler); + disableRuler !== true && core.use(MiddlewareRuler); + disableTextEdit !== true && core.use(MiddlewareTextEditor); } setData(data: Data) { diff --git a/packages/types/src/lib/idraw.ts b/packages/types/src/lib/idraw.ts index 7885ce9..dd30747 100644 --- a/packages/types/src/lib/idraw.ts +++ b/packages/types/src/lib/idraw.ts @@ -1,3 +1,9 @@ import type { CoreOptions } from './core'; -export type IDrawOptions = CoreOptions; +export type IDrawOptions = CoreOptions & { + disableScroll?: boolean; + disableSelect?: boolean; + disableScale?: boolean; + disableRuler?: boolean; + disableTextEdit?: boolean; +};