chore: upgrade & improve eslint rule (#3105)

* chore: remove unused ts-node

* chore: upgrade lodash

* chore: upgrade eslint

* perf: remove side effects in computed

* refactor: follow eslint rules

* chore: remove vue-template-compiler

* style: enhance eslint format rule

* style: format code
This commit is contained in:
Sanxiaozhizi 2021-08-27 17:46:06 +08:00 committed by GitHub
parent f274bc97db
commit e9e56d5938
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
43 changed files with 617 additions and 531 deletions

View File

@ -20,18 +20,33 @@ module.exports = {
'plugin:vue/vue3-recommended',
],
rules: {
// js/ts
// style
'block-spacing': 'error',
'eol-last': 'error',
'no-trailing-spaces': 'error',
'comma-style': ['error', 'last'],
'comma-dangle': ['error', 'always-multiline'],
'no-multi-spaces': 'error',
quotes: ['error', 'single', { avoidEscape: true, allowTemplateLiterals: true }],
camelcase: ['error', { properties: 'never' }],
semi: ['error', 'never'],
indent: ['error', 2, { SwitchCase: 1 }],
'object-curly-spacing': ['error', 'always'],
'arrow-parens': ['error', 'as-needed'],
'arrow-parens':['error', 'as-needed'],
'array-bracket-spacing': ['error', 'never'],
'indent': 'off',
'@typescript-eslint/indent':['error', 2, { SwitchCase: 1 }],
'object-curly-spacing': 'off',
'@typescript-eslint/object-curly-spacing': ['error', 'always'],
quotes: 'off',
'@typescript-eslint/quotes': ['error', 'single', { avoidEscape: true, allowTemplateLiterals: true }],
'space-infix-ops': 'off',
'@typescript-eslint/space-infix-ops': ['error', { 'int32Hint': false }],
'@typescript-eslint/type-annotation-spacing': ['error', {}],
// js/ts
camelcase: ['error', { properties: 'never' }],
'@typescript-eslint/explicit-module-boundary-types': 'off',
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/member-delimiter-style': [
@ -47,6 +62,7 @@ module.exports = {
},
},
],
// vue
'vue/no-v-html': 'off',
'vue/singleline-html-element-content-newline': 'off',

View File

@ -54,8 +54,8 @@
"@types/jest": "^26.0.10",
"@types/klaw-sync": "^6.0.1",
"@types/lodash": "^4.14.161",
"@typescript-eslint/eslint-plugin": "^3.10.1",
"@typescript-eslint/parser": "^3.10.1",
"@typescript-eslint/eslint-plugin": "^4.29.3",
"@typescript-eslint/parser": "^4.29.3",
"@vue/babel-plugin-jsx": "^1.0.0",
"@vue/compiler-sfc": "^3.2.0",
"@vue/component-compiler-utils": "^3.2.0",
@ -112,14 +112,12 @@
"transliteration": "^2.1.11",
"ts-loader": "^8.0.3",
"ts-morph": "^11.0.3",
"ts-node": "^10.2.0",
"typescript": "^4.3.5",
"url-loader": "^4.1.0",
"vue": "^3.2.0",
"vue-jest": "5.0.0-alpha.5",
"vue-loader": "^16.1.2",
"vue-router": "^4.0.2",
"vue-template-compiler": "^2.6.12",
"webpack": "^4.44.1",
"webpack-bundle-analyzer": "^3.9.0",
"webpack-cli": "^3.3.12",

View File

@ -297,7 +297,7 @@ export default defineComponent({
}))
watch(
[ config, () => props.options ],
[config, () => props.options],
initStore,
{ deep: true, immediate: true },
)

View File

