From 4a40c66f2fe768ca23e29cb325e32952a5638fd4 Mon Sep 17 00:00:00 2001 From: kfd Date: Tue, 5 Mar 2024 14:23:19 +0800 Subject: [PATCH] fix: remove use shared and change mouse-menu type file --- packages/img-zoom/index.ts | 10 +++++++++- packages/mouse-menu/index.ts | 8 +++++++- packages/mouse-menu/package.json | 2 +- packages/mouse-menu/types.ts | 2 ++ packages/to-drag/index.ts | 16 +++++++++++++++- 5 files changed, 34 insertions(+), 4 deletions(-) diff --git a/packages/img-zoom/index.ts b/packages/img-zoom/index.ts index b7ad9e7..967dba1 100644 --- a/packages/img-zoom/index.ts +++ b/packages/img-zoom/index.ts @@ -1,9 +1,17 @@ import { DirectiveHook, App, ObjectDirective } from 'vue'; -import { createIdDom } from '../shared'; import './img-zoom.scss'; const groupMap = {} as Record; +function createIdDom (tag: string, id: string, innerText?: string) { + const el = document.createElement(tag); + el.setAttribute('id', id); + if (innerText) { + el.innerText = innerText; + } + return el; +} + export interface GroupItem { title?: string, imgSrc: string diff --git a/packages/mouse-menu/index.ts b/packages/mouse-menu/index.ts index 4b08e29..23f788a 100644 --- a/packages/mouse-menu/index.ts +++ b/packages/mouse-menu/index.ts @@ -1,7 +1,13 @@ import { App, DirectiveBinding, createVNode, render, ComponentPublicInstance, ObjectDirective } from 'vue'; import type { CustomMouseMenuOptions, TouchListenFn, PreventCheckFn, ContextMenuListenFn } from './types'; import MouseMenu from './mouse-menu.vue'; -import { createClassDom } from '../shared'; + +function createClassDom (tag: string, className: string, innerText?: string) { + let el = document.createElement(tag); + el.setAttribute('class', className); + if (innerText) el.innerText = innerText; + return el; +} MouseMenu.install = (app: App): void => { app.component(MouseMenu.name, MouseMenu); diff --git a/packages/mouse-menu/package.json b/packages/mouse-menu/package.json index e3bd1f4..e3441f8 100644 --- a/packages/mouse-menu/package.json +++ b/packages/mouse-menu/package.json @@ -4,7 +4,7 @@ "description": "右键菜单组件", "main": "dist/index.js", "module": "dist/index.es.js", - "types": "index.ts", + "types": "types.ts", "author": "leon-kfd", "license": "ISC", "repository": { diff --git a/packages/mouse-menu/types.ts b/packages/mouse-menu/types.ts index 672da2e..ca2cea9 100644 --- a/packages/mouse-menu/types.ts +++ b/packages/mouse-menu/types.ts @@ -36,3 +36,5 @@ export type CustomMouseMenuOptions = { export type ContextMenuListenFn = (e: MouseEvent) => void export type TouchListenFn = (e: TouchEvent) => void export type PreventCheckFn = (e?: TouchEvent, el?: HTMLElement) => boolean + +export type CustomMouseMenu = (options: CustomMouseMenuOptions) => any diff --git a/packages/to-drag/index.ts b/packages/to-drag/index.ts index db9ca2c..58cad71 100644 --- a/packages/to-drag/index.ts +++ b/packages/to-drag/index.ts @@ -1,5 +1,19 @@ import { DirectiveHook, App, DirectiveBinding, ObjectDirective } from 'vue'; -import { getComputedStyleList } from '../shared'; + +function getComputedStyleList (el: HTMLElement, names: string[], formatToNumber = false) { + const results: Record = {}; + const styles = window.getComputedStyle(el); + names.map(name => { + let result: string | number = styles[name as any]; + if (formatToNumber) { + const match = result.match(/\d+/); + if (match) result = ~~match[0]; + } + results[name] = result; + }); + return results; +} + export interface ToDragOptions { isAbsolute?: boolean, adsorbOffset: number,