UNPKG

tdesign-mobile-vue

Version:
1 lines 8.16 kB
{"version":3,"file":"cascade.mjs","sources":["../../src/picker/cascade.vue","../../src/picker/cascade.vue?vue&type=template&id=7ec0ae22&lang.js"],"sourcesContent":["<template>\n <picker\n v-bind=\"pickerProps\"\n :columns=\"(selected) => generateCascadePickerColumns(selected, columns, finalDepth, finalSubOptionsRecord)\"\n />\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue';\nimport config from '../config';\nimport PickerProps from './props';\nimport { PickerColumn, PickerValue } from './type';\nimport Picker from './picker';\n\nconst { prefix } = config;\nconst name = `${prefix}-cascade`;\nexport default defineComponent({\n name,\n components: { Picker },\n props: PickerProps,\n setup(props: any, context) {\n const pickerProps = computed(() => ({ ...props }));\n const finalDepth = ref(1);\n const finalSubOptionsRecord = ref({});\n const generateCascadePickerColumns = (\n value: PickerValue[],\n options: any,\n depth: number,\n subOptionsRecord: Record<string, any>,\n ) => {\n const columns: PickerColumn[] = [];\n columns.push(\n options.map((option: any) => ({\n label: option.label,\n value: option.value,\n })),\n );\n for (let i = 0; i < depth - 1; i++) {\n const x = value[i];\n const subOptions = subOptionsRecord[x];\n if (!subOptions) {\n columns.push([]);\n } else {\n columns.push(\n subOptions.map((option: any) => ({\n label: option.label,\n value: option.value,\n })),\n );\n }\n }\n return columns;\n };\n const initDepthAndRecord = (options: any) => {\n let depth = 1;\n const subOptionsRecord: Record<string, any[]> = {};\n function traverse(option: any, currentDepth: number) {\n if (!option.children) {\n return;\n }\n subOptionsRecord[option.value] = option.children;\n const nextDepth = currentDepth + 1;\n if (nextDepth > depth) {\n depth = nextDepth;\n }\n option.children.forEach((option: any) => {\n traverse(option, nextDepth);\n });\n }\n options.forEach((option: any) => {\n traverse(option, 1);\n });\n finalDepth.value = depth;\n finalSubOptionsRecord.value = subOptionsRecord;\n };\n initDepthAndRecord(props.columns);\n return {\n name,\n finalDepth,\n finalSubOptionsRecord,\n pickerProps,\n generateCascadePickerColumns,\n };\n },\n});\n</script>\n","<template>\n <picker\n v-bind=\"pickerProps\"\n :columns=\"(selected) => generateCascadePickerColumns(selected, columns, finalDepth, finalSubOptionsRecord)\"\n />\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue';\nimport config from '../config';\nimport PickerProps from './props';\nimport { PickerColumn, PickerValue } from './type';\nimport Picker from './picker';\n\nconst { prefix } = config;\nconst name = `${prefix}-cascade`;\nexport default defineComponent({\n name,\n components: { Picker },\n props: PickerProps,\n setup(props: any, context) {\n const pickerProps = computed(() => ({ ...props }));\n const finalDepth = ref(1);\n const finalSubOptionsRecord = ref({});\n const generateCascadePickerColumns = (\n value: PickerValue[],\n options: any,\n depth: number,\n subOptionsRecord: Record<string, any>,\n ) => {\n const columns: PickerColumn[] = [];\n columns.push(\n options.map((option: any) => ({\n label: option.label,\n value: option.value,\n })),\n );\n for (let i = 0; i < depth - 1; i++) {\n const x = value[i];\n const subOptions = subOptionsRecord[x];\n if (!subOptions) {\n columns.push([]);\n } else {\n columns.push(\n subOptions.map((option: any) => ({\n label: option.label,\n value: option.value,\n })),\n );\n }\n }\n return columns;\n };\n const initDepthAndRecord = (options: any) => {\n let depth = 1;\n const subOptionsRecord: Record<string, any[]> = {};\n function traverse(option: any, currentDepth: number) {\n if (!option.children) {\n return;\n }\n subOptionsRecord[option.value] = option.children;\n const nextDepth = currentDepth + 1;\n if (nextDepth > depth) {\n depth = nextDepth;\n }\n option.children.forEach((option: any) => {\n traverse(option, nextDepth);\n });\n }\n options.forEach((option: any) => {\n traverse(option, 1);\n });\n finalDepth.value = depth;\n finalSubOptionsRecord.value = subOptionsRecord;\n };\n initDepthAndRecord(props.columns);\n return {\n name,\n finalDepth,\n finalSubOptionsRecord,\n pickerProps,\n generateCascadePickerColumns,\n };\n },\n});\n</script>\n"],"names":["prefix","config","name","defineComponent","components","Picker","props","PickerProps","setup","context","pickerProps","computed","_objectSpread","finalDepth","ref","finalSubOptionsRecord","generateCascadePickerColumns","value","options","depth","subOptionsRecord","columns","push","map","option","label","i","x","subOptions","initDepthAndRecord","traverse","currentDepth","children","nextDepth","forEach","_createBlock","_component_picker","_mergeProps","_ctx","selected"],"mappings":"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"}