ll-plus 2.7.4 → 2.7.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/es/components/input/index.d.ts +17 -9
  2. package/es/components/input/src/input.vue.d.ts +17 -9
  3. package/es/packages/components/api-component/src/components/json-xml-table-row.vue2.mjs +1 -0
  4. package/es/packages/components/api-component/src/components/json-xml-table-row.vue2.mjs.map +1 -1
  5. package/es/packages/components/input/src/input.vue2.mjs +37 -38
  6. package/es/packages/components/input/src/input.vue2.mjs.map +1 -1
  7. package/es/utils/props/runtime.d.ts +2 -2
  8. package/index.full.js +19239 -19240
  9. package/index.full.min.js +43 -43
  10. package/index.full.min.js.map +1 -1
  11. package/index.full.min.mjs +45 -45
  12. package/index.full.min.mjs.map +1 -1
  13. package/index.full.mjs +19239 -19240
  14. package/lib/components/input/index.d.ts +17 -9
  15. package/lib/components/input/src/input.vue.d.ts +17 -9
  16. package/lib/packages/components/api-component/src/components/json-xml-table-row.vue2.js +1 -0
  17. package/lib/packages/components/api-component/src/components/json-xml-table-row.vue2.js.map +1 -1
  18. package/lib/packages/components/input/src/input.vue2.js +36 -37
  19. package/lib/packages/components/input/src/input.vue2.js.map +1 -1
  20. package/lib/utils/props/runtime.d.ts +2 -2
  21. package/package.json +1 -1
  22. package/theme-chalk/css/api-component.css +1 -1
  23. package/theme-chalk/css/index.css +2 -2
  24. package/theme-chalk/css/input.css +1 -1
  25. package/types/packages/components/input/index.d.ts +17 -9
  26. package/types/packages/components/input/src/input.vue.d.ts +17 -9
  27. package/types/packages/utils/props/runtime.d.ts +2 -2
@@ -42,12 +42,15 @@ export declare const LlInput: import("ll-plus/es/utils").SFCWithInstall<import("
42
42
  readonly suffixIcon?: string | undefined;
43
43
  readonly prefixIcon?: string | undefined;
44
44
  readonly showPassword?: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown> | undefined;
45
+ readonly "onUpdate:value"?: ((...args: any[]) => any) | undefined;
45
46
  } & {}>;
47
+ emit: (event: "update:value", ...args: any[]) => void;
46
48
  innerValue: import("vue").Ref<string | number | undefined>;
47
49
  inputRef: import("vue").Ref<any>;
48
- allowClear: import("vue").Ref<boolean>;
50
+ isMouseOver: import("vue").Ref<boolean>;
51
+ hasValue: import("vue").ComputedRef<boolean>;
49
52
  handleMouseOver: () => void;
