@visactor/vutils 0.9.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -0
- package/README.zh-CN.md +0 -0
- package/cjs/angle.d.ts +12 -0
- package/cjs/angle.js +40 -0
- package/cjs/angle.js.map +1 -0
- package/cjs/color/Color.d.ts +181 -0
- package/cjs/color/Color.js +298 -0
- package/cjs/color/Color.js.map +1 -0
- package/cjs/color/hexToRgb.d.ts +1 -0
- package/cjs/color/hexToRgb.js +13 -0
- package/cjs/color/hexToRgb.js.map +1 -0
- package/cjs/color/hslToRgb.d.ts +5 -0
- package/cjs/color/hslToRgb.js +21 -0
- package/cjs/color/hslToRgb.js.map +1 -0
- package/cjs/color/index.d.ts +6 -0
- package/cjs/color/index.js +80 -0
- package/cjs/color/index.js.map +1 -0
- package/cjs/color/interpolate.d.ts +2 -0
- package/cjs/color/interpolate.js +18 -0
- package/cjs/color/interpolate.js.map +1 -0
- package/cjs/color/rgbToHex.d.ts +1 -0
- package/cjs/color/rgbToHex.js +10 -0
- package/cjs/color/rgbToHex.js.map +1 -0
- package/cjs/color/rgbToHsl.d.ts +5 -0
- package/cjs/color/rgbToHsl.js +19 -0
- package/cjs/color/rgbToHsl.js.map +1 -0
- package/cjs/common/array.d.ts +9 -0
- package/cjs/common/array.js +64 -0
- package/cjs/common/array.js.map +1 -0
- package/cjs/common/ascending.d.ts +1 -0
- package/cjs/common/ascending.js +10 -0
- package/cjs/common/ascending.js.map +1 -0
- package/cjs/common/bisect.d.ts +1 -0
- package/cjs/common/bisect.js +24 -0
- package/cjs/common/bisect.js.map +1 -0
- package/cjs/common/clamp.d.ts +2 -0
- package/cjs/common/clamp.js +12 -0
- package/cjs/common/clamp.js.map +1 -0
- package/cjs/common/clampRange.d.ts +2 -0
- package/cjs/common/clampRange.js +16 -0
- package/cjs/common/clampRange.js.map +1 -0
- package/cjs/common/clamper.d.ts +1 -0
- package/cjs/common/clamper.js +11 -0
- package/cjs/common/clamper.js.map +1 -0
- package/cjs/common/clone.d.ts +1 -0
- package/cjs/common/clone.js +42 -0
- package/cjs/common/clone.js.map +1 -0
- package/cjs/common/cloneDeep.d.ts +1 -0
- package/cjs/common/cloneDeep.js +31 -0
- package/cjs/common/cloneDeep.js.map +1 -0
- package/cjs/common/constant.d.ts +2 -0
- package/cjs/common/constant.js +17 -0
- package/cjs/common/constant.js.map +1 -0
- package/cjs/common/debounce.d.ts +7 -0
- package/cjs/common/debounce.js +76 -0
- package/cjs/common/debounce.js.map +1 -0
- package/cjs/common/deviation.d.ts +1 -0
- package/cjs/common/deviation.js +15 -0
- package/cjs/common/deviation.js.map +1 -0
- package/cjs/common/get.d.ts +3 -0
- package/cjs/common/get.js +20 -0
- package/cjs/common/get.js.map +1 -0
- package/cjs/common/getType.d.ts +2 -0
- package/cjs/common/getType.js +9 -0
- package/cjs/common/getType.js.map +1 -0
- package/cjs/common/has.d.ts +3 -0
- package/cjs/common/has.js +10 -0
- package/cjs/common/has.js.map +1 -0
- package/cjs/common/index.d.ts +56 -0
- package/cjs/common/index.js +485 -0
- package/cjs/common/index.js.map +1 -0
- package/cjs/common/interpolate.d.ts +4 -0
- package/cjs/common/interpolate.js +55 -0
- package/cjs/common/interpolate.js.map +1 -0
- package/cjs/common/isArray.d.ts +2 -0
- package/cjs/common/isArray.js +17 -0
- package/cjs/common/isArray.js.map +1 -0
- package/cjs/common/isArrayLike.d.ts +2 -0
- package/cjs/common/isArrayLike.js +12 -0
- package/cjs/common/isArrayLike.js.map +1 -0
- package/cjs/common/isBase64.d.ts +2 -0
- package/cjs/common/isBase64.js +10 -0
- package/cjs/common/isBase64.js.map +1 -0
- package/cjs/common/isBoolean.d.ts +2 -0
- package/cjs/common/isBoolean.js +17 -0
- package/cjs/common/isBoolean.js.map +1 -0
- package/cjs/common/isDate.d.ts +2 -0
- package/cjs/common/isDate.js +16 -0
- package/cjs/common/isDate.js.map +1 -0
- package/cjs/common/isEmpty.d.ts +2 -0
- package/cjs/common/isEmpty.js +26 -0
- package/cjs/common/isEmpty.js.map +1 -0
- package/cjs/common/isEqual.d.ts +1 -0
- package/cjs/common/isEqual.js +49 -0
- package/cjs/common/isEqual.js.map +1 -0
- package/cjs/common/isFunction.d.ts +2 -0
- package/cjs/common/isFunction.js +10 -0
- package/cjs/common/isFunction.js.map +1 -0
- package/cjs/common/isNil.d.ts +2 -0
- package/cjs/common/isNil.js +10 -0
- package/cjs/common/isNil.js.map +1 -0
- package/cjs/common/isNull.d.ts +2 -0
- package/cjs/common/isNull.js +10 -0
- package/cjs/common/isNull.js.map +1 -0
- package/cjs/common/isNumber.d.ts +2 -0
- package/cjs/common/isNumber.js +19 -0
- package/cjs/common/isNumber.js.map +1 -0
- package/cjs/common/isNumeric.d.ts +2 -0
- package/cjs/common/isNumeric.js +10 -0
- package/cjs/common/isNumeric.js.map +1 -0
- package/cjs/common/isObject.d.ts +2 -0
- package/cjs/common/isObject.js +12 -0
- package/cjs/common/isObject.js.map +1 -0
- package/cjs/common/isObjectLike.d.ts +2 -0
- package/cjs/common/isObjectLike.js +10 -0
- package/cjs/common/isObjectLike.js.map +1 -0
- package/cjs/common/isPlainObject.d.ts +2 -0
- package/cjs/common/isPlainObject.js +22 -0
- package/cjs/common/isPlainObject.js.map +1 -0
- package/cjs/common/isPrototype.d.ts +2 -0
- package/cjs/common/isPrototype.js +13 -0
- package/cjs/common/isPrototype.js.map +1 -0
- package/cjs/common/isRegExp.d.ts +2 -0
- package/cjs/common/isRegExp.js +16 -0
- package/cjs/common/isRegExp.js.map +1 -0
- package/cjs/common/isShallowEqual.d.ts +1 -0
- package/cjs/common/isShallowEqual.js +34 -0
- package/cjs/common/isShallowEqual.js.map +1 -0
- package/cjs/common/isString.d.ts +2 -0
- package/cjs/common/isString.js +19 -0
- package/cjs/common/isString.js.map +1 -0
- package/cjs/common/isType.d.ts +2 -0
- package/cjs/common/isType.js +10 -0
- package/cjs/common/isType.js.map +1 -0
- package/cjs/common/isUndefined.d.ts +2 -0
- package/cjs/common/isUndefined.js +10 -0
- package/cjs/common/isUndefined.js.map +1 -0
- package/cjs/common/isValid.d.ts +2 -0
- package/cjs/common/isValid.js +10 -0
- package/cjs/common/isValid.js.map +1 -0
- package/cjs/common/isValidNumber.d.ts +2 -0
- package/cjs/common/isValidNumber.js +17 -0
- package/cjs/common/isValidNumber.js.map +1 -0
- package/cjs/common/isValidUrl.d.ts +2 -0
- package/cjs/common/isValidUrl.js +10 -0
- package/cjs/common/isValidUrl.js.map +1 -0
- package/cjs/common/lowerFirst.d.ts +2 -0
- package/cjs/common/lowerFirst.js +12 -0
- package/cjs/common/lowerFirst.js.map +1 -0
- package/cjs/common/median.d.ts +1 -0
- package/cjs/common/median.js +13 -0
- package/cjs/common/median.js.map +1 -0
- package/cjs/common/merge.d.ts +1 -0
- package/cjs/common/merge.js +63 -0
- package/cjs/common/merge.js.map +1 -0
- package/cjs/common/mixin.d.ts +5 -0
- package/cjs/common/mixin.js +35 -0
- package/cjs/common/mixin.js.map +1 -0
- package/cjs/common/number.d.ts +3 -0
- package/cjs/common/number.js +23 -0
- package/cjs/common/number.js.map +1 -0
- package/cjs/common/pad.d.ts +2 -0
- package/cjs/common/pad.js +17 -0
- package/cjs/common/pad.js.map +1 -0
- package/cjs/common/pick.d.ts +1 -0
- package/cjs/common/pick.js +24 -0
- package/cjs/common/pick.js.map +1 -0
- package/cjs/common/pickWithout.d.ts +1 -0
- package/cjs/common/pickWithout.js +28 -0
- package/cjs/common/pickWithout.js.map +1 -0
- package/cjs/common/quantileSorted.d.ts +1 -0
- package/cjs/common/quantileSorted.js +19 -0
- package/cjs/common/quantileSorted.js.map +1 -0
- package/cjs/common/range.d.ts +1 -0
- package/cjs/common/range.js +24 -0
- package/cjs/common/range.js.map +1 -0
- package/cjs/common/throttle.d.ts +5 -0
- package/cjs/common/throttle.js +27 -0
- package/cjs/common/throttle.js.map +1 -0
- package/cjs/common/tickStep.d.ts +1 -0
- package/cjs/common/tickStep.js +18 -0
- package/cjs/common/tickStep.js.map +1 -0
- package/cjs/common/toDate.d.ts +2 -0
- package/cjs/common/toDate.js +28 -0
- package/cjs/common/toDate.js.map +1 -0
- package/cjs/common/toNumber.d.ts +1 -0
- package/cjs/common/toNumber.js +10 -0
- package/cjs/common/toNumber.js.map +1 -0
- package/cjs/common/toValidNumber.d.ts +1 -0
- package/cjs/common/toValidNumber.js +22 -0
- package/cjs/common/toValidNumber.js.map +1 -0
- package/cjs/common/truncate.d.ts +2 -0
- package/cjs/common/truncate.js +19 -0
- package/cjs/common/truncate.js.map +1 -0
- package/cjs/common/upperFirst.d.ts +2 -0
- package/cjs/common/upperFirst.js +12 -0
- package/cjs/common/upperFirst.js.map +1 -0
- package/cjs/common/uuid.d.ts +2 -0
- package/cjs/common/uuid.js +19 -0
- package/cjs/common/uuid.js.map +1 -0
- package/cjs/common/variance.d.ts +1 -0
- package/cjs/common/variance.js +17 -0
- package/cjs/common/variance.js.map +1 -0
- package/cjs/data-structure/bounds.d.ts +81 -0
- package/cjs/data-structure/bounds.js +139 -0
- package/cjs/data-structure/bounds.js.map +1 -0
- package/cjs/data-structure/hashTable.d.ts +35 -0
- package/cjs/data-structure/hashTable.js +114 -0
- package/cjs/data-structure/hashTable.js.map +1 -0
- package/cjs/data-structure/index.d.ts +4 -0
- package/cjs/data-structure/index.js +22 -0
- package/cjs/data-structure/index.js.map +1 -0
- package/cjs/data-structure/matrix.d.ts +80 -0
- package/cjs/data-structure/matrix.js +113 -0
- package/cjs/data-structure/matrix.js.map +1 -0
- package/cjs/data-structure/point.d.ts +62 -0
- package/cjs/data-structure/point.js +81 -0
- package/cjs/data-structure/point.js.map +1 -0
- package/cjs/dom.d.ts +10 -0
- package/cjs/dom.js +86 -0
- package/cjs/dom.js.map +1 -0
- package/cjs/geo/index.d.ts +2 -0
- package/cjs/geo/index.js +21 -0
- package/cjs/geo/index.js.map +1 -0
- package/cjs/geo/interface.d.ts +1 -0
- package/cjs/geo/interface.js +6 -0
- package/cjs/geo/interface.js.map +1 -0
- package/cjs/geo/invariant.d.ts +9 -0
- package/cjs/geo/invariant.js +45 -0
- package/cjs/geo/invariant.js.map +1 -0
- package/cjs/graphics/algorithm/aabb.d.ts +6 -0
- package/cjs/graphics/algorithm/aabb.js +58 -0
- package/cjs/graphics/algorithm/aabb.js.map +1 -0
- package/cjs/graphics/algorithm/index.d.ts +3 -0
- package/cjs/graphics/algorithm/index.js +22 -0
- package/cjs/graphics/algorithm/index.js.map +1 -0
- package/cjs/graphics/algorithm/interface.d.ts +20 -0
- package/cjs/graphics/algorithm/interface.js +6 -0
- package/cjs/graphics/algorithm/interface.js.map +1 -0
- package/cjs/graphics/algorithm/intersect.d.ts +25 -0
- package/cjs/graphics/algorithm/intersect.js +143 -0
- package/cjs/graphics/algorithm/intersect.js.map +1 -0
- package/cjs/graphics/algorithm/obb.d.ts +5 -0
- package/cjs/graphics/algorithm/obb.js +80 -0
- package/cjs/graphics/algorithm/obb.js.map +1 -0
- package/cjs/graphics/graph-util.d.ts +23 -0
- package/cjs/graphics/graph-util.js +47 -0
- package/cjs/graphics/graph-util.js.map +1 -0
- package/cjs/graphics/image.d.ts +2 -0
- package/cjs/graphics/image.js +18 -0
- package/cjs/graphics/image.js.map +1 -0
- package/cjs/graphics/index.d.ts +5 -0
- package/cjs/graphics/index.js +23 -0
- package/cjs/graphics/index.js.map +1 -0
- package/cjs/graphics/polygon.d.ts +5 -0
- package/cjs/graphics/polygon.js +54 -0
- package/cjs/graphics/polygon.js.map +1 -0
- package/cjs/graphics/text/index.d.ts +2 -0
- package/cjs/graphics/text/index.js +39 -0
- package/cjs/graphics/text/index.js.map +1 -0
- package/cjs/graphics/text/measure/index.d.ts +4 -0
- package/cjs/graphics/text/measure/index.js +22 -0
- package/cjs/graphics/text/measure/index.js.map +1 -0
- package/cjs/graphics/text/measure/interface.d.ts +31 -0
- package/cjs/graphics/text/measure/interface.js +6 -0
- package/cjs/graphics/text/measure/interface.js.map +1 -0
- package/cjs/graphics/text/measure/test.d.ts +14 -0
- package/cjs/graphics/text/measure/test.js +67 -0
- package/cjs/graphics/text/measure/test.js.map +1 -0
- package/cjs/graphics/text/measure/textMeasure.d.ts +38 -0
- package/cjs/graphics/text/measure/textMeasure.js +183 -0
- package/cjs/graphics/text/measure/textMeasure.js.map +1 -0
- package/cjs/graphics/text/measure/util.d.ts +2 -0
- package/cjs/graphics/text/measure/util.js +11 -0
- package/cjs/graphics/text/measure/util.js.map +1 -0
- package/cjs/graphics/text/stringWidth.d.ts +2 -0
- package/cjs/graphics/text/stringWidth.js +49 -0
- package/cjs/graphics/text/stringWidth.js.map +1 -0
- package/cjs/index.d.ts +15 -0
- package/cjs/index.js +47 -0
- package/cjs/index.js.map +1 -0
- package/cjs/logger.d.ts +12 -0
- package/cjs/logger.js +36 -0
- package/cjs/logger.js.map +1 -0
- package/cjs/lru.d.ts +25 -0
- package/cjs/lru.js +43 -0
- package/cjs/lru.js.map +1 -0
- package/cjs/math.d.ts +66 -0
- package/cjs/math.js +57 -0
- package/cjs/math.js.map +1 -0
- package/cjs/padding.d.ts +7 -0
- package/cjs/padding.js +41 -0
- package/cjs/padding.js.map +1 -0
- package/cjs/time/formatUtils.d.ts +17 -0
- package/cjs/time/formatUtils.js +95 -0
- package/cjs/time/formatUtils.js.map +1 -0
- package/cjs/time/index.d.ts +2 -0
- package/cjs/time/index.js +21 -0
- package/cjs/time/index.js.map +1 -0
- package/cjs/time/interval.d.ts +77 -0
- package/cjs/time/interval.js +324 -0
- package/cjs/time/interval.js.map +1 -0
- package/cjs/type.d.ts +5 -0
- package/cjs/type.js +6 -0
- package/cjs/type.js.map +1 -0
- package/dist/visactor_vutils.js +1 -0
- package/dist/visactor_vutils.min.js +1 -0
- package/es/angle.d.ts +12 -0
- package/es/angle.js +31 -0
- package/es/angle.js.map +1 -0
- package/es/color/Color.d.ts +181 -0
- package/es/color/Color.js +283 -0
- package/es/color/Color.js.map +1 -0
- package/es/color/hexToRgb.d.ts +1 -0
- package/es/color/hexToRgb.js +7 -0
- package/es/color/hexToRgb.js.map +1 -0
- package/es/color/hslToRgb.d.ts +5 -0
- package/es/color/hslToRgb.js +15 -0
- package/es/color/hslToRgb.js.map +1 -0
- package/es/color/index.d.ts +6 -0
- package/es/color/index.js +12 -0
- package/es/color/index.js.map +1 -0
- package/es/color/interpolate.d.ts +2 -0
- package/es/color/interpolate.js +10 -0
- package/es/color/interpolate.js.map +1 -0
- package/es/color/rgbToHex.d.ts +1 -0
- package/es/color/rgbToHex.js +4 -0
- package/es/color/rgbToHex.js.map +1 -0
- package/es/color/rgbToHsl.d.ts +5 -0
- package/es/color/rgbToHsl.js +13 -0
- package/es/color/rgbToHsl.js.map +1 -0
- package/es/common/array.d.ts +9 -0
- package/es/common/array.js +50 -0
- package/es/common/array.js.map +1 -0
- package/es/common/ascending.d.ts +1 -0
- package/es/common/ascending.js +4 -0
- package/es/common/ascending.js.map +1 -0
- package/es/common/bisect.d.ts +1 -0
- package/es/common/bisect.js +12 -0
- package/es/common/bisect.js.map +1 -0
- package/es/common/clamp.d.ts +2 -0
- package/es/common/clamp.js +6 -0
- package/es/common/clamp.js.map +1 -0
- package/es/common/clampRange.d.ts +2 -0
- package/es/common/clampRange.js +10 -0
- package/es/common/clampRange.js.map +1 -0
- package/es/common/clamper.d.ts +1 -0
- package/es/common/clamper.js +5 -0
- package/es/common/clamper.js.map +1 -0
- package/es/common/clone.d.ts +1 -0
- package/es/common/clone.js +32 -0
- package/es/common/clone.js.map +1 -0
- package/es/common/cloneDeep.d.ts +1 -0
- package/es/common/cloneDeep.js +26 -0
- package/es/common/cloneDeep.js.map +1 -0
- package/es/common/constant.d.ts +2 -0
- package/es/common/constant.js +6 -0
- package/es/common/constant.js.map +1 -0
- package/es/common/debounce.d.ts +7 -0
- package/es/common/debounce.js +68 -0
- package/es/common/debounce.js.map +1 -0
- package/es/common/deviation.d.ts +1 -0
- package/es/common/deviation.js +7 -0
- package/es/common/deviation.js.map +1 -0
- package/es/common/get.d.ts +3 -0
- package/es/common/get.js +10 -0
- package/es/common/get.js.map +1 -0
- package/es/common/getType.d.ts +2 -0
- package/es/common/getType.js +3 -0
- package/es/common/getType.js.map +1 -0
- package/es/common/has.d.ts +3 -0
- package/es/common/has.js +4 -0
- package/es/common/has.js.map +1 -0
- package/es/common/index.d.ts +56 -0
- package/es/common/index.js +112 -0
- package/es/common/index.js.map +1 -0
- package/es/common/interpolate.d.ts +4 -0
- package/es/common/interpolate.js +45 -0
- package/es/common/interpolate.js.map +1 -0
- package/es/common/isArray.d.ts +2 -0
- package/es/common/isArray.js +6 -0
- package/es/common/isArray.js.map +1 -0
- package/es/common/isArrayLike.d.ts +2 -0
- package/es/common/isArrayLike.js +6 -0
- package/es/common/isArrayLike.js.map +1 -0
- package/es/common/isBase64.d.ts +2 -0
- package/es/common/isBase64.js +4 -0
- package/es/common/isBase64.js.map +1 -0
- package/es/common/isBoolean.d.ts +2 -0
- package/es/common/isBoolean.js +6 -0
- package/es/common/isBoolean.js.map +1 -0
- package/es/common/isDate.d.ts +2 -0
- package/es/common/isDate.js +6 -0
- package/es/common/isDate.js.map +1 -0
- package/es/common/isEmpty.d.ts +2 -0
- package/es/common/isEmpty.js +22 -0
- package/es/common/isEmpty.js.map +1 -0
- package/es/common/isEqual.d.ts +1 -0
- package/es/common/isEqual.js +39 -0
- package/es/common/isEqual.js.map +1 -0
- package/es/common/isFunction.d.ts +2 -0
- package/es/common/isFunction.js +4 -0
- package/es/common/isFunction.js.map +1 -0
- package/es/common/isNil.d.ts +2 -0
- package/es/common/isNil.js +4 -0
- package/es/common/isNil.js.map +1 -0
- package/es/common/isNull.d.ts +2 -0
- package/es/common/isNull.js +4 -0
- package/es/common/isNull.js.map +1 -0
- package/es/common/isNumber.d.ts +2 -0
- package/es/common/isNumber.js +9 -0
- package/es/common/isNumber.js.map +1 -0
- package/es/common/isNumeric.d.ts +2 -0
- package/es/common/isNumeric.js +4 -0
- package/es/common/isNumeric.js.map +1 -0
- package/es/common/isObject.d.ts +2 -0
- package/es/common/isObject.js +6 -0
- package/es/common/isObject.js.map +1 -0
- package/es/common/isObjectLike.d.ts +2 -0
- package/es/common/isObjectLike.js +4 -0
- package/es/common/isObjectLike.js.map +1 -0
- package/es/common/isPlainObject.d.ts +2 -0
- package/es/common/isPlainObject.js +14 -0
- package/es/common/isPlainObject.js.map +1 -0
- package/es/common/isPrototype.d.ts +2 -0
- package/es/common/isPrototype.js +7 -0
- package/es/common/isPrototype.js.map +1 -0
- package/es/common/isRegExp.d.ts +2 -0
- package/es/common/isRegExp.js +6 -0
- package/es/common/isRegExp.js.map +1 -0
- package/es/common/isShallowEqual.d.ts +1 -0
- package/es/common/isShallowEqual.js +22 -0
- package/es/common/isShallowEqual.js.map +1 -0
- package/es/common/isString.d.ts +2 -0
- package/es/common/isString.js +9 -0
- package/es/common/isString.js.map +1 -0
- package/es/common/isType.d.ts +2 -0
- package/es/common/isType.js +4 -0
- package/es/common/isType.js.map +1 -0
- package/es/common/isUndefined.d.ts +2 -0
- package/es/common/isUndefined.js +4 -0
- package/es/common/isUndefined.js.map +1 -0
- package/es/common/isValid.d.ts +2 -0
- package/es/common/isValid.js +4 -0
- package/es/common/isValid.js.map +1 -0
- package/es/common/isValidNumber.d.ts +2 -0
- package/es/common/isValidNumber.js +6 -0
- package/es/common/isValidNumber.js.map +1 -0
- package/es/common/isValidUrl.d.ts +2 -0
- package/es/common/isValidUrl.js +4 -0
- package/es/common/isValidUrl.js.map +1 -0
- package/es/common/lowerFirst.d.ts +2 -0
- package/es/common/lowerFirst.js +6 -0
- package/es/common/lowerFirst.js.map +1 -0
- package/es/common/median.d.ts +1 -0
- package/es/common/median.js +9 -0
- package/es/common/median.js.map +1 -0
- package/es/common/merge.d.ts +1 -0
- package/es/common/merge.js +54 -0
- package/es/common/merge.js.map +1 -0
- package/es/common/mixin.d.ts +5 -0
- package/es/common/mixin.js +28 -0
- package/es/common/mixin.js.map +1 -0
- package/es/common/number.d.ts +3 -0
- package/es/common/number.js +15 -0
- package/es/common/number.js.map +1 -0
- package/es/common/pad.d.ts +2 -0
- package/es/common/pad.js +11 -0
- package/es/common/pad.js.map +1 -0
- package/es/common/pick.d.ts +1 -0
- package/es/common/pick.js +12 -0
- package/es/common/pick.js.map +1 -0
- package/es/common/pickWithout.d.ts +1 -0
- package/es/common/pickWithout.js +16 -0
- package/es/common/pickWithout.js.map +1 -0
- package/es/common/quantileSorted.d.ts +1 -0
- package/es/common/quantileSorted.js +11 -0
- package/es/common/quantileSorted.js.map +1 -0
- package/es/common/range.d.ts +1 -0
- package/es/common/range.js +10 -0
- package/es/common/range.js.map +1 -0
- package/es/common/throttle.d.ts +5 -0
- package/es/common/throttle.js +17 -0
- package/es/common/throttle.js.map +1 -0
- package/es/common/tickStep.d.ts +1 -0
- package/es/common/tickStep.js +10 -0
- package/es/common/tickStep.js.map +1 -0
- package/es/common/toDate.d.ts +2 -0
- package/es/common/toDate.js +18 -0
- package/es/common/toDate.js.map +1 -0
- package/es/common/toNumber.d.ts +1 -0
- package/es/common/toNumber.js +4 -0
- package/es/common/toNumber.js.map +1 -0
- package/es/common/toValidNumber.d.ts +1 -0
- package/es/common/toValidNumber.js +8 -0
- package/es/common/toValidNumber.js.map +1 -0
- package/es/common/truncate.d.ts +2 -0
- package/es/common/truncate.js +9 -0
- package/es/common/truncate.js.map +1 -0
- package/es/common/upperFirst.d.ts +2 -0
- package/es/common/upperFirst.js +6 -0
- package/es/common/upperFirst.js.map +1 -0
- package/es/common/uuid.d.ts +2 -0
- package/es/common/uuid.js +13 -0
- package/es/common/uuid.js.map +1 -0
- package/es/common/variance.d.ts +1 -0
- package/es/common/variance.js +11 -0
- package/es/common/variance.js.map +1 -0
- package/es/data-structure/bounds.d.ts +81 -0
- package/es/data-structure/bounds.js +127 -0
- package/es/data-structure/bounds.js.map +1 -0
- package/es/data-structure/hashTable.d.ts +35 -0
- package/es/data-structure/hashTable.js +104 -0
- package/es/data-structure/hashTable.js.map +1 -0
- package/es/data-structure/index.d.ts +4 -0
- package/es/data-structure/index.js +8 -0
- package/es/data-structure/index.js.map +1 -0
- package/es/data-structure/matrix.d.ts +80 -0
- package/es/data-structure/matrix.js +106 -0
- package/es/data-structure/matrix.js.map +1 -0
- package/es/data-structure/point.d.ts +62 -0
- package/es/data-structure/point.js +65 -0
- package/es/data-structure/point.js.map +1 -0
- package/es/dom.d.ts +10 -0
- package/es/dom.js +75 -0
- package/es/dom.js.map +1 -0
- package/es/geo/index.d.ts +2 -0
- package/es/geo/index.js +4 -0
- package/es/geo/index.js.map +1 -0
- package/es/geo/interface.d.ts +1 -0
- package/es/geo/interface.js +2 -0
- package/es/geo/interface.js.map +1 -0
- package/es/geo/invariant.d.ts +9 -0
- package/es/geo/invariant.js +40 -0
- package/es/geo/invariant.js.map +1 -0
- package/es/graphics/algorithm/aabb.d.ts +6 -0
- package/es/graphics/algorithm/aabb.js +49 -0
- package/es/graphics/algorithm/aabb.js.map +1 -0
- package/es/graphics/algorithm/index.d.ts +3 -0
- package/es/graphics/algorithm/index.js +6 -0
- package/es/graphics/algorithm/index.js.map +1 -0
- package/es/graphics/algorithm/interface.d.ts +20 -0
- package/es/graphics/algorithm/interface.js +2 -0
- package/es/graphics/algorithm/interface.js.map +1 -0
- package/es/graphics/algorithm/intersect.d.ts +25 -0
- package/es/graphics/algorithm/intersect.js +135 -0
- package/es/graphics/algorithm/intersect.js.map +1 -0
- package/es/graphics/algorithm/obb.d.ts +5 -0
- package/es/graphics/algorithm/obb.js +68 -0
- package/es/graphics/algorithm/obb.js.map +1 -0
- package/es/graphics/graph-util.d.ts +23 -0
- package/es/graphics/graph-util.js +39 -0
- package/es/graphics/graph-util.js.map +1 -0
- package/es/graphics/image.d.ts +2 -0
- package/es/graphics/image.js +12 -0
- package/es/graphics/image.js.map +1 -0
- package/es/graphics/index.d.ts +5 -0
- package/es/graphics/index.js +10 -0
- package/es/graphics/index.js.map +1 -0
- package/es/graphics/polygon.d.ts +5 -0
- package/es/graphics/polygon.js +47 -0
- package/es/graphics/polygon.js.map +1 -0
- package/es/graphics/text/index.d.ts +2 -0
- package/es/graphics/text/index.js +4 -0
- package/es/graphics/text/index.js.map +1 -0
- package/es/graphics/text/measure/index.d.ts +4 -0
- package/es/graphics/text/measure/index.js +8 -0
- package/es/graphics/text/measure/index.js.map +1 -0
- package/es/graphics/text/measure/interface.d.ts +31 -0
- package/es/graphics/text/measure/interface.js +2 -0
- package/es/graphics/text/measure/interface.js.map +1 -0
- package/es/graphics/text/measure/test.d.ts +14 -0
- package/es/graphics/text/measure/test.js +65 -0
- package/es/graphics/text/measure/test.js.map +1 -0
- package/es/graphics/text/measure/textMeasure.d.ts +38 -0
- package/es/graphics/text/measure/textMeasure.js +181 -0
- package/es/graphics/text/measure/textMeasure.js.map +1 -0
- package/es/graphics/text/measure/util.d.ts +2 -0
- package/es/graphics/text/measure/util.js +5 -0
- package/es/graphics/text/measure/util.js.map +1 -0
- package/es/graphics/text/stringWidth.d.ts +2 -0
- package/es/graphics/text/stringWidth.js +43 -0
- package/es/graphics/text/stringWidth.js.map +1 -0
- package/es/index.d.ts +15 -0
- package/es/index.js +30 -0
- package/es/index.js.map +1 -0
- package/es/logger.d.ts +12 -0
- package/es/logger.js +38 -0
- package/es/logger.js.map +1 -0
- package/es/lru.d.ts +25 -0
- package/es/lru.js +36 -0
- package/es/lru.js.map +1 -0
- package/es/math.d.ts +66 -0
- package/es/math.js +76 -0
- package/es/math.js.map +1 -0
- package/es/padding.d.ts +7 -0
- package/es/padding.js +31 -0
- package/es/padding.js.map +1 -0
- package/es/time/formatUtils.d.ts +17 -0
- package/es/time/formatUtils.js +72 -0
- package/es/time/formatUtils.js.map +1 -0
- package/es/time/index.d.ts +2 -0
- package/es/time/index.js +4 -0
- package/es/time/index.js.map +1 -0
- package/es/time/interval.d.ts +77 -0
- package/es/time/interval.js +227 -0
- package/es/time/interval.js.map +1 -0
- package/es/type.d.ts +5 -0
- package/es/type.js +2 -0
- package/es/type.js.map +1 -0
- package/package.json +51 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import isNil from "./isNil";
|
|
2
|
+
|
|
3
|
+
import isArrayLike from "./isArrayLike";
|
|
4
|
+
|
|
5
|
+
import getType from "./getType";
|
|
6
|
+
|
|
7
|
+
import isPrototype from "./isPrototype";
|
|
8
|
+
|
|
9
|
+
const hasOwnProperty = Object.prototype.hasOwnProperty;
|
|
10
|
+
|
|
11
|
+
function isEmpty(value) {
|
|
12
|
+
if (isNil(value)) return !0;
|
|
13
|
+
if (isArrayLike(value)) return !value.length;
|
|
14
|
+
const type = getType(value);
|
|
15
|
+
if ("Map" === type || "Set" === type) return !value.size;
|
|
16
|
+
if (isPrototype(value)) return !Object.keys(value).length;
|
|
17
|
+
for (const key in value) if (hasOwnProperty.call(value, key)) return !1;
|
|
18
|
+
return !0;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export default isEmpty;
|
|
22
|
+
//# sourceMappingURL=isEmpty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/isEmpty.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,WAAW,MAAM,eAAe,CAAC;AAExC,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AAEvD,SAAS,OAAO,CAAC,KAAU;IAUzB,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IACD,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;QACtB,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;KACtB;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE;QACpC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;KACpB;IACD,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;QACtB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;KACnC;IACD,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;QACvB,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;YACnC,OAAO,KAAK,CAAC;SACd;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,eAAe,OAAO,CAAC","file":"isEmpty.js","sourcesContent":["import isNil from './isNil';\nimport isArrayLike from './isArrayLike';\nimport getType from './getType';\nimport isPrototype from './isPrototype';\n\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction isEmpty(value: any): boolean {\n /**\n * isEmpty(null) => true\n * isEmpty() => true\n * isEmpty(true) => true\n * isEmpty(1) => true\n * isEmpty([1, 2, 3]) => false\n * isEmpty('abc') => false\n * isEmpty({ a: 1 }) => false\n */\n if (isNil(value)) {\n return true;\n }\n if (isArrayLike(value)) {\n return !value.length;\n }\n // TODO: 这里需要优化下\n const type = getType(value);\n if (type === 'Map' || type === 'Set') {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !Object.keys(value).length;\n }\n for (const key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nexport default isEmpty;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function isEqual(a: any, b: any): boolean;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import isArray from "./isArray";
|
|
2
|
+
|
|
3
|
+
import isFunction from "./isFunction";
|
|
4
|
+
|
|
5
|
+
import isPlainObject from "./isPlainObject";
|
|
6
|
+
|
|
7
|
+
function objToString(obj) {
|
|
8
|
+
return Object.prototype.toString.call(obj);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
function objectKeys(obj) {
|
|
12
|
+
return Object.keys(obj);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export function isEqual(a, b) {
|
|
16
|
+
if (a === b) return !0;
|
|
17
|
+
if (typeof a != typeof b) return !1;
|
|
18
|
+
if (null == a || null == b) return !1;
|
|
19
|
+
if (Number.isNaN(a) && Number.isNaN(b)) return !0;
|
|
20
|
+
if (objToString(a) !== objToString(b)) return !1;
|
|
21
|
+
if (isFunction(a)) return !1;
|
|
22
|
+
if ("object" != typeof a) return !1;
|
|
23
|
+
if (isArray(a)) {
|
|
24
|
+
if (a.length !== b.length) return !1;
|
|
25
|
+
for (let i = a.length - 1; i >= 0; i--) if (!isEqual(a[i], b[i])) return !1;
|
|
26
|
+
return !0;
|
|
27
|
+
}
|
|
28
|
+
if (!isPlainObject(a)) return !1;
|
|
29
|
+
const ka = objectKeys(a), kb = objectKeys(b);
|
|
30
|
+
if (ka.length !== kb.length) return !1;
|
|
31
|
+
ka.sort(), kb.sort();
|
|
32
|
+
for (let i = ka.length - 1; i >= 0; i--) if (ka[i] != kb[i]) return !1;
|
|
33
|
+
for (let i = ka.length - 1; i >= 0; i--) {
|
|
34
|
+
const key = ka[i];
|
|
35
|
+
if (!isEqual(a[key], b[key])) return !1;
|
|
36
|
+
}
|
|
37
|
+
return !0;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=isEqual.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/isEqual.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,SAAS,WAAW,CAAC,GAAQ;IAC3B,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,UAAU,CAAC,GAAQ;IAC1B,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAID,MAAM,UAAU,OAAO,CAAC,CAAM,EAAE,CAAM;IACpC,IAAI,CAAC,KAAK,CAAC,EAAE;QACX,OAAO,IAAI,CAAC;KACb;IAED,IAAI,OAAO,CAAC,KAAK,OAAO,CAAC,EAAE;QACzB,OAAO,KAAK,CAAC;KACd;IAGD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE;QAC1B,OAAO,KAAK,CAAC;KACd;IAGD,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QACtC,OAAO,IAAI,CAAC;KACb;IAED,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE;QACrC,OAAO,KAAK,CAAC;KACd;IAGD,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE;QACjB,OAAO,KAAK,CAAC;KACd;IAGD,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;QACzB,OAAO,KAAK,CAAC;KACd;IAED,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE;QACd,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE;YACzB,OAAO,KAAK,CAAC;SACd;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YACtC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gBACxB,OAAO,KAAK,CAAC;aACd;SACF;QACD,OAAO,IAAI,CAAC;KACb;IAED,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;QACrB,OAAO,KAAK,CAAC;KACd;IAED,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAEzB,IAAI,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,MAAM,EAAE;QAC3B,OAAO,KAAK,CAAC;KACd;IAGD,EAAE,CAAC,IAAI,EAAE,CAAC;IACV,EAAE,CAAC,IAAI,EAAE,CAAC;IAEV,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;QAEvC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;YAClB,OAAO,KAAK,CAAC;SACd;KACF;IAGD,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;QACvC,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;YAC5B,OAAO,KAAK,CAAC;SACd;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC","file":"isEqual.js","sourcesContent":["import isArray from './isArray';\nimport isFunction from './isFunction';\nimport isPlainObject from './isPlainObject';\n\nfunction objToString(obj: any) {\n return Object.prototype.toString.call(obj);\n}\n\nfunction objectKeys(obj: any) {\n return Object.keys(obj);\n}\n\n// Adapted from https://github.com/antvis/F2/blob/master/packages/f2/src/base/equal.ts by zengyue\n// License: https://github.com/antvis/F2/blob/master/packages/f2/LICENSE\nexport function isEqual(a: any, b: any): boolean {\n if (a === b) {\n return true;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n // null 和 undefined\n if (a == null || b == null) {\n return false;\n }\n\n // 特殊处理NaN\n if (Number.isNaN(a) && Number.isNaN(b)) {\n return true;\n }\n\n if (objToString(a) !== objToString(b)) {\n return false;\n }\n\n // 如果是function,则不相等\n if (isFunction(a)) {\n return false;\n }\n\n // 值类型,Number String Boolean\n if (typeof a !== 'object') {\n return false;\n }\n\n if (isArray(a)) {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = a.length - 1; i >= 0; i--) {\n if (!isEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n\n if (!isPlainObject(a)) {\n return false;\n }\n\n const ka = objectKeys(a);\n const kb = objectKeys(b);\n // having the same number of owned properties (keys incorporates hasOwnProperty)\n if (ka.length !== kb.length) {\n return false;\n }\n\n // the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n // ~~~cheap key test\n for (let i = ka.length - 1; i >= 0; i--) {\n // eslint-disable-next-line eqeqeq\n if (ka[i] != kb[i]) {\n return false;\n }\n }\n\n // equivalent values for every corresponding key, and ~~~possibly expensive deep test\n for (let i = ka.length - 1; i >= 0; i--) {\n const key = ka[i];\n if (!isEqual(a[key], b[key])) {\n return false;\n }\n }\n\n return true;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/isFunction.ts"],"names":[],"mappings":"AA0BA,MAAM,UAAU,GAAG,CAAC,KAAU,EAAqB,EAAE;IACnD,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC;AACrC,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC","file":"isFunction.js","sourcesContent":["/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * isFunction(class Any{})\n * // => true\n *\n * isFunction(() => {})\n * // => true\n *\n * isFunction(async () => {})\n * // => true\n *\n * isFunction(function * Any() {})\n * // => true\n *\n * isFunction(Math.round)\n * // => true\n *\n * isFunction(/abc/)\n * // => false\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nconst isFunction = (value: any): value is Function => {\n return typeof value === 'function';\n};\n\nexport default isFunction;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/isNil.ts"],"names":[],"mappings":"AAAA,MAAM,KAAK,GAAG,CAAC,KAAU,EAA6B,EAAE;IACtD,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAC/C,CAAC,CAAC;AAEF,eAAe,KAAK,CAAC","file":"isNil.js","sourcesContent":["const isNil = (value: any): value is null | undefined => {\n return value === null || value === undefined;\n};\n\nexport default isNil;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/isNull.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG,CAAC,KAAU,EAAiB,EAAE;IAC3C,OAAO,KAAK,KAAK,IAAI,CAAC;AACxB,CAAC,CAAC;AAEF,eAAe,MAAM,CAAC","file":"isNull.js","sourcesContent":["const isNull = (value: any): value is null => {\n return value === null;\n};\n\nexport default isNull;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/isNumber.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAC;AAyB9B,MAAM,QAAQ,GAAG,CAAC,KAAU,EAAE,QAAiB,KAAK,EAAmB,EAAE;IACvE,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC;IAC1B,IAAI,KAAK,EAAE;QACT,OAAO,IAAI,KAAK,QAAQ,CAAC;KAC1B;IACD,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC","file":"isNumber.js","sourcesContent":["import isType from './isType';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `Number.isFinite` method.\n *\n * @param {*} value The value to check.\n * @param {boolean} fuzzy Whether to perform fuzzy judgment, for better performance,default to `false`.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * isNumber(3)\n * // => true\n *\n * isNumber(Number.MIN_VALUE)\n * // => true\n *\n * isNumber(Infinity)\n * // => true\n *\n * isNumber('3')\n * // => false\n */\nconst isNumber = (value: any, fuzzy: boolean = false): value is number => {\n const type = typeof value;\n if (fuzzy) {\n return type === 'number';\n }\n return type === 'number' || isType(value, 'Number');\n};\n\nexport default isNumber;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/isNumeric.ts"],"names":[],"mappings":"AAyBA,MAAM,SAAS,GAAG,CAAC,KAAa,EAAW,EAAE;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,KAAK,CAAC;KACd;IACD,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC","file":"isNumeric.js","sourcesContent":["/**\n * Checks if `value` is classified as a legal string number\n *\n * @param {*} value The string value to check.\n * @returns {boolean} Returns `true` if `value` is a legal string number, else `false`.\n * @example\n *\n * isNumeric(1)\n * // => false\n *\n * isNumeric('2.0')\n * // => true\n *\n * isNumeric('3a')\n * // => false\n *\n * isNumeric('4.a')\n * // => false\n *\n * isNumeric(Infinity)\n * // => false\n *\n * isNumeric('01')\n * // => true\n */\nconst isNumeric = (value: string): boolean => {\n if (typeof value !== 'string') {\n return false;\n }\n return !isNaN(Number(value)) && !isNaN(parseFloat(value));\n};\n\nexport default isNumeric;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/isObject.ts"],"names":[],"mappings":"AAsBA,MAAM,QAAQ,GAAG,CAAa,KAAU,EAAc,EAAE;IACtD,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC;IAC1B,OAAO,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,KAAK,QAAQ,CAAC,IAAI,IAAI,KAAK,UAAU,CAAC;AACtE,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC","file":"isObject.js","sourcesContent":["/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * isObject({})\n * // => true\n *\n * isObject([1, 2, 3])\n * // => true\n *\n * isObject(Function)\n * // => true\n *\n * isObject(null)\n * // => false\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nconst isObject = <T = object>(value: any): value is T => {\n const type = typeof value;\n return (value !== null && type === 'object') || type === 'function';\n};\n\nexport default isObject;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/isObjectLike.ts"],"names":[],"mappings":"AAqBA,MAAM,YAAY,GAAG,CAAC,KAAU,EAA2C,EAAE;IAC3E,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC","file":"isObjectLike.js","sourcesContent":["/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * isObjectLike({})\n * // => true\n *\n * isObjectLike([1, 2, 3])\n * // => true\n *\n * isObjectLike(Function)\n * // => false\n *\n * isObjectLike(null)\n * // => false\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nconst isObjectLike = (value: any): value is object | Function | Array<any> => {\n return typeof value === 'object' && value !== null;\n};\n\nexport default isObjectLike;\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import isObjectLike from "./isObjectLike";
|
|
2
|
+
|
|
3
|
+
import isType from "./isType";
|
|
4
|
+
|
|
5
|
+
const isPlainObject = function(value) {
|
|
6
|
+
if (!isObjectLike(value) || !isType(value, "Object")) return !1;
|
|
7
|
+
if (null === Object.getPrototypeOf(value)) return !0;
|
|
8
|
+
let proto = value;
|
|
9
|
+
for (;null !== Object.getPrototypeOf(proto); ) proto = Object.getPrototypeOf(proto);
|
|
10
|
+
return Object.getPrototypeOf(value) === proto;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export default isPlainObject;
|
|
14
|
+
//# sourceMappingURL=isPlainObject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/isPlainObject.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,MAAM,MAAM,UAAU,CAAC;AA4B9B,MAAM,aAAa,GAAG,UAAU,KAAU;IACxC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE;QACpD,OAAO,KAAK,CAAC;KACd;IACD,IAAI,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;QACzC,OAAO,IAAI,CAAC;KACb;IACD,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,OAAO,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;QAC5C,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;KACtC;IACD,OAAO,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;AAChD,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC","file":"isPlainObject.js","sourcesContent":["import isObjectLike from './isObjectLike';\nimport isType from './isType';\n\n/**\n * @see https://github.com/lodash/lodash/blob/master/isPlainObject.js\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1\n * }\n *\n * isPlainObject(new Foo)\n * // => false\n *\n * isPlainObject([1, 2, 3])\n * // => false\n *\n * isPlainObject({ 'x': 0, 'y': 0 })\n * // => true\n *\n * isPlainObject(Object.create(null))\n * // => true\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nconst isPlainObject = function (value: any): value is object {\n if (!isObjectLike(value) || !isType(value, 'Object')) {\n return false;\n }\n if (Object.getPrototypeOf(value) === null) {\n return true;\n }\n let proto = value;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(value) === proto;\n};\n\nexport default isPlainObject;\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
const objectProto = Object.prototype, isPrototype = function(value) {
|
|
2
|
+
const Ctor = value && value.constructor;
|
|
3
|
+
return value === ("function" == typeof Ctor && Ctor.prototype || objectProto);
|
|
4
|
+
};
|
|
5
|
+
|
|
6
|
+
export default isPrototype;
|
|
7
|
+
//# sourceMappingURL=isPrototype.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/isPrototype.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC;AAErC,MAAM,WAAW,GAAG,UAAU,KAAU;IACtC,MAAM,IAAI,GAAG,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC;IACxC,MAAM,KAAK,GAAG,CAAC,OAAO,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC;IAC5E,OAAO,KAAK,KAAK,KAAK,CAAC;AACzB,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC","file":"isPrototype.js","sourcesContent":["const objectProto = Object.prototype;\n\nconst isPrototype = function (value: any): boolean {\n const Ctor = value && value.constructor;\n const proto = (typeof Ctor === 'function' && Ctor.prototype) || objectProto;\n return value === proto;\n};\n\nexport default isPrototype;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/isRegExp.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,MAAM,QAAQ,GAAG,CAAC,KAAU,EAAmB,EAAE;IAC/C,OAAO,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC","file":"isRegExp.js","sourcesContent":["import isType from './isType';\n\nconst isRegExp = (value: any): value is RegExp => {\n return isType(value, 'RegExp');\n};\n\nexport default isRegExp;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function isShallowEqual(objA: any, objB: any): boolean;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import isArray from "./isArray";
|
|
2
|
+
|
|
3
|
+
import isObject from "./isObject";
|
|
4
|
+
|
|
5
|
+
function is(x, y) {
|
|
6
|
+
return x === y ? 0 !== x || 0 !== y || 1 / x == 1 / y : x != x && y != y;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
function length(obj) {
|
|
10
|
+
return isArray(obj) ? obj.length : isObject(obj) ? Object.keys(obj).length : 0;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function isShallowEqual(objA, objB) {
|
|
14
|
+
if (is(objA, objB)) return !0;
|
|
15
|
+
if ("object" != typeof objA || null === objA || "object" != typeof objB || null === objB) return !1;
|
|
16
|
+
if (isArray(objA) !== isArray(objB)) return !1;
|
|
17
|
+
if (length(objA) !== length(objB)) return !1;
|
|
18
|
+
let ret = !0;
|
|
19
|
+
return Object.keys(objA).forEach((k => !!is(objA[k], objB[k]) || (ret = !1, ret))),
|
|
20
|
+
ret;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=isShallowEqual.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/isShallowEqual.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,SAAS,EAAE,CAAC,CAAM,EAAE,CAAM;IACxB,IAAI,CAAC,KAAK,CAAC,EAAE;QACX,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;KAC9C;IAED,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,MAAM,CAAC,GAAQ;IACtB,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;QAChB,OAAO,GAAG,CAAC,MAAM,CAAC;KACnB;IACD,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;QACjB,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;KAChC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAS,EAAE,IAAS;IACjD,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;QAClB,OAAO,IAAI,CAAC;KACb;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;QAC1F,OAAO,KAAK,CAAC;KACd;IAED,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,EAAE;QACnC,OAAO,KAAK,CAAC;KACd;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE;QACjC,OAAO,KAAK,CAAC;KACd;IAED,IAAI,GAAG,GAAG,IAAI,CAAC;IAEf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,EAAE;QACnC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAElB,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YACnB,GAAG,GAAG,KAAK,CAAC;YACZ,OAAO,GAAG,CAAC;SACZ;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC","file":"isShallowEqual.js","sourcesContent":["import isArray from './isArray';\nimport isObject from './isObject';\n\nfunction is(x: any, y: any) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n }\n // eslint-disable-next-line no-self-compare\n return x !== x && y !== y; // NaN == NaN\n}\n\nfunction length(obj: any) {\n if (isArray(obj)) {\n return obj.length;\n }\n if (isObject(obj)) {\n return Object.keys(obj).length;\n }\n return 0;\n}\n\nexport function isShallowEqual(objA: any, objB: any) {\n if (is(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n if (isArray(objA) !== isArray(objB)) {\n return false;\n }\n\n if (length(objA) !== length(objB)) {\n return false;\n }\n\n let ret = true;\n\n Object.keys(objA).forEach((k: any) => {\n const v = objA[k];\n\n if (!is(v, objB[k])) {\n ret = false;\n return ret;\n }\n return true;\n });\n\n return ret;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/isString.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,UAAU,CAAC;AAe9B,MAAM,QAAQ,GAAG,CAAC,KAAU,EAAE,QAAiB,KAAK,EAAmB,EAAE;IACvE,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC;IAC1B,IAAI,KAAK,EAAE;QACT,OAAO,IAAI,KAAK,QAAQ,CAAC;KAC1B;IAED,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC","file":"isString.js","sourcesContent":["import isType from './isType';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n * @param {*} value The value to check.\n * @param {boolean} fuzzy Whether to perform fuzzy judgment, for better performance,default to `false`.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * isString('abc')\n * // => true\n *\n * isString(1)\n * // => false\n */\nconst isString = (value: any, fuzzy: boolean = false): value is string => {\n const type = typeof value;\n if (fuzzy) {\n return type === 'string';\n }\n\n return type === 'string' || isType(value, 'String');\n};\n\nexport default isString;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/isType.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,GAAG,CAAC,KAAU,EAAE,IAAY,EAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,WAAW,IAAI,GAAG,CAAC;AAElG,eAAe,MAAM,CAAC","file":"isType.js","sourcesContent":["/**\n * check value type\n * @param value the value to check\n * @param type type\n * @returns\n */\nconst isType = (value: any, type: string): boolean => toString.call(value) === `[object ${type}]`;\n\nexport default isType;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/isUndefined.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG,CAAC,KAAU,EAAsB,EAAE;IACrD,OAAO,KAAK,KAAK,SAAS,CAAC;AAC7B,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC","file":"isUndefined.js","sourcesContent":["const isUndefined = (value: any): value is undefined => {\n return value === undefined;\n};\n\nexport default isUndefined;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/isValid.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAAG,CAAI,KAAQ,EAA2B,EAAE;IACvD,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAC/C,CAAC,CAAC;AAEF,eAAe,OAAO,CAAC","file":"isValid.js","sourcesContent":["const isValid = <T>(value: T): value is NonNullable<T> => {\n return value !== null && value !== undefined;\n};\n\nexport default isValid;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/isValidNumber.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,MAAM,aAAa,GAAG,CAAC,KAAU,EAAmB,EAAE;IAEpD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC","file":"isValidNumber.js","sourcesContent":["import isNumber from './isNumber';\n\nconst isValidNumber = (value: any): value is number => {\n // isFinate 包含来 isNaN 的判断\n return isNumber(value) && Number.isFinite(value);\n};\n\nexport default isValidNumber;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/isValidUrl.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,EAAE;IAE1C,MAAM,GAAG,GAAG,0CAA0C,CAAC;IACvD,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC","file":"isValidUrl.js","sourcesContent":["export const isValidUrl = (value: string) => {\n // TODO: 匹配其他形式的 url\n const exp = /^(http(s)?:\\/\\/)\\w+[^\\s]+(\\.[^\\s]+){1,}$/;\n const urlPattern = new RegExp(exp);\n return urlPattern.test(value);\n};\n\nexport default isValidUrl;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/lowerFirst.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG,UAAU,GAAW;IACtC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC","file":"lowerFirst.js","sourcesContent":["const lowerFirst = function (str: string): string {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\nexport default lowerFirst;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const median: (values: number[], isSorted?: boolean) => number;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ascending } from "./ascending";
|
|
2
|
+
|
|
3
|
+
import { quantileSorted } from "./quantileSorted";
|
|
4
|
+
|
|
5
|
+
export const median = (values, isSorted) => {
|
|
6
|
+
let sorted = values;
|
|
7
|
+
return !0 !== isSorted && (sorted = values.sort(ascending)), quantileSorted(sorted, .5);
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=median.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/median.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,MAAgB,EAAE,QAAkB,EAAE,EAAE;IAC7D,IAAI,MAAM,GAAG,MAAM,CAAC;IACpB,IAAI,QAAQ,KAAK,IAAI,EAAE;QACrB,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACjC;IAED,OAAO,cAAc,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACrC,CAAC,CAAC","file":"median.js","sourcesContent":["import { ascending } from './ascending';\nimport { quantileSorted } from './quantileSorted';\n\nexport const median = (values: number[], isSorted?: boolean) => {\n let sorted = values;\n if (isSorted !== true) {\n sorted = values.sort(ascending);\n }\n\n return quantileSorted(sorted, 0.5);\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function merge(target: any, ...sources: any[]): any;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import isArray from "./isArray";
|
|
2
|
+
|
|
3
|
+
import isArrayLike from "./isArrayLike";
|
|
4
|
+
|
|
5
|
+
import isPlainObject from "./isPlainObject";
|
|
6
|
+
|
|
7
|
+
import isValid from "./isValid";
|
|
8
|
+
|
|
9
|
+
function baseMerge(target, source, shallowArray = !1) {
|
|
10
|
+
if (source) {
|
|
11
|
+
if (target === source) return;
|
|
12
|
+
if (isValid(source) && "object" == typeof source) {
|
|
13
|
+
const iterable = Object(source), props = [];
|
|
14
|
+
for (const key in iterable) props.push(key);
|
|
15
|
+
let {length: length} = props, propIndex = -1;
|
|
16
|
+
for (;length--; ) {
|
|
17
|
+
const key = props[++propIndex];
|
|
18
|
+
isValid(iterable[key]) && "object" == typeof iterable[key] ? baseMergeDeep(target, source, key, shallowArray) : assignMergeValue(target, key, iterable[key]);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function baseMergeDeep(target, source, key, shallowArray = !1) {
|
|
25
|
+
const objValue = target[key], srcValue = source[key];
|
|
26
|
+
let newValue = source[key], isCommon = !0;
|
|
27
|
+
if (isArray(srcValue)) {
|
|
28
|
+
if (shallowArray) newValue = []; else if (isArray(objValue)) newValue = objValue; else if (isArrayLike(objValue)) {
|
|
29
|
+
newValue = new Array(objValue.length);
|
|
30
|
+
let index = -1;
|
|
31
|
+
const length = objValue.length;
|
|
32
|
+
for (;++index < length; ) newValue[index] = objValue[index];
|
|
33
|
+
}
|
|
34
|
+
} else isPlainObject(srcValue) ? (newValue = objValue, "function" != typeof objValue && "object" == typeof objValue || (newValue = {})) : isCommon = !1;
|
|
35
|
+
isCommon && baseMerge(newValue, srcValue, shallowArray), assignMergeValue(target, key, newValue);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function assignMergeValue(target, key, value) {
|
|
39
|
+
(void 0 !== value && !eq(target[key], value) || void 0 === value && !(key in target)) && (target[key] = value);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function eq(value, other) {
|
|
43
|
+
return value === other || Number.isNaN(value) && Number.isNaN(other);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export default function merge(target, ...sources) {
|
|
47
|
+
let sourceIndex = -1;
|
|
48
|
+
const length = sources.length;
|
|
49
|
+
for (;++sourceIndex < length; ) {
|
|
50
|
+
baseMerge(target, sources[sourceIndex], !0);
|
|
51
|
+
}
|
|
52
|
+
return target;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=merge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/merge.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,OAAO,MAAM,WAAW,CAAC;AAEhC,SAAS,SAAS,CAAC,MAAW,EAAE,MAAW,EAAE,eAAwB,KAAK;IACxE,IAAI,MAAM,EAAE;QACV,IAAI,MAAM,KAAK,MAAM,EAAE;YACrB,OAAO;SACR;QACD,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAEjD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,EAAE,CAAC;YAEjB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;gBAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACjB;YACD,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;YACvB,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;YACnB,OAAO,MAAM,EAAE,EAAE;gBACf,MAAM,GAAG,GAAG,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;gBAC/B,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE;oBAC/D,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;iBAClD;qBAAM;oBACL,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;iBAC9C;aACF;SACF;KACF;AACH,CAAC;AAID,SAAS,aAAa,CAAC,MAAc,EAAE,MAAc,EAAE,GAAW,EAAE,eAAwB,KAAK;IAC/F,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,QAAQ,GAAG,IAAI,CAAC;IAEpB,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;QACrB,IAAI,YAAY,EAAE;YAEhB,QAAQ,GAAG,EAAE,CAAC;SACf;aAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC5B,QAAQ,GAAG,QAAQ,CAAC;SACrB;aAAM,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE;YAEhC,QAAQ,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;YACf,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC/B,OAAO,EAAE,KAAK,GAAG,MAAM,EAAE;gBACvB,QAAQ,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;aACnC;SACF;KACF;SAKI,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE;QAChC,QAAQ,GAAG,QAAQ,CAAC;QAEpB,IAAI,OAAO,QAAQ,KAAK,UAAU,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE;YAClE,QAAQ,GAAG,EAAE,CAAC;SACf;KACF;SAAM;QACL,QAAQ,GAAG,KAAK,CAAC;KAClB;IAED,IAAI,QAAQ,EAAE;QACZ,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;KAC7C;IACD,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAGD,SAAS,gBAAgB,CAAC,MAAc,EAAE,GAAW,EAAE,KAAU;IAC/D,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,EAAE;QAEjG,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;KACrB;AACH,CAAC;AAED,SAAS,EAAE,CAAC,KAAU,EAAE,KAAU;IAChC,OAAO,KAAK,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACzE,CAAC;AAID,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,MAAW,EAAE,GAAG,OAAc;IAC1D,IAAI,WAAW,GAAG,CAAC,CAAC,CAAC;IACrB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,OAAO,EAAE,WAAW,GAAG,MAAM,EAAE;QAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QACpC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;KACjC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC","file":"merge.js","sourcesContent":["import isArray from './isArray';\nimport isArrayLike from './isArrayLike';\nimport isPlainObject from './isPlainObject';\nimport isValid from './isValid';\n\nfunction baseMerge(target: any, source: any, shallowArray: boolean = false) {\n if (source) {\n if (target === source) {\n return;\n }\n if (isValid(source) && typeof source === 'object') {\n // baseFor\n const iterable = Object(source);\n const props = [];\n // keysIn\n for (const key in iterable) {\n props.push(key);\n }\n let { length } = props;\n let propIndex = -1;\n while (length--) {\n const key = props[++propIndex];\n if (isValid(iterable[key]) && typeof iterable[key] === 'object') {\n baseMergeDeep(target, source, key, shallowArray);\n } else {\n assignMergeValue(target, key, iterable[key]);\n }\n }\n }\n }\n}\n\n// 由于目前 ChartSpace 内部对 spec 会先执行一次深拷贝,merge 暂时不考虑 source 中有环的问题\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction baseMergeDeep(target: object, source: object, key: string, shallowArray: boolean = false) {\n const objValue = target[key];\n const srcValue = source[key];\n let newValue = source[key];\n let isCommon = true;\n // 不考虑 buffer / typedArray 类型\n if (isArray(srcValue)) {\n if (shallowArray) {\n // 依据参数对数组做浅拷贝\n newValue = [];\n } else if (isArray(objValue)) {\n newValue = objValue;\n } else if (isArrayLike(objValue)) {\n // 如果 source 为数组,则 target 的 arrayLike 对象也视作为数组处理\n newValue = new Array(objValue.length);\n let index = -1;\n const length = objValue.length;\n while (++index < length) {\n newValue[index] = objValue[index];\n }\n }\n }\n // else if (isArray(srcValue) && shallowArray) {\n // newValue = [];\n // }\n // 不考虑 argument 类型\n else if (isPlainObject(srcValue)) {\n newValue = objValue;\n // 不考虑 prototype 的额外处理\n if (typeof objValue === 'function' || typeof objValue !== 'object') {\n newValue = {};\n }\n } else {\n isCommon = false;\n }\n // 对 class 等复杂对象或者浅拷贝的 array 不做拷贝处理\n if (isCommon) {\n baseMerge(newValue, srcValue, shallowArray);\n }\n assignMergeValue(target, key, newValue);\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction assignMergeValue(target: object, key: string, value: any) {\n if ((value !== undefined && !eq(target[key], value)) || (value === undefined && !(key in target))) {\n // 不考虑 __proto__ 的赋值处理\n target[key] = value;\n }\n}\n\nfunction eq(value: any, other: any) {\n return value === other || (Number.isNaN(value) && Number.isNaN(other));\n}\n\n// 与原生的 lodash merge 差异在于对数组是否应用最后一个 source 的结果\n// 例如 lineDash 等 spec 的 merge 使用这一操作更合适\nexport default function merge(target: any, ...sources: any[]): any {\n let sourceIndex = -1;\n const length = sources.length;\n while (++sourceIndex < length) {\n const source = sources[sourceIndex];\n baseMerge(target, source, true);\n }\n return target;\n}\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Dict } from '../type';
|
|
2
|
+
export type KeyOfDistributive<T> = T extends unknown ? keyof T : never;
|
|
3
|
+
export declare function keys<T extends any>(obj: T): (KeyOfDistributive<T> & string)[];
|
|
4
|
+
export declare function defaults<T extends Dict<any>, S extends Dict<any>>(target: T, source: S, overlay?: boolean): T & S;
|
|
5
|
+
export declare function mixin<T, S>(target: T | Function, source: S | Function, override?: boolean): void;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export function keys(obj) {
|
|
2
|
+
if (!obj) return [];
|
|
3
|
+
if (Object.keys) return Object.keys(obj);
|
|
4
|
+
const keyList = [];
|
|
5
|
+
for (const key in obj) obj.hasOwnProperty(key) && keyList.push(key);
|
|
6
|
+
return keyList;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function defaults(target, source, overlay) {
|
|
10
|
+
const keysArr = keys(source);
|
|
11
|
+
for (let i = 0; i < keysArr.length; i++) {
|
|
12
|
+
const key = keysArr[i];
|
|
13
|
+
(overlay ? null != source[key] : null == target[key]) && (target[key] = source[key]);
|
|
14
|
+
}
|
|
15
|
+
return target;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export function mixin(target, source, override = !0) {
|
|
19
|
+
if (target = "prototype" in target ? target.prototype : target, source = "prototype" in source ? source.prototype : source,
|
|
20
|
+
Object.getOwnPropertyNames) {
|
|
21
|
+
const keyList = Object.getOwnPropertyNames(source);
|
|
22
|
+
for (let i = 0; i < keyList.length; i++) {
|
|
23
|
+
const key = keyList[i];
|
|
24
|
+
"constructor" !== key && (override ? null != source[key] : null == target[key]) && (target[key] = source[key]);
|
|
25
|
+
}
|
|
26
|
+
} else defaults(target, source, override);
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=mixin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/mixin.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,IAAI,CAAgB,GAAM;IACxC,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,EAAE,CAAC;KACX;IAID,IAAI,MAAM,CAAC,IAAI,EAAE;QACf,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAY,CAAC;KACpC;IACD,MAAM,OAAO,GAAY,EAAE,CAAC;IAC5B,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;QAErB,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;YAC3B,OAAO,CAAC,IAAI,CAAC,GAAU,CAAC,CAAC;SAC1B;KACF;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,QAAQ,CAA2C,MAAS,EAAE,MAAS,EAAE,OAAiB;IACxG,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACvC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAE,MAAgB,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;YACjE,MAAgB,CAAC,GAAG,CAAC,GAAI,MAAgB,CAAC,GAAG,CAAC,CAAC;SACjD;KACF;IACD,OAAO,MAAe,CAAC;AACzB,CAAC;AAGD,MAAM,UAAU,KAAK,CAAO,MAAoB,EAAE,MAAoB,EAAE,WAAoB,IAAI;IAG9F,MAAM,GAAG,WAAW,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IAG3D,MAAM,GAAG,WAAW,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IAG3D,IAAI,MAAM,CAAC,mBAAmB,EAAE;QAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,GAAG,KAAK,aAAa,EAAE;gBACzB,IAAI,QAAQ,CAAC,CAAC,CAAE,MAAc,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAE,MAAc,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE;oBACzE,MAAc,CAAC,GAAG,CAAC,GAAI,MAAc,CAAC,GAAG,CAAC,CAAC;iBAC7C;aACF;SACF;KACF;SAAM;QACL,QAAQ,CAAC,MAAmB,EAAE,MAAmB,EAAE,QAAQ,CAAC,CAAC;KAC9D;AACH,CAAC","file":"mixin.js","sourcesContent":["import type { Dict } from '../type';\n\nexport type KeyOfDistributive<T> = T extends unknown ? keyof T : never;\n\n// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-constraint\nexport function keys<T extends any>(obj: T): (KeyOfDistributive<T> & string)[] {\n if (!obj) {\n return [];\n }\n // Return type should be `keyof T` but exclude `number`, becuase\n // `Object.keys` only return string rather than `number | string`.\n type TKeys = KeyOfDistributive<T> & string;\n if (Object.keys) {\n return Object.keys(obj) as TKeys[];\n }\n const keyList: TKeys[] = [];\n for (const key in obj) {\n // eslint-disable-next-line no-prototype-builtins\n if (obj.hasOwnProperty(key)) {\n keyList.push(key as any);\n }\n }\n return keyList;\n}\n\nexport function defaults<T extends Dict<any>, S extends Dict<any>>(target: T, source: S, overlay?: boolean): T & S {\n const keysArr = keys(source);\n for (let i = 0; i < keysArr.length; i++) {\n const key = keysArr[i];\n if (overlay ? source[key] != null : (target as T & S)[key] == null) {\n (target as S & T)[key] = (source as T & S)[key];\n }\n }\n return target as T & S;\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function mixin<T, S>(target: T | Function, source: S | Function, override: boolean = true) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n target = 'prototype' in target ? target.prototype : target;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n source = 'prototype' in source ? source.prototype : source;\n // If build target is ES6 class. prototype methods is not enumerable. Use getOwnPropertyNames instead\n // TODO: Determine if source is ES6 class?\n if (Object.getOwnPropertyNames) {\n const keyList = Object.getOwnPropertyNames(source);\n for (let i = 0; i < keyList.length; i++) {\n const key = keyList[i];\n if (key !== 'constructor') {\n if (override ? (source as any)[key] != null : (target as any)[key] == null) {\n (target as any)[key] = (source as any)[key];\n }\n }\n }\n } else {\n defaults(target as Dict<any>, source as Dict<any>, override);\n }\n}\n"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare function isNumberClose(a: number, b: number, relTol?: number, absTol?: number): boolean;
|
|
2
|
+
export declare function isGreater(a: number, b: number, relTol?: number, absTol?: number): boolean;
|
|
3
|
+
export declare function isLess(a: number, b: number, relTol?: number, absTol?: number): boolean;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const DEFAULT_ABSOLUTE_TOLERATE = 1e-10, DEFAULT_RELATIVE_TOLERATE = 1e-10;
|
|
2
|
+
|
|
3
|
+
export function isNumberClose(a, b, relTol = DEFAULT_RELATIVE_TOLERATE, absTol = DEFAULT_ABSOLUTE_TOLERATE) {
|
|
4
|
+
const abs = absTol, rel = relTol * Math.max(a, b);
|
|
5
|
+
return Math.abs(a - b) <= Math.max(abs, rel);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export function isGreater(a, b, relTol, absTol) {
|
|
9
|
+
return a > b && !isNumberClose(a, b, relTol, absTol);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export function isLess(a, b, relTol, absTol) {
|
|
13
|
+
return a < b && !isNumberClose(a, b, relTol, absTol);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=number.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/number.ts"],"names":[],"mappings":"AAIA,MAAM,yBAAyB,GAAG,KAAK,CAAC;AACxC,MAAM,yBAAyB,GAAG,KAAK,CAAC;AASxC,MAAM,UAAU,aAAa,CAC3B,CAAS,EACT,CAAS,EACT,SAAiB,yBAAyB,EAC1C,SAAiB,yBAAyB;IAE1C,MAAM,GAAG,GAAG,MAAM,CAAC;IACnB,MAAM,GAAG,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC/C,CAAC;AASD,MAAM,UAAU,SAAS,CAAC,CAAS,EAAE,CAAS,EAAE,MAAe,EAAE,MAAe;IAC9E,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACvD,CAAC;AASD,MAAM,UAAU,MAAM,CAAC,CAAS,EAAE,CAAS,EAAE,MAAe,EAAE,MAAe;IAC3E,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACvD,CAAC","file":"number.js","sourcesContent":["/**\n * @description 处理数值相关的方法\n */\n\nconst DEFAULT_ABSOLUTE_TOLERATE = 1e-10;\nconst DEFAULT_RELATIVE_TOLERATE = 1e-10;\n\n/**\n * 判断两数是否接近相等,函数参数参照 python isClose 方法\n * @param {number} a\n * @param {number} b\n * @param refTol 指定的相对容差比例,将乘以两数的最大值作为相对容差\n * @param absTol 指定的绝对容差\n */\nexport function isNumberClose(\n a: number,\n b: number,\n relTol: number = DEFAULT_RELATIVE_TOLERATE,\n absTol: number = DEFAULT_ABSOLUTE_TOLERATE\n) {\n const abs = absTol;\n const rel = relTol * Math.max(a, b);\n return Math.abs(a - b) <= Math.max(abs, rel);\n}\n\n/**\n * 判断 a 是否大于 b,并排除容差范围\n * @param a\n * @param b\n * @param relTol 指定的相对容差比例,将乘以两数的最大值作为相对容差\n * @param absTol 指定的绝对容差\n */\nexport function isGreater(a: number, b: number, relTol?: number, absTol?: number) {\n return a > b && !isNumberClose(a, b, relTol, absTol);\n}\n\n/**\n * 判断 a 是否小于 b,并排除容差范围\n * @param a\n * @param b\n * @param relTol 指定的相对容差比例,将乘以两数的最大值作为相对容差\n * @param absTol 指定的绝对容差\n */\nexport function isLess(a: number, b: number, relTol?: number, absTol?: number) {\n return a < b && !isNumberClose(a, b, relTol, absTol);\n}\n"]}
|
package/es/common/pad.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
const repeat = (str, repeatCount = 0) => {
|
|
2
|
+
let s = "", i = repeatCount - 1;
|
|
3
|
+
for (;i >= 0; ) s = `${s}${str}`, i -= 1;
|
|
4
|
+
return s;
|
|
5
|
+
}, pad = (str, length, padChar = " ", align = "right") => {
|
|
6
|
+
const c = padChar, s = str + "", n = length - s.length;
|
|
7
|
+
return n <= 0 ? s : "left" === align ? repeat(c, n) + s : "center" === align ? repeat(c, Math.floor(n / 2)) + s + repeat(c, Math.ceil(n / 2)) : s + repeat(c, n);
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export default pad;
|
|
11
|
+
//# sourceMappingURL=pad.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/common/pad.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG,CAAC,GAAoB,EAAE,cAAsB,CAAC,EAAE,EAAE;IAC/D,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,IAAI,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC;IACxB,OAAO,CAAC,IAAI,CAAC,EAAE;QACb,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC;QACjB,CAAC,IAAI,CAAC,CAAC;KACR;IACD,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAuBF,MAAM,GAAG,GAAG,CAAC,GAAoB,EAAE,MAAc,EAAE,UAAkB,GAAG,EAAE,QAAgB,OAAO,EAAE,EAAE;IACnG,MAAM,CAAC,GAAG,OAAO,CAAC;IAClB,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;IACnB,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IAE5B,IAAI,CAAC,IAAI,CAAC,EAAE;QACV,OAAO,CAAC,CAAC;KACV;IAED,IAAI,KAAK,KAAK,MAAM,EAAE;QACpB,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;KACzB;IAED,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAChH,CAAC,CAAC;AAEF,eAAe,GAAG,CAAC","file":"pad.js","sourcesContent":["const repeat = (str: string | number, repeatCount: number = 0) => {\n let s = '';\n let i = repeatCount - 1;\n while (i >= 0) {\n s = `${s}${str}`;\n i -= 1;\n }\n return s;\n};\n\n/**\n * Pads `string` on the left and right, left or right sides if it's shorter than `length`.\n * Padding characters are truncated if they can't be evenly divided by `length`.\n *\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * pad('abc', 8)\n * // => ' abc '\n *\n * pad('abc', 8, '_-')\n * // => '_-abc_-_'\n *\n * pad('abc', 2)\n * // => 'abc'\n */\nconst pad = (str: string | number, length: number, padChar: string = ' ', align: string = 'right') => {\n const c = padChar;\n const s = str + '';\n const n = length - s.length;\n\n if (n <= 0) {\n return s;\n }\n\n if (align === 'left') {\n return repeat(c, n) + s;\n }\n\n return align === 'center' ? repeat(c, Math.floor(n / 2)) + s + repeat(c, Math.ceil(n / 2)) : s + repeat(c, n);\n};\n\nexport default pad;\n"]}
|