aboutsummaryrefslogtreecommitdiff
path: root/node_modules/num2fraction
diff options
context:
space:
mode:
authorDimitri Staessens <dimitri@ouroboros.rocks>2019-10-06 21:37:45 +0200
committerDimitri Staessens <dimitri@ouroboros.rocks>2019-10-06 21:37:45 +0200
commit3c51c3be85bb0d1bdb87ea0d6632f1c256912f27 (patch)
treec7ccc8279b12c4f7bdbbb4270d617e48f51722e4 /node_modules/num2fraction
parent412c104bebc507bea9c94fd53b5bdc4b64cbfe31 (diff)
downloadwebsite-3c51c3be85bb0d1bdb87ea0d6632f1c256912f27.tar.gz
website-3c51c3be85bb0d1bdb87ea0d6632f1c256912f27.zip
build: Add some required modules for node
Diffstat (limited to 'node_modules/num2fraction')
-rw-r--r--node_modules/num2fraction/.editorconfig14
-rw-r--r--node_modules/num2fraction/.npmignore8
-rw-r--r--node_modules/num2fraction/LICENSE22
-rw-r--r--node_modules/num2fraction/README.md87
-rw-r--r--node_modules/num2fraction/index.js48
-rw-r--r--node_modules/num2fraction/package.json60
6 files changed, 239 insertions, 0 deletions
diff --git a/node_modules/num2fraction/.editorconfig b/node_modules/num2fraction/.editorconfig
new file mode 100644
index 0000000..4a12c11
--- /dev/null
+++ b/node_modules/num2fraction/.editorconfig
@@ -0,0 +1,14 @@
+# editorconfig.org
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 2
+end_of_line = lf
+trim_trailing_whitespace = true
+insert_final_newline = true
+
+
+[*.md]
+trim_trailing_whitespace = false
diff --git a/node_modules/num2fraction/.npmignore b/node_modules/num2fraction/.npmignore
new file mode 100644
index 0000000..a8d3284
--- /dev/null
+++ b/node_modules/num2fraction/.npmignore
@@ -0,0 +1,8 @@
+.gitignore
+.travis.yml
+
+node_modules/
+test/
+
+gulpfile.js
+Gruntfile.js
diff --git a/node_modules/num2fraction/LICENSE b/node_modules/num2fraction/LICENSE
new file mode 100644
index 0000000..9d10f01
--- /dev/null
+++ b/node_modules/num2fraction/LICENSE
@@ -0,0 +1,22 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 PostCSS
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
diff --git a/node_modules/num2fraction/README.md b/node_modules/num2fraction/README.md
new file mode 100644
index 0000000..aa47197
--- /dev/null
+++ b/node_modules/num2fraction/README.md
@@ -0,0 +1,87 @@
+# num2fraction
+
+[![Build Status](https://travis-ci.org/yisibl/num2fraction.svg)](https://travis-ci.org/yisibl/num2fraction)
+[![NPM Downloads](https://img.shields.io/npm/dm/num2fraction.svg?style=flat)](https://www.npmjs.com/package/num2fraction)
+[![NPM Version](http://img.shields.io/npm/v/num2fraction.svg?style=flat)](https://www.npmjs.com/package/num2fraction)
+[![License](https://img.shields.io/npm/l/num2fraction.svg?style=flat)](http://opensource.org/licenses/MIT)
+
+> Converting Number to Fraction with Node.js.
+
+## Installation
+
+```console
+npm install num2fraction
+```
+
+## Usage
+
+```js
+var π = Math.PI
+var n2f = require('num2fraction')
+ console.log(n2f(0)) // => 0
+ console.log(n2f(.2)) // => 1/5
+ console.log(n2f(1.1)) // => 11/10
+ console.log(n2f(1.2)) // => 6/5
+ console.log(n2f(1.3)) // => 13/10
+ console.log(n2f(1.4)) // => 7/5
+ console.log(n2f(1.5)) // => 3/2
+ console.log(n2f(2)) // => 2/1
+ console.log(n2f(2.1)) // => 21/10
+ console.log(n2f(3)) // => 3/1
+ console.log(n2f(2.555)) // => 511/200
+ console.log(n2f(8.36)) // => 209/25
+ console.log(n2f('3em')) // => 3/1
+ console.log(n2f('1.5px')) // => 3/2
+ console.log(n2f(7 / 9) // => 7/9
+ console.log(n2f(8 / 9) // => 8/9
+ console.log(n2f(512 / 999) // => 512/999
+ console.log(n2f((2 * π / 3) / π) // => 2/3
+ console.log(n2f((8 * 5) / (4 / 2)) // => 20/1
+```
+
+## Example
+
+Opera [old versions](http://www.opera.com/docs/specs/presto28/css/o-vendor/) support the non-standard `-o-min-device-pixel-ratio` or `-o-max-device-pixel-ratio` in CSS media queries.
+
+```css
+@media
+ only screen and (-webkit-min-device-pixel-ratio: 2),
+ only screen and ( min--moz-device-pixel-ratio: 2),
+ only screen and ( -o-min-device-pixel-ratio: 2/1), /* Opera */
+ only screen and ( min-device-pixel-ratio: 2),
+ only screen and ( min-resolution: 192dpi), /* fallback */
+ only screen and ( min-resolution: 2dppx) {
+
+}
+```
+
+## Changelog
+
+### v1.2.2
+
+* \+ Remove: Debug log message.
+
+### v1.2.1
+
+* \+ Fix: 0 must be converted to a string.
+
+### v1.2.0
+
+* \+ Fix: Accomodate rounding errors. (by @jamestalmage)
+* \+ Fix: The negative sign should be on numerator. (by @jamestalmage)
+
+### v1.1.0
+
+* \+ Use more precise (not fixed) precision factor for the calculation
+
+### v1.0.1
+
+* \- Remove "ci.testling.com"
+
+### V1.0.0
+
+> First release.
+
+## License
+
+[MIT](LICENSE)
diff --git a/node_modules/num2fraction/index.js b/node_modules/num2fraction/index.js
new file mode 100644
index 0000000..659deca
--- /dev/null
+++ b/node_modules/num2fraction/index.js
@@ -0,0 +1,48 @@
+'use strict'
+
+var abs = Math.abs
+var round = Math.round
+
+function almostEq(a, b) {
+ return abs(a - b) <= 9.5367432e-7
+}
+
+//最大公约数 Greatest Common Divisor
+function GCD(a, b) {
+ if (almostEq(b, 0)) return a
+ return GCD(b, a % b)
+}
+
+function findPrecision(n) {
+ var e = 1
+
+ while (!almostEq(round(n * e) / e, n)) {
+ e *= 10
+ }
+
+ return e
+}
+
+function num2fraction(num) {
+ if (num === 0 || num === '0') return '0'
+
+ if (typeof num === 'string') {
+ num = parseFloat(num)
+ }
+
+
+ var precision = findPrecision(num) //精确度
+ var number = num * precision
+ var gcd = abs(GCD(number, precision))
+
+ //分子
+ var numerator = number / gcd
+ //分母
+ var denominator = precision / gcd
+
+ //分数
+ return round(numerator) + '/' + round(denominator)
+}
+
+module.exports = num2fraction
+
diff --git a/node_modules/num2fraction/package.json b/node_modules/num2fraction/package.json
new file mode 100644
index 0000000..68d46c6
--- /dev/null
+++ b/node_modules/num2fraction/package.json
@@ -0,0 +1,60 @@
+{
+ "_from": "num2fraction@^1.2.2",
+ "_id": "num2fraction@1.2.2",
+ "_inBundle": false,
+ "_integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=",
+ "_location": "/num2fraction",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "num2fraction@^1.2.2",
+ "name": "num2fraction",
+ "escapedName": "num2fraction",
+ "rawSpec": "^1.2.2",
+ "saveSpec": null,
+ "fetchSpec": "^1.2.2"
+ },
+ "_requiredBy": [
+ "/autoprefixer"
+ ],
+ "_resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
+ "_shasum": "6f682b6a027a4e9ddfa4564cd2589d1d4e669ede",
+ "_spec": "num2fraction@^1.2.2",
+ "_where": "/home/dstaesse/git/website/node_modules/autoprefixer",
+ "author": {
+ "name": "yisi",
+ "email": "yiorsi@gmail.com",
+ "url": "http://iyunlu.com/view"
+ },
+ "bugs": {
+ "url": "https://github.com/yisibl/num2fraction/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Convert number to fraction",
+ "devDependencies": {
+ "tape": "^3.0.0"
+ },
+ "homepage": "https://github.com/yisibl/num2fraction#readme",
+ "keywords": [
+ "fraction",
+ "number",
+ "math",
+ "maths",
+ "arithmetic",
+ "gcd",
+ "rational"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "num2fraction",
+ "repository": {
+ "type": "git",
+ "url": "git+ssh://git@github.com/yisibl/num2fraction.git"
+ },
+ "scripts": {
+ "test": "tape test/*.js"
+ },
+ "version": "1.2.2"
+}