vuestic-ui
Version:
Vue 3 UI Framework
1 lines • 1.78 kB
Source Map (JSON)
{"version":3,"file":"useParsableMeasure.mjs","sources":["../../../../src/composables/useParsableMeasure.ts"],"sourcesContent":["import { unref, Ref } from 'vue'\n\ntype MaybeRef<T> = Ref<T> | T\n\nexport const useParsableMeasure = () => {\n const isParsableMeasure = (value: unknown): value is string => {\n if (typeof value === 'string') {\n return (!isNaN(+value) ||\n value.endsWith('px') ||\n value.endsWith('rem'))\n }\n return false\n }\n\n const isParsablePositiveMeasure = (value: unknown) => {\n if (typeof value === 'number') {\n return value >= 0\n }\n return isParsableMeasure(value) && parseInt(value) >= 0\n }\n\n const parseSizeValue = (value: MaybeRef<number | string>, pageFontSize: MaybeRef<number> = 16) => {\n const valueUnref = unref(value)\n if (typeof valueUnref === 'string') {\n const parsedValue = parseInt(valueUnref)\n\n if (isNaN(parsedValue)) { return 0 }\n\n return valueUnref.endsWith('rem') ? parsedValue * unref(pageFontSize) : parsedValue\n }\n return valueUnref\n }\n\n return { isParsableMeasure, isParsablePositiveMeasure, parseSizeValue }\n}\n"],"names":[],"mappings":";AAIO,MAAM,qBAAqB,MAAM;AAChC,QAAA,oBAAoB,CAAC,UAAoC;AACzD,QAAA,OAAO,UAAU,UAAU;AACrB,aAAA,CAAC,MAAM,CAAC,KAAK,KACnB,MAAM,SAAS,IAAI,KACnB,MAAM,SAAS,KAAK;AAAA,IACxB;AACO,WAAA;AAAA,EAAA;AAGH,QAAA,4BAA4B,CAAC,UAAmB;AAChD,QAAA,OAAO,UAAU,UAAU;AAC7B,aAAO,SAAS;AAAA,IAClB;AACA,WAAO,kBAAkB,KAAK,KAAK,SAAS,KAAK,KAAK;AAAA,EAAA;AAGxD,QAAM,iBAAiB,CAAC,OAAkC,eAAiC,OAAO;AAC1F,UAAA,aAAa,MAAM,KAAK;AAC1B,QAAA,OAAO,eAAe,UAAU;AAC5B,YAAA,cAAc,SAAS,UAAU;AAEnC,UAAA,MAAM,WAAW,GAAG;AAAS,eAAA;AAAA,MAAE;AAEnC,aAAO,WAAW,SAAS,KAAK,IAAI,cAAc,MAAM,YAAY,IAAI;AAAA,IAC1E;AACO,WAAA;AAAA,EAAA;AAGF,SAAA,EAAE,mBAAmB,2BAA2B;AACzD;"}