@visactor/vutils 1.0.24 → 1.0.26
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.zh-CN.md +12 -0
- package/REGRESSION.md +36 -0
- package/cjs/angle.d.ts +61 -0
- package/cjs/angle.js +73 -7
- package/cjs/angle.js.map +1 -1
- package/cjs/color/Color.d.ts +3 -0
- package/cjs/color/Color.js +64 -10
- package/cjs/color/Color.js.map +1 -1
- package/cjs/color/hexToRgb.d.ts +5 -0
- package/cjs/color/hexToRgb.js +5 -0
- package/cjs/color/hexToRgb.js.map +1 -1
- package/cjs/color/rgbToHsl.js +5 -1
- package/cjs/color/rgbToHsl.js.map +1 -1
- package/cjs/common/array.d.ts +43 -0
- package/cjs/common/array.js +44 -0
- package/cjs/common/array.js.map +1 -1
- package/cjs/common/bisect.d.ts +21 -0
- package/cjs/common/bisect.js +29 -0
- package/cjs/common/bisect.js.map +1 -1
- package/cjs/common/bootstrap.d.ts +5 -0
- package/cjs/common/bootstrap.js +22 -0
- package/cjs/common/bootstrap.js.map +1 -0
- package/cjs/common/clone.js +6 -0
- package/cjs/common/clone.js.map +1 -1
- package/cjs/common/cloneDeep.js +4 -1
- package/cjs/common/cloneDeep.js.map +1 -1
- package/cjs/common/correlation.d.ts +3 -0
- package/cjs/common/correlation.js +83 -0
- package/cjs/common/correlation.js.map +1 -0
- package/cjs/common/debounce.js +22 -4
- package/cjs/common/debounce.js.map +1 -1
- package/cjs/common/deviation.js +1 -2
- package/cjs/common/ecdf.d.ts +8 -0
- package/cjs/common/ecdf.js +11 -2
- package/cjs/common/ecdf.js.map +1 -1
- package/cjs/common/extent.d.ts +4 -0
- package/cjs/common/extent.js +4 -2
- package/cjs/common/extent.js.map +1 -1
- package/cjs/common/field.d.ts +6 -0
- package/cjs/common/field.js +3 -0
- package/cjs/common/field.js.map +1 -1
- package/cjs/common/has.d.ts +17 -0
- package/cjs/common/has.js +18 -1
- package/cjs/common/has.js.map +1 -1
- package/cjs/common/index.d.ts +5 -0
- package/cjs/common/index.js +34 -6
- package/cjs/common/index.js.map +1 -1
- package/cjs/common/interpolate.js +16 -3
- package/cjs/common/interpolate.js.map +1 -1
- package/cjs/common/isBase64.d.ts +6 -0
- package/cjs/common/isBase64.js +6 -0
- package/cjs/common/isBase64.js.map +1 -1
- package/cjs/common/isBoolean.d.ts +13 -0
- package/cjs/common/isBoolean.js +13 -1
- package/cjs/common/isBoolean.js.map +1 -1
- package/cjs/common/isEmpty.js +11 -1
- package/cjs/common/isEmpty.js.map +1 -1
- package/cjs/common/isEqual.js +19 -7
- package/cjs/common/isEqual.js.map +1 -1
- package/cjs/common/isFunction.d.ts +25 -0
- package/cjs/common/isFunction.js +27 -2
- package/cjs/common/isFunction.js.map +1 -1
- package/cjs/common/isNull.js +2 -1
- package/cjs/common/isNumber.d.ts +23 -0
- package/cjs/common/isNumber.js +23 -1
- package/cjs/common/isNumber.js.map +1 -1
- package/cjs/common/isNumeric.d.ts +25 -0
- package/cjs/common/isNumeric.js +25 -0
- package/cjs/common/isNumeric.js.map +1 -1
- package/cjs/common/isObject.d.ts +21 -0
- package/cjs/common/isObject.js +22 -0
- package/cjs/common/isObject.js.map +1 -1
- package/cjs/common/isObjectLike.d.ts +20 -0
- package/cjs/common/isObjectLike.js +21 -0
- package/cjs/common/isObjectLike.js.map +1 -1
- package/cjs/common/isPlainObject.d.ts +25 -0
- package/cjs/common/isPlainObject.js.map +1 -1
- package/cjs/common/isPrototype.js +1 -1
- package/cjs/common/isRegExp.js +1 -1
- package/cjs/common/isShallowEqual.js +1 -0
- package/cjs/common/isShallowEqual.js.map +1 -1
- package/cjs/common/isString.d.ts +13 -0
- package/cjs/common/isString.js +13 -1
- package/cjs/common/isString.js.map +1 -1
- package/cjs/common/isType.d.ts +6 -0
- package/cjs/common/isType.js +6 -0
- package/cjs/common/isType.js.map +1 -1
- package/cjs/common/isValidNumber.js.map +1 -1
- package/cjs/common/isValidUrl.js.map +1 -1
- package/cjs/common/kde.d.ts +28 -0
- package/cjs/common/kde.js +29 -5
- package/cjs/common/kde.js.map +1 -1
- package/cjs/common/mean.d.ts +2 -0
- package/cjs/common/mean.js +25 -0
- package/cjs/common/mean.js.map +1 -0
- package/cjs/common/merge.js +20 -4
- package/cjs/common/merge.js.map +1 -1
- package/cjs/common/mixin.js +14 -3
- package/cjs/common/mixin.js.map +1 -1
- package/cjs/common/normalQuantile.d.ts +5 -0
- package/cjs/common/normalQuantile.js +21 -0
- package/cjs/common/normalQuantile.js.map +1 -0
- package/cjs/common/number.d.ts +24 -0
- package/cjs/common/number.js +24 -1
- package/cjs/common/number.js.map +1 -1
- package/cjs/common/pad.d.ts +21 -0
- package/cjs/common/pad.js +21 -1
- package/cjs/common/pad.js.map +1 -1
- package/cjs/common/random.d.ts +3 -0
- package/cjs/common/random.js +13 -0
- package/cjs/common/random.js.map +1 -1
- package/cjs/common/regression-bootstrap.d.ts +14 -0
- package/cjs/common/regression-bootstrap.js +37 -0
- package/cjs/common/regression-bootstrap.js.map +1 -0
- package/cjs/common/regression-linear.d.ts +5 -0
- package/cjs/common/regression-linear.js +28 -39
- package/cjs/common/regression-linear.js.map +1 -1
- package/cjs/common/regression-logistic.d.ts +6 -0
- package/cjs/common/regression-logistic.js +25 -14
- package/cjs/common/regression-logistic.js.map +1 -1
- package/cjs/common/regression-lowess.d.ts +11 -1
- package/cjs/common/regression-lowess.js +125 -118
- package/cjs/common/regression-lowess.js.map +1 -1
- package/cjs/common/regression-polynomial.d.ts +1 -0
- package/cjs/common/regression-polynomial.js +24 -94
- package/cjs/common/regression-polynomial.js.map +1 -1
- package/cjs/common/regression-solver.d.ts +26 -0
- package/cjs/common/regression-solver.js +180 -0
- package/cjs/common/regression-solver.js.map +1 -0
- package/cjs/common/regression-utils.d.ts +13 -1
- package/cjs/common/regression-utils.js +27 -12
- package/cjs/common/regression-utils.js.map +1 -1
- package/cjs/common/throttle.js +3 -0
- package/cjs/common/throttle.js.map +1 -1
- package/cjs/common/toDate.js +22 -3
- package/cjs/common/toDate.js.map +1 -1
- package/cjs/common/uuid.d.ts +7 -0
- package/cjs/common/uuid.js +15 -1
- package/cjs/common/uuid.js.map +1 -1
- package/cjs/data-structure/bounds.d.ts +101 -0
- package/cjs/data-structure/bounds.js +74 -7
- package/cjs/data-structure/bounds.js.map +1 -1
- package/cjs/data-structure/hashTable.d.ts +4 -0
- package/cjs/data-structure/hashTable.js +11 -2
- package/cjs/data-structure/hashTable.js.map +1 -1
- package/cjs/data-structure/index.js +6 -2
- package/cjs/data-structure/index.js.map +1 -1
- package/cjs/data-structure/matrix.d.ts +91 -0
- package/cjs/data-structure/matrix.js +52 -4
- package/cjs/data-structure/matrix.js.map +1 -1
- package/cjs/data-structure/point.d.ts +3 -0
- package/cjs/data-structure/point.js +5 -1
- package/cjs/data-structure/point.js.map +1 -1
- package/cjs/dom.d.ts +36 -0
- package/cjs/dom.js +43 -1
- package/cjs/dom.js.map +1 -1
- package/cjs/fmin/blas1.js +10 -1
- package/cjs/fmin/blas1.js.map +1 -1
- package/cjs/fmin/conjugate-gradient.js +18 -3
- package/cjs/fmin/conjugate-gradient.js.map +1 -1
- package/cjs/fmin/linesearch.js +15 -1
- package/cjs/fmin/linesearch.js.map +1 -1
- package/cjs/fmin/nelder-mead.d.ts +1 -0
- package/cjs/fmin/nelder-mead.js +30 -10
- package/cjs/fmin/nelder-mead.js.map +1 -1
- package/cjs/format/number/formatDecimal.js +9 -1
- package/cjs/format/number/formatDecimal.js.map +1 -1
- package/cjs/format/number/formatGroup.js +7 -0
- package/cjs/format/number/formatGroup.js.map +1 -1
- package/cjs/format/number/formatPrefixAuto.js +8 -0
- package/cjs/format/number/formatPrefixAuto.js.map +1 -1
- package/cjs/format/number/formatRounded.js +7 -0
- package/cjs/format/number/formatRounded.js.map +1 -1
- package/cjs/format/number/formatTrim.js +7 -0
- package/cjs/format/number/formatTrim.js.map +1 -1
- package/cjs/format/number/number.js +39 -9
- package/cjs/format/number/number.js.map +1 -1
- package/cjs/format/time.js +23 -6
- package/cjs/format/time.js.map +1 -1
- package/cjs/geo/circle-intersection.d.ts +12 -0
- package/cjs/geo/circle-intersection.js +54 -9
- package/cjs/geo/circle-intersection.js.map +1 -1
- package/cjs/geo/constant.js +8 -1
- package/cjs/geo/constant.js.map +1 -1
- package/cjs/geo/invariant.d.ts +22 -0
- package/cjs/geo/invariant.js +24 -1
- package/cjs/geo/invariant.js.map +1 -1
- package/cjs/graphics/algorithm/aabb.js +7 -3
- package/cjs/graphics/algorithm/aabb.js.map +1 -1
- package/cjs/graphics/algorithm/intersect.d.ts +48 -0
- package/cjs/graphics/algorithm/intersect.js +75 -7
- package/cjs/graphics/algorithm/intersect.js.map +1 -1
- package/cjs/graphics/bounds-util.js +4 -2
- package/cjs/graphics/bounds-util.js.map +1 -1
- package/cjs/graphics/graph-util.js +4 -0
- package/cjs/graphics/graph-util.js.map +1 -1
- package/cjs/graphics/index.js +7 -4
- package/cjs/graphics/index.js.map +1 -1
- package/cjs/graphics/polygon.d.ts +12 -0
- package/cjs/graphics/polygon.js +28 -5
- package/cjs/graphics/polygon.js.map +1 -1
- package/cjs/graphics/text/measure/interface.d.ts +12 -0
- package/cjs/graphics/text/measure/textMeasure.d.ts +23 -0
- package/cjs/graphics/text/measure/textMeasure.js +50 -22
- package/cjs/graphics/text/measure/textMeasure.js.map +1 -1
- package/cjs/graphics/text/measure/util.js +1 -0
- package/cjs/graphics/text/measure/util.js.map +1 -1
- package/cjs/graphics/text/stringWidth.js +7 -3
- package/cjs/graphics/text/stringWidth.js.map +1 -1
- package/cjs/index.d.ts +6 -0
- package/cjs/index.js +19 -4
- package/cjs/index.js.map +1 -1
- package/cjs/logger.js +12 -2
- package/cjs/logger.js.map +1 -1
- package/cjs/lru.js +14 -6
- package/cjs/lru.js.map +1 -1
- package/cjs/math.d.ts +9 -0
- package/cjs/math.js +10 -0
- package/cjs/math.js.map +1 -1
- package/cjs/padding.d.ts +5 -0
- package/cjs/padding.js +5 -0
- package/cjs/padding.js.map +1 -1
- package/cjs/time/formatUtils.d.ts +6 -0
- package/cjs/time/formatUtils.js +7 -0
- package/cjs/time/formatUtils.js.map +1 -1
- package/dist/index.js +2035 -411
- package/dist/index.min.js +128 -1
- package/es/angle.d.ts +61 -0
- package/es/angle.js +66 -10
- package/es/angle.js.map +1 -1
- package/es/color/Color.d.ts +3 -0
- package/es/color/Color.js +64 -9
- package/es/color/Color.js.map +1 -1
- package/es/color/hexToRgb.d.ts +5 -0
- package/es/color/hexToRgb.js +5 -0
- package/es/color/hexToRgb.js.map +1 -1
- package/es/color/rgbToHsl.js +5 -1
- package/es/color/rgbToHsl.js.map +1 -1
- package/es/common/array.d.ts +43 -0
- package/es/common/array.js +44 -8
- package/es/common/array.js.map +1 -1
- package/es/common/bisect.d.ts +21 -0
- package/es/common/bisect.js +29 -4
- package/es/common/bisect.js.map +1 -1
- package/es/common/bootstrap.d.ts +5 -0
- package/es/common/bootstrap.js +14 -0
- package/es/common/bootstrap.js.map +1 -0
- package/es/common/clone.js +6 -0
- package/es/common/clone.js.map +1 -1
- package/es/common/cloneDeep.js +4 -1
- package/es/common/cloneDeep.js.map +1 -1
- package/es/common/correlation.d.ts +3 -0
- package/es/common/correlation.js +77 -0
- package/es/common/correlation.js.map +1 -0
- package/es/common/debounce.js +22 -4
- package/es/common/debounce.js.map +1 -1
- package/es/common/deviation.js +1 -2
- package/es/common/ecdf.d.ts +8 -0
- package/es/common/ecdf.js +11 -1
- package/es/common/ecdf.js.map +1 -1
- package/es/common/extent.d.ts +4 -0
- package/es/common/extent.js +8 -3
- package/es/common/extent.js.map +1 -1
- package/es/common/field.d.ts +6 -0
- package/es/common/field.js +3 -1
- package/es/common/field.js.map +1 -1
- package/es/common/has.d.ts +17 -0
- package/es/common/has.js +18 -1
- package/es/common/has.js.map +1 -1
- package/es/common/index.d.ts +5 -0
- package/es/common/index.js +24 -0
- package/es/common/index.js.map +1 -1
- package/es/common/interpolate.js +16 -3
- package/es/common/interpolate.js.map +1 -1
- package/es/common/isBase64.d.ts +6 -0
- package/es/common/isBase64.js +6 -0
- package/es/common/isBase64.js.map +1 -1
- package/es/common/isBoolean.d.ts +13 -0
- package/es/common/isBoolean.js +13 -1
- package/es/common/isBoolean.js.map +1 -1
- package/es/common/isEmpty.js +11 -1
- package/es/common/isEmpty.js.map +1 -1
- package/es/common/isEqual.js +19 -7
- package/es/common/isEqual.js.map +1 -1
- package/es/common/isFunction.d.ts +25 -0
- package/es/common/isFunction.js +27 -2
- package/es/common/isFunction.js.map +1 -1
- package/es/common/isNull.js +2 -1
- package/es/common/isNumber.d.ts +23 -0
- package/es/common/isNumber.js +23 -1
- package/es/common/isNumber.js.map +1 -1
- package/es/common/isNumeric.d.ts +25 -0
- package/es/common/isNumeric.js +25 -0
- package/es/common/isNumeric.js.map +1 -1
- package/es/common/isObject.d.ts +21 -0
- package/es/common/isObject.js +22 -0
- package/es/common/isObject.js.map +1 -1
- package/es/common/isObjectLike.d.ts +20 -0
- package/es/common/isObjectLike.js +21 -0
- package/es/common/isObjectLike.js.map +1 -1
- package/es/common/isPlainObject.d.ts +25 -0
- package/es/common/isPlainObject.js +26 -0
- package/es/common/isPlainObject.js.map +1 -1
- package/es/common/isPrototype.js +1 -1
- package/es/common/isRegExp.js +1 -1
- package/es/common/isShallowEqual.js +1 -0
- package/es/common/isShallowEqual.js.map +1 -1
- package/es/common/isString.d.ts +13 -0
- package/es/common/isString.js +13 -1
- package/es/common/isString.js.map +1 -1
- package/es/common/isType.d.ts +6 -0
- package/es/common/isType.js +6 -0
- package/es/common/isType.js.map +1 -1
- package/es/common/isValidNumber.js.map +1 -1
- package/es/common/isValidUrl.js.map +1 -1
- package/es/common/kde.d.ts +28 -0
- package/es/common/kde.js +29 -7
- package/es/common/kde.js.map +1 -1
- package/es/common/mean.d.ts +2 -0
- package/es/common/mean.js +19 -0
- package/es/common/mean.js.map +1 -0
- package/es/common/merge.js +22 -5
- package/es/common/merge.js.map +1 -1
- package/es/common/mixin.js +14 -3
- package/es/common/mixin.js.map +1 -1
- package/es/common/normalQuantile.d.ts +5 -0
- package/es/common/normalQuantile.js +15 -0
- package/es/common/normalQuantile.js.map +1 -0
- package/es/common/number.d.ts +24 -0
- package/es/common/number.js +24 -2
- package/es/common/number.js.map +1 -1
- package/es/common/pad.d.ts +21 -0
- package/es/common/pad.js +21 -1
- package/es/common/pad.js.map +1 -1
- package/es/common/random.d.ts +3 -0
- package/es/common/random.js +13 -1
- package/es/common/random.js.map +1 -1
- package/es/common/regression-bootstrap.d.ts +14 -0
- package/es/common/regression-bootstrap.js +31 -0
- package/es/common/regression-bootstrap.js.map +1 -0
- package/es/common/regression-linear.d.ts +5 -0
- package/es/common/regression-linear.js +25 -39
- package/es/common/regression-linear.js.map +1 -1
- package/es/common/regression-logistic.d.ts +6 -0
- package/es/common/regression-logistic.js +24 -16
- package/es/common/regression-logistic.js.map +1 -1
- package/es/common/regression-lowess.d.ts +11 -1
- package/es/common/regression-lowess.js +120 -118
- package/es/common/regression-lowess.js.map +1 -1
- package/es/common/regression-polynomial.d.ts +1 -0
- package/es/common/regression-polynomial.js +21 -89
- package/es/common/regression-polynomial.js.map +1 -1
- package/es/common/regression-solver.d.ts +26 -0
- package/es/common/regression-solver.js +168 -0
- package/es/common/regression-solver.js.map +1 -0
- package/es/common/regression-utils.d.ts +13 -1
- package/es/common/regression-utils.js +18 -9
- package/es/common/regression-utils.js.map +1 -1
- package/es/common/throttle.js +3 -0
- package/es/common/throttle.js.map +1 -1
- package/es/common/toDate.js +23 -3
- package/es/common/toDate.js.map +1 -1
- package/es/common/uuid.d.ts +7 -0
- package/es/common/uuid.js +15 -1
- package/es/common/uuid.js.map +1 -1
- package/es/data-structure/bounds.d.ts +101 -0
- package/es/data-structure/bounds.js +74 -8
- package/es/data-structure/bounds.js.map +1 -1
- package/es/data-structure/hashTable.d.ts +4 -0
- package/es/data-structure/hashTable.js +11 -2
- package/es/data-structure/hashTable.js.map +1 -1
- package/es/data-structure/index.js +2 -0
- package/es/data-structure/index.js.map +1 -1
- package/es/data-structure/matrix.d.ts +91 -0
- package/es/data-structure/matrix.js +52 -5
- package/es/data-structure/matrix.js.map +1 -1
- package/es/data-structure/point.d.ts +3 -0
- package/es/data-structure/point.js +5 -1
- package/es/data-structure/point.js.map +1 -1
- package/es/dom.d.ts +36 -0
- package/es/dom.js +43 -8
- package/es/dom.js.map +1 -1
- package/es/fmin/blas1.js +10 -0
- package/es/fmin/blas1.js.map +1 -1
- package/es/fmin/conjugate-gradient.js +18 -2
- package/es/fmin/conjugate-gradient.js.map +1 -1
- package/es/fmin/linesearch.js +15 -0
- package/es/fmin/linesearch.js.map +1 -1
- package/es/fmin/nelder-mead.d.ts +1 -0
- package/es/fmin/nelder-mead.js +29 -9
- package/es/fmin/nelder-mead.js.map +1 -1
- package/es/format/number/formatDecimal.js +9 -1
- package/es/format/number/formatDecimal.js.map +1 -1
- package/es/format/number/formatGroup.js +7 -0
- package/es/format/number/formatGroup.js.map +1 -1
- package/es/format/number/formatPrefixAuto.js +8 -0
- package/es/format/number/formatPrefixAuto.js.map +1 -1
- package/es/format/number/formatRounded.js +7 -0
- package/es/format/number/formatRounded.js.map +1 -1
- package/es/format/number/formatTrim.js +7 -0
- package/es/format/number/formatTrim.js.map +1 -1
- package/es/format/number/number.js +40 -8
- package/es/format/number/number.js.map +1 -1
- package/es/format/time.js +23 -5
- package/es/format/time.js.map +1 -1
- package/es/geo/circle-intersection.d.ts +12 -0
- package/es/geo/circle-intersection.js +54 -14
- package/es/geo/circle-intersection.js.map +1 -1
- package/es/geo/constant.js +8 -0
- package/es/geo/constant.js.map +1 -1
- package/es/geo/invariant.d.ts +22 -0
- package/es/geo/invariant.js +24 -0
- package/es/geo/invariant.js.map +1 -1
- package/es/graphics/algorithm/aabb.js +7 -3
- package/es/graphics/algorithm/aabb.js.map +1 -1
- package/es/graphics/algorithm/intersect.d.ts +48 -0
- package/es/graphics/algorithm/intersect.js +75 -12
- package/es/graphics/algorithm/intersect.js.map +1 -1
- package/es/graphics/bounds-util.js +4 -2
- package/es/graphics/bounds-util.js.map +1 -1
- package/es/graphics/graph-util.js +4 -0
- package/es/graphics/graph-util.js.map +1 -1
- package/es/graphics/index.js +2 -0
- package/es/graphics/index.js.map +1 -1
- package/es/graphics/polygon.d.ts +12 -0
- package/es/graphics/polygon.js +28 -6
- package/es/graphics/polygon.js.map +1 -1
- package/es/graphics/text/measure/interface.d.ts +12 -0
- package/es/graphics/text/measure/textMeasure.d.ts +23 -0
- package/es/graphics/text/measure/textMeasure.js +46 -21
- package/es/graphics/text/measure/textMeasure.js.map +1 -1
- package/es/graphics/text/measure/util.js +1 -0
- package/es/graphics/text/measure/util.js.map +1 -1
- package/es/graphics/text/stringWidth.js +7 -3
- package/es/graphics/text/stringWidth.js.map +1 -1
- package/es/index.d.ts +6 -0
- package/es/index.js +15 -1
- package/es/index.js.map +1 -1
- package/es/logger.js +12 -1
- package/es/logger.js.map +1 -1
- package/es/lru.js +14 -6
- package/es/lru.js.map +1 -1
- package/es/math.d.ts +9 -0
- package/es/math.js +10 -1
- package/es/math.js.map +1 -1
- package/es/padding.d.ts +5 -0
- package/es/padding.js +5 -1
- package/es/padding.js.map +1 -1
- package/es/time/formatUtils.d.ts +6 -0
- package/es/time/formatUtils.js +7 -1
- package/es/time/formatUtils.js.map +1 -1
- package/package.json +4 -3
package/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kEAAyC;AAQhC,uBARF,uBAAY,CAQE;AAErB,2CAAyB;
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kEAAyC;AAQhC,uBARF,uBAAY,CAQE;AAErB,2CAAyB;AAEzB,iBAAiB;AACjB,mDAAiC;AAEjC,YAAY;AACZ,wCAAsB;AAEtB,OAAO;AACP,yCAAuB;AAEvB,QAAQ;AACR,0CAAwB;AAExB,QAAQ;AACR,4BAA4B;AAC5B,qDAAqC;AAErC,yBAAyB;AACzB,6CAA2B;AAE3B,OAAO;AACP,yCAAuB;AAEvB,MAAM;AACN,2CAAyB;AAEzB,UAAU;AACV,4CAA0B;AAE1B,yCAAuB;AAEvB,MAAM;AACN,wCAAsB;AAEtB,wCAAsB;AAEtB,0CAAwB;AAExB,gDAA8B;AAC9B,kDAAgC;AAEhC,yCAAuB","file":"index.js","sourcesContent":["import EventEmitter from 'eventemitter3';\n\n/**\n * A high performance event emitter\n * @see {@link https://github.com/primus/eventemitter3}\n * @memberof PIXI.utils\n * @class EventEmitter\n */\nexport { EventEmitter };\n\nexport * from './common';\n\n// data structure\nexport * from './data-structure';\n\n// algorithm\nexport * from './lru';\n\n// math\nexport * from './math';\n\n// angle\nexport * from './angle';\n\n// color\n// TODO: 后续删除这个导出,避免引入不需要的内容\nexport * as ColorUtil from './color';\n\n// methods about graphics\nexport * from './graphics';\n\n// type\nexport * from './type';\n\n// log\nexport * from './logger';\n\n// padding\nexport * from './padding';\n\nexport * from './time';\n\n// dom\nexport * from './dom';\n\nexport * from './geo';\n\nexport * from './color';\n\nexport * from './format/time';\nexport * from './format/number';\n\nexport * from './fmin';\n"]}
|
package/cjs/logger.js
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
/* Adapted from vega by University of Washington Interactive Data Lab
|
|
4
|
+
* https://vega.github.io/vega/
|
|
5
|
+
* Licensed under the BSD-3-Clause
|
|
6
|
+
|
|
7
|
+
* url: https://github.com/vega/vega/blob/main/packages/vega-util/src/logger.js
|
|
8
|
+
* License: https://github.com/vega/vega/blob/main/LICENSE
|
|
9
|
+
* @license
|
|
10
|
+
*/ var __importDefault = this && this.__importDefault || function(mod) {
|
|
4
11
|
return mod && mod.__esModule ? mod : {
|
|
5
12
|
default: mod
|
|
6
13
|
};
|
|
@@ -12,9 +19,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
12
19
|
|
|
13
20
|
const isNumber_1 = __importDefault(require("./common/isNumber")), hasConsole = "undefined" != typeof console;
|
|
14
21
|
|
|
22
|
+
// check console
|
|
15
23
|
function log(method, level, input) {
|
|
16
24
|
const args = [ level ].concat([].slice.call(input));
|
|
17
|
-
hasConsole &&
|
|
25
|
+
hasConsole &&
|
|
26
|
+
// eslint-disable-next-line prefer-spread, no-undef
|
|
27
|
+
console[method].apply(console, args);
|
|
18
28
|
}
|
|
19
29
|
|
|
20
30
|
var LoggerLevel;
|
package/cjs/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/logger.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"sources":["../src/logger.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;;AAEH,iEAAyC;AAGzC,gBAAgB;AAChB,MAAM,UAAU,GAAG,OAAO,OAAO,KAAK,WAAW,CAAC;AAElD,SAAS,GAAG,CAAC,MAAc,EAAE,KAAU,EAAE,KAAU;IACjD,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAElD,IAAI,UAAU,EAAE;QACd,mDAAmD;QACnD,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,iCAAiC;KACxE;AACH,CAAC;AAED,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,6CAAQ,CAAA;IACR,+CAAS,CAAA;IACT,6CAAQ,CAAA;IACR,6CAAQ,CAAA;IACR,+CAAS,CAAA;AACX,CAAC,EANW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAMtB;AAID,MAAa,MAAM;IAGjB,MAAM,CAAC,WAAW,CAAC,KAAc,EAAE,MAAe;QAChD,IAAI,MAAM,CAAC,SAAS,IAAI,IAAA,kBAAQ,EAAC,KAAK,CAAC,EAAE;YACvC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC/B;aAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;YAC5B,MAAM,CAAC,SAAS,GAAG,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;SAC9C;QACD,OAAO,MAAM,CAAC,SAAS,CAAC;IAC1B,CAAC;IACD,MAAM,CAAC,WAAW,CAAC,MAAe;QAChC,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,KAAa;QACnC,IAAI,MAAM,CAAC,SAAS,EAAE;YACpB,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC/B;aAAM;YACL,MAAM,CAAC,SAAS,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;SACtC;IACH,CAAC;IAED,MAAM,CAAC,aAAa;QAClB,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;IAC1B,CAAC;IAQD,YAAY,QAAgB,WAAW,CAAC,IAAI,EAAE,MAAe;QAFrD,oBAAe,GAAmB,EAAE,CAAC;QAG3C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,eAAe,CAAC,OAAqB;QACnC,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,EAAE;YACjD,OAAO;SACR;QACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,kBAAkB,CAAC,OAAqB;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;QACjE,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,OAAO;SACR;QACD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,gBAAgB,CAAC,GAAG,IAAW;QAC7B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC;IACzC,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,KAAK,CAAC;IAC1C,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,KAAK,CAAC;IAC1C,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC;IACzC,CAAC;IAID,KAAK,CAAC,UAAmB;QACvB,IAAI,SAAS,CAAC,MAAM,EAAE;YACpB,IAAI,CAAC,MAAM,GAAG,CAAC,UAAU,CAAC;YAC1B,OAAO,IAAI,CAAC;SACb;QAED,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,GAAG,IAAW;;QAClB,IAAI,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,KAAK,EAAE;YACpC,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;gBAC/B,IAAI,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,CAAC;aAChC;iBAAM;gBACL,GAAG,CAAC,MAAA,IAAI,CAAC,OAAO,mCAAI,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;aAC7C;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,GAAG,IAAW;QACjB,IAAI,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,IAAI,EAAE;YACnC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;SAC3C;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,GAAG,IAAW;QACjB,IAAI,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,IAAI,EAAE;YACnC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;SAC1C;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,GAAG,IAAW;QAClB,IAAI,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,KAAK,EAAE;YACpC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;SAC3C;QACD,OAAO,IAAI,CAAC;IACd,CAAC;;AAlHH,wBAmHC;AAlHgB,gBAAS,GAAY,IAAI,CAAC","file":"logger.js","sourcesContent":["/* Adapted from vega by University of Washington Interactive Data Lab\n * https://vega.github.io/vega/\n * Licensed under the BSD-3-Clause\n\n * url: https://github.com/vega/vega/blob/main/packages/vega-util/src/logger.js\n * License: https://github.com/vega/vega/blob/main/LICENSE\n * @license\n */\n\nimport isNumber from './common/isNumber';\nimport type { ILogger } from './type';\n\n// check console\nconst hasConsole = typeof console !== 'undefined';\n\nfunction log(method: string, level: any, input: any) {\n const args = [level].concat([].slice.call(input));\n\n if (hasConsole) {\n // eslint-disable-next-line prefer-spread, no-undef\n console[method].apply(console, args); // eslint-disable-line no-console\n }\n}\n\nexport enum LoggerLevel {\n None = 0,\n Error = 1,\n Warn = 2,\n Info = 3,\n Debug = 4\n}\n\ntype ErrorHandler = (...args: any[]) => void;\n\nexport class Logger implements ILogger {\n private static _instance: ILogger = null;\n\n static getInstance(level?: number, method?: string) {\n if (Logger._instance && isNumber(level)) {\n Logger._instance.level(level);\n } else if (!Logger._instance) {\n Logger._instance = new Logger(level, method);\n }\n return Logger._instance;\n }\n static setInstance(logger: ILogger) {\n return (Logger._instance = logger);\n }\n\n static setInstanceLevel(level: number) {\n if (Logger._instance) {\n Logger._instance.level(level);\n } else {\n Logger._instance = new Logger(level);\n }\n }\n\n static clearInstance() {\n Logger._instance = null;\n }\n\n private _level: number;\n\n private _method: string;\n\n private _onErrorHandler: ErrorHandler[] = [];\n\n constructor(level: number = LoggerLevel.None, method?: string) {\n this._level = level;\n this._method = method;\n }\n\n addErrorHandler(handler: ErrorHandler) {\n if (this._onErrorHandler.find(h => h === handler)) {\n return;\n }\n this._onErrorHandler.push(handler);\n }\n\n removeErrorHandler(handler: ErrorHandler) {\n const index = this._onErrorHandler.findIndex(h => h === handler);\n if (index < 0) {\n return;\n }\n this._onErrorHandler.splice(index, 1);\n }\n\n callErrorHandler(...args: any[]) {\n this._onErrorHandler.forEach(h => h(...args));\n }\n\n canLogInfo() {\n return this._level >= LoggerLevel.Info;\n }\n\n canLogDebug() {\n return this._level >= LoggerLevel.Debug;\n }\n\n canLogError() {\n return this._level >= LoggerLevel.Error;\n }\n\n canLogWarn() {\n return this._level >= LoggerLevel.Warn;\n }\n\n level(): number;\n level(levelValue: number): this;\n level(levelValue?: number) {\n if (arguments.length) {\n this._level = +levelValue;\n return this;\n }\n\n return this._level;\n }\n\n error(...args: any[]) {\n if (this._level >= LoggerLevel.Error) {\n if (this._onErrorHandler.length) {\n this.callErrorHandler(...args);\n } else {\n log(this._method ?? 'error', 'ERROR', args);\n }\n }\n return this;\n }\n\n warn(...args: any[]) {\n if (this._level >= LoggerLevel.Warn) {\n log(this._method || 'warn', 'WARN', args);\n }\n return this;\n }\n\n info(...args: any[]) {\n if (this._level >= LoggerLevel.Info) {\n log(this._method || 'log', 'INFO', args);\n }\n return this;\n }\n\n debug(...args: any[]) {\n if (this._level >= LoggerLevel.Debug) {\n log(this._method || 'log', 'DEBUG', args);\n }\n return this;\n }\n}\n"]}
|
package/cjs/lru.js
CHANGED
|
@@ -4,30 +4,38 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.LRU = void 0;
|
|
6
6
|
|
|
7
|
+
// LRU清除
|
|
7
8
|
class LRU {
|
|
8
9
|
constructor() {
|
|
9
|
-
this.CLEAN_THRESHOLD = 1e3, this.L_TIME = 1e3,
|
|
10
|
+
this.CLEAN_THRESHOLD = 1e3, this.L_TIME = 1e3, // 1000ms以内
|
|
11
|
+
this.R_COUNT = 1, // 使用次数为0
|
|
12
|
+
this.R_TIMESTAMP_MAX_SIZE = 20;
|
|
10
13
|
}
|
|
11
14
|
clearCache(cache, params) {
|
|
12
15
|
const {CLEAN_THRESHOLD: CLEAN_THRESHOLD = this.CLEAN_THRESHOLD, L_TIME: L_TIME = this.L_TIME, R_COUNT: R_COUNT = this.R_COUNT} = params;
|
|
13
16
|
if (cache.size < CLEAN_THRESHOLD) return 0;
|
|
14
|
-
|
|
17
|
+
// 开始清理,清理最近1000ms内使用次数为0的缓存
|
|
18
|
+
let clearNum = 0;
|
|
15
19
|
const clear = key => {
|
|
16
20
|
clearNum++, cache.delete(key);
|
|
17
21
|
}, now = Date.now();
|
|
18
22
|
return cache.forEach(((item, key) => {
|
|
19
23
|
if (item.timestamp.length < R_COUNT) return clear(key);
|
|
20
|
-
|
|
24
|
+
// 最近使用次数小于R_COUNT,清除
|
|
25
|
+
let useCount = 0;
|
|
21
26
|
for (;now - item.timestamp[item.timestamp.length - 1 - useCount] < L_TIME && (useCount++,
|
|
22
27
|
!(useCount >= R_COUNT)); ) ;
|
|
23
28
|
if (useCount < R_COUNT) return clear(key);
|
|
24
|
-
|
|
29
|
+
// 最近L_TIME以内使用次数小于R_COUNT,清除
|
|
30
|
+
// 清除L_TIME以外的key,避免数组过长
|
|
31
|
+
for (;now - item.timestamp[0] > L_TIME; ) item.timestamp.shift();
|
|
25
32
|
})), clearNum;
|
|
26
33
|
}
|
|
27
34
|
addLimitedTimestamp(cacheItem, t, params) {
|
|
28
35
|
const {R_TIMESTAMP_MAX_SIZE: R_TIMESTAMP_MAX_SIZE = this.R_TIMESTAMP_MAX_SIZE} = params;
|
|
29
|
-
cacheItem.timestamp.length > R_TIMESTAMP_MAX_SIZE &&
|
|
30
|
-
cacheItem.timestamp.
|
|
36
|
+
cacheItem.timestamp.length > R_TIMESTAMP_MAX_SIZE &&
|
|
37
|
+
// cacheItem.timestamp[cacheItem.timestamp.length-1] =
|
|
38
|
+
cacheItem.timestamp.shift(), cacheItem.timestamp.push(t);
|
|
31
39
|
}
|
|
32
40
|
clearTimeStamp(cache, params) {
|
|
33
41
|
const {L_TIME: L_TIME = this.L_TIME} = params, now = Date.now();
|
package/cjs/lru.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lru.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"sources":["../src/lru.ts"],"names":[],"mappings":"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","file":"lru.js","sourcesContent":["interface Threshold {\n CLEAN_THRESHOLD?: number;\n L_TIME?: number;\n R_COUNT?: number;\n R_TIMESTAMP_MAX_SIZE?: number;\n}\n// LRU清除\nexport class LRU {\n private CLEAN_THRESHOLD = 1e3;\n private L_TIME = 1000; // 1000ms以内\n private R_COUNT = 1; // 使用次数为0\n private R_TIMESTAMP_MAX_SIZE = 20; // timestamp最大长度\n\n clearCache<TK, TV extends { timestamp: number[] }>(cache: Map<TK, TV>, params: Threshold): number {\n const { CLEAN_THRESHOLD = this.CLEAN_THRESHOLD, L_TIME = this.L_TIME, R_COUNT = this.R_COUNT } = params;\n if (cache.size < CLEAN_THRESHOLD) {\n return 0;\n }\n // 开始清理,清理最近1000ms内使用次数为0的缓存\n let clearNum = 0;\n const clear = (key: TK) => {\n clearNum++;\n cache.delete(key);\n };\n const now = Date.now();\n cache.forEach((item, key) => {\n if (item.timestamp.length < R_COUNT) {\n return clear(key);\n } // 最近使用次数小于R_COUNT,清除\n let useCount = 0;\n while (now - item.timestamp[item.timestamp.length - 1 - useCount] < L_TIME) {\n useCount++;\n if (useCount >= R_COUNT) {\n break;\n }\n }\n if (useCount < R_COUNT) {\n return clear(key);\n } // 最近L_TIME以内使用次数小于R_COUNT,清除\n // 清除L_TIME以外的key,避免数组过长\n while (now - item.timestamp[0] > L_TIME) {\n item.timestamp.shift();\n }\n return;\n });\n return clearNum;\n }\n\n addLimitedTimestamp<T extends { timestamp: number[] }>(cacheItem: T, t: number, params: Threshold) {\n const { R_TIMESTAMP_MAX_SIZE = this.R_TIMESTAMP_MAX_SIZE } = params;\n if (cacheItem.timestamp.length > R_TIMESTAMP_MAX_SIZE) {\n // cacheItem.timestamp[cacheItem.timestamp.length-1] =\n cacheItem.timestamp.shift();\n }\n cacheItem.timestamp.push(t);\n }\n\n clearTimeStamp<TK, TV extends { timestamp: number[] }>(cache: Map<TK, TV>, params: Threshold) {\n const { L_TIME = this.L_TIME } = params;\n const now = Date.now();\n cache.forEach(item => {\n while (now - item.timestamp[0] > L_TIME) {\n item.timestamp.shift();\n }\n });\n }\n\n clearItemTimestamp<T extends { timestamp: number[] }>(cacheItem: T, params: Threshold) {\n const { L_TIME = this.L_TIME } = params;\n const now = Date.now();\n while (now - cacheItem.timestamp[0] > L_TIME) {\n cacheItem.timestamp.shift();\n }\n }\n}\n"]}
|
package/cjs/math.d.ts
CHANGED
|
@@ -39,6 +39,15 @@ export declare const sqrt: (x: number) => number;
|
|
|
39
39
|
export declare const pow: (x: number, y: number) => number;
|
|
40
40
|
export declare function acos(x: number): number;
|
|
41
41
|
export declare function asin(x: number): number;
|
|
42
|
+
/**
|
|
43
|
+
* 根据比例获直线上的点
|
|
44
|
+
* @param {number} x1 起始点 x
|
|
45
|
+
* @param {number} y1 起始点 y
|
|
46
|
+
* @param {number} x2 结束点 x
|
|
47
|
+
* @param {number} y2 结束点 y
|
|
48
|
+
* @param {number} t 指定比例
|
|
49
|
+
* @return {object} 包含 x, y 的点
|
|
50
|
+
*/
|
|
42
51
|
export declare function pointAt(x1: number | null | undefined, y1: number | null | undefined, x2: number | null | undefined, y2: number | null | undefined, t: number): {
|
|
43
52
|
x: undefined | number;
|
|
44
53
|
y: undefined | number;
|
package/cjs/math.js
CHANGED
|
@@ -8,6 +8,15 @@ function asin(x) {
|
|
|
8
8
|
return x >= 1 ? exports.halfPi : x <= -1 ? -exports.halfPi : Math.asin(x);
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
+
/**
|
|
12
|
+
* 根据比例获直线上的点
|
|
13
|
+
* @param {number} x1 起始点 x
|
|
14
|
+
* @param {number} y1 起始点 y
|
|
15
|
+
* @param {number} x2 结束点 x
|
|
16
|
+
* @param {number} y2 结束点 y
|
|
17
|
+
* @param {number} t 指定比例
|
|
18
|
+
* @return {object} 包含 x, y 的点
|
|
19
|
+
*/
|
|
11
20
|
function pointAt(x1, y1, x2, y2, t) {
|
|
12
21
|
let x = x2, y = y2;
|
|
13
22
|
return "number" == typeof x1 && "number" == typeof x2 && (x = (1 - t) * x1 + t * x2),
|
|
@@ -18,6 +27,7 @@ function pointAt(x1, y1, x2, y2, t) {
|
|
|
18
27
|
}
|
|
19
28
|
|
|
20
29
|
function lengthFromPointToLine(point, point1, point2) {
|
|
30
|
+
// 面积
|
|
21
31
|
const dir1X = point2.x - point1.x, dir1Y = point2.y - point1.y, dir2X = point.x - point1.x, dir2Y = point.y - point1.y;
|
|
22
32
|
return Math.abs(dir1X * dir2Y - dir2X * dir1Y) / Math.sqrt(dir1X * dir1X + dir1Y * dir1Y);
|
|
23
33
|
}
|
package/cjs/math.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/math.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,KAAK,CAAC;AAChB,QAAA,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACb,QAAA,MAAM,GAAG,UAAE,GAAG,CAAC,CAAC;AAChB,QAAA,GAAG,GAAG,CAAC,GAAG,UAAE,CAAC;AACb,QAAA,iBAAiB,GAAG,CAAC,CAAC;AACtB,QAAA,gBAAgB,GAAG,KAAK,CAAC;AACzB,QAAA,qBAAqB,GAAG,SAAS,CAAC;AAClC,QAAA,0BAA0B,GAAG,EAAE,CAAC;AAChC,QAAA,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AA2BlB,QAAA,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACf,QAAA,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACnB,QAAA,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACf,QAAA,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACf,QAAA,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACf,QAAA,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACf,QAAA,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACjB,QAAA,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AAE5B,SAAgB,IAAI,CAAC,CAAS;IAC5B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAFD,oBAEC;AAED,SAAgB,IAAI,CAAC,CAAS;IAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAFD,oBAEC;
|
|
1
|
+
{"version":3,"sources":["../src/math.ts"],"names":[],"mappings":"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","file":"math.js","sourcesContent":["export const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\nexport const NEWTON_ITERATIONS = 4;\nexport const NEWTON_MIN_SLOPE = 0.001;\nexport const SUBDIVISION_PRECISION = 0.0000001;\nexport const SUBDIVISION_MAX_ITERATIONS = 10;\nexport const pi2 = Math.PI * 2;\n\nexport type vec2 = [number, number] | Float32Array;\nexport type vec3 = [number, number, number] | Float32Array;\nexport type vec4 = [number, number, number, number] | Float32Array;\nexport type vec8 = [number, number, number, number, number, number, number, number] | Float32Array;\nexport type mat4 =\n | [\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number,\n number\n ]\n | Float32Array;\n\nexport const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\nexport const pow = Math.pow;\n\nexport function acos(x: number) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x: number) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n\n/**\n * 根据比例获直线上的点\n * @param {number} x1 起始点 x\n * @param {number} y1 起始点 y\n * @param {number} x2 结束点 x\n * @param {number} y2 结束点 y\n * @param {number} t 指定比例\n * @return {object} 包含 x, y 的点\n */\nexport function pointAt(\n x1: number | null | undefined,\n y1: number | null | undefined,\n x2: number | null | undefined,\n y2: number | null | undefined,\n t: number\n): {\n x: undefined | number;\n y: undefined | number;\n} {\n let x: number | undefined = x2;\n let y: number | undefined = y2;\n if (typeof x1 === 'number' && typeof x2 === 'number') {\n x = (1 - t) * x1 + t * x2;\n }\n if (typeof y1 === 'number' && typeof y2 === 'number') {\n y = (1 - t) * y1 + t * y2;\n }\n return {\n x,\n y\n };\n}\n\nexport function lengthFromPointToLine(\n point: { x: number; y: number },\n point1: { x: number; y: number },\n point2: { x: number; y: number }\n): number {\n // 面积\n const dir1X = point2.x - point1.x;\n const dir1Y = point2.y - point1.y;\n const dir2X = point.x - point1.x;\n const dir2Y = point.y - point1.y;\n const s = Math.abs(dir1X * dir2Y - dir2X * dir1Y);\n const length = Math.sqrt(dir1X * dir1X + dir1Y * dir1Y);\n return s / length;\n}\n\nexport function crossProduct(dir1: vec2, dir2: vec2): number {\n return dir1[0] * dir2[1] - dir1[1] * dir2[0];\n}\n\nexport function crossProductPoint(dir1: { x: number; y: number }, dir2: { x: number; y: number }): number {\n return dir1.x * dir2.y - dir1.y * dir2.x;\n}\n\nexport function dotProduct(a: number[] | Float32Array, b: number[] | Float32Array): number {\n let ret = 0;\n for (let i = 0; i < a.length; ++i) {\n ret += a[i] * b[i];\n }\n return ret;\n}\n\nexport function fuzzyEqualNumber(a: number, b: number): boolean {\n return abs(a - b) < epsilon;\n}\n\nexport function fuzzyEqualVec(a: vec2, b: vec2): boolean {\n return abs(a[0] - b[0]) + abs(a[1] - b[1]) < epsilon;\n}\n\nexport function fixPrecision(num: number, precision = 10) {\n return Math.round(num * precision) / precision;\n}\n\nexport function getDecimalPlaces(n: number): number {\n const dStr = n.toString().split(/[eE]/);\n const s = (dStr[0].split('.')[1] || '').length - (+dStr[1] || 0);\n return s > 0 ? s : 0;\n}\n\nexport function precisionAdd(a: number, b: number) {\n return fixPrecision(a + b, 10 ** Math.max(getDecimalPlaces(a), getDecimalPlaces(b)));\n}\n\nexport function precisionSub(a: number, b: number) {\n return fixPrecision(a - b, 10 ** Math.max(getDecimalPlaces(a), getDecimalPlaces(b)));\n}\n"]}
|
package/cjs/padding.d.ts
CHANGED
package/cjs/padding.js
CHANGED
|
@@ -12,6 +12,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
12
12
|
|
|
13
13
|
const isValidNumber_1 = __importDefault(require("./common/isValidNumber")), isArray_1 = __importDefault(require("./common/isArray")), isObject_1 = __importDefault(require("./common/isObject"));
|
|
14
14
|
|
|
15
|
+
/**
|
|
16
|
+
* 将 padding 转换为通用的格式([上,右,下,左])
|
|
17
|
+
* @param padding
|
|
18
|
+
* @return [ top, right, bottom, left ]
|
|
19
|
+
*/
|
|
15
20
|
function normalizePadding(padding) {
|
|
16
21
|
if ((0, isValidNumber_1.default)(padding)) return [ padding, padding, padding, padding ];
|
|
17
22
|
if ((0, isArray_1.default)(padding)) {
|
package/cjs/padding.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/padding.ts"],"names":[],"mappings":";;;;;;AAAA,2EAAmD;AACnD,+DAAuC;AACvC,iEAAyC;
|
|
1
|
+
{"version":3,"sources":["../src/padding.ts"],"names":[],"mappings":";;;;;;AAAA,2EAAmD;AACnD,+DAAuC;AACvC,iEAAyC;AASzC;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,OAAqC;IACpE,IAAI,IAAA,uBAAa,EAAC,OAAO,CAAC,EAAE;QAC1B,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;KAC7C;IAED,IAAI,IAAA,iBAAO,EAAC,OAAO,CAAC,EAAE;QACpB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAE9B,IAAI,MAAM,KAAK,CAAC,EAAE;YAChB,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAChC,OAAO,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;SACjE;QAED,IAAI,MAAM,KAAK,CAAC,EAAE;YAChB,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC;YACvC,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;SACrD;QAED,IAAI,MAAM,KAAK,CAAC,EAAE;YAChB,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC;YAC1C,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;SAC9C;QAED,IAAI,MAAM,KAAK,CAAC,EAAE;YAChB,OAAO,OAAO,CAAC;SAChB;KACF;IAED,IAAI,IAAA,kBAAQ,EAAC,OAAO,CAAC,EAAE;QACrB,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,OAAmB,CAAC;QACzE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;KACnC;IAED,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACtB,CAAC;AAlCD,4CAkCC","file":"padding.js","sourcesContent":["import isValidNumber from './common/isValidNumber';\nimport isArray from './common/isArray';\nimport isObject from './common/isObject';\n\nexport type IPadding = {\n top?: number;\n bottom?: number;\n left?: number;\n right?: number;\n};\n\n/**\n * 将 padding 转换为通用的格式([上,右,下,左])\n * @param padding\n * @return [ top, right, bottom, left ]\n */\nexport function normalizePadding(padding: number | number[] | IPadding) {\n if (isValidNumber(padding)) {\n return [padding, padding, padding, padding];\n }\n\n if (isArray(padding)) {\n const length = padding.length;\n\n if (length === 1) {\n const paddingValue = padding[0];\n return [paddingValue, paddingValue, paddingValue, paddingValue];\n }\n\n if (length === 2) {\n const [vertical, horizontal] = padding;\n return [vertical, horizontal, vertical, horizontal];\n }\n\n if (length === 3) {\n const [top, horizontal, bottom] = padding;\n return [top, horizontal, bottom, horizontal];\n }\n\n if (length === 4) {\n return padding;\n }\n }\n\n if (isObject(padding)) {\n const { top = 0, right = 0, bottom = 0, left = 0 } = padding as IPadding;\n return [top, right, bottom, left];\n }\n\n return [0, 0, 0, 0];\n}\n"]}
|
|
@@ -13,5 +13,11 @@ export declare function hoursSetterName(isUTC?: boolean): "setUTCHours" | "setHo
|
|
|
13
13
|
export declare function minutesSetterName(isUTC?: boolean): "setUTCMinutes" | "setMinutes";
|
|
14
14
|
export declare function secondsSetterName(isUTC?: boolean): "setUTCSeconds" | "setSeconds";
|
|
15
15
|
export declare function millisecondsSetterName(isUTC?: boolean): "setUTCMilliseconds" | "setMilliseconds";
|
|
16
|
+
/**
|
|
17
|
+
* 根据时间推断格式化字符串
|
|
18
|
+
* @param value
|
|
19
|
+
* @param isUTC
|
|
20
|
+
* @returns
|
|
21
|
+
*/
|
|
16
22
|
export declare function getFormatFromValue(value: DateLikeType, isUTC?: boolean): "YYYY" | "YYYY-MM" | "YYYY-MM-DD" | "HH" | "HH:mm" | "HH:mm:ss" | "HH:mm:ss SSS";
|
|
17
23
|
export declare function getTimeFormatter(template: string, isUTC?: boolean): (time: DateLikeType) => string;
|
package/cjs/time/formatUtils.js
CHANGED
|
@@ -68,6 +68,12 @@ function millisecondsSetterName(isUTC) {
|
|
|
68
68
|
return isUTC ? "setUTCMilliseconds" : "setMilliseconds";
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
+
/**
|
|
72
|
+
* 根据时间推断格式化字符串
|
|
73
|
+
* @param value
|
|
74
|
+
* @param isUTC
|
|
75
|
+
* @returns
|
|
76
|
+
*/
|
|
71
77
|
function getFormatFromValue(value, isUTC) {
|
|
72
78
|
const date = (0, toDate_1.toDate)(value), M = date[monthGetterName(isUTC)]() + 1, d = date[dateGetterName(isUTC)](), h = date[hoursGetterName(isUTC)](), m = date[minutesGetterName(isUTC)](), s = date[secondsGetterName(isUTC)](), isSecond = 0 === date[millisecondsGetterName(isUTC)](), isMinute = isSecond && 0 === s, isHour = isMinute && 0 === m, isDay = isHour && 0 === h, isMonth = isDay && 1 === d;
|
|
73
79
|
return isMonth && 1 === M ? "YYYY" : isMonth ? "YYYY-MM" : isDay ? "YYYY-MM-DD" : isHour ? "HH" : isMinute ? "HH:mm" : isSecond ? "HH:mm:ss" : "HH:mm:ss SSS";
|
|
@@ -76,6 +82,7 @@ function getFormatFromValue(value, isUTC) {
|
|
|
76
82
|
function getTimeFormatter(template, isUTC) {
|
|
77
83
|
return time => {
|
|
78
84
|
const date = (0, toDate_1.toDate)(time), y = date[fullYearGetterName(isUTC)](), M = date[monthGetterName(isUTC)]() + 1, q = Math.floor((M - 1) / 3) + 1, d = date[dateGetterName(isUTC)](), e = date["get" + (isUTC ? "UTC" : "") + "Day"](), H = date[hoursGetterName(isUTC)](), h = (H - 1) % 12 + 1, m = date[minutesGetterName(isUTC)](), s = date[secondsGetterName(isUTC)](), S = date[millisecondsGetterName(isUTC)]();
|
|
85
|
+
// 月份,周等需要管理管理locale的时间格式化暂时不支持
|
|
79
86
|
return (template || "").replace(/YYYY/g, (0, pad_1.default)(y + "", 4, "0", "left")).replace(/yyyy/g, y + "").replace(/yy/g, y % 100 + "").replace(/Q/g, q + "").replace(/MM/g, (0,
|
|
80
87
|
pad_1.default)(M, 2, "0", "left")).replace(/M/g, M + "").replace(/dd/g, (0, pad_1.default)(d, 2, "0", "left")).replace(/d/g, d + "").replace(/e/g, e + "").replace(/HH/g, (0,
|
|
81
88
|
pad_1.default)(H, 2, "0", "left")).replace(/H/g, H + "").replace(/hh/g, (0, pad_1.default)(h + "", 2, "0", "left")).replace(/h/g, h + "").replace(/mm/g, (0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/time/formatUtils.ts"],"names":[],"mappings":";;;;;;AAAA,wDAAgC;AAEhC,6CAA0C;AAE1C,SAAgB,kBAAkB,CAAC,KAAe;IAChD,OAAO,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC;AAClD,CAAC;AAFD,gDAEC;AAED,SAAgB,eAAe,CAAC,KAAe;IAC7C,OAAO,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC;AAC5C,CAAC;AAFD,0CAEC;AAED,SAAgB,cAAc,CAAC,KAAe;IAC5C,OAAO,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1C,CAAC;AAFD,wCAEC;AAED,SAAgB,eAAe,CAAC,KAAe;IAC7C,OAAO,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC;AAC5C,CAAC;AAFD,0CAEC;AAED,SAAgB,iBAAiB,CAAC,KAAe;IAC/C,OAAO,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC;AAChD,CAAC;AAFD,8CAEC;AAED,SAAgB,iBAAiB,CAAC,KAAe;IAC/C,OAAO,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC;AAChD,CAAC;AAFD,8CAEC;AAED,SAAgB,sBAAsB,CAAC,KAAe;IACpD,OAAO,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,iBAAiB,CAAC;AAC1D,CAAC;AAFD,wDAEC;AAED,SAAgB,kBAAkB,CAAC,KAAe;IAChD,OAAO,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC;AAClD,CAAC;AAFD,gDAEC;AAED,SAAgB,eAAe,CAAC,KAAe;IAC7C,OAAO,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC;AAC5C,CAAC;AAFD,0CAEC;AAED,SAAgB,cAAc,CAAC,KAAe;IAC5C,OAAO,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;AAC1C,CAAC;AAFD,wCAEC;AAED,SAAgB,eAAe,CAAC,KAAe;IAC7C,OAAO,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC;AAC5C,CAAC;AAFD,0CAEC;AAED,SAAgB,iBAAiB,CAAC,KAAe;IAC/C,OAAO,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC;AAChD,CAAC;AAFD,8CAEC;AAED,SAAgB,iBAAiB,CAAC,KAAe;IAC/C,OAAO,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC;AAChD,CAAC;AAFD,8CAEC;AAED,SAAgB,sBAAsB,CAAC,KAAe;IACpD,OAAO,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,iBAAiB,CAAC;AAC1D,CAAC;AAFD,wDAEC;
|
|
1
|
+
{"version":3,"sources":["../src/time/formatUtils.ts"],"names":[],"mappings":"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","file":"formatUtils.js","sourcesContent":["import pad from '../common/pad';\nimport type { DateLikeType } from '../common/toDate';\nimport { toDate } from '../common/toDate';\n\nexport function fullYearGetterName(isUTC?: boolean) {\n return isUTC ? 'getUTCFullYear' : 'getFullYear';\n}\n\nexport function monthGetterName(isUTC?: boolean) {\n return isUTC ? 'getUTCMonth' : 'getMonth';\n}\n\nexport function dateGetterName(isUTC?: boolean) {\n return isUTC ? 'getUTCDate' : 'getDate';\n}\n\nexport function hoursGetterName(isUTC?: boolean) {\n return isUTC ? 'getUTCHours' : 'getHours';\n}\n\nexport function minutesGetterName(isUTC?: boolean) {\n return isUTC ? 'getUTCMinutes' : 'getMinutes';\n}\n\nexport function secondsGetterName(isUTC?: boolean) {\n return isUTC ? 'getUTCSeconds' : 'getSeconds';\n}\n\nexport function millisecondsGetterName(isUTC?: boolean) {\n return isUTC ? 'getUTCMilliseconds' : 'getMilliseconds';\n}\n\nexport function fullYearSetterName(isUTC?: boolean) {\n return isUTC ? 'setUTCFullYear' : 'setFullYear';\n}\n\nexport function monthSetterName(isUTC?: boolean) {\n return isUTC ? 'setUTCMonth' : 'setMonth';\n}\n\nexport function dateSetterName(isUTC?: boolean) {\n return isUTC ? 'setUTCDate' : 'setDate';\n}\n\nexport function hoursSetterName(isUTC?: boolean) {\n return isUTC ? 'setUTCHours' : 'setHours';\n}\n\nexport function minutesSetterName(isUTC?: boolean) {\n return isUTC ? 'setUTCMinutes' : 'setMinutes';\n}\n\nexport function secondsSetterName(isUTC?: boolean) {\n return isUTC ? 'setUTCSeconds' : 'setSeconds';\n}\n\nexport function millisecondsSetterName(isUTC?: boolean) {\n return isUTC ? 'setUTCMilliseconds' : 'setMilliseconds';\n}\n\n/**\n * 根据时间推断格式化字符串\n * @param value\n * @param isUTC\n * @returns\n */\nexport function getFormatFromValue(value: DateLikeType, isUTC?: boolean) {\n const date = toDate(value);\n const M = (date as any)[monthGetterName(isUTC)]() + 1;\n const d = (date as any)[dateGetterName(isUTC)]();\n const h = (date as any)[hoursGetterName(isUTC)]();\n const m = (date as any)[minutesGetterName(isUTC)]();\n const s = (date as any)[secondsGetterName(isUTC)]();\n const S = (date as any)[millisecondsGetterName(isUTC)]();\n\n const isSecond = S === 0;\n const isMinute = isSecond && s === 0;\n const isHour = isMinute && m === 0;\n const isDay = isHour && h === 0;\n const isMonth = isDay && d === 1;\n const isYear = isMonth && M === 1;\n\n if (isYear) {\n return 'YYYY';\n } else if (isMonth) {\n return 'YYYY-MM';\n } else if (isDay) {\n return 'YYYY-MM-DD';\n } else if (isHour) {\n return 'HH';\n } else if (isMinute) {\n return 'HH:mm';\n } else if (isSecond) {\n return 'HH:mm:ss';\n }\n return 'HH:mm:ss SSS';\n}\n\nexport function getTimeFormatter(template: string, isUTC?: boolean) {\n return (time: DateLikeType) => {\n const date = toDate(time);\n const y = date[fullYearGetterName(isUTC)]();\n const M = date[monthGetterName(isUTC)]() + 1;\n const q = Math.floor((M - 1) / 3) + 1;\n const d = date[dateGetterName(isUTC)]();\n const e = date[('get' + (isUTC ? 'UTC' : '') + 'Day') as 'getDay' | 'getUTCDay']();\n const H = date[hoursGetterName(isUTC)]();\n const h = ((H - 1) % 12) + 1;\n const m = date[minutesGetterName(isUTC)]();\n const s = date[secondsGetterName(isUTC)]();\n const S = date[millisecondsGetterName(isUTC)]();\n\n // 月份,周等需要管理管理locale的时间格式化暂时不支持\n return (\n (template || '')\n .replace(/YYYY/g, pad(y + '', 4, '0', 'left'))\n .replace(/yyyy/g, y + '')\n .replace(/yy/g, (y % 100) + '')\n .replace(/Q/g, q + '')\n // .replace(/{MMMM}/g, month[M - 1])\n // .replace(/{MMM}/g, monthAbbr[M - 1])\n .replace(/MM/g, pad(M, 2, '0', 'left'))\n .replace(/M/g, M + '')\n .replace(/dd/g, pad(d, 2, '0', 'left'))\n .replace(/d/g, d + '')\n // .replace(/{eeee}/g, dayOfWeek[e])\n // .replace(/{ee}/g, dayOfWeekAbbr[e])\n .replace(/e/g, e + '')\n .replace(/HH/g, pad(H, 2, '0', 'left'))\n .replace(/H/g, H + '')\n .replace(/hh/g, pad(h + '', 2, '0', 'left'))\n .replace(/h/g, h + '')\n .replace(/mm/g, pad(m, 2, '0', 'left'))\n .replace(/m/g, m + '')\n .replace(/ss/g, pad(s, 2, '0', 'left'))\n .replace(/s/g, s + '')\n .replace(/SSS/g, pad(S, 3, '0', 'left'))\n .replace(/S/g, S + '')\n );\n };\n}\n"]}
|