50
- handleMouseOut: (e: any) => void;
53
+ handleMouseOut: () => void;
51
54
  componentType: ({
52
55
  new (...args: any[]): import("@vue/runtime-core").CreateComponentPublicInstance<Readonly<import("vue").ExtractPropTypes<Omit<{
53
56
  id: StringConstructor;
@@ -1310,14 +1313,17 @@ export declare const LlInput: import("ll-plus/es/utils").SFCWithInstall<import("
1310
1313
  visibilityToggle: boolean;
1311
1314
  }, {}>;
1312
1315
  computedAttrs: import("vue").ComputedRef<{
1313
- allowClear: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
1314
- value: import("ll-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | number) | (() => string | number | undefined) | ((new (...args: any[]) => string | number) | (() => string | number | undefined))[], unknown, unknown>;
1315
- suffixIcon: string | undefined;
1316
- prefixIcon: string | undefined;
1317
- showPassword: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown> | undefined;
1316
+ props: import("@vue/shared").LooseRequired<{
1317
+ readonly allowClear: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
1318
+ readonly value?: import("ll-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | number) | (() => string | number | undefined) | ((new (...args: any[]) => string | number) | (() => string | number | undefined))[], unknown, unknown>;
1319
+ readonly suffixIcon?: string | undefined;
1320
+ readonly prefixIcon?: string | undefined;
1321
+ readonly showPassword?: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown> | undefined;
1322
+ readonly "onUpdate:value"?: ((...args: any[]) => any) | undefined;
1323
+ } & {}>;
1318
1324
  }>;
1319
1325
  focus: () => void;
1320
- }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
1326
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:value"[], "update:value", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
1321
1327
  readonly value: {
1322
1328
  readonly type: import("vue").PropType<import("ll-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | number) | (() => string | number | undefined) | ((new (...args: any[]) => string | number) | (() => string | number | undefined))[], unknown, unknown>>;
1323
1329
  readonly required: false;
@@ -1343,7 +1349,9 @@ export declare const LlInput: import("ll-plus/es/utils").SFCWithInstall<import("
1343
1349
  __epPropKey: true;
1344
1350
  };
1345
1351
  readonly allowClear: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
1346
- }>>, {
1352
+ }>> & {
1353
+ "onUpdate:value"?: ((...args: any[]) => any) | undefined;
1354
+ }, {
1347
1355
  readonly allowClear: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
1348
1356
  }, {}>>;
1349
1357
  export default LlInput;
@@ -41,12 +41,15 @@ declare const _default: import("vue").DefineComponent<{
41
41
  readonly suffixIcon?: string | undefined;
42
42
  readonly prefixIcon?: string | undefined;
43
43
  readonly showPassword?: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown> | undefined;
44
+ readonly "onUpdate:value"?: ((...args: any[]) => any) | undefined;
44
45
  } & {}>;
46
+ emit: (event: "update:value", ...args: any[]) => void;
45
47
  innerValue: import("vue").Ref<string | number | undefined>;
46
48
  inputRef: import("vue").Ref<any>;
47
- allowClear: import("vue").Ref<boolean>;
49
+ isMouseOver: import("vue").Ref<boolean>;
50
+ hasValue: import("vue").ComputedRef<boolean>;
48
51
  handleMouseOver: () => void;
49
- handleMouseOut: (e: any) => void;
52
+ handleMouseOut: () => void;
50
53
  componentType: ({
51
54
  new (...args: any[]): import("vue").CreateComponentPublicInstance<Readonly<import("vue").ExtractPropTypes<Omit<{
52
55
  id: StringConstructor;
@@ -1309,14 +1312,17 @@ declare const _default: import("vue").DefineComponent<{
1309
1312
  visibilityToggle: boolean;
1310
1313
  }, {}>;
1311
1314
  computedAttrs: import("vue").ComputedRef<{
1312
- allowClear: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
1313
- value: import("ll-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | number) | (() => string | number | undefined) | ((new (...args: any[]) => string | number) | (() => string | number | undefined))[], unknown, unknown>;
1314
- suffixIcon: string | undefined;
1315
- prefixIcon: string | undefined;
1316
- showPassword: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown> | undefined;
1315
+ props: import("@vue/shared").LooseRequired<{
1316
+ readonly allowClear: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
1317
+ readonly value?: import("ll-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | number) | (() => string | number | undefined) | ((new (...args: any[]) => string | number) | (() => string | number | undefined))[], unknown, unknown>;
1318
+ readonly suffixIcon?: string | undefined;
1319
+ readonly prefixIcon?: string | undefined;
1320
+ readonly showPassword?: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown> | undefined;
1321
+ readonly "onUpdate:value"?: ((...args: any[]) => any) | undefined;
1322
+ } & {}>;
1317
1323
  }>;
1318
1324
  focus: () => void;
1319
- }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
1325
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:value"[], "update:value", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
1320
1326
  readonly value: {
1321
1327
  readonly type: import("vue").PropType<import("ll-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | number) | (() => string | number | undefined) | ((new (...args: any[]) => string | number) | (() => string | number | undefined))[], unknown, unknown>>;
1322
1328
  readonly required: false;
@@ -1342,7 +1348,9 @@ declare const _default: import("vue").DefineComponent<{
1342
1348
  __epPropKey: true;
1343
1349
  };
1344
1350
  readonly allowClear: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
1345
- }>>, {
1351
+ }>> & {
1352
+ "onUpdate:value"?: ((...args: any[]) => any) | undefined;
1353
+ }, {
1346
1354
  readonly allowClear: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
1347
1355
  }, {}>;
1348
1356
  export default _default;
@@ -219,6 +219,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
219
219
  "onUpdate:value": _cache[1] || (_cache[1] = ($event) => innerData.value.name = $event),
220
220
  disabled: unref(disabled),
221
221
  placeholder: "\u6DFB\u52A0\u5B57\u6BB5\u540D",
222
+ style: { "width": "100%" },
222
223
  bordered: false
223
224
  }, null, 8, ["value", "disabled"])) : createCommentVNode("v-if", true)
224
225
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"json-xml-table-row.vue2.mjs","sources":["../../../../../../../packages/components/api-component/src/components/json-xml-table-row.vue"],"sourcesContent":["<template>\n <a-row :gutter=\"20\" :class=\"bem.e('table-row')\">\n <a-col style=\"display: flex\" :span=\"7\" :class=\"bem.e('table-col')\">\n <p :style=\"{ width: 10 * props.layer + 'px' }\" />\n <div style=\"margin-right: 30px\" :class=\"bem.m('table-row-icon')\">\n <ll-button\n v-if=\"innerData.type === 'object' || innerData.type === 'array'\"\n type=\"link\"\n style=\"width: 10px\"\n :disabled=\"disabled\"\n @click=\"expanded = !expanded\"\n >\n <ll-icon\n v-if=\"!expanded\"\n style=\"font-size: 14px\"\n icon-name=\"icon-list-expand\"\n />\n <ll-icon\n v-else\n style=\"font-size: 14px\"\n icon-name=\"icon-list-retract\"\n />\n </ll-button>\n </div>\n\n <div v-if=\"!props.parentData\" :class=\"bem.m('table-row-tag')\">根节点</div>\n <template v-else>\n <div\n v-if=\"props.parentData.type === 'array'\"\n :class=\"bem.m('table-row-tag')\"\n >\n ITEMS\n </div>\n <ll-input\n v-if=\"props.parentData.type === 'object'\"\n v-model:value=\"innerData.name\"\n :disabled=\"disabled\"\n placeholder=\"添加字段名\"\n :bordered=\"false\"\n ></ll-input>\n </template>\n </a-col>\n <a-col :span=\"3\" :class=\"bem.e('table-col')\">\n <ll-select\n v-model:value=\"innerData.type\"\n :options=\"jsonXmlTypeOptions\"\n :disabled=\"disabled\"\n style=\"width: 100%\"\n @change=\"handleChange\"\n />\n </a-col>\n <a-col :span=\"4\" :class=\"bem.e('table-col')\">\n <click-input\n v-model:value=\"innerData.mock\"\n placeholder=\"Mock\"\n :disabled=\"innerData.type === 'object' || disabled\"\n style=\"width: 100%\"\n />\n </a-col>\n <a-col :span=\"4\" :class=\"bem.e('table-col')\">\n <ll-input\n v-model:value=\"innerData.chineseName\"\n :disabled=\"disabled\"\n placeholder=\"中文名\"\n style=\"width: 100%\"\n />\n </a-col>\n <a-col :span=\"4\" :class=\"bem.e('table-col')\">\n <click-input\n v-model:value=\"innerData.description\"\n :disabled=\"disabled\"\n placeholder=\"说明\"\n style=\"width: 100%\"\n />\n </a-col>\n <a-col :span=\"2\">\n <div :class=\"bem.e('table-operation')\">\n <ll-tooltip\n v-if=\"\n (props.parentData &&\n props.parentData.type === 'object' &&\n innerData.type !== 'object') ||\n (!props.parentData && innerData.type === 'object')\n \"\n :tip=\"\n getTip(parentData, innerData) === 'child'\n ? '添加子节点'\n : '添加相邻节点'\n \"\n >\n <ll-button\n type=\"link\"\n :disabled=\"disabled\"\n :class=\"bem.m('table-icon')\"\n @click=\"\n handleAdd(\n getTip(parentData, innerData),\n props.parentData,\n innerData\n )\n \"\n >\n <ll-icon icon-name=\"icon-list-add\" />\n </ll-button>\n </ll-tooltip>\n\n <ll-dropdown\n :dropdown-items=\"customOverlay(props.parentData, innerData)\"\n placement=\"bottomRight\"\n @claim-selected=\"handleClaimSelected\"\n >\n <ll-button\n v-if=\"\n props.parentData &&\n props.parentData.type === 'object' &&\n innerData.type === 'object'\n \"\n :class=\"bem.m('table-icon')\"\n :disabled=\"disabled\"\n type=\"link\"\n >\n <ll-icon icon-name=\"icon-list-add\" />\n </ll-button>\n </ll-dropdown>\n\n <a-popconfirm\n v-if=\"props.parentData && props.parentData.type !== 'array'\"\n title=\"你确定要移除吗?\"\n ok-text=\"确认\"\n cancel-text=\"取消\"\n placement=\"topRight\"\n :overlay-class-name=\"bem.e('popconfirm')\"\n :disabled=\"disabled\"\n @confirm=\"handleConfirm(props.parentData, innerData)\"\n >\n <ll-button\n type=\"link\"\n :disabled=\"disabled\"\n :class=\"bem.m('table-icon')\"\n >\n <ll-icon icon-name=\"icon-remove\" />\n </ll-button>\n </a-popconfirm>\n </div>\n </a-col>\n </a-row>\n\n <template v-if=\"expanded\">\n <a-row\n v-if=\"\n innerData.type === 'object' &&\n innerData.children &&\n innerData.children.length === 0\n \"\n :gutter=\"20\"\n :class=\"bem.e('table-row')\"\n >\n <a-col style=\"display: flex\" :span=\"7\" :class=\"bem.e('table-col')\">\n <p :style=\"{ width: 10 * props.layer + 'px' }\" />\n <div style=\"margin-right: 30px\" :class=\"bem.m('table-row-icon')\" />\n <ll-input\n v-model:value=\"addValue\"\n placeholder=\"添加字段名\"\n :bordered=\"false\"\n :disabled=\"disabled\"\n @input=\"handleInput\"\n />\n </a-col>\n </a-row>\n\n <template v-if=\"innerData.children && innerData.children.length > 0\">\n <template v-for=\"(child, index) in innerData.children\" :key=\"index\">\n <table-row\n :parent-data=\"innerData\"\n :list=\"innerData.children\"\n :data=\"child\"\n :layer=\"props.layer + 1\"\n :tree-key=\"props.treeKey + '-' + (index + 1)\"\n @change=\"handleRowChange\"\n />\n </template>\n </template>\n </template>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch, inject } from 'vue'\n\nimport { createNamespace } from '@ll-plus/utils'\n\nimport {\n jsonXmlTypeOptions,\n jsonXmlTableRowProps,\n jsonXmlTableRowEmits\n} from '../config'\n\nimport TableRow from './json-xml-table-row.vue'\n\nimport ClickInput from './click-input.vue'\n\ndefineOptions({ name: 'LlJsonXmlTableRow' })\n\nconst bem = createNamespace('json-xml')\n\nconst props = defineProps(jsonXmlTableRowProps)\n\nconst emits = defineEmits(jsonXmlTableRowEmits)\n\nconst disabled = inject('disabled') as boolean\n\nconst innerData = ref(props.data)\n\nconst parentData = ref(props.parentData)\n\nconst expanded = ref(true)\n\nconst addValue = ref('')\n\nconst customOverlay = (parentData, innerData) => [\n {\n label: '添加子节点',\n type: 'child',\n parentData,\n innerData\n },\n {\n label: '添加相邻节点',\n type: 'next',\n parentData,\n innerData\n }\n]\n\nconst getTip = (parentData, innerData) => {\n if (\n !parentData ||\n (parentData.type === 'array' && innerData.type === 'object')\n ) {\n return 'child'\n }\n if (parentData.type === 'object' && innerData.type !== 'object') {\n return 'next'\n }\n}\n\nconst handleChange = () => {\n if (innerData.value.type === 'object' || innerData.value.type === 'array') {\n innerData.value.children = []\n if (innerData.value.type === 'array') {\n innerData.value.children[0] = {\n key: props.treeKey + '-1',\n name: 'ITEMS',\n type: 'string',\n value: '',\n chineseName: '',\n description: '',\n mock: ''\n }\n }\n } else {\n delete innerData.value.children\n }\n}\n\nconst handleConfirm = (parentData, innerData) => {\n const findIndex = parentData.children.findIndex(\n item => item.key === innerData.key\n )\n parentData.children.splice(findIndex, 1)\n}\n\nconst handleInput = () => {\n innerData.value.children = []\n innerData.value.children[0] = {\n key: props.treeKey + '-1',\n name: addValue.value,\n type: 'string',\n value: '',\n chineseName: '',\n description: '',\n mock: ''\n }\n addValue.value = ''\n}\n\nconst handleAdd = (type, parentData, innerData) => {\n if (type === 'next') {\n parentData.children.push({\n key: `${parentData.children.length + 1}`,\n name: '',\n type: 'string',\n value: '',\n chineseName: '',\n description: '',\n mock: ''\n })\n } else {\n innerData.children.push({\n key: props.treeKey + `${innerData.children.length + 1}`,\n name: '',\n type: 'string',\n value: '',\n chineseName: '',\n description: '',\n mock: ''\n })\n }\n}\nconst handleClaimSelected = item => {\n const { type, parentData, innerData } = item\n handleAdd(type, parentData, innerData)\n}\n\nconst handleRowChange = child => {\n if (innerData.value.children) {\n const index = innerData.value.children.findIndex(\n item => item.key === child.key\n )\n innerData.value.children[index] = child\n }\n}\nwatch(\n innerData,\n () => {\n emits('change', innerData.value)\n },\n {\n deep: true\n }\n)\n</script>\n"],"names":["parentData","innerData"],"mappings":"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"}
1
+ {"version":3,"file":"json-xml-table-row.vue2.mjs","sources":["../../../../../../../packages/components/api-component/src/components/json-xml-table-row.vue"],"sourcesContent":["<template>\n <a-row :gutter=\"20\" :class=\"bem.e('table-row')\">\n <a-col style=\"display: flex\" :span=\"7\" :class=\"bem.e('table-col')\">\n <p :style=\"{ width: 10 * props.layer + 'px' }\" />\n <div style=\"margin-right: 30px\" :class=\"bem.m('table-row-icon')\">\n <ll-button\n v-if=\"innerData.type === 'object' || innerData.type === 'array'\"\n type=\"link\"\n style=\"width: 10px\"\n :disabled=\"disabled\"\n @click=\"expanded = !expanded\"\n >\n <ll-icon\n v-if=\"!expanded\"\n style=\"font-size: 14px\"\n icon-name=\"icon-list-expand\"\n />\n <ll-icon\n v-else\n style=\"font-size: 14px\"\n icon-name=\"icon-list-retract\"\n />\n </ll-button>\n </div>\n\n <div v-if=\"!props.parentData\" :class=\"bem.m('table-row-tag')\">根节点</div>\n <template v-else>\n <div\n v-if=\"props.parentData.type === 'array'\"\n :class=\"bem.m('table-row-tag')\"\n >\n ITEMS\n </div>\n <ll-input\n v-if=\"props.parentData.type === 'object'\"\n v-model:value=\"innerData.name\"\n :disabled=\"disabled\"\n placeholder=\"添加字段名\"\n style=\"width: 100%\"\n :bordered=\"false\"\n ></ll-input>\n </template>\n </a-col>\n <a-col :span=\"3\" :class=\"bem.e('table-col')\">\n <ll-select\n v-model:value=\"innerData.type\"\n :options=\"jsonXmlTypeOptions\"\n :disabled=\"disabled\"\n style=\"width: 100%\"\n @change=\"handleChange\"\n />\n </a-col>\n <a-col :span=\"4\" :class=\"bem.e('table-col')\">\n <click-input\n v-model:value=\"innerData.mock\"\n placeholder=\"Mock\"\n :disabled=\"innerData.type === 'object' || disabled\"\n style=\"width: 100%\"\n />\n </a-col>\n <a-col :span=\"4\" :class=\"bem.e('table-col')\">\n <ll-input\n v-model:value=\"innerData.chineseName\"\n :disabled=\"disabled\"\n placeholder=\"中文名\"\n style=\"width: 100%\"\n />\n </a-col>\n <a-col :span=\"4\" :class=\"bem.e('table-col')\">\n <click-input\n v-model:value=\"innerData.description\"\n :disabled=\"disabled\"\n placeholder=\"说明\"\n style=\"width: 100%\"\n />\n </a-col>\n <a-col :span=\"2\">\n <div :class=\"bem.e('table-operation')\">\n <ll-tooltip\n v-if=\"\n (props.parentData &&\n props.parentData.type === 'object' &&\n innerData.type !== 'object') ||\n (!props.parentData && innerData.type === 'object')\n \"\n :tip=\"\n getTip(parentData, innerData) === 'child'\n ? '添加子节点'\n : '添加相邻节点'\n \"\n >\n <ll-button\n type=\"link\"\n :disabled=\"disabled\"\n :class=\"bem.m('table-icon')\"\n @click=\"\n handleAdd(\n getTip(parentData, innerData),\n props.parentData,\n innerData\n )\n \"\n >\n <ll-icon icon-name=\"icon-list-add\" />\n </ll-button>\n </ll-tooltip>\n\n <ll-dropdown\n :dropdown-items=\"customOverlay(props.parentData, innerData)\"\n placement=\"bottomRight\"\n @claim-selected=\"handleClaimSelected\"\n >\n <ll-button\n v-if=\"\n props.parentData &&\n props.parentData.type === 'object' &&\n innerData.type === 'object'\n \"\n :class=\"bem.m('table-icon')\"\n :disabled=\"disabled\"\n type=\"link\"\n >\n <ll-icon icon-name=\"icon-list-add\" />\n </ll-button>\n </ll-dropdown>\n\n <a-popconfirm\n v-if=\"props.parentData && props.parentData.type !== 'array'\"\n title=\"你确定要移除吗?\"\n ok-text=\"确认\"\n cancel-text=\"取消\"\n placement=\"topRight\"\n :overlay-class-name=\"bem.e('popconfirm')\"\n :disabled=\"disabled\"\n @confirm=\"handleConfirm(props.parentData, innerData)\"\n >\n <ll-button\n type=\"link\"\n :disabled=\"disabled\"\n :class=\"bem.m('table-icon')\"\n >\n <ll-icon icon-name=\"icon-remove\" />\n </ll-button>\n </a-popconfirm>\n </div>\n </a-col>\n </a-row>\n\n <template v-if=\"expanded\">\n <a-row\n v-if=\"\n innerData.type === 'object' &&\n innerData.children &&\n innerData.children.length === 0\n \"\n :gutter=\"20\"\n :class=\"bem.e('table-row')\"\n >\n <a-col style=\"display: flex\" :span=\"7\" :class=\"bem.e('table-col')\">\n <p :style=\"{ width: 10 * props.layer + 'px' }\" />\n <div style=\"margin-right: 30px\" :class=\"bem.m('table-row-icon')\" />\n <ll-input\n v-model:value=\"addValue\"\n placeholder=\"添加字段名\"\n :bordered=\"false\"\n :disabled=\"disabled\"\n @input=\"handleInput\"\n />\n </a-col>\n </a-row>\n\n <template v-if=\"innerData.children && innerData.children.length > 0\">\n <template v-for=\"(child, index) in innerData.children\" :key=\"index\">\n <table-row\n :parent-data=\"innerData\"\n :list=\"innerData.children\"\n :data=\"child\"\n :layer=\"props.layer + 1\"\n :tree-key=\"props.treeKey + '-' + (index + 1)\"\n @change=\"handleRowChange\"\n />\n </template>\n </template>\n </template>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch, inject } from 'vue'\n\nimport { createNamespace } from '@ll-plus/utils'\n\nimport {\n jsonXmlTypeOptions,\n jsonXmlTableRowProps,\n jsonXmlTableRowEmits\n} from '../config'\n\nimport TableRow from './json-xml-table-row.vue'\n\nimport ClickInput from './click-input.vue'\n\ndefineOptions({ name: 'LlJsonXmlTableRow' })\n\nconst bem = createNamespace('json-xml')\n\nconst props = defineProps(jsonXmlTableRowProps)\n\nconst emits = defineEmits(jsonXmlTableRowEmits)\n\nconst disabled = inject('disabled') as boolean\n\nconst innerData = ref(props.data)\n\nconst parentData = ref(props.parentData)\n\nconst expanded = ref(true)\n\nconst addValue = ref('')\n\nconst customOverlay = (parentData, innerData) => [\n {\n label: '添加子节点',\n type: 'child',\n parentData,\n innerData\n },\n {\n label: '添加相邻节点',\n type: 'next',\n parentData,\n innerData\n }\n]\n\nconst getTip = (parentData, innerData) => {\n if (\n !parentData ||\n (parentData.type === 'array' && innerData.type === 'object')\n ) {\n return 'child'\n }\n if (parentData.type === 'object' && innerData.type !== 'object') {\n return 'next'\n }\n}\n\nconst handleChange = () => {\n if (innerData.value.type === 'object' || innerData.value.type === 'array') {\n innerData.value.children = []\n if (innerData.value.type === 'array') {\n innerData.value.children[0] = {\n key: props.treeKey + '-1',\n name: 'ITEMS',\n type: 'string',\n value: '',\n chineseName: '',\n description: '',\n mock: ''\n }\n }\n } else {\n delete innerData.value.children\n }\n}\n\nconst handleConfirm = (parentData, innerData) => {\n const findIndex = parentData.children.findIndex(\n item => item.key === innerData.key\n )\n parentData.children.splice(findIndex, 1)\n}\n\nconst handleInput = () => {\n innerData.value.children = []\n innerData.value.children[0] = {\n key: props.treeKey + '-1',\n name: addValue.value,\n type: 'string',\n value: '',\n chineseName: '',\n description: '',\n mock: ''\n }\n addValue.value = ''\n}\n\nconst handleAdd = (type, parentData, innerData) => {\n if (type === 'next') {\n parentData.children.push({\n key: `${parentData.children.length + 1}`,\n name: '',\n type: 'string',\n value: '',\n chineseName: '',\n description: '',\n mock: ''\n })\n } else {\n innerData.children.push({\n key: props.treeKey + `${innerData.children.length + 1}`,\n name: '',\n type: 'string',\n value: '',\n chineseName: '',\n description: '',\n mock: ''\n })\n }\n}\nconst handleClaimSelected = item => {\n const { type, parentData, innerData } = item\n handleAdd(type, parentData, innerData)\n}\n\nconst handleRowChange = child => {\n if (innerData.value.children) {\n const index = innerData.value.children.findIndex(\n item => item.key === child.key\n )\n innerData.value.children[index] = child\n }\n}\nwatch(\n innerData,\n () => {\n emits('change', innerData.value)\n },\n {\n deep: true\n }\n)\n</script>\n"],"names":["parentData","innerData"],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- import { defineComponent, ref, watchEffect, computed, useAttrs, onMounted, resolveComponent, openBlock, createElementBlock, normalizeClass, unref, createBlock, resolveDynamicComponent, mergeProps, createSlots, renderList, withCtx, renderSlot, normalizeProps, guardReactiveProps, createVNode } from 'vue';
1
+ import { defineComponent, ref, computed, watch, useAttrs, resolveComponent, openBlock, createElementBlock, normalizeClass, unref, createBlock, resolveDynamicComponent, mergeProps, createSlots, renderList, withCtx, renderSlot, normalizeProps, guardReactiveProps, createVNode } from 'vue';
2
2
  import { Input } from 'ant-design-vue';
3
3
  import '../../../utils/index.mjs';
4
4
  import { inputProps } from './input.mjs';
5
+ import { omit } from 'lodash';
5
6
  import { createNamespace } from '../../../utils/create-namespace.mjs';
6
7
 
7
8
  "use strict";
@@ -9,56 +10,49 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
9
10
  ...{ name: "LlInput" },
10
11
  __name: "input",
11
12
  props: inputProps,
12
- setup(__props, { expose: __expose }) {
13
+ emits: ["update:value"],
14
+ setup(__props, { expose: __expose, emit: __emit }) {
13
15
  const bem = createNamespace("input");
14
16
  const props = __props;
17
+ const emit = __emit;
15
18
  const innerValue = ref("");
16
19
  const inputRef = ref();
17
- const allowClear = ref(false);
20
+ const isMouseOver = ref(false);
21
+ const hasValue = computed(() => innerValue.value !== "");
18
22
  const handleMouseOver = () => {
19
- if (props.allowClear) {
20
- allowClear.value = true;
21
- }
23
+ isMouseOver.value = true;
22
24
  };
23
- const handleMouseOut = (e) => {
24
- if (!props.allowClear) {
25
- return;
26
- }
27
- if (e.relatedTarget && (e.relatedTarget.classList.contains("ant-input-clear-icon") || e.relatedTarget.closest(".ant-input-clear-icon"))) {
28
- return;
29
- }
30
- allowClear.value = false;
25
+ const handleMouseOut = () => {
26
+ isMouseOver.value = false;
31
27
  };
32
- watchEffect(() => {
33
- if (props.value !== innerValue.value) {
34
- innerValue.value = props.value;
28
+ watch(
29
+ () => props.value,
30
+ (newValue) => {
31
+ innerValue.value = newValue;
32
+ },
33
+ {
34
+ immediate: true
35
35
  }
36
- });
36
+ );
37
+ watch(
38
+ innerValue,
39
+ (newValue) => {
40
+ console.log(newValue);
41
+ emit("update:value", newValue);
42
+ },
43
+ {
44
+ immediate: true
45
+ }
46
+ );
37
47
  const componentType = props.showPassword ? Input.Password : Input;
38
48
  const computedAttrs = computed(() => {
39
- const attrs = { ...useAttrs(), ...props };
49
+ const attrs = { ...omit(useAttrs(), ["class", "style"]), props };
50
+ console.log(attrs);
40
51
  return attrs;
41
52
  });
42
53
  const focus = () => {
43
54
  inputRef.value.focus();
44
55
  };
45
- onMounted(() => {
46
- if (props.allowClear) {
47
- const clearIcon = inputRef.value?.$el.querySelector(".ant-input-clear-icon");
48
- if (clearIcon) {
49
- clearIcon.addEventListener("mouseover", (e) => {
50
- e.stopPropagation();
51
- allowClear.value = true;
52
- });
53
- clearIcon.addEventListener("mouseout", (e) => {
54
- if (e.relatedTarget && inputRef.value.$el.contains(e.relatedTarget)) {
55
- return;
56
- }
57
- allowClear.value = false;
58
- });
59
- }
60
- }
61
- });
62
56
  __expose({ focus });
63
57
  return (_ctx, _cache) => {
64
58
  const _component_ll_icon = resolveComponent("ll-icon");
@@ -74,7 +68,12 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
74
68
  ref_key: "inputRef",
75
69
  ref: inputRef
76
70
  }, computedAttrs.value, {
77
- "allow-clear": props.allowClear ? allowClear.value : false
71
+ value: innerValue.value,
72
+ "onUpdate:value": _cache[0] || (_cache[0] = ($event) => innerValue.value = $event),
73
+ "allow-clear": props.allowClear,
74
+ class: {
75
+ "show-clear-icon": props.allowClear && hasValue.value && isMouseOver.value
76
+ }
78
77
  }), createSlots({
79
78
  _: 2
80
79
  /* DYNAMIC */
@@ -107,7 +106,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
107
106
  ]),
108
107
  key: "1"
109
108
  } : void 0
110
- ]), 1040, ["allow-clear"]))
109
+ ]), 1040, ["value", "allow-clear", "class"]))
111
110
  ],
