orion-design 0.1.8 → 0.1.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.
Files changed (51) hide show
  1. package/README.md +5 -5
  2. package/dist/components/Button/index.js +11 -10
  3. package/dist/components/Button/index.js.map +1 -1
  4. package/dist/components/Form/FileInput/FileInput.vue.d.ts +1 -1
  5. package/dist/components/Form/hooks/FormItemValidateTrigger.d.ts +15 -0
  6. package/dist/components/Form/hooks/FormItemValidateTrigger.js +18 -0
  7. package/dist/components/Form/hooks/FormItemValidateTrigger.js.map +1 -0
  8. package/dist/components/Form/hooks/index.d.ts +10 -0
  9. package/dist/components/Form/hooks/index.js +83 -0
  10. package/dist/components/Form/hooks/index.js.map +1 -0
  11. package/dist/components/Form/index.js +180 -182
  12. package/dist/components/Form/index.js.map +1 -1
  13. package/dist/components/Pagetable/columns/PagetableCellButton.d.ts +7 -7
  14. package/dist/components/Pagetable/index.js +182 -180
  15. package/dist/components/Pagetable/index.js.map +1 -1
  16. package/dist/components/Pagetable/utils/index.js +82 -82
  17. package/dist/components/Pagetable/utils/index.js.map +1 -1
  18. package/dist/components/_util/arrays.js.map +1 -1
  19. package/dist/components/_util/browser.js.map +1 -1
  20. package/dist/components/_util/dom/aria.js.map +1 -1
  21. package/dist/components/_util/dom/element.js.map +1 -1
  22. package/dist/components/_util/dom/event.js.map +1 -1
  23. package/dist/components/_util/dom/position.js.map +1 -1
  24. package/dist/components/_util/dom/scroll.js.map +1 -1
  25. package/dist/components/_util/dom/style.js.map +1 -1
  26. package/dist/components/_util/easings.js.map +1 -1
  27. package/dist/components/_util/error.js.map +1 -1
  28. package/dist/components/_util/i18n.js.map +1 -1
  29. package/dist/components/_util/objects.js.map +1 -1
  30. package/dist/components/_util/raf.js.map +1 -1
  31. package/dist/components/_util/rand.js.map +1 -1
  32. package/dist/components/_util/strings.js.map +1 -1
  33. package/dist/components/_util/throttleByRaf.js.map +1 -1
  34. package/dist/components/_util/types.js.map +1 -1
  35. package/dist/components/_util/typescript.js.map +1 -1
  36. package/dist/components/_util/vue/global-node.js.map +1 -1
  37. package/dist/components/_util/vue/icon.js.map +1 -1
  38. package/dist/components/_util/vue/install.js.map +1 -1
  39. package/dist/components/_util/vue/props/runtime.js.map +1 -1
  40. package/dist/components/_util/vue/refs.js.map +1 -1
  41. package/dist/components/_util/vue/size.js.map +1 -1
  42. package/dist/components/_util/vue/validator.js.map +1 -1
  43. package/dist/components/_util/vue/vnode.js.map +1 -1
  44. package/dist/index.css +1 -1
  45. package/dist/version/version.d.ts +1 -1
  46. package/dist/version/version.js +1 -1
  47. package/dist/version/version.js.map +1 -1
  48. package/package.json +1 -1
  49. package/dist/components/Form/hooks/useForm.d.ts +0 -9
  50. package/dist/components/Form/hooks/useForm.js +0 -81
  51. 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 r, openBlock as n, createBlock as p, unref as u, withCtx as l, renderSlot as a, computed as m, createElementBlock as s, normalizeStyle as i, createVNode as c } from "vue";
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__ */ r({
6
+ const g = /* @__PURE__ */ o({
7
7
  name: "OButton",
8
8
  __name: "Button",
9
- setup(o) {
10
- return (t, e) => (n(), p(u(_), null, {
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__ */ r({
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(o) {
25
- const t = m(() => ({
26
- textAlign: o.align
25
+ setup(r) {
26
+ const t = i(() => ({
27
+ textAlign: r.align
27
28
  }));
28
- return (e, h) => (n(), s("div", {
29
- style: i(t.value)
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\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;MAEd;;;;;;;;;;;;ICbcC,IAAAC,EAAgEC,GAAQ;AAAA,EAAA,aACrFC;AACF,CAAC;"}
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: "change", value: string) => void) & ((event: "blur", evt: FocusEvent) => 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);
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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"}