tdesign-mobile-vue
Version:
tdesign-mobile-vue
1 lines • 3.52 kB
Source Map (JSON)
{"version":3,"file":"utils.mjs","sources":["../../../../src/_common/js/drawer/utils.ts"],"sourcesContent":["type Placement = 'left' | 'right' | 'top' | 'bottom';\n\ninterface SizeDragLimit {\n max: number;\n min: number;\n}\n\nexport function getSizeDraggable(\n sizeDraggable: boolean | SizeDragLimit,\n limit: { max: number; min: number }\n) {\n if (typeof sizeDraggable === 'boolean') {\n return {\n allowSizeDraggable: sizeDraggable,\n max: limit.max,\n min: limit.min,\n };\n }\n\n return {\n allowSizeDraggable: true,\n max: sizeDraggable.max,\n min: sizeDraggable.min,\n };\n}\n\ntype IOptions = {\n x: number;\n y: number;\n maxWidth: number;\n maxHeight: number;\n min: number;\n max: number;\n};\n\n// > min && < max\nfunction calcSizeRange(size: number, min: number, max: number) {\n return Math.min(Math.max(size, min), max);\n}\n\nexport function calcMoveSize(placement: Placement, opts: IOptions) {\n const { x, y, max, min, maxWidth, maxHeight } = opts;\n let moveSize: number | undefined;\n switch (placement) {\n case 'right':\n // |<--- x --->| |\n // | maxWidth |\n // | size | > min && < max\n moveSize = calcSizeRange(maxWidth - x, min, max);\n break;\n case 'left':\n // |<-- x -->| |\n // x > min && < max\n moveSize = calcSizeRange(x, min, max);\n break;\n case 'top':\n // - - - - - - - -\n // | y |\n // | |\n // - - - - - - - -\n // > min && < max\n // moveSize = Math.min(Math.max(y, min), max);\n moveSize = calcSizeRange(y, min, max);\n break;\n case 'bottom':\n // - - - - - - - -\n // | y |\n // | | maxHeight\n // - - - - - - - -\n // | size |\n // > min && < max\n moveSize = calcSizeRange(maxHeight - y, min, max);\n break;\n default:\n // 参数缺失直接返回\n return moveSize;\n }\n return moveSize;\n}\n"],"names":["getSizeDraggable","sizeDraggable","limit","allowSizeDraggable","max","min","calcSizeRange","size","Math","calcMoveSize","placement","opts","x","y","maxWidth","maxHeight","moveSize"],"mappings":";;;;;;AAOgB,SAAAA,gBAAAA,CACdC,eACAC,KACA,EAAA;AACI,EAAA,IAAA,OAAOD,kBAAkB,SAAW,EAAA;IAC/B,OAAA;AACLE,MAAAA,kBAAoB,EAAAF,aAAA;MACpBG,KAAKF,KAAM,CAAAE,GAAA;MACXC,KAAKH,KAAM,CAAAG,GAAAA;KACb,CAAA;AACF,GAAA;EAEO,OAAA;AACLF,IAAAA,kBAAoB,EAAA,IAAA;IACpBC,KAAKH,aAAc,CAAAG,GAAA;IACnBC,KAAKJ,aAAc,CAAAI,GAAAA;GACrB,CAAA;AACF,CAAA;AAYA,SAASC,aAAAA,CAAcC,IAAc,EAAAF,GAAA,EAAaD,GAAa,EAAA;AAC7D,EAAA,OAAOI,KAAKH,GAAI,CAAAG,IAAA,CAAKJ,IAAIG,IAAM,EAAAF,GAAG,GAAGD,GAAG,CAAA,CAAA;AAC1C,CAAA;AAEgB,SAAAK,YAAAA,CAAaC,WAAsBC,IAAgB,EAAA;AACjE,EAAA,IAAQC,CAAG,GAAqCD,IAAA,CAAxCC,CAAG;IAAAC,CAAA,GAAqCF,IAAA,CAArCE,CAAA;IAAGT,MAAkCO,IAAA,CAAlCP;IAAKC,GAAK,GAAwBM,IAAA,CAA7BN,GAAK;IAAAS,QAAA,GAAwBH,IAAA,CAAxBG,QAAA;IAAUC,YAAcJ,IAAA,CAAdI;AAC9B,EAAA,IAAAC,QAAA,CAAA;AACI,EAAA,QAAAN,SAAA;AACD,IAAA,KAAA,OAAA;MAIHM,QAAA,GAAWV,aAAc,CAAAQ,QAAA,GAAWF,CAAG,EAAAP,GAAA,EAAKD,GAAG,CAAA,CAAA;AAC/C,MAAA,MAAA;AACG,IAAA,KAAA,MAAA;MAGQY,QAAA,GAAAV,aAAA,CAAcM,CAAG,EAAAP,GAAA,EAAKD,GAAG,CAAA,CAAA;AACpC,MAAA,MAAA;AACG,IAAA,KAAA,KAAA;MAOQY,QAAA,GAAAV,aAAA,CAAcO,CAAG,EAAAR,GAAA,EAAKD,GAAG,CAAA,CAAA;AACpC,MAAA,MAAA;AACG,IAAA,KAAA,QAAA;MAOHY,QAAA,GAAWV,aAAc,CAAAS,SAAA,GAAYF,CAAG,EAAAR,GAAA,EAAKD,GAAG,CAAA,CAAA;AAChD,MAAA,MAAA;AAAA,IAAA;AAGO,MAAA,OAAAY,QAAA,CAAA;AAAA,GAAA;AAEJ,EAAA,OAAAA,QAAA,CAAA;AACT;;;;"}