UNPKG

winbox-ui-next

Version:

We Design Vue 2.0: A Vue.js 3 UI Library

54 lines (53 loc) 1.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports[Symbol.toStringTag] = "Module"; const scaleAttr = [ 25, 33, 50, 67, 75, 80, 90, 100, 110, 125, 150, 175, 200, 250, 300, 400, 500 ].map((item) => +(item / 100).toFixed(2)); const minScale = scaleAttr[0]; const maxScale = scaleAttr[scaleAttr.length - 1]; function getScale(cur = 1, type = "zoomIn") { let index = scaleAttr.indexOf(cur); if (index === -1) { index = findClosestIndex(cur); } if (type === "zoomIn") { return index === scaleAttr.length - 1 ? cur : scaleAttr[index + 1]; } return index === 0 ? cur : scaleAttr[index - 1]; } function findClosestIndex(scale) { let closestIndex = scaleAttr.length - 1; for (let i = 0; i < scaleAttr.length; i++) { const current = scaleAttr[i]; if (scale === current) { closestIndex = i; break; } if (scale < current) { const pre = scaleAttr[i - 1]; closestIndex = pre === void 0 || Math.abs(pre - scale) <= Math.abs(current - scale) ? i - 1 : i; break; } } return closestIndex; } exports["default"] = getScale; exports.maxScale = maxScale; exports.minScale = minScale;