orion-design 0.1.44 → 0.1.46

Sign up to get free protection for your applications and to get access to all the features.
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 +1 @@
1
- {"version":3,"file":"use-throne-context.js","sources":["../../../src/Throne/hooks/use-throne-context.ts"],"sourcesContent":["import { computed, getCurrentInstance, inject, provide, ref, unref } from 'vue'\r\n\r\nimport type { InjectionKey } from 'vue'\r\n\r\nexport const throneContextKey: InjectionKey<Ref<Record<string, any> | undefined>> = Symbol('throneContext')\r\n\r\nimport type { App, Ref } from 'vue'\r\nimport type { ThroneContextProviderContext } from '../../components/Throne/ThroneContextProvider'\r\n\r\n\r\nexport function useThroneContext(): Ref<Record<string, any> | undefined> | undefined {\r\n const context = inject(throneContextKey, undefined)\r\n return context\r\n}\r\n\r\nexport const provideThroneContext = (props: ThroneContextProviderContext) => {\r\n const context = computed(() => {\r\n return props.context || undefined\r\n })\r\n\r\n provide(throneContextKey, context)\r\n\r\n return context\r\n}\r\n"],"names":["throneContextKey","useThroneContext","inject","provideThroneContext","props","context","computed","provide"],"mappings":";AAIa,MAAAA,IAAuE,OAAO,eAAe;AAMnG,SAASC,IAAqE;AAE5E,SADSC,EAAOF,GAAkB,MAAS;AAEpD;AAEa,MAAAG,IAAuB,CAACC,MAAwC;AACrE,QAAAC,IAAUC,EAAS,MAChBF,EAAM,WAAW,MACzB;AAED,SAAAG,EAAQP,GAAkBK,CAAO,GAE1BA;AACT;"}
1
+ {"version":3,"file":"use-throne-context.js","sources":["../../../src/Throne/hooks/use-throne-context.ts"],"sourcesContent":["import { computed, getCurrentInstance, inject, provide, ref, unref } from 'vue'\n\nimport type { InjectionKey } from 'vue'\n\nexport const throneContextKey: InjectionKey<Ref<Record<string, any> | undefined>> = Symbol('throneContext')\n\nimport type { App, Ref } from 'vue'\nimport type { ThroneContextProviderContext } from '../../components/Throne/ThroneContextProvider'\n\n\nexport function useThroneContext(): Ref<Record<string, any> | undefined> | undefined {\n const context = inject(throneContextKey, undefined)\n return context\n}\n\nexport const provideThroneContext = (props: ThroneContextProviderContext) => {\n const context = computed(() => {\n return props.context || undefined\n })\n\n provide(throneContextKey, context)\n\n return context\n}\n"],"names":["throneContextKey","useThroneContext","inject","provideThroneContext","props","context","computed","provide"],"mappings":";AAIa,MAAAA,IAAuE,OAAO,eAAe;AAMnG,SAASC,IAAqE;AAE5E,SADSC,EAAOF,GAAkB,MAAS;AAEpD;AAEa,MAAAG,IAAuB,CAACC,MAAwC;AACrE,QAAAC,IAAUC,EAAS,MAChBF,EAAM,WAAW,MACzB;AAED,SAAAG,EAAQP,GAAkBK,CAAO,GAE1BA;AACT;"}
@@ -863,7 +863,7 @@ const Ke = /* @__PURE__ */ v({
863
863
  "label-width": l.labelWidth,
864
864
  required: l.required,
865
865
  rules: e(r)
866
- }, ae({
866
+ }, {
867
867
  default: d(() => [
868
868
  b(e(Ee), {
869
869
  modelValue: t.value,
@@ -879,39 +879,39 @@ const Ke = /* @__PURE__ */ v({
879
879
  controls: l.controls,
880
880
  "controls-position": l.controlsPosition,
881
881
  style: { width: "100%" }
882
- }, null, 8, ["modelValue", "placeholder", "disabled", "readonly", "min", "max", "step", "step-strictly", "precision", "controls", "controls-position"])
882
+ }, ae({ _: 2 }, [
883
+ e(i)["decrease-icon"] ? {
884
+ name: "decrease-icon",
885
+ fn: d(() => [
886
+ B(l.$slots, "decrease-icon")
887
+ ]),
888
+ key: "0"
889
+ } : void 0,
890
+ e(i)["increase-icon"] ? {
891
+ name: "increase-icon",
892
+ fn: d(() => [
893
+ B(l.$slots, "increase-icon")
894
+ ]),
895
+ key: "1"
896
+ } : void 0,
897
+ e(i).prefix ? {
898
+ name: "prefix",
899
+ fn: d(() => [
900
+ B(l.$slots, "prefix")
901
+ ]),
902
+ key: "2"
903
+ } : void 0,
904
+ e(i).suffix ? {
905
+ name: "suffix",
906
+ fn: d(() => [
907
+ B(l.$slots, "suffix")
908
+ ]),
909
+ key: "3"
910
+ } : void 0
911
+ ]), 1032, ["modelValue", "placeholder", "disabled", "readonly", "min", "max", "step", "step-strictly", "precision", "controls", "controls-position"])
883
912
  ]),
884
- _: 2
885
- }, [
886
- e(i)["decrease-icon"] ? {
887
- name: "decrease-icon",
888
- fn: d(() => [
889
- B(l.$slots, "decrease-icon")
890
- ]),
891
- key: "0"
892
- } : void 0,
893
- e(i)["increase-icon"] ? {
894
- name: "increase-icon",
895
- fn: d(() => [
896
- B(l.$slots, "increase-icon")
897
- ]),
898
- key: "1"
899
- } : void 0,
900
- e(i).prefix ? {
901
- name: "prefix",
902
- fn: d(() => [
903
- B(l.$slots, "prefix")
904
- ]),
905
- key: "2"
906
- } : void 0,
907
- e(i).suffix ? {
908
- name: "suffix",
909
- fn: d(() => [
910
- B(l.$slots, "suffix")
911
- ]),
912
- key: "3"
913
- } : void 0
914
- ]), 1032, ["prop", "label", "label-width", "required", "rules"])
913
+ _: 3
914
+ }, 8, ["prop", "label", "label-width", "required", "rules"])
915
915
  ]),
916
916
  _: 3
