fan-components 1.0.8 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.en.md +141 -0
- package/README.md +141 -0
- package/dist/components/Dropdown/index.d.ts +4 -0
- package/dist/components/Dropdown/index.d.ts.map +1 -0
- package/dist/components/Dropdown/src/dropdown.d.ts +21 -0
- package/dist/components/Dropdown/src/dropdown.d.ts.map +1 -0
- package/dist/components/Dropdown/src/dropdown.vue.d.ts +110 -0
- package/dist/components/Dropdown/src/dropdown.vue.d.ts.map +1 -0
- package/dist/components/Form/index.d.ts +4 -0
- package/dist/components/Form/index.d.ts.map +1 -0
- package/dist/components/Form/src/Form.vue.d.ts +23 -0
- package/dist/components/Form/src/Form.vue.d.ts.map +1 -0
- package/dist/components/Form/src/FormItem.vue.d.ts +23 -0
- package/dist/components/Form/src/FormItem.vue.d.ts.map +1 -0
- package/dist/components/Form/src/form.d.ts +47 -0
- package/dist/components/Form/src/form.d.ts.map +1 -0
- package/dist/components/Input/index.d.ts +4 -0
- package/dist/components/Input/index.d.ts.map +1 -0
- package/dist/components/Input/src/Input.d.ts +25 -0
- package/dist/components/Input/src/Input.d.ts.map +1 -0
- package/dist/components/Input/src/Input.vue.d.ts +114 -0
- package/dist/components/Input/src/Input.vue.d.ts.map +1 -0
- package/dist/components/Message/index.d.ts +3 -0
- package/dist/components/Message/index.d.ts.map +1 -0
- package/dist/components/Message/src/message.d.ts +21 -0
- package/dist/components/Message/src/message.d.ts.map +1 -0
- package/dist/components/Message/src/message.vue.d.ts +93 -0
- package/dist/components/Message/src/message.vue.d.ts.map +1 -0
- package/dist/components/Message/src/methods.d.ts +24 -0
- package/dist/components/Message/src/methods.d.ts.map +1 -0
- package/dist/components/Select/index.d.ts +4 -0
- package/dist/components/Select/index.d.ts.map +1 -0
- package/dist/components/Select/src/select.d.ts +35 -0
- package/dist/components/Select/src/select.d.ts.map +1 -0
- package/dist/components/Select/src/select.vue.d.ts +105 -0
- package/dist/components/Select/src/select.vue.d.ts.map +1 -0
- package/dist/components/Switch/index.d.ts +4 -0
- package/dist/components/Switch/index.d.ts.map +1 -0
- package/dist/components/Switch/src/switch.d.ts +17 -0
- package/dist/components/Switch/src/switch.d.ts.map +1 -0
- package/dist/components/Switch/src/switch.vue.d.ts +90 -0
- package/dist/components/Switch/src/switch.vue.d.ts.map +1 -0
- package/dist/components/Tooltip/index.d.ts +4 -0
- package/dist/components/Tooltip/index.d.ts.map +1 -0
- package/dist/components/Tooltip/src/tooltip.d.ts +20 -0
- package/dist/components/Tooltip/src/tooltip.d.ts.map +1 -0
- package/dist/components/Tooltip/src/tooltip.vue.d.ts +91 -0
- package/dist/components/Tooltip/src/tooltip.vue.d.ts.map +1 -0
- package/dist/components/index.d.ts +7 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/types.d.ts +8 -1
- package/dist/theme-chalk/index.css +1 -1
- package/dist/theme-chalk/package.json +2 -2
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/rander-vnode.d.ts +8 -0
- package/dist/utils/rander-vnode.d.ts.map +1 -0
- package/dist/utils/use-click-outside.d.ts +5 -0
- package/dist/utils/use-click-outside.d.ts.map +1 -0
- package/dist/utils/use-event-listener.d.ts +4 -0
- package/dist/utils/use-event-listener.d.ts.map +1 -0
- package/dist/utils/use-zIndex.d.ts +8 -0
- package/dist/utils/use-zIndex.d.ts.map +1 -0
- package/dist/utils/with-install.d.ts +4 -0
- package/dist/utils/with-install.d.ts.map +1 -0
- package/package.json +10 -6
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
2
|
+
content: {
|
|
3
|
+
type: StringConstructor;
|
|
4
|
+
required: false;
|
|
5
|
+
};
|
|
6
|
+
trigger: {
|
|
7
|
+
type: StringConstructor;
|
|
8
|
+
required: false;
|
|
9
|
+
default: string;
|
|
10
|
+
};
|
|
11
|
+
placement: {
|
|
12
|
+
type: StringConstructor;
|
|
13
|
+
required: false;
|
|
14
|
+
default: string;
|
|
15
|
+
};
|
|
16
|
+
manual: {
|
|
17
|
+
type: BooleanConstructor;
|
|
18
|
+
required: false;
|
|
19
|
+
};
|
|
20
|
+
popperOptions: {
|
|
21
|
+
type: ObjectConstructor;
|
|
22
|
+
required: false;
|
|
23
|
+
};
|
|
24
|
+
transition: {
|
|
25
|
+
type: StringConstructor;
|
|
26
|
+
required: false;
|
|
27
|
+
default: string;
|
|
28
|
+
};
|
|
29
|
+
openDelay: {
|
|
30
|
+
type: NumberConstructor;
|
|
31
|
+
required: false;
|
|
32
|
+
default: number;
|
|
33
|
+
};
|
|
34
|
+
closeDelay: {
|
|
35
|
+
type: NumberConstructor;
|
|
36
|
+
required: false;
|
|
37
|
+
default: number;
|
|
38
|
+
};
|
|
39
|
+
}>, (_ctx: any, _cache: any) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
40
|
+
[key: string]: any;
|
|
41
|
+
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("visible-change" | "click-outside")[], "visible-change" | "click-outside", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
42
|
+
content: {
|
|
43
|
+
type: StringConstructor;
|
|
44
|
+
required: false;
|
|
45
|
+
};
|
|
46
|
+
trigger: {
|
|
47
|
+
type: StringConstructor;
|
|
48
|
+
required: false;
|
|
49
|
+
default: string;
|
|
50
|
+
};
|
|
51
|
+
placement: {
|
|
52
|
+
type: StringConstructor;
|
|
53
|
+
required: false;
|
|
54
|
+
default: string;
|
|
55
|
+
};
|
|
56
|
+
manual: {
|
|
57
|
+
type: BooleanConstructor;
|
|
58
|
+
required: false;
|
|
59
|
+
};
|
|
60
|
+
popperOptions: {
|
|
61
|
+
type: ObjectConstructor;
|
|
62
|
+
required: false;
|
|
63
|
+
};
|
|
64
|
+
transition: {
|
|
65
|
+
type: StringConstructor;
|
|
66
|
+
required: false;
|
|
67
|
+
default: string;
|
|
68
|
+
};
|
|
69
|
+
openDelay: {
|
|
70
|
+
type: NumberConstructor;
|
|
71
|
+
required: false;
|
|
72
|
+
default: number;
|
|
73
|
+
};
|
|
74
|
+
closeDelay: {
|
|
75
|
+
type: NumberConstructor;
|
|
76
|
+
required: false;
|
|
77
|
+
default: number;
|
|
78
|
+
};
|
|
79
|
+
}>> & Readonly<{
|
|
80
|
+
"onVisible-change"?: (...args: any[]) => any;
|
|
81
|
+
"onClick-outside"?: (...args: any[]) => any;
|
|
82
|
+
}>, {
|
|
83
|
+
trigger: string;
|
|
84
|
+
placement: string;
|
|
85
|
+
manual: boolean;
|
|
86
|
+
transition: string;
|
|
87
|
+
openDelay: number;
|
|
88
|
+
closeDelay: number;
|
|
89
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
90
|
+
export default _default;
|
|
91
|
+
//# sourceMappingURL=tooltip.vue?vue&type=script&setup=true&lang.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.vue?vue&type=script&setup=true&lang.d.ts","sourceRoot":"","sources":["../../../../packages/components/Tooltip/src/tooltip.vue?vue&type=script&setup=true&lang.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAgJc,GAAG,UAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAtI7B,wBA4KE"}
|
|
@@ -2,6 +2,13 @@ import type { Plugin } from "vue";
|
|
|
2
2
|
export { FFButton } from "./Button";
|
|
3
3
|
export { FFIcon } from "./Icon";
|
|
4
4
|
export { FFCollapse, FFCollapseItem } from "./Collapse";
|
|
5
|
+
export { FfForm, FfFormItem } from "./Form";
|
|
6
|
+
export { FfInput } from "./Input";
|
|
7
|
+
export { createMessage } from "./Message";
|
|
8
|
+
export { FfTooltip } from "./Tooltip";
|
|
9
|
+
export { FfDropdown } from "./Dropdown";
|
|
10
|
+
export { FfSelect } from "./Select";
|
|
11
|
+
export { FfSwitch } from "./Switch";
|
|
5
12
|
declare const ff: Plugin;
|
|
6
13
|
export default ff;
|
|
7
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAO,MAAM,EAAE,MAAM,KAAK,CAAC;AASvC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAO,MAAM,EAAE,MAAM,KAAK,CAAC;AASvC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAkCpC,QAAA,MAAM,EAAE,EAAE,MAAoB,CAAC;AAC/B,eAAe,EAAE,CAAC"}
|
package/dist/components/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{library as e}from"@fortawesome/fontawesome-svg-core";import{fas as t}from"@fortawesome/free-solid-svg-icons";import{FontAwesomeIcon as o}from"@fortawesome/vue-fontawesome";import{defineComponent as r,useAttrs as i,computed as l,openBlock as a,createElementBlock as n,mergeProps as s,createVNode as d,unref as p,normalizeProps as u,guardReactiveProps as c,onMounted as f,ref as y,normalizeClass as m,createBlock as v,createCommentVNode as q,createElementVNode as g,renderSlot as b,watch as h,provide as B,inject as _,createTextVNode as S,toDisplayString as $,Transition as w,toHandlers as x,withCtx as C,withDirectives as k,vShow as I}from"vue";import{withInstall as O}from"@fan-components/utils";var j=r({name:"FfIcon",inheritAttrs:!1,__name:"Icon",props:{border:{type:Boolean,required:!1},fixedWidth:{type:Boolean,required:!1},flip:{type:[String,Boolean],required:!1},icon:{type:[Object,Array,String],required:!0},mask:{type:[Object,Array,String],required:!1},listItem:{type:Boolean,required:!1},pull:{type:String,required:!1},pulse:{type:Boolean,required:!1},rotation:{type:[Number,String],required:!1},swapOpacity:{type:Boolean,required:!1},size:{type:String,required:!1},spin:{type:Boolean,required:!1},transform:{type:[Object,String],required:!1},symbol:{type:[Boolean,String],required:!1},title:{type:String,required:!1},inverse:{type:Boolean,required:!1},bounce:{type:Boolean,required:!1},shake:{type:Boolean,required:!1},beat:{type:Boolean,required:!1},fade:{type:Boolean,required:!1},beatFade:{type:Boolean,required:!1},spinPulse:{type:Boolean,required:!1},spinReverse:{type:Boolean,required:!1}},setup(e){const t=i(),r=e,f=l(()=>Object.fromEntries(Object.entries(r).filter(([,e])=>void 0!==e))),y=l(()=>{const e={};return t.color&&"string"==typeof t.color&&(e.color=t.color),e});return(e,t)=>(a(),n("i",s({class:["ff-icon",{[`ff-icon--${e.$attrs.type}`]:e.$attrs.type}],style:y.value},e.$attrs),[d(p(o),u(c(f.value)),null,16)],16))}});const F=["disabled","autofocus","type"];const V=O(r({name:"FfButton",__name:"button",props:{type:{type:String,required:!1},size:{type:String,required:!1},plain:{type:Boolean,required:!1},round:{type:Boolean,required:!1},circle:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},nativeType:{type:String,required:!1,default:"button"},autofocus:{type:Boolean,required:!1},icon:{type:String,required:!1},loading:{type:Boolean,required:!1}},setup(e,{expose:t}){f(()=>{});const o=y();return t({ref:o}),(t,r)=>(a(),n("button",{ref_key:"_ref",ref:o,class:m(["ff-button",{[`ff-button--${e.type}`]:e.type,[`ff-button--${e.size}`]:e.size,"is-plain":e.plain,"is-round":e.round,"is-circle":e.circle,"is-disabled":e.disabled,"is-loading":e.loading}]),disabled:e.disabled||e.loading,autofocus:e.autofocus,type:e.nativeType},[e.loading?(a(),v(j,{key:0,icon:"spinner",spin:""})):q("v-if",!0),e.icon?(a(),v(j,{key:1,icon:e.icon},null,8,["icon"])):q("v-if",!0),g("span",null,[b(t.$slots,"default")])],10,F))}}));e.add(t);const z=O(j),A=Symbol("collapseContextKey"),E={class:"ff-collapse"};var N=r({name:"FfCollapse",__name:"Collapse",props:{modelValue:{type:Array,required:!0},accordion:{type:Boolean,required:!1}},emits:["update:modelValue","change"],setup(e,{emit:t}){const o=e,r=t,i=y(o.modelValue);o.accordion&&i.value.length>1&&console.warn("accordion mode should only have one active item");return h(()=>o.modelValue,e=>{i.value=e}),B(A,{activeNames:i,handleItemClick:e=>{let t=[...i.value];if(o.accordion)t=i.value[0]===e?[]:[e],i.value=t;else{const o=t.indexOf(e);o>-1?t.splice(o,1):t.push(e),i.value=t}r("update:modelValue",t),r("change",t)}}),(e,t)=>(a(),n("div",E,[b(e.$slots,"default")]))}});const H=["id"],L={class:"ff-collapse-item__wrapper"},T=["id"];var K=r({name:"FfCollapseItem",__name:"CollapseItem",props:{name:{type:[String,Number],required:!0},title:{type:String,required:!1},disabled:{type:Boolean,required:!1}},setup(e){const t=e,o=_(A),r=l(()=>o?.activeNames.value.includes(t.name)),i=()=>{t.disabled||o?.handleItemClick(t.name)},p={beforeEnter(e){e.style.height="0px",e.style.overflow="hidden"},enter(e){e.style.height=`${e.scrollHeight}px`},afterEnter(e){e.style.height="",e.style.overflow=""},beforeLeave(e){e.style.height=`${e.scrollHeight}px`,e.style.overflow="hidden"},leave(e){e.style.height="0px"},afterLeave(e){e.style.height="",e.style.overflow=""}};return(t,o)=>(a(),n("div",{class:m(["ff-collapse-item",{"is-disabled":e.disabled}])},[g("div",{id:`item-header-${e.name}`,class:m([{"is-disabled":e.disabled,"is-active":r.value},"ff-collapse-item__header"]),onClick:i},[b(t.$slots,"title",{},()=>[S($(e.title),1)]),d(j,{icon:"angle-right",class:"header-angle"})],10,H),d(w,s({name:"slide"},x(p),{persisted:""}),{default:C(()=>[k(g("div",L,[g("div",{id:`item-content-${e.name}`,class:"ff-collapse-item__content"},[b(t.$slots,"default")],8,T)],512),[[I,r.value]])]),_:3},16)],2))}});const P=O(N,{CollapseItem:K}),R=K;e.add(t);const W=[V,z,o,P],D={install:e=>{W.forEach(t=>{e.component(t?.name||"",t)})}};export{V as FFButton,P as FFCollapse,R as FFCollapseItem,z as FFIcon,D as default};
|
|
1
|
+
import{library as e}from"@fortawesome/fontawesome-svg-core";import{fas as t}from"@fortawesome/free-solid-svg-icons";import{FontAwesomeIcon as l}from"@fortawesome/vue-fontawesome";import{defineComponent as o,useAttrs as r,computed as a,openBlock as i,createElementBlock as n,mergeProps as s,createVNode as d,unref as u,normalizeProps as p,guardReactiveProps as c,onMounted as f,ref as v,normalizeClass as m,createBlock as y,createCommentVNode as g,createElementVNode as h,renderSlot as b,isRef as _,watch as q,onBeforeUnmount as x,onUnmounted as k,provide as w,inject as S,createTextVNode as V,toDisplayString as B,Transition as I,toHandlers as $,withCtx as C,withDirectives as O,vShow as F,reactive as N,Fragment as M,vModelDynamic as E,withModifiers as j,vModelText as D,nextTick as z,useTemplateRef as A,normalizeStyle as L,shallowReactive as T,h as R,render as H,renderList as P,withKeys as K}from"vue";import U from"async-validator";import{isNil as Z,debounce as W,isFunction as G}from"lodash-es";import{createPopper as J}from"@popperjs/core";var Q=o({name:"FfIcon",inheritAttrs:!1,__name:"Icon",props:{border:{type:Boolean,required:!1},fixedWidth:{type:Boolean,required:!1},flip:{type:[String,Boolean],required:!1},icon:{type:[Object,Array,String],required:!0},mask:{type:[Object,Array,String],required:!1},listItem:{type:Boolean,required:!1},pull:{type:String,required:!1},pulse:{type:Boolean,required:!1},rotation:{type:[Number,String],required:!1},swapOpacity:{type:Boolean,required:!1},size:{type:String,required:!1},spin:{type:Boolean,required:!1},transform:{type:[Object,String],required:!1},symbol:{type:[Boolean,String],required:!1},title:{type:String,required:!1},inverse:{type:Boolean,required:!1},bounce:{type:Boolean,required:!1},shake:{type:Boolean,required:!1},beat:{type:Boolean,required:!1},fade:{type:Boolean,required:!1},beatFade:{type:Boolean,required:!1},spinPulse:{type:Boolean,required:!1},spinReverse:{type:Boolean,required:!1}},setup(e){const t=r(),o=e,f=a(()=>Object.fromEntries(Object.entries(o).filter(([,e])=>void 0!==e))),v=a(()=>{const e={};return t.color&&"string"==typeof t.color&&(e.color=t.color),e});return(e,t)=>(i(),n("i",s({class:["ff-icon",{[`ff-icon--${e.$attrs.type}`]:e.$attrs.type}],style:v.value},e.$attrs),[d(u(l),p(c(f.value)),null,16)],16))}});const X=["disabled","autofocus","type"];var Y=o({name:"FfButton",__name:"button",props:{type:{type:String,required:!1},size:{type:String,required:!1},plain:{type:Boolean,required:!1},round:{type:Boolean,required:!1},circle:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},nativeType:{type:String,required:!1,default:"button"},autofocus:{type:Boolean,required:!1},icon:{type:String,required:!1},loading:{type:Boolean,required:!1}},setup(e,{expose:t}){f(()=>{});const l=v();return t({ref:l}),(t,o)=>(i(),n("button",{ref_key:"_ref",ref:l,class:m(["ff-button",{[`ff-button--${e.type}`]:e.type,[`ff-button--${e.size}`]:e.size,"is-plain":e.plain,"is-round":e.round,"is-circle":e.circle,"is-disabled":e.disabled,"is-loading":e.loading}]),disabled:e.disabled||e.loading,autofocus:e.autofocus,type:e.nativeType},[e.loading?(i(),y(Q,{key:0,icon:"spinner",spin:""})):g("v-if",!0),e.icon?(i(),y(Q,{key:1,icon:e.icon},null,8,["icon"])):g("v-if",!0),h("span",null,[b(t.$slots,"default")])],10,X))}});const ee=(e,t)=>(e.install=function(l){for(const o of[e,...Object.values(t??{})])l.component(o.name,o)},e),te=o(e=>()=>e.vNode,{props:{vNode:{type:[String,Object],required:!0}}}),le=v(0);const oe=ee(Y);e.add(t);const re=ee(Q),ae=Symbol("collapseContextKey"),ie={class:"ff-collapse"};var ne=o({name:"FfCollapse",__name:"Collapse",props:{modelValue:{type:Array,required:!0},accordion:{type:Boolean,required:!1}},emits:["update:modelValue","change"],setup(e,{emit:t}){const l=e,o=t,r=v(l.modelValue);l.accordion&&r.value.length>1&&console.warn("accordion mode should only have one active item");return q(()=>l.modelValue,e=>{r.value=e}),w(ae,{activeNames:r,handleItemClick:e=>{let t=[...r.value];if(l.accordion)t=r.value[0]===e?[]:[e],r.value=t;else{const l=t.indexOf(e);l>-1?t.splice(l,1):t.push(e),r.value=t}o("update:modelValue",t),o("change",t)}}),(e,t)=>(i(),n("div",ie,[b(e.$slots,"default")]))}});const se=["id"],de={class:"ff-collapse-item__wrapper"},ue=["id"];var pe=o({name:"FfCollapseItem",__name:"CollapseItem",props:{name:{type:[String,Number],required:!0},title:{type:String,required:!1},disabled:{type:Boolean,required:!1}},setup(e){const t=e,l=S(ae),o=a(()=>l?.activeNames.value.includes(t.name)),r=()=>{t.disabled||l?.handleItemClick(t.name)},u={beforeEnter(e){e.style.height="0px",e.style.overflow="hidden"},enter(e){e.style.height=`${e.scrollHeight}px`},afterEnter(e){e.style.height="",e.style.overflow=""},beforeLeave(e){e.style.height=`${e.scrollHeight}px`,e.style.overflow="hidden"},leave(e){e.style.height="0px"},afterLeave(e){e.style.height="",e.style.overflow=""}};return(t,l)=>(i(),n("div",{class:m(["ff-collapse-item",{"is-disabled":e.disabled}])},[h("div",{id:`item-header-${e.name}`,class:m([{"is-disabled":e.disabled,"is-active":o.value},"ff-collapse-item__header"]),onClick:r},[b(t.$slots,"title",{},()=>[V(B(e.title),1)]),d(Q,{icon:"angle-right",class:"header-angle"})],10,se),d(I,s({name:"slide"},$(u),{persisted:""}),{default:C(()=>[O(h("div",de,[h("div",{id:`item-content-${e.name}`,class:"ff-collapse-item__content"},[b(t.$slots,"default")],8,ue)],512),[[F,o.value]])]),_:3},16)],2))}});const ce=ee(ne,{CollapseItem:pe}),fe=pe,ve=Symbol("formContextKey"),me=Symbol("formItemContextKey"),ye={class:"ff-form"};var ge=o({name:"FfForm",__name:"Form",props:{model:{type:Object,required:!0},rules:{type:Object,required:!0}},setup(e,{expose:t}){const l=[];return w(ve,{...e,addField:e=>{l.push(e)},removeField:e=>{e.prop&&l.splice(l.indexOf(e),1)}}),t({validate:async()=>{let e={};console.log("fields",l);for(const t of l)try{await t.validate("")}catch(t){const l=t;e={...e,...l.fields}}return 0===Object.keys(e).length||Promise.reject(e)},resetFields:(e=[])=>{(e.length>0?l.filter(t=>e.includes(t.prop)):l).forEach(e=>e.resetField())},clearValidate:(e=[])=>{(e.length>0?l.filter(t=>e.includes(t.prop)):l).forEach(e=>e.clearValidate())}}),(e,t)=>(i(),n("form",ye,[b(e.$slots,"default")]))}});const he={class:"ff-form-item__label"},be={class:"ff-form-item__content"},_e={key:0,class:"ff-form-item__error-msg"};var qe=o({name:"FfFormItem",__name:"FormItem",props:{label:{type:String,required:!0},prop:{type:String,required:!1}},setup(e,{expose:t}){const l=e,o=S(ve),r=N({state:"init",errorMsg:"",loading:!1});let s=null;const d=a(()=>{const e=o?.model;return e&&l.prop&&!Z(e[l.prop])?e[l.prop]:null}),u=a(()=>{const e=o?.rules;return e&&l.prop&&e[l.prop]?e[l.prop]:[]}),p=a(()=>u.value?.some(e=>e.required)),c=async e=>{const t=l.prop,o=(e=>{const t=u.value;return t?t.filter(t=>!t.trigger||!e||t.trigger&&t.trigger===e):[]})(e);if(0===o.length)return!0;if(t){const e=new U({[t]:o});return r.loading=!0,e.validate({[t]:d.value}).then(()=>{r.state="success"}).catch(e=>{const{errors:t}=e;return r.state="error",r.errorMsg=t&&t.length>0&&t[0]?.message||"",console.log(e.errors),Promise.reject(e)}).finally(()=>{r.loading=!1})}},v=()=>{r.state="init",r.errorMsg="",r.loading=!1},y=()=>{v();const e=o?.model;e&&l.prop&&!Z(e[l.prop])&&(e[l.prop]=s)},_={validate:c,prop:l.prop||"",clearValidate:v,resetField:y};return w(me,_),f(()=>{l.prop&&(o?.addField(_),s=d.value)}),k(()=>{o?.removeField(_)}),t({validateStatus:r,validate:c,resetField:y,clearValidate:v}),(t,l)=>(i(),n("div",{class:m(["ff-form-item",{"is-error":"error"===r.state,"is-success":"success"===r.state,"is-loading":r.loading,"is-required":p.value}])},[h("label",he,[b(t.$slots,"label",{label:e.label},()=>[V(B(e.label),1)])]),h("div",be,[b(t.$slots,"default",{validate:c}),"error"===r.state?(i(),n("div",_e,B(r.errorMsg),1)):g("v-if",!0)])],2))}});const xe=ee(ge,{FormItem:qe}),ke=qe,we={key:0,class:"ff-input__prepend"},Se={class:"ff-input__wrapper"},Ve={key:0,class:"ff-input__prefix"},Be=["type","disabled","readonly","autocomplete","placeholder","autofocus","form"],Ie={key:1,class:"ff-input__append"},$e=["disabled","readonly","autocomplete","placeholder","autofocus","form"];var Ce=o({name:"FfInput",inheritAttrs:!1,__name:"Input",props:{type:{type:String,required:!1,default:"text"},modelValue:{type:String,required:!0},size:{type:String,required:!1},disabled:{type:Boolean,required:!1},clearable:{type:Boolean,required:!1},showPassword:{type:Boolean,required:!1},placeholder:{type:String,required:!1},readonly:{type:Boolean,required:!1},autocomplete:{type:String,required:!1,default:"off"},autofocus:{type:Boolean,required:!1},form:{type:String,required:!1}},emits:["update:modelValue","input","change","focus","blur","clear"],setup(e,{expose:t,emit:l}){const o=e,d=l,p=r(),c=v(o.modelValue),f=v(!1),_=v(!1),x=v(),k=S(me,void 0),w=e=>{k?.validate(e).catch(e=>console.log(e.errors))},V=a(()=>o.clearable&&!o.disabled&&!!c.value&&f.value),B=a(()=>o.showPassword&&!o.disabled&&!!c.value),I=()=>{_.value=!_.value},$=()=>{},C=async()=>{await z(),x.value.focus()},F=()=>{d("update:modelValue",c.value),d("input",c.value),w("input")},N=()=>{d("change",c.value),w("change")},A=e=>{f.value=!0,d("focus",e)},L=e=>{console.log("blur triggered"),f.value=!1,d("blur",e),w("blur")},T=()=>{console.log("clear triggered"),c.value="",d("update:modelValue",""),d("clear"),d("input",""),d("change","")};return q(()=>o.modelValue,e=>{c.value=e}),t({ref:x}),(t,l)=>(i(),n("div",{class:m(["ff-input",{[`ff-input--${e.type}`]:e.type,[`ff-input--${e.size}`]:e.size,"is-disabled":e.disabled,"is-prepend":t.$slots.prepend,"is-append":t.$slots.append,"is-prefix":t.$slots.prefix,"is-suffix":t.$slots.suffix,"is-focus":f.value}])},[g(" input "),"textarea"!==e.type?(i(),n(M,{key:0},[g(" prepend slot "),t.$slots.prepend?(i(),n("div",we,[b(t.$slots,"prepend")])):g("v-if",!0),h("div",Se,[g(" prefix slot "),t.$slots.prefix?(i(),n("span",Ve,[b(t.$slots,"prefix")])):g("v-if",!0),O(h("input",s({class:"ff-input__inner",type:e.showPassword?_.value?"text":"password":e.type,ref_key:"inputRef",ref:x},u(p),{disabled:e.disabled,readonly:e.readonly,autocomplete:e.autocomplete,placeholder:e.placeholder,autofocus:e.autofocus,form:e.form,"onUpdate:modelValue":l[0]||(l[0]=e=>c.value=e),onInput:F,onChange:N,onFocus:A,onBlur:L}),null,16,Be),[[E,c.value]]),g(" suffix slot "),t.$slots.suffix||V.value||B.value?(i(),n("span",{key:1,class:"ff-input__suffix",onClick:C},[b(t.$slots,"suffix"),V.value?(i(),y(Q,{key:0,icon:"circle-xmark",class:"ff-input__clear",onClick:T,onMousedown:j($,["prevent"])})):g("v-if",!0),B.value&&_.value?(i(),y(Q,{key:1,icon:"eye",class:"ff-input__password",onClick:I})):g("v-if",!0),B.value&&!_.value?(i(),y(Q,{key:2,icon:"eye-slash",class:"ff-input__password",onClick:I})):g("v-if",!0)])):g("v-if",!0)]),g(" append slot "),t.$slots.append?(i(),n("div",Ie,[b(t.$slots,"append")])):g("v-if",!0)],64)):(i(),n(M,{key:1},[g(" textarea "),O(h("textarea",s({class:"ff-textarea__wrapper"},u(p),{ref_key:"inputRef",ref:x,disabled:e.disabled,readonly:e.readonly,autocomplete:e.autocomplete,placeholder:e.placeholder,autofocus:e.autofocus,form:e.form,"onUpdate:modelValue":l[1]||(l[1]=e=>c.value=e),onInput:F,onChange:N,onFocus:A,onBlur:L}),null,16,$e),[[D,c.value]])],64))],2))}});const Oe=ee(Ce),Fe={class:"ff-message__content"},Ne={key:0,class:"ff-message__close"};var Me=o({name:"FfMessage",inheritAttrs:!1,__name:"message",props:{message:{type:[String,Object],required:!1},duration:{type:Number,required:!1,default:3e3},showClose:{type:Boolean,required:!1},type:{type:String,required:!1,default:"info"},onDestroy:{type:Function,required:!0},id:{type:String,required:!0},zIndex:{type:Number,required:!0},offset:{type:Number,required:!1,default:20},transitionName:{type:String,required:!1,default:"fade-up"}},setup(e,{expose:t}){const l=e,o=v(!1),r=A("messageRef"),s=v(0),p=a(()=>ze(l.id)),c=a(()=>l.offset+p.value),k=a(()=>s.value+c.value),w=a(()=>({top:c.value+"px",zIndex:l.zIndex}));let S;function V(){0!==l.duration&&(S=setTimeout(()=>{o.value=!1},l.duration))}function B(){clearTimeout(S)}var $,N,M;function E(){l.onDestroy()}function D(){s.value=r.value.getBoundingClientRect().height}return f(async()=>{o.value=!0,V()}),$=document,N="keydown",M=function(e){"Escape"===e.code&&(o.value=!1)},_($)?q($,(e,t)=>{t?.removeEventListener(N,M),e?.addEventListener(N,M)}):f(()=>{$.addEventListener(N,M)}),x(()=>{u($)?.removeEventListener(N,M)}),t({bottomOffset:k,visible:o}),(t,l)=>(i(),y(I,{name:e.transitionName,onAfterLeave:E,onEnter:D,persisted:""},{default:C(()=>[O(h("div",{class:m(["ff-message",{[`ff-message--${e.type}`]:e.type,"is-close":e.showClose}]),role:"alert",ref_key:"messageRef",ref:r,style:L(w.value),onMouseenter:B,onMouseleave:V},[h("div",Fe,[b(t.$slots,"default",{},()=>[e.message?(i(),y(u(te),{key:0,vNode:e.message},null,8,["vNode"])):g("v-if",!0)])]),e.showClose?(i(),n("div",Ne,[d(Q,{onClick:l[0]||(l[0]=j(e=>o.value=!1,["stop"])),icon:"xmark"})])):g("v-if",!0)],38),[[F,o.value]])]),_:3},8,["name"]))}});let Ee=1;const je=T([]),De=e=>{const{nextZIndex:t}=((e=2e3)=>{const t=v(e),l=a(()=>le.value+t.value);return{currentZIndex:l,nextZIndex:()=>(le.value++,l.value),initialZIndex:t}})(),l="message_"+Ee++,o=document.createElement("div"),r={...e,id:l,zIndex:t(),onDestroy:()=>{const e=je.findIndex(e=>e.id===l);-1!==e&&(je.splice(e,1),H(null,o))}},i=R(Me,r);H(i,o),document.body.appendChild(o.firstElementChild);const n=i.component,s={id:l,vnode:i,vm:n,props:r,destroy:()=>{const e=je.find(e=>e.id===l);e&&(e.vm.exposed.visible.value=!1)}};return je.push(s),s},ze=e=>{const t=je.findIndex(t=>t.id===e);if(console.log("idx",e,t,je.length),t<=0)return 0;{const e=je[t-1];return e?.vm.exposed.bottomOffset.value}};var Ae=o({name:"FfTooltip",__name:"tooltip",props:{content:{type:String,required:!1},trigger:{type:String,required:!1,default:"hover"},placement:{type:String,required:!1,default:"bottom"},manual:{type:Boolean,required:!1},popperOptions:{type:Object,required:!1},transition:{type:String,required:!1,default:"fade"},openDelay:{type:Number,required:!1,default:0},closeDelay:{type:Number,required:!1,default:0}},emits:["visible-change","click-outside"],setup(e,{expose:t,emit:l}){const o=e,r=l,p=v(!1),c=A("popperNode"),m=A("triggerNode"),y=A("popperContainerNode");let _=null,x=N({}),w=N({});const S=a(()=>({placement:o.placement,modifiers:[{name:"offset",options:{offset:[0,9]}}],...o.popperOptions})),O=W(()=>{p.value=!0,r("visible-change",!0)},o.openDelay),F=W(()=>{p.value=!1,r("visible-change",!1)},o.closeDelay),M=()=>{F.cancel(),O()},E=()=>{O.cancel(),F()},j=()=>{p.value?E():M()};((e,t)=>{const l=l=>{e.value&&l.target&&(e.value.contains(l.target)||t(l))};f(()=>{document.addEventListener("click",l)}),k(()=>{document.removeEventListener("click",l)})})(y,()=>{"click"===o.trigger&&p.value&&!o.manual&&E(),p.value&&r("click-outside",!0)});const D=()=>{"hover"===o.trigger?(x.mouseenter=M,w.mouseleave=E):"click"===o.trigger&&(x.click=j)};return o.manual||D(),q(()=>o.manual,e=>{e?(x={},w={}):D()}),q(()=>o.trigger,(e,t)=>{e!==t&&(x={},w={},D())}),q(p,e=>{e&&(m.value&&c.value?_=J(m.value,c.value,S.value):_?.destroy())},{flush:"post"}),k(()=>{_?.destroy()}),t({show:M,hide:E}),(t,l)=>(i(),n("div",s({class:"ff-tooltip",ref_key:"popperContainerNode",ref:y},$(u(w),!0)),[h("div",s({class:"ff-tooltip__trigger",ref_key:"triggerNode",ref:m},$(u(x),!0)),[b(t.$slots,"default")],16),d(I,{name:e.transition},{default:C(()=>[p.value?(i(),n("div",{key:0,class:"ff-tooltip__popper",ref_key:"popperNode",ref:c},[b(t.$slots,"content",{},()=>[V(B(e.content),1)]),l[0]||(l[0]=h("div",{id:"arrow","data-popper-arrow":""},null,-1))],512)):g("v-if",!0)]),_:3},8,["name"])],16))}});const Le=ee(Ae),Te={class:"ff-dropdown"},Re={class:"ff-dropdown__menu"},He={key:0,role:"separator",class:"divided-placeholder"},Pe=["id","onClick"];const Ke=ee(o({name:"FfDropdown",__name:"dropdown",props:{menuOptions:{type:Array,required:!0},hideAfterClick:{type:Boolean,required:!1,default:!0},content:{type:String,required:!1},trigger:{type:String,required:!1,default:"hover"},placement:{type:String,required:!1,default:"bottom"},manual:{type:Boolean,required:!1},popperOptions:{type:Object,required:!1},transition:{type:String,required:!1,default:"fade"},openDelay:{type:Number,required:!1,default:0},closeDelay:{type:Number,required:!1,default:0}},emits:["visible-change","select"],setup(e,{expose:t,emit:l}){const o=e,r=l,a=v(null),s=e=>{r("visible-change",e)};return t({show:()=>a.value?.show(),hide:()=>a.value?.hide()}),(t,l)=>(i(),n("div",Te,[d(Ae,{ref_key:"tooltipRef",ref:a,trigger:e.trigger,placement:e.placement,"popper-options":e.popperOptions??{},"open-delay":e.openDelay,"close-delay":e.closeDelay,manual:e.manual,onVisibleChange:s},{content:C(()=>[h("ul",Re,[(i(!0),n(M,null,P(e.menuOptions,e=>(i(),n(M,{key:e.key},[e.divided?(i(),n("li",He)):g("v-if",!0),h("li",{id:`dropdown-item-${e.key}`,class:m(["ff-dropdown__item",{"is-disabled":e.disabled,"is-divided":e.divided}]),onClick:t=>{var l;(l=e).disabled||(r("select",l),o.hideAfterClick&&a.value?.hide())}},[d(u(te),{vNode:e.label},null,8,["vNode"])],10,Pe)],64))),128))])]),default:C(()=>[b(t.$slots,"default")]),_:3},8,["trigger","placement","popper-options","open-delay","close-delay","manual"])]))}})),Ue={key:0,class:"ff-select__loading"},Ze={key:1,class:"ff-select__nodata"},We={key:2,class:"ff-select__menu"},Ge=["id","onClick"];const Je=ee(o({name:"FfSelect",__name:"select",props:{modelValue:{type:String,required:!0},options:{type:Array,required:!1,default:()=>[]},placeholder:{type:String,required:!1,default:"请选择"},disabled:{type:Boolean,required:!1,default:!1},clearable:{type:Boolean,required:!1},renderLabel:{type:Function,required:!1},filterable:{type:Boolean,required:!1},filterMethod:{type:Function,required:!1},remote:{type:Boolean,required:!1},remoteMethod:{type:Function,required:!1}},emits:["change","update:modelValue","visible-change","clear"],setup(e,{emit:t}){const l=e,o=a(()=>l.remote?300:0),r=t,s=(e=>{const t=l.options.find(t=>t.value===e);return t||null})(l.modelValue),p=v(),c=v(),f=N({inputValue:s?s.label:"",selectedOption:s,mouseHover:!1,loading:!1,highlightIndex:-1}),g=v(!1),h={modifiers:[{name:"offset",options:{offset:[0,9]}},{name:"sameWidth",enabled:!0,fn:({state:e})=>{e.styles.popper.width=`${e.rects.reference.width}px`},phase:"beforeWrite",requires:["computeStyles"]}]},b=v(l.options);q(()=>l.options,e=>{b.value=e});const _=async e=>{if(l.filterable){if(l.filterMethod&&G(l.filterMethod))b.value=l.filterMethod(e);else if(l.remote&&l.remoteMethod&&G(l.remoteMethod)){f.loading=!0;try{b.value=await l.remoteMethod(e)}catch(e){console.error(e),b.value=[]}finally{f.loading=!1}}else b.value=l.options.filter(t=>t.label.includes(e));f.highlightIndex=-1}},x=W(()=>{_(f.inputValue)},o.value),k=a(()=>l.filterable&&f.selectedOption&&g.value?f.selectedOption.label:l.placeholder),w=e=>{e?(l.filterable&&f.selectedOption&&(f.inputValue=""),l.filterable&&_(f.inputValue),p.value.show()):(p.value.hide(),l.filterable&&(f.inputValue=f.selectedOption?f.selectedOption.label:""),f.highlightIndex=-1),g.value=e,r("visible-change",e)},S=e=>{switch(e.key){case"Enter":g.value?f.highlightIndex>-1&&b.value[f.highlightIndex]?O(b.value[f.highlightIndex]):w(!1):w(!0);break;case"Escape":g.value&&w(!1);break;case"ArrowUp":e.preventDefault(),b.value.length>0&&(-1===f.highlightIndex||0===f.highlightIndex?f.highlightIndex=b.value.length-1:f.highlightIndex--);break;case"ArrowDown":e.preventDefault(),b.value.length>0&&(-1===f.highlightIndex||f.highlightIndex===b.value.length-1?f.highlightIndex=0:f.highlightIndex++)}},V=a(()=>l.clearable&&f.mouseHover&&f.selectedOption&&""!==f.inputValue.trim()),B=()=>{f.selectedOption=null,f.inputValue="",r("clear"),r("change",""),r("update:modelValue","")},I=()=>{},$=()=>{l.disabled||(g.value?w(!1):w(!0))},O=e=>{e.disabled||(f.inputValue=e.label,f.selectedOption=e,r("change",e.value),r("update:modelValue",e.value),w(!1),c.value.ref.focus())};return(t,l)=>(i(),n("div",{class:m(["ff-select",{"is-disabled":e.disabled}]),onClick:$,onMouseenter:l[2]||(l[2]=e=>f.mouseHover=!0),onMouseleave:l[3]||(l[3]=e=>f.mouseHover=!1)},[d(Ae,{placement:"bottom-start",ref_key:"tooltipRef",ref:p,popperOptions:h,onClickOutside:l[1]||(l[1]=e=>w(!1)),manual:""},{content:C(()=>[f.loading?(i(),n("div",Ue,[d(Q,{icon:"spinner",spin:""})])):e.filterable&&0===b.value.length?(i(),n("div",Ze,"no matching data")):(i(),n("ul",We,[(i(!0),n(M,null,P(b.value,(t,l)=>(i(),n("li",{key:l,class:m(["ff-select__menu-item",{"is-disabled":t.disabled,"is-selected":f.selectedOption?.value===t.value,"is-highlighted":f.highlightIndex===Number(l)}]),id:`select-item-${t.value}`,onClick:j(e=>O(t),["stop"])},[d(u(te),{vNode:e.renderLabel?e.renderLabel(t):t.label},null,8,["vNode"])],10,Ge))),128))]))]),default:C(()=>[d(Ce,{modelValue:f.inputValue,"onUpdate:modelValue":l[0]||(l[0]=e=>f.inputValue=e),disabled:e.disabled,placeholder:k.value,ref_key:"inputRef",ref:c,readonly:!e.filterable||!g.value,onInput:u(x),onKeydown:S},{suffix:C(()=>[V.value?(i(),y(Q,{key:0,icon:"circle-xmark",class:"ff-input__clear",onMousedown:j(I,["prevent"]),onClick:j(B,["stop"])})):(i(),y(Q,{key:1,icon:"angle-down",class:m(["header-angle",{"is-active":g.value}])},null,8,["class"]))]),_:1},8,["modelValue","disabled","placeholder","readonly","onInput"])]),_:1},512)],34))}})),Qe=["name","disabled"],Xe={class:"ff-switch__core"},Ye={class:"ff-switch__core-inner"},et={key:0,class:"ff-switch__core-inner-text"};const tt=ee(o({name:"FfSwitch",inheritAttrs:!1,__name:"switch",props:{modelValue:{type:[Boolean,String,Number],required:!0},disabled:{type:Boolean,required:!1},activeText:{type:String,required:!1},inactiveText:{type:String,required:!1},activeValue:{type:[Boolean,String,Number],required:!1,default:!0},inactiveValue:{type:[Boolean,String,Number],required:!1,default:!1},name:{type:String,required:!1},id:{type:String,required:!1},size:{type:String,required:!1}},emits:["update:modelValue","change"],setup(e,{emit:t}){const l=e,o=t,r=v(l.modelValue),s=v(),d=a(()=>r.value===l.activeValue),u=()=>{if(l.disabled)return;const e=d.value?l.inactiveValue:l.activeValue;r.value=e,o("update:modelValue",e),o("change",e)};return f(()=>{s.value.checked=d.value}),q(d,e=>{s.value.checked=e}),q(()=>l.modelValue,e=>{r.value=e}),(t,l)=>(i(),n("div",{class:m(["ff-switch",{[`ff-switch--${e.size}`]:e.size,"is-disabled":e.disabled,"is-checked":d.value}]),onClick:u},[h("input",{class:"ff-switch__input",type:"checkbox",role:"switch",ref_key:"input",ref:s,name:e.name,disabled:e.disabled,onKeydown:K(u,["enter"])},null,40,Qe),h("div",Xe,[h("div",Ye,[e.activeText||e.inactiveText?(i(),n("span",et,B(d.value?e.activeText:e.inactiveText),1)):g("v-if",!0)]),l[0]||(l[0]=h("div",{class:"ff-switch__core-action"},null,-1))])],2))}}));e.add(t);const lt=[oe,re,l,ce,fe,xe,ke,Oe,Le,Ke,Je,tt],ot={install:e=>{lt.forEach(t=>{e.component(t?.name||"",t)})}};export{oe as FFButton,ce as FFCollapse,fe as FFCollapseItem,re as FFIcon,Ke as FfDropdown,xe as FfForm,ke as FfFormItem,Oe as FfInput,Je as FfSelect,tt as FfSwitch,Le as FfTooltip,De as createMessage,ot as default};
|
|
@@ -9,4 +9,11 @@ export { FFCollapse, FFCollapseItem } from './Collapse';
|
|
|
9
9
|
|
|
10
10
|
export * from './Button'
|
|
11
11
|
export * from './Collapse'
|
|
12
|
-
export * from './
|
|
12
|
+
export * from './Dropdown'
|
|
13
|
+
export * from './Form'
|
|
14
|
+
export * from './Icon'
|
|
15
|
+
export * from './Input'
|
|
16
|
+
export * from './Message'
|
|
17
|
+
export * from './Select'
|
|
18
|
+
export * from './Switch'
|
|
19
|
+
export * from './Tooltip'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@font-face{font-display:inline;font-family:element-icons;font-style:normal;font-weight:400;src:url(fonts/element-icons.woff) format("woff"),url(fonts/element-icons.ttf) format("truetype")}[class*=ff-icon-]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:element-icons!important;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none;vertical-align:baseline}.ff-icon-ice-cream-round:before{content:"\e6a0"}.ff-icon-ice-cream-square:before{content:"\e6a3"}.ff-icon-lollipop:before{content:"\e6a4"}.ff-icon-potato-strips:before{content:"\e6a5"}.ff-icon-milk-tea:before{content:"\e6a6"}.ff-icon-ice-drink:before{content:"\e6a7"}.ff-icon-ice-tea:before{content:"\e6a9"}.ff-icon-coffee:before{content:"\e6aa"}.ff-icon-orange:before{content:"\e6ab"}.ff-icon-pear:before{content:"\e6ac"}.ff-icon-apple:before{content:"\e6ad"}.ff-icon-cherry:before{content:"\e6ae"}.ff-icon-watermelon:before{content:"\e6af"}.ff-icon-grape:before{content:"\e6b0"}.ff-icon-refrigerator:before{content:"\e6b1"}.ff-icon-goblet-square-full:before{content:"\e6b2"}.ff-icon-goblet-square:before{content:"\e6b3"}.ff-icon-goblet-full:before{content:"\e6b4"}.ff-icon-goblet:before{content:"\e6b5"}.ff-icon-cold-drink:before{content:"\e6b6"}.ff-icon-coffee-cup:before{content:"\e6b8"}.ff-icon-water-cup:before{content:"\e6b9"}.ff-icon-hot-water:before{content:"\e6ba"}.ff-icon-ice-cream:before{content:"\e6bb"}.ff-icon-dessert:before{content:"\e6bc"}.ff-icon-sugar:before{content:"\e6bd"}.ff-icon-tableware:before{content:"\e6be"}.ff-icon-burger:before{content:"\e6bf"}.ff-icon-knife-fork:before{content:"\e6c1"}.ff-icon-fork-spoon:before{content:"\e6c2"}.ff-icon-chicken:before{content:"\e6c3"}.ff-icon-food:before{content:"\e6c4"}.ff-icon-dish-1:before{content:"\e6c5"}.ff-icon-dish:before{content:"\e6c6"}.ff-icon-moon-night:before{content:"\e6ee"}.ff-icon-moon:before{content:"\e6f0"}.ff-icon-cloudy-and-sunny:before{content:"\e6f1"}.ff-icon-partly-cloudy:before{content:"\e6f2"}.ff-icon-cloudy:before{content:"\e6f3"}.ff-icon-sunny:before{content:"\e6f6"}.ff-icon-sunset:before{content:"\e6f7"}.ff-icon-sunrise-1:before{content:"\e6f8"}.ff-icon-sunrise:before{content:"\e6f9"}.ff-icon-heavy-rain:before{content:"\e6fa"}.ff-icon-lightning:before{content:"\e6fb"}.ff-icon-light-rain:before{content:"\e6fc"}.ff-icon-wind-power:before{content:"\e6fd"}.ff-icon-baseball:before{content:"\e712"}.ff-icon-soccer:before{content:"\e713"}.ff-icon-football:before{content:"\e715"}.ff-icon-basketball:before{content:"\e716"}.ff-icon-ship:before{content:"\e73f"}.ff-icon-truck:before{content:"\e740"}.ff-icon-bicycle:before{content:"\e741"}.ff-icon-mobile-phone:before{content:"\e6d3"}.ff-icon-service:before{content:"\e6d4"}.ff-icon-key:before{content:"\e6e2"}.ff-icon-unlock:before{content:"\e6e4"}.ff-icon-lock:before{content:"\e6e5"}.ff-icon-watch:before{content:"\e6fe"}.ff-icon-watch-1:before{content:"\e6ff"}.ff-icon-timer:before{content:"\e702"}.ff-icon-alarm-clock:before{content:"\e703"}.ff-icon-map-location:before{content:"\e704"}.ff-icon-delete-location:before{content:"\e705"}.ff-icon-add-location:before{content:"\e706"}.ff-icon-location-information:before{content:"\e707"}.ff-icon-location-outline:before{content:"\e708"}.ff-icon-location:before{content:"\e79e"}.ff-icon-place:before{content:"\e709"}.ff-icon-discover:before{content:"\e70a"}.ff-icon-first-aid-kit:before{content:"\e70b"}.ff-icon-trophy-1:before{content:"\e70c"}.ff-icon-trophy:before{content:"\e70d"}.ff-icon-medal:before{content:"\e70e"}.ff-icon-medal-1:before{content:"\e70f"}.ff-icon-stopwatch:before{content:"\e710"}.ff-icon-mic:before{content:"\e711"}.ff-icon-copy-document:before{content:"\e718"}.ff-icon-full-screen:before{content:"\e719"}.ff-icon-switch-button:before{content:"\e71b"}.ff-icon-aim:before{content:"\e71c"}.ff-icon-crop:before{content:"\e71d"}.ff-icon-odometer:before{content:"\e71e"}.ff-icon-time:before{content:"\e71f"}.ff-icon-bangzhu:before{content:"\e724"}.ff-icon-close-notification:before{content:"\e726"}.ff-icon-microphone:before{content:"\e727"}.ff-icon-turn-off-microphone:before{content:"\e728"}.ff-icon-position:before{content:"\e729"}.ff-icon-postcard:before{content:"\e72a"}.ff-icon-message:before{content:"\e72b"}.ff-icon-chat-line-square:before{content:"\e72d"}.ff-icon-chat-dot-square:before{content:"\e72e"}.ff-icon-chat-dot-round:before{content:"\e72f"}.ff-icon-chat-square:before{content:"\e730"}.ff-icon-chat-line-round:before{content:"\e731"}.ff-icon-chat-round:before{content:"\e732"}.ff-icon-set-up:before{content:"\e733"}.ff-icon-turn-off:before{content:"\e734"}.ff-icon-open:before{content:"\e735"}.ff-icon-connection:before{content:"\e736"}.ff-icon-link:before{content:"\e737"}.ff-icon-cpu:before{content:"\e738"}.ff-icon-thumb:before{content:"\e739"}.ff-icon-female:before{content:"\e73a"}.ff-icon-male:before{content:"\e73b"}.ff-icon-guide:before{content:"\e73c"}.ff-icon-news:before{content:"\e73e"}.ff-icon-price-tag:before{content:"\e744"}.ff-icon-discount:before{content:"\e745"}.ff-icon-wallet:before{content:"\e747"}.ff-icon-coin:before{content:"\e748"}.ff-icon-money:before{content:"\e749"}.ff-icon-bank-card:before{content:"\e74a"}.ff-icon-box:before{content:"\e74b"}.ff-icon-present:before{content:"\e74c"}.ff-icon-sell:before{content:"\e6d5"}.ff-icon-sold-out:before{content:"\e6d6"}.ff-icon-shopping-bag-2:before{content:"\e74d"}.ff-icon-shopping-bag-1:before{content:"\e74e"}.ff-icon-shopping-cart-2:before{content:"\e74f"}.ff-icon-shopping-cart-1:before{content:"\e750"}.ff-icon-shopping-cart-full:before{content:"\e751"}.ff-icon-smoking:before{content:"\e752"}.ff-icon-no-smoking:before{content:"\e753"}.ff-icon-house:before{content:"\e754"}.ff-icon-table-lamp:before{content:"\e755"}.ff-icon-school:before{content:"\e756"}.ff-icon-office-building:before{content:"\e757"}.ff-icon-toilet-paper:before{content:"\e758"}.ff-icon-notebook-2:before{content:"\e759"}.ff-icon-notebook-1:before{content:"\e75a"}.ff-icon-files:before{content:"\e75b"}.ff-icon-collection:before{content:"\e75c"}.ff-icon-receiving:before{content:"\e75d"}.ff-icon-suitcase-1:before{content:"\e760"}.ff-icon-suitcase:before{content:"\e761"}.ff-icon-film:before{content:"\e763"}.ff-icon-collection-tag:before{content:"\e765"}.ff-icon-data-analysis:before{content:"\e766"}.ff-icon-pie-chart:before{content:"\e767"}.ff-icon-data-board:before{content:"\e768"}.ff-icon-data-line:before{content:"\e76d"}.ff-icon-reading:before{content:"\e769"}.ff-icon-magic-stick:before{content:"\e76a"}.ff-icon-coordinate:before{content:"\e76b"}.ff-icon-mouse:before{content:"\e76c"}.ff-icon-brush:before{content:"\e76e"}.ff-icon-headset:before{content:"\e76f"}.ff-icon-umbrella:before{content:"\e770"}.ff-icon-scissors:before{content:"\e771"}.ff-icon-mobile:before{content:"\e773"}.ff-icon-attract:before{content:"\e774"}.ff-icon-monitor:before{content:"\e775"}.ff-icon-search:before{content:"\e778"}.ff-icon-takeaway-box:before{content:"\e77a"}.ff-icon-paperclip:before{content:"\e77d"}.ff-icon-printer:before{content:"\e77e"}.ff-icon-document-add:before{content:"\e782"}.ff-icon-document:before{content:"\e785"}.ff-icon-document-checked:before{content:"\e786"}.ff-icon-document-copy:before{content:"\e787"}.ff-icon-document-delete:before{content:"\e788"}.ff-icon-document-remove:before{content:"\e789"}.ff-icon-tickets:before{content:"\e78b"}.ff-icon-folder-checked:before{content:"\e77f"}.ff-icon-folder-delete:before{content:"\e780"}.ff-icon-folder-remove:before{content:"\e781"}.ff-icon-folder-add:before{content:"\e783"}.ff-icon-folder-opened:before{content:"\e784"}.ff-icon-folder:before{content:"\e78a"}.ff-icon-edit-outline:before{content:"\e764"}.ff-icon-edit:before{content:"\e78c"}.ff-icon-date:before{content:"\e78e"}.ff-icon-c-scale-to-original:before{content:"\e7c6"}.ff-icon-view:before{content:"\e6ce"}.ff-icon-loading:before{content:"\e6cf"}.ff-icon-rank:before{content:"\e6d1"}.ff-icon-sort-down:before{content:"\e7c4"}.ff-icon-sort-up:before{content:"\e7c5"}.ff-icon-sort:before{content:"\e6d2"}.ff-icon-finished:before{content:"\e6cd"}.ff-icon-refresh-left:before{content:"\e6c7"}.ff-icon-refresh-right:before{content:"\e6c8"}.ff-icon-refresh:before{content:"\e6d0"}.ff-icon-video-play:before{content:"\e7c0"}.ff-icon-video-pause:before{content:"\e7c1"}.ff-icon-d-arrow-right:before{content:"\e6dc"}.ff-icon-d-arrow-left:before{content:"\e6dd"}.ff-icon-arrow-up:before{content:"\e6e1"}.ff-icon-arrow-down:before{content:"\e6df"}.ff-icon-arrow-right:before{content:"\e6e0"}.ff-icon-arrow-left:before{content:"\e6de"}.ff-icon-top-right:before{content:"\e6e7"}.ff-icon-top-left:before{content:"\e6e8"}.ff-icon-top:before{content:"\e6e6"}.ff-icon-bottom:before{content:"\e6eb"}.ff-icon-right:before{content:"\e6e9"}.ff-icon-back:before{content:"\e6ea"}.ff-icon-bottom-right:before{content:"\e6ec"}.ff-icon-bottom-left:before{content:"\e6ed"}.ff-icon-caret-top:before{content:"\e78f"}.ff-icon-caret-bottom:before{content:"\e790"}.ff-icon-caret-right:before{content:"\e791"}.ff-icon-caret-left:before{content:"\e792"}.ff-icon-d-caret:before{content:"\e79a"}.ff-icon-share:before{content:"\e793"}.ff-icon-menu:before{content:"\e798"}.ff-icon-s-grid:before{content:"\e7a6"}.ff-icon-s-check:before{content:"\e7a7"}.ff-icon-s-data:before{content:"\e7a8"}.ff-icon-s-opportunity:before{content:"\e7aa"}.ff-icon-s-custom:before{content:"\e7ab"}.ff-icon-s-claim:before{content:"\e7ad"}.ff-icon-s-finance:before{content:"\e7ae"}.ff-icon-s-comment:before{content:"\e7af"}.ff-icon-s-flag:before{content:"\e7b0"}.ff-icon-s-marketing:before{content:"\e7b1"}.ff-icon-s-shop:before{content:"\e7b4"}.ff-icon-s-open:before{content:"\e7b5"}.ff-icon-s-management:before{content:"\e7b6"}.ff-icon-s-ticket:before{content:"\e7b7"}.ff-icon-s-release:before{content:"\e7b8"}.ff-icon-s-home:before{content:"\e7b9"}.ff-icon-s-promotion:before{content:"\e7ba"}.ff-icon-s-operation:before{content:"\e7bb"}.ff-icon-s-unfold:before{content:"\e7bc"}.ff-icon-s-fold:before{content:"\e7a9"}.ff-icon-s-platform:before{content:"\e7bd"}.ff-icon-s-order:before{content:"\e7be"}.ff-icon-s-cooperation:before{content:"\e7bf"}.ff-icon-bell:before{content:"\e725"}.ff-icon-message-solid:before{content:"\e799"}.ff-icon-video-camera:before{content:"\e772"}.ff-icon-video-camera-solid:before{content:"\e796"}.ff-icon-camera:before{content:"\e779"}.ff-icon-camera-solid:before{content:"\e79b"}.ff-icon-download:before{content:"\e77c"}.ff-icon-upload2:before{content:"\e77b"}.ff-icon-upload:before{content:"\e7c3"}.ff-icon-picture-outline-round:before{content:"\e75f"}.ff-icon-picture-outline:before{content:"\e75e"}.ff-icon-picture:before{content:"\e79f"}.ff-icon-close:before{content:"\e6db"}.ff-icon-check:before{content:"\e6da"}.ff-icon-plus:before{content:"\e6d9"}.ff-icon-minus:before{content:"\e6d8"}.ff-icon-help:before{content:"\e73d"}.ff-icon-s-help:before{content:"\e7b3"}.ff-icon-circle-close:before{content:"\e78d"}.ff-icon-circle-check:before{content:"\e720"}.ff-icon-circle-plus-outline:before{content:"\e723"}.ff-icon-remove-outline:before{content:"\e722"}.ff-icon-zoom-out:before{content:"\e776"}.ff-icon-zoom-in:before{content:"\e777"}.ff-icon-error:before{content:"\e79d"}.ff-icon-success:before{content:"\e79c"}.ff-icon-circle-plus:before{content:"\e7a0"}.ff-icon-remove:before{content:"\e7a2"}.ff-icon-info:before{content:"\e7a1"}.ff-icon-question:before{content:"\e7a4"}.ff-icon-warning-outline:before{content:"\e6c9"}.ff-icon-warning:before{content:"\e7a3"}.ff-icon-goods:before{content:"\e7c2"}.ff-icon-s-goods:before{content:"\e7b2"}.ff-icon-star-off:before{content:"\e717"}.ff-icon-star-on:before{content:"\e797"}.ff-icon-more-outline:before{content:"\e6cc"}.ff-icon-more:before{content:"\e794"}.ff-icon-phone-outline:before{content:"\e6cb"}.ff-icon-phone:before{content:"\e795"}.ff-icon-user:before{content:"\e6e3"}.ff-icon-user-solid:before{content:"\e7a5"}.ff-icon-setting:before{content:"\e6ca"}.ff-icon-s-tools:before{content:"\e7ac"}.ff-icon-delete:before{content:"\e6d7"}.ff-icon-delete-solid:before{content:"\e7c9"}.ff-icon-eleme:before{content:"\e7c7"}.ff-icon-platform-eleme:before{content:"\e7ca"}.ff-icon-loading{animation:rotating 2s linear infinite}.ff-icon--right{margin-left:5px}.ff-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}:root{--ff-color-white:#fff;--ff-color-black:#000;--ff-pixel:#2d2d2d;--ff-light:#fff;--ff-dark:#000;--ff-content:#224;--ff-bg:#e8e8e9;--ff-reflex-dark:1;--ff-reflex-light:1;--ff-pixel-bg:#2d2d2d;--ff-pixel-bg-hover:#3a3a3a;--ff-pixel-border:#000;--ff-pixel-shadow:4px 4px 0 #000;--ff-pixel-shadow-hover:2px 2px 0 #000;--ff-pixel-shadow-active:0 0 0 #000;--ff-pixel-radius:0;--ff-color-primary:#409eff;--ff-color-primary-light-3:color-mix(in srgb,#fff 30%,#409eff);--ff-color-primary-light-5:color-mix(in srgb,#fff 50%,#409eff);--ff-color-primary-light-7:color-mix(in srgb,#fff 70%,#409eff);--ff-color-primary-light-9:color-mix(in srgb,#fff 90%,#409eff);--ff-color-primary-light-8:color-mix(in srgb,#fff 80%,#409eff);--ff-color-primary-dark-2:color-mix(in srgb,#000 20%,#409eff);--ff-color-success:#67c23a;--ff-color-success-light-3:color-mix(in srgb,#fff 30%,#67c23a);--ff-color-success-light-5:color-mix(in srgb,#fff 50%,#67c23a);--ff-color-success-light-7:color-mix(in srgb,#fff 70%,#67c23a);--ff-color-success-light-9:color-mix(in srgb,#fff 90%,#67c23a);--ff-color-success-light-8:color-mix(in srgb,#fff 80%,#67c23a);--ff-color-success-dark-2:color-mix(in srgb,#000 20%,#67c23a);--ff-color-warning:#e6a23c;--ff-color-warning-light-3:color-mix(in srgb,#fff 30%,#e6a23c);--ff-color-warning-light-5:color-mix(in srgb,#fff 50%,#e6a23c);--ff-color-warning-light-7:color-mix(in srgb,#fff 70%,#e6a23c);--ff-color-warning-light-9:color-mix(in srgb,#fff 90%,#e6a23c);--ff-color-warning-light-8:color-mix(in srgb,#fff 80%,#e6a23c);--ff-color-warning-dark-2:color-mix(in srgb,#000 20%,#e6a23c);--ff-color-danger:#f56c6c;--ff-color-danger-light-3:color-mix(in srgb,#fff 30%,#f56c6c);--ff-color-danger-light-5:color-mix(in srgb,#fff 50%,#f56c6c);--ff-color-danger-light-7:color-mix(in srgb,#fff 70%,#f56c6c);--ff-color-danger-light-9:color-mix(in srgb,#fff 90%,#f56c6c);--ff-color-danger-light-8:color-mix(in srgb,#fff 80%,#f56c6c);--ff-color-danger-dark-2:color-mix(in srgb,#000 20%,#f56c6c);--ff-color-info:#909399;--ff-color-info-light-3:color-mix(in srgb,#fff 30%,#909399);--ff-color-info-light-5:color-mix(in srgb,#fff 50%,#909399);--ff-color-info-light-7:color-mix(in srgb,#fff 70%,#909399);--ff-color-info-light-9:color-mix(in srgb,#fff 90%,#909399);--ff-color-info-light-8:color-mix(in srgb,#fff 80%,#909399);--ff-color-info-dark-2:color-mix(in srgb,#000 20%,#909399);--ff-bg-color:#fff;--ff-bg-color-page:#f2f3f5;--ff-bg-color-overlay:#fff;--ff-text-color-primary:#303133;--ff-text-color-regular:#606266;--ff-text-color-secondary:#909399;--ff-text-color-placeholder:#a8abb2;--ff-text-color-disabled:#c0c4cc;--ff-border-color:#dcdfe6;--ff-border-color-light:#e4e7ed;--ff-border-color-lighter:#ebeef5;--ff-border-color-extra-light:#f2f6fc;--ff-border-color-dark:#d4d7de;--ff-border-color-darker:#cdd0d6;--ff-fill-color:#f0f2f5;--ff-fill-color-light:#f5f7fa;--ff-fill-color-lighter:#fafafa;--ff-fill-color-extra-light:#fafcff;--ff-fill-color-dark:#ebedf0;--ff-fill-color-darker:#e6e8eb;--ff-fill-color-blank:#fff;--ff-border-width:1px;--ff-border-style:solid;--ff-border-color-hover:var(--ff-text-color-disabled);--ff-border:var(--ff-border-width) var(--ff-border-style) var(--ff-border-color);--ff-border-radius-base:0;--ff-border-radius-small:0;--ff-border-radius-round:0;--ff-border-radius-circle:0;--ff-font-size-extra-large:20px;--ff-font-size-large:18px;--ff-font-size-medium:16px;--ff-font-size-base:14px;--ff-font-size-small:13px;--ff-font-size-extra-small:12px;--ff-font-family:"Press Start 2P","Courier New",Courier,monospace;--ff-font-weight-primary:500;--ff-disabled-bg-color:var(--ff-fill-color-light);--ff-disabled-text-color:var(--ff-text-color-placeholder);--ff-disabled-border-color:var(--ff-border-color-light);--ff-transition-duration:0.15s;--ff-transition-duration-fast:0.1s}.ff-button{--ff-button-font-weight:var(--ff-font-weight-primary);--ff-button-border-color:var(--ff-border-color);--ff-button-bg-color:var(--ff-fill-color-blank);--ff-button-text-color:var(--ff-text-color-regular);--ff-button-disabled-text-color:var(--ff-disabled-text-color);--ff-button-disabled-bg-color:var(--ff-fill-color-blank);--ff-button-disabled-border-color:var(--ff-border-color-light);--ff-button-hover-text-color:var(--ff-color-primary);--ff-button-hover-bg-color:var(--ff-color-primary-light-9);--ff-button-hover-border-color:var(--ff-color-primary-light-7);--ff-button-active-text-color:var(--ff-button-hover-text-color);--ff-button-active-border-color:var(--ff-color-primary);--ff-button-active-bg-color:var(--ff-button-hover-bg-color);--ff-button-outline-color:var(--ff-color-primary-light-5);--ff-button-active-color:var(--ff-text-color-primary);align-items:center;-webkit-appearance:none;background:var(--ff-pixel-bg);border:2px solid var(--ff-pixel-border);border-radius:var(--ff-pixel-radius);box-shadow:var(--ff-pixel-shadow);box-sizing:border-box;color:var(--ff-button-text-color);cursor:pointer;display:inline-flex;font-size:var(--ff-font-size-base);font-weight:var(--ff-button-font-weight);height:36px;image-rendering:pixelated;justify-content:center;line-height:1;outline:none;padding:8px 16px;text-align:center;transition:all var(--ff-transition-duration) steps(3);user-select:none;vertical-align:middle;white-space:nowrap}.ff-button+.ff-button{margin-left:16px}.ff-button:focus,.ff-button:hover{background:var(--ff-pixel-bg-hover);border-color:var(--ff-pixel-border);box-shadow:var(--ff-pixel-shadow-hover);color:var(--ff-button-hover-text-color);outline:none;transform:translate(2px,2px)}.ff-button:active{background:var(--ff-pixel-bg-hover);box-shadow:var(--ff-pixel-shadow-active);color:var(--ff-button-active-text-color);outline:none;transform:translate(4px,4px)}.ff-button.is-plain{--ff-button-hover-text-color:var(--ff-color-primary);--ff-button-hover-bg-color:var(--ff-pixel-bg);--ff-button-hover-border-color:var(--ff-color-primary);background:transparent;border-color:var(--ff-pixel-border)}.ff-button.is-round{border-radius:0}.ff-button.is-circle{border-radius:0;padding:8px}.ff-button.is-disabled,.ff-button.is-disabled:focus,.ff-button.is-disabled:hover,.ff-button[disabled],.ff-button[disabled]:focus,.ff-button[disabled]:hover{background:#1a1a1a;border-color:#333;box-shadow:none;color:var(--ff-button-disabled-text-color);cursor:not-allowed;opacity:.7;transform:none}.ff-button [class*=ff-icon]+span{margin-left:6px}.ff-button--primary{--ff-button-text-color:var(--ff-color-white);--ff-button-bg-color:var(--ff-color-primary);--ff-button-border-color:var(--ff-color-primary);--ff-button-outline-color:var(--ff-color-primary-light-5);--ff-button-active-color:var(--ff-color-primary-dark-2);--ff-button-hover-text-color:var(--ff-color-white);--ff-button-hover-bg-color:var(--ff-color-primary-light-3);--ff-button-hover-border-color:var(--ff-color-primary-light-3);--ff-button-active-bg-color:var(--ff-color-primary-dark-2);--ff-button-active-border-color:var(--ff-color-primary-dark-2);--ff-button-disabled-text-color:var(--ff-color-white);--ff-button-disabled-bg-color:var(--ff-color-primary-light-5);--ff-button-disabled-border-color:var(--ff-color-primary-light-5);background:var(--ff-color-primary);border-color:var(--ff-pixel-border)}.ff-button--primary.is-plain{--ff-button-text-color:var(--ff-color-primary);--ff-button-bg-color:transparent;--ff-button-border-color:var(--ff-color-primary);--ff-button-hover-text-color:var(--ff-color-white);--ff-button-hover-bg-color:var(--ff-color-primary);--ff-button-hover-border-color:var(--ff-pixel-border);--ff-button-active-text-color:var(--ff-color-white);background:transparent}.ff-button--success{--ff-button-text-color:var(--ff-color-white);--ff-button-bg-color:var(--ff-color-success);--ff-button-border-color:var(--ff-color-success);--ff-button-outline-color:var(--ff-color-success-light-5);--ff-button-active-color:var(--ff-color-success-dark-2);--ff-button-hover-text-color:var(--ff-color-white);--ff-button-hover-bg-color:var(--ff-color-success-light-3);--ff-button-hover-border-color:var(--ff-color-success-light-3);--ff-button-active-bg-color:var(--ff-color-success-dark-2);--ff-button-active-border-color:var(--ff-color-success-dark-2);--ff-button-disabled-text-color:var(--ff-color-white);--ff-button-disabled-bg-color:var(--ff-color-success-light-5);--ff-button-disabled-border-color:var(--ff-color-success-light-5);background:var(--ff-color-success);border-color:var(--ff-pixel-border)}.ff-button--success.is-plain{--ff-button-text-color:var(--ff-color-success);--ff-button-bg-color:transparent;--ff-button-border-color:var(--ff-color-success);--ff-button-hover-text-color:var(--ff-color-white);--ff-button-hover-bg-color:var(--ff-color-success);--ff-button-hover-border-color:var(--ff-pixel-border);--ff-button-active-text-color:var(--ff-color-white);background:transparent}.ff-button--warning{--ff-button-text-color:var(--ff-color-white);--ff-button-bg-color:var(--ff-color-warning);--ff-button-border-color:var(--ff-color-warning);--ff-button-outline-color:var(--ff-color-warning-light-5);--ff-button-active-color:var(--ff-color-warning-dark-2);--ff-button-hover-text-color:var(--ff-color-white);--ff-button-hover-bg-color:var(--ff-color-warning-light-3);--ff-button-hover-border-color:var(--ff-color-warning-light-3);--ff-button-active-bg-color:var(--ff-color-warning-dark-2);--ff-button-active-border-color:var(--ff-color-warning-dark-2);--ff-button-disabled-text-color:var(--ff-color-white);--ff-button-disabled-bg-color:var(--ff-color-warning-light-5);--ff-button-disabled-border-color:var(--ff-color-warning-light-5);background:var(--ff-color-warning);border-color:var(--ff-pixel-border)}.ff-button--warning.is-plain{--ff-button-text-color:var(--ff-color-warning);--ff-button-bg-color:transparent;--ff-button-border-color:var(--ff-color-warning);--ff-button-hover-text-color:var(--ff-color-white);--ff-button-hover-bg-color:var(--ff-color-warning);--ff-button-hover-border-color:var(--ff-pixel-border);--ff-button-active-text-color:var(--ff-color-white);background:transparent}.ff-button--info{--ff-button-text-color:var(--ff-color-white);--ff-button-bg-color:var(--ff-color-info);--ff-button-border-color:var(--ff-color-info);--ff-button-outline-color:var(--ff-color-info-light-5);--ff-button-active-color:var(--ff-color-info-dark-2);--ff-button-hover-text-color:var(--ff-color-white);--ff-button-hover-bg-color:var(--ff-color-info-light-3);--ff-button-hover-border-color:var(--ff-color-info-light-3);--ff-button-active-bg-color:var(--ff-color-info-dark-2);--ff-button-active-border-color:var(--ff-color-info-dark-2);--ff-button-disabled-text-color:var(--ff-color-white);--ff-button-disabled-bg-color:var(--ff-color-info-light-5);--ff-button-disabled-border-color:var(--ff-color-info-light-5);background:var(--ff-color-info);border-color:var(--ff-pixel-border)}.ff-button--info.is-plain{--ff-button-text-color:var(--ff-color-info);--ff-button-bg-color:transparent;--ff-button-border-color:var(--ff-color-info);--ff-button-hover-text-color:var(--ff-color-white);--ff-button-hover-bg-color:var(--ff-color-info);--ff-button-hover-border-color:var(--ff-pixel-border);--ff-button-active-text-color:var(--ff-color-white);background:transparent}.ff-button--danger{--ff-button-text-color:var(--ff-color-white);--ff-button-bg-color:var(--ff-color-danger);--ff-button-border-color:var(--ff-color-danger);--ff-button-outline-color:var(--ff-color-danger-light-5);--ff-button-active-color:var(--ff-color-danger-dark-2);--ff-button-hover-text-color:var(--ff-color-white);--ff-button-hover-bg-color:var(--ff-color-danger-light-3);--ff-button-hover-border-color:var(--ff-color-danger-light-3);--ff-button-active-bg-color:var(--ff-color-danger-dark-2);--ff-button-active-border-color:var(--ff-color-danger-dark-2);--ff-button-disabled-text-color:var(--ff-color-white);--ff-button-disabled-bg-color:var(--ff-color-danger-light-5);--ff-button-disabled-border-color:var(--ff-color-danger-light-5);background:var(--ff-color-danger);border-color:var(--ff-pixel-border)}.ff-button--danger.is-plain{--ff-button-text-color:var(--ff-color-danger);--ff-button-bg-color:transparent;--ff-button-border-color:var(--ff-color-danger);--ff-button-hover-text-color:var(--ff-color-white);--ff-button-hover-bg-color:var(--ff-color-danger);--ff-button-hover-border-color:var(--ff-pixel-border);--ff-button-active-text-color:var(--ff-color-white);background:transparent}.ff-button--large{--ff-button-size:44px;font-size:var(--ff-font-size-medium);padding:12px 20px}.ff-button--large,.ff-button--small{border-radius:0;height:var(--ff-button-size)}.ff-button--small{--ff-button-size:26px;font-size:11px;padding:5px 12px}.ff-collapse{background:var(--ff-pixel-bg);border:2px solid var(--ff-pixel-border);border-radius:0;box-shadow:var(--ff-pixel-shadow);overflow:hidden}.ff-collapse-item{border-bottom:2px solid var(--ff-pixel-border)}.ff-collapse-item:last-child{border-bottom:none}.ff-collapse-item__header{align-items:center;background:transparent;color:#e0e0e0;cursor:pointer;display:flex;font-size:var(--ff-font-size-base);font-weight:var(--ff-font-weight-primary);justify-content:space-between;padding:16px 20px;transition:all var(--ff-transition-duration) steps(3)}.ff-collapse-item__header:hover{background:var(--ff-pixel-bg-hover);color:var(--ff-color-primary)}.ff-collapse-item__header.is-active{background:hsla(0,0%,100%,.05);color:var(--ff-color-primary)}.ff-collapse-item__header.is-disabled{color:var(--ff-disabled-text-color);cursor:not-allowed;opacity:.6}.ff-collapse-item__header.is-disabled:hover{background:transparent;color:var(--ff-disabled-text-color)}.ff-collapse-item__header .header-angle{color:var(--ff-text-color-secondary);transition:transform var(--ff-transition-duration) steps(4)}.ff-collapse-item__header.is-active .header-angle{transform:rotate(90deg)}.ff-collapse-item__wrapper{overflow:hidden;transition:height var(--ff-transition-duration) steps(4)}.ff-collapse-item__content{background:#252525;color:silver;font-size:var(--ff-font-size-base);line-height:1.6;padding:16px 20px}.slide-enter-active,.slide-leave-active{transition:all var(--ff-transition-duration) steps(4)}.slide-enter-from,.slide-leave-to{opacity:0;transform:translateY(-8px)}
|
|
1
|
+
@font-face{font-display:inline;font-family:element-icons;font-style:normal;font-weight:400;src:url(fonts/element-icons.woff) format("woff"),url(fonts/element-icons.ttf) format("truetype")}[class*=ff-icon-]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:element-icons!important;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none;vertical-align:baseline}.ff-icon-ice-cream-round:before{content:"\e6a0"}.ff-icon-ice-cream-square:before{content:"\e6a3"}.ff-icon-lollipop:before{content:"\e6a4"}.ff-icon-potato-strips:before{content:"\e6a5"}.ff-icon-milk-tea:before{content:"\e6a6"}.ff-icon-ice-drink:before{content:"\e6a7"}.ff-icon-ice-tea:before{content:"\e6a9"}.ff-icon-coffee:before{content:"\e6aa"}.ff-icon-orange:before{content:"\e6ab"}.ff-icon-pear:before{content:"\e6ac"}.ff-icon-apple:before{content:"\e6ad"}.ff-icon-cherry:before{content:"\e6ae"}.ff-icon-watermelon:before{content:"\e6af"}.ff-icon-grape:before{content:"\e6b0"}.ff-icon-refrigerator:before{content:"\e6b1"}.ff-icon-goblet-square-full:before{content:"\e6b2"}.ff-icon-goblet-square:before{content:"\e6b3"}.ff-icon-goblet-full:before{content:"\e6b4"}.ff-icon-goblet:before{content:"\e6b5"}.ff-icon-cold-drink:before{content:"\e6b6"}.ff-icon-coffee-cup:before{content:"\e6b8"}.ff-icon-water-cup:before{content:"\e6b9"}.ff-icon-hot-water:before{content:"\e6ba"}.ff-icon-ice-cream:before{content:"\e6bb"}.ff-icon-dessert:before{content:"\e6bc"}.ff-icon-sugar:before{content:"\e6bd"}.ff-icon-tableware:before{content:"\e6be"}.ff-icon-burger:before{content:"\e6bf"}.ff-icon-knife-fork:before{content:"\e6c1"}.ff-icon-fork-spoon:before{content:"\e6c2"}.ff-icon-chicken:before{content:"\e6c3"}.ff-icon-food:before{content:"\e6c4"}.ff-icon-dish-1:before{content:"\e6c5"}.ff-icon-dish:before{content:"\e6c6"}.ff-icon-moon-night:before{content:"\e6ee"}.ff-icon-moon:before{content:"\e6f0"}.ff-icon-cloudy-and-sunny:before{content:"\e6f1"}.ff-icon-partly-cloudy:before{content:"\e6f2"}.ff-icon-cloudy:before{content:"\e6f3"}.ff-icon-sunny:before{content:"\e6f6"}.ff-icon-sunset:before{content:"\e6f7"}.ff-icon-sunrise-1:before{content:"\e6f8"}.ff-icon-sunrise:before{content:"\e6f9"}.ff-icon-heavy-rain:before{content:"\e6fa"}.ff-icon-lightning:before{content:"\e6fb"}.ff-icon-light-rain:before{content:"\e6fc"}.ff-icon-wind-power:before{content:"\e6fd"}.ff-icon-baseball:before{content:"\e712"}.ff-icon-soccer:before{content:"\e713"}.ff-icon-football:before{content:"\e715"}.ff-icon-basketball:before{content:"\e716"}.ff-icon-ship:before{content:"\e73f"}.ff-icon-truck:before{content:"\e740"}.ff-icon-bicycle:before{content:"\e741"}.ff-icon-mobile-phone:before{content:"\e6d3"}.ff-icon-service:before{content:"\e6d4"}.ff-icon-key:before{content:"\e6e2"}.ff-icon-unlock:before{content:"\e6e4"}.ff-icon-lock:before{content:"\e6e5"}.ff-icon-watch:before{content:"\e6fe"}.ff-icon-watch-1:before{content:"\e6ff"}.ff-icon-timer:before{content:"\e702"}.ff-icon-alarm-clock:before{content:"\e703"}.ff-icon-map-location:before{content:"\e704"}.ff-icon-delete-location:before{content:"\e705"}.ff-icon-add-location:before{content:"\e706"}.ff-icon-location-information:before{content:"\e707"}.ff-icon-location-outline:before{content:"\e708"}.ff-icon-location:before{content:"\e79e"}.ff-icon-place:before{content:"\e709"}.ff-icon-discover:before{content:"\e70a"}.ff-icon-first-aid-kit:before{content:"\e70b"}.ff-icon-trophy-1:before{content:"\e70c"}.ff-icon-trophy:before{content:"\e70d"}.ff-icon-medal:before{content:"\e70e"}.ff-icon-medal-1:before{content:"\e70f"}.ff-icon-stopwatch:before{content:"\e710"}.ff-icon-mic:before{content:"\e711"}.ff-icon-copy-document:before{content:"\e718"}.ff-icon-full-screen:before{content:"\e719"}.ff-icon-switch-button:before{content:"\e71b"}.ff-icon-aim:before{content:"\e71c"}.ff-icon-crop:before{content:"\e71d"}.ff-icon-odometer:before{content:"\e71e"}.ff-icon-time:before{content:"\e71f"}.ff-icon-bangzhu:before{content:"\e724"}.ff-icon-close-notification:before{content:"\e726"}.ff-icon-microphone:before{content:"\e727"}.ff-icon-turn-off-microphone:before{content:"\e728"}.ff-icon-position:before{content:"\e729"}.ff-icon-postcard:before{content:"\e72a"}.ff-icon-message:before{content:"\e72b"}.ff-icon-chat-line-square:before{content:"\e72d"}.ff-icon-chat-dot-square:before{content:"\e72e"}.ff-icon-chat-dot-round:before{content:"\e72f"}.ff-icon-chat-square:before{content:"\e730"}.ff-icon-chat-line-round:before{content:"\e731"}.ff-icon-chat-round:before{content:"\e732"}.ff-icon-set-up:before{content:"\e733"}.ff-icon-turn-off:before{content:"\e734"}.ff-icon-open:before{content:"\e735"}.ff-icon-connection:before{content:"\e736"}.ff-icon-link:before{content:"\e737"}.ff-icon-cpu:before{content:"\e738"}.ff-icon-thumb:before{content:"\e739"}.ff-icon-female:before{content:"\e73a"}.ff-icon-male:before{content:"\e73b"}.ff-icon-guide:before{content:"\e73c"}.ff-icon-news:before{content:"\e73e"}.ff-icon-price-tag:before{content:"\e744"}.ff-icon-discount:before{content:"\e745"}.ff-icon-wallet:before{content:"\e747"}.ff-icon-coin:before{content:"\e748"}.ff-icon-money:before{content:"\e749"}.ff-icon-bank-card:before{content:"\e74a"}.ff-icon-box:before{content:"\e74b"}.ff-icon-present:before{content:"\e74c"}.ff-icon-sell:before{content:"\e6d5"}.ff-icon-sold-out:before{content:"\e6d6"}.ff-icon-shopping-bag-2:before{content:"\e74d"}.ff-icon-shopping-bag-1:before{content:"\e74e"}.ff-icon-shopping-cart-2:before{content:"\e74f"}.ff-icon-shopping-cart-1:before{content:"\e750"}.ff-icon-shopping-cart-full:before{content:"\e751"}.ff-icon-smoking:before{content:"\e752"}.ff-icon-no-smoking:before{content:"\e753"}.ff-icon-house:before{content:"\e754"}.ff-icon-table-lamp:before{content:"\e755"}.ff-icon-school:before{content:"\e756"}.ff-icon-office-building:before{content:"\e757"}.ff-icon-toilet-paper:before{content:"\e758"}.ff-icon-notebook-2:before{content:"\e759"}.ff-icon-notebook-1:before{content:"\e75a"}.ff-icon-files:before{content:"\e75b"}.ff-icon-collection:before{content:"\e75c"}.ff-icon-receiving:before{content:"\e75d"}.ff-icon-suitcase-1:before{content:"\e760"}.ff-icon-suitcase:before{content:"\e761"}.ff-icon-film:before{content:"\e763"}.ff-icon-collection-tag:before{content:"\e765"}.ff-icon-data-analysis:before{content:"\e766"}.ff-icon-pie-chart:before{content:"\e767"}.ff-icon-data-board:before{content:"\e768"}.ff-icon-data-line:before{content:"\e76d"}.ff-icon-reading:before{content:"\e769"}.ff-icon-magic-stick:before{content:"\e76a"}.ff-icon-coordinate:before{content:"\e76b"}.ff-icon-mouse:before{content:"\e76c"}.ff-icon-brush:before{content:"\e76e"}.ff-icon-headset:before{content:"\e76f"}.ff-icon-umbrella:before{content:"\e770"}.ff-icon-scissors:before{content:"\e771"}.ff-icon-mobile:before{content:"\e773"}.ff-icon-attract:before{content:"\e774"}.ff-icon-monitor:before{content:"\e775"}.ff-icon-search:before{content:"\e778"}.ff-icon-takeaway-box:before{content:"\e77a"}.ff-icon-paperclip:before{content:"\e77d"}.ff-icon-printer:before{content:"\e77e"}.ff-icon-document-add:before{content:"\e782"}.ff-icon-document:before{content:"\e785"}.ff-icon-document-checked:before{content:"\e786"}.ff-icon-document-copy:before{content:"\e787"}.ff-icon-document-delete:before{content:"\e788"}.ff-icon-document-remove:before{content:"\e789"}.ff-icon-tickets:before{content:"\e78b"}.ff-icon-folder-checked:before{content:"\e77f"}.ff-icon-folder-delete:before{content:"\e780"}.ff-icon-folder-remove:before{content:"\e781"}.ff-icon-folder-add:before{content:"\e783"}.ff-icon-folder-opened:before{content:"\e784"}.ff-icon-folder:before{content:"\e78a"}.ff-icon-edit-outline:before{content:"\e764"}.ff-icon-edit:before{content:"\e78c"}.ff-icon-date:before{content:"\e78e"}.ff-icon-c-scale-to-original:before{content:"\e7c6"}.ff-icon-view:before{content:"\e6ce"}.ff-icon-loading:before{content:"\e6cf"}.ff-icon-rank:before{content:"\e6d1"}.ff-icon-sort-down:before{content:"\e7c4"}.ff-icon-sort-up:before{content:"\e7c5"}.ff-icon-sort:before{content:"\e6d2"}.ff-icon-finished:before{content:"\e6cd"}.ff-icon-refresh-left:before{content:"\e6c7"}.ff-icon-refresh-right:before{content:"\e6c8"}.ff-icon-refresh:before{content:"\e6d0"}.ff-icon-video-play:before{content:"\e7c0"}.ff-icon-video-pause:before{content:"\e7c1"}.ff-icon-d-arrow-right:before{content:"\e6dc"}.ff-icon-d-arrow-left:before{content:"\e6dd"}.ff-icon-arrow-up:before{content:"\e6e1"}.ff-icon-arrow-down:before{content:"\e6df"}.ff-icon-arrow-right:before{content:"\e6e0"}.ff-icon-arrow-left:before{content:"\e6de"}.ff-icon-top-right:before{content:"\e6e7"}.ff-icon-top-left:before{content:"\e6e8"}.ff-icon-top:before{content:"\e6e6"}.ff-icon-bottom:before{content:"\e6eb"}.ff-icon-right:before{content:"\e6e9"}.ff-icon-back:before{content:"\e6ea"}.ff-icon-bottom-right:before{content:"\e6ec"}.ff-icon-bottom-left:before{content:"\e6ed"}.ff-icon-caret-top:before{content:"\e78f"}.ff-icon-caret-bottom:before{content:"\e790"}.ff-icon-caret-right:before{content:"\e791"}.ff-icon-caret-left:before{content:"\e792"}.ff-icon-d-caret:before{content:"\e79a"}.ff-icon-share:before{content:"\e793"}.ff-icon-menu:before{content:"\e798"}.ff-icon-s-grid:before{content:"\e7a6"}.ff-icon-s-check:before{content:"\e7a7"}.ff-icon-s-data:before{content:"\e7a8"}.ff-icon-s-opportunity:before{content:"\e7aa"}.ff-icon-s-custom:before{content:"\e7ab"}.ff-icon-s-claim:before{content:"\e7ad"}.ff-icon-s-finance:before{content:"\e7ae"}.ff-icon-s-comment:before{content:"\e7af"}.ff-icon-s-flag:before{content:"\e7b0"}.ff-icon-s-marketing:before{content:"\e7b1"}.ff-icon-s-shop:before{content:"\e7b4"}.ff-icon-s-open:before{content:"\e7b5"}.ff-icon-s-management:before{content:"\e7b6"}.ff-icon-s-ticket:before{content:"\e7b7"}.ff-icon-s-release:before{content:"\e7b8"}.ff-icon-s-home:before{content:"\e7b9"}.ff-icon-s-promotion:before{content:"\e7ba"}.ff-icon-s-operation:before{content:"\e7bb"}.ff-icon-s-unfold:before{content:"\e7bc"}.ff-icon-s-fold:before{content:"\e7a9"}.ff-icon-s-platform:before{content:"\e7bd"}.ff-icon-s-order:before{content:"\e7be"}.ff-icon-s-cooperation:before{content:"\e7bf"}.ff-icon-bell:before{content:"\e725"}.ff-icon-message-solid:before{content:"\e799"}.ff-icon-video-camera:before{content:"\e772"}.ff-icon-video-camera-solid:before{content:"\e796"}.ff-icon-camera:before{content:"\e779"}.ff-icon-camera-solid:before{content:"\e79b"}.ff-icon-download:before{content:"\e77c"}.ff-icon-upload2:before{content:"\e77b"}.ff-icon-upload:before{content:"\e7c3"}.ff-icon-picture-outline-round:before{content:"\e75f"}.ff-icon-picture-outline:before{content:"\e75e"}.ff-icon-picture:before{content:"\e79f"}.ff-icon-close:before{content:"\e6db"}.ff-icon-check:before{content:"\e6da"}.ff-icon-plus:before{content:"\e6d9"}.ff-icon-minus:before{content:"\e6d8"}.ff-icon-help:before{content:"\e73d"}.ff-icon-s-help:before{content:"\e7b3"}.ff-icon-circle-close:before{content:"\e78d"}.ff-icon-circle-check:before{content:"\e720"}.ff-icon-circle-plus-outline:before{content:"\e723"}.ff-icon-remove-outline:before{content:"\e722"}.ff-icon-zoom-out:before{content:"\e776"}.ff-icon-zoom-in:before{content:"\e777"}.ff-icon-error:before{content:"\e79d"}.ff-icon-success:before{content:"\e79c"}.ff-icon-circle-plus:before{content:"\e7a0"}.ff-icon-remove:before{content:"\e7a2"}.ff-icon-info:before{content:"\e7a1"}.ff-icon-question:before{content:"\e7a4"}.ff-icon-warning-outline:before{content:"\e6c9"}.ff-icon-warning:before{content:"\e7a3"}.ff-icon-goods:before{content:"\e7c2"}.ff-icon-s-goods:before{content:"\e7b2"}.ff-icon-star-off:before{content:"\e717"}.ff-icon-star-on:before{content:"\e797"}.ff-icon-more-outline:before{content:"\e6cc"}.ff-icon-more:before{content:"\e794"}.ff-icon-phone-outline:before{content:"\e6cb"}.ff-icon-phone:before{content:"\e795"}.ff-icon-user:before{content:"\e6e3"}.ff-icon-user-solid:before{content:"\e7a5"}.ff-icon-setting:before{content:"\e6ca"}.ff-icon-s-tools:before{content:"\e7ac"}.ff-icon-delete:before{content:"\e6d7"}.ff-icon-delete-solid:before{content:"\e7c9"}.ff-icon-eleme:before{content:"\e7c7"}.ff-icon-platform-eleme:before{content:"\e7ca"}.ff-icon-loading{animation:rotating 2s linear infinite}.ff-icon--right{margin-left:5px}.ff-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}:root{--ff-color-white:#fff;--ff-color-black:#000;--ff-pixel:#2d2d2d;--ff-light:#fff;--ff-dark:#000;--ff-content:#224;--ff-bg:#e8e8e9;--ff-reflex-dark:1;--ff-reflex-light:1;--ff-pixel-bg:#2d2d2d;--ff-pixel-bg-hover:#3a3a3a;--ff-pixel-border:#000;--ff-pixel-shadow:4px 4px 0 #000;--ff-pixel-shadow-hover:2px 2px 0 #000;--ff-pixel-shadow-active:0 0 0 #000;--ff-pixel-radius:0;--ff-color-primary:#409eff;--ff-color-primary-light-3:color-mix(in srgb,#fff 30%,#409eff);--ff-color-primary-light-5:color-mix(in srgb,#fff 50%,#409eff);--ff-color-primary-light-7:color-mix(in srgb,#fff 70%,#409eff);--ff-color-primary-light-9:color-mix(in srgb,#fff 90%,#409eff);--ff-color-primary-light-8:color-mix(in srgb,#fff 80%,#409eff);--ff-color-primary-dark-2:color-mix(in srgb,#000 20%,#409eff);--ff-color-success:#67c23a;--ff-color-success-light-3:color-mix(in srgb,#fff 30%,#67c23a);--ff-color-success-light-5:color-mix(in srgb,#fff 50%,#67c23a);--ff-color-success-light-7:color-mix(in srgb,#fff 70%,#67c23a);--ff-color-success-light-9:color-mix(in srgb,#fff 90%,#67c23a);--ff-color-success-light-8:color-mix(in srgb,#fff 80%,#67c23a);--ff-color-success-dark-2:color-mix(in srgb,#000 20%,#67c23a);--ff-color-warning:#e6a23c;--ff-color-warning-light-3:color-mix(in srgb,#fff 30%,#e6a23c);--ff-color-warning-light-5:color-mix(in srgb,#fff 50%,#e6a23c);--ff-color-warning-light-7:color-mix(in srgb,#fff 70%,#e6a23c);--ff-color-warning-light-9:color-mix(in srgb,#fff 90%,#e6a23c);--ff-color-warning-light-8:color-mix(in srgb,#fff 80%,#e6a23c);--ff-color-warning-dark-2:color-mix(in srgb,#000 20%,#e6a23c);--ff-color-danger:#f56c6c;--ff-color-danger-light-3:color-mix(in srgb,#fff 30%,#f56c6c);--ff-color-danger-light-5:color-mix(in srgb,#fff 50%,#f56c6c);--ff-color-danger-light-7:color-mix(in srgb,#fff 70%,#f56c6c);--ff-color-danger-light-9:color-mix(in srgb,#fff 90%,#f56c6c);--ff-color-danger-light-8:color-mix(in srgb,#fff 80%,#f56c6c);--ff-color-danger-dark-2:color-mix(in srgb,#000 20%,#f56c6c);--ff-color-info:#909399;--ff-color-info-light-3:color-mix(in srgb,#fff 30%,#909399);--ff-color-info-light-5:color-mix(in srgb,#fff 50%,#909399);--ff-color-info-light-7:color-mix(in srgb,#fff 70%,#909399);--ff-color-info-light-9:color-mix(in srgb,#fff 90%,#909399);--ff-color-info-light-8:color-mix(in srgb,#fff 80%,#909399);--ff-color-info-dark-2:color-mix(in srgb,#000 20%,#909399);--ff-bg-color:#fff;--ff-bg-color-page:#f2f3f5;--ff-bg-color-overlay:#fff;--ff-text-color-primary:#303133;--ff-text-color-regular:#606266;--ff-text-color-secondary:#909399;--ff-text-color-placeholder:#a8abb2;--ff-text-color-disabled:#c0c4cc;--ff-border-color:#dcdfe6;--ff-border-color-light:#e4e7ed;--ff-border-color-lighter:#ebeef5;--ff-border-color-extra-light:#f2f6fc;--ff-border-color-dark:#d4d7de;--ff-border-color-darker:#cdd0d6;--ff-fill-color:#f0f2f5;--ff-fill-color-light:#f5f7fa;--ff-fill-color-lighter:#fafafa;--ff-fill-color-extra-light:#fafcff;--ff-fill-color-dark:#ebedf0;--ff-fill-color-darker:#e6e8eb;--ff-fill-color-blank:#fff;--ff-border-width:1px;--ff-border-style:solid;--ff-border-color-hover:var(--ff-text-color-disabled);--ff-border:var(--ff-border-width) var(--ff-border-style) var(--ff-border-color);--ff-border-radius-base:0;--ff-border-radius-small:0;--ff-border-radius-round:0;--ff-border-radius-circle:0;--ff-font-size-extra-large:20px;--ff-font-size-large:18px;--ff-font-size-medium:16px;--ff-font-size-base:14px;--ff-font-size-small:13px;--ff-font-size-extra-small:12px;--ff-font-family:"Press Start 2P","Courier New",Courier,monospace;--ff-font-weight-primary:500;--ff-disabled-bg-color:var(--ff-fill-color-light);--ff-disabled-text-color:var(--ff-text-color-placeholder);--ff-disabled-border-color:var(--ff-border-color-light);--ff-transition-duration:0.15s;--ff-transition-duration-fast:0.1s}.ff-button{--ff-button-font-weight:var(--ff-font-weight-primary);--ff-button-border-color:var(--ff-border-color);--ff-button-bg-color:var(--ff-fill-color-blank);--ff-button-text-color:var(--ff-text-color-regular);--ff-button-disabled-text-color:var(--ff-disabled-text-color);--ff-button-disabled-bg-color:var(--ff-fill-color-blank);--ff-button-disabled-border-color:var(--ff-border-color-light);--ff-button-hover-text-color:var(--ff-color-primary);--ff-button-hover-bg-color:var(--ff-color-primary-light-9);--ff-button-hover-border-color:var(--ff-color-primary-light-7);--ff-button-active-text-color:var(--ff-button-hover-text-color);--ff-button-active-border-color:var(--ff-color-primary);--ff-button-active-bg-color:var(--ff-button-hover-bg-color);--ff-button-outline-color:var(--ff-color-primary-light-5);--ff-button-active-color:var(--ff-text-color-primary);align-items:center;-webkit-appearance:none;background:var(--ff-pixel-bg);border:2px solid var(--ff-pixel-border);border-radius:var(--ff-pixel-radius);box-shadow:var(--ff-pixel-shadow);box-sizing:border-box;color:var(--ff-button-text-color);cursor:pointer;display:inline-flex;font-size:var(--ff-font-size-base);font-weight:var(--ff-button-font-weight);height:36px;image-rendering:pixelated;justify-content:center;line-height:1;outline:none;padding:8px 16px;text-align:center;transition:all var(--ff-transition-duration) steps(3);user-select:none;vertical-align:middle;white-space:nowrap}.ff-button+.ff-button{margin-left:16px}.ff-button:focus,.ff-button:hover{background:var(--ff-pixel-bg-hover);border-color:var(--ff-pixel-border);box-shadow:var(--ff-pixel-shadow-hover);color:var(--ff-button-hover-text-color);outline:none;transform:translate(2px,2px)}.ff-button:active{background:var(--ff-pixel-bg-hover);box-shadow:var(--ff-pixel-shadow-active);color:var(--ff-button-active-text-color);outline:none;transform:translate(4px,4px)}.ff-button.is-plain{--ff-button-hover-text-color:var(--ff-color-primary);--ff-button-hover-bg-color:var(--ff-pixel-bg);--ff-button-hover-border-color:var(--ff-color-primary);background:transparent;border-color:var(--ff-pixel-border)}.ff-button.is-round{border-radius:0}.ff-button.is-circle{border-radius:0;padding:8px}.ff-button.is-disabled,.ff-button.is-disabled:focus,.ff-button.is-disabled:hover,.ff-button[disabled],.ff-button[disabled]:focus,.ff-button[disabled]:hover{background:#1a1a1a;border-color:#333;box-shadow:none;color:var(--ff-button-disabled-text-color);cursor:not-allowed;opacity:.7;transform:none}.ff-button [class*=ff-icon]+span{margin-left:6px}.ff-button--primary{--ff-button-text-color:var(--ff-color-white);--ff-button-bg-color:var(--ff-color-primary);--ff-button-border-color:var(--ff-color-primary);--ff-button-outline-color:var(--ff-color-primary-light-5);--ff-button-active-color:var(--ff-color-primary-dark-2);--ff-button-hover-text-color:var(--ff-color-white);--ff-button-hover-bg-color:var(--ff-color-primary-light-3);--ff-button-hover-border-color:var(--ff-color-primary-light-3);--ff-button-active-bg-color:var(--ff-color-primary-dark-2);--ff-button-active-border-color:var(--ff-color-primary-dark-2);--ff-button-disabled-text-color:var(--ff-color-white);--ff-button-disabled-bg-color:var(--ff-color-primary-light-5);--ff-button-disabled-border-color:var(--ff-color-primary-light-5);background:var(--ff-color-primary);border-color:var(--ff-pixel-border)}.ff-button--primary.is-plain{--ff-button-text-color:var(--ff-color-primary);--ff-button-bg-color:transparent;--ff-button-border-color:var(--ff-color-primary);--ff-button-hover-text-color:var(--ff-color-white);--ff-button-hover-bg-color:var(--ff-color-primary);--ff-button-hover-border-color:var(--ff-pixel-border);--ff-button-active-text-color:var(--ff-color-white);background:transparent}.ff-button--success{--ff-button-text-color:var(--ff-color-white);--ff-button-bg-color:var(--ff-color-success);--ff-button-border-color:var(--ff-color-success);--ff-button-outline-color:var(--ff-color-success-light-5);--ff-button-active-color:var(--ff-color-success-dark-2);--ff-button-hover-text-color:var(--ff-color-white);--ff-button-hover-bg-color:var(--ff-color-success-light-3);--ff-button-hover-border-color:var(--ff-color-success-light-3);--ff-button-active-bg-color:var(--ff-color-success-dark-2);--ff-button-active-border-color:var(--ff-color-success-dark-2);--ff-button-disabled-text-color:var(--ff-color-white);--ff-button-disabled-bg-color:var(--ff-color-success-light-5);--ff-button-disabled-border-color:var(--ff-color-success-light-5);background:var(--ff-color-success);border-color:var(--ff-pixel-border)}.ff-button--success.is-plain{--ff-button-text-color:var(--ff-color-success);--ff-button-bg-color:transparent;--ff-button-border-color:var(--ff-color-success);--ff-button-hover-text-color:var(--ff-color-white);--ff-button-hover-bg-color:var(--ff-color-success);--ff-button-hover-border-color:var(--ff-pixel-border);--ff-button-active-text-color:var(--ff-color-white);background:transparent}.ff-button--warning{--ff-button-text-color:var(--ff-color-white);--ff-button-bg-color:var(--ff-color-warning);--ff-button-border-color:var(--ff-color-warning);--ff-button-outline-color:var(--ff-color-warning-light-5);--ff-button-active-color:var(--ff-color-warning-dark-2);--ff-button-hover-text-color:var(--ff-color-white);--ff-button-hover-bg-color:var(--ff-color-warning-light-3);--ff-button-hover-border-color:var(--ff-color-warning-light-3);--ff-button-active-bg-color:var(--ff-color-warning-dark-2);--ff-button-active-border-color:var(--ff-color-warning-dark-2);--ff-button-disabled-text-color:var(--ff-color-white);--ff-button-disabled-bg-color:var(--ff-color-warning-light-5);--ff-button-disabled-border-color:var(--ff-color-warning-light-5);background:var(--ff-color-warning);border-color:var(--ff-pixel-border)}.ff-button--warning.is-plain{--ff-button-text-color:var(--ff-color-warning);--ff-button-bg-color:transparent;--ff-button-border-color:var(--ff-color-warning);--ff-button-hover-text-color:var(--ff-color-white);--ff-button-hover-bg-color:var(--ff-color-warning);--ff-button-hover-border-color:var(--ff-pixel-border);--ff-button-active-text-color:var(--ff-color-white);background:transparent}.ff-button--info{--ff-button-text-color:var(--ff-color-white);--ff-button-bg-color:var(--ff-color-info);--ff-button-border-color:var(--ff-color-info);--ff-button-outline-color:var(--ff-color-info-light-5);--ff-button-active-color:var(--ff-color-info-dark-2);--ff-button-hover-text-color:var(--ff-color-white);--ff-button-hover-bg-color:var(--ff-color-info-light-3);--ff-button-hover-border-color:var(--ff-color-info-light-3);--ff-button-active-bg-color:var(--ff-color-info-dark-2);--ff-button-active-border-color:var(--ff-color-info-dark-2);--ff-button-disabled-text-color:var(--ff-color-white);--ff-button-disabled-bg-color:var(--ff-color-info-light-5);--ff-button-disabled-border-color:var(--ff-color-info-light-5);background:var(--ff-color-info);border-color:var(--ff-pixel-border)}.ff-button--info.is-plain{--ff-button-text-color:var(--ff-color-info);--ff-button-bg-color:transparent;--ff-button-border-color:var(--ff-color-info);--ff-button-hover-text-color:var(--ff-color-white);--ff-button-hover-bg-color:var(--ff-color-info);--ff-button-hover-border-color:var(--ff-pixel-border);--ff-button-active-text-color:var(--ff-color-white);background:transparent}.ff-button--danger{--ff-button-text-color:var(--ff-color-white);--ff-button-bg-color:var(--ff-color-danger);--ff-button-border-color:var(--ff-color-danger);--ff-button-outline-color:var(--ff-color-danger-light-5);--ff-button-active-color:var(--ff-color-danger-dark-2);--ff-button-hover-text-color:var(--ff-color-white);--ff-button-hover-bg-color:var(--ff-color-danger-light-3);--ff-button-hover-border-color:var(--ff-color-danger-light-3);--ff-button-active-bg-color:var(--ff-color-danger-dark-2);--ff-button-active-border-color:var(--ff-color-danger-dark-2);--ff-button-disabled-text-color:var(--ff-color-white);--ff-button-disabled-bg-color:var(--ff-color-danger-light-5);--ff-button-disabled-border-color:var(--ff-color-danger-light-5);background:var(--ff-color-danger);border-color:var(--ff-pixel-border)}.ff-button--danger.is-plain{--ff-button-text-color:var(--ff-color-danger);--ff-button-bg-color:transparent;--ff-button-border-color:var(--ff-color-danger);--ff-button-hover-text-color:var(--ff-color-white);--ff-button-hover-bg-color:var(--ff-color-danger);--ff-button-hover-border-color:var(--ff-pixel-border);--ff-button-active-text-color:var(--ff-color-white);background:transparent}.ff-button--large{--ff-button-size:44px;font-size:var(--ff-font-size-medium);padding:12px 20px}.ff-button--large,.ff-button--small{border-radius:0;height:var(--ff-button-size)}.ff-button--small{--ff-button-size:26px;font-size:11px;padding:5px 12px}.ff-collapse{background:var(--ff-pixel-bg);border:2px solid var(--ff-pixel-border);border-radius:0;box-shadow:var(--ff-pixel-shadow);overflow:hidden}.ff-collapse-item{border-bottom:2px solid var(--ff-pixel-border)}.ff-collapse-item:last-child{border-bottom:none}.ff-collapse-item__header{align-items:center;background:transparent;color:#e0e0e0;cursor:pointer;display:flex;font-size:var(--ff-font-size-base);font-weight:var(--ff-font-weight-primary);justify-content:space-between;padding:16px 20px;transition:all var(--ff-transition-duration) steps(3)}.ff-collapse-item__header:hover{background:var(--ff-pixel-bg-hover);color:var(--ff-color-primary)}.ff-collapse-item__header.is-active{background:hsla(0,0%,100%,.05);color:var(--ff-color-primary)}.ff-collapse-item__header.is-disabled{color:var(--ff-disabled-text-color);cursor:not-allowed;opacity:.6}.ff-collapse-item__header.is-disabled:hover{background:transparent;color:var(--ff-disabled-text-color)}.ff-collapse-item__header .header-angle{color:var(--ff-text-color-secondary);transition:transform var(--ff-transition-duration) steps(4)}.ff-collapse-item__header.is-active .header-angle{transform:rotate(90deg)}.ff-collapse-item__wrapper{overflow:hidden;transition:height var(--ff-transition-duration) steps(4)}.ff-collapse-item__content{background:#252525;color:silver;font-size:var(--ff-font-size-base);line-height:1.6;padding:16px 20px}.slide-enter-active,.slide-leave-active{transition:all var(--ff-transition-duration) steps(4)}.slide-enter-from,.slide-leave-to{opacity:0;transform:translateY(-8px)}.ff-form{--ff-form-label-font-size:var(--ff-font-size-base);--ff-form-content-font-size:var(--ff-font-size-base)}.ff-form-item{display:flex;margin-bottom:18px}.ff-form-item .ff-form-item__label{box-sizing:border-box;color:#e0e0e0;display:inline-flex;font-size:var(--ff-form-label-font-size);height:32px;justify-content:flex-end;line-height:32px;padding:0 12px 0 0;width:150px}.ff-form-item .ff-form-item__content{align-items:center;color:silver;display:flex;flex:1;flex-wrap:wrap;font-size:var(--ff-form-content-font-size);line-height:32px;min-width:0;position:relative}.ff-form-item .ff-form-item__error-msg{color:var(--ff-color-danger);font-size:12px;left:0;line-height:1;padding-top:2px;position:absolute;top:100%}.ff-form-item.is-error .ff-input__wrapper{border-color:var(--ff-color-danger)}.ff-form-item.is-success .ff-input__wrapper{border-color:var(--ff-color-success)}.ff-form-item.is-required>.ff-form-item__label:before{color:var(--ff-color-danger);content:"*";margin-right:4px}.ff-input{--ff-input-text-color:var(--ff-text-color-regular);--ff-input-border:var(--ff-pixel-border);--ff-input-hover-border:var(--ff-color-primary);--ff-input-focus-border:var(--ff-color-primary);--ff-input-border-color:var(--ff-pixel-border);--ff-input-border-radius:0;--ff-input-bg-color:var(--ff-pixel-bg);--ff-input-icon-color:var(--ff-text-color-placeholder);--ff-input-placeholder-color:var(--ff-text-color-placeholder);--ff-input-hover-border-color:var(--ff-color-primary);--ff-input-clear-hover-color:var(--ff-text-color-secondary);--ff-input-focus-border-color:var(--ff-color-primary);--ff-input-height:var(--ff-component-size);box-sizing:border-box;display:inline-flex;font-size:var(--ff-font-size-base);line-height:var(--ff-input-height);position:relative;vertical-align:middle;width:100%}.ff-input.is-disabled{cursor:not-allowed}.ff-input.is-disabled .ff-input__wrapper{background-color:var(--ff-disabled-bg-color);border-color:var(--ff-disabled-border-color)}.ff-input.is-disabled .ff-input__inner,.ff-input.is-disabled .ff-textarea__wrapper{-webkit-text-fill-color:var(--ff-disabled-text-color);color:var(--ff-disabled-text-color);cursor:not-allowed}.ff-input.is-disabled .ff-textarea__wrapper{background-color:var(--ff-disabled-bg-color);border-color:var(--ff-disabled-border-color)}.ff-input.is-prepend>.ff-input__wrapper{border-left:none}.ff-input.is-append>.ff-input__wrapper{border-right:none}.ff-input--large{--ff-input-height:var(--ff-component-size-large);font-size:14px}.ff-input--large .ff-input__wrapper{padding:1px 15px}.ff-input--large .ff-input__wrapper .ff-input__inner{--ff-input-inner-height:calc(var(--ff-input-height, 40px) - 2px)}.ff-input--small{--ff-input-height:var(--ff-component-size-small);font-size:12px}.ff-input--small .ff-input__wrapper{padding:1px 7px}.ff-input--small .ff-input__wrapper .ff-input__inner{--ff-input-inner-height:calc(var(--ff-input-height, 24px) - 2px)}.ff-input__prefix,.ff-input__suffix{color:var(--ff-input-icon-color,var(--ff-text-color-placeholder));display:inline-flex;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;transition:all var(--ff-transition-duration) steps(3);white-space:nowrap}.ff-input__prefix>:first-child{margin-left:0!important}.ff-input__prefix>:last-child{margin-right:8px!important}.ff-input__suffix>:first-child{margin-left:8px!important}.ff-input__suffix>:last-child{margin-right:0!important}.ff-input__append,.ff-input__prepend{align-items:center;background-color:var(--ff-pixel-bg);border:2px solid var(--ff-pixel-border);border-radius:0;color:var(--ff-text-color-regular);display:inline-flex;justify-content:center;min-height:100%;padding:0 20px;position:relative;white-space:nowrap}.ff-input__prepend{border-right:none}.ff-input__append{border-left:none}.ff-input--textarea{display:inline-block;font-size:var(--ff-font-size-base);position:relative;vertical-align:bottom;width:100%}.ff-textarea__wrapper{-webkit-appearance:none;background-color:var(--ff-input-bg-color,var(--ff-pixel-bg));background-image:none;border:2px solid var(--ff-input-border-color,var(--ff-pixel-border));border-radius:0;box-shadow:var(--ff-pixel-shadow);box-sizing:border-box;color:var(--ff-input-text-color,var(--ff-text-color-regular));display:block;font-family:inherit;font-size:inherit;line-height:1.5;padding:5px 11px;position:relative;resize:vertical;transition:all var(--ff-transition-duration) steps(3);width:100%}.ff-textarea__wrapper:focus{border-color:var(--ff-input-focus-border-color);box-shadow:var(--ff-pixel-shadow-hover);outline:none}.ff-textarea__wrapper::placeholder{color:var(--ff-input-placeholder-color)}.ff-input__wrapper{align-items:center;background-color:var(--ff-input-bg-color,var(--ff-pixel-bg));background-image:none;border:2px solid var(--ff-input-border-color,var(--ff-pixel-border));border-radius:0;box-shadow:var(--ff-pixel-shadow);display:inline-flex;flex-grow:1;justify-content:center;padding:1px 11px;transition:all var(--ff-transition-duration) steps(3)}.ff-input__wrapper:hover{border-color:var(--ff-input-hover-border-color);box-shadow:var(--ff-pixel-shadow-hover)}.ff-input__wrapper.is-focus{border-color:var(--ff-input-focus-border-color);box-shadow:var(--ff-pixel-shadow-hover)}.ff-input__wrapper .ff-input__inner{--ff-input-inner-height:calc(var(--ff-input-height, 32px) - 2px);-webkit-appearance:none;background:none;border:none;box-sizing:border-box;color:var(--ff-input-text-color,var(--ff-text-color-regular));flex-grow:1;font-size:inherit;height:var(--ff-input-inner-height);line-height:var(--ff-input-inner-height);outline:none;padding:0;width:100%}.ff-input__wrapper .ff-input__inner::placeholder{color:var(--ff-input-placeholder-color)}.ff-input__wrapper .ff-icon{align-items:center;display:flex;height:inherit;justify-content:center;line-height:inherit;margin-left:8px;transition:all var(--ff-transition-duration) steps(3)}.ff-input__wrapper .ff-input__clear,.ff-input__wrapper .ff-input__password{color:var(--ff-input-icon-color);cursor:pointer;font-size:14px}.ff-input__wrapper .ff-input__clear:hover,.ff-input__wrapper .ff-input__password:hover{color:var(--ff-input-clear-hover-color)}.ff-message{--ff-message-bg-color:var(--ff-pixel-bg);--ff-message-border-color:var(--ff-pixel-border);--ff-message-padding:12px 16px;--ff-message-close-size:16px;--ff-message-close-icon-color:var(--ff-text-color-placeholder);--ff-message-close-hover-color:var(--ff-text-color-secondary);align-items:center;background-color:var(--ff-message-bg-color);border-color:var(--ff-message-border-color);border-radius:0;border-style:solid;border-width:2px;box-shadow:var(--ff-pixel-shadow);box-sizing:border-box;display:flex;image-rendering:pixelated;left:50%;max-width:calc(100% - 32px);padding:var(--ff-message-padding);position:fixed;top:20px;transform:translateX(-50%);transition:top var(--ff-transition-duration) steps(3),opacity var(--ff-transition-duration) steps(3),transform var(--ff-transition-duration) steps(3);width:fit-content}.ff-message .ff-message__content{color:#e0e0e0;overflow-wrap:anywhere}.ff-message.is-close .ff-message__content{padding-right:30px}.ff-message .ff-message__close{align-items:center;display:flex}.ff-message .ff-message__close svg{cursor:pointer}.ff-message--info{--ff-message-bg-color:var(--ff-color-info-light-9);--ff-message-border-color:var(--ff-color-info);--ff-message-text-color:var(--ff-color-info);border-color:var(--ff-color-info)}.ff-message--info .ff-message__content{color:var(--ff-color-info)}.ff-message--info .ff-message__close{--ff-icon-color:var(--ff-color-info)}.ff-message--success{--ff-message-bg-color:var(--ff-color-success-light-9);--ff-message-border-color:var(--ff-color-success);--ff-message-text-color:var(--ff-color-success);border-color:var(--ff-color-success)}.ff-message--success .ff-message__content{color:var(--ff-color-success)}.ff-message--success .ff-message__close{--ff-icon-color:var(--ff-color-success)}.ff-message--warning{--ff-message-bg-color:var(--ff-color-warning-light-9);--ff-message-border-color:var(--ff-color-warning);--ff-message-text-color:var(--ff-color-warning);border-color:var(--ff-color-warning)}.ff-message--warning .ff-message__content{color:var(--ff-color-warning)}.ff-message--warning .ff-message__close{--ff-icon-color:var(--ff-color-warning)}.ff-message--danger{--ff-message-bg-color:var(--ff-color-danger-light-9);--ff-message-border-color:var(--ff-color-danger);--ff-message-text-color:var(--ff-color-danger);border-color:var(--ff-color-danger)}.ff-message--danger .ff-message__content{color:var(--ff-color-danger)}.ff-message--danger .ff-message__close{--ff-icon-color:var(--ff-color-danger)}.ff-message.fade-up-enter-from,.ff-message.fade-up-leave-to{opacity:0;transform:translate(-50%,-100%)}.ff-tooltip{--ff-popover-bg-color:var(--ff-pixel-bg);--ff-popover-font-size:var(--ff-font-size-base);--ff-popover-border-color:var(--ff-pixel-border);--ff-popover-padding:12px;--ff-popover-border-radius:0;display:inline-block;z-index:99}.ff-tooltip .ff-tooltip__popper{background:var(--ff-popover-bg-color);border:2px solid var(--ff-popover-border-color);border-radius:var(--ff-popover-border-radius);box-shadow:var(--ff-pixel-shadow);box-sizing:border-box;color:#e0e0e0;font-size:var(--ff-popover-font-size);image-rendering:pixelated;line-height:1.4;padding:var(--ff-popover-padding);text-align:justify;word-break:break-all;z-index:1000}.ff-tooltip .ff-tooltip__popper #arrow,.ff-tooltip .ff-tooltip__popper #arrow:before{background:var(--ff-popover-bg-color);box-sizing:border-box;height:12px;position:absolute;width:12px}.ff-tooltip .ff-tooltip__popper #arrow{visibility:hidden}.ff-tooltip .ff-tooltip__popper #arrow:before{border-style:solid;border-width:2px;content:"";transform:rotate(45deg);visibility:visible}.ff-tooltip .ff-tooltip__popper[data-popper-placement^=top]>#arrow{bottom:-6px}.ff-tooltip .ff-tooltip__popper[data-popper-placement^=bottom]>#arrow{top:-6px}.ff-tooltip .ff-tooltip__popper[data-popper-placement^=left]>#arrow{right:-6px}.ff-tooltip .ff-tooltip__popper[data-popper-placement^=right]>#arrow{left:-6px}.ff-tooltip .ff-tooltip__popper[data-popper-placement^=top]>#arrow:before{border-bottom-color:var(--ff-popover-border-color);border-left-color:transparent;border-right-color:var(--ff-popover-border-color);border-top-color:transparent}.ff-tooltip .ff-tooltip__popper[data-popper-placement^=bottom]>#arrow:before{border-bottom-color:transparent;border-left-color:var(--ff-popover-border-color);border-right-color:transparent;border-top-color:var(--ff-popover-border-color)}.ff-tooltip .ff-tooltip__popper[data-popper-placement^=left]>#arrow:before{border-bottom-color:transparent;border-left-color:transparent;border-right-color:var(--ff-popover-border-color);border-top-color:var(--ff-popover-border-color)}.ff-tooltip .ff-tooltip__popper[data-popper-placement^=right]>#arrow:before{border-bottom-color:var(--ff-popover-border-color);border-left-color:var(--ff-popover-border-color);border-right-color:transparent;border-top-color:transparent}.ff-tooltip .fade-enter-active,.ff-tooltip .fade-leave-active{transition:opacity var(--ff-transition-duration) steps(3)}.ff-tooltip .fade-enter-from,.ff-tooltip .fade-leave-to{opacity:0}.ff-dropdown .ff-dropdown__menu{--ff-dropdown-menuItem-hover-fill:var(--ff-color-primary-light-9);--ff-dropdown-menuItem-hover-color:var(--ff-color-primary);--ff-dropdown-menuItem-disabled-color:var(--ff-border-color-lighter);--ff-dropdown-menuItem-divided-color:var(--ff-border-color-lighter)}.ff-dropdown{display:inline-block}.ff-dropdown .ff-tooltip{--ff-popover-padding:0}.ff-dropdown__menu{background:var(--ff-pixel-bg);border:2px solid var(--ff-pixel-border);border-radius:0;box-shadow:var(--ff-pixel-shadow);image-rendering:pixelated;list-style-type:none;margin:0;padding:0}.ff-dropdown__menu .ff-dropdown__item{align-items:center;color:#e0e0e0;cursor:pointer;display:flex;font-size:var(--ff-font-size-base);line-height:22px;list-style:none;margin:0;outline:none;padding:8px 16px;transition:all var(--ff-transition-duration) steps(3);white-space:nowrap}.ff-dropdown__menu .ff-dropdown__item:hover{background-color:var(--ff-pixel-bg-hover);color:var(--ff-color-primary)}.ff-dropdown__menu .ff-dropdown__item.is-disabled{background-image:none;color:var(--ff-disabled-text-color);cursor:not-allowed;opacity:.6}.ff-dropdown__menu .divided-placeholder{border-top:2px solid var(--ff-pixel-border);margin:0}.ff-switch{--ff-switch-on-color:var(--ff-color-primary);--ff-switch-off-color:var(--ff-pixel-bg);--ff-switch-on-border-color:var(--ff-color-primary);--ff-switch-off-border-color:var(--ff-pixel-border);align-items:center;display:inline-flex;font-size:14px;height:32px;line-height:20px}.ff-switch .ff-switch__input{height:0;margin:0;opacity:0;position:absolute;width:0}.ff-switch .ff-switch__input:focus-visible~.ff-switch__core{outline:2px solid var(--ff-switch-on-color);outline-offset:2px}.ff-switch.is-disabled{opacity:.6}.ff-switch.is-disabled .ff-switch__core{background:#1a1a1a;border-color:#333;box-shadow:none;cursor:not-allowed}.ff-switch.is-checked .ff-switch__core{background-color:var(--ff-switch-on-color);border-color:var(--ff-switch-on-border-color);box-shadow:var(--ff-pixel-shadow)}.ff-switch.is-checked .ff-switch__core .ff-switch__core-action{background-color:var(--ff-color-white);box-shadow:var(--ff-pixel-shadow);left:calc(100% - 18px)}.ff-switch.is-checked .ff-switch__core .ff-switch__core-inner{padding:0 18px 0 4px}.ff-switch--large{font-size:14px;height:40px;line-height:24px}.ff-switch--large .ff-switch__core{height:26px;min-width:52px}.ff-switch--large .ff-switch__core .ff-switch__core-action{height:22px;width:22px}.ff-switch--large.is-checked .ff-switch__core .ff-switch__core-action{left:calc(100% - 24px)}.ff-switch--small{font-size:12px;height:24px;line-height:16px}.ff-switch--small .ff-switch__core{height:18px;min-width:32px}.ff-switch--small .ff-switch__core .ff-switch__core-action{height:14px;width:14px}.ff-switch--small.is-checked .ff-switch__core .ff-switch__core-action{left:calc(100% - 16px)}.ff-switch__core{align-items:center;background:var(--ff-switch-off-color);border:2px solid var(--ff-switch-off-border-color);border-radius:0;box-shadow:var(--ff-pixel-shadow);box-sizing:border-box;cursor:pointer;display:inline-flex;height:22px;image-rendering:pixelated;min-width:42px;outline:none;position:relative;transition:border-color var(--ff-transition-duration) steps(3),background-color var(--ff-transition-duration) steps(3)}.ff-switch__core .ff-switch__core-action{background-color:var(--ff-color-white);border-radius:0;box-shadow:var(--ff-pixel-shadow);height:18px;left:2px;position:absolute;transition:left var(--ff-transition-duration) steps(3);width:18px}.ff-switch__core .ff-switch__core-inner{align-items:center;display:flex;height:16px;justify-content:center;overflow:hidden;padding:0 4px 0 20px;transition:all var(--ff-transition-duration) steps(3);width:100%}.ff-switch__core .ff-switch__core-inner .ff-switch__core-inner-text{color:var(--ff-color-white);font-size:12px;overflow:hidden;text-overflow:ellipsis;user-select:none;white-space:nowrap}
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
"name": "@fan-components/theme-chalk",
|
|
3
3
|
"version": "1.0.0",
|
|
4
4
|
"description": "",
|
|
5
|
-
"main": "index.
|
|
5
|
+
"main": "src/index.scss",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"test": "echo \"Error: no test specified\" && exit 1"
|
|
8
8
|
},
|
|
9
9
|
"keywords": [],
|
|
10
|
-
"author": "",
|
|
10
|
+
"author": "fangq",
|
|
11
11
|
"license": "ISC"
|
|
12
12
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const n=(n,o)=>(n.install=function(t){for(const c of[n,...Object.values(o??{})])t.component(c.name,c)},n);export{n as withInstall};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rander-vnode.d.ts","sourceRoot":"","sources":["../../packages/utils/rander-vnode.ts"],"names":[],"mappings":"AAYA,QAAA,MAAM,WAAW;;;;kCAYhB,CAAC;AACF,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ShallowRef } from "vue";
|
|
2
|
+
declare const useClickOutside: (elementRef: Readonly<ShallowRef<HTMLElement | null>>, callback: (e: MouseEvent) => void) => void;
|
|
3
|
+
export { useClickOutside };
|
|
4
|
+
export default useClickOutside;
|
|
5
|
+
//# sourceMappingURL=use-click-outside.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-click-outside.d.ts","sourceRoot":"","sources":["../../packages/utils/use-click-outside.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACtC,QAAA,MAAM,eAAe,GAAI,YAAY,QAAQ,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,SAc/G,CAAC;AACF,OAAO,EAAE,eAAe,EAAE,CAAC;AAC3B,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-event-listener.d.ts","sourceRoot":"","sources":["../../packages/utils/use-event-listener.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC/B,MAAM,CAAC,OAAO,UAAU,gBAAgB,CACtC,MAAM,EAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,WAAW,EAC7C,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,GAAG,QAgB3B;AACD,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
declare const useZIndex: (initialValue?: number) => {
|
|
2
|
+
currentZIndex: import("vue").ComputedRef<number>;
|
|
3
|
+
nextZIndex: () => number;
|
|
4
|
+
initialZIndex: import("vue").Ref<number, number>;
|
|
5
|
+
};
|
|
6
|
+
export default useZIndex;
|
|
7
|
+
export { useZIndex };
|
|
8
|
+
//# sourceMappingURL=use-zIndex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-zIndex.d.ts","sourceRoot":"","sources":["../../packages/utils/use-zIndex.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,SAAS,GAAI,qBAAmB;;;;CAYrC,CAAC;AAEF,eAAe,SAAS,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with-install.d.ts","sourceRoot":"","sources":["../../packages/utils/with-install.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAO,MAAM,EAAE,MAAM,KAAK,CAAC;AAKvC,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAE3C,eAAO,MAAM,WAAW,GAAI,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,KAM/D,cAAc,CAAC,CAAC,CAAC,GAAG,CACpC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fan-components",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.10",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "./dist/components/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"lint:eslint": "eslint",
|
|
27
27
|
"lint:spellcheck": "cspell lint \"(packages|apps)/**/*.{js,ts,mjs,cjs,json,css,less,scss,vue,html,md}\"",
|
|
28
28
|
"precommit": "lint-staged",
|
|
29
|
-
|
|
29
|
+
"build": "rollup -c && node generate-types.cjs"
|
|
30
30
|
},
|
|
31
31
|
"config": {
|
|
32
32
|
"commitizen": {
|
|
@@ -47,17 +47,21 @@
|
|
|
47
47
|
"@fortawesome/fontawesome-svg-core": "^7.3.1",
|
|
48
48
|
"@fortawesome/free-solid-svg-icons": "^7.3.1",
|
|
49
49
|
"@fortawesome/vue-fontawesome": "^3.3.2",
|
|
50
|
-
"@popperjs/core": "^2.11.8"
|
|
50
|
+
"@popperjs/core": "^2.11.8",
|
|
51
|
+
"async-validator": "^4.2.5",
|
|
52
|
+
"lodash-es": "^4.18.1"
|
|
51
53
|
},
|
|
52
54
|
"devDependencies": {
|
|
53
|
-
"@fan-components/components": "workspace:^",
|
|
54
|
-
"@fan-components/theme-chalk": "workspace:^",
|
|
55
|
-
"@fan-components/utils": "workspace:^",
|
|
56
55
|
"@commitlint/cli": "^21.0.1",
|
|
57
56
|
"@commitlint/config-conventional": "^21.0.1",
|
|
58
57
|
"@cspell/dict-lorem-ipsum": "^4.0.5",
|
|
59
58
|
"@eslint/js": "^10.0.1",
|
|
59
|
+
"@fan-components/components": "workspace:^",
|
|
60
|
+
"@fan-components/theme-chalk": "workspace:^",
|
|
61
|
+
"@fan-components/utils": "workspace:^",
|
|
62
|
+
"@rollup/plugin-alias": "^6.0.0",
|
|
60
63
|
"@rollup/plugin-terser": "^1.0.0",
|
|
64
|
+
"@types/lodash-es": "^4.17.12",
|
|
61
65
|
"@types/node": "^25.6.0",
|
|
62
66
|
"@typescript-eslint/parser": "^8.59.3",
|
|
63
67
|
"@vitejs/plugin-vue": "^6.0.6",
|