orion-design 0.1.9 → 0.1.10
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +5 -5
- package/dist/components/Button/index.js +11 -10
- package/dist/components/Button/index.js.map +1 -1
- package/dist/components/Form/FileInput/FileInput.vue.d.ts +1 -1
- package/dist/components/Form/hooks/FormItemValidateTrigger.d.ts +15 -0
- package/dist/components/Form/hooks/FormItemValidateTrigger.js +18 -0
- package/dist/components/Form/hooks/FormItemValidateTrigger.js.map +1 -0
- package/dist/components/Form/hooks/index.d.ts +10 -0
- package/dist/components/Form/hooks/index.js +83 -0
- package/dist/components/Form/hooks/index.js.map +1 -0
- package/dist/components/Form/index.js +180 -182
- package/dist/components/Form/index.js.map +1 -1
- package/dist/components/Pagetable/columns/PagetableCellButton.d.ts +7 -7
- package/dist/components/Pagetable/index.js +182 -180
- package/dist/components/Pagetable/index.js.map +1 -1
- package/dist/components/Pagetable/utils/index.js +82 -82
- package/dist/components/Pagetable/utils/index.js.map +1 -1
- package/dist/components/_util/arrays.js.map +1 -1
- package/dist/components/_util/browser.js.map +1 -1
- package/dist/components/_util/dom/aria.js.map +1 -1
- package/dist/components/_util/dom/element.js.map +1 -1
- package/dist/components/_util/dom/event.js.map +1 -1
- package/dist/components/_util/dom/position.js.map +1 -1
- package/dist/components/_util/dom/scroll.js.map +1 -1
- package/dist/components/_util/dom/style.js.map +1 -1
- package/dist/components/_util/easings.js.map +1 -1
- package/dist/components/_util/error.js.map +1 -1
- package/dist/components/_util/i18n.js.map +1 -1
- package/dist/components/_util/objects.js.map +1 -1
- package/dist/components/_util/raf.js.map +1 -1
- package/dist/components/_util/rand.js.map +1 -1
- package/dist/components/_util/strings.js.map +1 -1
- package/dist/components/_util/throttleByRaf.js.map +1 -1
- package/dist/components/_util/types.js.map +1 -1
- package/dist/components/_util/typescript.js.map +1 -1
- package/dist/components/_util/vue/global-node.js.map +1 -1
- package/dist/components/_util/vue/icon.js.map +1 -1
- package/dist/components/_util/vue/install.js.map +1 -1
- package/dist/components/_util/vue/props/runtime.js.map +1 -1
- package/dist/components/_util/vue/refs.js.map +1 -1
- package/dist/components/_util/vue/size.js.map +1 -1
- package/dist/components/_util/vue/validator.js.map +1 -1
- package/dist/components/_util/vue/vnode.js.map +1 -1
- package/dist/index.css +1 -1
- package/dist/version/version.d.ts +1 -1
- package/dist/version/version.js +1 -1
- package/dist/version/version.js.map +1 -1
- package/package.json +1 -1
- package/dist/components/Form/hooks/useForm.d.ts +0 -10
- package/dist/components/Form/hooks/useForm.js +0 -82
- package/dist/components/Form/hooks/useForm.js.map +0 -1
package/README.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
# Vue 3 + TypeScript + Vite
|
2
|
-
|
3
|
-
This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
|
4
|
-
|
5
|
-
Learn more about the recommended Project Setup and IDE Support in the [Vue Docs TypeScript Guide](https://vuejs.org/guide/typescript/overview.html#project-setup).
|
1
|
+
# Vue 3 + TypeScript + Vite
|
2
|
+
|
3
|
+
This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
|
4
|
+
|
5
|
+
Learn more about the recommended Project Setup and IDE Support in the [Vue Docs TypeScript Guide](https://vuejs.org/guide/typescript/overview.html#project-setup).
|
@@ -1,32 +1,33 @@
|
|
1
1
|
import "lodash-es";
|
2
|
-
import { defineComponent as
|
2
|
+
import { defineComponent as o, openBlock as n, createBlock as s, unref as u, withCtx as l, renderSlot as a, computed as i, createElementBlock as p, normalizeStyle as m, createVNode as c } from "vue";
|
3
3
|
import { withInstall as f } from "../_util/vue/install.js";
|
4
4
|
import { ElButton as _ } from "element-plus";
|
5
5
|
import { S as d } from "../../index-BbsXWo7C.js";
|
6
|
-
const g = /* @__PURE__ */
|
6
|
+
const g = /* @__PURE__ */ o({
|
7
7
|
name: "OButton",
|
8
8
|
__name: "Button",
|
9
|
-
setup(
|
10
|
-
return (t, e) => (n(),
|
9
|
+
setup(r) {
|
10
|
+
return (t, e) => (n(), s(u(_), null, {
|
11
11
|
default: l(() => [
|
12
12
|
a(t.$slots, "default")
|
13
13
|
]),
|
14
14
|
_: 3
|
15
15
|
}));
|
16
16
|
}
|
17
|
-
}), B = /* @__PURE__ */
|
17
|
+
}), B = /* @__PURE__ */ o({
|
18
18
|
name: "OButtongroup",
|
19
|
+
inheritAttrs: !1,
|
19
20
|
__name: "ButtonGroup",
|
20
21
|
props: {
|
21
22
|
gutter: { type: [Boolean, String] },
|
22
23
|
align: { default: "right" }
|
23
24
|
},
|
24
|
-
setup(
|
25
|
-
const t =
|
26
|
-
textAlign:
|
25
|
+
setup(r) {
|
26
|
+
const t = i(() => ({
|
27
|
+
textAlign: r.align
|
27
28
|
}));
|
28
|
-
return (e, h) => (n(),
|
29
|
-
style:
|
29
|
+
return (e, h) => (n(), p("div", {
|
30
|
+
style: m(t.value)
|
30
31
|
}, [
|
31
32
|
c(u(d), { gutter: e.gutter }, {
|
32
33
|
default: l(() => [
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/Button/ButtonGroup/ButtonGroup.vue","../../../src/components/Button/index.ts"],"sourcesContent":["<template>\r\n <div :style=\"style\">\r\n <space :gutter=\"gutter\"> <slot></slot> </space>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, CSSProperties } from 'vue'\r\nimport type { ButtonGroupProps } from './ButtonGroup'\r\nimport Space from '../../Space'\r\n\r\ndefineOptions({ name: 'OButtongroup' })\r\n\r\nconst { gutter, align = 'right' } = defineProps<ButtonGroupProps>()\r\nconst style = computed<CSSProperties>(() => {\r\n return {\r\n textAlign: align
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/Button/ButtonGroup/ButtonGroup.vue","../../../src/components/Button/index.ts"],"sourcesContent":["<template>\r\n <div :style=\"style\">\r\n <space :gutter=\"gutter\"> <slot></slot> </space>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, CSSProperties } from 'vue'\r\nimport type { ButtonGroupProps } from './ButtonGroup'\r\nimport Space from '../../Space'\r\n\r\ndefineOptions({ name: 'OButtongroup', inheritAttrs: false })\r\n\r\nconst { gutter, align = 'right' } = defineProps<ButtonGroupProps>()\r\nconst style = computed<CSSProperties>(() => {\r\n return {\r\n textAlign: align,\r\n }\r\n})\r\n</script>\r\n","import { withInstall } from '../_util'\r\n\r\nimport Button from './Button.vue'\r\nimport ButtonGroup from './ButtonGroup/ButtonGroup.vue'\r\n\r\nexport default withInstall<typeof Button, { ButtonGroup: typeof ButtonGroup }>(Button, {\r\n ButtonGroup\r\n})\r\n"],"names":["style","computed","__props","index","withInstall","Button","ButtonGroup"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAcM,UAAAA,IAAQC,EAAwB,OAC7B;AAAA,MACL,WAAWC,EAAA;AAAA,IAAA,EAEd;;;;;;;;;;;;ICbcC,IAAAC,EAAgEC,GAAQ;AAAA,EAAA,aACrFC;AACF,CAAC;"}
|
@@ -164,7 +164,7 @@ declare const _default: import('vue').DefineComponent<FileInputProps, {}, {}, {}
|
|
164
164
|
$root: import('vue').ComponentPublicInstance | null;
|
165
165
|
$parent: import('vue').ComponentPublicInstance | null;
|
166
166
|
$host: Element | null;
|
167
|
-
$emit: ((event: "input", value: string) => void) & ((event: "clear") => void) & ((event: "focus", evt: FocusEvent) => void) & ((event: "update:modelValue", value: string) => void) & ((event: "
|
167
|
+
$emit: ((event: "input", value: string) => void) & ((event: "clear") => void) & ((event: "focus", evt: FocusEvent) => void) & ((event: "update:modelValue", value: string) => void) & ((event: "blur", evt: FocusEvent) => void) & ((event: "change", value: string) => void) & ((event: "compositionend", evt: CompositionEvent) => void) & ((event: "compositionstart", evt: CompositionEvent) => void) & ((event: "compositionupdate", evt: CompositionEvent) => void) & ((event: "keydown", evt: Event | KeyboardEvent) => void) & ((event: "mouseenter", evt: MouseEvent) => void) & ((event: "mouseleave", evt: MouseEvent) => void);
|
168
168
|
$el: any;
|
169
169
|
$options: import('vue').ComponentOptionsBase<Readonly<import('vue').ExtractPropTypes<{
|
170
170
|
readonly ariaLabel: StringConstructor;
|
@@ -0,0 +1,15 @@
|
|
1
|
+
declare const _default: {
|
2
|
+
OFormString: string;
|
3
|
+
OFormSingleselect: string;
|
4
|
+
OFormMultiselect: string;
|
5
|
+
OFormRadiogroup: string;
|
6
|
+
OFormCheckboxgroup: string;
|
7
|
+
OFormCheckbox: string;
|
8
|
+
OFormSwitch: string;
|
9
|
+
OFormTextarea: string;
|
10
|
+
OFormPassword: string;
|
11
|
+
OFormDate: string;
|
12
|
+
OFormFile: string;
|
13
|
+
OFormDiy: string;
|
14
|
+
};
|
15
|
+
export default _default;
|
@@ -0,0 +1,18 @@
|
|
1
|
+
const r = {
|
2
|
+
OFormString: "blur",
|
3
|
+
OFormSingleselect: "change",
|
4
|
+
OFormMultiselect: "change",
|
5
|
+
OFormRadiogroup: "change",
|
6
|
+
OFormCheckboxgroup: "change",
|
7
|
+
OFormCheckbox: "change",
|
8
|
+
OFormSwitch: "change",
|
9
|
+
OFormTextarea: "blur",
|
10
|
+
OFormPassword: "blur",
|
11
|
+
OFormDate: "blur",
|
12
|
+
OFormFile: "blur",
|
13
|
+
OFormDiy: "blur"
|
14
|
+
};
|
15
|
+
export {
|
16
|
+
r as default
|
17
|
+
};
|
18
|
+
//# sourceMappingURL=FormItemValidateTrigger.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"FormItemValidateTrigger.js","sources":["../../../../src/components/Form/hooks/FormItemValidateTrigger.ts"],"sourcesContent":["export default {\r\n OFormString: 'blur',\r\n OFormSingleselect: 'change',\r\n OFormMultiselect: 'change',\r\n OFormRadiogroup: 'change',\r\n OFormCheckboxgroup: 'change',\r\n OFormCheckbox: 'change',\r\n OFormSwitch: 'change',\r\n OFormTextarea: 'blur',\r\n OFormPassword: 'blur',\r\n OFormDate: 'blur',\r\n OFormFile: 'blur',\r\n OFormDiy: 'blur',\r\n}\r\n"],"names":["formItemValidateTrigger"],"mappings":"AAAA,MAAeA,IAAA;AAAA,EACb,aAAa;AAAA,EACb,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,oBAAoB;AAAA,EACpB,eAAe;AAAA,EACf,aAAa;AAAA,EACb,eAAe;AAAA,EACf,eAAe;AAAA,EACf,WAAW;AAAA,EACX,WAAW;AAAA,EACX,UAAU;AACZ;"}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import { CodeItem } from '../../types';
|
2
|
+
declare const useFormContext: () => import('..').FormContext | undefined;
|
3
|
+
declare const useFormItemSpan: () => import('vue').ComputedRef<number>;
|
4
|
+
declare const useFormItemRules: () => import('vue').ComputedRef<import('element-plus').FormItemRule[]>;
|
5
|
+
declare const useFormItemDisabled: () => import('vue').ComputedRef<boolean>;
|
6
|
+
declare const useFormItemCode: () => import('vue').ComputedRef<CodeItem[]>;
|
7
|
+
declare const useFormItemStringModel: () => import('vue').WritableComputedRef<string, string>;
|
8
|
+
declare const useFormItemMultiModel: () => import('vue').WritableComputedRef<string[] | undefined, string[] | undefined>;
|
9
|
+
declare const useFormItemBooleanModel: () => import('vue').WritableComputedRef<boolean, boolean>;
|
10
|
+
export { useFormContext, useFormItemSpan, useFormItemRules, useFormItemDisabled, useFormItemCode, useFormItemStringModel, useFormItemMultiModel, useFormItemBooleanModel, };
|
@@ -0,0 +1,83 @@
|
|
1
|
+
import { inject as C, getCurrentInstance as s, computed as n } from "vue";
|
2
|
+
import { formContextKey as M } from "../Form.js";
|
3
|
+
import V from "../../../Throne/index.js";
|
4
|
+
import { castArray as p, isString as x, isArray as I } from "lodash-es";
|
5
|
+
import f from "../../../error/OrionError.js";
|
6
|
+
import F from "./FormItemValidateTrigger.js";
|
7
|
+
const u = () => C(M), S = () => {
|
8
|
+
const e = u(), { props: r } = s();
|
9
|
+
return n(() => r.span ? r.span : e.itemSpan);
|
10
|
+
}, O = () => {
|
11
|
+
const e = u(), { props: r, type: o } = s(), { name: t, label: l, required: m } = r;
|
12
|
+
let a = F[o.name];
|
13
|
+
return a || (a = "change"), n(() => {
|
14
|
+
const c = [];
|
15
|
+
let i = !0;
|
16
|
+
return m && (r.rules && (c.push(...p(r.rules)), i = !c.some((d) => Object.keys(d).includes("required"))), e.rules && e.rules[t] && (i = !p(e.rules[t]).some((g) => Object.keys(g).includes("required")))), i && c.push({
|
17
|
+
required: !0,
|
18
|
+
message: `必填项[${l || t}]不能为空`,
|
19
|
+
trigger: a
|
20
|
+
}), c;
|
21
|
+
});
|
22
|
+
}, R = () => {
|
23
|
+
const e = u(), { props: r } = s();
|
24
|
+
return n(() => e.disabled || r.disabled);
|
25
|
+
}, k = () => {
|
26
|
+
let e;
|
27
|
+
const { props: r } = s(), { code: o } = r;
|
28
|
+
if (o)
|
29
|
+
if (x(o))
|
30
|
+
e = V.getCode(o).value;
|
31
|
+
else if (I(o))
|
32
|
+
e = o;
|
33
|
+
else
|
34
|
+
throw new f("code类型错误");
|
35
|
+
else throw new f("code为空");
|
36
|
+
return n(() => e);
|
37
|
+
}, w = () => {
|
38
|
+
const e = u(), { props: r } = s(), { name: o } = r;
|
39
|
+
return n({
|
40
|
+
get: () => {
|
41
|
+
const t = e.modelValue[o];
|
42
|
+
return t || "";
|
43
|
+
},
|
44
|
+
set: (t) => {
|
45
|
+
t ? e.updateModelValue(o, t) : e.updateModelValue(o, "");
|
46
|
+
}
|
47
|
+
});
|
48
|
+
}, A = () => {
|
49
|
+
const e = u(), { props: r } = s(), { name: o } = r;
|
50
|
+
return n({
|
51
|
+
get: () => {
|
52
|
+
const t = e.modelValue[o];
|
53
|
+
if (t)
|
54
|
+
return t.split(",");
|
55
|
+
},
|
56
|
+
set: (t) => {
|
57
|
+
t ? e.updateModelValue(o, t.join(",")) : e.updateModelValue(o, "");
|
58
|
+
}
|
59
|
+
});
|
60
|
+
}, D = () => {
|
61
|
+
const e = u(), { props: r } = s(), { name: o } = r;
|
62
|
+
return n({
|
63
|
+
get: () => {
|
64
|
+
const t = e.modelValue[o];
|
65
|
+
return t ? t == "1" : !1;
|
66
|
+
},
|
67
|
+
set: (t) => {
|
68
|
+
const l = e.modelValue[o], m = t ? "1" : "0";
|
69
|
+
(l || t) && e.updateModelValue(o, m);
|
70
|
+
}
|
71
|
+
});
|
72
|
+
};
|
73
|
+
export {
|
74
|
+
u as useFormContext,
|
75
|
+
D as useFormItemBooleanModel,
|
76
|
+
k as useFormItemCode,
|
77
|
+
R as useFormItemDisabled,
|
78
|
+
A as useFormItemMultiModel,
|
79
|
+
O as useFormItemRules,
|
80
|
+
S as useFormItemSpan,
|
81
|
+
w as useFormItemStringModel
|
82
|
+
};
|
83
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/Form/hooks/index.ts"],"sourcesContent":["import { inject, getCurrentInstance, computed } from 'vue'\r\nimport { formContextKey, FormItemRule } from '../Form'\r\nimport Throne from '../../../Throne'\r\nimport { CodeItem } from '../../types'\r\nimport { castArray, isArray, isString } from 'lodash-es'\r\nimport OrionError from '../../../error/OrionError'\r\nimport formItemValidateTrigger from './FormItemValidateTrigger'\r\n\r\nconst useFormContext = () => {\r\n return inject(formContextKey)\r\n}\r\n\r\nconst useFormItemSpan = () => {\r\n const formContext = useFormContext()!\r\n const { props } = getCurrentInstance()!\r\n\r\n return computed(() => (props.span ? (props.span as number) : formContext.itemSpan))\r\n}\r\n\r\nconst useFormItemRules = () => {\r\n const formContext = useFormContext()!\r\n const { props, type } = getCurrentInstance()!\r\n const { name, label, required } = props\r\n let trigger = formItemValidateTrigger[type.name!]\r\n if (!trigger) {\r\n trigger = 'change'\r\n }\r\n\r\n return computed(() => {\r\n const rules: FormItemRule[] = []\r\n let flag = true\r\n\r\n if (required) {\r\n if (props.rules) {\r\n rules.push(...castArray(props.rules))\r\n flag = !rules.some((rule) => Object.keys(rule).includes('required'))\r\n }\r\n if (formContext.rules && formContext.rules[name as string]) {\r\n const formRules = castArray(formContext.rules[name as string])\r\n flag = !formRules.some((rule) => Object.keys(rule).includes('required'))\r\n }\r\n }\r\n\r\n if (flag) {\r\n rules.push({\r\n required: true,\r\n message: `必填项[${label ? label : name}]不能为空`,\r\n trigger: trigger,\r\n })\r\n }\r\n\r\n return rules\r\n })\r\n}\r\n\r\nconst useFormItemDisabled = () => {\r\n const formContext = useFormContext()!\r\n const { props } = getCurrentInstance()!\r\n return computed(() => formContext.disabled || (props.disabled as boolean))\r\n}\r\n\r\nconst useFormItemCode = () => {\r\n let codeData: Array<CodeItem>\r\n const { props } = getCurrentInstance()!\r\n const { code } = props\r\n if (!code) {\r\n throw new OrionError('code为空')\r\n } else if (isString(code)) {\r\n codeData = Throne.getCode(code).value\r\n } else if (isArray<CodeItem>(code)) {\r\n codeData = code\r\n } else {\r\n throw new OrionError('code类型错误')\r\n }\r\n return computed(() => codeData)\r\n}\r\n\r\nconst useFormItemStringModel = () => {\r\n const formContext = useFormContext()!\r\n const { props } = getCurrentInstance()!\r\n const { name } = props\r\n\r\n return computed<string>({\r\n get: () => {\r\n const value = formContext.modelValue[name as string]\r\n if (!value) {\r\n return ''\r\n }\r\n return value as string\r\n },\r\n set: (newValue) => {\r\n if (!newValue) {\r\n formContext.updateModelValue(name as string, '')\r\n } else {\r\n formContext.updateModelValue(name as string, newValue)\r\n }\r\n },\r\n })\r\n}\r\n\r\nconst useFormItemMultiModel = () => {\r\n const formContext = useFormContext()!\r\n const { props } = getCurrentInstance()!\r\n const { name } = props\r\n\r\n return computed<string[] | undefined>({\r\n get: () => {\r\n const value = formContext.modelValue[name as string]\r\n if (!value) {\r\n return undefined\r\n }\r\n return (value as string).split(',')\r\n },\r\n set: (newValue) => {\r\n if (!newValue) {\r\n formContext.updateModelValue(name as string, '')\r\n } else {\r\n formContext.updateModelValue(name as string, newValue.join(','))\r\n }\r\n },\r\n })\r\n}\r\n\r\nconst useFormItemBooleanModel = () => {\r\n const formContext = useFormContext()!\r\n const { props } = getCurrentInstance()!\r\n const { name } = props\r\n\r\n return computed<boolean>({\r\n get: () => {\r\n const value = formContext.modelValue[name as string]\r\n if (!value) {\r\n return false\r\n }\r\n return (value as string) == '1'\r\n },\r\n set: (_newValue) => {\r\n const oldValue = formContext.modelValue[name as string]\r\n const newValue = _newValue ? '1' : '0'\r\n if (oldValue) {\r\n formContext.updateModelValue(name as string, newValue)\r\n } else {\r\n if (_newValue) {\r\n formContext.updateModelValue(name as string, newValue)\r\n }\r\n }\r\n },\r\n })\r\n}\r\n\r\nexport {\r\n useFormContext,\r\n useFormItemSpan,\r\n useFormItemRules,\r\n useFormItemDisabled,\r\n useFormItemCode,\r\n useFormItemStringModel,\r\n useFormItemMultiModel,\r\n useFormItemBooleanModel,\r\n}\r\n"],"names":["useFormContext","inject","formContextKey","useFormItemSpan","formContext","props","getCurrentInstance","computed","useFormItemRules","type","name","label","required","trigger","formItemValidateTrigger","rules","flag","castArray","rule","useFormItemDisabled","useFormItemCode","codeData","code","isString","Throne","isArray","OrionError","useFormItemStringModel","value","newValue","useFormItemMultiModel","useFormItemBooleanModel","_newValue","oldValue"],"mappings":"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"}
|