917
917
  }, 8, ["span"]));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/Form/Form.vue","../../../src/components/Form/StringInput/StringInput.vue","../../../src/components/Form/PasswordInput/PasswordInput.vue","../../../src/components/Form/Textarea/Textarea.vue","../../../src/components/Form/SingleSelect/SingleSelect.vue","../../../src/components/Form/MultiSelect/MultiSelect.vue","../../../src/components/Form/RadioGroup/RadioGroup.vue","../../../src/components/Form/CheckboxGroup/CheckboxGroup.vue","../../../src/components/Form/Checkbox/Checkbox.vue","../../../src/components/Form/Switch/Switch.vue","../../../src/components/Form/DateInput/DateInput.vue","../../../src/components/Form/FileInput/FileInput.vue","../../../src/components/Form/ButtonGroup/ButtonGroup.vue","../../../src/components/Form/DiyItem/DiyItem.vue","../../../src/components/Form/LovInput/LovInput.vue","../../../src/components/Form/NumberInput/NumberInput.vue","../../../src/components/Form/TableSelect/TableSelect.vue","../../../src/components/Form/index.ts"],"sourcesContent":["<template>\r\n <el-form ref=\"form\" :model=\"modelValue\" :rules=\"rules\" :label-width=\"itemLabelWidth\" :disabled=\"disabled\" class=\"orion-form\">\r\n <el-row :gutter=\"16\">\r\n <slot></slot>\r\n </el-row>\r\n </el-form>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { provide, reactive, toRef, useTemplateRef } from 'vue'\r\nimport { ElForm, ElRow } from 'element-plus'\r\nimport { type FormProps, type FormExpose, formContextKey } from './Form'\r\nimport OrionError from '../../error/OrionError'\r\nimport { difference, isEmpty } from 'lodash-es'\r\n\r\ndefineOptions({ name: 'OForm', inheritAttrs: false })\r\n\r\nconst { rules, itemSpan = 6, itemLabelWidth = 'auto', disabled = false, modelValue } = defineProps<FormProps>()\r\n\r\nconst emit = defineEmits(['update:modelValue'])\r\n\r\nconst updateModelValue = (name: string, value: any) => {\r\n if (!Object.keys(modelValue).includes(name)) {\r\n throw new OrionError(`modelValue中不存在[${name}]`)\r\n }\r\n emit('update:modelValue', { ...modelValue, [name]: value })\r\n}\r\n\r\nconst updateModelValueMulti = (data: Record<string, any>) => {\r\n const modelKeys = Object.keys(modelValue)\r\n const dataKeys = Object.keys(data)\r\n const diff = difference(dataKeys, modelKeys)\r\n if (!isEmpty(diff)) {\r\n throw new OrionError(`modelValue中不存在[${diff.join(',')}]`)\r\n }\r\n emit('update:modelValue', { ...modelValue, ...data })\r\n}\r\n\r\nconst formRef = useTemplateRef('form')\r\n\r\nconst validate: FormExpose['validate'] = async () => {\r\n return await formRef.value!.validate()\r\n}\r\n\r\ndefineExpose({\r\n validate,\r\n})\r\n\r\nprovide(\r\n formContextKey,\r\n reactive({\r\n modelValue: toRef(() => modelValue),\r\n updateModelValue,\r\n updateModelValueMulti,\r\n rules: toRef(() => rules),\r\n itemSpan: toRef(() => itemSpan),\r\n disabled: toRef(() => disabled),\r\n })\r\n)\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-input v-model=\"elModel\" :maxlength=\"maxlength\" :placeholder=\"placeholder\" :disabled=\"disabled\"\r\n :readonly=\"readonly\">\r\n <template v-if=\"slots.prefix\" #prefix>\r\n <slot name=\"prefix\"></slot>\r\n </template>\r\n <template v-if=\"slots.suffix\" #suffix>\r\n <slot name=\"suffix\"></slot>\r\n </template>\r\n <template v-if=\"slots.prepend\" #prepend>\r\n <slot name=\"prepend\"></slot>\r\n </template>\r\n <template v-if=\"slots.append\" #append>\r\n <slot name=\"append\"></slot>\r\n </template>\r\n </el-input>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElInput } from 'element-plus'\r\nimport type { StringInputProps } from './StringInput'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemStringModel } from '../hooks'\r\nimport { useSlots } from 'vue';\r\n\r\ndefineOptions({ name: 'OFormString', inheritAttrs: false })\r\nconst slots = useSlots()\r\n\r\nconst { name, label, labelWidth, required, maxlength, placeholder, disabled, readonly } = defineProps<StringInputProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst elModel = useFormItemStringModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-input v-model=\"elModel\" :maxlength=\"maxlength\" :placeholder=\"placeholder\" :disabled=\"disabled\" :readonly=\"readonly\" type=\"password\" />\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElInput } from 'element-plus'\r\nimport type { PasswordInputProps } from './PasswordInput'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemStringModel } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormPassword', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, required, maxlength, placeholder, disabled, readonly } = defineProps<PasswordInputProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst elModel = useFormItemStringModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-input\r\n v-model=\"elModel\"\r\n :maxlength=\"maxlength\"\r\n :placeholder=\"placeholder\"\r\n :disabled=\"disabled\"\r\n :readonly=\"readonly\"\r\n type=\"textarea\"\r\n :rows=\"rows\"\r\n :resize=\"'none'\"\r\n />\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElInput } from 'element-plus'\r\nimport type { TextareaProps } from './Textarea'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemStringModel } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormTextarea', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, required, maxlength, placeholder, disabled, readonly, rows } = defineProps<TextareaProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst elModel = useFormItemStringModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-input v-if=\"normalizedDisabled\" :model-value=\"content\" :placeholder=\"placeholder\" :disabled=\"true\" :readonly=\"true\" />\r\n <el-select v-else v-model=\"elModel\" :placeholder=\"placeholder\" :clearable=\"clearable\" :filterable=\"filterable\" @change=\"attrs.onChange as any\">\r\n <el-option v-for=\"codeItem in normalizedCode\" :key=\"codeItem.value\" :label=\"codeItem.content\" :value=\"codeItem.value\" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, useAttrs } from 'vue'\r\nimport { ElCol, ElFormItem, ElInput, ElSelect, ElOption } from 'element-plus'\r\nimport type { SingleSelectProps } from './SingleSelect'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemDisabled, useFormItemCode, useFormItemStringModel } from '../hooks'\r\nimport { getSingleCodeContent } from '../utils'\r\n\r\ndefineOptions({ name: 'OFormSingleselect', inheritAttrs: false })\r\nconst attrs = useAttrs()\r\n\r\nconst { name, label, labelWidth, required, placeholder, clearable, filterable } = defineProps<SingleSelectProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst normalizedDisabled = useFormItemDisabled()\r\nconst normalizedCode = useFormItemCode()\r\nconst elModel = useFormItemStringModel()\r\nconst content = computed(() => getSingleCodeContent(normalizedCode.value, elModel.value))\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-input v-if=\"normalizedDisabled\" :model-value=\"content\" :placeholder=\"placeholder\" :disabled=\"true\" :readonly=\"true\" />\r\n <el-select\r\n v-else\r\n v-model=\"elModel\"\r\n :placeholder=\"placeholder\"\r\n multiple\r\n :collapse-tags=\"collapseTags\"\r\n :collapse-tags-tooltip=\"collapseTagsTooltip\"\r\n @change=\"attrs.onChange as any\"\r\n >\r\n <el-option v-for=\"codeItem in normalizedCode\" :key=\"codeItem.value\" :label=\"codeItem.content\" :value=\"codeItem.value\" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, useAttrs } from 'vue'\r\nimport { ElCol, ElFormItem, ElInput, ElSelect, ElOption } from 'element-plus'\r\nimport type { MultiSelectProps } from './MultiSelect'\r\nimport { useFormContext, useFormItemSpan, useFormItemRules, useFormItemDisabled, useFormItemCode, useFormItemMultiModel } from '../hooks'\r\nimport { getMultiCodeContent } from '../utils'\r\n\r\ndefineOptions({ name: 'OFormMultiselect', inheritAttrs: false })\r\nconst attrs = useAttrs()\r\n\r\nconst { name, label, labelWidth, required, placeholder, collapseTags, collapseTagsTooltip } = defineProps<MultiSelectProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst normalizedDisabled = useFormItemDisabled()\r\nconst normalizedCode = useFormItemCode()\r\nconst elModel = useFormItemMultiModel()\r\nconst formContext = useFormContext()!\r\nconst content = computed(() => getMultiCodeContent(normalizedCode.value, formContext.modelValue[name]))\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-radio-group v-model=\"elModel\" :disabled=\"disabled\">\r\n <el-radio v-for=\"codeItem in normalizedCode\" :key=\"codeItem.value\" :value=\"codeItem.value\">\r\n {{ codeItem.content }}\r\n </el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElRadioGroup, ElRadio } from 'element-plus'\r\nimport type { RadioGroupProps } from './RadioGroup'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemCode, useFormItemStringModel } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormRadiogroup', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, required, disabled } = defineProps<RadioGroupProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst normalizedCode = useFormItemCode()\r\nconst elModel = useFormItemStringModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-checkbox-group v-model=\"elModel\" :disabled=\"disabled\">\r\n <el-checkbox v-for=\"codeItem in normalizedCode\" :key=\"codeItem.value\" :label=\"codeItem.content\" :value=\"codeItem.value\" />\r\n </el-checkbox-group>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElCheckboxGroup, ElCheckbox } from 'element-plus'\r\nimport type { CheckboxGroupProps } from './CheckboxGroup'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemCode, useFormItemMultiModel } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormCheckboxgroup', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, required, disabled } = defineProps<CheckboxGroupProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst normalizedCode = useFormItemCode()\r\nconst elModel = useFormItemMultiModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :rules=\"rules\">\r\n <el-checkbox v-model=\"elModel\" :disabled=\"disabled\"></el-checkbox>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElCheckbox } from 'element-plus'\r\nimport type { CheckboxProps } from './Checkbox'\r\nimport { useFormItemBooleanModel, useFormItemSpan } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormCheckbox', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, rules, disabled } = defineProps<CheckboxProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst elModel = useFormItemBooleanModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :rules=\"rules\">\r\n <el-switch v-model=\"elModel\" :disabled=\"disabled\" />\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElSwitch } from 'element-plus'\r\nimport type { SwitchProps } from './Switch'\r\nimport { useFormItemBooleanModel, useFormItemSpan } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormSwitch', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, rules, disabled } = defineProps<SwitchProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst elModel = useFormItemBooleanModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-time-picker\r\n v-if=\"isTimePicker\"\r\n v-model=\"elModel\"\r\n :placeholder=\"placeholder\"\r\n :disabled=\"disabled\"\r\n :readonly=\"readonly\"\r\n :editable=\"editable\"\r\n :clearable=\"clearable\"\r\n :format=\"normalizedSourceFormat\"\r\n arrow-control\r\n style=\"width: 100%\"\r\n />\r\n <el-date-picker\r\n v-else\r\n v-model=\"elModel\"\r\n :placeholder=\"placeholder\"\r\n :disabled=\"disabled\"\r\n :readonly=\"readonly\"\r\n :editable=\"editable\"\r\n :clearable=\"clearable\"\r\n :type=\"dateType\"\r\n :format=\"normalizedSourceFormat\"\r\n style=\"width: 100%\"\r\n />\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed } from 'vue'\r\nimport { ElCol, ElFormItem, ElDatePicker, ElTimePicker, dayjs } from 'element-plus'\r\nimport type { DateInputProps } from './DateInput'\r\nimport { useFormContext, useFormItemSpan, useFormItemRules } from '../hooks'\r\nimport { isDate, isString } from 'lodash-es'\r\nimport OrionError from '../../../error/OrionError'\r\n\r\ndefineOptions({ name: 'OFormDate', inheritAttrs: false })\r\n\r\nconst {\r\n name,\r\n label,\r\n labelWidth,\r\n required,\r\n placeholder,\r\n disabled,\r\n readonly,\r\n editable = true,\r\n clearable = true,\r\n format = 'YYYY-MM-DD',\r\n sourceFormat,\r\n} = defineProps<DateInputProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\n\r\nconst isTimePicker = computed(() => format.startsWith('H') || format.startsWith('h') || format.startsWith('m') || format.startsWith('s'))\r\n\r\nconst normalizedSourceFormat = computed(() => {\r\n if (sourceFormat) {\r\n return sourceFormat\r\n }\r\n if (isTimePicker.value) {\r\n return 'HH:mm:ss'\r\n } else {\r\n return 'YYYY-MM-DD'\r\n }\r\n})\r\n\r\nconst dateType = computed(() => {\r\n let picker: 'date' | 'year' | 'month' | 'datetime' = 'date'\r\n\r\n // 配置年 yyyy指年 YYYY指周年,年末年初的值可能有所变化\r\n if (format.indexOf('y') > -1 || format.indexOf('Y') > -1) {\r\n picker = 'year'\r\n }\r\n\r\n // 配置月,M指月份,m指分钟\r\n if (format.indexOf('M') > -1) {\r\n picker = 'month'\r\n }\r\n\r\n // 配置日,d指星期,D指月的天,DDD指年的天\r\n if (format.indexOf('d') > -1 || format.indexOf('D') > -1) {\r\n picker = 'date'\r\n }\r\n\r\n // 配置小时,H指24小时制(0~23),k指24小时制(1~24),h指12小时制,m指分钟,s指秒,S指小数秒\r\n if (\r\n format.indexOf('H') > -1 ||\r\n format.indexOf('h') > -1 ||\r\n format.indexOf('k') > -1 ||\r\n format.indexOf('m') > -1 ||\r\n format.indexOf('s') > -1 ||\r\n format.indexOf('S') > -1\r\n ) {\r\n picker = 'datetime'\r\n }\r\n\r\n return picker\r\n})\r\n\r\nconst formContext = useFormContext()!\r\nconst elModel = computed<Date | undefined>({\r\n get: () => {\r\n const value = formContext.modelValue[name]\r\n if (!value) {\r\n return undefined\r\n }\r\n if (isDate(value)) {\r\n return value as Date\r\n } else if (isString(value)) {\r\n const dayjsObj = dayjs(value, normalizedSourceFormat.value, true)\r\n if (!dayjsObj.isValid()) {\r\n throw new OrionError(`日期输入框的值无效,不符合${normalizedSourceFormat.value}格式`)\r\n }\r\n return dayjsObj.toDate()\r\n } else {\r\n throw new OrionError('日期输入框的值只能为字符串或日期类型')\r\n }\r\n },\r\n set: (newValue) => {\r\n if (sourceFormat) {\r\n if (!newValue) {\r\n formContext.updateModelValue(name, '')\r\n } else {\r\n formContext.updateModelValue(name, dayjs(newValue).format(normalizedSourceFormat.value))\r\n }\r\n } else {\r\n if (!newValue) {\r\n formContext.updateModelValue(name, undefined)\r\n } else {\r\n formContext.updateModelValue(name, newValue)\r\n }\r\n }\r\n },\r\n})\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-input ref=\"inputRef\" v-model=\"file\" :disabled=\"disabled\" type=\"file\" :validate-event=\"false\" />\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { onMounted, ref, useTemplateRef, watch } from 'vue'\r\nimport { ElCol, ElFormItem, ElInput } from 'element-plus'\r\nimport type { FileInputProps } from './FileInput'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemStringModel } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormFile', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, required, disabled } = defineProps<FileInputProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst elModel = useFormItemStringModel()\r\nwatch(elModel, () => {\r\n if (!elModel.value) {\r\n file.value = ''\r\n }\r\n})\r\n\r\nconst file = ref('')\r\nconst fileRef = useTemplateRef('inputRef')\r\nonMounted(() => {\r\n fileRef.value!.input!.onchange = (event) => {\r\n //@ts-ignore\r\n elModel.value = event?.target?.files[0]\r\n }\r\n file.value = ''\r\n})\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\" :style=\"style\">\r\n <space :gutter=\"gutter\" style=\"margin-bottom: var(--orion-form-validation-message-height)\"> <slot></slot> </space>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol } from 'element-plus'\r\nimport type { ButtonGroupProps } from './ButtonGroup'\r\nimport Space from '../../Space'\r\nimport { useFormItemSpan } from '../hooks'\r\nimport { computed, CSSProperties } from 'vue'\r\n\r\ndefineOptions({ name: 'OFormButtongroup', 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\r\nconst normalizedSpan = useFormItemSpan()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <slot></slot>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem } from 'element-plus'\r\nimport type { DiyItemProps } from './DiyItem'\r\nimport { useFormItemSpan, useFormItemRules } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormDiy', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, required } = defineProps<DiyItemProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-dropdown ref=\"dropdown\" :trigger=\"'click'\" @visible-change=\"onVisibleChange\" style=\"width: 100%\">\r\n <el-input ref=\"input\" v-model=\"elModel\" :maxlength=\"maxlength\" :placeholder=\"placeholder\" :disabled=\"disabled\"\r\n :readonly=\"readonly\" @input=\"onInput\" @keydown=\"onKeydown\" @change=\"onChange\" @blur=\"onBlur\"\r\n :suffix-icon=\"Search\" />\r\n <template #dropdown>\r\n <slot></slot>\r\n </template>\r\n </el-dropdown>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElInput, ElDropdown } from 'element-plus'\r\nimport { Search } from '@element-plus/icons-vue'\r\nimport { KeydownHandler, LovContext, lovContextKey, type LovInputProps } from './LovInput'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemStringModel, useFormContext } from '../hooks'\r\nimport { provide, reactive, ref, useTemplateRef } from 'vue'\r\nimport { isString } from 'lodash-es'\r\n\r\ndefineOptions({ name: 'OFormLov', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, required, maxlength, placeholder, disabled, readonly, fillMapping } = defineProps<LovInputProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst elModel = useFormItemStringModel()\r\nconst formContext = useFormContext()!\r\n\r\nconst visible = ref(false)\r\nconst onVisibleChange = (val: boolean) => {\r\n visible.value = val\r\n}\r\n\r\nconst changed = ref(false)\r\nconst onInput = () => {\r\n if (!changed.value) {\r\n changed.value = true\r\n }\r\n\r\n if (!visible.value) {\r\n dropdownRef.value!.handleOpen()\r\n }\r\n}\r\n\r\nlet keydownHandler: KeydownHandler | undefined\r\nconst registerKeydownHandler: LovContext['registerKeydownHandler'] = (handler) => {\r\n keydownHandler = handler\r\n}\r\n\r\nconst onKeydown = (e: any) => {\r\n const fallthroughCodes = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'Enter', 'Space']\r\n\r\n if (fallthroughCodes.indexOf(e.code) > -1) {\r\n if (visible.value) {\r\n keydownHandler && keydownHandler(e.code)\r\n }\r\n e.stopPropagation()\r\n }\r\n\r\n const triggerCodes = ['ArrowUp', 'ArrowDown']\r\n if (triggerCodes.indexOf(e.code) > -1 && !visible.value) {\r\n dropdownRef.value!.handleOpen()\r\n }\r\n}\r\n\r\nconst inputRef = useTemplateRef('input')\r\nconst onBlur = async (e: any) => {\r\n if (visible.value) {\r\n inputRef.value!.focus()\r\n }\r\n}\r\n\r\nconst onChange = () => {\r\n if (!changed.value) {\r\n return\r\n }\r\n\r\n if (isString(fillMapping)) {\r\n const data: Record<string, any> = {}\r\n\r\n const pairs = fillMapping.split(',')\r\n for (let i = 0; i < pairs.length; i++) {\r\n const dstName = pairs[i].split(':')[0].trim()\r\n data[dstName] = undefined\r\n }\r\n\r\n formContext.updateModelValueMulti(data)\r\n }\r\n}\r\n\r\nconst dropdownRef = useTemplateRef('dropdown')\r\nconst backfill: LovContext['backfill'] = (params) => {\r\n dropdownRef.value!.handleClose()\r\n\r\n if (isString(fillMapping)) {\r\n const data: Record<string, any> = {}\r\n\r\n const pairs = fillMapping.split(',')\r\n for (let i = 0; i < pairs.length; i++) {\r\n const dstName = pairs[i].split(':')[0].trim()\r\n const srcName = pairs[i].split(':')[1].trim()\r\n const srcValue = params[srcName]\r\n data[dstName] = srcValue\r\n }\r\n\r\n formContext.updateModelValueMulti(data)\r\n } else {\r\n fillMapping && fillMapping(params)\r\n }\r\n\r\n if (changed.value) {\r\n changed.value = false\r\n }\r\n}\r\n\r\nprovide(\r\n lovContextKey,\r\n reactive({\r\n lovValue: elModel,\r\n backfill,\r\n registerKeydownHandler,\r\n })\r\n)\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-input-number\r\n v-model=\"elModel\"\r\n :placeholder=\"placeholder\"\r\n :disabled=\"disabled\"\r\n :readonly=\"readonly\"\r\n :min=\"min\"\r\n :max=\"max\"\r\n :step=\"step\"\r\n :step-strictly=\"stepStrictly\"\r\n :precision=\"precision\"\r\n :controls=\"controls\"\r\n :controls-position=\"controlsPosition\"\r\n style=\"width: 100%\"\r\n />\r\n <template v-if=\"slots['decrease-icon']\" #decrease-icon>\r\n <slot name=\"decrease-icon\"></slot>\r\n </template>\r\n <template v-if=\"slots['increase-icon']\" #increase-icon>\r\n <slot name=\"increase-icon\"></slot>\r\n </template>\r\n <template v-if=\"slots['prefix']\" #prefix>\r\n <slot name=\"prefix\"></slot>\r\n </template>\r\n <template v-if=\"slots['suffix']\" #suffix>\r\n <slot name=\"suffix\"></slot>\r\n </template>\r\n\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElInputNumber } from 'element-plus'\r\nimport type { NumberInputProps } from './NumberInput'\r\nimport { useFormItemSpan, useFormItemRules, useFormContext } from '../hooks'\r\nimport { computed, useSlots } from 'vue'\r\nimport { isNumber, isString, toNumber } from 'lodash-es'\r\nimport OrionError from '../../../error/OrionError'\r\n\r\ndefineOptions({ name: 'OFormNumber', inheritAttrs: false })\r\nconst slots = useSlots()\r\n\r\nconst {\r\n name,\r\n label,\r\n labelWidth,\r\n required,\r\n placeholder,\r\n disabled,\r\n readonly,\r\n min,\r\n max,\r\n step,\r\n stepStrictly,\r\n precision,\r\n controls = true,\r\n controlsPosition,\r\n} = defineProps<NumberInputProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\n\r\nconst formContext = useFormContext()!\r\nconst elModel = computed<number | undefined>({\r\n get: () => {\r\n const value = formContext.modelValue[name]\r\n if (!value) {\r\n return undefined\r\n }\r\n if (isNumber(value)) {\r\n return value\r\n } else if (isString(value)) {\r\n return toNumber(value)\r\n } else {\r\n throw new OrionError('数字输入框的值只能为字符串或数字类型')\r\n }\r\n },\r\n set: (newValue) => {\r\n if (!newValue) {\r\n formContext.updateModelValue(name, undefined)\r\n } else {\r\n formContext.updateModelValue(name, newValue)\r\n }\r\n },\r\n})\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-dropdown ref=\"dropdown\" :trigger=\"'click'\" @visible-change=\"onVisibleChange\" style=\"width: 100%;\">\r\n <div @focus=\"onFocus\" :style=\"{ position: 'relative', width: '100%', height: '100%' }\">\r\n <el-input ref=\"input\" v-model=\"inputValue\" :maxlength=\"maxlength\" :placeholder=\"placeholder\"\r\n :disabled=\"disabled\" :readonly=\"readonly\" @input=\"onInput\" @keydown=\"onKeydown\" @blur=\"onBlur\"\r\n :suffix-icon=\"visible ? ArrowUp : ArrowDown\" />\r\n <div v-if=\"!visible\"\r\n :style=\"{ position: 'absolute', inset: '4px 30px 4px 4px', overflow: 'hidden', pointerEvents: 'none' }\">\r\n <o-space>\r\n <el-tag v-for=\"tag in tags\" type=\"info\">{{ tag }}</el-tag>\r\n </o-space>\r\n </div>\r\n </div>\r\n <template #dropdown>\r\n <slot></slot>\r\n </template>\r\n </el-dropdown>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElInput, ElDropdown, ElTag } from 'element-plus'\r\nimport { ArrowDown, ArrowUp } from '@element-plus/icons-vue'\r\nimport { RowCompletionProvider, TableSelectContext, tableSelectContext, type TableSelectProps } from './TableSelect'\r\nimport { useFormItemSpan, useFormItemRules, useFormContext } from '../hooks'\r\nimport { computed, onMounted, provide, reactive, ref, useTemplateRef, watch } from 'vue'\r\nimport { isArray, pick } from 'lodash-es'\r\nimport OrionError from '../../../error/OrionError'\r\n\r\ndefineOptions({ name: 'OFormTableselect', inheritAttrs: false })\r\n\r\nconst emit = defineEmits(['change'])\r\nconst { name, label, labelWidth, required, maxlength, placeholder, disabled, readonly, pick: pickup, tag } = defineProps<TableSelectProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\n\r\nconst inputValue = ref('')\r\nconst modifyByForm = ref(false)\r\nconst formContext = useFormContext()!\r\nconst elModel = computed<any[] | undefined>({\r\n get: () => {\r\n const value = formContext.modelValue[name]\r\n if (!value) {\r\n return undefined\r\n }\r\n if (!isArray(value)) {\r\n throw new OrionError('表格下拉框的值只能为数组类型')\r\n }\r\n return value\r\n },\r\n set: (newValue) => {\r\n modifyByForm.value = false\r\n if (!newValue) {\r\n formContext.updateModelValue(name, undefined)\r\n } else {\r\n formContext.updateModelValue(name, newValue)\r\n }\r\n },\r\n})\r\n\r\nconst selection = ref<any[] | undefined>([])\r\nonMounted(async () => {\r\n if (completionItemProvider) {\r\n selection.value = await completionItemProvider(elModel.value)\r\n if (selection.value) {\r\n tags.value = selection.value.map((item) => tag(item))\r\n }\r\n }\r\n})\r\nwatch(elModel, async () => {\r\n if (modifyByForm.value) {\r\n if (completionItemProvider) {\r\n selection.value = await completionItemProvider(elModel.value)\r\n if (selection.value) {\r\n tags.value = selection.value.map((item) => tag(item))\r\n }\r\n }\r\n } else {\r\n modifyByForm.value = true\r\n }\r\n})\r\n\r\nconst visible = ref(false)\r\nconst onVisibleChange = (val: boolean) => {\r\n visible.value = val\r\n}\r\nconst onInput = () => {\r\n if (!visible.value) {\r\n dropdownRef.value!.handleOpen()\r\n }\r\n}\r\n\r\nconst inputRef = useTemplateRef('input')\r\nconst onFocus = () => {\r\n inputRef.value!.focus()\r\n}\r\n\r\nconst onKeydown = (e: any) => {\r\n if (visible.value) {\r\n if (['Enter', 'Escape'].indexOf(e.code) > -1) {\r\n dropdownRef.value!.handleClose()\r\n } else if ('ArrowDown' == e.code) {\r\n e.stopPropagation()\r\n } else if ('Tab' == e.code) {\r\n visible.value = false\r\n dropdownRef.value!.handleClose()\r\n }\r\n } else {\r\n if (['ArrowUp', 'ArrowDown'].indexOf(e.code) > -1) {\r\n dropdownRef.value!.handleOpen()\r\n e.stopPropagation()\r\n }\r\n }\r\n}\r\n\r\nconst onBlur = async (e: any) => {\r\n if (visible.value) {\r\n inputRef.value!.focus()\r\n } else {\r\n inputValue.value = ''\r\n }\r\n}\r\n\r\nconst tags = ref<string[]>([])\r\nconst dropdownRef = useTemplateRef('dropdown')\r\nconst onSelect: TableSelectContext['onSelect'] = (selection, clear) => {\r\n elModel.value = selection.map((item) => pick(item, pickup))\r\n tags.value = selection.map((item) => tag(item))\r\n if (clear) {\r\n inputValue.value = ''\r\n }\r\n emit('change', selection)\r\n}\r\nconst selectDone: TableSelectContext['selectDone'] = () => {\r\n dropdownRef.value!.handleClose()\r\n}\r\n\r\nlet completionItemProvider: RowCompletionProvider | undefined\r\nconst registerRowCompletionProvider: TableSelectContext['registerRowCompletionProvider'] = (provider) => {\r\n completionItemProvider = provider\r\n}\r\n\r\nprovide(\r\n tableSelectContext,\r\n reactive({\r\n inputValue,\r\n selection,\r\n onSelect,\r\n selectDone,\r\n tag,\r\n registerRowCompletionProvider\r\n })\r\n)\r\n</script>","import { withInstall } from '../_util'\r\n\r\nimport Form from './Form.vue'\r\nimport StringInput from './StringInput/StringInput.vue'\r\nimport PasswordInput from './PasswordInput/PasswordInput.vue'\r\nimport Textarea from './Textarea/Textarea.vue'\r\nimport SingleSelect from './SingleSelect/SingleSelect.vue'\r\nimport MultiSelect from './MultiSelect/MultiSelect.vue'\r\nimport RadioGroup from './RadioGroup/RadioGroup.vue'\r\nimport CheckboxGroup from './CheckboxGroup/CheckboxGroup.vue'\r\nimport Checkbox from './Checkbox/Checkbox.vue'\r\nimport Switch from './Switch/Switch.vue'\r\nimport DateInput from './DateInput/DateInput.vue'\r\nimport FileInput from './FileInput/FileInput.vue'\r\nimport ButtonGroup from './ButtonGroup/ButtonGroup.vue'\r\nimport DiyItem from './DiyItem/DiyItem.vue'\r\nimport LovInput from './LovInput/LovInput.vue'\r\nimport NumberInput from './NumberInput/NumberInput.vue'\r\nimport TableSelect from './TableSelect/TableSelect.vue'\r\n\r\nexport default withInstall<\r\n typeof Form,\r\n {\r\n StringInput: typeof StringInput\r\n PasswordInput: typeof PasswordInput\r\n Textarea: typeof Textarea\r\n SingleSelect: typeof SingleSelect\r\n MultiSelect: typeof MultiSelect\r\n RadioGroup: typeof RadioGroup\r\n CheckboxGroup: typeof CheckboxGroup\r\n Checkbox: typeof Checkbox\r\n Switch: typeof Switch\r\n DateInput: typeof DateInput\r\n FileInput: typeof FileInput\r\n ButtonGroup: typeof ButtonGroup\r\n DiyItem: typeof DiyItem\r\n LovInput: typeof LovInput\r\n NumberInput: typeof NumberInput\r\n TableSelect: typeof TableSelect\r\n }\r\n>(Form, {\r\n StringInput,\r\n PasswordInput,\r\n Textarea,\r\n SingleSelect,\r\n MultiSelect,\r\n RadioGroup,\r\n CheckboxGroup,\r\n Checkbox,\r\n Switch,\r\n DateInput,\r\n FileInput,\r\n ButtonGroup,\r\n DiyItem,\r\n LovInput,\r\n NumberInput,\r\n TableSelect,\r\n})\r\n\r\nexport * from './Form'\r\nexport * from './StringInput'\r\nexport * from './PasswordInput'\r\nexport * from './Textarea'\r\nexport * from './SingleSelect'\r\nexport * from './MultiSelect'\r\nexport * from './RadioGroup'\r\nexport * from './CheckboxGroup'\r\nexport * from './Checkbox'\r\nexport * from './Switch'\r\nexport * from './DateInput'\r\nexport * from './FileInput'\r\nexport * from './ButtonGroup'\r\nexport * from './DiyItem'\r\nexport * from './LovInput'\r\nexport * from './NumberInput'\r\nexport * from './TableSelect'\r\n"],"names":["emit","__emit","updateModelValue","name","value","__props","OrionError","updateModelValueMulti","data","modelKeys","dataKeys","diff","difference","isEmpty","formRef","useTemplateRef","__expose","provide","formContextKey","reactive","toRef","slots","useSlots","normalizedSpan","useFormItemSpan","normalizedRules","useFormItemRules","elModel","useFormItemStringModel","attrs","useAttrs","normalizedDisabled","useFormItemDisabled","normalizedCode","useFormItemCode","content","computed","getSingleCodeContent","useFormItemMultiModel","formContext","useFormContext","getMultiCodeContent","useFormItemBooleanModel","isTimePicker","normalizedSourceFormat","dateType","picker","isDate","isString","dayjsObj","dayjs","newValue","watch","file","ref","fileRef","onMounted","event","_a","style","visible","onVisibleChange","val","changed","onInput","dropdownRef","keydownHandler","registerKeydownHandler","handler","onKeydown","e","inputRef","onBlur","onChange","pairs","i","dstName","lovContextKey","params","srcName","srcValue","isNumber","toNumber","inputValue","modifyByForm","isArray","selection","completionItemProvider","tags","item","onFocus","onSelect","clear","pick","selectDone","registerRowCompletionProvider","provider","tableSelectContext","index","withInstall","Form","StringInput","PasswordInput","Textarea","SingleSelect","MultiSelect","RadioGroup","CheckboxGroup","Checkbox","Switch","DateInput","FileInput","ButtonGroup","DiyItem","LovInput","NumberInput","TableSelect"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/Form/Form.vue","../../../src/components/Form/StringInput/StringInput.vue","../../../src/components/Form/PasswordInput/PasswordInput.vue","../../../src/components/Form/Textarea/Textarea.vue","../../../src/components/Form/SingleSelect/SingleSelect.vue","../../../src/components/Form/MultiSelect/MultiSelect.vue","../../../src/components/Form/RadioGroup/RadioGroup.vue","../../../src/components/Form/CheckboxGroup/CheckboxGroup.vue","../../../src/components/Form/Checkbox/Checkbox.vue","../../../src/components/Form/Switch/Switch.vue","../../../src/components/Form/DateInput/DateInput.vue","../../../src/components/Form/FileInput/FileInput.vue","../../../src/components/Form/ButtonGroup/ButtonGroup.vue","../../../src/components/Form/DiyItem/DiyItem.vue","../../../src/components/Form/LovInput/LovInput.vue","../../../src/components/Form/NumberInput/NumberInput.vue","../../../src/components/Form/TableSelect/TableSelect.vue","../../../src/components/Form/index.ts"],"sourcesContent":["<template>\r\n <el-form ref=\"form\" :model=\"modelValue\" :rules=\"rules\" :label-width=\"itemLabelWidth\" :disabled=\"disabled\" class=\"orion-form\">\r\n <el-row :gutter=\"16\">\r\n <slot></slot>\r\n </el-row>\r\n </el-form>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { provide, reactive, toRef, useTemplateRef } from 'vue'\r\nimport { ElForm, ElRow } from 'element-plus'\r\nimport { type FormProps, type FormExpose, formContextKey } from './Form'\r\nimport OrionError from '../../error/OrionError'\r\nimport { difference, isEmpty } from 'lodash-es'\r\n\r\ndefineOptions({ name: 'OForm', inheritAttrs: false })\r\n\r\nconst { rules, itemSpan = 6, itemLabelWidth = 'auto', disabled = false, modelValue } = defineProps<FormProps>()\r\n\r\nconst emit = defineEmits(['update:modelValue'])\r\n\r\nconst updateModelValue = (name: string, value: any) => {\r\n if (!Object.keys(modelValue).includes(name)) {\r\n throw new OrionError(`modelValue中不存在[${name}]`)\r\n }\r\n emit('update:modelValue', { ...modelValue, [name]: value })\r\n}\r\n\r\nconst updateModelValueMulti = (data: Record<string, any>) => {\r\n const modelKeys = Object.keys(modelValue)\r\n const dataKeys = Object.keys(data)\r\n const diff = difference(dataKeys, modelKeys)\r\n if (!isEmpty(diff)) {\r\n throw new OrionError(`modelValue中不存在[${diff.join(',')}]`)\r\n }\r\n emit('update:modelValue', { ...modelValue, ...data })\r\n}\r\n\r\nconst formRef = useTemplateRef('form')\r\n\r\nconst validate: FormExpose['validate'] = async () => {\r\n return await formRef.value!.validate()\r\n}\r\n\r\ndefineExpose({\r\n validate,\r\n})\r\n\r\nprovide(\r\n formContextKey,\r\n reactive({\r\n modelValue: toRef(() => modelValue),\r\n updateModelValue,\r\n updateModelValueMulti,\r\n rules: toRef(() => rules),\r\n itemSpan: toRef(() => itemSpan),\r\n disabled: toRef(() => disabled),\r\n })\r\n)\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-input v-model=\"elModel\" :maxlength=\"maxlength\" :placeholder=\"placeholder\" :disabled=\"disabled\"\r\n :readonly=\"readonly\">\r\n <template v-if=\"slots.prefix\" #prefix>\r\n <slot name=\"prefix\"></slot>\r\n </template>\r\n <template v-if=\"slots.suffix\" #suffix>\r\n <slot name=\"suffix\"></slot>\r\n </template>\r\n <template v-if=\"slots.prepend\" #prepend>\r\n <slot name=\"prepend\"></slot>\r\n </template>\r\n <template v-if=\"slots.append\" #append>\r\n <slot name=\"append\"></slot>\r\n </template>\r\n </el-input>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElInput } from 'element-plus'\r\nimport type { StringInputProps } from './StringInput'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemStringModel } from '../hooks'\r\nimport { useSlots } from 'vue';\r\n\r\ndefineOptions({ name: 'OFormString', inheritAttrs: false })\r\nconst slots = useSlots()\r\n\r\nconst { name, label, labelWidth, required, maxlength, placeholder, disabled, readonly } = defineProps<StringInputProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst elModel = useFormItemStringModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-input v-model=\"elModel\" :maxlength=\"maxlength\" :placeholder=\"placeholder\" :disabled=\"disabled\" :readonly=\"readonly\" type=\"password\" />\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElInput } from 'element-plus'\r\nimport type { PasswordInputProps } from './PasswordInput'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemStringModel } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormPassword', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, required, maxlength, placeholder, disabled, readonly } = defineProps<PasswordInputProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst elModel = useFormItemStringModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-input\r\n v-model=\"elModel\"\r\n :maxlength=\"maxlength\"\r\n :placeholder=\"placeholder\"\r\n :disabled=\"disabled\"\r\n :readonly=\"readonly\"\r\n type=\"textarea\"\r\n :rows=\"rows\"\r\n :resize=\"'none'\"\r\n />\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElInput } from 'element-plus'\r\nimport type { TextareaProps } from './Textarea'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemStringModel } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormTextarea', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, required, maxlength, placeholder, disabled, readonly, rows } = defineProps<TextareaProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst elModel = useFormItemStringModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-input v-if=\"normalizedDisabled\" :model-value=\"content\" :placeholder=\"placeholder\" :disabled=\"true\" :readonly=\"true\" />\r\n <el-select v-else v-model=\"elModel\" :placeholder=\"placeholder\" :clearable=\"clearable\" :filterable=\"filterable\" @change=\"attrs.onChange as any\">\r\n <el-option v-for=\"codeItem in normalizedCode\" :key=\"codeItem.value\" :label=\"codeItem.content\" :value=\"codeItem.value\" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, useAttrs } from 'vue'\r\nimport { ElCol, ElFormItem, ElInput, ElSelect, ElOption } from 'element-plus'\r\nimport type { SingleSelectProps } from './SingleSelect'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemDisabled, useFormItemCode, useFormItemStringModel } from '../hooks'\r\nimport { getSingleCodeContent } from '../utils'\r\n\r\ndefineOptions({ name: 'OFormSingleselect', inheritAttrs: false })\r\nconst attrs = useAttrs()\r\n\r\nconst { name, label, labelWidth, required, placeholder, clearable, filterable } = defineProps<SingleSelectProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst normalizedDisabled = useFormItemDisabled()\r\nconst normalizedCode = useFormItemCode()\r\nconst elModel = useFormItemStringModel()\r\nconst content = computed(() => getSingleCodeContent(normalizedCode.value, elModel.value))\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-input v-if=\"normalizedDisabled\" :model-value=\"content\" :placeholder=\"placeholder\" :disabled=\"true\" :readonly=\"true\" />\r\n <el-select\r\n v-else\r\n v-model=\"elModel\"\r\n :placeholder=\"placeholder\"\r\n multiple\r\n :collapse-tags=\"collapseTags\"\r\n :collapse-tags-tooltip=\"collapseTagsTooltip\"\r\n @change=\"attrs.onChange as any\"\r\n >\r\n <el-option v-for=\"codeItem in normalizedCode\" :key=\"codeItem.value\" :label=\"codeItem.content\" :value=\"codeItem.value\" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, useAttrs } from 'vue'\r\nimport { ElCol, ElFormItem, ElInput, ElSelect, ElOption } from 'element-plus'\r\nimport type { MultiSelectProps } from './MultiSelect'\r\nimport { useFormContext, useFormItemSpan, useFormItemRules, useFormItemDisabled, useFormItemCode, useFormItemMultiModel } from '../hooks'\r\nimport { getMultiCodeContent } from '../utils'\r\n\r\ndefineOptions({ name: 'OFormMultiselect', inheritAttrs: false })\r\nconst attrs = useAttrs()\r\n\r\nconst { name, label, labelWidth, required, placeholder, collapseTags, collapseTagsTooltip } = defineProps<MultiSelectProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst normalizedDisabled = useFormItemDisabled()\r\nconst normalizedCode = useFormItemCode()\r\nconst elModel = useFormItemMultiModel()\r\nconst formContext = useFormContext()!\r\nconst content = computed(() => getMultiCodeContent(normalizedCode.value, formContext.modelValue[name]))\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-radio-group v-model=\"elModel\" :disabled=\"disabled\">\r\n <el-radio v-for=\"codeItem in normalizedCode\" :key=\"codeItem.value\" :value=\"codeItem.value\">\r\n {{ codeItem.content }}\r\n </el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElRadioGroup, ElRadio } from 'element-plus'\r\nimport type { RadioGroupProps } from './RadioGroup'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemCode, useFormItemStringModel } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormRadiogroup', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, required, disabled } = defineProps<RadioGroupProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst normalizedCode = useFormItemCode()\r\nconst elModel = useFormItemStringModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-checkbox-group v-model=\"elModel\" :disabled=\"disabled\">\r\n <el-checkbox v-for=\"codeItem in normalizedCode\" :key=\"codeItem.value\" :label=\"codeItem.content\" :value=\"codeItem.value\" />\r\n </el-checkbox-group>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElCheckboxGroup, ElCheckbox } from 'element-plus'\r\nimport type { CheckboxGroupProps } from './CheckboxGroup'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemCode, useFormItemMultiModel } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormCheckboxgroup', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, required, disabled } = defineProps<CheckboxGroupProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst normalizedCode = useFormItemCode()\r\nconst elModel = useFormItemMultiModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :rules=\"rules\">\r\n <el-checkbox v-model=\"elModel\" :disabled=\"disabled\"></el-checkbox>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElCheckbox } from 'element-plus'\r\nimport type { CheckboxProps } from './Checkbox'\r\nimport { useFormItemBooleanModel, useFormItemSpan } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormCheckbox', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, rules, disabled } = defineProps<CheckboxProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst elModel = useFormItemBooleanModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :rules=\"rules\">\r\n <el-switch v-model=\"elModel\" :disabled=\"disabled\" />\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElSwitch } from 'element-plus'\r\nimport type { SwitchProps } from './Switch'\r\nimport { useFormItemBooleanModel, useFormItemSpan } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormSwitch', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, rules, disabled } = defineProps<SwitchProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst elModel = useFormItemBooleanModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-time-picker\r\n v-if=\"isTimePicker\"\r\n v-model=\"elModel\"\r\n :placeholder=\"placeholder\"\r\n :disabled=\"disabled\"\r\n :readonly=\"readonly\"\r\n :editable=\"editable\"\r\n :clearable=\"clearable\"\r\n :format=\"normalizedSourceFormat\"\r\n arrow-control\r\n style=\"width: 100%\"\r\n />\r\n <el-date-picker\r\n v-else\r\n v-model=\"elModel\"\r\n :placeholder=\"placeholder\"\r\n :disabled=\"disabled\"\r\n :readonly=\"readonly\"\r\n :editable=\"editable\"\r\n :clearable=\"clearable\"\r\n :type=\"dateType\"\r\n :format=\"normalizedSourceFormat\"\r\n style=\"width: 100%\"\r\n />\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed } from 'vue'\r\nimport { ElCol, ElFormItem, ElDatePicker, ElTimePicker, dayjs } from 'element-plus'\r\nimport type { DateInputProps } from './DateInput'\r\nimport { useFormContext, useFormItemSpan, useFormItemRules } from '../hooks'\r\nimport { isDate, isString } from 'lodash-es'\r\nimport OrionError from '../../../error/OrionError'\r\n\r\ndefineOptions({ name: 'OFormDate', inheritAttrs: false })\r\n\r\nconst {\r\n name,\r\n label,\r\n labelWidth,\r\n required,\r\n placeholder,\r\n disabled,\r\n readonly,\r\n editable = true,\r\n clearable = true,\r\n format = 'YYYY-MM-DD',\r\n sourceFormat,\r\n} = defineProps<DateInputProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\n\r\nconst isTimePicker = computed(() => format.startsWith('H') || format.startsWith('h') || format.startsWith('m') || format.startsWith('s'))\r\n\r\nconst normalizedSourceFormat = computed(() => {\r\n if (sourceFormat) {\r\n return sourceFormat\r\n }\r\n if (isTimePicker.value) {\r\n return 'HH:mm:ss'\r\n } else {\r\n return 'YYYY-MM-DD'\r\n }\r\n})\r\n\r\nconst dateType = computed(() => {\r\n let picker: 'date' | 'year' | 'month' | 'datetime' = 'date'\r\n\r\n // 配置年 yyyy指年 YYYY指周年,年末年初的值可能有所变化\r\n if (format.indexOf('y') > -1 || format.indexOf('Y') > -1) {\r\n picker = 'year'\r\n }\r\n\r\n // 配置月,M指月份,m指分钟\r\n if (format.indexOf('M') > -1) {\r\n picker = 'month'\r\n }\r\n\r\n // 配置日,d指星期,D指月的天,DDD指年的天\r\n if (format.indexOf('d') > -1 || format.indexOf('D') > -1) {\r\n picker = 'date'\r\n }\r\n\r\n // 配置小时,H指24小时制(0~23),k指24小时制(1~24),h指12小时制,m指分钟,s指秒,S指小数秒\r\n if (\r\n format.indexOf('H') > -1 ||\r\n format.indexOf('h') > -1 ||\r\n format.indexOf('k') > -1 ||\r\n format.indexOf('m') > -1 ||\r\n format.indexOf('s') > -1 ||\r\n format.indexOf('S') > -1\r\n ) {\r\n picker = 'datetime'\r\n }\r\n\r\n return picker\r\n})\r\n\r\nconst formContext = useFormContext()!\r\nconst elModel = computed<Date | undefined>({\r\n get: () => {\r\n const value = formContext.modelValue[name]\r\n if (!value) {\r\n return undefined\r\n }\r\n if (isDate(value)) {\r\n return value as Date\r\n } else if (isString(value)) {\r\n const dayjsObj = dayjs(value, normalizedSourceFormat.value, true)\r\n if (!dayjsObj.isValid()) {\r\n throw new OrionError(`日期输入框的值无效,不符合${normalizedSourceFormat.value}格式`)\r\n }\r\n return dayjsObj.toDate()\r\n } else {\r\n throw new OrionError('日期输入框的值只能为字符串或日期类型')\r\n }\r\n },\r\n set: (newValue) => {\r\n if (sourceFormat) {\r\n if (!newValue) {\r\n formContext.updateModelValue(name, '')\r\n } else {\r\n formContext.updateModelValue(name, dayjs(newValue).format(normalizedSourceFormat.value))\r\n }\r\n } else {\r\n if (!newValue) {\r\n formContext.updateModelValue(name, undefined)\r\n } else {\r\n formContext.updateModelValue(name, newValue)\r\n }\r\n }\r\n },\r\n})\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-input ref=\"inputRef\" v-model=\"file\" :disabled=\"disabled\" type=\"file\" :validate-event=\"false\" />\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { onMounted, ref, useTemplateRef, watch } from 'vue'\r\nimport { ElCol, ElFormItem, ElInput } from 'element-plus'\r\nimport type { FileInputProps } from './FileInput'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemStringModel } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormFile', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, required, disabled } = defineProps<FileInputProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst elModel = useFormItemStringModel()\r\nwatch(elModel, () => {\r\n if (!elModel.value) {\r\n file.value = ''\r\n }\r\n})\r\n\r\nconst file = ref('')\r\nconst fileRef = useTemplateRef('inputRef')\r\nonMounted(() => {\r\n fileRef.value!.input!.onchange = (event) => {\r\n //@ts-ignore\r\n elModel.value = event?.target?.files[0]\r\n }\r\n file.value = ''\r\n})\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\" :style=\"style\">\r\n <space :gutter=\"gutter\" style=\"margin-bottom: var(--orion-form-validation-message-height)\"> <slot></slot> </space>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol } from 'element-plus'\r\nimport type { ButtonGroupProps } from './ButtonGroup'\r\nimport Space from '../../Space'\r\nimport { useFormItemSpan } from '../hooks'\r\nimport { computed, CSSProperties } from 'vue'\r\n\r\ndefineOptions({ name: 'OFormButtongroup', 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\r\nconst normalizedSpan = useFormItemSpan()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <slot></slot>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem } from 'element-plus'\r\nimport type { DiyItemProps } from './DiyItem'\r\nimport { useFormItemSpan, useFormItemRules } from '../hooks'\r\n\r\ndefineOptions({ name: 'OFormDiy', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, required } = defineProps<DiyItemProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-dropdown ref=\"dropdown\" :trigger=\"'click'\" @visible-change=\"onVisibleChange\" style=\"width: 100%\">\r\n <el-input ref=\"input\" v-model=\"elModel\" :maxlength=\"maxlength\" :placeholder=\"placeholder\" :disabled=\"disabled\"\r\n :readonly=\"readonly\" @input=\"onInput\" @keydown=\"onKeydown\" @change=\"onChange\" @blur=\"onBlur\"\r\n :suffix-icon=\"Search\" />\r\n <template #dropdown>\r\n <slot></slot>\r\n </template>\r\n </el-dropdown>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElInput, ElDropdown } from 'element-plus'\r\nimport { Search } from '@element-plus/icons-vue'\r\nimport { KeydownHandler, LovContext, lovContextKey, type LovInputProps } from './LovInput'\r\nimport { useFormItemSpan, useFormItemRules, useFormItemStringModel, useFormContext } from '../hooks'\r\nimport { provide, reactive, ref, useTemplateRef } from 'vue'\r\nimport { isString } from 'lodash-es'\r\n\r\ndefineOptions({ name: 'OFormLov', inheritAttrs: false })\r\n\r\nconst { name, label, labelWidth, required, maxlength, placeholder, disabled, readonly, fillMapping } = defineProps<LovInputProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\nconst elModel = useFormItemStringModel()\r\nconst formContext = useFormContext()!\r\n\r\nconst visible = ref(false)\r\nconst onVisibleChange = (val: boolean) => {\r\n visible.value = val\r\n}\r\n\r\nconst changed = ref(false)\r\nconst onInput = () => {\r\n if (!changed.value) {\r\n changed.value = true\r\n }\r\n\r\n if (!visible.value) {\r\n dropdownRef.value!.handleOpen()\r\n }\r\n}\r\n\r\nlet keydownHandler: KeydownHandler | undefined\r\nconst registerKeydownHandler: LovContext['registerKeydownHandler'] = (handler) => {\r\n keydownHandler = handler\r\n}\r\n\r\nconst onKeydown = (e: any) => {\r\n const fallthroughCodes = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'Enter', 'Space']\r\n\r\n if (fallthroughCodes.indexOf(e.code) > -1) {\r\n if (visible.value) {\r\n keydownHandler && keydownHandler(e.code)\r\n }\r\n e.stopPropagation()\r\n }\r\n\r\n const triggerCodes = ['ArrowUp', 'ArrowDown']\r\n if (triggerCodes.indexOf(e.code) > -1 && !visible.value) {\r\n dropdownRef.value!.handleOpen()\r\n }\r\n}\r\n\r\nconst inputRef = useTemplateRef('input')\r\nconst onBlur = async (e: any) => {\r\n if (visible.value) {\r\n inputRef.value!.focus()\r\n }\r\n}\r\n\r\nconst onChange = () => {\r\n if (!changed.value) {\r\n return\r\n }\r\n\r\n if (isString(fillMapping)) {\r\n const data: Record<string, any> = {}\r\n\r\n const pairs = fillMapping.split(',')\r\n for (let i = 0; i < pairs.length; i++) {\r\n const dstName = pairs[i].split(':')[0].trim()\r\n data[dstName] = undefined\r\n }\r\n\r\n formContext.updateModelValueMulti(data)\r\n }\r\n}\r\n\r\nconst dropdownRef = useTemplateRef('dropdown')\r\nconst backfill: LovContext['backfill'] = (params) => {\r\n dropdownRef.value!.handleClose()\r\n\r\n if (isString(fillMapping)) {\r\n const data: Record<string, any> = {}\r\n\r\n const pairs = fillMapping.split(',')\r\n for (let i = 0; i < pairs.length; i++) {\r\n const dstName = pairs[i].split(':')[0].trim()\r\n const srcName = pairs[i].split(':')[1].trim()\r\n const srcValue = params[srcName]\r\n data[dstName] = srcValue\r\n }\r\n\r\n formContext.updateModelValueMulti(data)\r\n } else {\r\n fillMapping && fillMapping(params)\r\n }\r\n\r\n if (changed.value) {\r\n changed.value = false\r\n }\r\n}\r\n\r\nprovide(\r\n lovContextKey,\r\n reactive({\r\n lovValue: elModel,\r\n backfill,\r\n registerKeydownHandler,\r\n })\r\n)\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-input-number v-model=\"elModel\" :placeholder=\"placeholder\" :disabled=\"disabled\" :readonly=\"readonly\" :min=\"min\"\r\n :max=\"max\" :step=\"step\" :step-strictly=\"stepStrictly\" :precision=\"precision\" :controls=\"controls\"\r\n :controls-position=\"controlsPosition\" style=\"width: 100%\">\r\n <template v-if=\"slots['decrease-icon']\" #decrease-icon>\r\n <slot name=\"decrease-icon\"></slot>\r\n </template>\r\n <template v-if=\"slots['increase-icon']\" #increase-icon>\r\n <slot name=\"increase-icon\"></slot>\r\n </template>\r\n <template v-if=\"slots['prefix']\" #prefix>\r\n <slot name=\"prefix\"></slot>\r\n </template>\r\n <template v-if=\"slots['suffix']\" #suffix>\r\n <slot name=\"suffix\"></slot>\r\n </template>\r\n </el-input-number>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElInputNumber } from 'element-plus'\r\nimport type { NumberInputProps } from './NumberInput'\r\nimport { useFormItemSpan, useFormItemRules, useFormContext } from '../hooks'\r\nimport { computed, useSlots } from 'vue'\r\nimport { isNumber, isString, toNumber } from 'lodash-es'\r\nimport OrionError from '../../../error/OrionError'\r\n\r\ndefineOptions({ name: 'OFormNumber', inheritAttrs: false })\r\nconst slots = useSlots()\r\n\r\nconst {\r\n name,\r\n label,\r\n labelWidth,\r\n required,\r\n placeholder,\r\n disabled,\r\n readonly,\r\n min,\r\n max,\r\n step,\r\n stepStrictly,\r\n precision,\r\n controls = true,\r\n controlsPosition,\r\n} = defineProps<NumberInputProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\n\r\nconst formContext = useFormContext()!\r\nconst elModel = computed<number | undefined>({\r\n get: () => {\r\n const value = formContext.modelValue[name]\r\n if (!value) {\r\n return undefined\r\n }\r\n if (isNumber(value)) {\r\n return value\r\n } else if (isString(value)) {\r\n return toNumber(value)\r\n } else {\r\n throw new OrionError('数字输入框的值只能为字符串或数字类型')\r\n }\r\n },\r\n set: (newValue) => {\r\n if (!newValue) {\r\n formContext.updateModelValue(name, undefined)\r\n } else {\r\n formContext.updateModelValue(name, newValue)\r\n }\r\n },\r\n})\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item :prop=\"name\" :label=\"label\" :label-width=\"labelWidth\" :required=\"required\" :rules=\"normalizedRules\">\r\n <el-dropdown ref=\"dropdown\" :trigger=\"'click'\" @visible-change=\"onVisibleChange\" style=\"width: 100%;\">\r\n <div @focus=\"onFocus\" :style=\"{ position: 'relative', width: '100%', height: '100%' }\">\r\n <el-input ref=\"input\" v-model=\"inputValue\" :maxlength=\"maxlength\" :placeholder=\"placeholder\"\r\n :disabled=\"disabled\" :readonly=\"readonly\" @input=\"onInput\" @keydown=\"onKeydown\" @blur=\"onBlur\"\r\n :suffix-icon=\"visible ? ArrowUp : ArrowDown\" />\r\n <div v-if=\"!visible\"\r\n :style=\"{ position: 'absolute', inset: '4px 30px 4px 4px', overflow: 'hidden', pointerEvents: 'none' }\">\r\n <o-space>\r\n <el-tag v-for=\"tag in tags\" type=\"info\">{{ tag }}</el-tag>\r\n </o-space>\r\n </div>\r\n </div>\r\n <template #dropdown>\r\n <slot></slot>\r\n </template>\r\n </el-dropdown>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ElCol, ElFormItem, ElInput, ElDropdown, ElTag } from 'element-plus'\r\nimport { ArrowDown, ArrowUp } from '@element-plus/icons-vue'\r\nimport { RowCompletionProvider, TableSelectContext, tableSelectContext, type TableSelectProps } from './TableSelect'\r\nimport { useFormItemSpan, useFormItemRules, useFormContext } from '../hooks'\r\nimport { computed, onMounted, provide, reactive, ref, useTemplateRef, watch } from 'vue'\r\nimport { isArray, pick } from 'lodash-es'\r\nimport OrionError from '../../../error/OrionError'\r\n\r\ndefineOptions({ name: 'OFormTableselect', inheritAttrs: false })\r\n\r\nconst emit = defineEmits(['change'])\r\nconst { name, label, labelWidth, required, maxlength, placeholder, disabled, readonly, pick: pickup, tag } = defineProps<TableSelectProps>()\r\nconst normalizedSpan = useFormItemSpan()\r\nconst normalizedRules = useFormItemRules()\r\n\r\nconst inputValue = ref('')\r\nconst modifyByForm = ref(false)\r\nconst formContext = useFormContext()!\r\nconst elModel = computed<any[] | undefined>({\r\n get: () => {\r\n const value = formContext.modelValue[name]\r\n if (!value) {\r\n return undefined\r\n }\r\n if (!isArray(value)) {\r\n throw new OrionError('表格下拉框的值只能为数组类型')\r\n }\r\n return value\r\n },\r\n set: (newValue) => {\r\n modifyByForm.value = false\r\n if (!newValue) {\r\n formContext.updateModelValue(name, undefined)\r\n } else {\r\n formContext.updateModelValue(name, newValue)\r\n }\r\n },\r\n})\r\n\r\nconst selection = ref<any[] | undefined>([])\r\nonMounted(async () => {\r\n if (completionItemProvider) {\r\n selection.value = await completionItemProvider(elModel.value)\r\n if (selection.value) {\r\n tags.value = selection.value.map((item) => tag(item))\r\n }\r\n }\r\n})\r\nwatch(elModel, async () => {\r\n if (modifyByForm.value) {\r\n if (completionItemProvider) {\r\n selection.value = await completionItemProvider(elModel.value)\r\n if (selection.value) {\r\n tags.value = selection.value.map((item) => tag(item))\r\n }\r\n }\r\n } else {\r\n modifyByForm.value = true\r\n }\r\n})\r\n\r\nconst visible = ref(false)\r\nconst onVisibleChange = (val: boolean) => {\r\n visible.value = val\r\n}\r\nconst onInput = () => {\r\n if (!visible.value) {\r\n dropdownRef.value!.handleOpen()\r\n }\r\n}\r\n\r\nconst inputRef = useTemplateRef('input')\r\nconst onFocus = () => {\r\n inputRef.value!.focus()\r\n}\r\n\r\nconst onKeydown = (e: any) => {\r\n if (visible.value) {\r\n if (['Enter', 'Escape'].indexOf(e.code) > -1) {\r\n dropdownRef.value!.handleClose()\r\n } else if ('ArrowDown' == e.code) {\r\n e.stopPropagation()\r\n } else if ('Tab' == e.code) {\r\n visible.value = false\r\n dropdownRef.value!.handleClose()\r\n }\r\n } else {\r\n if (['ArrowUp', 'ArrowDown'].indexOf(e.code) > -1) {\r\n dropdownRef.value!.handleOpen()\r\n e.stopPropagation()\r\n }\r\n }\r\n}\r\n\r\nconst onBlur = async (e: any) => {\r\n if (visible.value) {\r\n inputRef.value!.focus()\r\n } else {\r\n inputValue.value = ''\r\n }\r\n}\r\n\r\nconst tags = ref<string[]>([])\r\nconst dropdownRef = useTemplateRef('dropdown')\r\nconst onSelect: TableSelectContext['onSelect'] = (selection, clear) => {\r\n elModel.value = selection.map((item) => pick(item, pickup))\r\n tags.value = selection.map((item) => tag(item))\r\n if (clear) {\r\n inputValue.value = ''\r\n }\r\n emit('change', selection)\r\n}\r\nconst selectDone: TableSelectContext['selectDone'] = () => {\r\n dropdownRef.value!.handleClose()\r\n}\r\n\r\nlet completionItemProvider: RowCompletionProvider | undefined\r\nconst registerRowCompletionProvider: TableSelectContext['registerRowCompletionProvider'] = (provider) => {\r\n completionItemProvider = provider\r\n}\r\n\r\nprovide(\r\n tableSelectContext,\r\n reactive({\r\n inputValue,\r\n selection,\r\n onSelect,\r\n selectDone,\r\n tag,\r\n registerRowCompletionProvider\r\n })\r\n)\r\n</script>","import { withInstall } from '../_util'\r\n\r\nimport Form from './Form.vue'\r\nimport StringInput from './StringInput/StringInput.vue'\r\nimport PasswordInput from './PasswordInput/PasswordInput.vue'\r\nimport Textarea from './Textarea/Textarea.vue'\r\nimport SingleSelect from './SingleSelect/SingleSelect.vue'\r\nimport MultiSelect from './MultiSelect/MultiSelect.vue'\r\nimport RadioGroup from './RadioGroup/RadioGroup.vue'\r\nimport CheckboxGroup from './CheckboxGroup/CheckboxGroup.vue'\r\nimport Checkbox from './Checkbox/Checkbox.vue'\r\nimport Switch from './Switch/Switch.vue'\r\nimport DateInput from './DateInput/DateInput.vue'\r\nimport FileInput from './FileInput/FileInput.vue'\r\nimport ButtonGroup from './ButtonGroup/ButtonGroup.vue'\r\nimport DiyItem from './DiyItem/DiyItem.vue'\r\nimport LovInput from './LovInput/LovInput.vue'\r\nimport NumberInput from './NumberInput/NumberInput.vue'\r\nimport TableSelect from './TableSelect/TableSelect.vue'\r\n\r\nexport default withInstall<\r\n typeof Form,\r\n {\r\n StringInput: typeof StringInput\r\n PasswordInput: typeof PasswordInput\r\n Textarea: typeof Textarea\r\n SingleSelect: typeof SingleSelect\r\n MultiSelect: typeof MultiSelect\r\n RadioGroup: typeof RadioGroup\r\n CheckboxGroup: typeof CheckboxGroup\r\n Checkbox: typeof Checkbox\r\n Switch: typeof Switch\r\n DateInput: typeof DateInput\r\n FileInput: typeof FileInput\r\n ButtonGroup: typeof ButtonGroup\r\n DiyItem: typeof DiyItem\r\n LovInput: typeof LovInput\r\n NumberInput: typeof NumberInput\r\n TableSelect: typeof TableSelect\r\n }\r\n>(Form, {\r\n StringInput,\r\n PasswordInput,\r\n Textarea,\r\n SingleSelect,\r\n MultiSelect,\r\n RadioGroup,\r\n CheckboxGroup,\r\n Checkbox,\r\n Switch,\r\n DateInput,\r\n FileInput,\r\n ButtonGroup,\r\n DiyItem,\r\n LovInput,\r\n NumberInput,\r\n TableSelect,\r\n})\r\n\r\nexport * from './Form'\r\nexport * from './StringInput'\r\nexport * from './PasswordInput'\r\nexport * from './Textarea'\r\nexport * from './SingleSelect'\r\nexport * from './MultiSelect'\r\nexport * from './RadioGroup'\r\nexport * from './CheckboxGroup'\r\nexport * from './Checkbox'\r\nexport * from './Switch'\r\nexport * from './DateInput'\r\nexport * from './FileInput'\r\nexport * from './ButtonGroup'\r\nexport * from './DiyItem'\r\nexport * from './LovInput'\r\nexport * from './NumberInput'\r\nexport * from './TableSelect'\r\n"],"names":["emit","__emit","updateModelValue","name","value","__props","OrionError","updateModelValueMulti","data","modelKeys","dataKeys","diff","difference","isEmpty","formRef","useTemplateRef","__expose","provide","formContextKey","reactive","toRef","slots","useSlots","normalizedSpan","useFormItemSpan","normalizedRules","useFormItemRules","elModel","useFormItemStringModel","attrs","useAttrs","normalizedDisabled","useFormItemDisabled","normalizedCode","useFormItemCode","content","computed","getSingleCodeContent","useFormItemMultiModel","formContext","useFormContext","getMultiCodeContent","useFormItemBooleanModel","isTimePicker","normalizedSourceFormat","dateType","picker","isDate","isString","dayjsObj","dayjs","newValue","watch","file","ref","fileRef","onMounted","event","_a","style","visible","onVisibleChange","val","changed","onInput","dropdownRef","keydownHandler","registerKeydownHandler","handler","onKeydown","e","inputRef","onBlur","onChange","pairs","i","dstName","lovContextKey","params","srcName","srcValue","isNumber","toNumber","inputValue","modifyByForm","isArray","selection","completionItemProvider","tags","item","onFocus","onSelect","clear","pick","selectDone","registerRowCompletionProvider","provider","tableSelectContext","index","withInstall","Form","StringInput","PasswordInput","Textarea","SingleSelect","MultiSelect","RadioGroup","CheckboxGroup","Checkbox","Switch","DateInput","FileInput","ButtonGroup","DiyItem","LovInput","NumberInput","TableSelect"],"mappings":"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"}
