Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
N
najiu-admin-template
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
najiu-frontend
najiu-admin-template
Commits
4ff1c408
Commit
4ff1c408
authored
Dec 25, 2020
by
vben
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wip(form): perf form
parent
3c3e640d
Changes
45
Hide whitespace changes
Inline
Side-by-side
Showing
45 changed files
with
918 additions
and
879 deletions
+918
-879
package.json
package.json
+3
-3
index.ts
src/components/Basic/index.ts
+4
-1
CollapseContainer.vue
src/components/Container/src/collapse/CollapseContainer.vue
+3
-0
BasicForm.vue
src/components/Form/src/BasicForm.vue
+50
-52
FormAction.tsx
src/components/Form/src/FormAction.tsx
+0
-141
componentMap.ts
src/components/Form/src/componentMap.ts
+3
-2
FormAction.vue
src/components/Form/src/components/FormAction.vue
+139
-0
FormItem.tsx
src/components/Form/src/components/FormItem.tsx
+71
-61
RadioButtonGroup.vue
src/components/Form/src/components/RadioButtonGroup.vue
+18
-25
helper.ts
src/components/Form/src/helper.ts
+11
-0
useAdvanced.ts
src/components/Form/src/hooks/useAdvanced.ts
+14
-36
useComponentRegister.ts
src/components/Form/src/hooks/useComponentRegister.ts
+3
-1
useForm.ts
src/components/Form/src/hooks/useForm.ts
+62
-29
useFormContext.ts
src/components/Form/src/hooks/useFormContext.ts
+17
-0
useFormEvents.ts
src/components/Form/src/hooks/useFormEvents.ts
+47
-53
useFormValues.ts
src/components/Form/src/hooks/useFormValues.ts
+9
-8
useLabelWidth.ts
src/components/Form/src/hooks/useLabelWidth.ts
+2
-17
props.ts
src/components/Form/src/props.ts
+32
-59
form.ts
src/components/Form/src/types/form.ts
+18
-16
useModalContext.ts
src/components/Modal/src/useModalContext.ts
+3
-3
util.ts
src/components/Scrollbar/src/util.ts
+1
-1
BasicTable.vue
src/components/Table/src/BasicTable.vue
+1
-1
renderEditable.tsx
src/components/Table/src/components/renderEditable.tsx
+1
-1
column.ts
src/components/Table/src/types/column.ts
+1
-1
CreateTransition.tsx
src/components/Transition/src/CreateTransition.tsx
+1
-1
index.tsx
src/components/VirtualScroll/src/index.tsx
+1
-1
util.tsx
src/components/util.tsx
+3
-3
index.ts
src/directives/ripple/index.ts
+4
-4
useFormItem.ts
src/hooks/component/useFormItem.ts
+35
-0
useAttrs.ts
src/hooks/core/useAttrs.ts
+39
-0
useKeyPress.ts
src/hooks/event/useKeyPress.ts
+3
-3
useI18n.ts
src/hooks/web/useI18n.ts
+1
-1
index.tsx
src/layouts/page/index.tsx
+1
-1
permissionGuard.ts
src/router/guard/permissionGuard.ts
+1
-1
types.ts
src/router/types.ts
+1
-1
colorSetting.ts
src/settings/colorSetting.ts
+1
-1
global.d.ts
src/types/global.d.ts
+7
-3
persistent.ts
src/utils/helper/persistent.ts
+2
-2
tsxHelper.tsx
src/utils/helper/tsxHelper.tsx
+1
-1
vueHelper.ts
src/utils/helper/vueHelper.ts
+2
-1
types.ts
src/utils/http/axios/types.ts
+1
-1
index.ts
src/utils/index.ts
+1
-1
log.ts
src/utils/log.ts
+4
-0
RuleForm.vue
src/views/demo/form/RuleForm.vue
+4
-1
yarn.lock
yarn.lock
+292
-341
No files found.
package.json
View file @
4ff1c408
...
@@ -48,11 +48,11 @@
...
@@ -48,11 +48,11 @@
"devDependencies"
:
{
"devDependencies"
:
{
"
@commitlint/cli
"
:
"
^11.0.0
"
,
"
@commitlint/cli
"
:
"
^11.0.0
"
,
"
@commitlint/config-conventional
"
:
"
^11.0.0
"
,
"
@commitlint/config-conventional
"
:
"
^11.0.0
"
,
"
@iconify/json
"
:
"
^1.1.27
5
"
,
"
@iconify/json
"
:
"
^1.1.27
6
"
,
"
@ls-lint/ls-lint
"
:
"
^1.9.2
"
,
"
@ls-lint/ls-lint
"
:
"
^1.9.2
"
,
"
@purge-icons/generated
"
:
"
^0.4.1
"
,
"
@purge-icons/generated
"
:
"
^0.4.1
"
,
"
@types/echarts
"
:
"
^4.9.3
"
,
"
@types/echarts
"
:
"
^4.9.3
"
,
"
@types/fs-extra
"
:
"
^9.0.
5
"
,
"
@types/fs-extra
"
:
"
^9.0.
6
"
,
"
@types/globrex
"
:
"
^0.1.0
"
,
"
@types/globrex
"
:
"
^0.1.0
"
,
"
@types/koa-static
"
:
"
^4.0.1
"
,
"
@types/koa-static
"
:
"
^4.0.1
"
,
"
@types/lodash-es
"
:
"
^4.17.4
"
,
"
@types/lodash-es
"
:
"
^4.17.4
"
,
...
@@ -102,7 +102,7 @@
...
@@ -102,7 +102,7 @@
"
vite-plugin-html
"
:
"
^1.0.0-beta.2
"
,
"
vite-plugin-html
"
:
"
^1.0.0-beta.2
"
,
"
vite-plugin-mock
"
:
"
^1.0.9
"
,
"
vite-plugin-mock
"
:
"
^1.0.9
"
,
"
vite-plugin-purge-icons
"
:
"
^0.4.5
"
,
"
vite-plugin-purge-icons
"
:
"
^0.4.5
"
,
"
vite-plugin-pwa
"
:
"
^0.
1.7
"
,
"
vite-plugin-pwa
"
:
"
^0.
2.0
"
,
"
vue-eslint-parser
"
:
"
^7.3.0
"
,
"
vue-eslint-parser
"
:
"
^7.3.0
"
,
"
yargs
"
:
"
^16.2.0
"
"
yargs
"
:
"
^16.2.0
"
},
},
...
...
src/components/Basic/index.ts
View file @
4ff1c408
import
{
createAsyncComponent
}
from
'
/@/utils/factory/createAsyncComponent
'
;
import
{
createAsyncComponent
}
from
'
/@/utils/factory/createAsyncComponent
'
;
import
BasicArrow
from
'
./src/BasicArrow.vue
'
;
export
const
BasicArrow
=
createAsyncComponent
(()
=>
import
(
'
./src/BasicArrow.vue
'
));
export
{
BasicArrow
};
// export const BasicArrow = createAsyncComponent(() => import('./src/BasicArrow.vue'));
export
const
BasicHelp
=
createAsyncComponent
(()
=>
import
(
'
./src/BasicHelp.vue
'
));
export
const
BasicHelp
=
createAsyncComponent
(()
=>
import
(
'
./src/BasicHelp.vue
'
));
export
const
BasicTitle
=
createAsyncComponent
(()
=>
import
(
'
./src/BasicTitle.vue
'
));
export
const
BasicTitle
=
createAsyncComponent
(()
=>
import
(
'
./src/BasicTitle.vue
'
));
src/components/Container/src/collapse/CollapseContainer.vue
View file @
4ff1c408
...
@@ -101,7 +101,10 @@
...
@@ -101,7 +101,10 @@
&__action {
&__action {
display: flex;
display: flex;
text-align: right;
flex: 1;
align-items: center;
align-items: center;
justify-content: flex-end;
}
}
}
}
</
style
>
</
style
>
src/components/Form/src/BasicForm.vue
View file @
4ff1c408
<
template
>
<
template
>
<Form
v-bind=
"
{ ...$attrs, ...$props }" ref="formElRef" :model="formModel">
<Form
v-bind=
"
{ ...$attrs, ...$props }" ref="formElRef" :model="formModel">
<Row
:class=
"getProps.compact ? 'compact-form-row' : ''"
:style=
"getRowWrapStyle
Ref
"
>
<Row
:class=
"getProps.compact ? 'compact-form-row' : ''"
:style=
"getRowWrapStyle"
>
<slot
name=
"formHeader"
/>
<slot
name=
"formHeader"
/>
<template
v-for=
"schema in getSchema"
:key=
"schema.field"
>
<template
v-for=
"schema in getSchema"
:key=
"schema.field"
>
<FormItem
<FormItem
...
@@ -10,6 +10,7 @@
...
@@ -10,6 +10,7 @@
:formProps=
"getProps"
:formProps=
"getProps"
:allDefaultValues=
"defaultValueRef"
:allDefaultValues=
"defaultValueRef"
:formModel=
"formModel"
:formModel=
"formModel"
:setFormModel=
"setFormModel"
>
>
<template
#[item]=
"data"
v-for=
"item in Object.keys($slots)"
>
<template
#[item]=
"data"
v-for=
"item in Object.keys($slots)"
>
<slot
:name=
"item"
v-bind=
"data"
/>
<slot
:name=
"item"
v-bind=
"data"
/>
...
@@ -17,8 +18,9 @@
...
@@ -17,8 +18,9 @@
</FormItem>
</FormItem>
</template>
</template>
<!-- -->
<FormAction
<FormAction
v-bind=
"{ ...get
ActionPropsRef
, ...advanceState }"
v-bind=
"{ ...get
Props
, ...advanceState }"
@
toggle-advanced=
"handleToggleAdvanced"
@
toggle-advanced=
"handleToggleAdvanced"
/>
/>
<slot
name=
"formFooter"
/>
<slot
name=
"formFooter"
/>
...
@@ -28,14 +30,12 @@
...
@@ -28,14 +30,12 @@
<
script
lang=
"ts"
>
<
script
lang=
"ts"
>
import
type
{
FormActionType
,
FormProps
,
FormSchema
}
from
'
./types/form
'
;
import
type
{
FormActionType
,
FormProps
,
FormSchema
}
from
'
./types/form
'
;
import
type
{
AdvanceState
}
from
'
./types/hooks
'
;
import
type
{
AdvanceState
}
from
'
./types/hooks
'
;
import
type
{
Ref
,
WatchStopHandle
}
from
'
vue
'
;
import
type
{
CSSProperties
,
Ref
,
WatchStopHandle
}
from
'
vue
'
;
import
type
{
ValidateFields
}
from
'
ant-design-vue/lib/form/interface
'
;
import
{
defineComponent
,
reactive
,
ref
,
computed
,
unref
,
onMounted
,
watch
,
toRefs
}
from
'
vue
'
;
import
{
defineComponent
,
reactive
,
ref
,
computed
,
unref
,
onMounted
,
watch
,
toRefs
}
from
'
vue
'
;
import
{
Form
,
Row
}
from
'
ant-design-vue
'
;
import
{
Form
,
Row
}
from
'
ant-design-vue
'
;
import
FormItem
from
'
./FormItem
'
;
import
FormItem
from
'
./components/FormItem
'
;
import
{
basicProps
}
from
'
./props
'
;
import
FormAction
from
'
./components/FormAction.vue
'
;
import
FormAction
from
'
./FormAction
'
;
import
{
dateItemType
}
from
'
./helper
'
;
import
{
dateItemType
}
from
'
./helper
'
;
import
moment
from
'
moment
'
;
import
moment
from
'
moment
'
;
...
@@ -44,7 +44,11 @@
...
@@ -44,7 +44,11 @@
import
{
useFormValues
}
from
'
./hooks/useFormValues
'
;
import
{
useFormValues
}
from
'
./hooks/useFormValues
'
;
import
useAdvanced
from
'
./hooks/useAdvanced
'
;
import
useAdvanced
from
'
./hooks/useAdvanced
'
;
import
{
useFormAction
}
from
'
./hooks/useFormAction
'
;
import
{
useFormEvents
}
from
'
./hooks/useFormEvents
'
;
import
{
createFormContext
}
from
'
./hooks/useFormContext
'
;
import
{
basicProps
}
from
'
./props
'
;
export
default
defineComponent
({
export
default
defineComponent
({
name
:
'
BasicForm
'
,
name
:
'
BasicForm
'
,
components
:
{
FormItem
,
Form
,
Row
,
FormAction
},
components
:
{
FormItem
,
Form
,
Row
,
FormAction
},
...
@@ -52,12 +56,7 @@
...
@@ -52,12 +56,7 @@
props
:
basicProps
,
props
:
basicProps
,
emits
:
[
'
advanced-change
'
,
'
reset
'
,
'
submit
'
,
'
register
'
],
emits
:
[
'
advanced-change
'
,
'
reset
'
,
'
submit
'
,
'
register
'
],
setup
(
props
,
{
emit
})
{
setup
(
props
,
{
emit
})
{
const
formModel
=
reactive
({});
const
formModel
=
reactive
<
Recordable
>
({});
const
actionState
=
reactive
({
resetAction
:
{},
submitAction
:
{},
});
const
advanceState
=
reactive
<
AdvanceState
>
({
const
advanceState
=
reactive
<
AdvanceState
>
({
isAdvanced
:
true
,
isAdvanced
:
true
,
...
@@ -66,37 +65,24 @@
...
@@ -66,37 +65,24 @@
actionSpan
:
6
,
actionSpan
:
6
,
});
});
const
defaultValueRef
=
ref
<
any
>
({});
const
defaultValueRef
=
ref
<
Recordable
>
({});
const
isInitedDefaultRef
=
ref
(
false
);
const
isInitedDefaultRef
=
ref
(
false
);
const
propsRef
=
ref
<
Partial
<
FormProps
>>
({});
const
propsRef
=
ref
<
Partial
<
FormProps
>>
({});
const
schemaRef
=
ref
<
Nullable
<
FormSchema
[]
>>
(
null
);
const
schemaRef
=
ref
<
Nullable
<
FormSchema
[]
>>
(
null
);
const
formElRef
=
ref
<
Nullable
<
FormActionType
>>
(
null
);
const
formElRef
=
ref
<
Nullable
<
FormActionType
>>
(
null
);
const
getMergePropsRef
=
computed
(
// Get the basic configuration of the form
const
getProps
=
computed
(
():
FormProps
=>
{
():
FormProps
=>
{
return
deepMerge
(
cloneDeep
(
props
),
unref
(
propsRef
));
return
deepMerge
(
cloneDeep
(
props
),
unref
(
propsRef
));
}
}
);
);
const
getRowWrapStyleRef
=
computed
(():
any
=>
{
// Get uniform row style
const
{
baseRowStyle
}
=
unref
(
getMergePropsRef
);
const
getRowWrapStyle
=
computed
(
return
baseRowStyle
||
{};
():
CSSProperties
=>
{
});
const
{
baseRowStyle
=
{}
}
=
unref
(
getProps
);
return
baseRowStyle
;
// 获取表单基本配置
const
getProps
=
computed
(
():
FormProps
=>
{
return
{
...
unref
(
getMergePropsRef
),
resetButtonOptions
:
deepMerge
(
actionState
.
resetAction
,
unref
(
getMergePropsRef
).
resetButtonOptions
||
{}
),
submitButtonOptions
:
deepMerge
(
actionState
.
submitAction
,
unref
(
getMergePropsRef
).
submitButtonOptions
||
{}
),
};
}
}
);
);
...
@@ -120,18 +106,19 @@
...
@@ -120,18 +106,19 @@
return
schemas
as
FormSchema
[];
return
schemas
as
FormSchema
[];
});
});
const
{
getActionPropsRef
,
handleToggleAdvanced
}
=
useAdvanced
({
const
{
handleToggleAdvanced
}
=
useAdvanced
({
advanceState
,
advanceState
,
emit
,
emit
,
getMergePropsRef
,
getProps
,
getProps
,
getSchema
,
getSchema
,
formModel
,
formModel
,
defaultValueRef
,
defaultValueRef
,
});
});
const
{
transformDateFunc
,
fieldMapToTime
}
=
toRefs
(
props
);
const
{
transformDateFunc
,
fieldMapToTime
}
=
toRefs
(
props
);
const
{
handleFormValues
,
initDefault
}
=
useFormValues
({
const
{
handleFormValues
,
initDefault
}
=
useFormValues
({
transformDateFuncRef
:
transformDateFunc
as
Ref
<
Fn
<
any
>>
,
transformDateFuncRef
:
transformDateFunc
,
fieldMapToTimeRef
:
fieldMapToTime
,
fieldMapToTimeRef
:
fieldMapToTime
,
defaultValueRef
,
defaultValueRef
,
getSchema
,
getSchema
,
...
@@ -139,7 +126,7 @@
...
@@ -139,7 +126,7 @@
});
});
const
{
const
{
//
handleSubmit,
handleSubmit
,
setFieldsValue
,
setFieldsValue
,
clearValidate
,
clearValidate
,
validate
,
validate
,
...
@@ -149,7 +136,8 @@
...
@@ -149,7 +136,8 @@
appendSchemaByField
,
appendSchemaByField
,
removeSchemaByFiled
,
removeSchemaByFiled
,
resetFields
,
resetFields
,
}
=
useFormAction
({
scrollToField
,
}
=
useFormEvents
({
emit
,
emit
,
getProps
,
getProps
,
formModel
,
formModel
,
...
@@ -158,14 +146,19 @@
...
@@ -158,14 +146,19 @@
formElRef
:
formElRef
as
Ref
<
FormActionType
>
,
formElRef
:
formElRef
as
Ref
<
FormActionType
>
,
schemaRef
:
schemaRef
as
Ref
<
FormSchema
[]
>
,
schemaRef
:
schemaRef
as
Ref
<
FormSchema
[]
>
,
handleFormValues
,
handleFormValues
,
actionState
,
});
createFormContext
({
resetAction
:
resetFields
,
submitAction
:
handleSubmit
,
});
});
watch
(
watch
(
()
=>
unref
(
get
MergePropsRef
).
model
,
()
=>
unref
(
get
Props
).
model
,
()
=>
{
()
=>
{
if
(
!
unref
(
getMergePropsRef
).
model
)
return
;
const
{
model
}
=
unref
(
getProps
);
setFieldsValue
(
unref
(
getMergePropsRef
).
model
);
if
(
!
model
)
return
;
setFieldsValue
(
model
);
},
},
{
{
immediate
:
true
,
immediate
:
true
,
...
@@ -178,16 +171,19 @@
...
@@ -178,16 +171,19 @@
if
(
unref
(
isInitedDefaultRef
))
{
if
(
unref
(
isInitedDefaultRef
))
{
return
stopWatch
();
return
stopWatch
();
}
}
if
(
schema
&&
schema
.
length
)
{
if
(
schema
?
.
length
)
{
initDefault
();
initDefault
();
isInitedDefaultRef
.
value
=
true
;
isInitedDefaultRef
.
value
=
true
;
}
}
}
}
);
);
function
setProps
(
formProps
:
Partial
<
FormProps
>
):
void
{
async
function
setProps
(
formProps
:
Partial
<
FormProps
>
):
Promise
<
void
>
{
const
mergeProps
=
deepMerge
(
unref
(
propsRef
)
||
{},
formProps
);
propsRef
.
value
=
deepMerge
(
unref
(
propsRef
)
||
{},
formProps
);
propsRef
.
value
=
mergeProps
;
}
function
setFormModel
(
key
:
string
,
value
:
any
)
{
formModel
[
key
]
=
value
;
}
}
const
formActionType
:
Partial
<
FormActionType
>
=
{
const
formActionType
:
Partial
<
FormActionType
>
=
{
...
@@ -199,8 +195,10 @@
...
@@ -199,8 +195,10 @@
removeSchemaByFiled
,
removeSchemaByFiled
,
appendSchemaByField
,
appendSchemaByField
,
clearValidate
,
clearValidate
,
validateFields
:
validateFields
as
ValidateFields
,
validateFields
,
validate
:
validate
as
ValidateFields
,
validate
,
submit
:
handleSubmit
,
scrollToField
:
scrollToField
,
};
};
onMounted
(()
=>
{
onMounted
(()
=>
{
...
@@ -211,14 +209,14 @@
...
@@ -211,14 +209,14 @@
return
{
return
{
handleToggleAdvanced
,
handleToggleAdvanced
,
formModel
,
formModel
,
getActionPropsRef
,
defaultValueRef
,
defaultValueRef
,
advanceState
,
advanceState
,
getRowWrapStyle
Ref
,
getRowWrapStyle
,
getProps
,
getProps
,
formElRef
,
formElRef
,
getSchema
,
getSchema
,
formActionType
,
formActionType
,
setFormModel
,
...
formActionType
,
...
formActionType
,
};
};
},
},
...
...
src/components/Form/src/FormAction.tsx
deleted
100644 → 0
View file @
3c3e640d
import
type
{
ColEx
}
from
'
./types/index
'
;
import
{
defineComponent
,
unref
,
computed
,
PropType
}
from
'
vue
'
;
import
{
Form
,
Col
}
from
'
ant-design-vue
'
;
import
{
Button
}
from
'
/@/components/Button
'
;
import
{
BasicArrow
}
from
'
/@/components/Basic/index
'
;
import
{
getSlot
}
from
'
/@/utils/helper/tsxHelper
'
;
import
{
useI18n
}
from
'
/@/hooks/web/useI18n
'
;
import
{
propTypes
}
from
'
/@/utils/propTypes
'
;
const
{
t
}
=
useI18n
();
export
default
defineComponent
({
name
:
'
BasicFormAction
'
,
props
:
{
show
:
propTypes
.
bool
.
def
(
true
),
showResetButton
:
propTypes
.
bool
.
def
(
true
),
showSubmitButton
:
propTypes
.
bool
.
def
(
true
),
showAdvancedButton
:
propTypes
.
bool
.
def
(
true
),
resetButtonOptions
:
{
type
:
Object
as
PropType
<
any
>
,
default
:
{},
},
submitButtonOptions
:
{
type
:
Object
as
PropType
<
any
>
,
default
:
{},
},
actionColOptions
:
{
type
:
Object
as
PropType
<
any
>
,
default
:
{},
},
actionSpan
:
propTypes
.
number
.
def
(
6
),
isAdvanced
:
propTypes
.
bool
,
hideAdvanceBtn
:
propTypes
.
bool
,
},
emits
:
[
'
toggle-advanced
'
],
setup
(
props
,
{
slots
,
emit
})
{
const
getResetBtnOptionsRef
=
computed
(()
=>
{
return
{
text
:
t
(
'
component.form.resetButton
'
),
...
props
.
resetButtonOptions
,
};
});
const
getSubmitBtnOptionsRef
=
computed
(()
=>
{
return
{
text
:
t
(
'
component.form.submitButton
'
),
// htmlType: 'submit',
...
props
.
submitButtonOptions
,
};
});
const
actionColOpt
=
computed
(()
=>
{
const
{
showAdvancedButton
,
actionSpan
:
span
,
actionColOptions
}
=
props
;
const
actionSpan
=
24
-
span
;
const
advancedSpanObj
=
showAdvancedButton
?
{
span
:
actionSpan
<
6
?
24
:
actionSpan
}
:
{};
const
actionColOpt
:
Partial
<
ColEx
>
=
{
span
:
showAdvancedButton
?
6
:
4
,
...
advancedSpanObj
,
...
actionColOptions
,
};
return
actionColOpt
;
});
function
toggleAdvanced
()
{
emit
(
'
toggle-advanced
'
);
}
function
renderAdvanceButton
()
{
const
{
showAdvancedButton
,
hideAdvanceBtn
,
isAdvanced
}
=
props
;
if
(
!
showAdvancedButton
||
!!
hideAdvanceBtn
)
{
return
null
;
}
return
(
<
Button
type=
"default"
class=
"mr-2"
onClick=
{
toggleAdvanced
}
>
{
()
=>
(
<>
{
isAdvanced
?
t
(
'
component.form.putAway
'
)
:
t
(
'
component.form.unfold
'
)
}
<
BasicArrow
expand=
{
!
isAdvanced
}
top
/>
</>
)
}
</
Button
>
);
}
function
renderResetButton
()
{
const
{
showResetButton
}
=
props
;
if
(
!
showResetButton
)
{
return
null
;
}
return
(
<
Button
type=
"default"
class=
"mr-2"
{
...
unref
(
getResetBtnOptionsRef
)}
>
{
()
=>
unref
(
getResetBtnOptionsRef
).
text
}
</
Button
>
);
}
function
renderSubmitButton
()
{
const
{
showSubmitButton
}
=
props
;
if
(
!
showSubmitButton
)
{
return
null
;
}
return
(
<
Button
type=
"primary"
{
...
unref
(
getSubmitBtnOptionsRef
)}
>
{
()
=>
unref
(
getSubmitBtnOptionsRef
).
text
}
</
Button
>
);
}
return
()
=>
{
if
(
!
props
.
show
)
{
return
null
;
}
return
(
<
Col
{
...
unref
(
actionColOpt
)}
style=
{
{
textAlign
:
'
right
'
}
}
>
{
()
=>
(
<
Form
.
Item
>
{
()
=>
(
<>
{
getSlot
(
slots
,
'
advanceBefore
'
)
}
{
renderAdvanceButton
()
}
{
getSlot
(
slots
,
'
resetBefore
'
)
}
{
renderResetButton
()
}
{
getSlot
(
slots
,
'
submitBefore
'
)
}
{
renderSubmitButton
()
}
{
getSlot
(
slots
,
'
submitAfter
'
)
}
</>
)
}
</
Form
.
Item
>
)
}
</
Col
>
);
};
},
});
src/components/Form/src/componentMap.ts
View file @
4ff1c408
import
{
Component
}
from
'
vue
'
;
import
type
{
Component
}
from
'
vue
'
;
import
type
{
ComponentType
}
from
'
./types/index
'
;
import
type
{
ComponentType
}
from
'
./types/index
'
;
/**
/**
...
@@ -17,10 +17,11 @@ import {
...
@@ -17,10 +17,11 @@ import {
TimePicker
,
TimePicker
,
TreeSelect
,
TreeSelect
,
}
from
'
ant-design-vue
'
;
}
from
'
ant-design-vue
'
;
import
RadioButtonGroup
from
'
./components/RadioButtonGroup.vue
'
;
import
RadioButtonGroup
from
'
./components/RadioButtonGroup.vue
'
;
import
{
BasicUpload
}
from
'
/@/components/Upload
'
;
import
{
BasicUpload
}
from
'
/@/components/Upload
'
;
const
componentMap
=
new
Map
<
ComponentType
,
any
>
();
const
componentMap
=
new
Map
<
ComponentType
,
Component
>
();
componentMap
.
set
(
'
Input
'
,
Input
);
componentMap
.
set
(
'
Input
'
,
Input
);
componentMap
.
set
(
'
InputGroup
'
,
Input
.
Group
);
componentMap
.
set
(
'
InputGroup
'
,
Input
.
Group
);
...
...
src/components/Form/src/components/FormAction.vue
0 → 100644
View file @
4ff1c408
<
template
>
<a-col
v-bind=
"actionColOpt"
class=
"mb-2"
:style=
"
{ textAlign: 'right' }"
v-if="showActionButtonGroup"
>
<FormItem>
<slot
name=
"resetBefore"
/>
<Button
type=
"default"
class=
"mr-2"
v-bind=
"getResetBtnOptions"
@
click=
"resetAction"
v-if=
"showResetButton"
>
{{
getResetBtnOptions
.
text
}}
</Button>
<slot
name=
"submitBefore"
/>
<Button
type=
"primary"
class=
"mr-2"
v-bind=
"getSubmitBtnOptions"
@
click=
"submitAction"
v-if=
"showSubmitButton"
>
{{
getSubmitBtnOptions
.
text
}}
</Button>
<slot
name=
"advanceBefore"
/>
<Button
type=
"link"
size=
"small"
@
click=
"toggleAdvanced"
v-if=
"showAdvancedButton && !hideAdvanceBtn"
>
{{
isAdvanced
?
t
(
'
component.form.putAway
'
)
:
t
(
'
component.form.unfold
'
)
}}
<BasicArrow
class=
"ml-1"
:expand=
"!isAdvanced"
top
/>
</Button>
<slot
name=
"advanceAfter"
/>
</FormItem>
</a-col>
</
template
>
<
script
lang=
"ts"
>
import
type
{
ColEx
}
from
'
../types/index
'
;
import
type
{
ButtonProps
}
from
'
ant-design-vue/es/button/buttonTypes
'
;
import
{
defineComponent
,
computed
,
PropType
}
from
'
vue
'
;
import
{
Form
}
from
'
ant-design-vue
'
;
import
{
Button
}
from
'
/@/components/Button
'
;
import
{
BasicArrow
}
from
'
/@/components/Basic/index
'
;
import
{
useFormContext
}
from
'
../hooks/useFormContext
'
;
import
{
useI18n
}
from
'
/@/hooks/web/useI18n
'
;
import
{
propTypes
}
from
'
/@/utils/propTypes
'
;
type
ButtonOptions
=
Partial
<
ButtonProps
>
&
{
text
:
string
};
export
default
defineComponent
({
name
:
'
BasicFormAction
'
,
components
:
{
FormItem
:
Form
,
Button
,
BasicArrow
,
},
props
:
{
showActionButtonGroup
:
propTypes
.
bool
.
def
(
true
),
showResetButton
:
propTypes
.
bool
.
def
(
true
),
showSubmitButton
:
propTypes
.
bool
.
def
(
true
),
showAdvancedButton
:
propTypes
.
bool
.
def
(
true
),
resetButtonOptions
:
{
type
:
Object
as
PropType
<
ButtonOptions
>
,
default
:
{},
},
submitButtonOptions
:
{
type
:
Object
as
PropType
<
ButtonOptions
>
,
default
:
{},
},
actionColOptions
:
{
type
:
Object
as
PropType
<
Partial
<
ColEx
>>
,
default
:
{},
},
actionSpan
:
propTypes
.
number
.
def
(
6
),
isAdvanced
:
propTypes
.
bool
,
hideAdvanceBtn
:
propTypes
.
bool
,
},
setup
(
props
,
{
emit
})
{
const
{
t
}
=
useI18n
();
const
actionColOpt
=
computed
(()
=>
{
const
{
showAdvancedButton
,
actionSpan
:
span
,
actionColOptions
}
=
props
;
const
actionSpan
=
24
-
span
;
const
advancedSpanObj
=
showAdvancedButton
?
{
span
:
actionSpan
<
6
?
24
:
actionSpan
}
:
{};
const
actionColOpt
:
Partial
<
ColEx
>
=
{
span
:
showAdvancedButton
?
6
:
4
,
...
advancedSpanObj
,
...
actionColOptions
,
};
return
actionColOpt
;
});
const
getResetBtnOptions
=
computed
(
():
ButtonOptions
=>
{
return
Object
.
assign
(
{
text
:
t
(
'
component.form.resetButton
'
),
},
props
.
resetButtonOptions
);
}
);
const
getSubmitBtnOptions
=
computed
(()
=>
{
return
Object
.
assign
(
{
text
:
t
(
'
component.form.submitButton
'
),
},
props
.
submitButtonOptions
);
});
function
toggleAdvanced
()
{
emit
(
'
toggle-advanced
'
);
}
return
{
t
,
actionColOpt
,
getResetBtnOptions
,
getSubmitBtnOptions
,
toggleAdvanced
,
...
useFormContext
(),
};
},
});
</
script
>
src/components/Form/src/FormItem.tsx
→
src/components/Form/src/
components/
FormItem.tsx
View file @
4ff1c408
import
type
{
PropType
}
from
'
vue
'
;
import
type
{
PropType
,
Ref
}
from
'
vue
'
;
import
type
{
FormActionType
,
FormProps
}
from
'
./types/form
'
;
import
type
{
FormActionType
,
FormProps
}
from
'
.
.
/types/form
'
;
import
type
{
FormSchema
}
from
'
./types/form
'
;
import
type
{
FormSchema
}
from
'
.
.
/types/form
'
;
import
type
{
ValidationRule
}
from
'
ant-design-vue/lib/form/Form
'
;
import
type
{
ValidationRule
}
from
'
ant-design-vue/lib/form/Form
'
;
import
type
{
TableActionType
}
from
'
/@/components/Table
'
;
import
type
{
TableActionType
}
from
'
/@/components/Table
'
;
import
type
{
ComponentType
}
from
'
../types
'
;
import
{
defineComponent
,
computed
,
unref
,
toRef
}
from
'
vue
'
;
import
{
defineComponent
,
computed
,
unref
,
toRef
s
}
from
'
vue
'
;
import
{
Form
,
Col
}
from
'
ant-design-vue
'
;
import
{
Form
,
Col
}
from
'
ant-design-vue
'
;
import
{
componentMap
}
from
'
./componentMap
'
;
import
{
componentMap
}
from
'
.
.
/componentMap
'
;
import
{
BasicHelp
}
from
'
/@/components/Basic
'
;
import
{
BasicHelp
}
from
'
/@/components/Basic
'
;
import
{
isBoolean
,
isFunction
}
from
'
/@/utils/is
'
;
import
{
isBoolean
,
isFunction
}
from
'
/@/utils/is
'
;
import
{
getSlot
}
from
'
/@/utils/helper/tsxHelper
'
;
import
{
getSlot
}
from
'
/@/utils/helper/tsxHelper
'
;
import
{
createPlaceholderMessage
}
from
'
./helper
'
;
import
{
createPlaceholderMessage
,
setComponentRuleType
}
from
'
.
./helper
'
;
import
{
upperFirst
,
cloneDeep
}
from
'
lodash-es
'
;
import
{
upperFirst
,
cloneDeep
}
from
'
lodash-es
'
;
import
{
useItemLabelWidth
}
from
'
./hooks/useLabelWidth
'
;
import
{
useItemLabelWidth
}
from
'
../hooks/useLabelWidth
'
;
import
{
ComponentType
}
from
'
./types
'
;
import
{
isNumber
}
from
'
/@/utils/is
'
;
import
{
isNumber
}
from
'
/@/utils/is
'
;
import
{
useI18n
}
from
'
/@/hooks/web/useI18n
'
;
import
{
useI18n
}
from
'
/@/hooks/web/useI18n
'
;
...
@@ -32,13 +32,17 @@ export default defineComponent({
...
@@ -32,13 +32,17 @@ export default defineComponent({
default
:
{},
default
:
{},
},
},
allDefaultValues
:
{
allDefaultValues
:
{
type
:
Object
as
PropType
<
any
>
,
type
:
Object
as
PropType
<
Recordable
>
,
default
:
{},
default
:
{},
},
},
formModel
:
{
formModel
:
{
type
:
Object
as
PropType
<
any
>
,
type
:
Object
as
PropType
<
Recordable
>
,
default
:
{},
default
:
{},
},
},
setFormModel
:
{
type
:
Function
as
PropType
<
(
key
:
string
,
value
:
any
)
=>
void
>
,
default
:
null
,
},
tableAction
:
{
tableAction
:
{
type
:
Object
as
PropType
<
TableActionType
>
,
type
:
Object
as
PropType
<
TableActionType
>
,
},
},
...
@@ -48,10 +52,15 @@ export default defineComponent({
...
@@ -48,10 +52,15 @@ export default defineComponent({
},
},
setup
(
props
,
{
slots
})
{
setup
(
props
,
{
slots
})
{
const
{
t
}
=
useI18n
();
const
{
t
}
=
useI18n
();
// @ts-ignore
const
itemLabelWidthRef
=
useItemLabelWidth
(
toRef
(
props
,
'
schema
'
),
toRef
(
props
,
'
formProps
'
));
const
getValuesRef
=
computed
(()
=>
{
const
{
schema
,
formProps
}
=
toRefs
(
props
)
as
{
schema
:
Ref
<
FormSchema
>
;
formProps
:
Ref
<
FormProps
>
;
};
const
itemLabelWidthProp
=
useItemLabelWidth
(
schema
,
formProps
);
const
getValues
=
computed
(()
=>
{
const
{
allDefaultValues
,
formModel
,
schema
}
=
props
;
const
{
allDefaultValues
,
formModel
,
schema
}
=
props
;
const
{
mergeDynamicData
}
=
props
.
formProps
;
const
{
mergeDynamicData
}
=
props
.
formProps
;
return
{
return
{
...
@@ -61,12 +70,12 @@ export default defineComponent({
...
@@ -61,12 +70,12 @@ export default defineComponent({
...
mergeDynamicData
,
...
mergeDynamicData
,
...
allDefaultValues
,
...
allDefaultValues
,
...
formModel
,
...
formModel
,
},
}
as
Recordable
,
schema
:
schema
,
schema
:
schema
,
};
};
});
});
const
getComponentsProps
Ref
=
computed
(()
=>
{
const
getComponentsProps
=
computed
(()
=>
{
const
{
schema
,
tableAction
,
formModel
,
formActionType
}
=
props
;
const
{
schema
,
tableAction
,
formModel
,
formActionType
}
=
props
;
const
{
componentProps
=
{}
}
=
schema
;
const
{
componentProps
=
{}
}
=
schema
;
if
(
!
isFunction
(
componentProps
))
{
if
(
!
isFunction
(
componentProps
))
{
...
@@ -75,19 +84,18 @@ export default defineComponent({
...
@@ -75,19 +84,18 @@ export default defineComponent({
return
componentProps
({
schema
,
tableAction
,
formModel
,
formActionType
})
||
{};
return
componentProps
({
schema
,
tableAction
,
formModel
,
formActionType
})
||
{};
});
});
const
getDisable
Ref
=
computed
(()
=>
{
const
getDisable
=
computed
(()
=>
{
const
{
disabled
:
globDisabled
}
=
props
.
formProps
;
const
{
disabled
:
globDisabled
}
=
props
.
formProps
;
const
{
dynamicDisabled
}
=
props
.
schema
;
const
{
dynamicDisabled
}
=
props
.
schema
;
const
{
disabled
:
itemDisabled
=
false
}
=
unref
(
getComponentsProps
Ref
);
const
{
disabled
:
itemDisabled
=
false
}
=
unref
(
getComponentsProps
);
let
disabled
=
!!
globDisabled
||
itemDisabled
;
let
disabled
=
!!
globDisabled
||
itemDisabled
;
if
(
isBoolean
(
dynamicDisabled
))
{
if
(
isBoolean
(
dynamicDisabled
))
{
disabled
=
dynamicDisabled
;
disabled
=
dynamicDisabled
;
}
}
if
(
isFunction
(
dynamicDisabled
))
{
if
(
isFunction
(
dynamicDisabled
))
{
disabled
=
dynamicDisabled
(
unref
(
getValues
Ref
));
disabled
=
dynamicDisabled
(
unref
(
getValues
));
}
}
return
disabled
;
return
disabled
;
});
});
...
@@ -109,10 +117,10 @@ export default defineComponent({
...
@@ -109,10 +117,10 @@ export default defineComponent({
isIfShow
=
ifShow
;
isIfShow
=
ifShow
;
}
}
if
(
isFunction
(
show
))
{
if
(
isFunction
(
show
))
{
isShow
=
show
(
unref
(
getValues
Ref
));
isShow
=
show
(
unref
(
getValues
));
}
}
if
(
isFunction
(
ifShow
))
{
if
(
isFunction
(
ifShow
))
{
isIfShow
=
ifShow
(
unref
(
getValues
Ref
));
isIfShow
=
ifShow
(
unref
(
getValues
));
}
}
isShow
=
isShow
&&
itemIsAdvanced
;
isShow
=
isShow
&&
itemIsAdvanced
;
return
{
isShow
,
isIfShow
};
return
{
isShow
,
isIfShow
};
...
@@ -129,7 +137,7 @@ export default defineComponent({
...
@@ -129,7 +137,7 @@ export default defineComponent({
}
=
props
.
schema
;
}
=
props
.
schema
;
if
(
isFunction
(
dynamicRules
))
{
if
(
isFunction
(
dynamicRules
))
{
return
dynamicRules
(
unref
(
getValues
Ref
))
as
ValidationRule
[];
return
dynamicRules
(
unref
(
getValues
))
as
ValidationRule
[];
}
}
let
rules
:
ValidationRule
[]
=
cloneDeep
(
defRules
)
as
ValidationRule
[];
let
rules
:
ValidationRule
[]
=
cloneDeep
(
defRules
)
as
ValidationRule
[];
...
@@ -151,23 +159,15 @@ export default defineComponent({
...
@@ -151,23 +159,15 @@ export default defineComponent({
const
joinLabel
=
Reflect
.
has
(
props
.
schema
,
'
rulesMessageJoinLabel
'
)
const
joinLabel
=
Reflect
.
has
(
props
.
schema
,
'
rulesMessageJoinLabel
'
)
?
rulesMessageJoinLabel
?
rulesMessageJoinLabel
:
globalRulesMessageJoinLabel
;
:
globalRulesMessageJoinLabel
;
rule
.
message
=
rule
.
message
=
rule
.
message
||
createPlaceholderMessage
(
component
)
+
`
${
joinLabel
?
label
:
''
}
`
;
rule
.
message
||
createPlaceholderMessage
(
component
)
+
`
${
joinLabel
?
label
:
''
}
`
;
if
(
component
.
includes
(
'
Input
'
)
||
component
.
includes
(
'
Textarea
'
))
{
if
(
component
.
includes
(
'
Input
'
)
||
component
.
includes
(
'
Textarea
'
))
{
rule
.
whitespace
=
true
;
rule
.
whitespace
=
true
;
}
}
if
(
component
.
includes
(
'
DatePicker
'
)
||
setComponentRuleType
(
rule
,
component
);
component
.
includes
(
'
MonthPicker
'
)
||
component
.
includes
(
'
WeekPicker
'
)
||
component
.
includes
(
'
TimePicker
'
)
)
{
rule
.
type
=
'
object
'
;
}
else
if
(
component
.
includes
(
'
RangePicker
'
)
||
component
.
includes
(
'
Upload
'
))
{
rule
.
type
=
'
array
'
;
}
else
if
(
component
.
includes
(
'
InputNumber
'
))
{
rule
.
type
=
'
number
'
;
}
}
}
}
}
...
@@ -181,10 +181,12 @@ export default defineComponent({
...
@@ -181,10 +181,12 @@ export default defineComponent({
}
}
function
handleValue
(
component
:
ComponentType
,
field
:
string
)
{
function
handleValue
(
component
:
ComponentType
,
field
:
string
)
{
const
val
=
(
props
.
formModel
as
any
)
[
field
];
const
val
=
props
.
formModel
[
field
];
if
([
'
Input
'
,
'
InputPassword
'
,
'
InputSearch
'
,
'
InputTextArea
'
].
includes
(
component
))
{
if
([
'
Input
'
,
'
InputPassword
'
,
'
InputSearch
'
,
'
InputTextArea
'
].
includes
(
component
))
{
if
(
val
&&
isNumber
(
val
))
{
if
(
val
&&
isNumber
(
val
))
{
(
props
.
formModel
as
any
)[
field
]
=
`
${
val
}
`
;
props
.
setFormModel
(
field
,
`
${
val
}
`
);
// props.formModel[field] = `${val}`;
return
`
${
val
}
`
;
return
`
${
val
}
`
;
}
}
return
val
;
return
val
;
...
@@ -206,56 +208,59 @@ export default defineComponent({
...
@@ -206,56 +208,59 @@ export default defineComponent({
const
eventKey
=
`on
${
upperFirst
(
changeEvent
)}
`
;
const
eventKey
=
`on
${
upperFirst
(
changeEvent
)}
`
;
const
on
=
{
const
on
=
{
[
eventKey
]:
(
e
:
any
)
=>
{
[
eventKey
]:
(
e
:
Nullable
<
Recordable
>
)
=>
{
if
(
propsData
[
eventKey
])
{
if
(
propsData
[
eventKey
])
{
propsData
[
eventKey
](
e
);
propsData
[
eventKey
](
e
);
}
}
const
target
=
e
?
e
.
target
:
null
;
const
target
=
e
?
e
.
target
:
null
;
const
value
=
target
?
(
isCheck
?
target
.
checked
:
target
.
value
)
:
e
;
const
value
=
target
?
(
isCheck
?
target
.
checked
:
target
.
value
)
:
e
;
(
props
.
formModel
as
any
)[
field
]
=
value
;
props
.
setFormModel
(
field
,
value
);
// props.formModel[field] = value;
},
},
};
};
const
Comp
=
componentMap
.
get
(
component
);
const
Comp
=
componentMap
.
get
(
component
)
as
typeof
defineComponent
;
const
{
autoSetPlaceHolder
,
size
}
=
props
.
formProps
;
const
{
autoSetPlaceHolder
,
size
}
=
props
.
formProps
;
const
propsData
:
any
=
{
const
propsData
:
Recordable
=
{
allowClear
:
true
,
allowClear
:
true
,
getPopupContainer
:
(
trigger
:
Element
)
=>
trigger
.
parentNode
,
getPopupContainer
:
(
trigger
:
Element
)
=>
trigger
.
parentNode
,
size
,
size
,
...
unref
(
getComponentsProps
Ref
),
...
unref
(
getComponentsProps
),
disabled
:
unref
(
getDisable
Ref
),
disabled
:
unref
(
getDisable
),
};
};
const
isCreatePlaceholder
=
!
propsData
.
disabled
&&
autoSetPlaceHolder
;
const
isCreatePlaceholder
=
!
propsData
.
disabled
&&
autoSetPlaceHolder
;
let
placeholder
;
let
placeholder
;
// RangePicker place为数组
// RangePicker place为数组
if
(
isCreatePlaceholder
&&
component
!==
'
RangePicker
'
&&
component
)
{
if
(
isCreatePlaceholder
&&
component
!==
'
RangePicker
'
&&
component
)
{
placeholder
=
placeholder
=
unref
(
getComponentsProps
)?.
placeholder
||
createPlaceholderMessage
(
component
);
(
unref
(
getComponentsPropsRef
)
&&
unref
(
getComponentsPropsRef
).
placeholder
)
||
createPlaceholderMessage
(
component
);
}
}
propsData
.
placeholder
=
placeholder
;
propsData
.
placeholder
=
placeholder
;
propsData
.
codeField
=
field
;
propsData
.
codeField
=
field
;
propsData
.
formValues
=
unref
(
getValuesRef
);
propsData
.
formValues
=
unref
(
getValues
);
const
bindValue
=
{
const
bindValue
:
Recordable
=
{
[
valueField
||
(
isCheck
?
'
checked
'
:
'
value
'
)]:
handleValue
(
component
,
field
),
[
valueField
||
(
isCheck
?
'
checked
'
:
'
value
'
)]:
handleValue
(
component
,
field
),
};
};
const
compAttr
:
Recordable
=
{
...
propsData
,
...
on
,
...
bindValue
,
};
if
(
!
renderComponentContent
)
{
if
(
!
renderComponentContent
)
{
return
<
Comp
{
...
propsData
}
{
...
on
}
{
...
bindValue
}
/>;
return
<
Comp
{
...
compAttr
}
/>;
}
}
const
compSlot
=
isFunction
(
renderComponentContent
)
const
compSlot
=
isFunction
(
renderComponentContent
)
?
{
...
renderComponentContent
(
unref
(
getValues
Ref
))
}
?
{
...
renderComponentContent
(
unref
(
getValues
))
}
:
{
:
{
default
:
()
=>
renderComponentContent
,
default
:
()
=>
renderComponentContent
,
};
};
return
(
return
<
Comp
{
...
compAttr
}
>
{
compSlot
}
</
Comp
>;
<
Comp
{
...
propsData
}
{
...
on
}
{
...
bindValue
}
>
{
compSlot
}
</
Comp
>
);
}
}
function
renderLabelHelpMessage
()
{
function
renderLabelHelpMessage
()
{
...
@@ -280,20 +285,22 @@ export default defineComponent({
...
@@ -280,20 +285,22 @@ export default defineComponent({
function
renderItem
()
{
function
renderItem
()
{
const
{
itemProps
,
slot
,
render
,
field
}
=
props
.
schema
;
const
{
itemProps
,
slot
,
render
,
field
}
=
props
.
schema
;
const
{
labelCol
,
wrapperCol
}
=
unref
(
itemLabelWidth
Ref
);
const
{
labelCol
,
wrapperCol
}
=
unref
(
itemLabelWidth
Prop
);
const
{
colon
}
=
props
.
formProps
;
const
{
colon
}
=
props
.
formProps
;
const
getContent
=
()
=>
{
const
getContent
=
()
=>
{
return
slot
return
slot
?
getSlot
(
slots
,
slot
,
unref
(
getValues
Ref
))
?
getSlot
(
slots
,
slot
,
unref
(
getValues
))
:
render
:
render
?
render
(
unref
(
getValues
Ref
))
?
render
(
unref
(
getValues
))
:
renderComponent
();
:
renderComponent
();
};
};
return
(
return
(
<
Form
.
Item
<
Form
.
Item
name=
{
field
}
name=
{
field
}
colon=
{
colon
}
colon=
{
colon
}
{
...
(
itemProps
as
any
)}
{
...
(
itemProps
as
Recordable
)}
label=
{
renderLabelHelpMessage
()
}
label=
{
renderLabelHelpMessage
()
}
rules=
{
handleRules
()
}
rules=
{
handleRules
()
}
labelCol=
{
labelCol
}
labelCol=
{
labelCol
}
...
@@ -306,20 +313,23 @@ export default defineComponent({
...
@@ -306,20 +313,23 @@ export default defineComponent({
return
()
=>
{
return
()
=>
{
const
{
colProps
=
{},
colSlot
,
renderColContent
,
component
}
=
props
.
schema
;
const
{
colProps
=
{},
colSlot
,
renderColContent
,
component
}
=
props
.
schema
;
if
(
!
componentMap
.
has
(
component
))
return
null
;
if
(
!
componentMap
.
has
(
component
))
return
null
;
const
{
baseColProps
=
{}
}
=
props
.
formProps
;
const
{
baseColProps
=
{}
}
=
props
.
formProps
;
const
realColProps
=
{
...
baseColProps
,
...
colProps
};
const
realColProps
=
{
...
baseColProps
,
...
colProps
};
const
{
isIfShow
,
isShow
}
=
getShow
();
const
{
isIfShow
,
isShow
}
=
getShow
();
const
getContent
=
()
=>
{
const
getContent
=
()
=>
{
return
colSlot
return
colSlot
?
getSlot
(
slots
,
colSlot
,
unref
(
getValues
Ref
))
?
getSlot
(
slots
,
colSlot
,
unref
(
getValues
))
:
renderColContent
:
renderColContent
?
renderColContent
(
unref
(
getValues
Ref
))
?
renderColContent
(
unref
(
getValues
))
:
renderItem
();
:
renderItem
();
};
};
return
(
return
(
isIfShow
&&
(
isIfShow
&&
(
<
Col
{
...
realColProps
}
class=
{
!
isShow
?
'
hidden
'
:
''
}
>
<
Col
{
...
realColProps
}
class=
{
{
hidden
:
!
isShow
}
}
>
{
()
=>
getContent
()
}
{
()
=>
getContent
()
}
</
Col
>
</
Col
>
)
)
...
...
src/components/Form/src/components/RadioButtonGroup.vue
View file @
4ff1c408
<!--
* @Description:It is troublesome to implement radio button group in the form. So it is extracted independently as a separate component
-->
<
template
>
<
template
>
<RadioGroup
v-bind=
"
$attrs"
v-model:value=
"valueRef
"
button-style=
"solid"
>
<RadioGroup
v-bind=
"
attrs"
v-model:value=
"state
"
button-style=
"solid"
>
<template
v-for=
"item in getOptions"
:key=
"`$
{item.value}`">
<template
v-for=
"item in getOptions"
:key=
"`$
{item.value}`">
<RadioButton
:value=
"item.value"
>
{{
item
.
label
}}
</RadioButton>
<RadioButton
:value=
"item.value"
>
{{
item
.
label
}}
</RadioButton>
</
template
>
</
template
>
</RadioGroup>
</RadioGroup>
</template>
</template>
<
script
lang=
"ts"
>
<
script
lang=
"ts"
>
import
{
defineComponent
,
ref
,
PropType
,
watch
,
unref
,
computed
}
from
'
vue
'
;
import
{
defineComponent
,
PropType
,
computed
}
from
'
vue
'
;
import
{
Radio
}
from
'
ant-design-vue
'
;
import
{
Radio
}
from
'
ant-design-vue
'
;
import
{}
from
'
ant-design-vue/es/radio/Group
'
;
import
{
isString
}
from
'
/@/utils/is
'
;
import
{
isString
}
from
'
/@/utils/is
'
;
import
{
useRuleFormItem
}
from
'
/@/hooks/component/useFormItem
'
;
import
{
useAttrs
}
from
'
/@/hooks/core/useAttrs
'
;
type
OptionsItem
=
{
label
:
string
;
value
:
string
;
disabled
?:
boolean
};
type
OptionsItem
=
{
label
:
string
;
value
:
string
;
disabled
?:
boolean
};
type
RadioItem
=
string
|
OptionsItem
;
type
RadioItem
=
string
|
OptionsItem
;
export
default
defineComponent
({
export
default
defineComponent
({
name
:
'
RadioButtonGroup
'
,
name
:
'
RadioButtonGroup
'
,
components
:
{
components
:
{
...
@@ -28,34 +33,22 @@
...
@@ -28,34 +33,22 @@
default
:
()
=>
[],
default
:
()
=>
[],
},
},
},
},
setup
(
props
,
{
emit
})
{
setup
(
props
)
{
const
valueRef
=
ref
(
''
);
const
attrs
=
useAttrs
();
// Embedded in the form, just use the hook binding to perform form verification
watch
(
const
[
state
]
=
useRuleFormItem
(
props
);
()
=>
props
.
value
,
// Processing options value
(
v
=
''
)
=>
{
valueRef
.
value
=
v
;
},
{
immediate
:
true
}
);
watch
(
()
=>
unref
(
valueRef
),
()
=>
{
emit
(
'
change
'
,
valueRef
.
value
);
},
{
immediate
:
true
}
);
const
getOptions
=
computed
(():
OptionsItem
[]
=>
{
const
getOptions
=
computed
(():
OptionsItem
[]
=>
{
const
{
options
}
=
props
;
const
{
options
}
=
props
;
if
(
!
options
||
options
.
length
===
0
)
return
[];
if
(
!
options
||
options
?.
length
===
0
)
return
[];
const
isStringArr
=
options
.
some
((
item
)
=>
isString
(
item
));
const
isStringArr
=
options
.
some
((
item
)
=>
isString
(
item
));
if
(
!
isStringArr
)
return
options
as
OptionsItem
[];
if
(
!
isStringArr
)
return
options
as
OptionsItem
[];
return
options
.
map
((
item
)
=>
({
label
:
item
,
value
:
item
}))
as
OptionsItem
[];
return
options
.
map
((
item
)
=>
({
label
:
item
,
value
:
item
}))
as
OptionsItem
[];
});
});
return
{
valueRef
,
getOption
s
};
return
{
state
,
getOptions
,
attr
s
};
},
},
});
});
</
script
>
</
script
>
src/components/Form/src/helper.ts
View file @
4ff1c408
import
type
{
ValidationRule
}
from
'
ant-design-vue/lib/form/Form
'
;
import
type
{
ComponentType
}
from
'
./types/index
'
;
import
type
{
ComponentType
}
from
'
./types/index
'
;
import
{
useI18n
}
from
'
/@/hooks/web/useI18n
'
;
import
{
useI18n
}
from
'
/@/hooks/web/useI18n
'
;
...
@@ -30,6 +31,16 @@ function genType() {
...
@@ -30,6 +31,16 @@ function genType() {
return
[
'
DatePicker
'
,
'
MonthPicker
'
,
'
RangePicker
'
,
'
WeekPicker
'
,
'
TimePicker
'
];
return
[
'
DatePicker
'
,
'
MonthPicker
'
,
'
RangePicker
'
,
'
WeekPicker
'
,
'
TimePicker
'
];
}
}
export
function
setComponentRuleType
(
rule
:
ValidationRule
,
component
:
ComponentType
)
{
if
([
'
DatePicker
'
,
'
MonthPicker
'
,
'
WeekPicker
'
,
'
TimePicker
'
].
includes
(
component
))
{
rule
.
type
=
'
object
'
;
}
else
if
([
'
RangePicker
'
,
'
Upload
'
,
'
CheckboxGroup
'
,
'
TimePicker
'
].
includes
(
component
))
{
rule
.
type
=
'
array
'
;
}
else
if
([
'
InputNumber
'
].
includes
(
component
))
{
rule
.
type
=
'
number
'
;
}
}
/**
/**
* 时间字段
* 时间字段
*/
*/
...
...
src/components/Form/src/hooks/useAdvanced.ts
View file @
4ff1c408
...
@@ -13,28 +13,28 @@ const BASIC_COL_LEN = 24;
...
@@ -13,28 +13,28 @@ const BASIC_COL_LEN = 24;
interface
UseAdvancedContext
{
interface
UseAdvancedContext
{
advanceState
:
AdvanceState
;
advanceState
:
AdvanceState
;
emit
:
EmitType
;
emit
:
EmitType
;
getMergePropsRef
:
ComputedRef
<
FormProps
>
;
getProps
:
ComputedRef
<
FormProps
>
;
getProps
:
ComputedRef
<
FormProps
>
;
getSchema
:
ComputedRef
<
FormSchema
[]
>
;
getSchema
:
ComputedRef
<
FormSchema
[]
>
;
formModel
:
any
;
formModel
:
Recordable
;
defaultValueRef
:
Ref
<
any
>
;
defaultValueRef
:
Ref
<
Recordable
>
;
}
}
export
default
function
({
export
default
function
({
advanceState
,
advanceState
,
emit
,
emit
,
getMergePropsRef
,
getProps
,
getProps
,
getSchema
,
getSchema
,
formModel
,
formModel
,
defaultValueRef
,
defaultValueRef
,
}:
UseAdvancedContext
)
{
}:
UseAdvancedContext
)
{
const
{
realWidthRef
,
screenEnum
,
screenRef
}
=
useBreakpoint
();
const
{
realWidthRef
,
screenEnum
,
screenRef
}
=
useBreakpoint
();
const
getEmptySpanRef
=
computed
(():
number
=>
{
const
getEmptySpan
=
computed
(():
number
=>
{
if
(
!
advanceState
.
isAdvanced
)
{
if
(
!
advanceState
.
isAdvanced
)
{
return
0
;
return
0
;
}
}
const
emptySpan
=
unref
(
getMergePropsRef
).
emptySpan
||
0
;
// For some special cases, you need to manually specify additional blank lines
const
emptySpan
=
unref
(
getProps
).
emptySpan
||
0
;
if
(
isNumber
(
emptySpan
))
{
if
(
isNumber
(
emptySpan
))
{
return
emptySpan
;
return
emptySpan
;
...
@@ -49,27 +49,6 @@ export default function ({
...
@@ -49,27 +49,6 @@ export default function ({
return
0
;
return
0
;
});
});
const
getActionPropsRef
=
computed
(()
=>
{
const
{
resetButtonOptions
,
submitButtonOptions
,
showActionButtonGroup
,
showResetButton
,
showSubmitButton
,
showAdvancedButton
,
actionColOptions
,
}
=
unref
(
getProps
);
return
{
resetButtonOptions
,
submitButtonOptions
,
show
:
showActionButtonGroup
,
showResetButton
,
showSubmitButton
,
showAdvancedButton
,
actionColOptions
,
};
});
watch
(
watch
(
[()
=>
unref
(
getSchema
),
()
=>
advanceState
.
isAdvanced
,
()
=>
unref
(
realWidthRef
)],
[()
=>
unref
(
getSchema
),
()
=>
advanceState
.
isAdvanced
,
()
=>
unref
(
realWidthRef
)],
()
=>
{
()
=>
{
...
@@ -90,6 +69,7 @@ export default function ({
...
@@ -90,6 +69,7 @@ export default function ({
parseInt
(
itemCol
.
sm
as
string
)
||
parseInt
(
itemCol
.
sm
as
string
)
||
(
itemCol
.
span
as
number
)
||
(
itemCol
.
span
as
number
)
||
BASIC_COL_LEN
;
BASIC_COL_LEN
;
const
lgWidth
=
parseInt
(
itemCol
.
lg
as
string
)
||
mdWidth
;
const
lgWidth
=
parseInt
(
itemCol
.
lg
as
string
)
||
mdWidth
;
const
xlWidth
=
parseInt
(
itemCol
.
xl
as
string
)
||
lgWidth
;
const
xlWidth
=
parseInt
(
itemCol
.
xl
as
string
)
||
lgWidth
;
const
xxlWidth
=
parseInt
(
itemCol
.
xxl
as
string
)
||
xlWidth
;
const
xxlWidth
=
parseInt
(
itemCol
.
xxl
as
string
)
||
xlWidth
;
...
@@ -102,15 +82,16 @@ export default function ({
...
@@ -102,15 +82,16 @@ export default function ({
}
else
{
}
else
{
itemColSum
+=
xxlWidth
;
itemColSum
+=
xxlWidth
;
}
}
if
(
isLastAction
)
{
if
(
isLastAction
)
{
advanceState
.
hideAdvanceBtn
=
false
;
advanceState
.
hideAdvanceBtn
=
false
;
if
(
itemColSum
<=
BASIC_COL_LEN
*
2
)
{
if
(
itemColSum
<=
BASIC_COL_LEN
*
2
)
{
//
小于等于2行时,不显示收起展开按钮
//
When less than or equal to 2 lines, the collapse and expand buttons are not displayed
advanceState
.
hideAdvanceBtn
=
true
;
advanceState
.
hideAdvanceBtn
=
true
;
advanceState
.
isAdvanced
=
true
;
advanceState
.
isAdvanced
=
true
;
}
else
if
(
}
else
if
(
itemColSum
>
BASIC_COL_LEN
*
2
&&
itemColSum
>
BASIC_COL_LEN
*
2
&&
itemColSum
<=
BASIC_COL_LEN
*
(
unref
(
get
MergePropsRef
).
autoAdvancedLine
||
3
)
itemColSum
<=
BASIC_COL_LEN
*
(
unref
(
get
Props
).
autoAdvancedLine
||
3
)
)
{
)
{
advanceState
.
hideAdvanceBtn
=
false
;
advanceState
.
hideAdvanceBtn
=
false
;
...
@@ -168,13 +149,9 @@ export default function ({
...
@@ -168,13 +149,9 @@ export default function ({
}
}
}
}
advanceState
.
actionSpan
=
(
realItemColSum
%
BASIC_COL_LEN
)
+
unref
(
getEmptySpan
Ref
);
advanceState
.
actionSpan
=
(
realItemColSum
%
BASIC_COL_LEN
)
+
unref
(
getEmptySpan
);
getAdvanced
(
getAdvanced
(
unref
(
getProps
).
actionColOptions
||
{
span
:
BASIC_COL_LEN
},
itemColSum
,
true
);
unref
(
getActionPropsRef
).
actionColOptions
||
{
span
:
BASIC_COL_LEN
},
itemColSum
,
true
);
emit
(
'
advanced-change
'
);
emit
(
'
advanced-change
'
);
}
}
...
@@ -182,5 +159,6 @@ export default function ({
...
@@ -182,5 +159,6 @@ export default function ({
function
handleToggleAdvanced
()
{
function
handleToggleAdvanced
()
{
advanceState
.
isAdvanced
=
!
advanceState
.
isAdvanced
;
advanceState
.
isAdvanced
=
!
advanceState
.
isAdvanced
;
}
}
return
{
getActionPropsRef
,
handleToggleAdvanced
};
return
{
handleToggleAdvanced
};
}
}
src/components/Form/src/hooks/useComponentRegister.ts
View file @
4ff1c408
import
type
{
ComponentType
}
from
'
../types/index
'
;
import
type
{
ComponentType
}
from
'
../types/index
'
;
import
{
tryOnUnmounted
}
from
'
/@/utils/helper/vueHelper
'
;
import
{
tryOnUnmounted
}
from
'
/@/utils/helper/vueHelper
'
;
import
{
add
,
del
}
from
'
../componentMap
'
;
import
{
add
,
del
}
from
'
../componentMap
'
;
export
function
useComponentRegister
(
compName
:
ComponentType
,
comp
:
any
)
{
import
type
{
Component
}
from
'
vue
'
;
export
function
useComponentRegister
(
compName
:
ComponentType
,
comp
:
Component
)
{
add
(
compName
,
comp
);
add
(
compName
,
comp
);
tryOnUnmounted
(()
=>
{
tryOnUnmounted
(()
=>
{
del
(
compName
);
del
(
compName
);
...
...
src/components/Form/src/hooks/useForm.ts
View file @
4ff1c408
import
{
ref
,
onUnmounted
,
unref
}
from
'
vue
'
;
import
{
ref
,
onUnmounted
,
unref
,
nextTick
}
from
'
vue
'
;
import
{
isInSetup
}
from
'
/@/utils/helper/vueHelper
'
;
import
{
isInSetup
}
from
'
/@/utils/helper/vueHelper
'
;
import
{
isProdMode
}
from
'
/@/utils/env
'
;
import
{
isProdMode
}
from
'
/@/utils/env
'
;
import
{
error
}
from
'
/@/utils/log
'
;
import
type
{
FormProps
,
FormActionType
,
UseFormReturnType
,
FormSchema
}
from
'
../types/form
'
;
import
type
{
FormProps
,
FormActionType
,
UseFormReturnType
,
FormSchema
}
from
'
../types/form
'
;
import
type
{
NamePath
}
from
'
ant-design-vue/lib/form/interface
'
;
import
type
{
NamePath
}
from
'
ant-design-vue/lib/form/interface
'
;
export
declare
type
ValidateFields
=
(
nameList
?:
NamePath
[])
=>
Promise
<
any
>
;
export
declare
type
ValidateFields
=
(
nameList
?:
NamePath
[])
=>
Promise
<
Recordable
>
;
export
function
useForm
(
props
?:
Partial
<
FormProps
>
):
UseFormReturnType
{
export
function
useForm
(
props
?:
Partial
<
FormProps
>
):
UseFormReturnType
{
isInSetup
();
isInSetup
();
const
formRef
=
ref
<
FormActionType
|
null
>
(
null
);
const
loadedRef
=
ref
<
boolean
|
null
>
(
false
);
function
getForm
()
{
const
formRef
=
ref
<
Nullable
<
FormActionType
>>
(
null
);
const
loadedRef
=
ref
<
Nullable
<
boolean
>>
(
false
);
async
function
getForm
()
{
const
form
=
unref
(
formRef
);
const
form
=
unref
(
formRef
);
if
(
!
form
)
{
if
(
!
form
)
{
throw
new
Error
(
'
formRef is Null
'
);
error
(
'
The form instance has not been obtained, please make sure that the form has been rendered when performing the form operation!
'
);
}
}
await
nextTick
();
return
form
as
FormActionType
;
return
form
as
FormActionType
;
}
}
function
register
(
instance
:
FormActionType
)
{
function
register
(
instance
:
FormActionType
)
{
...
@@ -27,45 +32,73 @@ export function useForm(props?: Partial<FormProps>): UseFormReturnType {
...
@@ -27,45 +32,73 @@ export function useForm(props?: Partial<FormProps>): UseFormReturnType {
loadedRef
.
value
=
null
;
loadedRef
.
value
=
null
;
});
});
if
(
unref
(
loadedRef
)
&&
isProdMode
()
&&
instance
===
unref
(
formRef
))
return
;
if
(
unref
(
loadedRef
)
&&
isProdMode
()
&&
instance
===
unref
(
formRef
))
return
;
formRef
.
value
=
instance
;
formRef
.
value
=
instance
;
props
&&
instance
.
setProps
(
props
);
props
&&
instance
.
setProps
(
props
);
loadedRef
.
value
=
true
;
loadedRef
.
value
=
true
;
}
}
const
methods
:
FormActionType
=
{
const
methods
:
FormActionType
=
{
setProps
:
(
formProps
:
Partial
<
FormProps
>
)
=>
{
scrollToField
:
async
(
name
:
NamePath
,
options
?:
ScrollOptions
|
undefined
)
=>
{
getForm
().
setProps
(
formProps
);
const
form
=
await
getForm
();
form
.
scrollToField
(
name
,
options
);
},
},
updateSchema
:
(
data
:
Partial
<
FormSchema
>
|
Partial
<
FormSchema
>
[])
=>
{
setProps
:
async
(
formProps
:
Partial
<
FormProps
>
)
=>
{
getForm
().
updateSchema
(
data
);
const
form
=
await
getForm
();
form
.
setProps
(
formProps
);
},
},
clearValidate
:
(
name
?:
string
|
string
[])
=>
{
getForm
().
clearValidate
(
name
);
updateSchema
:
async
(
data
:
Partial
<
FormSchema
>
|
Partial
<
FormSchema
>
[])
=>
{
const
form
=
await
getForm
();
form
.
updateSchema
(
data
);
},
clearValidate
:
async
(
name
?:
string
|
string
[])
=>
{
const
form
=
await
getForm
();
form
.
clearValidate
(
name
);
},
},
resetFields
:
async
()
=>
{
resetFields
:
async
()
=>
{
await
getForm
().
resetFields
();
getForm
().
then
(
async
(
form
)
=>
{
await
form
.
resetFields
();
});
},
},
removeSchemaByFiled
:
(
field
:
string
|
string
[])
=>
{
getForm
().
removeSchemaByFiled
(
field
);
removeSchemaByFiled
:
async
(
field
:
string
|
string
[])
=>
{
const
form
=
await
getForm
();
form
.
removeSchemaByFiled
(
field
);
},
},
getFieldsValue
:
()
=>
{
return
getForm
().
getFieldsValue
();
// TODO promisify
getFieldsValue
:
<
T
>
()
=>
{
return
unref
(
formRef
)?.
getFieldsValue
()
as
T
;
},
},
setFieldsValue
:
<
T
>
(
values
:
T
)
=>
{
getForm
().
setFieldsValue
<
T
>
(
values
);
setFieldsValue
:
async
<
T
>
(
values
:
T
)
=>
{
const
form
=
await
getForm
();
form
.
setFieldsValue
<
T
>
(
values
);
},
},
appendSchemaByField
:
(
schema
:
FormSchema
,
prefixField
?:
string
|
undefined
)
=>
{
getForm
().
appendSchemaByField
(
schema
,
prefixField
);
appendSchemaByField
:
async
(
schema
:
FormSchema
,
prefixField
?:
string
|
undefined
)
=>
{
const
form
=
await
getForm
();
form
.
appendSchemaByField
(
schema
,
prefixField
);
},
},
submit
:
async
():
Promise
<
any
>
=>
{
submit
:
async
():
Promise
<
any
>
=>
{
return
getForm
().
submit
();
const
form
=
await
getForm
();
return
form
.
submit
();
},
validate
:
async
(
nameList
?:
NamePath
[]):
Promise
<
Recordable
>
=>
{
const
form
=
await
getForm
();
return
form
.
validate
(
nameList
);
},
validateFields
:
async
(
nameList
?:
NamePath
[]):
Promise
<
Recordable
>
=>
{
const
form
=
await
getForm
();
return
form
.
validateFields
(
nameList
);
},
},
validate
:
((
async
(
nameList
?:
NamePath
[]):
Promise
<
any
>
=>
{
};
return
getForm
().
validate
(
nameList
);
})
as
any
)
as
ValidateFields
,
validateFields
:
((
async
(
nameList
?:
NamePath
[]):
Promise
<
any
>
=>
{
return
getForm
().
validate
(
nameList
);
})
as
any
)
as
ValidateFields
,
}
as
FormActionType
;
return
[
register
,
methods
];
return
[
register
,
methods
];
}
}
src/components/Form/src/hooks/useFormContext.ts
0 → 100644
View file @
4ff1c408
import
{
InjectionKey
}
from
'
vue
'
;
import
{
createContext
,
useContext
}
from
'
/@/hooks/core/useContext
'
;
export
interface
FormContextProps
{
resetAction
:
()
=>
Promise
<
void
>
;
submitAction
:
()
=>
Promise
<
void
>
;
}
const
key
:
InjectionKey
<
FormContextProps
>
=
Symbol
();
export
function
createFormContext
(
context
:
FormContextProps
)
{
return
createContext
<
FormContextProps
>
(
context
,
key
);
}
export
function
useFormContext
()
{
return
useContext
<
FormContextProps
>
(
key
);
}
src/components/Form/src/hooks/useForm
Action
.ts
→
src/components/Form/src/hooks/useForm
Events
.ts
View file @
4ff1c408
...
@@ -9,22 +9,19 @@ import { deepMerge, unique } from '/@/utils';
...
@@ -9,22 +9,19 @@ import { deepMerge, unique } from '/@/utils';
import
{
dateItemType
}
from
'
../helper
'
;
import
{
dateItemType
}
from
'
../helper
'
;
import
moment
from
'
moment
'
;
import
moment
from
'
moment
'
;
import
{
cloneDeep
}
from
'
lodash-es
'
;
import
{
cloneDeep
}
from
'
lodash-es
'
;
import
{
error
}
from
'
/@/utils/log
'
;
interface
UseFormActionContext
{
interface
UseFormActionContext
{
emit
:
EmitType
;
emit
:
EmitType
;
getProps
:
ComputedRef
<
FormProps
>
;
getProps
:
ComputedRef
<
FormProps
>
;
getSchema
:
ComputedRef
<
FormSchema
[]
>
;
getSchema
:
ComputedRef
<
FormSchema
[]
>
;
formModel
:
any
;
formModel
:
Recordable
;
defaultValueRef
:
Ref
<
any
>
;
defaultValueRef
:
Ref
<
Recordable
>
;
formElRef
:
Ref
<
FormActionType
>
;
formElRef
:
Ref
<
FormActionType
>
;
schemaRef
:
Ref
<
FormSchema
[]
>
;
schemaRef
:
Ref
<
FormSchema
[]
>
;
handleFormValues
:
Fn
;
handleFormValues
:
Fn
;
actionState
:
{
resetAction
:
any
;
submitAction
:
any
;
};
}
}
export
function
useForm
Action
({
export
function
useForm
Events
({
emit
,
emit
,
getProps
,
getProps
,
formModel
,
formModel
,
...
@@ -33,34 +30,34 @@ export function useFormAction({
...
@@ -33,34 +30,34 @@ export function useFormAction({
formElRef
,
formElRef
,
schemaRef
,
schemaRef
,
handleFormValues
,
handleFormValues
,
actionState
,
}:
UseFormActionContext
)
{
}:
UseFormActionContext
)
{
async
function
resetFields
():
Promise
<
any
>
{
async
function
resetFields
():
Promise
<
void
>
{
const
{
resetFunc
,
submitOnReset
}
=
unref
(
getProps
);
const
{
resetFunc
,
submitOnReset
}
=
unref
(
getProps
);
resetFunc
&&
isFunction
(
resetFunc
)
&&
(
await
resetFunc
());
resetFunc
&&
isFunction
(
resetFunc
)
&&
(
await
resetFunc
());
const
formEl
=
unref
(
formElRef
);
const
formEl
=
unref
(
formElRef
);
if
(
!
formEl
)
return
;
if
(
!
formEl
)
return
;
Object
.
keys
(
formModel
).
forEach
((
key
)
=>
{
Object
.
keys
(
formModel
).
forEach
((
key
)
=>
{
(
formModel
as
any
)
[
key
]
=
defaultValueRef
.
value
[
key
];
formModel
[
key
]
=
defaultValueRef
.
value
[
key
];
});
});
clearValidate
();
clearValidate
();
emit
(
'
reset
'
,
toRaw
(
formModel
));
emit
(
'
reset
'
,
toRaw
(
formModel
));
// return values;
submitOnReset
&&
handleSubmit
();
submitOnReset
&&
handleSubmit
();
}
}
/**
/**
* @description:
设置表单值
* @description:
Set form value
*/
*/
async
function
setFieldsValue
(
values
:
any
):
Promise
<
void
>
{
async
function
setFieldsValue
(
values
:
any
):
Promise
<
void
>
{
const
fields
=
unref
(
getSchema
)
const
fields
=
unref
(
getSchema
)
.
map
((
item
)
=>
item
.
field
)
.
map
((
item
)
=>
item
.
field
)
.
filter
(
Boolean
);
.
filter
(
Boolean
);
// const formEl = unref(formElRef);
const
validKeys
:
string
[]
=
[];
const
validKeys
:
string
[]
=
[];
Object
.
keys
(
values
).
forEach
((
key
)
=>
{
Object
.
keys
(
values
).
forEach
((
key
)
=>
{
const
element
=
values
[
key
];
const
element
=
values
[
key
];
// 0| '' is allow
if
(
element
!==
undefined
&&
element
!==
null
&&
fields
.
includes
(
key
))
{
if
(
element
!==
undefined
&&
element
!==
null
&&
fields
.
includes
(
key
))
{
// time type
// time type
if
(
itemIsDateType
(
key
))
{
if
(
itemIsDateType
(
key
))
{
...
@@ -69,12 +66,12 @@ export function useFormAction({
...
@@ -69,12 +66,12 @@ export function useFormAction({
for
(
const
ele
of
element
)
{
for
(
const
ele
of
element
)
{
arr
.
push
(
moment
(
ele
));
arr
.
push
(
moment
(
ele
));
}
}
(
formModel
as
any
)
[
key
]
=
arr
;
formModel
[
key
]
=
arr
;
}
else
{
}
else
{
(
formModel
as
any
)
[
key
]
=
moment
(
element
);
formModel
[
key
]
=
moment
(
element
);
}
}
}
else
{
}
else
{
(
formModel
as
any
)
[
key
]
=
element
;
formModel
[
key
]
=
element
;
}
}
validKeys
.
push
(
key
);
validKeys
.
push
(
key
);
}
}
...
@@ -84,19 +81,18 @@ export function useFormAction({
...
@@ -84,19 +81,18 @@ export function useFormAction({
/**
/**
* @description: Delete based on field name
* @description: Delete based on field name
*/
*/
function
removeSchemaByFiled
(
fields
:
string
|
string
[]):
void
{
async
function
removeSchemaByFiled
(
fields
:
string
|
string
[]):
Promise
<
void
>
{
const
schemaList
:
FormSchema
[]
=
cloneDeep
(
unref
(
getSchema
));
const
schemaList
:
FormSchema
[]
=
cloneDeep
(
unref
(
getSchema
));
if
(
!
fields
)
{
if
(
!
fields
)
return
;
return
;
}
let
fieldList
:
string
[]
=
isString
(
fields
)
?
[
fields
]
:
fields
;
let
fieldList
:
string
[]
=
fields
as
string
[];
if
(
isString
(
fields
))
{
if
(
isString
(
fields
))
{
fieldList
=
[
fields
];
fieldList
=
[
fields
];
}
}
for
(
const
field
of
fieldList
)
{
for
(
const
field
of
fieldList
)
{
_removeSchemaByFiled
(
field
,
schemaList
);
_removeSchemaByFiled
(
field
,
schemaList
);
}
}
schemaRef
.
value
=
schemaList
as
any
;
schemaRef
.
value
=
schemaList
;
}
}
/**
/**
...
@@ -114,27 +110,26 @@ export function useFormAction({
...
@@ -114,27 +110,26 @@ export function useFormAction({
/**
/**
* @description: Insert after a certain field, if not insert the last
* @description: Insert after a certain field, if not insert the last
*/
*/
function
appendSchemaByField
(
schema
:
FormSchema
,
prefixField
?:
string
)
{
async
function
appendSchemaByField
(
schema
:
FormSchema
,
prefixField
?:
string
,
first
=
false
)
{
const
schemaList
:
FormSchema
[]
=
cloneDeep
(
unref
(
getSchema
));
const
schemaList
:
FormSchema
[]
=
cloneDeep
(
unref
(
getSchema
));
const
index
=
schemaList
.
findIndex
((
schema
)
=>
schema
.
field
===
prefixField
);
const
index
=
schemaList
.
findIndex
((
schema
)
=>
schema
.
field
===
prefixField
);
const
hasInList
=
schemaList
.
find
((
item
)
=>
item
.
field
===
schema
.
field
);
const
hasInList
=
schemaList
.
some
((
item
)
=>
item
.
field
===
schema
.
field
);
if
(
hasInList
)
{
if
(
!
hasInList
)
return
;
return
;
}
if
(
!
prefixField
||
index
===
-
1
||
first
)
{
if
(
!
prefixField
||
index
===
-
1
)
{
first
?
schemaList
.
unshift
(
schema
)
:
schemaList
.
push
(
schema
);
schemaList
.
push
(
schema
);
schemaRef
.
value
=
schemaList
;
schemaRef
.
value
=
schemaList
as
any
;
return
;
return
;
}
}
if
(
index
!==
-
1
)
{
if
(
index
!==
-
1
)
{
schemaList
.
splice
(
index
+
1
,
0
,
schema
);
schemaList
.
splice
(
index
+
1
,
0
,
schema
);
}
}
schemaRef
.
value
=
schemaList
as
any
;
schemaRef
.
value
=
schemaList
;
}
}
function
updateSchema
(
data
:
Partial
<
FormSchema
>
|
Partial
<
FormSchema
>
[])
{
async
function
updateSchema
(
data
:
Partial
<
FormSchema
>
|
Partial
<
FormSchema
>
[])
{
let
updateData
:
Partial
<
FormSchema
>
[]
=
[];
let
updateData
:
Partial
<
FormSchema
>
[]
=
[];
if
(
isObject
(
data
))
{
if
(
isObject
(
data
))
{
updateData
.
push
(
data
as
FormSchema
);
updateData
.
push
(
data
as
FormSchema
);
...
@@ -142,9 +137,13 @@ export function useFormAction({
...
@@ -142,9 +137,13 @@ export function useFormAction({
if
(
isArray
(
data
))
{
if
(
isArray
(
data
))
{
updateData
=
[...
data
];
updateData
=
[...
data
];
}
}
const
hasField
=
updateData
.
every
((
item
)
=>
Reflect
.
has
(
item
,
'
field
'
)
&&
item
.
field
);
const
hasField
=
updateData
.
every
((
item
)
=>
Reflect
.
has
(
item
,
'
field
'
)
&&
item
.
field
);
if
(
!
hasField
)
{
if
(
!
hasField
)
{
throw
new
Error
(
'
Must pass in the `field` field!
'
);
error
(
'
All children of the form Schema array that need to be updated must contain the `field` field
'
);
}
}
const
schema
:
FormSchema
[]
=
[];
const
schema
:
FormSchema
[]
=
[];
updateData
.
forEach
((
item
)
=>
{
updateData
.
forEach
((
item
)
=>
{
...
@@ -157,12 +156,12 @@ export function useFormAction({
...
@@ -157,12 +156,12 @@ export function useFormAction({
}
}
});
});
});
});
schemaRef
.
value
=
unique
(
schema
,
'
field
'
)
as
any
;
schemaRef
.
value
=
unique
(
schema
,
'
field
'
);
}
}
function
getFieldsValue
():
any
{
function
getFieldsValue
():
Recordable
{
const
formEl
=
unref
(
formElRef
);
const
formEl
=
unref
(
formElRef
);
if
(
!
formEl
)
return
;
if
(
!
formEl
)
return
{}
;
return
handleFormValues
(
toRaw
(
unref
(
formModel
)));
return
handleFormValues
(
toRaw
(
unref
(
formModel
)));
}
}
...
@@ -171,23 +170,24 @@ export function useFormAction({
...
@@ -171,23 +170,24 @@ export function useFormAction({
*/
*/
function
itemIsDateType
(
key
:
string
)
{
function
itemIsDateType
(
key
:
string
)
{
return
unref
(
getSchema
).
some
((
item
)
=>
{
return
unref
(
getSchema
).
some
((
item
)
=>
{
return
item
.
field
===
key
?
dateItemType
.
includes
(
item
.
component
!
)
:
false
;
return
item
.
field
===
key
?
dateItemType
.
includes
(
item
.
component
)
:
false
;
});
});
}
}
function
validateFields
(
nameList
?:
NamePath
[]
|
undefined
)
{
async
function
validateFields
(
nameList
?:
NamePath
[]
|
undefined
)
{
if
(
!
formElRef
.
value
)
return
;
return
await
unref
(
formElRef
)?.
validateFields
(
nameList
);
return
formElRef
.
value
.
validateFields
(
nameList
);
}
async
function
validate
(
nameList
?:
NamePath
[]
|
undefined
)
{
return
await
unref
(
formElRef
)?.
validate
(
nameList
);
}
}
function
validate
(
nameList
?:
NamePath
[]
|
undefined
)
{
async
function
clearValidate
(
name
?:
string
|
string
[])
{
if
(
!
formElRef
.
value
)
return
;
await
unref
(
formElRef
)?.
clearValidate
(
name
);
return
formElRef
.
value
.
validate
(
nameList
);
}
}
function
clearValidate
(
name
?:
string
|
string
[])
{
async
function
scrollToField
(
name
:
NamePath
,
options
?:
ScrollOptions
|
undefined
)
{
if
(
!
formElRef
.
value
)
return
;
await
unref
(
formElRef
)?.
scrollToField
(
name
,
options
);
formElRef
.
value
.
clearValidate
(
name
);
}
}
/**
/**
...
@@ -208,13 +208,6 @@ export function useFormAction({
...
@@ -208,13 +208,6 @@ export function useFormAction({
emit
(
'
submit
'
,
res
);
emit
(
'
submit
'
,
res
);
}
catch
(
error
)
{}
}
catch
(
error
)
{}
}
}
actionState
.
resetAction
=
{
onClick
:
resetFields
,
};
actionState
.
submitAction
=
{
onClick
:
handleSubmit
,
};
return
{
return
{
handleSubmit
,
handleSubmit
,
...
@@ -227,5 +220,6 @@ export function useFormAction({
...
@@ -227,5 +220,6 @@ export function useFormAction({
removeSchemaByFiled
,
removeSchemaByFiled
,
resetFields
,
resetFields
,
setFieldsValue
,
setFieldsValue
,
scrollToField
,
};
};
}
}
src/components/Form/src/hooks/useFormValues.ts
View file @
4ff1c408
...
@@ -9,7 +9,7 @@ interface UseFormValuesContext {
...
@@ -9,7 +9,7 @@ interface UseFormValuesContext {
fieldMapToTimeRef
:
Ref
<
FieldMapToTime
>
;
fieldMapToTimeRef
:
Ref
<
FieldMapToTime
>
;
defaultValueRef
:
Ref
<
any
>
;
defaultValueRef
:
Ref
<
any
>
;
getSchema
:
ComputedRef
<
FormSchema
[]
>
;
getSchema
:
ComputedRef
<
FormSchema
[]
>
;
formModel
:
any
;
formModel
:
Recordable
;
}
}
export
function
useFormValues
({
export
function
useFormValues
({
transformDateFuncRef
,
transformDateFuncRef
,
...
@@ -19,11 +19,11 @@ export function useFormValues({
...
@@ -19,11 +19,11 @@ export function useFormValues({
formModel
,
formModel
,
}:
UseFormValuesContext
)
{
}:
UseFormValuesContext
)
{
// Processing form values
// Processing form values
function
handleFormValues
(
values
:
Record
<
string
,
any
>
)
{
function
handleFormValues
(
values
:
Record
able
)
{
if
(
!
isObject
(
values
))
{
if
(
!
isObject
(
values
))
{
return
{};
return
{};
}
}
const
res
Map
:
Record
<
string
,
any
>
=
{};
const
res
:
Recordable
=
{};
for
(
const
item
of
Object
.
entries
(
values
))
{
for
(
const
item
of
Object
.
entries
(
values
))
{
let
[,
value
]
=
item
;
let
[,
value
]
=
item
;
const
[
key
]
=
item
;
const
[
key
]
=
item
;
...
@@ -41,15 +41,15 @@ export function useFormValues({
...
@@ -41,15 +41,15 @@ export function useFormValues({
if
(
isString
(
value
))
{
if
(
isString
(
value
))
{
value
=
value
.
trim
();
value
=
value
.
trim
();
}
}
res
Map
[
key
]
=
value
;
res
[
key
]
=
value
;
}
}
return
handleRangeTimeValue
(
res
Map
);
return
handleRangeTimeValue
(
res
);
}
}
/**
/**
* @description: Processing time interval parameters
* @description: Processing time interval parameters
*/
*/
function
handleRangeTimeValue
(
values
:
Record
<
string
,
any
>
)
{
function
handleRangeTimeValue
(
values
:
Record
able
)
{
const
fieldMapToTime
=
unref
(
fieldMapToTimeRef
);
const
fieldMapToTime
=
unref
(
fieldMapToTimeRef
);
if
(
!
fieldMapToTime
||
!
Array
.
isArray
(
fieldMapToTime
))
{
if
(
!
fieldMapToTime
||
!
Array
.
isArray
(
fieldMapToTime
))
{
...
@@ -65,6 +65,7 @@ export function useFormValues({
...
@@ -65,6 +65,7 @@ export function useFormValues({
values
[
startTimeKey
]
=
moment
(
startTime
).
format
(
format
);
values
[
startTimeKey
]
=
moment
(
startTime
).
format
(
format
);
values
[
endTimeKey
]
=
moment
(
endTime
).
format
(
format
);
values
[
endTimeKey
]
=
moment
(
endTime
).
format
(
format
);
Reflect
.
deleteProperty
(
values
,
field
);
}
}
return
values
;
return
values
;
...
@@ -72,11 +73,11 @@ export function useFormValues({
...
@@ -72,11 +73,11 @@ export function useFormValues({
function
initDefault
()
{
function
initDefault
()
{
const
schemas
=
unref
(
getSchema
);
const
schemas
=
unref
(
getSchema
);
const
obj
:
Record
<
string
,
any
>
=
{};
const
obj
:
Record
able
=
{};
schemas
.
forEach
((
item
)
=>
{
schemas
.
forEach
((
item
)
=>
{
if
(
item
.
defaultValue
)
{
if
(
item
.
defaultValue
)
{
obj
[
item
.
field
]
=
item
.
defaultValue
;
obj
[
item
.
field
]
=
item
.
defaultValue
;
(
formModel
as
any
)
[
item
.
field
]
=
item
.
defaultValue
;
formModel
[
item
.
field
]
=
item
.
defaultValue
;
}
}
});
});
defaultValueRef
.
value
=
obj
;
defaultValueRef
.
value
=
obj
;
...
...
src/components/Form/src/hooks/useLabelWidth.ts
View file @
4ff1c408
...
@@ -4,23 +4,8 @@ import type { FormProps, FormSchema } from '../types/form';
...
@@ -4,23 +4,8 @@ import type { FormProps, FormSchema } from '../types/form';
import
{
computed
,
unref
}
from
'
vue
'
;
import
{
computed
,
unref
}
from
'
vue
'
;
import
{
isNumber
}
from
'
/@/utils/is
'
;
import
{
isNumber
}
from
'
/@/utils/is
'
;
// export function useGlobalLabelWidth(propsRef: ComputedRef<FormProps>) {
// return computed(() => {
// const { labelWidth, labelCol, wrapperCol } = unref(propsRef);
// if (!labelWidth) {
// return { labelCol, wrapperCol };
// }
// const width = isNumber(labelWidth) ? `${labelWidth}px` : labelWidth;
// return {
// labelCol: { style: { width }, span: 1, ...labelCol },
// wrapperCol: { style: { width: `calc(100% - ${width})` }, span: 23, ...wrapperCol },
// };
// });
// }
export
function
useItemLabelWidth
(
schemaItemRef
:
Ref
<
FormSchema
>
,
propsRef
:
Ref
<
FormProps
>
)
{
export
function
useItemLabelWidth
(
schemaItemRef
:
Ref
<
FormSchema
>
,
propsRef
:
Ref
<
FormProps
>
)
{
return
computed
(()
:
any
=>
{
return
computed
(()
=>
{
const
schemaItem
=
unref
(
schemaItemRef
);
const
schemaItem
=
unref
(
schemaItemRef
);
const
{
labelCol
=
{},
wrapperCol
=
{}
}
=
schemaItem
.
itemProps
||
{};
const
{
labelCol
=
{},
wrapperCol
=
{}
}
=
schemaItem
.
itemProps
||
{};
const
{
labelWidth
,
disabledLabelWidth
}
=
schemaItem
;
const
{
labelWidth
,
disabledLabelWidth
}
=
schemaItem
;
...
@@ -29,7 +14,7 @@ export function useItemLabelWidth(schemaItemRef: Ref<FormSchema>, propsRef: Ref<
...
@@ -29,7 +14,7 @@ export function useItemLabelWidth(schemaItemRef: Ref<FormSchema>, propsRef: Ref<
labelWidth
:
globalLabelWidth
,
labelWidth
:
globalLabelWidth
,
labelCol
:
globalLabelCol
,
labelCol
:
globalLabelCol
,
wrapperCol
:
globWrapperCol
,
wrapperCol
:
globWrapperCol
,
}
=
unref
(
propsRef
)
as
any
;
}
=
unref
(
propsRef
);
// If labelWidth is set globally, all items setting
// If labelWidth is set globally, all items setting
if
((
!
globalLabelWidth
&&
!
labelWidth
&&
!
globalLabelCol
)
||
disabledLabelWidth
)
{
if
((
!
globalLabelWidth
&&
!
labelWidth
&&
!
globalLabelCol
)
||
disabledLabelWidth
)
{
...
...
src/components/Form/src/props.ts
View file @
4ff1c408
import
type
{
FieldMapToTime
,
FormSchema
}
from
'
./types/form
'
;
import
type
{
FieldMapToTime
,
FormSchema
}
from
'
./types/form
'
;
import
type
{
PropType
}
from
'
vue
'
;
import
type
{
CSSProperties
,
PropType
}
from
'
vue
'
;
import
type
{
ColEx
}
from
'
./types
'
;
import
type
{
ColEx
}
from
'
./types
'
;
import
{
TableActionType
}
from
'
/@/components/Table
'
;
import
type
{
TableActionType
}
from
'
/@/components/Table
'
;
import
type
{
ButtonProps
}
from
'
ant-design-vue/es/button/buttonTypes
'
;
import
{
propTypes
}
from
'
/@/utils/propTypes
'
;
export
const
basicProps
=
{
export
const
basicProps
=
{
model
:
{
model
:
{
type
:
Object
as
PropType
<
Record
<
string
,
any
>
>
,
type
:
Object
as
PropType
<
Record
able
>
,
default
:
{},
default
:
{},
},
},
// 标签宽度 固定宽度
// 标签宽度 固定宽度
...
@@ -17,7 +20,7 @@ export const basicProps = {
...
@@ -17,7 +20,7 @@ export const basicProps = {
type
:
Array
as
PropType
<
FieldMapToTime
>
,
type
:
Array
as
PropType
<
FieldMapToTime
>
,
default
:
()
=>
[],
default
:
()
=>
[],
},
},
compact
:
Boolean
as
PropType
<
boolean
>
,
compact
:
propTypes
.
bool
,
// 表单配置规则
// 表单配置规则
schemas
:
{
schemas
:
{
type
:
[
Array
]
as
PropType
<
FormSchema
[]
>
,
type
:
[
Array
]
as
PropType
<
FormSchema
[]
>
,
...
@@ -25,98 +28,68 @@ export const basicProps = {
...
@@ -25,98 +28,68 @@ export const basicProps = {
required
:
true
,
required
:
true
,
},
},
mergeDynamicData
:
{
mergeDynamicData
:
{
type
:
Object
as
PropType
<
any
>
,
type
:
Object
as
PropType
<
Recordable
>
,
default
:
null
,
default
:
null
,
},
},
baseRowStyle
:
{
baseRowStyle
:
{
type
:
Object
as
PropType
<
any
>
,
type
:
Object
as
PropType
<
CSSProperties
>
,
},
},
baseColProps
:
{
baseColProps
:
{
type
:
Object
as
PropType
<
any
>
,
type
:
Object
as
PropType
<
Partial
<
ColEx
>>
,
},
autoSetPlaceHolder
:
{
type
:
Boolean
,
default
:
true
,
},
submitOnReset
:
{
type
:
Boolean
,
default
:
false
,
},
size
:
{
type
:
String
as
PropType
<
'
default
'
|
'
small
'
|
'
large
'
>
,
default
:
'
default
'
,
},
},
autoSetPlaceHolder
:
propTypes
.
bool
.
def
(
true
),
submitOnReset
:
propTypes
.
bool
,
size
:
propTypes
.
oneOf
([
'
default
'
,
'
small
'
,
'
large
'
]).
def
(
'
default
'
),
// 禁用表单
// 禁用表单
disabled
:
Boolean
as
PropType
<
boolean
>
,
disabled
:
propTypes
.
bool
,
emptySpan
:
{
emptySpan
:
{
type
:
[
Number
,
Object
]
as
PropType
<
number
>
,
type
:
[
Number
,
Object
]
as
PropType
<
number
>
,
default
:
0
,
default
:
0
,
},
},
// 是否显示收起展开按钮
// 是否显示收起展开按钮
showAdvancedButton
:
{
type
:
Boolean
as
PropType
<
boolean
>
,
default
:
false
}
,
showAdvancedButton
:
propTypes
.
bool
,
// 转化时间
// 转化时间
transformDateFunc
:
{
transformDateFunc
:
{
type
:
Function
as
PropType
<
Fn
>
,
type
:
Function
as
PropType
<
Fn
>
,
default
:
(
date
:
any
)
=>
{
default
:
(
date
:
any
)
=>
{
return
date
.
_isAMomentObject
?
date
.
format
(
'
YYYY-MM-DD HH:mm:ss
'
)
:
date
;
return
date
.
_isAMomentObject
?
date
?
.
format
(
'
YYYY-MM-DD HH:mm:ss
'
)
:
date
;
},
},
},
},
rulesMessageJoinLabel
:
{
rulesMessageJoinLabel
:
propTypes
.
bool
.
def
(
true
),
type
:
Boolean
,
default
:
true
,
},
// 超过3行自动折叠
// 超过3行自动折叠
autoAdvancedLine
:
{
autoAdvancedLine
:
propTypes
.
number
.
def
(
3
),
type
:
Number
as
PropType
<
number
>
,
default
:
3
,
},
// 是否显示操作按钮
// 是否显示操作按钮
showActionButtonGroup
:
{
showActionButtonGroup
:
propTypes
.
bool
.
def
(
true
),
type
:
Boolean
as
PropType
<
boolean
>
,
default
:
true
,
},
// 操作列Col配置
// 操作列Col配置
actionColOptions
:
Object
as
PropType
<
ColEx
>
,
actionColOptions
:
Object
as
PropType
<
Partial
<
ColEx
>
>
,
// 显示重置按钮
// 显示重置按钮
showResetButton
:
{
showResetButton
:
propTypes
.
bool
.
def
(
true
),
type
:
Boolean
as
PropType
<
boolean
>
,
default
:
true
,
},
// 重置按钮配置
// 重置按钮配置
resetButtonOptions
:
Object
as
PropType
<
any
>
,
resetButtonOptions
:
Object
as
PropType
<
Partial
<
ButtonProps
>
>
,
// 显示确认按钮
// 显示确认按钮
showSubmitButton
:
{
showSubmitButton
:
propTypes
.
bool
.
def
(
true
),
type
:
Boolean
as
PropType
<
boolean
>
,
default
:
true
,
},
// 确认按钮配置
// 确认按钮配置
submitButtonOptions
:
Object
as
PropType
<
any
>
,
submitButtonOptions
:
Object
as
PropType
<
Partial
<
ButtonProps
>
>
,
// 自定义重置函数
// 自定义重置函数
resetFunc
:
Function
as
PropType
<
Fn
>
,
resetFunc
:
Function
as
PropType
<
()
=>
Promise
<
void
>
>
,
submitFunc
:
Function
as
PropType
<
Fn
>
,
submitFunc
:
Function
as
PropType
<
()
=>
Promise
<
void
>
>
,
// 以下为默认props
// 以下为默认props
hideRequiredMark
:
Boolean
as
PropType
<
boolean
>
,
hideRequiredMark
:
propTypes
.
bool
,
labelCol
:
Object
as
PropType
<
ColEx
>
,
labelCol
:
Object
as
PropType
<
Partial
<
ColEx
>
>
,
layout
:
{
layout
:
propTypes
.
oneOf
([
'
horizontal
'
,
'
vertical
'
,
'
inline
'
]).
def
(
'
horizontal
'
),
type
:
String
as
PropType
<
'
horizontal
'
|
'
vertical
'
|
'
inline
'
>
,
default
:
'
horizontal
'
,
},
tableAction
:
{
tableAction
:
{
type
:
Object
as
PropType
<
TableActionType
>
,
type
:
Object
as
PropType
<
TableActionType
>
,
},
},
wrapperCol
:
Object
as
PropType
<
any
>
,
wrapperCol
:
Object
as
PropType
<
Partial
<
ColEx
>
>
,
colon
:
{
colon
:
propTypes
.
bool
,
type
:
Boolean
as
PropType
<
boolean
>
,
default
:
false
,
},
labelAlign
:
String
as
PropType
<
string
>
,
labelAlign
:
propTypes
.
string
,
};
};
src/components/Form/src/types/form.ts
View file @
4ff1c408
...
@@ -5,6 +5,7 @@ import type { ButtonProps as AntdButtonProps } from 'ant-design-vue/es/button/bu
...
@@ -5,6 +5,7 @@ import type { ButtonProps as AntdButtonProps } from 'ant-design-vue/es/button/bu
import
type
{
FormItem
}
from
'
./formItem
'
;
import
type
{
FormItem
}
from
'
./formItem
'
;
import
type
{
ColEx
,
ComponentType
}
from
'
./index
'
;
import
type
{
ColEx
,
ComponentType
}
from
'
./index
'
;
import
type
{
TableActionType
}
from
'
/@/components/Table/src/types/table
'
;
import
type
{
TableActionType
}
from
'
/@/components/Table/src/types/table
'
;
import
type
{
CSSProperties
}
from
'
vue
'
;
export
type
FieldMapToTime
=
[
string
,
[
string
,
string
],
string
?][];
export
type
FieldMapToTime
=
[
string
,
[
string
,
string
],
string
?][];
...
@@ -14,8 +15,8 @@ export type Rule = RuleObject & {
...
@@ -14,8 +15,8 @@ export type Rule = RuleObject & {
export
interface
RenderCallbackParams
{
export
interface
RenderCallbackParams
{
schema
:
FormSchema
;
schema
:
FormSchema
;
values
:
any
;
values
:
Recordable
;
model
:
any
;
model
:
Recordable
;
field
:
string
;
field
:
string
;
}
}
...
@@ -25,18 +26,19 @@ export interface ButtonProps extends AntdButtonProps {
...
@@ -25,18 +26,19 @@ export interface ButtonProps extends AntdButtonProps {
export
interface
FormActionType
{
export
interface
FormActionType
{
submit
:
()
=>
Promise
<
void
>
;
submit
:
()
=>
Promise
<
void
>
;
setFieldsValue
:
<
T
>
(
values
:
T
)
=>
void
;
setFieldsValue
:
<
T
>
(
values
:
T
)
=>
Promise
<
void
>
;
resetFields
:
()
=>
Promise
<
any
>
;
resetFields
:
()
=>
Promise
<
void
>
;
getFieldsValue
:
()
=>
any
;
getFieldsValue
:
()
=>
Recordable
;
clearValidate
:
(
name
?:
string
|
string
[])
=>
void
;
clearValidate
:
(
name
?:
string
|
string
[])
=>
Promise
<
void
>
;
updateSchema
:
(
data
:
Partial
<
FormSchema
>
|
Partial
<
FormSchema
>
[])
=>
void
;
updateSchema
:
(
data
:
Partial
<
FormSchema
>
|
Partial
<
FormSchema
>
[])
=>
Promise
<
void
>
;
setProps
:
(
formProps
:
Partial
<
FormProps
>
)
=>
void
;
setProps
:
(
formProps
:
Partial
<
FormProps
>
)
=>
Promise
<
void
>
;
removeSchemaByFiled
:
(
field
:
string
|
string
[])
=>
void
;
removeSchemaByFiled
:
(
field
:
string
|
string
[])
=>
Promise
<
void
>
;
appendSchemaByField
:
(
schema
:
FormSchema
,
prefixField
?:
string
)
=>
void
;
appendSchemaByField
:
(
schema
:
FormSchema
,
prefixField
?:
string
)
=>
Promise
<
void
>
;
validateFields
:
(
nameList
?:
NamePath
[])
=>
Promise
<
any
>
;
validateFields
:
(
nameList
?:
NamePath
[])
=>
Promise
<
any
>
;
validate
:
(
nameList
?:
NamePath
[])
=>
Promise
<
any
>
;
validate
:
(
nameList
?:
NamePath
[])
=>
Promise
<
any
>
;
scrollToField
:
(
name
:
NamePath
,
options
?:
ScrollOptions
)
=>
void
;
scrollToField
:
(
name
:
NamePath
,
options
?:
ScrollOptions
)
=>
Promise
<
void
>
;
}
}
export
type
RegisterFn
=
(
formInstance
:
FormActionType
)
=>
void
;
export
type
RegisterFn
=
(
formInstance
:
FormActionType
)
=>
void
;
export
type
UseFormReturnType
=
[
RegisterFn
,
FormActionType
];
export
type
UseFormReturnType
=
[
RegisterFn
,
FormActionType
];
...
@@ -44,7 +46,7 @@ export type UseFormReturnType = [RegisterFn, FormActionType];
...
@@ -44,7 +46,7 @@ export type UseFormReturnType = [RegisterFn, FormActionType];
export
interface
FormProps
{
export
interface
FormProps
{
// layout?: 'vertical' | 'inline' | 'horizontal';
// layout?: 'vertical' | 'inline' | 'horizontal';
// Form value
// Form value
model
?:
any
;
model
?:
Recordable
;
// The width of all items in the entire form
// The width of all items in the entire form
labelWidth
?:
number
|
string
;
labelWidth
?:
number
|
string
;
// Submit form on reset
// Submit form on reset
...
@@ -55,7 +57,7 @@ export interface FormProps {
...
@@ -55,7 +57,7 @@ export interface FormProps {
wrapperCol
?:
Partial
<
ColEx
>
;
wrapperCol
?:
Partial
<
ColEx
>
;
// General row style
// General row style
baseRowStyle
?:
object
;
baseRowStyle
?:
CSSProperties
;
// General col configuration
// General col configuration
baseColProps
?:
Partial
<
ColEx
>
;
baseColProps
?:
Partial
<
ColEx
>
;
...
@@ -63,7 +65,7 @@ export interface FormProps {
...
@@ -63,7 +65,7 @@ export interface FormProps {
// Form configuration rules
// Form configuration rules
schemas
?:
FormSchema
[];
schemas
?:
FormSchema
[];
// Function values used to merge into dynamic control form items
// Function values used to merge into dynamic control form items
mergeDynamicData
?:
any
;
mergeDynamicData
?:
Recordable
;
// Compact mode for search forms
// Compact mode for search forms
compact
?:
boolean
;
compact
?:
boolean
;
// Blank line span
// Blank line span
...
@@ -131,8 +133,8 @@ export interface FormSchema {
...
@@ -131,8 +133,8 @@ export interface FormSchema {
schema
:
FormSchema
;
schema
:
FormSchema
;
tableAction
:
TableActionType
;
tableAction
:
TableActionType
;
formActionType
:
FormActionType
;
formActionType
:
FormActionType
;
formModel
:
any
;
formModel
:
Recordable
;
})
=>
any
)
})
=>
Recordable
)
|
object
;
|
object
;
// Required
// Required
required
?:
boolean
;
required
?:
boolean
;
...
...
src/components/Modal/src/useModalContext.ts
View file @
4ff1c408
...
@@ -5,12 +5,12 @@ export interface ModalContextProps {
...
@@ -5,12 +5,12 @@ export interface ModalContextProps {
redoModalHeight
:
()
=>
void
;
redoModalHeight
:
()
=>
void
;
}
}
const
modalContextInjectK
ey
:
InjectionKey
<
ModalContextProps
>
=
Symbol
();
const
k
ey
:
InjectionKey
<
ModalContextProps
>
=
Symbol
();
export
function
createModalContext
(
context
:
ModalContextProps
)
{
export
function
createModalContext
(
context
:
ModalContextProps
)
{
return
createContext
<
ModalContextProps
>
(
context
,
modalContextInjectK
ey
);
return
createContext
<
ModalContextProps
>
(
context
,
k
ey
);
}
}
export
function
useModalContext
()
{
export
function
useModalContext
()
{
return
useContext
<
ModalContextProps
>
(
modalContextInjectK
ey
);
return
useContext
<
ModalContextProps
>
(
k
ey
);
}
}
src/components/Scrollbar/src/util.ts
View file @
4ff1c408
...
@@ -39,7 +39,7 @@ function extend<T, K>(to: T, _from: K): T & K {
...
@@ -39,7 +39,7 @@ function extend<T, K>(to: T, _from: K): T & K {
return
Object
.
assign
(
to
,
_from
);
return
Object
.
assign
(
to
,
_from
);
}
}
export
function
toObject
<
T
>
(
arr
:
Array
<
T
>
):
Record
<
string
,
T
>
{
export
function
toObject
<
T
>
(
arr
:
Array
<
T
>
):
Record
able
<
T
>
{
const
res
=
{};
const
res
=
{};
for
(
let
i
=
0
;
i
<
arr
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
arr
.
length
;
i
++
)
{
if
(
arr
[
i
])
{
if
(
arr
[
i
])
{
...
...
src/components/Table/src/BasicTable.vue
View file @
4ff1c408
...
@@ -221,7 +221,7 @@
...
@@ -221,7 +221,7 @@
function
handleTableChange
(
function
handleTableChange
(
pagination
:
PaginationProps
,
pagination
:
PaginationProps
,
// @ts-ignore
// @ts-ignore
filters
:
Partial
<
Record
<
string
,
string
[]
>>
,
filters
:
Partial
<
Record
able
<
string
[]
>>
,
sorter
:
SorterResult
sorter
:
SorterResult
)
{
)
{
const
{
clearSelectOnPageChange
,
sortFn
}
=
unref
(
getMergeProps
);
const
{
clearSelectOnPageChange
,
sortFn
}
=
unref
(
getMergeProps
);
...
...
src/components/Table/src/components/renderEditable.tsx
View file @
4ff1c408
...
@@ -232,7 +232,7 @@ export function renderEditableRow({
...
@@ -232,7 +232,7 @@ export function renderEditableRow({
};
};
}
}
export
type
EditRecordRow
<
T
=
{
[
key
:
string
]:
any
}
>
=
{
export
type
EditRecordRow
<
T
=
Hash
<
any
>
>
=
{
editable
:
boolean
;
editable
:
boolean
;
onCancel
:
Fn
;
onCancel
:
Fn
;
onSubmit
:
Fn
;
onSubmit
:
Fn
;
...
...
src/components/Table/src/types/column.ts
View file @
4ff1c408
...
@@ -194,5 +194,5 @@ export interface ColumnProps<T> {
...
@@ -194,5 +194,5 @@ export interface ColumnProps<T> {
* such as slots: { filterIcon: 'XXX'}
* such as slots: { filterIcon: 'XXX'}
* @type object
* @type object
*/
*/
slots
?:
Record
<
string
,
string
>
;
slots
?:
Record
able
<
string
>
;
}
}
src/components/Transition/src/CreateTransition.tsx
View file @
4ff1c408
...
@@ -40,7 +40,7 @@ export function createSimpleTransition(name: string, origin = 'top center 0', mo
...
@@ -40,7 +40,7 @@ export function createSimpleTransition(name: string, origin = 'top center 0', mo
}
}
export
function
createJavascriptTransition
(
export
function
createJavascriptTransition
(
name
:
string
,
name
:
string
,
functions
:
Record
<
string
,
any
>
,
functions
:
Record
able
,
mode
:
Mode
=
'
in-out
'
mode
:
Mode
=
'
in-out
'
)
{
)
{
return
defineComponent
({
return
defineComponent
({
...
...
src/components/VirtualScroll/src/index.tsx
View file @
4ff1c408
...
@@ -54,7 +54,7 @@ export default defineComponent({
...
@@ -54,7 +54,7 @@ export default defineComponent({
const
getWrapStyleRef
=
computed
(
const
getWrapStyleRef
=
computed
(
():
CSSProperties
=>
{
():
CSSProperties
=>
{
const
styles
:
Record
<
string
,
string
>
=
{};
const
styles
:
Record
able
<
string
>
=
{};
const
height
=
convertToUnit
(
props
.
height
);
const
height
=
convertToUnit
(
props
.
height
);
const
minHeight
=
convertToUnit
(
props
.
minHeight
);
const
minHeight
=
convertToUnit
(
props
.
minHeight
);
const
minWidth
=
convertToUnit
(
props
.
minWidth
);
const
minWidth
=
convertToUnit
(
props
.
minWidth
);
...
...
src/components/util.tsx
View file @
4ff1c408
...
@@ -40,7 +40,7 @@ const pattern = {
...
@@ -40,7 +40,7 @@ const pattern = {
}
as
const
;
}
as
const
;
function
parseStyle
(
style
:
string
)
{
function
parseStyle
(
style
:
string
)
{
const
styleMap
:
Dictionary
<
any
>
=
{};
const
styleMap
:
Recordable
=
{};
for
(
const
s
of
style
.
split
(
pattern
.
styleList
))
{
for
(
const
s
of
style
.
split
(
pattern
.
styleList
))
{
let
[
key
,
val
]
=
s
.
split
(
pattern
.
styleProp
);
let
[
key
,
val
]
=
s
.
split
(
pattern
.
styleProp
);
...
@@ -161,8 +161,8 @@ export function mergeClasses(target: any, source: any) {
...
@@ -161,8 +161,8 @@ export function mergeClasses(target: any, source: any) {
}
}
export
function
mergeListeners
(
export
function
mergeListeners
(
target
:
{
[
key
:
string
]:
Function
|
Function
[]
}
|
undefined
,
target
:
Indexable
<
Function
|
Function
[]
>
|
undefined
,
source
:
{
[
key
:
string
]:
Function
|
Function
[]
}
|
undefined
source
:
Indexable
<
Function
|
Function
[]
>
|
undefined
)
{
)
{
if
(
!
target
)
return
source
;
if
(
!
target
)
return
source
;
if
(
!
source
)
return
target
;
if
(
!
source
)
return
target
;
...
...
src/directives/ripple/index.ts
View file @
4ff1c408
...
@@ -154,7 +154,7 @@ function rippler({
...
@@ -154,7 +154,7 @@ function rippler({
setTimeout
(()
=>
{
setTimeout
(()
=>
{
let
clearPosition
=
true
;
let
clearPosition
=
true
;
for
(
let
i
=
0
;
i
<
el
.
childNodes
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
el
.
childNodes
.
length
;
i
++
)
{
if
((
el
.
childNodes
[
i
]
as
any
).
className
===
'
ripple-container
'
)
{
if
((
el
.
childNodes
[
i
]
as
Recordable
).
className
===
'
ripple-container
'
)
{
clearPosition
=
false
;
clearPosition
=
false
;
}
}
}
}
...
@@ -173,7 +173,7 @@ function rippler({
...
@@ -173,7 +173,7 @@ function rippler({
clearRipple
();
clearRipple
();
}
}
(
el
as
any
).
setBackground
=
(
bgColor
:
string
)
=>
{
(
el
as
Recordable
).
setBackground
=
(
bgColor
:
string
)
=>
{
if
(
!
bgColor
)
{
if
(
!
bgColor
)
{
return
;
return
;
}
}
...
@@ -181,8 +181,8 @@ function rippler({
...
@@ -181,8 +181,8 @@ function rippler({
};
};
}
}
function
setProps
(
modifiers
:
{
[
key
:
string
]:
any
},
props
:
Record
<
string
,
any
>
)
{
function
setProps
(
modifiers
:
Hash
<
any
>
,
props
:
Recordable
)
{
modifiers
.
forEach
((
item
:
any
)
=>
{
modifiers
.
forEach
((
item
:
Recordable
)
=>
{
if
(
isNaN
(
Number
(
item
)))
props
.
event
=
item
;
if
(
isNaN
(
Number
(
item
)))
props
.
event
=
item
;
else
props
.
transition
=
item
;
else
props
.
transition
=
item
;
});
});
...
...
src/hooks/component/useFormItem.ts
0 → 100644
View file @
4ff1c408
import
type
{
UnwrapRef
}
from
'
vue
'
;
import
{
reactive
,
readonly
,
computed
,
getCurrentInstance
}
from
'
vue
'
;
import
{
isEqual
}
from
'
lodash-es
'
;
export
function
useRuleFormItem
<
T
extends
Indexable
>
(
props
:
T
,
key
:
keyof
T
=
'
value
'
,
changeEvent
=
'
change
'
)
{
const
instance
=
getCurrentInstance
();
const
emit
=
instance
?.
emit
;
const
innerState
=
reactive
({
value
:
props
[
key
],
});
const
defaultState
=
readonly
(
innerState
);
const
setState
=
(
val
:
UnwrapRef
<
T
[
keyof
T
]
>
)
=>
{
innerState
.
value
=
val
as
T
[
keyof
T
];
};
const
state
=
computed
({
get
()
{
return
innerState
.
value
;
},
set
(
value
)
{
if
(
isEqual
(
value
,
defaultState
.
value
))
return
;
innerState
.
value
=
value
as
T
[
keyof
T
];
emit
?.(
changeEvent
,
value
);
},
});
return
[
state
,
setState
,
defaultState
];
}
src/hooks/core/useAttrs.ts
0 → 100644
View file @
4ff1c408
import
{
getCurrentInstance
,
reactive
,
shallowRef
,
watchEffect
}
from
'
vue
'
;
interface
Params
{
excludeListeners
?:
boolean
;
excludeKeys
?:
string
[];
}
const
DEFAULT_EXCLUDE_KEYS
=
[
'
class
'
,
'
style
'
];
const
LISTENER_PREFIX
=
/^on
[
A-Z
]
/
;
export
function
entries
<
T
>
(
obj
:
Hash
<
T
>
):
[
string
,
T
][]
{
return
Object
.
keys
(
obj
).
map
((
key
:
string
)
=>
[
key
,
obj
[
key
]]);
}
export
function
useAttrs
(
params
:
Params
=
{})
{
const
instance
=
getCurrentInstance
();
if
(
!
instance
)
return
{};
const
{
excludeListeners
=
false
,
excludeKeys
=
[]
}
=
params
;
const
attrs
=
shallowRef
({});
const
allExcludeKeys
=
excludeKeys
.
concat
(
DEFAULT_EXCLUDE_KEYS
);
// Since attrs are not reactive, make it reactive instead of doing in `onUpdated` hook for better performance
instance
.
attrs
=
reactive
(
instance
.
attrs
);
watchEffect
(()
=>
{
const
res
=
entries
(
instance
.
attrs
).
reduce
((
acm
,
[
key
,
val
])
=>
{
if
(
!
allExcludeKeys
.
includes
(
key
)
&&
!
(
excludeListeners
&&
LISTENER_PREFIX
.
test
(
key
)))
{
acm
[
key
]
=
val
;
}
return
acm
;
},
{}
as
Hash
<
any
>
);
attrs
.
value
=
res
;
});
return
attrs
;
}
src/hooks/event/useKeyPress.ts
View file @
4ff1c408
...
@@ -23,7 +23,7 @@ export type EventOption = {
...
@@ -23,7 +23,7 @@ export type EventOption = {
const
defaultEvents
:
keyEvent
[]
=
[
'
keydown
'
];
const
defaultEvents
:
keyEvent
[]
=
[
'
keydown
'
];
// 键盘事件 keyCode 别名
// 键盘事件 keyCode 别名
const
aliasKeyCodeMap
:
Record
<
string
,
number
|
number
[]
>
=
{
const
aliasKeyCodeMap
:
Record
able
<
number
|
number
[]
>
=
{
esc
:
27
,
esc
:
27
,
tab
:
9
,
tab
:
9
,
enter
:
13
,
enter
:
13
,
...
@@ -36,7 +36,7 @@ const aliasKeyCodeMap: Record<string, number | number[]> = {
...
@@ -36,7 +36,7 @@ const aliasKeyCodeMap: Record<string, number | number[]> = {
};
};
// 键盘事件 key 别名
// 键盘事件 key 别名
const
aliasKeyMap
:
Record
<
string
,
string
|
string
[]
>
=
{
const
aliasKeyMap
:
Record
able
<
string
|
string
[]
>
=
{
esc
:
'
Escape
'
,
esc
:
'
Escape
'
,
tab
:
'
Tab
'
,
tab
:
'
Tab
'
,
enter
:
'
Enter
'
,
enter
:
'
Enter
'
,
...
@@ -50,7 +50,7 @@ const aliasKeyMap: Record<string, string | string[]> = {
...
@@ -50,7 +50,7 @@ const aliasKeyMap: Record<string, string | string[]> = {
};
};
// 修饰键
// 修饰键
const
modifierKey
:
Record
<
string
,
(
event
:
KeyboardEvent
)
=>
boolean
>
=
{
const
modifierKey
:
Record
able
<
(
event
:
KeyboardEvent
)
=>
boolean
>
=
{
ctrl
:
(
event
:
KeyboardEvent
)
=>
event
.
ctrlKey
,
ctrl
:
(
event
:
KeyboardEvent
)
=>
event
.
ctrlKey
,
shift
:
(
event
:
KeyboardEvent
)
=>
event
.
shiftKey
,
shift
:
(
event
:
KeyboardEvent
)
=>
event
.
shiftKey
,
alt
:
(
event
:
KeyboardEvent
)
=>
event
.
altKey
,
alt
:
(
event
:
KeyboardEvent
)
=>
event
.
altKey
,
...
...
src/hooks/web/useI18n.ts
View file @
4ff1c408
...
@@ -24,7 +24,7 @@ export function useI18n(namespace?: string) {
...
@@ -24,7 +24,7 @@ export function useI18n(namespace?: string) {
return
{
return
{
...
methods
,
...
methods
,
t
:
(
key
:
string
,
...
arg
:
any
)
=>
{
t
:
(
key
:
string
,
...
arg
:
any
)
:
string
=>
{
if
(
!
key
)
return
''
;
if
(
!
key
)
return
''
;
return
t
(
getKey
(
key
),
...(
arg
as
Parameters
<
typeof
t
>
));
return
t
(
getKey
(
key
),
...(
arg
as
Parameters
<
typeof
t
>
));
},
},
...
...
src/layouts/page/index.tsx
View file @
4ff1c408
...
@@ -13,7 +13,7 @@ import { useMultipleTabSetting } from '/@/hooks/setting/useMultipleTabSetting';
...
@@ -13,7 +13,7 @@ import { useMultipleTabSetting } from '/@/hooks/setting/useMultipleTabSetting';
// import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
// import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
interface
DefaultContext
{
interface
DefaultContext
{
Component
:
FunctionalComponent
&
{
type
:
{
[
key
:
string
]:
any
}
};
Component
:
FunctionalComponent
&
{
type
:
Indexable
};
route
:
RouteLocation
;
route
:
RouteLocation
;
}
}
...
...
src/router/guard/permissionGuard.ts
View file @
4ff1c408
...
@@ -40,7 +40,7 @@ export function createPermissionGuard(router: Router) {
...
@@ -40,7 +40,7 @@ export function createPermissionGuard(router: Router) {
return
;
return
;
}
}
// redirect login page
// redirect login page
const
redirectData
:
{
path
:
string
;
replace
:
boolean
;
query
?:
{
[
key
:
string
]:
string
}
}
=
{
const
redirectData
:
{
path
:
string
;
replace
:
boolean
;
query
?:
Indexable
<
string
>
}
=
{
path
:
LOGIN_PATH
,
path
:
LOGIN_PATH
,
replace
:
true
,
replace
:
true
,
};
};
...
...
src/router/types.ts
View file @
4ff1c408
...
@@ -48,7 +48,7 @@ export interface AppRouteRecordRaw extends Omit<RouteRecordRaw, 'meta'> {
...
@@ -48,7 +48,7 @@ export interface AppRouteRecordRaw extends Omit<RouteRecordRaw, 'meta'> {
component
?:
Component
|
string
;
component
?:
Component
|
string
;
components
?:
Component
;
components
?:
Component
;
children
?:
AppRouteRecordRaw
[];
children
?:
AppRouteRecordRaw
[];
props
?:
Record
<
string
,
any
>
;
props
?:
Record
able
;
fullPath
?:
string
;
fullPath
?:
string
;
}
}
export
interface
MenuTag
{
export
interface
MenuTag
{
...
...
src/settings/colorSetting.ts
View file @
4ff1c408
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
export
const
HEADER_PRESET_BG_COLOR_LIST
:
string
[]
=
[
export
const
HEADER_PRESET_BG_COLOR_LIST
:
string
[]
=
[
'
#ffffff
'
,
'
#ffffff
'
,
'
#009688
'
,
'
#009688
'
,
'
#
18bc9c
'
,
'
#
5172DC
'
,
'
#1E9FFF
'
,
'
#1E9FFF
'
,
'
#018ffb
'
,
'
#018ffb
'
,
'
#409eff
'
,
'
#409eff
'
,
...
...
src/types/global.d.ts
View file @
4ff1c408
...
@@ -15,18 +15,20 @@ declare function parseInt(s: string | number, radix?: number): number;
...
@@ -15,18 +15,20 @@ declare function parseInt(s: string | number, radix?: number): number;
declare
function
parseFloat
(
string
:
string
|
number
):
number
;
declare
function
parseFloat
(
string
:
string
|
number
):
number
;
declare
type
Dictionary
<
T
>
=
Record
<
string
,
T
>
;
declare
type
Nullable
<
T
>
=
T
|
null
;
declare
type
Nullable
<
T
>
=
T
|
null
;
declare
type
NonNullable
<
T
>
=
T
extends
null
|
undefined
?
never
:
T
;
declare
type
RefType
<
T
>
=
T
|
null
;
declare
type
RefType
<
T
>
=
T
|
null
;
declare
type
CustomizedHTMLElement
<
T
>
=
HTMLElement
&
T
;
declare
type
CustomizedHTMLElement
<
T
>
=
HTMLElement
&
T
;
declare
type
Indexable
<
T
=
any
>
=
{
declare
type
Indexable
<
T
extends
any
=
any
>
=
{
[
key
:
string
]:
T
;
[
key
:
string
]:
T
;
};
};
declare
type
Recordable
<
T
extends
any
=
any
>
=
Record
<
string
,
T
>
;
declare
type
Hash
<
T
>
=
Indexable
<
T
>
;
declare
type
Hash
<
T
>
=
Indexable
<
T
>
;
declare
type
DeepPartial
<
T
>
=
{
declare
type
DeepPartial
<
T
>
=
{
...
@@ -59,3 +61,5 @@ declare interface ComponentElRef<T extends HTMLElement = HTMLDivElement> {
...
@@ -59,3 +61,5 @@ declare interface ComponentElRef<T extends HTMLElement = HTMLDivElement> {
declare
type
ComponentRef
<
T
extends
HTMLElement
=
HTMLDivElement
>
=
ComponentElRef
<
T
>
|
null
;
declare
type
ComponentRef
<
T
extends
HTMLElement
=
HTMLDivElement
>
=
ComponentElRef
<
T
>
|
null
;
declare
type
ElRef
<
T
extends
HTMLElement
=
HTMLDivElement
>
=
Nullable
<
T
>
;
declare
type
ElRef
<
T
extends
HTMLElement
=
HTMLDivElement
>
=
Nullable
<
T
>
;
type
IsSame
<
A
,
B
>
=
A
|
B
extends
A
&
B
?
true
:
false
;
src/utils/helper/persistent.ts
View file @
4ff1c408
...
@@ -7,8 +7,8 @@ const ls = createStorage(localStorage);
...
@@ -7,8 +7,8 @@ const ls = createStorage(localStorage);
const
ss
=
createStorage
();
const
ss
=
createStorage
();
interface
CacheStore
{
interface
CacheStore
{
local
:
Record
<
string
,
any
>
;
local
:
Record
able
;
session
:
Record
<
string
,
any
>
;
session
:
Record
able
;
}
}
/**
/**
...
...
src/utils/helper/tsxHelper.tsx
View file @
4ff1c408
...
@@ -35,7 +35,7 @@ export function extendSlots(slots: Slots, excludeKeys: string[] = []) {
...
@@ -35,7 +35,7 @@ export function extendSlots(slots: Slots, excludeKeys: string[] = []) {
}
}
// Get events on attrs
// Get events on attrs
export
function
getListeners
(
attrs
:
Record
<
string
,
unknown
>
)
{
export
function
getListeners
(
attrs
:
Record
able
<
unknown
>
)
{
const
listeners
:
any
=
{};
const
listeners
:
any
=
{};
Object
.
keys
(
attrs
).
forEach
((
key
)
=>
{
Object
.
keys
(
attrs
).
forEach
((
key
)
=>
{
if
(
/^on/
.
test
(
key
))
{
if
(
/^on/
.
test
(
key
))
{
...
...
src/utils/helper/vueHelper.ts
View file @
4ff1c408
...
@@ -9,6 +9,7 @@ import {
...
@@ -9,6 +9,7 @@ import {
reactive
,
reactive
,
ComponentInternalInstance
,
ComponentInternalInstance
,
}
from
'
vue
'
;
}
from
'
vue
'
;
import
{
error
}
from
'
../log
'
;
export
function
explicitComputed
<
T
,
S
>
(
source
:
WatchSource
<
S
>
,
fn
:
()
=>
T
)
{
export
function
explicitComputed
<
T
,
S
>
(
source
:
WatchSource
<
S
>
,
fn
:
()
=>
T
)
{
const
v
=
reactive
<
any
>
({
value
:
fn
()
});
const
v
=
reactive
<
any
>
({
value
:
fn
()
});
...
@@ -39,6 +40,6 @@ export function tryTsxEmit<T extends any = ComponentInternalInstance>(
...
@@ -39,6 +40,6 @@ export function tryTsxEmit<T extends any = ComponentInternalInstance>(
export
function
isInSetup
()
{
export
function
isInSetup
()
{
if
(
!
getCurrentInstance
())
{
if
(
!
getCurrentInstance
())
{
throw
new
E
rror
(
'
Please put useForm function in the setup function!
'
);
e
rror
(
'
Please put useForm function in the setup function!
'
);
}
}
}
}
src/utils/http/axios/types.ts
View file @
4ff1c408
...
@@ -35,7 +35,7 @@ export interface Result<T = any> {
...
@@ -35,7 +35,7 @@ export interface Result<T = any> {
// multipart/form-data:上传文件
// multipart/form-data:上传文件
export
interface
UploadFileParams
{
export
interface
UploadFileParams
{
// 其他参数
// 其他参数
data
?:
{
[
key
:
string
]:
any
}
;
data
?:
Indexable
;
// 文件参数的接口字段名
// 文件参数的接口字段名
name
?:
string
;
name
?:
string
;
// 文件
// 文件
...
...
src/utils/index.ts
View file @
4ff1c408
...
@@ -38,7 +38,7 @@ export function setObjToUrlParams(baseUrl: string, obj: any): string {
...
@@ -38,7 +38,7 @@ export function setObjToUrlParams(baseUrl: string, obj: any): string {
return
url
;
return
url
;
}
}
export
function
deepMerge
<
T
=
any
>
(
src
:
any
,
target
:
any
):
T
{
export
function
deepMerge
<
T
=
any
>
(
src
:
any
=
{},
target
:
any
=
{}
):
T
{
let
key
:
string
;
let
key
:
string
;
for
(
key
in
target
)
{
for
(
key
in
target
)
{
src
[
key
]
=
isObject
(
src
[
key
])
?
deepMerge
(
src
[
key
],
target
[
key
])
:
(
src
[
key
]
=
target
[
key
]);
src
[
key
]
=
isObject
(
src
[
key
])
?
deepMerge
(
src
[
key
],
target
[
key
])
:
(
src
[
key
]
=
target
[
key
]);
...
...
src/utils/log.ts
View file @
4ff1c408
...
@@ -3,3 +3,7 @@ const projectName = import.meta.env.VITE_GLOB_APP_TITLE;
...
@@ -3,3 +3,7 @@ const projectName = import.meta.env.VITE_GLOB_APP_TITLE;
export
function
warn
(
message
:
string
)
{
export
function
warn
(
message
:
string
)
{
console
.
warn
(
`[
${
projectName
}
warn]:
${
message
}
`
);
console
.
warn
(
`[
${
projectName
}
warn]:
${
message
}
`
);
}
}
export
function
error
(
message
:
string
)
{
throw
new
Error
(
`[
${
projectName
}
error]:
${
message
}
`
);
}
src/views/demo/form/RuleForm.vue
View file @
4ff1c408
...
@@ -84,12 +84,15 @@
...
@@ -84,12 +84,15 @@
required
:
true
,
required
:
true
,
// @ts-ignore
// @ts-ignore
validator
:
async
(
rule
,
value
)
=>
{
validator
:
async
(
rule
,
value
)
=>
{
if
(
!
value
)
{
return
Promise
.
reject
(
'
值不能为空
'
);
}
if
(
value
===
'
1
'
)
{
if
(
value
===
'
1
'
)
{
return
Promise
.
reject
(
'
值不能为1
'
);
return
Promise
.
reject
(
'
值不能为1
'
);
}
}
return
Promise
.
resolve
();
return
Promise
.
resolve
();
},
},
trigger
:
'
blur
'
,
trigger
:
'
change
'
,
},
},
],
],
},
},
...
...
yarn.lock
View file @
4ff1c408
...
@@ -35,7 +35,7 @@
...
@@ -35,7 +35,7 @@
"@types/lodash" "^4.14.165"
"@types/lodash" "^4.14.165"
lodash "^4.17.15"
lodash "^4.17.15"
"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4"
, "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3"
:
"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4":
version "7.10.4"
version "7.10.4"
resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a"
resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a"
integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==
integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==
...
@@ -47,7 +47,7 @@
...
@@ -47,7 +47,7 @@
resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.7.tgz#9329b4782a7d6bbd7eef57e11addf91ee3ef1e41"
resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.7.tgz#9329b4782a7d6bbd7eef57e11addf91ee3ef1e41"
integrity sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw==
integrity sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw==
"@babel/core@>=7.9.0", "@babel/core@^7.
8.4
":
"@babel/core@>=7.9.0", "@babel/core@^7.
11.1
":
version "7.12.10"
version "7.12.10"
resolved "https://registry.npmjs.org/@babel/core/-/core-7.12.10.tgz#b79a2e1b9f70ed3d84bbfb6d8c4ef825f606bccd"
resolved "https://registry.npmjs.org/@babel/core/-/core-7.12.10.tgz#b79a2e1b9f70ed3d84bbfb6d8c4ef825f606bccd"
integrity sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==
integrity sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==
...
@@ -167,7 +167,7 @@
...
@@ -167,7 +167,7 @@
dependencies:
dependencies:
"@babel/types" "^7.12.7"
"@babel/types" "^7.12.7"
"@babel/helper-module-imports@^7.
0.0
", "@babel/helper-module-imports@^7.12.1", "@babel/helper-module-imports@^7.12.5":
"@babel/helper-module-imports@^7.
10.4
", "@babel/helper-module-imports@^7.12.1", "@babel/helper-module-imports@^7.12.5":
version "7.12.5"
version "7.12.5"
resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb"
resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz#1bfc0229f794988f76ed0a4d4e90860850b54dfb"
integrity sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==
integrity sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==
...
@@ -246,11 +246,21 @@
...
@@ -246,11 +246,21 @@
resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2"
resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2"
integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==
integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==
"@babel/helper-validator-identifier@^7.12.11":
version "7.12.11"
resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed"
integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==
"@babel/helper-validator-option@^7.12.1":
"@babel/helper-validator-option@^7.12.1":
version "7.12.1"
version "7.12.1"
resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz#175567380c3e77d60ff98a54bb015fe78f2178d9"
resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz#175567380c3e77d60ff98a54bb015fe78f2178d9"
integrity sha512-YpJabsXlJVWP0USHjnC/AQDTLlZERbON577YUVO/wLpqyj6HAtVYnWaQaN0iUN+1/tWn3c+uKKXjRut5115Y2A==
integrity sha512-YpJabsXlJVWP0USHjnC/AQDTLlZERbON577YUVO/wLpqyj6HAtVYnWaQaN0iUN+1/tWn3c+uKKXjRut5115Y2A==
"@babel/helper-validator-option@^7.12.11":
version "7.12.11"
resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.11.tgz#d66cb8b7a3e7fe4c6962b32020a131ecf0847f4f"
integrity sha512-TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw==
"@babel/helper-wrap-function@^7.10.4":
"@babel/helper-wrap-function@^7.10.4":
version "7.12.3"
version "7.12.3"
resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz#3332339fc4d1fbbf1c27d7958c27d34708e990d9"
resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz#3332339fc4d1fbbf1c27d7958c27d34708e990d9"
...
@@ -498,10 +508,10 @@
...
@@ -498,10 +508,10 @@
dependencies:
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/plugin-transform-block-scoping@^7.12.1":
"@babel/plugin-transform-block-scoping@^7.12.1
1
":
version "7.12.1"
version "7.12.1
2
"
resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1
.tgz#f0ee727874b42a208a48a586b84c3d222c2bbef1
"
resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1
2.tgz#d93a567a152c22aea3b1929bb118d1d0a175cdca
"
integrity sha512-
zJyAC9sZdE60r1nVQHblcfCj29Dh2Y0DOvlMkcqSo0ckqjiCwNiUezUKw+RjOCwGfpLRwnAeQ2XlLpsnGkvv9w
==
integrity sha512-
VOEPQ/ExOVqbukuP7BYJtI5ZxxsmegTwzZ04j1aF0dkSypGo9XpDHuOrABsJu+ie+penpSJheDJ11x1BEZNiyQ
==
dependencies:
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/helper-plugin-utils" "^7.10.4"
...
@@ -724,16 +734,16 @@
...
@@ -724,16 +734,16 @@
"@babel/helper-create-regexp-features-plugin" "^7.12.1"
"@babel/helper-create-regexp-features-plugin" "^7.12.1"
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/preset-env@^7.
8.4
":
"@babel/preset-env@^7.
11.0
":
version "7.12.1
0
"
version "7.12.1
1
"
resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.1
0.tgz#ca981b95f641f2610531bd71948656306905e6ab
"
resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.1
1.tgz#55d5f7981487365c93dbbc84507b1c7215e857f9
"
integrity sha512-
Gz9hnBT/tGeTE2DBNDkD7BiWRELZt+8lSysHuDwmYXUIvtwZl0zI+D6mZgXZX0u8YBlLS4tmai9ONNY9tjRgRA
==
integrity sha512-
j8Tb+KKIXKYlDBQyIOy4BLxzv1NUOwlHfZ74rvW+Z0Gp4/cI2IMDPBWAgWceGcE7aep9oL/0K9mlzlMGxA8yNw
==
dependencies:
dependencies:
"@babel/compat-data" "^7.12.7"
"@babel/compat-data" "^7.12.7"
"@babel/helper-compilation-targets" "^7.12.5"
"@babel/helper-compilation-targets" "^7.12.5"
"@babel/helper-module-imports" "^7.12.5"
"@babel/helper-module-imports" "^7.12.5"
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/helper-plugin-utils" "^7.10.4"
"@babel/helper-validator-option" "^7.12.1"
"@babel/helper-validator-option" "^7.12.1
1
"
"@babel/plugin-proposal-async-generator-functions" "^7.12.1"
"@babel/plugin-proposal-async-generator-functions" "^7.12.1"
"@babel/plugin-proposal-class-properties" "^7.12.1"
"@babel/plugin-proposal-class-properties" "^7.12.1"
"@babel/plugin-proposal-dynamic-import" "^7.12.1"
"@babel/plugin-proposal-dynamic-import" "^7.12.1"
...
@@ -762,7 +772,7 @@
...
@@ -762,7 +772,7 @@
"@babel/plugin-transform-arrow-functions" "^7.12.1"
"@babel/plugin-transform-arrow-functions" "^7.12.1"
"@babel/plugin-transform-async-to-generator" "^7.12.1"
"@babel/plugin-transform-async-to-generator" "^7.12.1"
"@babel/plugin-transform-block-scoped-functions" "^7.12.1"
"@babel/plugin-transform-block-scoped-functions" "^7.12.1"
"@babel/plugin-transform-block-scoping" "^7.12.1"
"@babel/plugin-transform-block-scoping" "^7.12.1
1
"
"@babel/plugin-transform-classes" "^7.12.1"
"@babel/plugin-transform-classes" "^7.12.1"
"@babel/plugin-transform-computed-properties" "^7.12.1"
"@babel/plugin-transform-computed-properties" "^7.12.1"
"@babel/plugin-transform-destructuring" "^7.12.1"
"@babel/plugin-transform-destructuring" "^7.12.1"
...
@@ -792,7 +802,7 @@
...
@@ -792,7 +802,7 @@
"@babel/plugin-transform-unicode-escapes" "^7.12.1"
"@babel/plugin-transform-unicode-escapes" "^7.12.1"
"@babel/plugin-transform-unicode-regex" "^7.12.1"
"@babel/plugin-transform-unicode-regex" "^7.12.1"
"@babel/preset-modules" "^0.1.3"
"@babel/preset-modules" "^0.1.3"
"@babel/types" "^7.12.1
0
"
"@babel/types" "^7.12.1
1
"
core-js-compat "^3.8.0"
core-js-compat "^3.8.0"
semver "^5.5.0"
semver "^5.5.0"
...
@@ -847,6 +857,15 @@
...
@@ -847,6 +857,15 @@
lodash "^4.17.19"
lodash "^4.17.19"
to-fast-properties "^2.0.0"
to-fast-properties "^2.0.0"
"@babel/types@^7.12.11":
version "7.12.12"
resolved "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz#4608a6ec313abbd87afa55004d373ad04a96c299"
integrity sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==
dependencies:
"@babel/helper-validator-identifier" "^7.12.11"
lodash "^4.17.19"
to-fast-properties "^2.0.0"
"@commitlint/cli@^11.0.0":
"@commitlint/cli@^11.0.0":
version "11.0.0"
version "11.0.0"
resolved "https://registry.npmjs.org/@commitlint/cli/-/cli-11.0.0.tgz#698199bc52afed50aa28169237758fa14a67b5d3"
resolved "https://registry.npmjs.org/@commitlint/cli/-/cli-11.0.0.tgz#698199bc52afed50aa28169237758fa14a67b5d3"
...
@@ -1004,32 +1023,38 @@
...
@@ -1004,32 +1023,38 @@
minimatch "^3.0.4"
minimatch "^3.0.4"
strip-json-comments "^3.1.1"
strip-json-comments "^3.1.1"
"@hapi/address@
2.x.x
":
"@hapi/address@
^2.1.2
":
version "2.1.4"
version "2.1.4"
resolved "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5"
resolved "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5"
integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==
integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==
"@hapi/
bourne@1.x.x
":
"@hapi/
formula@^1.2.0
":
version "1.
3.2
"
version "1.
2.0
"
resolved "https://registry.npmjs.org/@hapi/
bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a
"
resolved "https://registry.npmjs.org/@hapi/
formula/-/formula-1.2.0.tgz#994649c7fea1a90b91a0a1e6d983523f680e10cd
"
integrity sha512-
1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOpp
A==
integrity sha512-
UFbtbGPjstz0eWHb+ga/GM3Z9EzqKXFWIbSOFURU0A/Gku0Bky4bCk9/h//K2Xr3IrCfjFNhMm4jyZ5dbCewG
A==
"@hapi/hoek@
8.x.x
", "@hapi/hoek@^8.3.0":
"@hapi/hoek@
^8.2.4
", "@hapi/hoek@^8.3.0":
version "8.5.1"
version "8.5.1"
resolved "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06"
resolved "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06"
integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==
integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==
"@hapi/joi@^1
5.1.0
":
"@hapi/joi@^1
6.1.8
":
version "1
5.1.1
"
version "1
6.1.8
"
resolved "https://registry.npmjs.org/@hapi/joi/-/joi-1
5.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7
"
resolved "https://registry.npmjs.org/@hapi/joi/-/joi-1
6.1.8.tgz#84c1f126269489871ad4e2decc786e0adef06839
"
integrity sha512-
entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ
==
integrity sha512-
wAsVvTPe+FwSrsAurNt5vkg3zo+TblvC5Bb1zMVK6SJzZqw9UrJnexxR+76cpePmtUZKHAPxcQ2Bf7oVHyahhg
==
dependencies:
dependencies:
"@hapi/address" "2.x.x"
"@hapi/address" "^2.1.2"
"@hapi/bourne" "1.x.x"
"@hapi/formula" "^1.2.0"
"@hapi/hoek" "8.x.x"
"@hapi/hoek" "^8.2.4"
"@hapi/topo" "3.x.x"
"@hapi/pinpoint" "^1.0.2"
"@hapi/topo" "^3.1.3"
"@hapi/pinpoint@^1.0.2":
version "1.0.2"
resolved "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-1.0.2.tgz#025b7a36dbbf4d35bf1acd071c26b20ef41e0d13"
integrity sha512-dtXC/WkZBfC5vxscazuiJ6iq4j9oNx1SHknmIr8hofarpKUZKmlUVYVIhNVzIEgK5Wrc4GMHL5lZtt1uS2flmQ==
"@hapi/topo@
3.x.x
":
"@hapi/topo@
^3.1.3
":
version "3.1.6"
version "3.1.6"
resolved "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29"
resolved "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29"
integrity sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==
integrity sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==
...
@@ -1051,10 +1076,10 @@
...
@@ -1051,10 +1076,10 @@
resolved "https://registry.npmjs.org/@iconify/iconify/-/iconify-2.0.0-rc.4.tgz#46098fb544a4eb3af724219e4955c9022801835e"
resolved "https://registry.npmjs.org/@iconify/iconify/-/iconify-2.0.0-rc.4.tgz#46098fb544a4eb3af724219e4955c9022801835e"
integrity sha512-YCSECbeXKFJEIVkKgKMjUzJ439ysufmL/a31B1j7dCvnHaBWsX9J4XehhJgg/aTy3yvhHaVhI6xt1kSMZP799A==
integrity sha512-YCSECbeXKFJEIVkKgKMjUzJ439ysufmL/a31B1j7dCvnHaBWsX9J4XehhJgg/aTy3yvhHaVhI6xt1kSMZP799A==
"@iconify/json@^1.1.27
5
":
"@iconify/json@^1.1.27
6
":
version "1.1.27
5
"
version "1.1.27
6
"
resolved "https://registry.npmjs.org/@iconify/json/-/json-1.1.27
5.tgz#ac9a706cdc7c9e64ab8e8bb09ae770f551f7496f
"
resolved "https://registry.npmjs.org/@iconify/json/-/json-1.1.27
6.tgz#c8d51751abc84cc73a466f55bc2f352686451786
"
integrity sha512-
Nt6tXJpZFd/gFRV24BvmlIdxnbMxgshIKFPQwOWgeVjKiOKEwiBKjXUzBE74As7/Olps/ac1gEB40N9/DGOJ3Q
==
integrity sha512-
Ra/mGT+n38vhi/i1cjsPYOmSR2d6rNIXZ+OsrIWp9J35zAPQ93sSTQMpTyxZdLu3QxU0vYwtcaC7h/Y1/3H3wg
==
"@intlify/core-base@9.0.0-beta.14":
"@intlify/core-base@9.0.0-beta.14":
version "9.0.0-beta.14"
version "9.0.0-beta.14"
...
@@ -1170,6 +1195,14 @@
...
@@ -1170,6 +1195,14 @@
dependencies:
dependencies:
"@iconify/iconify" ">=2.0.0-rc.1"
"@iconify/iconify" ">=2.0.0-rc.1"
"@rollup/plugin-babel@^5.2.0":
version "5.2.2"
resolved "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.2.2.tgz#e5623a01dd8e37e004ba87f2de218c611727d9b2"
integrity sha512-MjmH7GvFT4TW8xFdIeFS3wqIX646y5tACdxkTO+khbHvS3ZcVJL6vkAHLw2wqPmkhwCfWHoNsp15VYNwW6JEJA==
dependencies:
"@babel/helper-module-imports" "^7.10.4"
"@rollup/pluginutils" "^3.1.0"
"@rollup/plugin-commonjs@^16.0.0":
"@rollup/plugin-commonjs@^16.0.0":
version "16.0.0"
version "16.0.0"
resolved "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-16.0.0.tgz#169004d56cd0f0a1d0f35915d31a036b0efe281f"
resolved "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-16.0.0.tgz#169004d56cd0f0a1d0f35915d31a036b0efe281f"
...
@@ -1214,31 +1247,31 @@
...
@@ -1214,31 +1247,31 @@
is-module "^1.0.0"
is-module "^1.0.0"
resolve "^1.19.0"
resolve "^1.19.0"
"@rollup/plugin-node-resolve@^
7.1
.1":
"@rollup/plugin-node-resolve@^
11.0
.1":
version "
7.1.3
"
version "
11.0.1
"
resolved "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-
7.1.3.tgz#80de384edfbd7bfc9101164910f86078151a3eca
"
resolved "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-
11.0.1.tgz#d3765eec4bccf960801439a999382aed2dca959b
"
integrity sha512-
RxtSL3XmdTAE2byxekYLnx+98kEUOrPHF/KRVjLH+DEIHy6kjIw7YINQzn+NXiH/NTrQLAwYs0GWB+csWygA9
Q==
integrity sha512-
ltlsj/4Bhwwhb+Nb5xCz/6vieuEj2/BAkkqVIKmZwC7pIdl8srmgmglE4S0jFlZa32K4qvdQ6NHdmpRKD/Lwo
Q==
dependencies:
dependencies:
"@rollup/pluginutils" "^3.
0.8
"
"@rollup/pluginutils" "^3.
1.0
"
"@types/resolve" "
0.0.8
"
"@types/resolve" "
1.17.1
"
builtin-modules "^3.1.0"
builtin-modules "^3.1.0"
deepmerge "^4.2.2"
is-module "^1.0.0"
is-module "^1.0.0"
resolve "^1.1
4.2
"
resolve "^1.1
9.0
"
"@rollup/plugin-node-resolve@^
8.4
.0":
"@rollup/plugin-node-resolve@^
9.0
.0":
version "
8.4
.0"
version "
9.0
.0"
resolved "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-
8.4.0.tgz#261d79a680e9dc3d86761c14462f24126ba83575
"
resolved "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-
9.0.0.tgz#39bd0034ce9126b39c1699695f440b4b7d2b62e6
"
integrity sha512-
LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ
==
integrity sha512-
gPz+utFHLRrd41WMP13Jq5mqqzHL3OXrfj3/MkSyB6UBIcuNt9j60GCbarzMzdf1VHFpOxfQh/ez7wyadLMqkg
==
dependencies:
dependencies:
"@rollup/pluginutils" "^3.1.0"
"@rollup/pluginutils" "^3.1.0"
"@types/resolve" "1.17.1"
"@types/resolve" "1.17.1"
builtin-modules "^3.1.0"
builtin-modules "^3.1.0"
deep-freeze "^0.0.1"
deepmerge "^4.2.2"
deepmerge "^4.2.2"
is-module "^1.0.0"
is-module "^1.0.0"
resolve "^1.17.0"
resolve "^1.17.0"
"@rollup/plugin-replace@^2.3.
1", "@rollup/plugin-replace@^2.3.3
":
"@rollup/plugin-replace@^2.3.
3", "@rollup/plugin-replace@^2.3.4
":
version "2.3.4"
version "2.3.4"
resolved "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.3.4.tgz#7dd84c17755d62b509577f2db37eb524d7ca88ca"
resolved "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.3.4.tgz#7dd84c17755d62b509577f2db37eb524d7ca88ca"
integrity sha512-waBhMzyAtjCL1GwZes2jaE9MjuQ/DQF2BatH3fRivUF3z0JBFrU0U6iBNC/4WR+2rLKhaAhPWDNPYp4mI6RqdQ==
integrity sha512-waBhMzyAtjCL1GwZes2jaE9MjuQ/DQF2BatH3fRivUF3z0JBFrU0U6iBNC/4WR+2rLKhaAhPWDNPYp4mI6RqdQ==
...
@@ -1286,7 +1319,7 @@
...
@@ -1286,7 +1319,7 @@
remark "^13.0.0"
remark "^13.0.0"
unist-util-find-all-after "^3.0.2"
unist-util-find-all-after "^3.0.2"
"@surma/rollup-plugin-off-main-thread@^1.
1
.1":
"@surma/rollup-plugin-off-main-thread@^1.
4
.1":
version "1.4.2"
version "1.4.2"
resolved "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-1.4.2.tgz#e6786b6af5799f82f7ab3a82e53f6182d2b91a58"
resolved "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-1.4.2.tgz#e6786b6af5799f82f7ab3a82e53f6182d2b91a58"
integrity sha512-yBMPqmd1yEJo/280PAMkychuaALyQ9Lkb5q1ck3mjJrFuEobIfhnQ4J3mbvBoISmR3SWMWV+cGB/I0lCQee79A==
integrity sha512-yBMPqmd1yEJo/280PAMkychuaALyQ9Lkb5q1ck3mjJrFuEobIfhnQ4J3mbvBoISmR3SWMWV+cGB/I0lCQee79A==
...
@@ -1367,10 +1400,10 @@
...
@@ -1367,10 +1400,10 @@
"@types/qs" "*"
"@types/qs" "*"
"@types/serve-static" "*"
"@types/serve-static" "*"
"@types/fs-extra@^9.0.
5
":
"@types/fs-extra@^9.0.
6
":
version "9.0.
5
"
version "9.0.
6
"
resolved "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.
5.tgz#2afb76a43a4bef80a363b94b314d0ca1694fc4f8
"
resolved "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.
6.tgz#488e56b77299899a608b8269719c1d133027a6ab
"
integrity sha512-
wr3t7wIW1c0A2BIJtdVp4EflriVaVVAsCAIHVzzh8B+GiFv9X1xeJjCs4upRXtzp7kQ6lP5xvskjoD4awJ1ZeA
==
integrity sha512-
ecNRHw4clCkowNOBJH1e77nvbPxHYnWIXMv1IAoG/9+MYGkgoyr3Ppxr7XYFNL41V422EDhyV4/4SSK8L2mlig
==
dependencies:
dependencies:
"@types/node" "*"
"@types/node" "*"
...
@@ -1518,13 +1551,6 @@
...
@@ -1518,13 +1551,6 @@
resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c"
resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c"
integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==
integrity sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==
"@types/resolve@0.0.8":
version "0.0.8"
resolved "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194"
integrity sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==
dependencies:
"@types/node" "*"
"@types/resolve@1.17.1":
"@types/resolve@1.17.1":
version "1.17.1"
version "1.17.1"
resolved "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6"
resolved "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6"
...
@@ -1841,7 +1867,7 @@ acorn-jsx@^5.2.0, acorn-jsx@^5.3.1:
...
@@ -1841,7 +1867,7 @@ acorn-jsx@^5.2.0, acorn-jsx@^5.3.1:
resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b"
resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b"
integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==
integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==
acorn@^7.1.
0, acorn@^7.1.
1, acorn@^7.4.0:
acorn@^7.1.1, acorn@^7.4.0:
version "7.4.1"
version "7.4.1"
resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
...
@@ -2105,13 +2131,6 @@ axios@^0.21.1:
...
@@ -2105,13 +2131,6 @@ axios@^0.21.1:
dependencies:
dependencies:
follow-redirects "^1.10.0"
follow-redirects "^1.10.0"
babel-extract-comments@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz#0a2aedf81417ed391b85e18b4614e693a0351a21"
integrity sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ==
dependencies:
babylon "^6.18.0"
babel-helper-vue-jsx-merge-props@^2.0.3:
babel-helper-vue-jsx-merge-props@^2.0.3:
version "2.0.3"
version "2.0.3"
resolved "https://registry.npmjs.org/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz#22aebd3b33902328e513293a8e4992b384f9f1b6"
resolved "https://registry.npmjs.org/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz#22aebd3b33902328e513293a8e4992b384f9f1b6"
...
@@ -2124,32 +2143,6 @@ babel-plugin-dynamic-import-node@^2.3.3:
...
@@ -2124,32 +2143,6 @@ babel-plugin-dynamic-import-node@^2.3.3:
dependencies:
dependencies:
object.assign "^4.1.0"
object.assign "^4.1.0"
babel-plugin-syntax-object-rest-spread@^6.8.0:
version "6.13.0"
resolved "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5"
integrity sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=
babel-plugin-transform-object-rest-spread@^6.26.0:
version "6.26.0"
resolved "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06"
integrity sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=
dependencies:
babel-plugin-syntax-object-rest-spread "^6.8.0"
babel-runtime "^6.26.0"
babel-runtime@^6.26.0:
version "6.26.0"
resolved "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4=
dependencies:
core-js "^2.4.0"
regenerator-runtime "^0.11.0"
babylon@^6.18.0:
version "6.18.0"
resolved "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==
bail@^1.0.0:
bail@^1.0.0:
version "1.0.5"
version "1.0.5"
resolved "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776"
resolved "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776"
...
@@ -2950,11 +2943,6 @@ core-js-compat@^3.8.0:
...
@@ -2950,11 +2943,6 @@ core-js-compat@^3.8.0:
browserslist "^4.15.0"
browserslist "^4.15.0"
semver "7.0.0"
semver "7.0.0"
core-js@^2.4.0:
version "2.6.12"
resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec"
integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==
core-js@^3.6.1, core-js@^3.6.5:
core-js@^3.6.1, core-js@^3.6.5:
version "3.8.1"
version "3.8.1"
resolved "https://registry.npmjs.org/core-js/-/core-js-3.8.1.tgz#f51523668ac8a294d1285c3b9db44025fda66d47"
resolved "https://registry.npmjs.org/core-js/-/core-js-3.8.1.tgz#f51523668ac8a294d1285c3b9db44025fda66d47"
...
@@ -3010,10 +2998,10 @@ crypto-es@^1.2.6:
...
@@ -3010,10 +2998,10 @@ crypto-es@^1.2.6:
resolved "https://registry.npmjs.org/crypto-es/-/crypto-es-1.2.6.tgz#468f3573a5d7b82e3b63b0004f55f905a6d3b12c"
resolved "https://registry.npmjs.org/crypto-es/-/crypto-es-1.2.6.tgz#468f3573a5d7b82e3b63b0004f55f905a6d3b12c"
integrity sha512-PQnrovdr5ibmOxqAh/Vy+A30RokHom7kb9Z61EPwfASfbcJCrCG4+vNNegmebNVHiXvS7WjYpHDePxnE/biEbA==
integrity sha512-PQnrovdr5ibmOxqAh/Vy+A30RokHom7kb9Z61EPwfASfbcJCrCG4+vNNegmebNVHiXvS7WjYpHDePxnE/biEbA==
crypto-random-string@^
1
.0.0:
crypto-random-string@^
2
.0.0:
version "
1
.0.0"
version "
2
.0.0"
resolved "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-
1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e
"
resolved "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-
2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5
"
integrity sha
1-ojD2T1aDEOFJgAmUB5DsmVRbyn4
=
integrity sha
512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA=
=
cssesc@^3.0.0:
cssesc@^3.0.0:
version "3.0.0"
version "3.0.0"
...
@@ -3094,6 +3082,13 @@ debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3
...
@@ -3094,6 +3082,13 @@ debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3
dependencies:
dependencies:
ms "2.1.2"
ms "2.1.2"
debug@^4.3.2:
version "4.3.2"
resolved "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
dependencies:
ms "2.1.2"
debug@~3.1.0:
debug@~3.1.0:
version "3.1.0"
version "3.1.0"
resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
resolved "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
...
@@ -3129,11 +3124,6 @@ deep-equal@~1.0.1:
...
@@ -3129,11 +3124,6 @@ deep-equal@~1.0.1:
resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
resolved "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=
integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=
deep-freeze@^0.0.1:
version "0.0.1"
resolved "https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84"
integrity sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ=
deep-is@^0.1.3:
deep-is@^0.1.3:
version "0.1.3"
version "0.1.3"
resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
...
@@ -3912,7 +3902,7 @@ fresh@~0.5.2:
...
@@ -3912,7 +3902,7 @@ fresh@~0.5.2:
resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
fs-extra@8.1.0
, fs-extra@^8.1.0
:
fs-extra@8.1.0:
version "8.1.0"
version "8.1.0"
resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
...
@@ -4863,15 +4853,7 @@ isobject@^3.0.0, isobject@^3.0.1:
...
@@ -4863,15 +4853,7 @@ isobject@^3.0.0, isobject@^3.0.1:
resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
jest-worker@^24.9.0:
jest-worker@^26.2.1:
version "24.9.0"
resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5"
integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==
dependencies:
merge-stream "^2.0.0"
supports-color "^6.1.0"
jest-worker@^26.0.0, jest-worker@^26.2.1:
version "26.6.2"
version "26.6.2"
resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed"
resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed"
integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==
integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==
...
@@ -5265,7 +5247,7 @@ lodash.map@^4.5.1:
...
@@ -5265,7 +5247,7 @@ lodash.map@^4.5.1:
resolved "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3"
resolved "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3"
integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=
integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=
lodash.template@^4.0.2
, lodash.template@^4.5.0
:
lodash.template@^4.0.2:
version "4.5.0"
version "4.5.0"
resolved "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab"
resolved "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab"
integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==
integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==
...
@@ -6440,6 +6422,11 @@ pretty-bytes@^5.3.0:
...
@@ -6440,6 +6422,11 @@ pretty-bytes@^5.3.0:
resolved "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.4.1.tgz#cd89f79bbcef21e3d21eb0da68ffe93f803e884b"
resolved "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.4.1.tgz#cd89f79bbcef21e3d21eb0da68ffe93f803e884b"
integrity sha512-s1Iam6Gwz3JI5Hweaz4GoCD1WUNUIyzePFy5+Js2hjwGVt2Z79wNN+ZKOZ2vB6C+Xs6njyB84Z1IthQg8d9LxA==
integrity sha512-s1Iam6Gwz3JI5Hweaz4GoCD1WUNUIyzePFy5+Js2hjwGVt2Z79wNN+ZKOZ2vB6C+Xs6njyB84Z1IthQg8d9LxA==
pretty-bytes@^5.4.1:
version "5.5.0"
resolved "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.5.0.tgz#0cecda50a74a941589498011cf23275aa82b339e"
integrity sha512-p+T744ZyjjiaFlMUZZv6YPC5JrkNj8maRmPaQCWFJFplUAzpIUTRaTcS+7wmZtUoFXHtESJb23ISliaWyz3SHA==
printj@~1.1.0, printj@~1.1.2:
printj@~1.1.0, printj@~1.1.2:
version "1.1.2"
version "1.1.2"
resolved "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222"
resolved "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222"
...
@@ -6667,11 +6654,6 @@ regenerate@^1.4.0:
...
@@ -6667,11 +6654,6 @@ regenerate@^1.4.0:
resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
regenerator-runtime@^0.11.0:
version "0.11.1"
resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
regenerator-runtime@^0.13.4:
regenerator-runtime@^0.13.4:
version "0.13.7"
version "0.13.7"
resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55"
resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55"
...
@@ -6824,7 +6806,7 @@ resolve-url@^0.2.1:
...
@@ -6824,7 +6806,7 @@ resolve-url@^0.2.1:
resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.1
4.2, resolve@^1.1
7.0, resolve@^1.19.0:
resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.17.0, resolve@^1.19.0:
version "1.19.0"
version "1.19.0"
resolved "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c"
resolved "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c"
integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==
integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==
...
@@ -6865,14 +6847,6 @@ rimraf@^3.0.2:
...
@@ -6865,14 +6847,6 @@ rimraf@^3.0.2:
dependencies:
dependencies:
glob "^7.1.3"
glob "^7.1.3"
rollup-plugin-babel@^4.3.3:
version "4.4.0"
resolved "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-4.4.0.tgz#d15bd259466a9d1accbdb2fe2fff17c52d030acb"
integrity sha512-Lek/TYp1+7g7I+uMfJnnSJ7YWoD58ajo6Oarhlex7lvUce+RCKRuGRSgztDO3/MF/PuGKmUL5iTHKf208UNszw==
dependencies:
"@babel/helper-module-imports" "^7.0.0"
rollup-pluginutils "^2.8.1"
rollup-plugin-dynamic-import-variables@^1.1.0:
rollup-plugin-dynamic-import-variables@^1.1.0:
version "1.1.0"
version "1.1.0"
resolved "https://registry.npmjs.org/rollup-plugin-dynamic-import-variables/-/rollup-plugin-dynamic-import-variables-1.1.0.tgz#4981d38907a471b35234398a09047bef47a2006a"
resolved "https://registry.npmjs.org/rollup-plugin-dynamic-import-variables/-/rollup-plugin-dynamic-import-variables-1.1.0.tgz#4981d38907a471b35234398a09047bef47a2006a"
...
@@ -6900,28 +6874,7 @@ rollup-plugin-purge-icons@^0.4.5:
...
@@ -6900,28 +6874,7 @@ rollup-plugin-purge-icons@^0.4.5:
"@purge-icons/core" "^0.4.5"
"@purge-icons/core" "^0.4.5"
"@purge-icons/generated" "^0.4.1"
"@purge-icons/generated" "^0.4.1"
rollup-plugin-terser@^5.3.1:
rollup-plugin-terser@^7.0.0, rollup-plugin-terser@^7.0.2:
version "5.3.1"
resolved "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-5.3.1.tgz#8c650062c22a8426c64268548957463bf981b413"
integrity sha512-1pkwkervMJQGFYvM9nscrUoncPwiKR/K+bHdjv6PFgRo3cgPHoRT83y2Aa3GvINj4539S15t/tpFPb775TDs6w==
dependencies:
"@babel/code-frame" "^7.5.5"
jest-worker "^24.9.0"
rollup-pluginutils "^2.8.2"
serialize-javascript "^4.0.0"
terser "^4.6.2"
rollup-plugin-terser@^6.1.0:
version "6.1.0"
resolved "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-6.1.0.tgz#071866585aea104bfbb9dd1019ac523e63c81e45"
integrity sha512-4fB3M9nuoWxrwm39habpd4hvrbrde2W2GG4zEGPQg1YITNkM3Tqur5jSuXlWNzbv/2aMLJ+dZJaySc3GCD8oDw==
dependencies:
"@babel/code-frame" "^7.8.3"
jest-worker "^26.0.0"
serialize-javascript "^3.0.0"
terser "^4.7.0"
rollup-plugin-terser@^7.0.2:
version "7.0.2"
version "7.0.2"
resolved "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d"
resolved "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d"
integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==
integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==
...
@@ -6955,18 +6908,18 @@ rollup-plugin-web-worker-loader@^1.3.1:
...
@@ -6955,18 +6908,18 @@ rollup-plugin-web-worker-loader@^1.3.1:
resolved "https://registry.npmjs.org/rollup-plugin-web-worker-loader/-/rollup-plugin-web-worker-loader-1.5.0.tgz#df21973426c6f95b238a84698ae27f8d8aab6b83"
resolved "https://registry.npmjs.org/rollup-plugin-web-worker-loader/-/rollup-plugin-web-worker-loader-1.5.0.tgz#df21973426c6f95b238a84698ae27f8d8aab6b83"
integrity sha512-Zx5l370yGDje35rFkM/wbT4dMIq2+kSBdLWQpqLkBuxmrQJcx0umA05kSbNRzccFsudQH4FKYCK8GtSBQRQBBg==
integrity sha512-Zx5l370yGDje35rFkM/wbT4dMIq2+kSBdLWQpqLkBuxmrQJcx0umA05kSbNRzccFsudQH4FKYCK8GtSBQRQBBg==
rollup-plugin-workbox@^
5.2.1
:
rollup-plugin-workbox@^
6.1.0
:
version "
5.2.1
"
version "
6.1.0
"
resolved "https://registry.npmjs.org/rollup-plugin-workbox/-/rollup-plugin-workbox-
5.2.1.tgz#371b0753667df03886742ec072281525803c2c75
"
resolved "https://registry.npmjs.org/rollup-plugin-workbox/-/rollup-plugin-workbox-
6.1.0.tgz#120cde36547769fc8cc45eae97a338c4017ed936
"
integrity sha512-
C+yIoYkZ3VUcJTZpOH2zbaarHCwy8eQod987eS8hXE6qwfMLDqV3RkLYNplnO0PcMi+3JgZPiE6d1zuXgwkO7Q
==
integrity sha512-
BqeEBj53fiqNLjiiyVvuBlic3Apg2Us1mpTkn3zgqaipJoAOC3soi+W9vrOQcm190lHLo9WNvi1wQg/M7olJHg
==
dependencies:
dependencies:
"@rollup/plugin-node-resolve" "^
8.4.0
"
"@rollup/plugin-node-resolve" "^
11.0.1
"
"@rollup/plugin-replace" "^2.3.
3
"
"@rollup/plugin-replace" "^2.3.
4
"
pretty-bytes "^5.
3.0
"
pretty-bytes "^5.
4.1
"
rollup-plugin-terser "^
6.1.0
"
rollup-plugin-terser "^
7.0.2
"
workbox-build "^
5.0.0
"
workbox-build "^
6.0.2
"
rollup-pluginutils@^2.8.
1, rollup-pluginutils@^2.8.
2:
rollup-pluginutils@^2.8.2:
version "2.8.2"
version "2.8.2"
resolved "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e"
resolved "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e"
integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==
integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==
...
@@ -6981,14 +6934,12 @@ rollup@^0.63.4:
...
@@ -6981,14 +6934,12 @@ rollup@^0.63.4:
"@types/estree" "0.0.39"
"@types/estree" "0.0.39"
"@types/node" "*"
"@types/node" "*"
rollup@^1.31.1:
rollup@^2.25.0:
version "1.32.1"
version "2.35.1"
resolved "https://registry.npmjs.org/rollup/-/rollup-1.32.1.tgz#4480e52d9d9e2ae4b46ba0d9ddeaf3163940f9c4"
resolved "https://registry.npmjs.org/rollup/-/rollup-2.35.1.tgz#e6bc8d10893556a638066f89e8c97f422d03968c"
integrity sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==
integrity sha512-q5KxEyWpprAIcainhVy6HfRttD9kutQpHbeqDTWnqAFNJotiojetK6uqmcydNMymBEtC4I8bCYR+J3mTMqeaUA==
dependencies:
optionalDependencies:
"@types/estree" "*"
fsevents "~2.1.2"
"@types/node" "*"
acorn "^7.1.0"
rollup@^2.32.1, rollup@^2.34.1:
rollup@^2.32.1, rollup@^2.34.1:
version "2.34.2"
version "2.34.2"
...
@@ -7087,13 +7038,6 @@ semver@^7.2.1, semver@^7.3.2:
...
@@ -7087,13 +7038,6 @@ semver@^7.2.1, semver@^7.3.2:
dependencies:
dependencies:
lru-cache "^6.0.0"
lru-cache "^6.0.0"
serialize-javascript@^3.0.0:
version "3.1.0"
resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz#8bf3a9170712664ef2561b44b691eafe399214ea"
integrity sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==
dependencies:
randombytes "^2.1.0"
serialize-javascript@^4.0.0:
serialize-javascript@^4.0.0:
version "4.0.0"
version "4.0.0"
resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa"
resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa"
...
@@ -7448,13 +7392,10 @@ strip-bom@^3.0.0:
...
@@ -7448,13 +7392,10 @@ strip-bom@^3.0.0:
resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
strip-comments@^1.0.2:
strip-comments@^2.0.1:
version "1.0.2"
version "2.0.1"
resolved "https://registry.npmjs.org/strip-comments/-/strip-comments-1.0.2.tgz#82b9c45e7f05873bee53f37168af930aa368679d"
resolved "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz#4ad11c3fbcac177a67a40ac224ca339ca1c1ba9b"
integrity sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw==
integrity sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==
dependencies:
babel-extract-comments "^1.0.0"
babel-plugin-transform-object-rest-spread "^6.26.0"
strip-final-newline@^2.0.0:
strip-final-newline@^2.0.0:
version "2.0.0"
version "2.0.0"
...
@@ -7689,11 +7630,6 @@ tasksfile@^5.1.1:
...
@@ -7689,11 +7630,6 @@ tasksfile@^5.1.1:
"@pawelgalazka/shell" "2.0.0"
"@pawelgalazka/shell" "2.0.0"
chalk "2.3.0"
chalk "2.3.0"
temp-dir@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d"
integrity sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=
temp-dir@^2.0.0:
temp-dir@^2.0.0:
version "2.0.0"
version "2.0.0"
resolved "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e"
resolved "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e"
...
@@ -7707,16 +7643,17 @@ tempfile@^3.0.0:
...
@@ -7707,16 +7643,17 @@ tempfile@^3.0.0:
temp-dir "^2.0.0"
temp-dir "^2.0.0"
uuid "^3.3.2"
uuid "^3.3.2"
tempy@^0.
3
.0:
tempy@^0.
6
.0:
version "0.
3
.0"
version "0.
6
.0"
resolved "https://registry.npmjs.org/tempy/-/tempy-0.
3.0.tgz#6f6c5b295695a16130996ad5ab01a8bd726e8bf8
"
resolved "https://registry.npmjs.org/tempy/-/tempy-0.
6.0.tgz#65e2c35abc06f1124a97f387b08303442bde59f3
"
integrity sha512-
WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ
==
integrity sha512-
G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw
==
dependencies:
dependencies:
temp-dir "^1.0.0"
is-stream "^2.0.0"
type-fest "^0.3.1"
temp-dir "^2.0.0"
unique-string "^1.0.0"
type-fest "^0.16.0"
unique-string "^2.0.0"
terser@^4.6.
2, terser@^4.6.3, terser@^4.7.0
:
terser@^4.6.
3
:
version "4.8.0"
version "4.8.0"
resolved "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17"
resolved "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17"
integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==
integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==
...
@@ -7898,16 +7835,16 @@ type-fest@^0.11.0:
...
@@ -7898,16 +7835,16 @@ type-fest@^0.11.0:
resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1"
resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1"
integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==
integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==
type-fest@^0.16.0:
version "0.16.0"
resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860"
integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==
type-fest@^0.18.0:
type-fest@^0.18.0:
version "0.18.1"
version "0.18.1"
resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f"
resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f"
integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==
integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==
type-fest@^0.3.1:
version "0.3.1"
resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1"
integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==
type-fest@^0.6.0:
type-fest@^0.6.0:
version "0.6.0"
version "0.6.0"
resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"
resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"
...
@@ -7998,12 +7935,12 @@ uniq@^1.0.1:
...
@@ -7998,12 +7935,12 @@ uniq@^1.0.1:
resolved "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
resolved "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=
integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=
unique-string@^
1
.0.0:
unique-string@^
2
.0.0:
version "
1
.0.0"
version "
2
.0.0"
resolved "https://registry.npmjs.org/unique-string/-/unique-string-
1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a
"
resolved "https://registry.npmjs.org/unique-string/-/unique-string-
2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d
"
integrity sha
1-nhBXzKhRq7kzmPizOuGHuZyuwRo
=
integrity sha
512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg=
=
dependencies:
dependencies:
crypto-random-string "^
1
.0.0"
crypto-random-string "^
2
.0.0"
unist-util-find-all-after@^3.0.2:
unist-util-find-all-after@^3.0.2:
version "3.0.2"
version "3.0.2"
...
@@ -8159,14 +8096,14 @@ vite-plugin-purge-icons@^0.4.5:
...
@@ -8159,14 +8096,14 @@ vite-plugin-purge-icons@^0.4.5:
"@purge-icons/generated" "^0.4.1"
"@purge-icons/generated" "^0.4.1"
rollup-plugin-purge-icons "^0.4.5"
rollup-plugin-purge-icons "^0.4.5"
vite-plugin-pwa@^0.
1.7
:
vite-plugin-pwa@^0.
2.0
:
version "0.
1.7
"
version "0.
2.0
"
resolved "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.
1.7.tgz#3e13faf2d61b1f5a1b341f6b08f32216ffae1f55
"
resolved "https://registry.npmjs.org/vite-plugin-pwa/-/vite-plugin-pwa-0.
2.0.tgz#e9368530c97537bdad7279f05de061ab9b024cce
"
integrity sha512-
S5Hc1x/rcfb6cgKjlW7yxSTv1er6fquzGZt/+xC1wavSBa7Qf6wdf6QzYiYdwmUom5yUSDEawc2gEYgq5SsZFg
==
integrity sha512-
OBNhlSqvqH9af9i8HsetmaRTrUjit3UP0rx33Sr0iBapM0gtuAmTjS4JPdSM54cGC1aVaIC3Rn3sY9wL0uxBrw
==
dependencies:
dependencies:
debug "^4.3.
0
"
debug "^4.3.
2
"
fast-glob "^3.2.4"
fast-glob "^3.2.4"
rollup-plugin-workbox "^
5.2.1
"
rollup-plugin-workbox "^
6.1.0
"
vite@^1.0.0-rc.13:
vite@^1.0.0-rc.13:
version "1.0.0-rc.13"
version "1.0.0-rc.13"
...
@@ -8354,146 +8291,160 @@ wordwrap@^1.0.0:
...
@@ -8354,146 +8291,160 @@ wordwrap@^1.0.0:
resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=
integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=
workbox-background-sync@^
5.1.4
:
workbox-background-sync@^
6.0.2
:
version "
5.1.4
"
version "
6.0.2
"
resolved "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-
5.1.4.tgz#5ae0bbd455f4e9c319e8d827c055bb86c894fd12
"
resolved "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-
6.0.2.tgz#9205f5ef7fbf68203b925bdc85bdaa31a34fbbe6
"
integrity sha512-
AH6x5pYq4vwQvfRDWH+vfOePfPIYQ00nCEB7dJRU1e0n9+9HMRyvI63FlDvtFT2AvXVRsXvUt7DNMEToyJLpSA
==
integrity sha512-
KQU2ntvbvFoBvCRm+EDpWAaykt4u/oaF5j3C6io0dZVWhFc/ZwgYDii8fb34LTenug3VPWQELdw9dNBCoP4b0w
==
dependencies:
dependencies:
workbox-core "^
5.1.4
"
workbox-core "^
6.0.2
"
workbox-broadcast-update@^
5.1.4
:
workbox-broadcast-update@^
6.0.2
:
version "
5.1.4
"
version "
6.0.2
"
resolved "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-
5.1.4.tgz#0eeb89170ddca7f6914fa3523fb14462891f2cfc
"
resolved "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-
6.0.2.tgz#fc034277e631e4193dcee9f6b0a77e415b4ddefb
"
integrity sha512-
HTyTWkqXvHRuqY73XrwvXPud/FN6x3ROzkfFPsRjtw/kGZuZkPzfeH531qdUGfhtwjmtO/ZzXcWErqVzJNdXaA
==
integrity sha512-
yCXYEln7nU8FkMDysYQPirpgFXtsdBtxruHbvZzRsxMHvAELf3j/o6Ufae1zjl8XanLF696sqSNxehpCGSD6tw
==
dependencies:
dependencies:
workbox-core "^
5.1.4
"
workbox-core "^
6.0.2
"
workbox-build@^
5.0.0
:
workbox-build@^
6.0.2
:
version "
5.1.4
"
version "
6.0.2
"
resolved "https://registry.npmjs.org/workbox-build/-/workbox-build-
5.1.4.tgz#23d17ed5c32060c363030c8823b39d0eabf4c8c7
"
resolved "https://registry.npmjs.org/workbox-build/-/workbox-build-
6.0.2.tgz#a23eebd6556cf473fedda77c08421b2d093efc32
"
integrity sha512-
xUcZn6SYU8usjOlfLb9Y2/f86Gdo+fy1fXgH8tJHjxgpo53VVsqRX0lUDw8/JuyzNmXuo8vXX14pXX2oIm9Bow
==
integrity sha512-
Dukbt+p62Yzb12SXAmycTYvHngJ8aRtXy3hymsC8B6gxTCZmCZ0u5JuKhu7lNLbDwDkYE78lhFvT9SF+MXFz5A
==
dependencies:
dependencies:
"@babel/core" "^7.8.4"
"@babel/core" "^7.11.1"
"@babel/preset-env" "^7.8.4"
"@babel/preset-env" "^7.11.0"
"@babel/runtime" "^7.8.4"
"@babel/runtime" "^7.11.2"
"@hapi/joi" "^15.1.0"
"@hapi/joi" "^16.1.8"
"@rollup/plugin-node-resolve" "^7.1.1"
"@rollup/plugin-babel" "^5.2.0"
"@rollup/plugin-replace" "^2.3.1"
"@rollup/plugin-node-resolve" "^9.0.0"
"@surma/rollup-plugin-off-main-thread" "^1.1.1"
"@rollup/plugin-replace" "^2.3.3"
"@surma/rollup-plugin-off-main-thread" "^1.4.1"
common-tags "^1.8.0"
common-tags "^1.8.0"
fast-json-stable-stringify "^2.1.0"
fast-json-stable-stringify "^2.1.0"
fs-extra "^
8.1.0
"
fs-extra "^
9.0.1
"
glob "^7.1.6"
glob "^7.1.6"
lodash
.template "^4.5.
0"
lodash
"^4.17.2
0"
pretty-bytes "^5.3.0"
pretty-bytes "^5.3.0"
rollup "^1.31.1"
rollup "^2.25.0"
rollup-plugin-babel "^4.3.3"
rollup-plugin-terser "^7.0.0"
rollup-plugin-terser "^5.3.1"
source-map "^0.7.3"
source-map "^0.7.3"
source-map-url "^0.4.0"
source-map-url "^0.4.0"
stringify-object "^3.3.0"
stringify-object "^3.3.0"
strip-comments "^
1.0.2
"
strip-comments "^
2.0.1
"
tempy "^0.
3
.0"
tempy "^0.
6
.0"
upath "^1.2.0"
upath "^1.2.0"
workbox-background-sync "^5.1.4"
workbox-background-sync "^6.0.2"
workbox-broadcast-update "^5.1.4"
workbox-broadcast-update "^6.0.2"
workbox-cacheable-response "^5.1.4"
workbox-cacheable-response "^6.0.2"
workbox-core "^5.1.4"
workbox-core "^6.0.2"
workbox-expiration "^5.1.4"
workbox-expiration "^6.0.2"
workbox-google-analytics "^5.1.4"
workbox-google-analytics "^6.0.2"
workbox-navigation-preload "^5.1.4"
workbox-navigation-preload "^6.0.2"
workbox-precaching "^5.1.4"
workbox-precaching "^6.0.2"
workbox-range-requests "^5.1.4"
workbox-range-requests "^6.0.2"
workbox-routing "^5.1.4"
workbox-recipes "^6.0.2"
workbox-strategies "^5.1.4"
workbox-routing "^6.0.2"
workbox-streams "^5.1.4"
workbox-strategies "^6.0.2"
workbox-sw "^5.1.4"
workbox-streams "^6.0.2"
workbox-window "^5.1.4"
workbox-sw "^6.0.2"
workbox-window "^6.0.2"
workbox-cacheable-response@^5.1.4:
version "5.1.4"
workbox-cacheable-response@^6.0.2:
resolved "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-5.1.4.tgz#9ff26e1366214bdd05cf5a43da9305b274078a54"
version "6.0.2"
integrity sha512-0bfvMZs0Of1S5cdswfQK0BXt6ulU5kVD4lwer2CeI+03czHprXR3V4Y8lPTooamn7eHP8Iywi5QjyAMjw0qauA==
resolved "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.0.2.tgz#00b1133c4c846a2874f32ae14206c0636bacfd87"
dependencies:
integrity sha512-OrgFiYWkmFXDIbNRYSu+fchcfoZqyJ4yZbdc8WKUjr9v/MghKHfR9u7UI077xBkjno5J3YNpbwx73/no3HkrzA==
workbox-core "^5.1.4"
dependencies:
workbox-core "^6.0.2"
workbox-core@^5.1.4:
version "5.1.4"
workbox-core@^6.0.2:
resolved "https://registry.npmjs.org/workbox-core/-/workbox-core-5.1.4.tgz#8bbfb2362ecdff30e25d123c82c79ac65d9264f4"
version "6.0.2"
integrity sha512-+4iRQan/1D8I81nR2L5vcbaaFskZC2CL17TLbvWVzQ4qiF/ytOGF6XeV54pVxAvKUtkLANhk8TyIUMtiMw2oDg==
resolved "https://registry.npmjs.org/workbox-core/-/workbox-core-6.0.2.tgz#2f865cfe633890b4210fd6d6fdb049a6daed0914"
integrity sha512-Ksl6qeikGb+BOCILoCUJGxwlEQOeeqdpOnpOr9UDt3NtacPYbfYBmpYpKArw5DFWK+5geBsFqgUUlXThlCYfKQ==
workbox-expiration@^5.1.4:
version "5.1.4"
workbox-expiration@^6.0.2:
resolved "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-5.1.4.tgz#92b5df461e8126114943a3b15c55e4ecb920b163"
version "6.0.2"
integrity sha512-oDO/5iC65h2Eq7jctAv858W2+CeRW5e0jZBMNRXpzp0ZPvuT6GblUiHnAsC5W5lANs1QS9atVOm4ifrBiYY7AQ==
resolved "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.0.2.tgz#ac01e8d17f48daa31dc0872c09ee6f4d2cf28ccb"
dependencies:
integrity sha512-6+nbR18cklAdI3BPT675ytftXPwnVbXGR8mPWNWTJtl5y2urRYv56ZOJLD7FBFVkZ8EjWiRhNP/A0fkxgdKtWQ==
workbox-core "^5.1.4"
dependencies:
workbox-core "^6.0.2"
workbox-google-analytics@^5.1.4:
version "5.1.4"
workbox-google-analytics@^6.0.2:
resolved "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-5.1.4.tgz#b3376806b1ac7d7df8418304d379707195fa8517"
version "6.0.2"
integrity sha512-0IFhKoEVrreHpKgcOoddV+oIaVXBFKXUzJVBI+nb0bxmcwYuZMdteBTp8AEDJacENtc9xbR0wa9RDCnYsCDLjA==
resolved "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.0.2.tgz#7e3641adb30a3acb25006b244035631cf6f65019"
dependencies:
integrity sha512-xmYJurR1M6Pzc2SBM/E7AgwmBszhu/YYDzBnU+HJPZFLbTG97ASIJyTXV1vcczA/dNaS0miIf0cFqneozVlDRw==
workbox-background-sync "^5.1.4"
dependencies:
workbox-core "^5.1.4"
workbox-background-sync "^6.0.2"
workbox-routing "^5.1.4"
workbox-core "^6.0.2"
workbox-strategies "^5.1.4"
workbox-routing "^6.0.2"
workbox-strategies "^6.0.2"
workbox-navigation-preload@^5.1.4:
version "5.1.4"
workbox-navigation-preload@^6.0.2:
resolved "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-5.1.4.tgz#30d1b720d26a05efc5fa11503e5cc1ed5a78902a"
version "6.0.2"
integrity sha512-Wf03osvK0wTflAfKXba//QmWC5BIaIZARU03JIhAEO2wSB2BDROWI8Q/zmianf54kdV7e1eLaIEZhth4K4MyfQ==
resolved "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.0.2.tgz#bfd9c61096be921b830153a3004b7212220748dc"
dependencies:
integrity sha512-7+ojLrjXmTFZBfGmUQIcBWB+xrFgXLMJGNQAtxT7Ta9A23rEWo8jqAgeuwAylebcORUlM+ztgYTV7eGp+AD+Yg==
workbox-core "^5.1.4"
dependencies:
workbox-core "^6.0.2"
workbox-precaching@^5.1.4:
version "5.1.4"
workbox-precaching@^6.0.2:
resolved "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-5.1.4.tgz#874f7ebdd750dd3e04249efae9a1b3f48285fe6b"
version "6.0.2"
integrity sha512-gCIFrBXmVQLFwvAzuGLCmkUYGVhBb7D1k/IL7pUJUO5xacjLcFUaLnnsoVepBGAiKw34HU1y/YuqvTKim9qAZA==
resolved "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.0.2.tgz#cb45f290b0604bef1d9fc96bf42df82385d54e54"
dependencies:
integrity sha512-sqKWL2emzmGnfJpna+9RjUkUiqQO++AKfwljCbgkHg8wBbVLy/rnui3eelKgAI7D8R31LJFfiZkY/kXmwkjtlQ==
workbox-core "^5.1.4"
dependencies:
workbox-core "^6.0.2"
workbox-range-requests@^5.1.4:
workbox-routing "^6.0.2"
version "5.1.4"
workbox-strategies "^6.0.2"
resolved "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-5.1.4.tgz#7066a12c121df65bf76fdf2b0868016aa2bab859"
integrity sha512-1HSujLjgTeoxHrMR2muDW2dKdxqCGMc1KbeyGcmjZZAizJTFwu7CWLDmLv6O1ceWYrhfuLFJO+umYMddk2XMhw==
workbox-range-requests@^6.0.2:
dependencies:
version "6.0.2"
workbox-core "^5.1.4"
resolved "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.0.2.tgz#3b50cbe8ddaaed7e3bfaa2dfdcd6a22e02fe7770"
integrity sha512-qCrDbH9AzDbCErde71Nys2iNZO9I9M9Jgl/9/Q67dGQVwFsEq73SuIzS2DGIBKqtIdC5QUigC3d7XJONajclUQ==
workbox-routing@^5.1.4:
dependencies:
version "5.1.4"
workbox-core "^6.0.2"
resolved "https://registry.npmjs.org/workbox-routing/-/workbox-routing-5.1.4.tgz#3e8cd86bd3b6573488d1a2ce7385e547b547e970"
integrity sha512-8ljknRfqE1vEQtnMtzfksL+UXO822jJlHTIR7+BtJuxQ17+WPZfsHqvk1ynR/v0EHik4x2+826Hkwpgh4GKDCw==
workbox-recipes@^6.0.2:
dependencies:
version "6.0.2"
workbox-core "^5.1.4"
resolved "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.0.2.tgz#ad4b3f26a71a7396004c4f617af318f3fd072208"
integrity sha512-ewZIHO4jYE6bnEeUIYS6joQy3l+MydpOsVr2F6EpE8ps++z1ScbSdLtJU+yu6WuO3lH44HFZLeFxYQqYm50QAA==
workbox-strategies@^5.1.4:
dependencies:
version "5.1.4"
workbox-cacheable-response "^6.0.2"
resolved "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-5.1.4.tgz#96b1418ccdfde5354612914964074d466c52d08c"
workbox-core "^6.0.2"
integrity sha512-VVS57LpaJTdjW3RgZvPwX0NlhNmscR7OQ9bP+N/34cYMDzXLyA6kqWffP6QKXSkca1OFo/v6v7hW7zrrguo6EA==
workbox-expiration "^6.0.2"
dependencies:
workbox-precaching "^6.0.2"
workbox-core "^5.1.4"
workbox-routing "^6.0.2"
workbox-routing "^5.1.4"
workbox-strategies "^6.0.2"
workbox-streams@^5.1.4:
workbox-routing@^6.0.2:
version "5.1.4"
version "6.0.2"
resolved "https://registry.npmjs.org/workbox-streams/-/workbox-streams-5.1.4.tgz#05754e5e3667bdc078df2c9315b3f41210d8cac0"
resolved "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.0.2.tgz#8380bc322a2b1c44978df8ff6ae4e4d723f4e3f8"
integrity sha512-xU8yuF1hI/XcVhJUAfbQLa1guQUhdLMPQJkdT0kn6HP5CwiPOGiXnSFq80rAG4b1kJUChQQIGPrq439FQUNVrw==
integrity sha512-iQ9ch3fL1YpztDLfHNURaHQ0ispgPCdzWmZZhtSHUyy/+YkTlIiDVTbOQCIpHIrWlKQiim6X3K2ItIy1FW9+wA==
dependencies:
dependencies:
workbox-core "^5.1.4"
workbox-core "^6.0.2"
workbox-routing "^5.1.4"
workbox-strategies@^6.0.2:
workbox-sw@^5.1.4:
version "6.0.2"
version "5.1.4"
resolved "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.0.2.tgz#f4383e2e5d46c1546e6e08048c9f5c9a7beb5137"
resolved "https://registry.npmjs.org/workbox-sw/-/workbox-sw-5.1.4.tgz#2bb34c9f7381f90d84cef644816d45150011d3db"
integrity sha512-HjLnYCVS60U7OKhl5NIq8NAQXrotJQRDakmIONnRlQIlP2If/kAiQSUP3QCHMq4EeXGiF+/CdlR1/bhYBHZzZg==
integrity sha512-9xKnKw95aXwSNc8kk8gki4HU0g0W6KXu+xks7wFuC7h0sembFnTrKtckqZxbSod41TDaGh+gWUA5IRXrL0ECRA==
dependencies:
workbox-core "^6.0.2"
workbox-window@^5.1.4:
version "5.1.4"
workbox-streams@^6.0.2:
resolved "https://registry.npmjs.org/workbox-window/-/workbox-window-5.1.4.tgz#2740f7dea7f93b99326179a62f1cc0ca2c93c863"
version "6.0.2"
integrity sha512-vXQtgTeMCUq/4pBWMfQX8Ee7N2wVC4Q7XYFqLnfbXJ2hqew/cU1uMTD2KqGEgEpE4/30luxIxgE+LkIa8glBYw==
resolved "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.0.2.tgz#07c19025af309ad3475e737018a05ed538bffacd"
dependencies:
integrity sha512-bckftu/iMlg5LFXPZ6NX/FUc/w4illgxSuwtsZkQAO6Uen1EeegjfLyenO01/dwoyc3D/AlZepMdhv87XhE7HQ==
workbox-core "^5.1.4"
dependencies:
workbox-core "^6.0.2"
workbox-routing "^6.0.2"
workbox-sw@^6.0.2:
version "6.0.2"
resolved "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.0.2.tgz#cd1b8b02ceaaf1abe5804936158a87ec605d271e"
integrity sha512-EoOjbyy5bpoBoSqt2PIeDOZ/JJ41f+WJjb979PkfIUWw4F+F/w2uKJJrMA5fk+nWnVge83Fwy8nF3dWNsqOrdg==
workbox-window@^6.0.2:
version "6.0.2"
resolved "https://registry.npmjs.org/workbox-window/-/workbox-window-6.0.2.tgz#9b47fdb7c088aa4e8b7d0c6cfda17c8bfca6bf7f"
integrity sha512-I/X+qUh1AwN9x/MxFbXsPn7DA27BMtzkXo55w1tBD8V54fv8nUCeC5E4RpXt/mlgdSwBztnURCQTWsdhTrSUjg==
dependencies:
workbox-core "^6.0.2"
wrap-ansi@^5.1.0:
wrap-ansi@^5.1.0:
version "5.1.0"
version "5.1.0"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment