tdesign-mobile-vue
Version:
tdesign-mobile-vue
1 lines • 3.47 kB
Source Map (JSON)
{"version":3,"file":"utils.mjs","sources":["../../src/picker/utils.ts"],"sourcesContent":["import { isArray, get as lodashGet } from 'lodash-es';\nimport { PickerColumn } from './type';\nimport { KeysType } from '../common';\n\nexport const isMultipleArray = (arr: PickerColumn | PickerColumn[]) => {\n return isArray(arr[0]);\n};\n\nexport const getPickerColumns = (columns: any): PickerColumn[] => {\n return isMultipleArray(columns) ? columns : [columns];\n};\n\n/**\n * 将num限制在给定的最大值(max)和最小值(min)之间\n */\nexport const limitNumberInRange = (num: number, min: number, max: number): number => Math.min(Math.max(num, min), max);\n\nexport function findIndexOfEnabledOption(options: PickerColumn, startIndex: number, keys?: KeysType): number {\n // 确保起始索引在合法范围内\n const limitStartIndex = limitNumberInRange(startIndex, 0, Math.max(options.length - 1, 0));\n const disabledKey = keys?.disabled ?? 'disabled';\n\n // 检查 limitStartIndex 是否已经是有效选项,若是直接返回\n if (!lodashGet(options[limitStartIndex], disabledKey)) {\n return limitStartIndex;\n }\n\n // 双向搜索\n const maxOffset = Math.max(limitStartIndex, options.length - 1 - limitStartIndex);\n for (let i = 0; i <= maxOffset; i++) {\n // Forward Search\n const forwardIdx = limitStartIndex + i;\n if (forwardIdx < options.length && !lodashGet(options[forwardIdx], disabledKey)) {\n return forwardIdx;\n }\n\n // Backward Search\n const backwardIdx = limitStartIndex - i;\n if (backwardIdx >= 0 && !lodashGet(options[backwardIdx], disabledKey)) {\n return backwardIdx;\n }\n }\n return 0;\n}\n"],"names":["isMultipleArray","arr","isArray","getPickerColumns","columns","limitNumberInRange","num","min","max","Math","findIndexOfEnabledOption","options","startIndex","keys","_keys$disabled","limitStartIndex","length","disabledKey","disabled","lodashGet","maxOffset","i","forwardIdx","backwardIdx"],"mappings":";;;;;;;;IAIaA,eAAA,GAAkB,SAAlBA,eAAAA,CAAmBC,GAAuC,EAAA;AAC9D,EAAA,OAAAC,OAAA,CAAQD,IAAI,CAAE,CAAA,CAAA,CAAA;AACvB,EAAA;IAEaE,gBAAA,GAAmB,SAAnBA,gBAAAA,CAAoBC,OAAiC,EAAA;EAChE,OAAOJ,eAAgB,CAAAI,OAAO,CAAI,GAAAA,OAAA,GAAU,CAACA,OAAO,CAAA,CAAA;AACtD,EAAA;AAKO,IAAMC,kBAAqB,GAAA,SAArBA,kBAAqBA,CAACC,GAAa,EAAAC,GAAA,EAAaC,GAAwB,EAAA;AAAA,EAAA,OAAAC,IAAA,CAAKF,GAAI,CAAAE,IAAA,CAAKD,GAAI,CAAAF,GAAA,EAAKC,GAAG,CAAA,EAAGC,GAAG,CAAA,CAAA;AAAA,EAAA;AAErG,SAAAE,wBAAAA,CAAyBC,OAAuB,EAAAC,UAAA,EAAoBC,IAAyB,EAAA;AAAA,EAAA,IAAAC,cAAA,CAAA;EAErG,IAAAC,eAAA,GAAkBV,kBAAmB,CAAAO,UAAA,EAAY,CAAG,EAAAH,IAAA,CAAKD,IAAIG,OAAQ,CAAAK,MAAA,GAAS,CAAG,EAAA,CAAC,CAAC,CAAA,CAAA;AACnF,EAAA,IAAAC,WAAA,GAAAH,CAAAA,cAAA,GAAcD,iBAAAA,2BAAAA,KAAMK,QAAY,MAAAJ,IAAAA,IAAAA,cAAA,KAAAA,KAAAA,CAAAA,GAAAA,cAAA,GAAA,UAAA,CAAA;EAGtC,IAAI,CAACK,GAAA,CAAUR,OAAQ,CAAAI,eAAA,CAAA,EAAkBE,WAAW,CAAG,EAAA;AAC9C,IAAA,OAAAF,eAAA,CAAA;AACT,GAAA;AAGA,EAAA,IAAMK,YAAYX,IAAK,CAAAD,GAAA,CAAIO,iBAAiBJ,OAAQ,CAAAK,MAAA,GAAS,IAAID,eAAe,CAAA,CAAA;EAChF,KAAA,IAASM,CAAI,GAAA,CAAA,EAAGA,CAAK,IAAAD,SAAA,EAAWC,CAAK,EAAA,EAAA;AAEnC,IAAA,IAAMC,aAAaP,eAAkB,GAAAM,CAAA,CAAA;AACjC,IAAA,IAAAC,UAAA,GAAaX,QAAQK,MAAU,IAAA,CAACG,IAAUR,OAAQ,CAAAW,UAAA,CAAA,EAAaL,WAAW,CAAG,EAAA;AACxE,MAAA,OAAAK,UAAA,CAAA;AACT,KAAA;AAGA,IAAA,IAAMC,cAAcR,eAAkB,GAAAM,CAAA,CAAA;AACtC,IAAA,IAAIE,eAAe,CAAK,IAAA,CAACJ,IAAUR,OAAQ,CAAAY,WAAA,CAAA,EAAcN,WAAW,CAAG,EAAA;AAC9D,MAAA,OAAAM,WAAA,CAAA;AACT,KAAA;AACF,GAAA;AACO,EAAA,OAAA,CAAA,CAAA;AACT;;;;"}