112
111
  34
113
112
  /* CLASS, NEED_HYDRATION */
@@ -1 +1 @@
1
- {"version":3,"file":"input.vue2.mjs","sources":["../../../../../../packages/components/input/src/input.vue"],"sourcesContent":["<template>\n <div :class=\"bem.b()\" @mouseover=\"handleMouseOver\" @mouseout=\"handleMouseOut\">\n <component\n :is=\"componentType\"\n ref=\"inputRef\"\n v-bind=\"computedAttrs\"\n :allow-clear=\"props.allowClear ? allowClear : false\"\n >\n <template v-for=\"item in Object.keys($slots)\" :key=\"item\" #[item]=\"data\">\n <slot :name=\"item\" v-bind=\"data || {}\"></slot>\n </template>\n <template v-if=\"prefixIcon\" #prefix>\n <ll-icon :icon-name=\"prefixIcon\" class=\"prefix-icon\" />\n </template>\n <template v-if=\"suffixIcon\" #suffix>\n <ll-icon :icon-name=\"suffixIcon\" class=\"suffix-icon\" />\n </template>\n </component>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, useAttrs, watchEffect, onMounted } from 'vue'\nimport { Input } from 'ant-design-vue'\nimport { createNamespace } from '@ll-plus/utils'\nimport { InputValue, inputProps } from './input'\n\ndefineOptions({ name: 'LlInput' })\n\nconst bem = createNamespace('input')\n\nconst props = defineProps(inputProps)\n\nconst innerValue = ref<InputValue>('')\n\nconst inputRef = ref()\n\nconst allowClear = ref(false)\n\n// 鼠标移入事件\nconst handleMouseOver = () => {\n if (props.allowClear) {\n allowClear.value = true\n }\n}\n\n// 鼠标移出事件\nconst handleMouseOut = (e: any) => {\n if (!props.allowClear) {\n return\n }\n if (\n e.relatedTarget &&\n (e.relatedTarget.classList.contains('ant-input-clear-icon') ||\n e.relatedTarget.closest('.ant-input-clear-icon'))\n ) {\n return\n }\n allowClear.value = false\n}\n\nwatchEffect(() => {\n if (props.value !== innerValue.value) {\n innerValue.value = props.value\n }\n})\n\nconst componentType = props.showPassword ? Input.Password : Input\n\nconst computedAttrs = computed(() => {\n const attrs = { ...useAttrs(), ...props }\n\n return attrs\n})\n\nconst focus = () => {\n inputRef.value.focus()\n}\n\n// 给图标阻止冒泡事件\nonMounted(() => {\n if (props.allowClear) {\n const clearIcon = inputRef.value?.$el.querySelector('.ant-input-clear-icon')\n if (clearIcon) {\n clearIcon.addEventListener('mouseover', (e: any) => {\n e.stopPropagation()\n allowClear.value = true\n })\n clearIcon.addEventListener('mouseout', (e: any) => {\n if (e.relatedTarget && inputRef.value.$el.contains(e.relatedTarget)) {\n return\n }\n allowClear.value = false\n })\n }\n }\n})\n\ndefineExpose({ focus })\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;AA6BA,IAAM,MAAA,GAAA,GAAM,gBAAgB,OAAO,CAAA,CAAA;AAEnC,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAEd,IAAM,MAAA,UAAA,GAAa,IAAgB,EAAE,CAAA,CAAA;AAErC,IAAA,MAAM,WAAW,GAAI,EAAA,CAAA;AAErB,IAAM,MAAA,UAAA,GAAa,IAAI,KAAK,CAAA,CAAA;AAG5B,IAAA,MAAM,kBAAkB,MAAM;AAC5B,MAAA,IAAI,MAAM,UAAY,EAAA;AACpB,QAAA,UAAA,CAAW,KAAQ,GAAA,IAAA,CAAA;AAAA,OACrB;AAAA,KACF,CAAA;AAGA,IAAM,MAAA,cAAA,GAAiB,CAAC,CAAW,KAAA;AACjC,MAAI,IAAA,CAAC,MAAM,UAAY,EAAA;AACrB,QAAA,OAAA;AAAA,OACF;AACA,MAAA,IACE,CAAE,CAAA,aAAA,KACD,CAAE,CAAA,aAAA,CAAc,SAAU,CAAA,QAAA,CAAS,sBAAsB,CAAA,IACxD,CAAE,CAAA,aAAA,CAAc,OAAQ,CAAA,uBAAuB,CACjD,CAAA,EAAA;AACA,QAAA,OAAA;AAAA,OACF;AACA,MAAA,UAAA,CAAW,KAAQ,GAAA,KAAA,CAAA;AAAA,KACrB,CAAA;AAEA,IAAA,WAAA,CAAY,MAAM;AAChB,MAAI,IAAA,KAAA,CAAM,KAAU,KAAA,UAAA,CAAW,KAAO,EAAA;AACpC,QAAA,UAAA,CAAW,QAAQ,KAAM,CAAA,KAAA,CAAA;AAAA,OAC3B;AAAA,KACD,CAAA,CAAA;AAED,IAAA,MAAM,aAAgB,GAAA,KAAA,CAAM,YAAe,GAAA,KAAA,CAAM,QAAW,GAAA,KAAA,CAAA;AAE5D,IAAM,MAAA,aAAA,GAAgB,SAAS,MAAM;AACnC,MAAA,MAAM,QAAQ,EAAE,GAAG,QAAS,EAAA,EAAG,GAAG,KAAM,EAAA,CAAA;AAExC,MAAO,OAAA,KAAA,CAAA;AAAA,KACR,CAAA,CAAA;AAED,IAAA,MAAM,QAAQ,MAAM;AAClB,MAAA,QAAA,CAAS,MAAM,KAAM,EAAA,CAAA;AAAA,KACvB,CAAA;AAGA,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,MAAM,UAAY,EAAA;AACpB,QAAA,MAAM,SAAY,GAAA,QAAA,CAAS,KAAO,EAAA,GAAA,CAAI,cAAc,uBAAuB,CAAA,CAAA;AAC3E,QAAA,IAAI,SAAW,EAAA;AACb,UAAU,SAAA,CAAA,gBAAA,CAAiB,WAAa,EAAA,CAAC,CAAW,KAAA;AAClD,YAAA,CAAA,CAAE,eAAgB,EAAA,CAAA;AAClB,YAAA,UAAA,CAAW,KAAQ,GAAA,IAAA,CAAA;AAAA,WACpB,CAAA,CAAA;AACD,UAAU,SAAA,CAAA,gBAAA,CAAiB,UAAY,EAAA,CAAC,CAAW,KAAA;AACjD,YAAI,IAAA,CAAA,CAAE,iBAAiB,QAAS,CAAA,KAAA,CAAM,IAAI,QAAS,CAAA,CAAA,CAAE,aAAa,CAAG,EAAA;AACnE,cAAA,OAAA;AAAA,aACF;AACA,YAAA,UAAA,CAAW,KAAQ,GAAA,KAAA,CAAA;AAAA,WACpB,CAAA,CAAA;AAAA,SACH;AAAA,OACF;AAAA,KACD,CAAA,CAAA;AAED,IAAa,QAAA,CAAA,EAAE,OAAO,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"input.vue2.mjs","sources":["../../../../../../packages/components/input/src/input.vue"],"sourcesContent":["<template>\n <div :class=\"bem.b()\" @mouseover=\"handleMouseOver\" @mouseout=\"handleMouseOut\">\n <component\n :is=\"componentType\"\n ref=\"inputRef\"\n v-bind=\"computedAttrs\"\n v-model:value=\"innerValue\"\n :allow-clear=\"props.allowClear\"\n :class=\"{\n 'show-clear-icon': props.allowClear && hasValue && isMouseOver\n }\"\n >\n <template v-for=\"item in Object.keys($slots)\" :key=\"item\" #[item]=\"data\">\n <slot :name=\"item\" v-bind=\"data || {}\"></slot>\n </template>\n <template v-if=\"prefixIcon\" #prefix>\n <ll-icon :icon-name=\"prefixIcon\" class=\"prefix-icon\" />\n </template>\n <template v-if=\"suffixIcon\" #suffix>\n <ll-icon :icon-name=\"suffixIcon\" class=\"suffix-icon\" />\n </template>\n </component>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, useAttrs, watch } from 'vue'\nimport { Input } from 'ant-design-vue'\nimport { createNamespace } from '@ll-plus/utils'\nimport { InputValue, inputProps } from './input'\nimport { omit } from 'lodash'\n\ndefineOptions({ name: 'LlInput' })\n\nconst bem = createNamespace('input')\n\nconst props = defineProps(inputProps)\n\nconst emit = defineEmits(['update:value'])\n\nconst innerValue = ref<InputValue>('')\n\nconst inputRef = ref()\n\nconst isMouseOver = ref(false)\n\n// 判断当前输入框是否有值\nconst hasValue = computed(() => innerValue.value !== '')\n\n// 鼠标移入事件\nconst handleMouseOver = () => {\n isMouseOver.value = true\n}\n\n// 鼠标移出事件\nconst handleMouseOut = () => {\n isMouseOver.value = false\n}\n\n// 监听props.value的变化\nwatch(\n () => props.value,\n newValue => {\n innerValue.value = newValue\n },\n {\n immediate: true\n }\n)\n\n// 监听innerValue的变化,触发update:value事件\nwatch(\n innerValue,\n newValue => {\n console.log(newValue)\n emit('update:value', newValue)\n },\n {\n immediate: true\n }\n)\n\n// 根据showPassword属性决定组件类型\nconst componentType = props.showPassword ? Input.Password : Input\n\n// 计算属性,合并attrs和props\nconst computedAttrs = computed(() => {\n const attrs = { ...omit(useAttrs(), ['class', 'style']), props }\n console.log(attrs)\n return attrs\n})\n\n// 聚焦输入框\nconst focus = () => {\n inputRef.value.focus()\n}\n\n// 公开focus方法\ndefineExpose({ focus })\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAkCA,IAAM,MAAA,GAAA,GAAM,gBAAgB,OAAO,CAAA,CAAA;AAEnC,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AAEd,IAAA,MAAM,IAAO,GAAA,MAAA,CAAA;AAEb,IAAM,MAAA,UAAA,GAAa,IAAgB,EAAE,CAAA,CAAA;AAErC,IAAA,MAAM,WAAW,GAAI,EAAA,CAAA;AAErB,IAAM,MAAA,WAAA,GAAc,IAAI,KAAK,CAAA,CAAA;AAG7B,IAAA,MAAM,QAAW,GAAA,QAAA,CAAS,MAAM,UAAA,CAAW,UAAU,EAAE,CAAA,CAAA;AAGvD,IAAA,MAAM,kBAAkB,MAAM;AAC5B,MAAA,WAAA,CAAY,KAAQ,GAAA,IAAA,CAAA;AAAA,KACtB,CAAA;AAGA,IAAA,MAAM,iBAAiB,MAAM;AAC3B,MAAA,WAAA,CAAY,KAAQ,GAAA,KAAA,CAAA;AAAA,KACtB,CAAA;AAGA,IAAA,KAAA;AAAA,MACE,MAAM,KAAM,CAAA,KAAA;AAAA,MACZ,CAAY,QAAA,KAAA;AACV,QAAA,UAAA,CAAW,KAAQ,GAAA,QAAA,CAAA;AAAA,OACrB;AAAA,MACA;AAAA,QACE,SAAW,EAAA,IAAA;AAAA,OACb;AAAA,KACF,CAAA;AAGA,IAAA,KAAA;AAAA,MACE,UAAA;AAAA,MACA,CAAY,QAAA,KAAA;AACV,QAAA,OAAA,CAAQ,IAAI,QAAQ,CAAA,CAAA;AACpB,QAAA,IAAA,CAAK,gBAAgB,QAAQ,CAAA,CAAA;AAAA,OAC/B;AAAA,MACA;AAAA,QACE,SAAW,EAAA,IAAA;AAAA,OACb;AAAA,KACF,CAAA;AAGA,IAAA,MAAM,aAAgB,GAAA,KAAA,CAAM,YAAe,GAAA,KAAA,CAAM,QAAW,GAAA,KAAA,CAAA;AAG5D,IAAM,MAAA,aAAA,GAAgB,SAAS,MAAM;AACnC,MAAM,MAAA,KAAA,GAAQ,EAAE,GAAG,IAAK,CAAA,QAAA,EAAY,EAAA,CAAC,OAAS,EAAA,OAAO,CAAC,CAAA,EAAG,KAAM,EAAA,CAAA;AAC/D,MAAA,OAAA,CAAQ,IAAI,KAAK,CAAA,CAAA;AACjB,MAAO,OAAA,KAAA,CAAA;AAAA,KACR,CAAA,CAAA;AAGD,IAAA,MAAM,QAAQ,MAAM;AAClB,MAAA,QAAA,CAAS,MAAM,KAAM,EAAA,CAAA;AAAA,KACvB,CAAA;AAGA,IAAa,QAAA,CAAA,EAAE,OAAO,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -27,6 +27,6 @@ export declare const buildProp: <Type = never, Value = never, Validator = never,
27
27
  export type TestProps = Record<string, {
28
28
  [epPropKey]: true;
29
29
  } | NativePropType | EpPropInput<any, any, any, any, any>>;
30
- export declare const buildProps: <Props extends Record<string, {
30
+ export declare const buildProps: <Props extends Record<string, NativePropType | EpPropInput<any, any, any, any, any> | {
31
31
  __epPropKey: true;
32
- } | NativePropType | EpPropInput<any, any, any, any, any>>>(props: Props) => { [K in keyof Props]: IfEpProp<Props[K], Props[K], IfNativePropType<Props[K], Props[K], EpPropConvert<Props[K]>>>; };
32
+ }>>(props: Props) => { [K in keyof Props]: IfEpProp<Props[K], Props[K], IfNativePropType<Props[K], Props[K], EpPropConvert<Props[K]>>>; };