@ -112,6 +112,8 @@ const useCheckboxStatus = (props: IUseCheckboxProps, { model }: PartialReturnTyp
return value.includes(props.label)
} else if (value !== null && value !== undefined) {
return value === props.trueLabel
} else {
return !!value
}
})
const checkboxSize = computed(() => {

View File

@ -27,7 +27,7 @@ export default defineComponent({
accordion: Boolean,
modelValue: {
type: [Array, String, Number] as PropType<
string | number | Array<string | number>
string | number | Array<string | number>
>,
default: () => [],
},

View File

@ -179,7 +179,7 @@ export default class Color {
this.doOnChange()
}
set(prop: {[key: string]: any;} | any, value?: number) {
set(prop: { [key: string]: any; } | any, value?: number) {
if (arguments.length === 1 && typeof prop === 'object') {
for (const p in prop) {
if (hasOwn(prop, p)) {

View File

@ -93,7 +93,7 @@ export default defineComponent({
// data
const lastRow = ref(null)
const lastColumn = ref(null)
const tableRows = ref([ [], [], [], [], [], [] ])
const tableRows = ref([[], [], [], [], [], []])
// todo better way to get Day.js locale object
const firstDayOfWeek = (props.date as any).$locale().weekStart || 7

View File

@ -68,7 +68,7 @@ export default defineComponent({
setup(props, ctx) {
const { t, lang } = useLocaleInject()
const months = ref(props.date.locale('en').localeData().monthsShort().map(_=>_.toLowerCase()))
const tableRows = ref([ [], [], [] ])
const tableRows = ref([[], [], []])
const lastRow = ref(null)
const lastColumn = ref(null)
const rows = computed(() => {

View File

@ -28,7 +28,7 @@ export default defineComponent({
return {}
}
return {
...(props.size ? { '--font-size': `${props.size}px` }: {}),
...(props.size ? { '--font-size': `${props.size}px` } : {}),
...(props.color ? { '--color': props.color } : {}),
} as CSSProperties
}),

View File

@ -94,7 +94,7 @@ export default defineComponent({
props: {
urlList: {
type: Array as PropType<string[]>,
default: [],
default: () => [],
},
zIndex: {
type: Number,

View File

@ -1,49 +1,49 @@
import type { Ref, VNode } from 'vue'
export type ILoadingOptions = {
parent?: ILoadingParentElement
background?: string
svg?: string
svgViewBox?: string
spinner?: boolean | string
text?: string
fullscreen?: boolean
body?: boolean
lock?: boolean
customClass?: string
visible?: boolean
target?: string | HTMLElement
parent?: ILoadingParentElement
background?: string
svg?: string
svgViewBox?: string
spinner?: boolean | string
text?: string
fullscreen?: boolean
body?: boolean
lock?: boolean
customClass?: string
visible?: boolean
target?: string | HTMLElement
}
export type ILoadingInstance = {
parent?: Ref<ILoadingParentElement>
background?: Ref<string>
spinner?: Ref<boolean | string>
text?: Ref<string>
fullscreen?: Ref<boolean>
body?: Ref<boolean>
lock?: Ref<boolean>
customClass?: Ref<string>
visible?: Ref<boolean>
target?: Ref<string | HTMLElement>
originalPosition?: Ref<string>
originalOverflow?: Ref<string>
setText: (text: string) => void
close: () => void
handleAfterLeave: () => void
vm: VNode
$el: HTMLElement
parent?: Ref<ILoadingParentElement>
background?: Ref<string>
spinner?: Ref<boolean | string>
text?: Ref<string>
fullscreen?: Ref<boolean>
body?: Ref<boolean>
lock?: Ref<boolean>
customClass?: Ref<string>
visible?: Ref<boolean>
target?: Ref<string | HTMLElement>
originalPosition?: Ref<string>
originalOverflow?: Ref<string>
setText: (text: string) => void
close: () => void
handleAfterLeave: () => void
vm: VNode
$el: HTMLElement
}
export type ILoadingGlobalConfig = {
fullscreenLoading: ILoadingInstance
fullscreenLoading: ILoadingInstance
}
export type ILoadingCreateComponentParams = {
options: ILoadingOptions
globalLoadingOption: ILoadingGlobalConfig
options: ILoadingOptions
globalLoadingOption: ILoadingGlobalConfig
}
export interface ILoadingParentElement extends HTMLElement {
vLoadingAddClassList?: () => void
vLoadingAddClassList?: () => void
}

View File

@ -157,14 +157,14 @@ export interface ElMessageBoxOptions {
export type ElMessageBoxShortcutMethod =
((
message: ElMessageBoxOptions['message'],
title: ElMessageBoxOptions['title'],
options?: ElMessageBoxOptions,
) => Promise<MessageBoxData>)
message: ElMessageBoxOptions['message'],
title: ElMessageBoxOptions['title'],
options?: ElMessageBoxOptions,
) => Promise<MessageBoxData>)
& ((
message: ElMessageBoxOptions['message'],
options?: ElMessageBoxOptions,
) => Promise<MessageBoxData>)
message: ElMessageBoxOptions['message'],
options?: ElMessageBoxOptions,
) => Promise<MessageBoxData>)
export interface IElMessageBox {
/** Show a message box */

View File

@ -17,13 +17,13 @@ import type {
// component default merge props & data
const messageInstance = new Map<
ComponentPublicInstance<{ doClose: () => void; }>, // marking doClose as function
{
options: any
callback: Callback
resolve: (res: any) => void
reject: (reason?: any) => void
}
ComponentPublicInstance<{ doClose: () => void; }>, // marking doClose as function
{
options: any
callback: Callback
resolve: (res: any) => void
reject: (reason?: any) => void
}
>()
@ -110,7 +110,7 @@ const showMessage = (options: any) => {
async function MessageBox(options: ElMessageBoxOptions): Promise<MessageBoxData>
function MessageBox(
options: ElMessageBoxOptions | string | VNode,
): Promise<{value: string; action: Action;} | Action> {
): Promise<{ value: string; action: Action; } | Action> {
if (isServer) return
let callback
if (isString(options) || isVNode(options)) {

View File

@ -78,7 +78,7 @@ const Message: IMessage = function(
return {
// instead of calling the onClose function directly, setting this value so that we can have the full lifecycle
// for out component, so that all closing steps will not be skipped.
close: () => (vm.component.proxy as ComponentPublicInstance<{visible: boolean;}>).visible = false,
close: () => (vm.component.proxy as ComponentPublicInstance<{ visible: boolean; }>).visible = false,
}
} as any

View File

@ -26,7 +26,7 @@ export type MessageParams = IMessageOptions | string
export type TypedMessageParams<T extends MessageType> = { type: T; } & Omit<IMessageOptions, 'type'> | string
export interface IMessage {
(options?: MessageParams) : IMessageHandle
(options?: MessageParams): IMessageHandle
success: (options?: TypedMessageParams<'success'>) => IMessageHandle
warning: (options?: TypedMessageParams<'warning'>) => IMessageHandle
info: (options?: TypedMessageParams<'info'>) => IMessageHandle

View File

@ -9,7 +9,7 @@ export interface INotificationHandle {
}
export interface INotification {
(options?: INotificationOptions) : INotificationHandle
(options?: INotificationOptions): INotificationHandle
success?: (options: TypedNotificationOptions) => INotificationHandle
warning?: (options: TypedNotificationOptions) => INotificationHandle
error?: (options: TypedNotificationOptions) => INotificationHandle

View File

@ -5,6 +5,7 @@ import {
computed,
defineComponent,
getCurrentInstance,
watch,
} from 'vue'
import { warn } from '@element-plus/utils/error'
import { useLocaleInject } from '@element-plus/hooks'
@ -185,10 +186,6 @@ export default defineComponent({
} else if (!isAbsent(props.total)) {
pageCount = Math.max(1, Math.ceil(props.total / pageSizeBridge.value))
}
// side effect
if (currentPageBridge.value > pageCount) {
currentPageBridge.value = pageCount
}
return pageCount
})
@ -213,6 +210,11 @@ export default defineComponent({
},
})
watch(pageCountBridge, val => {
if (currentPageBridge.value > val)
currentPageBridge.value = val
})
function handleCurrentChange(val: number) {
currentPageBridge.value = val
}

View File

@ -47,7 +47,7 @@ export interface ISliderProvider {
export type Mark = {
point: number
position: number
mark: {[s: string]: any;}
mark: { [s: string]: any; }
}
export type Marks = ComputedRef<Mark[]>

View File

@ -25,7 +25,7 @@ export default defineComponent({
render(
ctx: ReturnType<typeof useSpace> &
ExtractPropTypes<typeof defaultProps> & { $slots: Slots; },
ExtractPropTypes<typeof defaultProps> & { $slots: Slots; },
) {
const {
classes,

View File

@ -25,7 +25,7 @@ export const defaultProps = {
style: {
type: [String, Array, Object] as PropType<
string | Array<any> | CSSProperties
string | Array<any> | CSSProperties
>,
},
@ -63,7 +63,7 @@ export const defaultProps = {
size: {
type: [String, Array, Number] as PropType<
ComponentSize | [number, number] | number
ComponentSize | [number, number] | number
>,
validator: (val: unknown) => {
return (

View File

@ -70,7 +70,7 @@ interface ISwitchProps {
name: string
validateEvent: boolean
id: string
loading:boolean
loading: boolean
beforeChange?: () => (Promise<boolean> | boolean)
}
@ -190,7 +190,7 @@ export default defineComponent({
})
const switchDisabled = computed((): boolean => {
return props.disabled || props.loading ||(elForm || {}).disabled
return props.disabled || props.loading || (elForm || {}).disabled
})
const handleChange = (): void => {

View File

@ -25,10 +25,10 @@ const defaultProps = {
type: Object as PropType<TableBodyProps<DefaultRow>['context']>,
},
rowClassName: [String, Function] as PropType<
TableBodyProps<DefaultRow>['rowClassName']
TableBodyProps<DefaultRow>['rowClassName']
>,
rowStyle: [Object, Function] as PropType<
TableBodyProps<DefaultRow>['rowStyle']
TableBodyProps<DefaultRow>['rowStyle']
>,
fixed: {
type: String,

View File

@ -95,7 +95,7 @@ export default {
default: '',
},
renderHeader: Function as PropType<
TableColumnCtx<DefaultRow>['renderHeader']
TableColumnCtx<DefaultRow>['renderHeader']
>,
sortable: {
type: [Boolean, String],
@ -103,7 +103,7 @@ export default {
},
sortMethod: Function as PropType<TableColumnCtx<DefaultRow>['sortMethod']>,
sortBy: [String, Function, Array] as PropType<
TableColumnCtx<DefaultRow>['sortBy']
TableColumnCtx<DefaultRow>['sortBy']
>,
resizable: {
type: Boolean,
@ -119,7 +119,7 @@ export default {
selectable: Function as PropType<TableColumnCtx<DefaultRow>['selectable']>,
reserveSelection: Boolean,
filterMethod: Function as PropType<
TableColumnCtx<DefaultRow>['filterMethod']
TableColumnCtx<DefaultRow>['filterMethod']
>,
filteredValue: Array as PropType<TableColumnCtx<DefaultRow>['filteredValue']>,
filters: Array as PropType<TableColumnCtx<DefaultRow>['filters']>,

View File

@ -27,7 +27,7 @@ export default defineComponent({
type: Object as PropType<TableFooter<DefaultRow>['store']>,
},
summaryMethod: Function as PropType<
TableFooter<DefaultRow>['summaryMethod']
TableFooter<DefaultRow>['summaryMethod']
>,
sumText: String,
border: Boolean,

View File

@ -58,19 +58,19 @@ type ColumnStyle<T> =
type CellCls<T> =
| string
| ((data: {
row: T
rowIndex: number
column: TableColumnCtx<T>
columnIndex: number
}) => string)
row: T
rowIndex: number
column: TableColumnCtx<T>
columnIndex: number
}) => string)
type CellStyle<T> =
| CSSProperties
| ((data: {
row: T
rowIndex: number
column: TableColumnCtx<T>
columnIndex: number
}) => CSSProperties)
row: T
rowIndex: number
column: TableColumnCtx<T>
columnIndex: number
}) => CSSProperties)
interface TableProps<T> {
data: T[]
@ -108,11 +108,11 @@ interface TableProps<T> {
column: TableColumnCtx<T>
columnIndex: number
}) =>
| number[]
| {
rowspan: number
colspan: number
}
| number[]
| {
rowspan: number
colspan: number
}
selectOnIndeterminate?: boolean
indent?: number
treeProps?: {
@ -182,26 +182,26 @@ export default {
sumText: String,
summaryMethod: Function as PropType<TableProps<DefaultRow>['summaryMethod']>,
rowClassName: [String, Function] as PropType<
TableProps<DefaultRow>['rowClassName']
TableProps<DefaultRow>['rowClassName']
>,
rowStyle: [Object, Function] as PropType<TableProps<DefaultRow>['rowStyle']>,
cellClassName: [String, Function] as PropType<
TableProps<DefaultRow>['cellClassName']
TableProps<DefaultRow>['cellClassName']
>,
cellStyle: [Object, Function] as PropType<
TableProps<DefaultRow>['cellStyle']
TableProps<DefaultRow>['cellStyle']
>,
headerRowClassName: [String, Function] as PropType<
TableProps<DefaultRow>['headerRowClassName']
TableProps<DefaultRow>['headerRowClassName']
>,
headerRowStyle: [Object, Function] as PropType<
TableProps<DefaultRow>['headerRowStyle']
TableProps<DefaultRow>['headerRowStyle']
>,
headerCellClassName: [String, Function] as PropType<
TableProps<DefaultRow>['headerCellClassName']
TableProps<DefaultRow>['headerCellClassName']
>,
headerCellStyle: [Object, Function] as PropType<
TableProps<DefaultRow>['headerCellStyle']
TableProps<DefaultRow>['headerCellStyle']
>,
highlightCurrentRow: Boolean,
currentRowKey: [String, Number],

View File

@ -48,7 +48,7 @@ export default defineComponent({
editable: Boolean,
onTabClick: {
type: Function as PropType<
(tab: Pane, tabName: string, ev: Event) => void
(tab: Pane, tabName: string, ev: Event) => void
>,
default: NOOP,
},

View File

@ -12,7 +12,7 @@
</div>
</template>
<script lang="ts">
import { defineComponent, ref, computed, inject, getCurrentInstance } from 'vue'
import { defineComponent, ref, computed, inject, getCurrentInstance, watch } from 'vue'
import type { RootTabs, UpdatePaneStateCallback } from './token'
export default defineComponent({
@ -45,11 +45,7 @@ export default defineComponent({
})
const active = computed(() => {
const active = rootTabs.currentName.value === (props.name || index.value)
if (active) {
loaded.value = true
}
return active
return rootTabs.currentName.value === (props.name || index.value)
})
const paneName = computed((): string => {
@ -60,6 +56,10 @@ export default defineComponent({
return !props.lazy || loaded.value || active.value
})
watch(active, val => {
if (val) loaded.value = true
})
const instance = getCurrentInstance()
updatePaneState({
uid: instance.uid,

View File

@ -48,16 +48,6 @@
<script lang='ts'>
import { inject, defineComponent } from 'vue'
interface ITimeLineItemProps {
timestamp: string
hideTimestamp: boolean
placement: string
type: string
color: string
size: string
icon: string
}
export default defineComponent({
name: 'ElTimelineItem',
props: {

View File

@ -130,7 +130,7 @@ export default class TreeStore {
}
}
append(data: TreeNodeData, parentData: TreeNodeData| TreeKey | Node ): void {
append(data: TreeNodeData, parentData: TreeNodeData | TreeKey | Node ): void {
const parentNode = parentData ? this.getNode(parentData) : this.root
if (parentNode) {

View File

@ -2,7 +2,7 @@ import { inject, provide } from 'vue'
import Node from '../model/node'
interface NodeMap {
treeNodeExpand(node: Node) : void
treeNodeExpand(node: Node): void
children: NodeMap[]
}

View File

@ -4,67 +4,67 @@ import TreeStore from './model/tree-store'
import type { ComponentInternalInstance, Ref, SetupContext, VNode } from 'vue'
export interface RootTreeType {
ctx: SetupContext<any>
props: TreeComponentProps
store: Ref<TreeStore>
root: Ref<Node>
currentNode: Ref<Node>
instance: ComponentInternalInstance
}
ctx: SetupContext<any>
props: TreeComponentProps
store: Ref<TreeStore>
root: Ref<Node>
currentNode: Ref<Node>
instance: ComponentInternalInstance
}
export declare type hType = typeof h
export declare type TreeData = TreeNodeData[]
export declare type TreeKey = string | number
export declare interface FakeNode {
data: TreeNodeData
data: TreeNodeData
}
export declare interface TreeNodeData {
[key: string]: any
[key: string]: any
}
export declare interface TreeNodeLoadedDefaultProps {
checked?: boolean
checked?: boolean
}
export declare interface TreeNodeChildState {
all: boolean
none: boolean
allWithoutDisable: boolean
half: boolean
all: boolean
none: boolean
allWithoutDisable: boolean
half: boolean
}
export declare interface TreeNodeOptions {
data: TreeNodeData
store: TreeStore
parent?: Node
data: TreeNodeData
store: TreeStore
parent?: Node
}
export declare interface TreeStoreNodesMap {
[key: string]: Node
[key: string]: Node
}
export declare interface TreeStoreOptions {
key: TreeKey
data: TreeData
lazy: boolean
props: TreeOptionProps
load: LoadFunction
currentNodeKey: TreeKey
checkStrictly: boolean
checkDescendants: boolean
defaultCheckedKeys: TreeKey[]
defaultExpandedKeys: TreeKey[]
autoExpandParent: boolean
defaultExpandAll: boolean
filterNodeMethod: FilterNodeMethodFunction
key: TreeKey
data: TreeData
lazy: boolean
props: TreeOptionProps
load: LoadFunction
currentNodeKey: TreeKey
checkStrictly: boolean
checkDescendants: boolean
defaultCheckedKeys: TreeKey[]
defaultExpandedKeys: TreeKey[]
autoExpandParent: boolean
defaultExpandAll: boolean
filterNodeMethod: FilterNodeMethodFunction
}
export declare interface TreeOptionProps {
children: string
label: string
disabled: string
isLeaf?: boolean
children: string
label: string
disabled: string
isLeaf?: boolean
}
export declare type RenderContentFunction = (h: hType, context: RenderContentContext) => (VNode | VNode[])
export declare interface RenderContentContext {
_self: ComponentInternalInstance
node: Node
data: TreeNodeData
store: TreeStore
_self: ComponentInternalInstance
node: Node
data: TreeNodeData
store: TreeStore
}
export declare type AllowDragFunction = (node: Node) => boolean
export declare type DropType = 'inner' | 'prev' | 'next'
@ -73,30 +73,30 @@ export declare type LoadFunction = (rootNode: Node, loadedCallback: (data: TreeD
export declare type FilterValue = any
export declare type FilterNodeMethodFunction = (value: FilterValue, data: TreeNodeData, child: Node) => boolean
export declare interface TreeComponentProps {
data: TreeData
emptyText: string
renderAfterExpand: boolean
nodeKey: string
checkStrictly: boolean
expandOnClickNode: boolean
defaultExpandAll: boolean
checkOnClickNode: boolean
checkDescendants: boolean
autoExpandParent: boolean
defaultCheckedKeys: TreeKey[]
defaultExpandedKeys: TreeKey[]
currentNodeKey: TreeKey
renderContent: RenderContentFunction
showCheckbox: boolean
draggable: boolean
allowDrag: AllowDragFunction
allowDrop: AllowDropFunction
props: TreeOptionProps
lazy: boolean
highlightCurrent: boolean
load: LoadFunction
filterNodeMethod: FilterNodeMethodFunction
accordion: boolean
indent: number
iconClass: string
data: TreeData
emptyText: string
renderAfterExpand: boolean
nodeKey: string
checkStrictly: boolean
expandOnClickNode: boolean
defaultExpandAll: boolean
checkOnClickNode: boolean
checkDescendants: boolean
autoExpandParent: boolean
defaultCheckedKeys: TreeKey[]
defaultExpandedKeys: TreeKey[]
currentNodeKey: TreeKey
renderContent: RenderContentFunction
showCheckbox: boolean
draggable: boolean
allowDrag: AllowDragFunction
allowDrop: AllowDropFunction
props: TreeOptionProps
lazy: boolean
highlightCurrent: boolean
load: LoadFunction
filterNodeMethod: FilterNodeMethodFunction
accordion: boolean
indent: number
iconClass: string
}

View File

@ -99,7 +99,7 @@ export default defineComponent({
},
beforeUpload: {
type: Function as PropType<
(file: File) => Promise<File | Blob> | boolean | unknown
(file: File) => Promise<File | Blob> | boolean | unknown
>,
default: NOOP as (file: File) => void,
},
@ -113,7 +113,7 @@ export default defineComponent({
},
onRemove: {
type: Function as PropType<
(file: Nullable<FileList>, rawFile: ElFile) => void
(file: Nullable<FileList>, rawFile: ElFile) => void
>,
default: NOOP as (file: Nullable<FileList>, rawFile: ElFile) => void,
},
@ -142,7 +142,7 @@ export default defineComponent({
},
onExceed: {
type: Function as PropType<
(files: FileList, fileList: UploadFile[]) => void
(files: FileList, fileList: UploadFile[]) => void
>,
default: NOOP,
},

View File

@ -10,11 +10,11 @@ import type { Nullable } from '@element-plus/utils/types'
type DocumentHandler = <T extends MouseEvent>(mouseup: T, mousedown: T) => void;
type FlushList = Map<
HTMLElement,
{
documentHandler: DocumentHandler
bindingFn: (...args: unknown[]) => unknown
}[]
HTMLElement,
{
documentHandler: DocumentHandler
bindingFn: (...args: unknown[]) => unknown
}[]
>;
const nodeList: FlushList = new Map()

View File

@ -25,7 +25,6 @@
"gulp": "^4.0.2",
"gulp-typescript": "^6.0.0-alpha.1",
"sass": "^1.37.0",
"ts-node": "^10.1.0",
"typescript": "^4.3.5"
},
"gitHead": "c69724230befa8fede0e6b9c37fb0b7e39fd7cdd"

View File

@ -28,7 +28,6 @@
"gulp": "^4.0.2",
"gulp-typescript": "^6.0.0-alpha.1",
"sass": "^1.37.0",
"ts-node": "^10.1.0",
"typescript": "^4.3.5"
},
"gitHead": "c69724230befa8fede0e6b9c37fb0b7e39fd7cdd"

View File

@ -59,8 +59,8 @@ export const useTargetEvents = (
}
const triggerEventsMap: Partial<Record<
TriggerType,
(keyof PopperEvents)[]
TriggerType,
(keyof PopperEvents)[]
>> = {
click: ['onClick'],
hover: ['onMouseenter', 'onMouseleave'],

View File

@ -23,7 +23,6 @@
"gulp": "^4.0.2",
"gulp-typescript": "^6.0.0-alpha.1",
"sass": "^1.37.0",
"ts-node": "^10.1.0",
"typescript": "^4.3.5"
},
"gitHead": "c69724230befa8fede0e6b9c37fb0b7e39fd7cdd"

View File

@ -2,7 +2,7 @@ import { mount } from '@vue/test-utils'
import { merge } from 'lodash'
const makeMount = <C,O, E>(element: C, defaultOptions: O) => {
return (props: (E | O) | (E & O)= {} as E) => mount(element, merge({}, defaultOptions, props))
return (props: (E | O) | (E & O) = {} as E) => mount(element, merge({}, defaultOptions, props))
}
interface Options {

View File

@ -40,9 +40,8 @@
"gulp-rename": "^2.0.0",
"gulp-sass": "^5.0.0",
"sass": "^1.37.0",
"ts-node": "^10.1.0",
"typescript": "^4.3.5"
},
"dependencies": {},
"gitHead": "c69724230befa8fede0e6b9c37fb0b7e39fd7cdd"
}
}

View File

@ -27,7 +27,6 @@
"gulp": "^4.0.2",
"gulp-typescript": "^6.0.0-alpha.1",
"sass": "^1.37.0",
"ts-node": "^10.1.0",
"typescript": "^4.3.5"
},
"gitHead": "c69724230befa8fede0e6b9c37fb0b7e39fd7cdd"

View File

@ -11,7 +11,7 @@ export const EVENT_CODE = {
backspace: 'Backspace',
}
const FOCUSABLE_ELEMENT_SELECTORS =`a[href],button:not([disabled]),button:not([hidden]),:not([tabindex="-1"]),input:not([disabled]),input:not([type="hidden"]),select:not([disabled]),textarea:not([disabled])`
const FOCUSABLE_ELEMENT_SELECTORS = `a[href],button:not([disabled]),button:not([hidden]),:not([tabindex="-1"]),input:not([disabled]),input:not([type="hidden"]),select:not([disabled]),textarea:not([disabled])`
/**
* Determine if the testing element is visible on screen no matter if its on the viewport or not

View File

@ -20,7 +20,6 @@
"gulp": "^4.0.2",
"gulp-typescript": "^6.0.0-alpha.1",
"sass": "^1.37.0",
"ts-node": "^10.1.0",
"typescript": "^4.3.5"
},
"gitHead": "c69724230befa8fede0e6b9c37fb0b7e39fd7cdd"

728
yarn.lock

File diff suppressed because it is too large Load Diff