@@ -30,6 +30,22 @@ declare function __VLS_template(): {
30
30
  type: BooleanConstructor;
31
31
  default: boolean;
32
32
  };
33
+ paginationPagerCount: {
34
+ type: import('vue').PropType<number>;
35
+ default: number;
36
+ };
37
+ paginationShowTotal: {
38
+ type: BooleanConstructor;
39
+ default: boolean;
40
+ };
41
+ paginationShowSizes: {
42
+ type: BooleanConstructor;
43
+ default: boolean;
44
+ };
45
+ paginationShowJumber: {
46
+ type: BooleanConstructor;
47
+ default: boolean;
48
+ };
33
49
  showRowNumber: {
34
50
  type: BooleanConstructor;
35
51
  default: boolean;
@@ -144,6 +160,22 @@ declare function __VLS_template(): {
144
160
  type: BooleanConstructor;
145
161
  default: boolean;
146
162
  };
163
+ paginationPagerCount: {
164
+ type: import('vue').PropType<number>;
165
+ default: number;
166
+ };
167
+ paginationShowTotal: {
168
+ type: BooleanConstructor;
169
+ default: boolean;
170
+ };
171
+ paginationShowSizes: {
172
+ type: BooleanConstructor;
173
+ default: boolean;
174
+ };
175
+ paginationShowJumber: {
176
+ type: BooleanConstructor;
177
+ default: boolean;
178
+ };
147
179
  showRowNumber: {
148
180
  type: BooleanConstructor;
149
181
  default: boolean;
@@ -242,6 +274,10 @@ declare function __VLS_template(): {
242
274
  };
243
275
  tailData: Record<string, any>;
244
276
  paginationTeleported: boolean;
277
+ paginationPagerCount: number;
278
+ paginationShowTotal: boolean;
279
+ paginationShowSizes: boolean;
280
+ paginationShowJumber: boolean;
245
281
  showRowNumber: boolean;
246
282
  selectionMode: boolean;
247
283
  currentRowMode: boolean;
@@ -305,6 +341,22 @@ declare function __VLS_template(): {
305
341
  type: BooleanConstructor;
306
342
  default: boolean;
307
343
  };
344
+ paginationPagerCount: {
345
+ type: import('vue').PropType<number>;
346
+ default: number;
347
+ };
348
+ paginationShowTotal: {
349
+ type: BooleanConstructor;
350
+ default: boolean;
351
+ };
352
+ paginationShowSizes: {
353
+ type: BooleanConstructor;
354
+ default: boolean;
355
+ };
356
+ paginationShowJumber: {
357
+ type: BooleanConstructor;
358
+ default: boolean;
359
+ };
308
360
  showRowNumber: {
309
361
  type: BooleanConstructor;
310
362
  default: boolean;
@@ -403,6 +455,10 @@ declare function __VLS_template(): {
403
455
  };
404
456
  tailData: Record<string, any>;
405
457
  paginationTeleported: boolean;
458
+ paginationPagerCount: number;
459
+ paginationShowTotal: boolean;
460
+ paginationShowSizes: boolean;
461
+ paginationShowJumber: boolean;
406
462
  showRowNumber: boolean;
407
463
  selectionMode: boolean;
408
464
  currentRowMode: boolean;
@@ -483,6 +539,22 @@ declare const __VLS_component: import('vue').DefineComponent<{
483
539
  type: BooleanConstructor;
484
540
  default: boolean;
485
541
  };
542
+ paginationPagerCount: {
543
+ type: import('vue').PropType<number>;
544
+ default: number;
545
+ };
546
+ paginationShowTotal: {
547
+ type: BooleanConstructor;
548
+ default: boolean;
549
+ };
550
+ paginationShowSizes: {
551
+ type: BooleanConstructor;
552
+ default: boolean;
553
+ };
554
+ paginationShowJumber: {
555
+ type: BooleanConstructor;
556
+ default: boolean;
557
+ };
486
558
  showRowNumber: {
487
559
  type: BooleanConstructor;
488
560
  default: boolean;
@@ -597,6 +669,22 @@ declare const __VLS_component: import('vue').DefineComponent<{
597
669
  type: BooleanConstructor;
598
670
  default: boolean;
599
671
  };
672
+ paginationPagerCount: {
673
+ type: import('vue').PropType<number>;
674
+ default: number;
675
+ };
676
+ paginationShowTotal: {
677
+ type: BooleanConstructor;
678
+ default: boolean;
679
+ };
680
+ paginationShowSizes: {
681
+ type: BooleanConstructor;
682
+ default: boolean;
683
+ };
684
+ paginationShowJumber: {
685
+ type: BooleanConstructor;
686
+ default: boolean;
687
+ };
600
688
  showRowNumber: {
601
689
  type: BooleanConstructor;
602
690
  default: boolean;
@@ -695,6 +783,10 @@ declare const __VLS_component: import('vue').DefineComponent<{
695
783
  };
696
784
  tailData: Record<string, any>;
697
785
  paginationTeleported: boolean;
786
+ paginationPagerCount: number;
787
+ paginationShowTotal: boolean;
788
+ paginationShowSizes: boolean;
789
+ paginationShowJumber: boolean;
698
790
  showRowNumber: boolean;
699
791
  selectionMode: boolean;
700
792
  currentRowMode: boolean;
@@ -758,6 +850,22 @@ declare const __VLS_component: import('vue').DefineComponent<{
758
850
  type: BooleanConstructor;
759
851
  default: boolean;
760
852
  };
853
+ paginationPagerCount: {
854
+ type: import('vue').PropType<number>;
855
+ default: number;
856
+ };
857
+ paginationShowTotal: {
858
+ type: BooleanConstructor;
859
+ default: boolean;
860
+ };
861
+ paginationShowSizes: {
862
+ type: BooleanConstructor;
863
+ default: boolean;
864
+ };
865
+ paginationShowJumber: {
866
+ type: BooleanConstructor;
867
+ default: boolean;
868
+ };
761
869
  showRowNumber: {
762
870
  type: BooleanConstructor;
763
871
  default: boolean;
@@ -856,6 +964,10 @@ declare const __VLS_component: import('vue').DefineComponent<{
856
964
  };
857
965
  tailData: Record<string, any>;
858
966
  paginationTeleported: boolean;
967
+ paginationPagerCount: number;
968
+ paginationShowTotal: boolean;
969
+ paginationShowSizes: boolean;
970
+ paginationShowJumber: boolean;
859
971
  showRowNumber: boolean;
860
972
  selectionMode: boolean;
861
973
  currentRowMode: boolean;
@@ -410,6 +410,22 @@ declare const _default: import('../_util').SFCWithInstall<{}> & {
410
410
  type: BooleanConstructor;
411
411
  default: boolean;
412
412
  };
413
+ paginationPagerCount: {
414
+ type: import('vue').PropType<number>;
415
+ default: number;
416
+ };
417
+ paginationShowTotal: {
418
+ type: BooleanConstructor;
419
+ default: boolean;
420
+ };
421
+ paginationShowSizes: {
422
+ type: BooleanConstructor;
423
+ default: boolean;
424
+ };
425
+ paginationShowJumber: {
426
+ type: BooleanConstructor;
427
+ default: boolean;
428
+ };
413
429
  showRowNumber: {
414
430
  type: BooleanConstructor;
415
431
  default: boolean;
@@ -524,6 +540,22 @@ declare const _default: import('../_util').SFCWithInstall<{}> & {
524
540
  type: BooleanConstructor;
525
541
  default: boolean;
526
542
  };
543
+ paginationPagerCount: {
544
+ type: import('vue').PropType<number>;
545
+ default: number;
546
+ };
547
+ paginationShowTotal: {
548
+ type: BooleanConstructor;
549
+ default: boolean;
550
+ };
551
+ paginationShowSizes: {
552
+ type: BooleanConstructor;
553
+ default: boolean;
554
+ };
555
+ paginationShowJumber: {
556
+ type: BooleanConstructor;
557
+ default: boolean;
558
+ };
527
559
  showRowNumber: {
528
560
  type: BooleanConstructor;
529
561
  default: boolean;
@@ -622,6 +654,10 @@ declare const _default: import('../_util').SFCWithInstall<{}> & {
622
654
  };
623
655
  tailData: Record<string, any>;
624
656
  paginationTeleported: boolean;
657
+ paginationPagerCount: number;
658
+ paginationShowTotal: boolean;
659
+ paginationShowSizes: boolean;
660
+ paginationShowJumber: boolean;
625
661
  showRowNumber: boolean;
626
662
  selectionMode: boolean;
627
663
  currentRowMode: boolean;
@@ -685,6 +721,22 @@ declare const _default: import('../_util').SFCWithInstall<{}> & {
685
721
  type: BooleanConstructor;
686
722
  default: boolean;
687
723
  };
724
+ paginationPagerCount: {
725
+ type: import('vue').PropType<number>;
726
+ default: number;
727
+ };
728
+ paginationShowTotal: {
729
+ type: BooleanConstructor;
730
+ default: boolean;
731
+ };
732
+ paginationShowSizes: {
733
+ type: BooleanConstructor;
734
+ default: boolean;
735
+ };
736
+ paginationShowJumber: {
737
+ type: BooleanConstructor;
738
+ default: boolean;
739
+ };
688
740
  showRowNumber: {
689
741
  type: BooleanConstructor;
690
742
  default: boolean;
@@ -783,6 +835,10 @@ declare const _default: import('../_util').SFCWithInstall<{}> & {
783
835
  };
784
836
  tailData: Record<string, any>;
785
837
  paginationTeleported: boolean;
838
+ paginationPagerCount: number;
839
+ paginationShowTotal: boolean;
840
+ paginationShowSizes: boolean;
841
+ paginationShowJumber: boolean;
786
842
  showRowNumber: boolean;
787
843
  selectionMode: boolean;
788
844
  currentRowMode: boolean;