orion-design 0.1.6 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dist/Throne/index.d.ts +2 -10
- package/dist/Throne/index.js.map +1 -1
- package/dist/components/Button/Button.vue.d.ts +15 -1
- package/dist/components/Button/ButtonGroup/ButtonGroup.d.ts +4 -0
- package/dist/components/Button/ButtonGroup/ButtonGroup.js +2 -0
- package/dist/components/Button/ButtonGroup/ButtonGroup.js.map +1 -0
- package/dist/components/Button/ButtonGroup/ButtonGroup.vue.d.ts +17 -0
- package/dist/components/Button/ButtonGroup/index.d.ts +1 -0
- package/dist/components/Button/ButtonGroup/index.js +2 -0
- package/dist/components/Button/ButtonGroup/index.js.map +1 -0
- package/dist/components/Button/index.d.ts +20 -1
- package/dist/components/Button/index.js +36 -18
- package/dist/components/Button/index.js.map +1 -1
- package/dist/components/Form/Checkbox/Checkbox.d.ts +0 -1
- package/dist/components/Form/DiyItem/DiyItem.d.ts +9 -0
- package/dist/components/Form/DiyItem/DiyItem.js +2 -0
- package/dist/components/Form/DiyItem/DiyItem.js.map +1 -0
- package/dist/components/Form/DiyItem/DiyItem.vue.d.ts +17 -0
- package/dist/components/Form/DiyItem/index.d.ts +1 -0
- package/dist/components/Form/DiyItem/index.js +2 -0
- package/dist/components/Form/DiyItem/index.js.map +1 -0
- package/dist/components/Form/FileInput/FileInput.vue.d.ts +2 -2
- package/dist/components/Form/Form.d.ts +4 -1
- package/dist/components/Form/Form.js.map +1 -1
- package/dist/components/Form/Form.vue.d.ts +6 -10
- package/dist/components/Form/Switch/Switch.d.ts +0 -1
- package/dist/components/Form/hooks/useForm.d.ts +4 -2
- package/dist/components/Form/hooks/useForm.js +71 -34
- package/dist/components/Form/hooks/useForm.js.map +1 -1
- package/dist/components/Form/index.d.ts +14 -19
- package/dist/components/Form/index.js +320 -284
- package/dist/components/Form/index.js.map +1 -1
- package/dist/components/_util/arrays.js.map +1 -1
- package/dist/components/_util/browser.js.map +1 -1
- package/dist/components/_util/dom/aria.js.map +1 -1
- package/dist/components/_util/dom/element.js.map +1 -1
- package/dist/components/_util/dom/event.js.map +1 -1
- package/dist/components/_util/dom/position.js.map +1 -1
- package/dist/components/_util/dom/scroll.js.map +1 -1
- package/dist/components/_util/dom/style.js.map +1 -1
- package/dist/components/_util/easings.js.map +1 -1
- package/dist/components/_util/error.js.map +1 -1
- package/dist/components/_util/i18n.js.map +1 -1
- package/dist/components/_util/objects.js.map +1 -1
- package/dist/components/_util/raf.js.map +1 -1
- package/dist/components/_util/rand.js.map +1 -1
- package/dist/components/_util/strings.js.map +1 -1
- package/dist/components/_util/throttleByRaf.js.map +1 -1
- package/dist/components/_util/types.js.map +1 -1
- package/dist/components/_util/typescript.js.map +1 -1
- package/dist/components/_util/vue/global-node.js.map +1 -1
- package/dist/components/_util/vue/icon.js.map +1 -1
- package/dist/components/_util/vue/install.js.map +1 -1
- package/dist/components/_util/vue/props/runtime.js.map +1 -1
- package/dist/components/_util/vue/refs.js.map +1 -1
- package/dist/components/_util/vue/size.js.map +1 -1
- package/dist/components/_util/vue/validator.js.map +1 -1
- package/dist/components/_util/vue/vnode.js.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/types.d.ts +11 -0
- package/dist/components/types.js +2 -0
- package/dist/components/types.js.map +1 -0
- package/dist/index.css +1 -1
- package/dist/version/version.d.ts +1 -1
- package/dist/version/version.js +1 -1
- package/dist/version/version.js.map +1 -1
- package/package.json +6 -3
@@ -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/index.ts"],"sourcesContent":["<template>\r\n <el-form\r\n ref=\"formRef\"\r\n v-model=\"model\"\r\n :model=\"model\"\r\n :rules=\"rules\"\r\n :label-width=\"labelWidth\"\r\n :disabled=\"disabled\"\r\n >\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, useTemplateRef } from 'vue'\r\nimport { ElForm, ElRow } from 'element-plus'\r\nimport { type FormProps, type FormExpose, formContextKey } from './Form'\r\n\r\ndefineOptions({ name: 'OForm' })\r\n\r\nconst {\r\n rules,\r\n itemSpan = 8,\r\n itemLabelWidth: labelWidth = 'auto',\r\n disabled = false\r\n} = defineProps<FormProps>()\r\nconst model = defineModel<Record<string, any>>()\r\n\r\nconst formRef = useTemplateRef('formRef')\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(formContextKey, {\r\n model: model.value!,\r\n rules,\r\n itemSpan\r\n})\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item\r\n :prop=\"name\"\r\n :label=\"label\"\r\n :label-width=\"labelWidth\"\r\n :required=\"required\"\r\n :rules=\"normalizedRules\"\r\n >\r\n <el-input\r\n v-model=\"itemModel\"\r\n :maxlength=\"maxlength\"\r\n :placeholder=\"placeholder\"\r\n :disabled=\"disabled\"\r\n :readonly=\"readonly\"\r\n />\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { toRef } from 'vue'\r\nimport { ElCol, ElFormItem, ElInput } from 'element-plus'\r\nimport type { StringInputProps } from './StringInput'\r\nimport { useFormContext, useFormSpan, useFormRules } from '../hooks/useForm'\r\n\r\ndefineOptions({ name: 'OFormString' })\r\n\r\nconst { name, label, labelWidth, required, maxlength, placeholder, disabled, readonly } =\r\n defineProps<StringInputProps>()\r\nconst normalizedSpan = useFormSpan()\r\nconst normalizedRules = useFormRules()\r\n\r\nconst formContext = useFormContext()!\r\nconst itemModel = toRef(formContext.model, name)\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item\r\n :prop=\"name\"\r\n :label=\"label\"\r\n :label-width=\"labelWidth\"\r\n :required=\"required\"\r\n :rules=\"normalizedRules\"\r\n >\r\n <el-input\r\n v-model=\"itemModel\"\r\n :maxlength=\"maxlength\"\r\n :placeholder=\"placeholder\"\r\n :disabled=\"disabled\"\r\n :readonly=\"readonly\"\r\n type=\"password\"\r\n />\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { toRef } from 'vue'\r\nimport { ElCol, ElFormItem, ElInput } from 'element-plus'\r\nimport type { PasswordInputProps } from './PasswordInput'\r\nimport { useFormContext, useFormSpan, useFormRules } from '../hooks/useForm'\r\n\r\ndefineOptions({ name: 'OFormPassword' })\r\n\r\nconst { name, label, labelWidth, required, maxlength, placeholder, disabled, readonly } =\r\n defineProps<PasswordInputProps>()\r\nconst normalizedSpan = useFormSpan()\r\nconst normalizedRules = useFormRules()\r\n\r\nconst formContext = useFormContext()!\r\nconst itemModel = toRef(formContext.model, name)\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item\r\n :prop=\"name\"\r\n :label=\"label\"\r\n :label-width=\"labelWidth\"\r\n :required=\"required\"\r\n :rules=\"normalizedRules\"\r\n >\r\n <el-input\r\n v-model=\"itemModel\"\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 { toRef } from 'vue'\r\nimport { ElCol, ElFormItem, ElInput } from 'element-plus'\r\nimport type { TextareaProps } from './Textarea'\r\nimport { useFormContext, useFormSpan, useFormRules } from '../hooks/useForm'\r\n\r\ndefineOptions({ name: 'OFormTextarea' })\r\n\r\nconst { name, label, labelWidth, required, maxlength, placeholder, disabled, readonly, rows } =\r\n defineProps<TextareaProps>()\r\nconst normalizedSpan = useFormSpan()\r\nconst normalizedRules = useFormRules()\r\n\r\nconst formContext = useFormContext()!\r\nconst itemModel = toRef(formContext.model, name)\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item\r\n :prop=\"name\"\r\n :label=\"label\"\r\n :label-width=\"labelWidth\"\r\n :required=\"required\"\r\n :rules=\"normalizedRules\"\r\n >\r\n <el-input\r\n v-if=\"normalizedDisabled\"\r\n :model-value=\"content\"\r\n :placeholder=\"placeholder\"\r\n :disabled=\"true\"\r\n :readonly=\"true\"\r\n />\r\n <el-select\r\n v-else\r\n v-model=\"itemModel\"\r\n :placeholder=\"placeholder\"\r\n :clearable=\"clearable\"\r\n :filterable=\"filterable\"\r\n >\r\n <el-option\r\n v-for=\"codeItem in normalizedCode\"\r\n :key=\"codeItem.value\"\r\n :label=\"codeItem.content\"\r\n :value=\"codeItem.value\"\r\n />\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, toRef } from 'vue'\r\nimport { ElCol, ElFormItem, ElInput, ElSelect, ElOption } from 'element-plus'\r\nimport type { SingleSelectProps } from './SingleSelect'\r\nimport {\r\n useFormContext,\r\n useFormSpan,\r\n useFormRules,\r\n useFormDisabled,\r\n useFormCode\r\n} from '../hooks/useForm'\r\nimport { getSingleCodeContent } from '../utils'\r\n\r\ndefineOptions({ name: 'OFormSingleselect' })\r\n\r\nconst { name, label, labelWidth, required, placeholder, clearable, filterable } =\r\n defineProps<SingleSelectProps>()\r\nconst normalizedSpan = useFormSpan()\r\nconst normalizedRules = useFormRules()\r\nconst normalizedDisabled = useFormDisabled()\r\nconst normalizedCode = useFormCode()\r\nconst content = computed(() => getSingleCodeContent(normalizedCode.value, itemModel.value))\r\n\r\nconst formContext = useFormContext()!\r\nconst itemModel = toRef(formContext.model, name)\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item\r\n :prop=\"name\"\r\n :label=\"label\"\r\n :label-width=\"labelWidth\"\r\n :required=\"required\"\r\n :rules=\"normalizedRules\"\r\n >\r\n <el-input\r\n v-if=\"normalizedDisabled\"\r\n :model-value=\"content\"\r\n :placeholder=\"placeholder\"\r\n :disabled=\"true\"\r\n :readonly=\"true\"\r\n />\r\n <el-select v-else v-model=\"elModel\" :placeholder=\"placeholder\" multiple>\r\n <el-option\r\n v-for=\"codeItem in normalizedCode\"\r\n :key=\"codeItem.value\"\r\n :label=\"codeItem.content\"\r\n :value=\"codeItem.value\"\r\n />\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, toRef } from 'vue'\r\nimport { ElCol, ElFormItem, ElInput, ElSelect, ElOption } from 'element-plus'\r\nimport type { MultiSelectProps } from './MultiSelect'\r\nimport {\r\n useFormContext,\r\n useFormSpan,\r\n useFormRules,\r\n useFormDisabled,\r\n useFormCode\r\n} from '../hooks/useForm'\r\nimport { getMultiCodeContent } from '../utils'\r\n\r\ndefineOptions({ name: 'OFormMultiselect' })\r\n\r\nconst { name, label, labelWidth, required, placeholder } = defineProps<MultiSelectProps>()\r\nconst normalizedSpan = useFormSpan()\r\nconst normalizedRules = useFormRules()\r\nconst normalizedDisabled = useFormDisabled()\r\nconst normalizedCode = useFormCode()\r\nconst content = computed(() => getMultiCodeContent(normalizedCode.value, itemModel.value))\r\n\r\nconst formContext = useFormContext()!\r\nconst itemModel = toRef(formContext.model, name)\r\nconst elModel = computed<string[]>({\r\n get: () => {\r\n if (!itemModel.value) {\r\n return []\r\n }\r\n return (itemModel.value as string).split(',')\r\n },\r\n set: (newValue) => {\r\n if (!newValue) {\r\n itemModel.value = ''\r\n } else {\r\n itemModel.value = newValue.join(',')\r\n }\r\n }\r\n})\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item\r\n :prop=\"name\"\r\n :label=\"label\"\r\n :label-width=\"labelWidth\"\r\n :required=\"required\"\r\n :rules=\"normalizedRules\"\r\n >\r\n <el-radio-group v-model=\"itemModel\" :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 { toRef } from 'vue'\r\nimport { ElCol, ElFormItem, ElRadioGroup, ElRadio } from 'element-plus'\r\nimport type { RadioGroupProps } from './RadioGroup'\r\nimport { useFormContext, useFormSpan, useFormRules, useFormCode } from '../hooks/useForm'\r\n\r\ndefineOptions({ name: 'OFormRadiogroup' })\r\n\r\nconst { name, label, labelWidth, required, disabled } = defineProps<RadioGroupProps>()\r\nconst normalizedSpan = useFormSpan()\r\nconst normalizedRules = useFormRules()\r\nconst normalizedCode = useFormCode()\r\n\r\nconst formContext = useFormContext()!\r\nconst itemModel = toRef(formContext.model, name)\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item\r\n :prop=\"name\"\r\n :label=\"label\"\r\n :label-width=\"labelWidth\"\r\n :required=\"required\"\r\n :rules=\"normalizedRules\"\r\n >\r\n <el-checkbox-group v-model=\"elModel\" :disabled=\"disabled\">\r\n <el-checkbox\r\n v-for=\"codeItem in normalizedCode\"\r\n :key=\"codeItem.value\"\r\n :label=\"codeItem.content\"\r\n :value=\"codeItem.value\"\r\n />\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 { computed, toRef } from 'vue'\r\nimport { ElCol, ElFormItem, ElCheckboxGroup, ElCheckbox } from 'element-plus'\r\nimport type { CheckboxGroupProps } from './CheckboxGroup'\r\nimport { useFormContext, useFormSpan, useFormRules, useFormCode } from '../hooks/useForm'\r\n\r\ndefineOptions({ name: 'OFormCheckboxgroup' })\r\n\r\nconst { name, label, labelWidth, required, disabled } = defineProps<CheckboxGroupProps>()\r\nconst normalizedSpan = useFormSpan()\r\nconst normalizedRules = useFormRules()\r\nconst normalizedCode = useFormCode()\r\n\r\nconst formContext = useFormContext()!\r\nconst itemModel = toRef(formContext.model, name)\r\nconst elModel = computed<string[]>({\r\n get: () => {\r\n if (!itemModel.value) {\r\n return []\r\n }\r\n return (itemModel.value as string).split(',')\r\n },\r\n set: (newValue) => {\r\n if (!newValue) {\r\n itemModel.value = ''\r\n } else {\r\n itemModel.value = newValue.join(',')\r\n }\r\n }\r\n})\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item\r\n :prop=\"name\"\r\n :label=\"label\"\r\n :label-width=\"labelWidth\"\r\n :required=\"required\"\r\n :rules=\"normalizedRules\"\r\n >\r\n <el-checkbox\r\n v-model=\"itemModel\"\r\n :disabled=\"disabled\"\r\n true-value=\"1\"\r\n false-value=\"0\"\r\n ></el-checkbox>\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { toRef } from 'vue'\r\nimport { ElCol, ElFormItem, ElCheckbox } from 'element-plus'\r\nimport type { CheckboxProps } from './Checkbox'\r\nimport { useFormContext, useFormSpan, useFormRules } from '../hooks/useForm'\r\n\r\ndefineOptions({ name: 'OFormCheckbox' })\r\n\r\nconst { name, label, labelWidth, required, disabled } = defineProps<CheckboxProps>()\r\nconst normalizedSpan = useFormSpan()\r\nconst normalizedRules = useFormRules()\r\n\r\nconst formContext = useFormContext()!\r\nconst itemModel = toRef(formContext.model, name)\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item\r\n :prop=\"name\"\r\n :label=\"label\"\r\n :label-width=\"labelWidth\"\r\n :required=\"required\"\r\n :rules=\"normalizedRules\"\r\n >\r\n <el-switch v-model=\"itemModel\" :disabled=\"disabled\" active-value=\"1\" inactive-value=\"0\" />\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { toRef } from 'vue'\r\nimport { ElCol, ElFormItem, ElSwitch } from 'element-plus'\r\nimport type { SwitchProps } from './Switch'\r\nimport { useFormContext, useFormSpan, useFormRules } from '../hooks/useForm'\r\n\r\ndefineOptions({ name: 'OFormSwitch' })\r\n\r\nconst { name, label, labelWidth, required, disabled } = defineProps<SwitchProps>()\r\nconst normalizedSpan = useFormSpan()\r\nconst normalizedRules = useFormRules()\r\n\r\nconst formContext = useFormContext()!\r\nconst itemModel = toRef(formContext.model, name)\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item\r\n :prop=\"name\"\r\n :label=\"label\"\r\n :label-width=\"labelWidth\"\r\n :required=\"required\"\r\n :rules=\"normalizedRules\"\r\n >\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 />\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 />\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, toRef } from 'vue'\r\nimport { ElCol, ElFormItem, ElDatePicker, ElTimePicker, dayjs } from 'element-plus'\r\nimport type { DateInputProps } from './DateInput'\r\nimport { useFormContext, useFormSpan, useFormRules } from '../hooks/useForm'\r\nimport { isDate, isString } from 'lodash-es'\r\nimport OrionError from '../../../error/OrionError'\r\n\r\ndefineOptions({ name: 'OFormDate' })\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,\r\n clearable,\r\n format = 'YYYY-MM-DD',\r\n sourceFormat\r\n} = defineProps<DateInputProps>()\r\nconst normalizedSpan = useFormSpan()\r\nconst normalizedRules = useFormRules()\r\n\r\nconst isTimePicker = computed(\r\n () =>\r\n format.startsWith('H') ||\r\n format.startsWith('h') ||\r\n format.startsWith('m') ||\r\n format.startsWith('s')\r\n)\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 itemModel = toRef(formContext.model, name)\r\nconst modelType = computed(() => {\r\n if (isString(itemModel.value)) {\r\n return 'string'\r\n } else if (isDate(itemModel.value)) {\r\n return 'date'\r\n } else {\r\n throw new OrionError('日期输入框的值只能为字符串或日期类型')\r\n }\r\n})\r\n\r\nconst elModel = computed<Date | undefined>({\r\n get: () => {\r\n if (!itemModel.value) {\r\n return undefined\r\n }\r\n if (modelType.value == 'date') {\r\n return itemModel.value\r\n } else {\r\n const dayjsObj = dayjs(itemModel.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 }\r\n },\r\n set: (newValue) => {\r\n if (modelType.value == 'date') {\r\n if (!newValue) {\r\n itemModel.value = undefined\r\n } else {\r\n itemModel.value = newValue\r\n }\r\n } else {\r\n if (!newValue) {\r\n itemModel.value = ''\r\n } else {\r\n itemModel.value = dayjs(newValue).format(normalizedSourceFormat.value)\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\r\n :prop=\"name\"\r\n :label=\"label\"\r\n :label-width=\"labelWidth\"\r\n :required=\"required\"\r\n :rules=\"normalizedRules\"\r\n >\r\n <el-input ref=\"fileRef\" v-model=\"file\" :disabled=\"disabled\" type=\"file\" />\r\n </el-form-item>\r\n </el-col>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { onMounted, ref, toRef, useTemplateRef } from 'vue'\r\nimport { ElCol, ElFormItem, ElInput } from 'element-plus'\r\nimport type { FileInputProps } from './FileInput'\r\nimport { useFormContext, useFormSpan, useFormRules } from '../hooks/useForm'\r\n\r\ndefineOptions({ name: 'OFormFile' })\r\n\r\nconst { name, label, labelWidth, required, disabled } = defineProps<FileInputProps>()\r\nconst normalizedSpan = useFormSpan()\r\nconst normalizedRules = useFormRules()\r\n\r\nconst file = ref('')\r\nconst fileRef = useTemplateRef('fileRef')\r\nonMounted(() => {\r\n fileRef.value!.input!.onchange = (event) => {\r\n //@ts-ignore\r\n itemModel.value = event?.target?.files[0]\r\n }\r\n})\r\n\r\nconst formContext = useFormContext()!\r\nconst itemModel = toRef(formContext.model, name)\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\" :style=\"style\">\r\n <space :gutter=\"gutter\" style=\"margin-bottom: 18px\"> <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 { useFormSpan } from '../hooks/useForm'\r\nimport { computed, CSSProperties } from 'vue'\r\n\r\ndefineOptions({ name: 'OFormButtongroup' })\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 = useFormSpan()\r\n</script>\r\n","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\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 }\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})\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\n"],"names":["model","_useModel","__props","formRef","useTemplateRef","__expose","provide","formContextKey","normalizedSpan","useFormSpan","normalizedRules","useFormRules","formContext","useFormContext","itemModel","toRef","normalizedDisabled","useFormDisabled","normalizedCode","useFormCode","content","computed","getSingleCodeContent","getMultiCodeContent","elModel","newValue","isTimePicker","normalizedSourceFormat","dateType","picker","modelType","isString","isDate","OrionError","dayjsObj","dayjs","file","ref","fileRef","onMounted","event","_a","style","index","withInstall","Form","StringInput","PasswordInput","Textarea","SingleSelect","MultiSelect","RadioGroup","CheckboxGroup","Checkbox","Switch","DateInput","FileInput","ButtonGroup"],"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/index.ts"],"sourcesContent":["<template>\r\n <el-form\r\n ref=\"form\"\r\n :model=\"modelValue\"\r\n :rules=\"rules\"\r\n :label-width=\"itemLabelWidth\"\r\n :disabled=\"disabled\"\r\n >\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\n\r\ndefineOptions({ name: 'OForm' })\r\n\r\nconst {\r\n rules,\r\n itemSpan = 6,\r\n itemLabelWidth = 'auto',\r\n disabled = false,\r\n modelValue\r\n} = defineProps<FormProps>()\r\n\r\nconst emit = defineEmits(['update:modelValue'])\r\n\r\nconst updateModelValue = (name: string, value: any) => {\r\n emit('update:modelValue', { ...modelValue, [name]: value })\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 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\r\n :prop=\"name\"\r\n :label=\"label\"\r\n :label-width=\"labelWidth\"\r\n :required=\"required\"\r\n :rules=\"normalizedRules\"\r\n >\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 />\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 { useFormSpan, useFormRules, useFormDirectModel } from '../hooks/useForm'\r\n\r\ndefineOptions({ name: 'OFormString', extendOptions: { trigger: 'blur' } })\r\n\r\nconst { name, label, labelWidth, required, maxlength, placeholder, disabled, readonly } =\r\n defineProps<StringInputProps>()\r\nconst normalizedSpan = useFormSpan()\r\nconst normalizedRules = useFormRules()\r\nconst elModel = useFormDirectModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item\r\n :prop=\"name\"\r\n :label=\"label\"\r\n :label-width=\"labelWidth\"\r\n :required=\"required\"\r\n :rules=\"normalizedRules\"\r\n >\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=\"password\"\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 { PasswordInputProps } from './PasswordInput'\r\nimport { useFormSpan, useFormRules, useFormDirectModel } from '../hooks/useForm'\r\n\r\ndefineOptions({ name: 'OFormPassword', extendOptions: { trigger: 'blur' } })\r\n\r\nconst { name, label, labelWidth, required, maxlength, placeholder, disabled, readonly } =\r\n defineProps<PasswordInputProps>()\r\nconst normalizedSpan = useFormSpan()\r\nconst normalizedRules = useFormRules()\r\nconst elModel = useFormDirectModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item\r\n :prop=\"name\"\r\n :label=\"label\"\r\n :label-width=\"labelWidth\"\r\n :required=\"required\"\r\n :rules=\"normalizedRules\"\r\n >\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 { useFormSpan, useFormRules, useFormDirectModel } from '../hooks/useForm'\r\n\r\ndefineOptions({ name: 'OFormTextarea', extendOptions: { trigger: 'blur' } })\r\n\r\nconst { name, label, labelWidth, required, maxlength, placeholder, disabled, readonly, rows } =\r\n defineProps<TextareaProps>()\r\nconst normalizedSpan = useFormSpan()\r\nconst normalizedRules = useFormRules()\r\nconst elModel = useFormDirectModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item\r\n :prop=\"name\"\r\n :label=\"label\"\r\n :label-width=\"labelWidth\"\r\n :required=\"required\"\r\n :rules=\"normalizedRules\"\r\n >\r\n <el-input\r\n v-if=\"normalizedDisabled\"\r\n :model-value=\"content\"\r\n :placeholder=\"placeholder\"\r\n :disabled=\"true\"\r\n :readonly=\"true\"\r\n />\r\n <el-select\r\n v-else\r\n v-model=\"elModel\"\r\n :placeholder=\"placeholder\"\r\n :clearable=\"clearable\"\r\n :filterable=\"filterable\"\r\n >\r\n <el-option\r\n v-for=\"codeItem in normalizedCode\"\r\n :key=\"codeItem.value\"\r\n :label=\"codeItem.content\"\r\n :value=\"codeItem.value\"\r\n />\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 } from 'vue'\r\nimport { ElCol, ElFormItem, ElInput, ElSelect, ElOption } from 'element-plus'\r\nimport type { SingleSelectProps } from './SingleSelect'\r\nimport {\r\n useFormSpan,\r\n useFormRules,\r\n useFormDisabled,\r\n useFormCode,\r\n useFormDirectModel\r\n} from '../hooks/useForm'\r\nimport { getSingleCodeContent } from '../utils'\r\n\r\ndefineOptions({ name: 'OFormSingleselect', extendOptions: {} })\r\n\r\nconst { name, label, labelWidth, required, placeholder, clearable, filterable } =\r\n defineProps<SingleSelectProps>()\r\nconst normalizedSpan = useFormSpan()\r\nconst normalizedRules = useFormRules()\r\nconst normalizedDisabled = useFormDisabled()\r\nconst normalizedCode = useFormCode()\r\nconst elModel = useFormDirectModel()\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\r\n :prop=\"name\"\r\n :label=\"label\"\r\n :label-width=\"labelWidth\"\r\n :required=\"required\"\r\n :rules=\"normalizedRules\"\r\n >\r\n <el-input\r\n v-if=\"normalizedDisabled\"\r\n :model-value=\"content\"\r\n :placeholder=\"placeholder\"\r\n :disabled=\"true\"\r\n :readonly=\"true\"\r\n />\r\n <el-select v-else v-model=\"elModel\" :placeholder=\"placeholder\" multiple>\r\n <el-option\r\n v-for=\"codeItem in normalizedCode\"\r\n :key=\"codeItem.value\"\r\n :label=\"codeItem.content\"\r\n :value=\"codeItem.value\"\r\n />\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 } from 'vue'\r\nimport { ElCol, ElFormItem, ElInput, ElSelect, ElOption } from 'element-plus'\r\nimport type { MultiSelectProps } from './MultiSelect'\r\nimport {\r\n useFormContext,\r\n useFormSpan,\r\n useFormRules,\r\n useFormDisabled,\r\n useFormCode,\r\n useFormMultiModel\r\n} from '../hooks/useForm'\r\nimport { getMultiCodeContent } from '../utils'\r\n\r\ndefineOptions({ name: 'OFormMultiselect', extendOptions: {} })\r\n\r\nconst { name, label, labelWidth, required, placeholder } = defineProps<MultiSelectProps>()\r\nconst normalizedSpan = useFormSpan()\r\nconst normalizedRules = useFormRules()\r\nconst normalizedDisabled = useFormDisabled()\r\nconst normalizedCode = useFormCode()\r\nconst elModel = useFormMultiModel()\r\nconst formContext = useFormContext()!\r\nconst content = computed(() =>\r\n getMultiCodeContent(normalizedCode.value, formContext.modelValue[name])\r\n)\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item\r\n :prop=\"name\"\r\n :label=\"label\"\r\n :label-width=\"labelWidth\"\r\n :required=\"required\"\r\n :rules=\"normalizedRules\"\r\n >\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 { useFormSpan, useFormRules, useFormCode, useFormDirectModel } from '../hooks/useForm'\r\n\r\ndefineOptions({ name: 'OFormRadiogroup', extendOptions: {} })\r\n\r\nconst { name, label, labelWidth, required, disabled } = defineProps<RadioGroupProps>()\r\nconst normalizedSpan = useFormSpan()\r\nconst normalizedRules = useFormRules()\r\nconst normalizedCode = useFormCode()\r\nconst elModel = useFormDirectModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item\r\n :prop=\"name\"\r\n :label=\"label\"\r\n :label-width=\"labelWidth\"\r\n :required=\"required\"\r\n :rules=\"normalizedRules\"\r\n >\r\n <el-checkbox-group v-model=\"elModel\" :disabled=\"disabled\">\r\n <el-checkbox\r\n v-for=\"codeItem in normalizedCode\"\r\n :key=\"codeItem.value\"\r\n :label=\"codeItem.content\"\r\n :value=\"codeItem.value\"\r\n />\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 { useFormSpan, useFormRules, useFormCode, useFormMultiModel } from '../hooks/useForm'\r\n\r\ndefineOptions({ name: 'OFormCheckboxgroup', extendOptions: {} })\r\n\r\nconst { name, label, labelWidth, required, disabled } = defineProps<CheckboxGroupProps>()\r\nconst normalizedSpan = useFormSpan()\r\nconst normalizedRules = useFormRules()\r\nconst normalizedCode = useFormCode()\r\nconst elModel = useFormMultiModel()\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 { useFormBooleanModel, useFormSpan } from '../hooks/useForm'\r\n\r\ndefineOptions({ name: 'OFormCheckbox', extendOptions: {} })\r\n\r\nconst { name, label, labelWidth, rules, disabled } = defineProps<CheckboxProps>()\r\nconst normalizedSpan = useFormSpan()\r\nconst elModel = useFormBooleanModel()\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 { useFormBooleanModel, useFormSpan } from '../hooks/useForm'\r\n\r\ndefineOptions({ name: 'OFormSwitch', extendOptions: {} })\r\n\r\nconst { name, label, labelWidth, rules, disabled } = defineProps<SwitchProps>()\r\nconst normalizedSpan = useFormSpan()\r\nconst elModel = useFormBooleanModel()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item\r\n :prop=\"name\"\r\n :label=\"label\"\r\n :label-width=\"labelWidth\"\r\n :required=\"required\"\r\n :rules=\"normalizedRules\"\r\n >\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, toRef } from 'vue'\r\nimport { ElCol, ElFormItem, ElDatePicker, ElTimePicker, dayjs } from 'element-plus'\r\nimport type { DateInputProps } from './DateInput'\r\nimport { useFormContext, useFormSpan, useFormRules } from '../hooks/useForm'\r\nimport { isDate, isString } from 'lodash-es'\r\nimport OrionError from '../../../error/OrionError'\r\n\r\ndefineOptions({ name: 'OFormDate', extendOptions: { trigger: 'blur' } })\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,\r\n clearable,\r\n format = 'YYYY-MM-DD',\r\n sourceFormat\r\n} = defineProps<DateInputProps>()\r\nconst normalizedSpan = useFormSpan()\r\nconst normalizedRules = useFormRules()\r\n\r\nconst isTimePicker = computed(\r\n () =>\r\n format.startsWith('H') ||\r\n format.startsWith('h') ||\r\n format.startsWith('m') ||\r\n format.startsWith('s')\r\n)\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 modelType = computed(() => {\r\n const value = formContext.modelValue[name as string]\r\n if (isString(value)) {\r\n return 'string'\r\n } else if (isDate(value)) {\r\n return 'date'\r\n } else {\r\n throw new OrionError('日期输入框的值只能为字符串或日期类型')\r\n }\r\n})\r\n\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 (modelType.value == 'date') {\r\n return value as Date\r\n } else {\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 }\r\n },\r\n set: (newValue) => {\r\n if (modelType.value == 'date') {\r\n if (!newValue) {\r\n formContext.updateModelValue(name, undefined)\r\n } else {\r\n formContext.updateModelValue(name, newValue)\r\n }\r\n } else {\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 }\r\n }\r\n})\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item\r\n :prop=\"name\"\r\n :label=\"label\"\r\n :label-width=\"labelWidth\"\r\n :required=\"required\"\r\n :rules=\"normalizedRules\"\r\n >\r\n <el-input\r\n ref=\"inputRef\"\r\n v-model=\"file\"\r\n :disabled=\"disabled\"\r\n type=\"file\"\r\n :validate-event=\"false\"\r\n />\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 { useFormSpan, useFormRules, useFormDirectModel } from '../hooks/useForm'\r\n\r\ndefineOptions({ name: 'OFormFile', extendOptions: {} })\r\n\r\nconst { name, label, labelWidth, required, disabled } = defineProps<FileInputProps>()\r\nconst normalizedSpan = useFormSpan()\r\nconst normalizedRules = useFormRules()\r\nconst elModel = useFormDirectModel()\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: 18px\"> <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 { useFormSpan } from '../hooks/useForm'\r\nimport { computed, CSSProperties } from 'vue'\r\n\r\ndefineOptions({ name: 'OFormButtongroup' })\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 = useFormSpan()\r\n</script>\r\n","<template>\r\n <el-col :span=\"normalizedSpan\">\r\n <el-form-item\r\n :prop=\"name\"\r\n :label=\"label\"\r\n :label-width=\"labelWidth\"\r\n :required=\"required\"\r\n :rules=\"normalizedRules\"\r\n >\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 { useFormSpan, useFormRules } from '../hooks/useForm'\r\n\r\ndefineOptions({ name: 'OFormDiy', extendOptions: {} })\r\n\r\nconst { name, label, labelWidth, required } = defineProps<DiyItemProps>()\r\nconst normalizedSpan = useFormSpan()\r\nconst normalizedRules = useFormRules()\r\n</script>\r\n","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\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 }\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})\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\n"],"names":["emit","__emit","updateModelValue","name","value","__props","formRef","useTemplateRef","__expose","provide","formContextKey","reactive","toRef","normalizedSpan","useFormSpan","normalizedRules","useFormRules","elModel","useFormDirectModel","normalizedDisabled","useFormDisabled","normalizedCode","useFormCode","content","computed","getSingleCodeContent","useFormMultiModel","formContext","useFormContext","getMultiCodeContent","useFormBooleanModel","isTimePicker","normalizedSourceFormat","dateType","picker","modelType","isString","isDate","OrionError","dayjsObj","dayjs","newValue","watch","file","ref","fileRef","onMounted","event","_a","style","index","withInstall","Form","StringInput","PasswordInput","Textarea","SingleSelect","MultiSelect","RadioGroup","CheckboxGroup","Checkbox","Switch","DateInput","FileInput","ButtonGroup","DiyItem"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"arrays.js","sources":["../../../src/components/_util/arrays.ts"],"sourcesContent":["export const unique = <T>(arr: T[]) => [...new Set(arr)]\
|
1
|
+
{"version":3,"file":"arrays.js","sources":["../../../src/components/_util/arrays.ts"],"sourcesContent":["export const unique = <T>(arr: T[]) => [...new Set(arr)]\n\ntype Many<T> = T | ReadonlyArray<T>\n// TODO: rename to `ensureArray`\n/** like `_.castArray`, except falsy value returns empty array. */\nexport const castArray = <T>(arr: Many<T>): T[] => {\n if (!arr && (arr as any) !== 0) return []\n return Array.isArray(arr) ? arr : [arr]\n}\n\n// TODO: remove import alias\n// avoid naming conflicts\nexport { castArray as ensureArray } from 'lodash-unified'\n"],"names":["unique","arr","castArray"],"mappings":";AAAa,MAAAA,IAAS,CAAIC,MAAa,CAAC,GAAG,IAAI,IAAIA,CAAG,CAAC,GAK1CC,IAAY,CAAID,MACvB,CAACA,KAAQA,MAAgB,IAAU,CAAA,IAChC,MAAM,QAAQA,CAAG,IAAIA,IAAM,CAACA,CAAG;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"browser.js","sources":["../../../src/components/_util/browser.ts"],"sourcesContent":["import { isClient, isIOS } from '@vueuse/core'\
|
1
|
+
{"version":3,"file":"browser.js","sources":["../../../src/components/_util/browser.ts"],"sourcesContent":["import { isClient, isIOS } from '@vueuse/core'\n\nexport const isFirefox = (): boolean =>\n isClient && /firefox/i.test(window.navigator.userAgent)\n\nexport { isClient, isIOS }\n"],"names":["isFirefox","isClient"],"mappings":";;AAEO,MAAMA,IAAY,MACvBC,KAAY,WAAW,KAAK,OAAO,UAAU,SAAS;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"aria.js","sources":["../../../../src/components/_util/dom/aria.ts"],"sourcesContent":["const FOCUSABLE_ELEMENT_SELECTORS = `a[href],button:not([disabled]),button:not([hidden]),:not([tabindex=\"-1\"]),input:not([disabled]),input:not([type=\"hidden\"]),select:not([disabled]),textarea:not([disabled])`\
|
1
|
+
{"version":3,"file":"aria.js","sources":["../../../../src/components/_util/dom/aria.ts"],"sourcesContent":["const FOCUSABLE_ELEMENT_SELECTORS = `a[href],button:not([disabled]),button:not([hidden]),:not([tabindex=\"-1\"]),input:not([disabled]),input:not([type=\"hidden\"]),select:not([disabled]),textarea:not([disabled])`\n\n/**\n * Determine if the testing element is visible on screen no matter if its on the viewport or not\n */\nexport const isVisible = (element: HTMLElement) => {\n if (process.env.NODE_ENV === 'test') return true\n const computed = getComputedStyle(element)\n // element.offsetParent won't work on fix positioned\n // WARNING: potential issue here, going to need some expert advices on this issue\n return computed.position === 'fixed' ? false : element.offsetParent !== null\n}\n\nexport const obtainAllFocusableElements = (\n element: HTMLElement\n): HTMLElement[] => {\n return Array.from(\n element.querySelectorAll<HTMLElement>(FOCUSABLE_ELEMENT_SELECTORS)\n ).filter((item: HTMLElement) => isFocusable(item) && isVisible(item))\n}\n\n/**\n * @desc Determine if target element is focusable\n * @param element {HTMLElement}\n * @returns {Boolean} true if it is focusable\n */\nexport const isFocusable = (element: HTMLElement): boolean => {\n if (\n element.tabIndex > 0 ||\n (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)\n ) {\n return true\n }\n // HTMLButtonElement has disabled\n if ((element as HTMLButtonElement).disabled) {\n return false\n }\n\n switch (element.nodeName) {\n case 'A': {\n // casting current element to Specific HTMLElement in order to be more type precise\n return (\n !!(element as HTMLAnchorElement).href &&\n (element as HTMLAnchorElement).rel !== 'ignore'\n )\n }\n case 'INPUT': {\n return !(\n (element as HTMLInputElement).type === 'hidden' ||\n (element as HTMLInputElement).type === 'file'\n )\n }\n case 'BUTTON':\n case 'SELECT':\n case 'TEXTAREA': {\n return true\n }\n default: {\n return false\n }\n }\n}\n\n/**\n * @desc Set Attempt to set focus on the current node.\n * @param element\n * The node to attempt to focus on.\n * @returns\n * true if element is focused.\n */\nexport const attemptFocus = (element: HTMLElement): boolean => {\n if (!isFocusable(element)) {\n return false\n }\n // Remove the old try catch block since there will be no error to be thrown\n element.focus?.()\n return document.activeElement === element\n}\n\n/**\n * Trigger an event\n * mouseenter, mouseleave, mouseover, keyup, change, click, etc.\n * @param {HTMLElement} elm\n * @param {String} name\n * @param {*} opts\n */\nexport const triggerEvent = function (\n elm: HTMLElement,\n name: string,\n ...opts: Array<boolean>\n): HTMLElement {\n let eventName: string\n\n if (name.includes('mouse') || name.includes('click')) {\n eventName = 'MouseEvents'\n } else if (name.includes('key')) {\n eventName = 'KeyboardEvent'\n } else {\n eventName = 'HTMLEvents'\n }\n const evt = document.createEvent(eventName)\n\n evt.initEvent(name, ...opts)\n elm.dispatchEvent(evt)\n return elm\n}\n\nexport const isLeaf = (el: HTMLElement) => !el.getAttribute('aria-owns')\n\nexport const getSibling = (\n el: HTMLElement,\n distance: number,\n elClass: string\n) => {\n const { parentNode } = el\n if (!parentNode) return null\n const siblings = parentNode.querySelectorAll(elClass)\n const index = Array.prototype.indexOf.call(siblings, el)\n return siblings[index + distance] || null\n}\n\nexport const focusNode = (el: HTMLElement) => {\n if (!el) return\n el.focus()\n !isLeaf(el) && el.click()\n}\n"],"names":["FOCUSABLE_ELEMENT_SELECTORS","isVisible","element","obtainAllFocusableElements","item","isFocusable","attemptFocus","_a","triggerEvent","elm","name","opts","eventName","evt","isLeaf","el","getSibling","distance","elClass","parentNode","siblings","index","focusNode"],"mappings":"AAAA,MAAMA,IAA8B,8KAKvBC,IAAY,CAACC,MACpB,QAAQ,IAAI,aAAa,SAAe,KAC3B,iBAAiBA,CAAO,EAGzB,aAAa,UAAU,KAAQA,EAAQ,iBAAiB,MAG7DC,IAA6B,CACxCD,MAEO,MAAM;AAAA,EACXA,EAAQ,iBAA8BF,CAA2B;AAAA,EACjE,OAAO,CAACI,MAAsBC,EAAYD,CAAI,KAAKH,EAAUG,CAAI,CAAC,GAQzDC,IAAc,CAACH,MAAkC;AAE1D,MAAAA,EAAQ,WAAW,KAClBA,EAAQ,aAAa,KAAKA,EAAQ,aAAa,UAAU,MAAM;AAEzD,WAAA;AAGT,MAAKA,EAA8B;AAC1B,WAAA;AAGT,UAAQA,EAAQ,UAAU;AAAA,IACxB,KAAK;AAEH,aACE,CAAC,CAAEA,EAA8B,QAChCA,EAA8B,QAAQ;AAAA,IAG3C,KAAK;AACH,aAAO,EACJA,EAA6B,SAAS,YACtCA,EAA6B,SAAS;AAAA,IAG3C,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACI,aAAA;AAAA,IAET;AACS,aAAA;AAAA,EAEX;AACF,GASaI,IAAe,CAACJ,MAAkC;AAtE/D,MAAAK;AAuEM,SAACF,EAAYH,CAAO,MAIxBK,IAAAL,EAAQ,UAAR,QAAAK,EAAA,KAAAL,IACO,SAAS,kBAAkBA,KAJzB;AAKX,GASaM,IAAe,SAC1BC,GACAC,MACGC,GACU;AACT,MAAAC;AAEJ,EAAIF,EAAK,SAAS,OAAO,KAAKA,EAAK,SAAS,OAAO,IACrCE,IAAA,gBACHF,EAAK,SAAS,KAAK,IAChBE,IAAA,kBAEAA,IAAA;AAER,QAAAC,IAAM,SAAS,YAAYD,CAAS;AAEtC,SAAAC,EAAA,UAAUH,GAAM,GAAGC,CAAI,GAC3BF,EAAI,cAAcI,CAAG,GACdJ;AACT,GAEaK,IAAS,CAACC,MAAoB,CAACA,EAAG,aAAa,WAAW,GAE1DC,IAAa,CACxBD,GACAE,GACAC,MACG;AACG,QAAA,EAAE,YAAAC,EAAe,IAAAJ;AACnB,MAAA,CAACI,EAAmB,QAAA;AAClB,QAAAC,IAAWD,EAAW,iBAAiBD,CAAO,GAC9CG,IAAQ,MAAM,UAAU,QAAQ,KAAKD,GAAUL,CAAE;AAChD,SAAAK,EAASC,IAAQJ,CAAQ,KAAK;AACvC,GAEaK,IAAY,CAACP,MAAoB;AAC5C,EAAKA,MACLA,EAAG,MAAM,GACT,CAACD,EAAOC,CAAE,KAAKA,EAAG,MAAM;AAC1B;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"element.js","sources":["../../../../src/components/_util/dom/element.ts"],"sourcesContent":["import { isString } from '../types'\
|
1
|
+
{"version":3,"file":"element.js","sources":["../../../../src/components/_util/dom/element.ts"],"sourcesContent":["import { isString } from '../types'\nimport { isClient } from '../browser'\n\ntype GetElement = <T extends string | HTMLElement | Window | null | undefined>(\n target: T\n) => T extends string ? HTMLElement | null : T\n\nexport const getElement = ((\n target: string | HTMLElement | Window | null | undefined\n) => {\n if (!isClient || target === '') return null\n if (isString(target)) {\n try {\n return document.querySelector<HTMLElement>(target)\n } catch {\n return null\n }\n }\n return target\n}) as GetElement\n"],"names":["getElement","target","isClient","isString"],"mappings":";;;;AAOa,MAAAA,IAAc,CACzBC,MACG;AACH,MAAI,CAACC,KAAYD,MAAW,GAAW,QAAA;AACnC,MAAAE,EAASF,CAAM;AACb,QAAA;AACK,aAAA,SAAS,cAA2BA,CAAM;AAAA,IAAA,QAC3C;AACC,aAAA;AAAA,IACT;AAEK,SAAAA;AACT;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"event.js","sources":["../../../../src/components/_util/dom/event.ts"],"sourcesContent":["export const composeEventHandlers = <E>(\
|
1
|
+
{"version":3,"file":"event.js","sources":["../../../../src/components/_util/dom/event.ts"],"sourcesContent":["export const composeEventHandlers = <E>(\n theirsHandler?: (event: E) => boolean | void,\n oursHandler?: (event: E) => void,\n { checkForDefaultPrevented = true } = {}\n) => {\n const handleEvent = (event: E) => {\n const shouldPrevent = theirsHandler?.(event)\n\n if (checkForDefaultPrevented === false || !shouldPrevent) {\n return oursHandler?.(event)\n }\n }\n return handleEvent\n}\n\ntype WhenMouseHandler = (e: PointerEvent) => any\nexport const whenMouse = (handler: WhenMouseHandler): WhenMouseHandler => {\n return (e: PointerEvent) =>\n e.pointerType === 'mouse' ? handler(e) : undefined\n}\n"],"names":["composeEventHandlers","theirsHandler","oursHandler","checkForDefaultPrevented","event","shouldPrevent","whenMouse","handler","e"],"mappings":"AAAa,MAAAA,IAAuB,CAClCC,GACAC,GACA,EAAE,0BAAAC,IAA2B,GAAS,IAAA,OAElB,CAACC,MAAa;AAC1B,QAAAC,IAAgBJ,KAAA,gBAAAA,EAAgBG;AAElC,MAAAD,MAA6B,MAAS,CAACE;AACzC,WAAOH,KAAA,gBAAAA,EAAcE;AACvB,GAMSE,IAAY,CAACC,MACjB,CAACC,MACNA,EAAE,gBAAgB,UAAUD,EAAQC,CAAC,IAAI;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"position.js","sources":["../../../../src/components/_util/dom/position.ts"],"sourcesContent":["import { isClient } from '../browser'\
|
1
|
+
{"version":3,"file":"position.js","sources":["../../../../src/components/_util/dom/position.ts"],"sourcesContent":["import { isClient } from '../browser'\n\nexport const isInContainer = (\n el?: Element,\n container?: Element | Window\n): boolean => {\n if (!isClient || !el || !container) return false\n\n const elRect = el.getBoundingClientRect()\n\n let containerRect: Pick<DOMRect, 'top' | 'bottom' | 'left' | 'right'>\n if (container instanceof Element) {\n containerRect = container.getBoundingClientRect()\n } else {\n containerRect = {\n top: 0,\n right: window.innerWidth,\n bottom: window.innerHeight,\n left: 0,\n }\n }\n return (\n elRect.top < containerRect.bottom &&\n elRect.bottom > containerRect.top &&\n elRect.right > containerRect.left &&\n elRect.left < containerRect.right\n )\n}\n\nexport const getOffsetTop = (el: HTMLElement) => {\n let offset = 0\n let parent = el\n\n while (parent) {\n offset += parent.offsetTop\n parent = parent.offsetParent as HTMLElement\n }\n\n return offset\n}\n\nexport const getOffsetTopDistance = (\n el: HTMLElement,\n containerEl: HTMLElement\n) => {\n return Math.abs(getOffsetTop(el) - getOffsetTop(containerEl))\n}\n\nexport const getClientXY = (event: MouseEvent | TouchEvent) => {\n let clientX: number\n let clientY: number\n if (event.type === 'touchend') {\n clientY = (event as TouchEvent).changedTouches[0].clientY\n clientX = (event as TouchEvent).changedTouches[0].clientX\n } else if (event.type.startsWith('touch')) {\n clientY = (event as TouchEvent).touches[0].clientY\n clientX = (event as TouchEvent).touches[0].clientX\n } else {\n clientY = (event as MouseEvent).clientY\n clientX = (event as MouseEvent).clientX\n }\n return {\n clientX,\n clientY,\n }\n}\n"],"names":["isInContainer","el","container","isClient","elRect","containerRect","getOffsetTop","offset","parent","getOffsetTopDistance","containerEl","getClientXY","event","clientX","clientY"],"mappings":";AAEa,MAAAA,IAAgB,CAC3BC,GACAC,MACY;AACZ,MAAI,CAACC,KAAY,CAACF,KAAM,CAACC,EAAkB,QAAA;AAErC,QAAAE,IAASH,EAAG;AAEd,MAAAI;AACJ,SAAIH,aAAqB,UACvBG,IAAgBH,EAAU,0BAEVG,IAAA;AAAA,IACd,KAAK;AAAA,IACL,OAAO,OAAO;AAAA,IACd,QAAQ,OAAO;AAAA,IACf,MAAM;AAAA,EAAA,GAIRD,EAAO,MAAMC,EAAc,UAC3BD,EAAO,SAASC,EAAc,OAC9BD,EAAO,QAAQC,EAAc,QAC7BD,EAAO,OAAOC,EAAc;AAEhC,GAEaC,IAAe,CAACL,MAAoB;AAC/C,MAAIM,IAAS,GACTC,IAASP;AAEb,SAAOO;AACL,IAAAD,KAAUC,EAAO,WACjBA,IAASA,EAAO;AAGX,SAAAD;AACT,GAEaE,IAAuB,CAClCR,GACAS,MAEO,KAAK,IAAIJ,EAAaL,CAAE,IAAIK,EAAaI,CAAW,CAAC,GAGjDC,IAAc,CAACC,MAAmC;AACzD,MAAAC,GACAC;AACA,SAAAF,EAAM,SAAS,cACNE,IAAAF,EAAqB,eAAe,CAAC,EAAE,SACvCC,IAAAD,EAAqB,eAAe,CAAC,EAAE,WACzCA,EAAM,KAAK,WAAW,OAAO,KAC3BE,IAAAF,EAAqB,QAAQ,CAAC,EAAE,SAChCC,IAAAD,EAAqB,QAAQ,CAAC,EAAE,YAE3CE,IAAWF,EAAqB,SAChCC,IAAWD,EAAqB,UAE3B;AAAA,IACL,SAAAC;AAAA,IACA,SAAAC;AAAA,EAAA;AAEJ;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scroll.js","sources":["../../../../src/components/_util/dom/scroll.ts"],"sourcesContent":["import { isClient } from '../browser'\
|
1
|
+
{"version":3,"file":"scroll.js","sources":["../../../../src/components/_util/dom/scroll.ts"],"sourcesContent":["import { isClient } from '../browser'\nimport { easeInOutCubic } from '../easings'\nimport { isWindow } from '../types'\nimport { cAF, rAF } from '../raf'\nimport { getStyle } from './style'\n\nexport const isScroll = (el: HTMLElement, isVertical?: boolean): boolean => {\n if (!isClient) return false\n\n const key = (\n {\n undefined: 'overflow',\n true: 'overflow-y',\n false: 'overflow-x',\n } as const\n )[String(isVertical)]!\n const overflow = getStyle(el, key)\n return ['scroll', 'auto', 'overlay'].some((s) => overflow.includes(s))\n}\n\nexport const getScrollContainer = (\n el: HTMLElement,\n isVertical?: boolean\n): Window | HTMLElement | undefined => {\n if (!isClient) return\n\n let parent: HTMLElement = el\n while (parent) {\n if ([window, document, document.documentElement].includes(parent))\n return window\n\n if (isScroll(parent, isVertical)) return parent\n\n parent = parent.parentNode as HTMLElement\n }\n\n return parent\n}\n\nlet scrollBarWidth: number\nexport const getScrollBarWidth = (namespace: string): number => {\n if (!isClient) return 0\n if (scrollBarWidth !== undefined) return scrollBarWidth\n\n const outer = document.createElement('div')\n outer.className = `${namespace}-scrollbar__wrap`\n outer.style.visibility = 'hidden'\n outer.style.width = '100px'\n outer.style.position = 'absolute'\n outer.style.top = '-9999px'\n document.body.appendChild(outer)\n\n const widthNoScroll = outer.offsetWidth\n outer.style.overflow = 'scroll'\n\n const inner = document.createElement('div')\n inner.style.width = '100%'\n outer.appendChild(inner)\n\n const widthWithScroll = inner.offsetWidth\n outer.parentNode?.removeChild(outer)\n scrollBarWidth = widthNoScroll - widthWithScroll\n\n return scrollBarWidth\n}\n\n/**\n * Scroll with in the container element, positioning the **selected** element at the top\n * of the container\n */\nexport function scrollIntoView(\n container: HTMLElement,\n selected: HTMLElement\n): void {\n if (!isClient) return\n\n if (!selected) {\n container.scrollTop = 0\n return\n }\n\n const offsetParents: HTMLElement[] = []\n let pointer = selected.offsetParent\n while (\n pointer !== null &&\n container !== pointer &&\n container.contains(pointer)\n ) {\n offsetParents.push(pointer as HTMLElement)\n pointer = (pointer as HTMLElement).offsetParent\n }\n const top =\n selected.offsetTop +\n offsetParents.reduce((prev, curr) => prev + curr.offsetTop, 0)\n const bottom = top + selected.offsetHeight\n const viewRectTop = container.scrollTop\n const viewRectBottom = viewRectTop + container.clientHeight\n\n if (top < viewRectTop) {\n container.scrollTop = top\n } else if (bottom > viewRectBottom) {\n container.scrollTop = bottom - container.clientHeight\n }\n}\n\nexport function animateScrollTo(\n container: HTMLElement | Window,\n from: number,\n to: number,\n duration: number,\n callback?: unknown\n) {\n const startTime = Date.now()\n\n let handle: number | undefined\n const scroll = () => {\n const timestamp = Date.now()\n const time = timestamp - startTime\n const nextScrollTop = easeInOutCubic(\n time > duration ? duration : time,\n from,\n to,\n duration\n )\n\n if (isWindow(container)) {\n container.scrollTo(window.pageXOffset, nextScrollTop)\n } else {\n container.scrollTop = nextScrollTop\n }\n if (time < duration) {\n handle = rAF(scroll)\n } else if (typeof callback === 'function') {\n callback()\n }\n }\n\n scroll()\n\n return () => {\n handle && cAF(handle)\n }\n}\n\nexport const getScrollElement = (\n target: HTMLElement,\n container: HTMLElement | Window\n) => {\n if (isWindow(container)) {\n return target.ownerDocument.documentElement\n }\n return container\n}\n\nexport const getScrollTop = (container: HTMLElement | Window) => {\n if (isWindow(container)) {\n return window.scrollY\n }\n return container.scrollTop\n}\n"],"names":["isScroll","el","isVertical","isClient","key","overflow","getStyle","s","getScrollContainer","parent","scrollBarWidth","getScrollBarWidth","namespace","outer","widthNoScroll","inner","widthWithScroll","_a","scrollIntoView","container","selected","offsetParents","pointer","top","prev","curr","bottom","viewRectTop","viewRectBottom","animateScrollTo","from","to","duration","callback","startTime","handle","scroll","time","nextScrollTop","easeInOutCubic","isWindow","rAF","cAF","getScrollElement","target","getScrollTop"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"style.js","sources":["../../../../src/components/_util/dom/style.ts"],"sourcesContent":["import { isNumber, isObject, isString, isStringNumber } from '../types'\
|
1
|
+
{"version":3,"file":"style.js","sources":["../../../../src/components/_util/dom/style.ts"],"sourcesContent":["import { isNumber, isObject, isString, isStringNumber } from '../types'\nimport { isClient } from '../browser'\nimport { camelize } from '../strings'\nimport { entriesOf, keysOf } from '../objects'\nimport { debugWarn } from '../error'\nimport type { CSSProperties } from 'vue'\n\nconst SCOPE = 'utils/dom/style'\n\nexport const classNameToArray = (cls = '') =>\n cls.split(' ').filter((item) => !!item.trim())\n\nexport const hasClass = (el: Element, cls: string): boolean => {\n if (!el || !cls) return false\n if (cls.includes(' ')) throw new Error('className should not contain space.')\n return el.classList.contains(cls)\n}\n\nexport const addClass = (el: Element, cls: string) => {\n if (!el || !cls.trim()) return\n el.classList.add(...classNameToArray(cls))\n}\n\nexport const removeClass = (el: Element, cls: string) => {\n if (!el || !cls.trim()) return\n el.classList.remove(...classNameToArray(cls))\n}\n\nexport const getStyle = (\n element: HTMLElement,\n styleName: keyof CSSProperties\n): string => {\n if (!isClient || !element || !styleName) return ''\n\n let key = camelize(styleName)\n if (key === 'float') key = 'cssFloat'\n try {\n const style = (element.style as any)[key]\n if (style) return style\n const computed: any = document.defaultView?.getComputedStyle(element, '')\n return computed ? computed[key] : ''\n } catch {\n return (element.style as any)[key]\n }\n}\n\nexport const setStyle = (\n element: HTMLElement,\n styleName: CSSProperties | keyof CSSProperties,\n value?: string | number\n) => {\n if (!element || !styleName) return\n\n if (isObject(styleName)) {\n entriesOf(styleName).forEach(([prop, value]) =>\n setStyle(element, prop, value)\n )\n } else {\n const key: any = camelize(styleName)\n element.style[key] = value as any\n }\n}\n\nexport const removeStyle = (\n element: HTMLElement,\n style: CSSProperties | keyof CSSProperties\n) => {\n if (!element || !style) return\n\n if (isObject(style)) {\n keysOf(style).forEach((prop) => removeStyle(element, prop))\n } else {\n setStyle(element, style, '')\n }\n}\n\nexport function addUnit(value?: string | number, defaultUnit = 'px') {\n if (!value) return ''\n if (isNumber(value) || isStringNumber(value)) {\n return `${value}${defaultUnit}`\n } else if (isString(value)) {\n return value\n }\n debugWarn(SCOPE, 'binding value must be a string or number')\n}\n"],"names":["SCOPE","classNameToArray","cls","item","hasClass","el","addClass","removeClass","getStyle","element","styleName","isClient","key","camelize","style","computed","_a","setStyle","value","isObject","entriesOf","prop","removeStyle","keysOf","addUnit","defaultUnit","isNumber","isStringNumber","isString","debugWarn"],"mappings":";;;;;AAOA,MAAMA,IAAQ,mBAEDC,IAAmB,CAACC,IAAM,OACrCA,EAAI,MAAM,GAAG,EAAE,OAAO,CAACC,MAAS,CAAC,CAACA,EAAK,MAAM,GAElCC,IAAW,CAACC,GAAaH,MAAyB;AAC7D,MAAI,CAACG,KAAM,CAACH,EAAY,QAAA;AACxB,MAAIA,EAAI,SAAS,GAAG,EAAS,OAAA,IAAI,MAAM,qCAAqC;AACrE,SAAAG,EAAG,UAAU,SAASH,CAAG;AAClC,GAEaI,IAAW,CAACD,GAAaH,MAAgB;AACpD,EAAI,CAACG,KAAM,CAACH,EAAI,KAAQ,KACxBG,EAAG,UAAU,IAAI,GAAGJ,EAAiBC,CAAG,CAAC;AAC3C,GAEaK,IAAc,CAACF,GAAaH,MAAgB;AACvD,EAAI,CAACG,KAAM,CAACH,EAAI,KAAQ,KACxBG,EAAG,UAAU,OAAO,GAAGJ,EAAiBC,CAAG,CAAC;AAC9C,GAEaM,IAAW,CACtBC,GACAC,MACW;;AACX,MAAI,CAACC,KAAY,CAACF,KAAW,CAACC,EAAkB,QAAA;AAE5C,MAAAE,IAAMC,EAASH,CAAS;AACxB,EAAAE,MAAQ,YAAeA,IAAA;AACvB,MAAA;AACI,UAAAE,IAASL,EAAQ,MAAcG,CAAG;AACxC,QAAIE,EAAc,QAAAA;AAClB,UAAMC,KAAgBC,IAAA,SAAS,gBAAT,gBAAAA,EAAsB,iBAAiBP,GAAS;AAC/D,WAAAM,IAAWA,EAASH,CAAG,IAAI;AAAA,EAAA,QAC5B;AACE,WAAAH,EAAQ,MAAcG,CAAG;AAAA,EACnC;AACF,GAEaK,IAAW,CACtBR,GACAC,GACAQ,MACG;AACC,MAAA,GAACT,KAAW,CAACC;AAEb,QAAAS,EAAST,CAAS;AACpB,MAAAU,EAAUV,CAAS,EAAE;AAAA,QAAQ,CAAC,CAACW,GAAMH,CAAK,MACxCD,EAASR,GAASY,GAAMH,CAAK;AAAA,MAAA;AAAA,SAE1B;AACC,YAAAN,IAAWC,EAASH,CAAS;AAC3B,MAAAD,EAAA,MAAMG,CAAG,IAAIM;AAAA,IACvB;AACF,GAEaI,IAAc,CACzBb,GACAK,MACG;AACC,EAAA,CAACL,KAAW,CAACK,MAEbK,EAASL,CAAK,IACTS,EAAAT,CAAK,EAAE,QAAQ,CAACO,MAASC,EAAYb,GAASY,CAAI,CAAC,IAEjDJ,EAAAR,GAASK,GAAO,EAAE;AAE/B;AAEgB,SAAAU,EAAQN,GAAyBO,IAAc,MAAM;AAC/D,MAAA,CAACP,EAAc,QAAA;AACnB,MAAIQ,EAASR,CAAK,KAAKS,EAAeT,CAAK;AAClC,WAAA,GAAGA,CAAK,GAAGO,CAAW;AAC/B,MAAWG,EAASV,CAAK;AAChB,WAAAA;AAET,EAAAW,EAAU7B,GAAO,0CAA0C;AAC7D;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"easings.js","sources":["../../../src/components/_util/easings.ts"],"sourcesContent":["export function easeInOutCubic(t: number, b: number, c: number, d: number) {\
|
1
|
+
{"version":3,"file":"easings.js","sources":["../../../src/components/_util/easings.ts"],"sourcesContent":["export function easeInOutCubic(t: number, b: number, c: number, d: number) {\n const cc = c - b\n t /= d / 2\n if (t < 1) {\n return (cc / 2) * t * t * t + b\n }\n return (cc / 2) * ((t -= 2) * t * t + 2) + b\n}\n"],"names":["easeInOutCubic","t","b","c","d","cc"],"mappings":"AAAO,SAASA,EAAeC,GAAWC,GAAWC,GAAWC,GAAW;AACzE,QAAMC,IAAKF,IAAID;AAEf,SADAD,KAAKG,IAAI,GACLH,IAAI,IACEI,IAAK,IAAKJ,IAAIA,IAAIA,IAAIC,IAExBG,IAAK,MAAOJ,KAAK,KAAKA,IAAIA,IAAI,KAAKC;AAC7C;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"error.js","sources":["../../../src/components/_util/error.ts"],"sourcesContent":["import { isString } from './types'\
|
1
|
+
{"version":3,"file":"error.js","sources":["../../../src/components/_util/error.ts"],"sourcesContent":["import { isString } from './types'\n\nclass ElementPlusError extends Error {\n constructor(m: string) {\n super(m)\n this.name = 'ElementPlusError'\n }\n}\n\nexport function throwError(scope: string, m: string): never {\n throw new ElementPlusError(`[${scope}] ${m}`)\n}\n\nexport function debugWarn(err: Error): void\nexport function debugWarn(scope: string, message: string): void\nexport function debugWarn(scope: string | Error, message?: string): void {\n if (process.env.NODE_ENV !== 'production') {\n const error: Error = isString(scope)\n ? new ElementPlusError(`[${scope}] ${message}`)\n : scope\n // eslint-disable-next-line no-console\n console.warn(error)\n }\n}\n"],"names":["ElementPlusError","m","throwError","scope","debugWarn","message","error","isString"],"mappings":";;;AAEA,MAAMA,UAAyB,MAAM;AAAA,EACnC,YAAYC,GAAW;AACrB,UAAMA,CAAC,GACP,KAAK,OAAO;AAAA,EACd;AACF;AAEgB,SAAAC,EAAWC,GAAeF,GAAkB;AAC1D,QAAM,IAAID,EAAiB,IAAIG,CAAK,KAAKF,CAAC,EAAE;AAC9C;AAIgB,SAAAG,EAAUD,GAAuBE,GAAwB;AACnE,MAAA,QAAQ,IAAI,aAAa,cAAc;AACnC,UAAAC,IAAeC,EAASJ,CAAK,IAC/B,IAAIH,EAAiB,IAAIG,CAAK,KAAKE,CAAO,EAAE,IAC5CF;AAEJ,YAAQ,KAAKG,CAAK;AAAA,EACpB;AACF;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"i18n.js","sources":["../../../src/components/_util/i18n.ts"],"sourcesContent":["export const isKorean = (text: string) =>\
|
1
|
+
{"version":3,"file":"i18n.js","sources":["../../../src/components/_util/i18n.ts"],"sourcesContent":["export const isKorean = (text: string) =>\n /([\\uAC00-\\uD7AF\\u3130-\\u318F])+/gi.test(text)\n"],"names":["isKorean","text"],"mappings":"AAAO,MAAMA,IAAW,CAACC,MACvB,oCAAoC,KAAKA,CAAI;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"objects.js","sources":["../../../src/components/_util/objects.ts"],"sourcesContent":["import { get, set } from 'lodash-unified'\
|
1
|
+
{"version":3,"file":"objects.js","sources":["../../../src/components/_util/objects.ts"],"sourcesContent":["import { get, set } from 'lodash-unified'\nimport type { Entries } from 'type-fest'\nimport type { Arrayable } from '.'\n\nexport const keysOf = <T>(arr: T) => Object.keys(arr) as Array<keyof T>\nexport const entriesOf = <T>(arr: T) => Object.entries(arr) as Entries<T>\nexport { hasOwn } from '@vue/shared'\n\nexport const getProp = <T = any>(\n obj: Record<string, any>,\n path: Arrayable<string>,\n defaultValue?: any\n): { value: T } => {\n return {\n get value() {\n return get(obj, path, defaultValue)\n },\n set value(val: any) {\n set(obj, path, val)\n },\n }\n}\n"],"names":["keysOf","arr","entriesOf","getProp","obj","path","defaultValue","get","val","set"],"mappings":";;AAIO,MAAMA,IAAS,CAAIC,MAAW,OAAO,KAAKA,CAAG,GACvCC,IAAY,CAAID,MAAW,OAAO,QAAQA,CAAG,GAG7CE,IAAU,CACrBC,GACAC,GACAC,OAEO;AAAA,EACL,IAAI,QAAQ;AACH,WAAAC,EAAIH,GAAKC,GAAMC,CAAY;AAAA,EACpC;AAAA,EACA,IAAI,MAAME,GAAU;AACd,IAAAC,EAAAL,GAAKC,GAAMG,CAAG;AAAA,EACpB;AAAA;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"raf.js","sources":["../../../src/components/_util/raf.ts"],"sourcesContent":["import { isClient } from './browser'\
|
1
|
+
{"version":3,"file":"raf.js","sources":["../../../src/components/_util/raf.ts"],"sourcesContent":["import { isClient } from './browser'\n\nexport const rAF = (fn: () => void) =>\n isClient\n ? window.requestAnimationFrame(fn)\n : (setTimeout(fn, 16) as unknown as number)\n\nexport const cAF = (handle: number) =>\n isClient ? window.cancelAnimationFrame(handle) : clearTimeout(handle)\n"],"names":["rAF","fn","isClient","cAF","handle"],"mappings":";AAEa,MAAAA,IAAM,CAACC,MAClBC,IACI,OAAO,sBAAsBD,CAAE,IAC9B,WAAWA,GAAI,EAAE,GAEXE,IAAM,CAACC,MAClBF,IAAW,OAAO,qBAAqBE,CAAM,IAAI,aAAaA,CAAM;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"rand.js","sources":["../../../src/components/_util/rand.ts"],"sourcesContent":["/**\
|
1
|
+
{"version":3,"file":"rand.js","sources":["../../../src/components/_util/rand.ts"],"sourcesContent":["/**\n * @deprecated Use `useId` `useIdInjection` instead\n * Generate random number in range [0, 1000]\n * Maybe replace with [uuid](https://www.npmjs.com/package/uuid)\n */\nexport const generateId = (): number => Math.floor(Math.random() * 10000)\n\n/**\n * @deprecated\n * Generating a random int in range (0, max - 1)\n * @param max {number}\n */\nexport const getRandomInt = (max: number) =>\n Math.floor(Math.random() * Math.floor(max))\n"],"names":["generateId","getRandomInt","max"],"mappings":"AAKO,MAAMA,IAAa,MAAc,KAAK,MAAM,KAAK,WAAW,GAAK,GAO3DC,IAAe,CAACC,MAC3B,KAAK,MAAM,KAAK,WAAW,KAAK,MAAMA,CAAG,CAAC;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"strings.js","sources":["../../../src/components/_util/strings.ts"],"sourcesContent":["import { capitalize as toCapitalize } from '@vue/shared'\
|
1
|
+
{"version":3,"file":"strings.js","sources":["../../../src/components/_util/strings.ts"],"sourcesContent":["import { capitalize as toCapitalize } from '@vue/shared'\nexport {\n camelize,\n hyphenate,\n hyphenate as kebabCase, // alias\n} from '@vue/shared'\n\n/**\n * fork from {@link https://github.com/sindresorhus/escape-string-regexp}\n */\nexport const escapeStringRegexp = (string = '') =>\n string.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&').replace(/-/g, '\\\\x2d')\n\n// NOTE: improve capitalize types. Restore previous code after the [PR](https://github.com/vuejs/core/pull/6212) merge\nexport const capitalize = <T extends string>(str: T) =>\n toCapitalize(str) as Capitalize<T>\n"],"names":["escapeStringRegexp","string","capitalize","str","toCapitalize"],"mappings":";;AAUa,MAAAA,IAAqB,CAACC,IAAS,OAC1CA,EAAO,QAAQ,uBAAuB,MAAM,EAAE,QAAQ,MAAM,OAAO,GAGxDC,IAAa,CAAmBC,MAC3CC,EAAaD,CAAG;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"throttleByRaf.js","sources":["../../../src/components/_util/throttleByRaf.ts"],"sourcesContent":["import { cAF, rAF } from './raf'\
|
1
|
+
{"version":3,"file":"throttleByRaf.js","sources":["../../../src/components/_util/throttleByRaf.ts"],"sourcesContent":["import { cAF, rAF } from './raf'\n\nexport function throttleByRaf(cb: (...args: any[]) => void) {\n let timer = 0\n\n const throttle = (...args: any[]): void => {\n if (timer) {\n cAF(timer)\n }\n timer = rAF(() => {\n cb(...args)\n timer = 0\n })\n }\n\n throttle.cancel = () => {\n cAF(timer)\n timer = 0\n }\n\n return throttle\n}\n"],"names":["throttleByRaf","cb","timer","throttle","args","cAF","rAF"],"mappings":";AAEO,SAASA,EAAcC,GAA8B;AAC1D,MAAIC,IAAQ;AAEN,QAAAC,IAAW,IAAIC,MAAsB;AACzC,IAAIF,KACFG,EAAIH,CAAK,GAEXA,IAAQI,EAAI,MAAM;AAChB,MAAAL,EAAG,GAAGG,CAAI,GACFF,IAAA;AAAA,IAAA,CACT;AAAA,EAAA;AAGH,SAAAC,EAAS,SAAS,MAAM;AACtB,IAAAE,EAAIH,CAAK,GACDA,IAAA;AAAA,EAAA,GAGHC;AACT;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../src/components/_util/types.ts"],"sourcesContent":["import { isArray, isObject, isString } from '@vue/shared'\
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../src/components/_util/types.ts"],"sourcesContent":["import { isArray, isObject, isString } from '@vue/shared'\nimport { isNil } from 'lodash-unified'\n\nexport {\n isArray,\n isFunction,\n isObject,\n isString,\n isDate,\n isPromise,\n isSymbol,\n isPlainObject,\n} from '@vue/shared'\nexport { isVNode } from 'vue'\n\nexport const isUndefined = (val: any): val is undefined => val === undefined\nexport const isBoolean = (val: any): val is boolean => typeof val === 'boolean'\nexport const isNumber = (val: any): val is number => typeof val === 'number'\n\nexport const isEmpty = (val: unknown) =>\n (!val && val !== 0) ||\n (isArray(val) && val.length === 0) ||\n (isObject(val) && !Object.keys(val).length)\n\nexport const isElement = (e: unknown): e is Element => {\n if (typeof Element === 'undefined') return false\n return e instanceof Element\n}\n\nexport const isPropAbsent = (prop: unknown): prop is null | undefined => {\n return isNil(prop)\n}\n\nexport const isStringNumber = (val: string): boolean => {\n if (!isString(val)) {\n return false\n }\n return !Number.isNaN(Number(val))\n}\n\nexport const isWindow = (val: unknown): val is Window => {\n return val === window\n}\n"],"names":["isUndefined","val","isBoolean","isNumber","isEmpty","isArray","isObject","isElement","isPropAbsent","prop","isNil","isStringNumber","isString","isWindow"],"mappings":";;;;AAea,MAAAA,IAAc,CAACC,MAA+BA,MAAQ,QACtDC,IAAY,CAACD,MAA6B,OAAOA,KAAQ,WACzDE,IAAW,CAACF,MAA4B,OAAOA,KAAQ,UAEvDG,IAAU,CAACH,MACrB,CAACA,KAAOA,MAAQ,KAChBI,EAAQJ,CAAG,KAAKA,EAAI,WAAW,KAC/BK,EAASL,CAAG,KAAK,CAAC,OAAO,KAAKA,CAAG,EAAE,QAEzBM,IAAY,CAAC,MACpB,OAAO,UAAY,MAAoB,KACpC,aAAa,SAGTC,IAAe,CAACC,MACpBC,EAAMD,CAAI,GAGNE,IAAiB,CAACV,MACxBW,EAASX,CAAG,IAGV,CAAC,OAAO,MAAM,OAAOA,CAAG,CAAC,IAFvB,IAKEY,IAAW,CAACZ,MAChBA,MAAQ;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"typescript.js","sources":["../../../src/components/_util/typescript.ts"],"sourcesContent":["export const mutable = <T extends readonly any[] | Record<string, unknown>>(\
|
1
|
+
{"version":3,"file":"typescript.js","sources":["../../../src/components/_util/typescript.ts"],"sourcesContent":["export const mutable = <T extends readonly any[] | Record<string, unknown>>(\n val: T\n) => val as Mutable<typeof val>\nexport type Mutable<T> = { -readonly [P in keyof T]: T[P] }\n\nexport type HTMLElementCustomized<T> = HTMLElement & T\n\n/**\n * @deprecated stop to use null\n * @see {@link https://github.com/sindresorhus/meta/discussions/7}\n */\nexport type Nullable<T> = T | null\n\nexport type Arrayable<T> = T | T[]\nexport type Awaitable<T> = Promise<T> | T\n"],"names":["mutable","val"],"mappings":"AAAa,MAAAA,IAAU,CACrBC,MACGA;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"global-node.js","sources":["../../../../src/components/_util/vue/global-node.ts"],"sourcesContent":["import { isClient } from '../browser'\
|
1
|
+
{"version":3,"file":"global-node.js","sources":["../../../../src/components/_util/vue/global-node.ts"],"sourcesContent":["import { isClient } from '../browser'\n\nconst globalNodes: HTMLElement[] = []\nlet target: HTMLElement | undefined = !isClient ? undefined : document.body\n\nexport function createGlobalNode(id?: string) {\n const el = document.createElement('div')\n if (id !== undefined) {\n el.setAttribute('id', id)\n }\n\n if (target) {\n target.appendChild(el)\n globalNodes.push(el)\n }\n\n return el\n}\n\nexport function removeGlobalNode(el: HTMLElement) {\n globalNodes.splice(globalNodes.indexOf(el), 1)\n el.remove()\n}\n\nexport function changeGlobalNodesTarget(el: HTMLElement) {\n if (el === target) return\n\n target = el\n globalNodes.forEach((el) => {\n if (target && !el.contains(target)) {\n target.appendChild(el)\n }\n })\n}\n"],"names":["globalNodes","target","isClient","createGlobalNode","id","el","removeGlobalNode","changeGlobalNodesTarget"],"mappings":";AAEA,MAAMA,IAA6B,CAAA;AACnC,IAAIC,IAAmCC,IAAuB,SAAS,OAArB;AAE3C,SAASC,EAAiBC,GAAa;AACtC,QAAAC,IAAK,SAAS,cAAc,KAAK;AACvC,SAAID,MAAO,UACNC,EAAA,aAAa,MAAMD,CAAE,GAGtBH,MACFA,EAAO,YAAYI,CAAE,GACrBL,EAAY,KAAKK,CAAE,IAGdA;AACT;AAEO,SAASC,EAAiBD,GAAiB;AAChD,EAAAL,EAAY,OAAOA,EAAY,QAAQK,CAAE,GAAG,CAAC,GAC7CA,EAAG,OAAO;AACZ;AAEO,SAASE,EAAwBF,GAAiB;AACvD,EAAIA,MAAOJ,MAEFA,IAAAI,GACGL,EAAA,QAAQ,CAACK,MAAO;AAC1B,IAAIJ,KAAU,CAACI,EAAG,SAASJ,CAAM,KAC/BA,EAAO,YAAYI,CAAE;AAAA,EACvB,CACD;AACH;"}
|