sass-embedded 1.0.0-beta.5 → 1.0.0-beta.7
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/CHANGELOG.md +18 -0
- package/dist/.gitignore +1 -1
- package/dist/lib/index.js +11 -4
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/src/{embedded-compiler/compiler.js → async-compiler.js} +9 -17
- package/dist/lib/src/async-compiler.js.map +1 -0
- package/dist/lib/src/compile.js +167 -79
- package/dist/lib/src/compile.js.map +1 -1
- package/dist/lib/src/compiler-path.js +18 -0
- package/dist/lib/src/compiler-path.js.map +1 -0
- package/dist/lib/src/{embedded-protocol/utils.js → deprotofy-span.js} +16 -18
- package/dist/lib/src/deprotofy-span.js.map +1 -0
- package/dist/lib/src/{embedded-protocol/dispatcher.js → dispatcher.js} +45 -40
- package/dist/lib/src/dispatcher.js.map +1 -0
- package/dist/lib/src/exception.js +20 -0
- package/dist/lib/src/exception.js.map +1 -0
- package/dist/lib/src/function-registry.js +81 -0
- package/dist/lib/src/function-registry.js.map +1 -0
- package/dist/lib/src/{node-sass/render.js → legacy.js} +45 -39
- package/dist/lib/src/legacy.js.map +1 -0
- package/dist/lib/src/{embedded-protocol/message-transformer.js → message-transformer.js} +2 -2
- package/dist/lib/src/message-transformer.js.map +1 -0
- package/dist/lib/src/{embedded-compiler/packet-transformer.js → packet-transformer.js} +0 -0
- package/dist/lib/src/packet-transformer.js.map +1 -0
- package/dist/lib/src/protofier.js +205 -0
- package/dist/lib/src/protofier.js.map +1 -0
- package/dist/lib/src/{embedded-protocol/request-tracker.js → request-tracker.js} +0 -0
- package/dist/lib/src/request-tracker.js.map +1 -0
- package/dist/lib/src/sync-compiler.js +52 -0
- package/dist/lib/src/sync-compiler.js.map +1 -0
- package/dist/lib/src/{exception/span.js → sync-process/event.js} +2 -2
- package/dist/lib/src/sync-process/event.js.map +1 -0
- package/dist/lib/src/sync-process/index.js +122 -0
- package/dist/lib/src/sync-process/index.js.map +1 -0
- package/dist/lib/src/sync-process/sync-message-port.js +128 -0
- package/dist/lib/src/sync-process/sync-message-port.js.map +1 -0
- package/dist/lib/src/sync-process/worker.js +51 -0
- package/dist/lib/src/sync-process/worker.js.map +1 -0
- package/dist/lib/src/utils.js +43 -1
- package/dist/lib/src/utils.js.map +1 -1
- package/dist/lib/src/value/boolean.js +3 -3
- package/dist/lib/src/value/boolean.js.map +1 -1
- package/dist/lib/src/value/color.js +89 -98
- package/dist/lib/src/value/color.js.map +1 -1
- package/dist/lib/src/value/{value.js → index.js} +5 -1
- package/dist/lib/src/value/index.js.map +1 -0
- package/dist/lib/src/value/list.js +15 -18
- package/dist/lib/src/value/list.js.map +1 -1
- package/dist/lib/src/value/map.js +17 -10
- package/dist/lib/src/value/map.js.map +1 -1
- package/dist/lib/src/value/null.js +2 -2
- package/dist/lib/src/value/number.js +20 -26
- package/dist/lib/src/value/number.js.map +1 -1
- package/dist/lib/src/value/string.js +14 -9
- package/dist/lib/src/value/string.js.map +1 -1
- package/dist/lib/src/value/utils.js +7 -1
- package/dist/lib/src/value/utils.js.map +1 -1
- package/dist/lib/src/vendor/embedded-protocol/embedded_sass_pb.js +1395 -101
- package/dist/lib/src/vendor/embedded-protocol/embedded_sass_pb.js.map +1 -1
- package/dist/package.json +6 -4
- package/dist/tool/utils.js +34 -9
- package/dist/tool/utils.js.map +1 -1
- package/dist/types/compile.d.ts +152 -0
- package/dist/types/exception.d.ts +41 -0
- package/dist/types/importer.d.ts +294 -0
- package/dist/types/index.d.ts +76 -0
- package/dist/types/legacy/exception.d.ts +54 -0
- package/dist/types/legacy/function.d.ts +652 -0
- package/dist/types/legacy/importer.d.ts +168 -0
- package/dist/types/legacy/options.d.ts +642 -0
- package/dist/types/legacy/plugin_this.d.ts +70 -0
- package/dist/types/legacy/render.d.ts +139 -0
- package/dist/types/logger/index.d.ts +94 -0
- package/dist/types/logger/source_location.d.ts +21 -0
- package/dist/types/logger/source_span.d.ts +34 -0
- package/dist/types/options.d.ts +408 -0
- package/dist/types/util/promise_or.d.ts +17 -0
- package/dist/types/value/argument_list.d.ts +47 -0
- package/dist/types/value/boolean.d.ts +29 -0
- package/dist/types/value/color.d.ts +107 -0
- package/dist/types/value/function.d.ts +22 -0
- package/dist/types/value/index.d.ts +173 -0
- package/dist/types/value/list.d.ts +54 -0
- package/dist/types/value/map.d.ts +41 -0
- package/dist/types/value/number.d.ts +305 -0
- package/dist/types/value/string.d.ts +84 -0
- package/package.json +6 -4
- package/dist/lib/index.d.ts +0 -10
- package/dist/lib/src/compile.d.ts +0 -22
- package/dist/lib/src/embedded-compiler/compiler.d.ts +0 -19
- package/dist/lib/src/embedded-compiler/compiler.js.map +0 -1
- package/dist/lib/src/embedded-compiler/packet-transformer.d.ts +0 -34
- package/dist/lib/src/embedded-compiler/packet-transformer.js.map +0 -1
- package/dist/lib/src/embedded-protocol/dispatcher.d.ts +0 -60
- package/dist/lib/src/embedded-protocol/dispatcher.js.map +0 -1
- package/dist/lib/src/embedded-protocol/message-transformer.d.ts +0 -47
- package/dist/lib/src/embedded-protocol/message-transformer.js.map +0 -1
- package/dist/lib/src/embedded-protocol/request-tracker.d.ts +0 -20
- package/dist/lib/src/embedded-protocol/request-tracker.js.map +0 -1
- package/dist/lib/src/embedded-protocol/utils.d.ts +0 -7
- package/dist/lib/src/embedded-protocol/utils.js.map +0 -1
- package/dist/lib/src/exception/exception.d.ts +0 -19
- package/dist/lib/src/exception/exception.js +0 -37
- package/dist/lib/src/exception/exception.js.map +0 -1
- package/dist/lib/src/exception/location.d.ts +0 -11
- package/dist/lib/src/exception/location.js +0 -6
- package/dist/lib/src/exception/location.js.map +0 -1
- package/dist/lib/src/exception/span.d.ts +0 -29
- package/dist/lib/src/exception/span.js.map +0 -1
- package/dist/lib/src/node-sass/render.d.ts +0 -61
- package/dist/lib/src/node-sass/render.js.map +0 -1
- package/dist/lib/src/utils.d.ts +0 -16
- package/dist/lib/src/value/boolean.d.ts +0 -25
- package/dist/lib/src/value/color.d.ts +0 -89
- package/dist/lib/src/value/list.d.ts +0 -41
- package/dist/lib/src/value/map.d.ts +0 -26
- package/dist/lib/src/value/null.d.ts +0 -12
- package/dist/lib/src/value/number.d.ts +0 -189
- package/dist/lib/src/value/string.d.ts +0 -56
- package/dist/lib/src/value/utils.d.ts +0 -44
- package/dist/lib/src/value/value.d.ts +0 -108
- package/dist/lib/src/value/value.js.map +0 -1
- package/dist/lib/src/vendor/embedded-protocol/embedded_sass_pb.d.ts +0 -1
- package/dist/tool/utils.d.ts +0 -32
package/dist/lib/src/utils.js
CHANGED
|
@@ -3,10 +3,28 @@
|
|
|
3
3
|
// MIT-style license that can be found in the LICENSE file or at
|
|
4
4
|
// https://opensource.org/licenses/MIT.
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.withoutExtension = exports.pathToUrlString = exports.valueError = exports.hostError = exports.compilerError = exports.asImmutableList = exports.isNullOrUndefined = void 0;
|
|
6
|
+
exports.putIfAbsent = exports.withoutExtension = exports.pathToUrlString = exports.valueError = exports.hostError = exports.mandatoryError = exports.compilerError = exports.asImmutableList = exports.isNullOrUndefined = exports.catchOr = exports.thenOr = void 0;
|
|
7
7
|
const immutable_1 = require("immutable");
|
|
8
8
|
const p = require("path");
|
|
9
9
|
const url = require("url");
|
|
10
|
+
function thenOr(promiseOrValue, callback) {
|
|
11
|
+
return promiseOrValue instanceof Promise
|
|
12
|
+
? promiseOrValue.then(callback)
|
|
13
|
+
: callback(promiseOrValue);
|
|
14
|
+
}
|
|
15
|
+
exports.thenOr = thenOr;
|
|
16
|
+
function catchOr(promiseOrValueCallback, callback) {
|
|
17
|
+
try {
|
|
18
|
+
const result = promiseOrValueCallback();
|
|
19
|
+
return result instanceof Promise
|
|
20
|
+
? result.catch(callback)
|
|
21
|
+
: result;
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
return callback(error);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.catchOr = catchOr;
|
|
10
28
|
/** Checks for null or undefined. */
|
|
11
29
|
function isNullOrUndefined(object) {
|
|
12
30
|
return object === null || object === undefined;
|
|
@@ -22,6 +40,14 @@ function compilerError(message) {
|
|
|
22
40
|
return Error(`Compiler caused error: ${message}.`);
|
|
23
41
|
}
|
|
24
42
|
exports.compilerError = compilerError;
|
|
43
|
+
/**
|
|
44
|
+
* Returns a `compilerError()` indicating that the given `field` should have
|
|
45
|
+
* been included but was not.
|
|
46
|
+
*/
|
|
47
|
+
function mandatoryError(field) {
|
|
48
|
+
return compilerError(`Missing mandatory field ${field}`);
|
|
49
|
+
}
|
|
50
|
+
exports.mandatoryError = mandatoryError;
|
|
25
51
|
/** Constructs a host-caused Error. */
|
|
26
52
|
function hostError(message) {
|
|
27
53
|
return Error(`Compiler reported error: ${message}.`);
|
|
@@ -46,4 +72,20 @@ function withoutExtension(path) {
|
|
|
46
72
|
return path.substring(0, path.length - extension.length);
|
|
47
73
|
}
|
|
48
74
|
exports.withoutExtension = withoutExtension;
|
|
75
|
+
/**
|
|
76
|
+
* Dart-style utility. See
|
|
77
|
+
* http://go/dart-api/stable/2.8.4/dart-core/Map/putIfAbsent.html.
|
|
78
|
+
*/
|
|
79
|
+
function putIfAbsent(map, key, provider) {
|
|
80
|
+
const val = map.get(key);
|
|
81
|
+
if (val !== undefined) {
|
|
82
|
+
return val;
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
const newVal = provider();
|
|
86
|
+
map.set(key, newVal);
|
|
87
|
+
return newVal;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
exports.putIfAbsent = putIfAbsent;
|
|
49
91
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../lib/src/utils.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;AAEvC,yCAA+B;AAC/B,0BAA0B;AAC1B,2BAA2B;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../lib/src/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.sassFalse = exports.sassTrue = void 0;
|
|
7
7
|
const immutable_1 = require("immutable");
|
|
8
|
-
const
|
|
8
|
+
const index_1 = require("./index");
|
|
9
9
|
const trueHash = (0, immutable_1.hash)(true);
|
|
10
10
|
const falseHash = (0, immutable_1.hash)(false);
|
|
11
|
-
class SassBooleanInternal extends
|
|
11
|
+
class SassBooleanInternal extends index_1.Value {
|
|
12
12
|
constructor(valueInternal) {
|
|
13
13
|
super();
|
|
14
14
|
this.valueInternal = valueInternal;
|
|
@@ -24,7 +24,7 @@ class SassBooleanInternal extends value_1.Value {
|
|
|
24
24
|
return this;
|
|
25
25
|
}
|
|
26
26
|
equals(other) {
|
|
27
|
-
return
|
|
27
|
+
return this === other;
|
|
28
28
|
}
|
|
29
29
|
hashCode() {
|
|
30
30
|
return this.value ? trueHash : falseHash;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boolean.js","sourceRoot":"","sources":["../../../../lib/src/value/boolean.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;AAEvC,yCAA+B;AAE/B,mCAA8B;AAY9B,MAAM,QAAQ,GAAG,IAAA,gBAAI,EAAC,IAAI,CAAC,CAAC;AAC5B,MAAM,SAAS,GAAG,IAAA,gBAAI,EAAC,KAAK,CAAC,CAAC;AAE9B,MAAM,mBAAoB,SAAQ,aAAK;IACrC,YAA6B,aAAsB;QACjD,KAAK,EAAE,CAAC;QADmB,kBAAa,GAAb,aAAa,CAAS;QAEjD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,KAAY;QACjB,OAAO,
|
|
1
|
+
{"version":3,"file":"boolean.js","sourceRoot":"","sources":["../../../../lib/src/value/boolean.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;AAEvC,yCAA+B;AAE/B,mCAA8B;AAY9B,MAAM,QAAQ,GAAG,IAAA,gBAAI,EAAC,IAAI,CAAC,CAAC;AAC5B,MAAM,SAAS,GAAG,IAAA,gBAAI,EAAC,KAAK,CAAC,CAAC;AAE9B,MAAM,mBAAoB,SAAQ,aAAK;IACrC,YAA6B,aAAsB;QACjD,KAAK,EAAE,CAAC;QADmB,kBAAa,GAAb,aAAa,CAAS;QAEjD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,KAAY;QACjB,OAAO,IAAI,KAAK,KAAK,CAAC;IACxB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3C,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;IAC/C,CAAC;CACF;AAED,iDAAiD;AACpC,QAAA,QAAQ,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;AAEtD,kDAAkD;AACrC,QAAA,SAAS,GAAG,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC"}
|
|
@@ -4,79 +4,45 @@
|
|
|
4
4
|
// https://opensource.org/licenses/MIT.
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.SassColor = void 0;
|
|
7
|
-
const
|
|
7
|
+
const index_1 = require("./index");
|
|
8
8
|
const utils_1 = require("./utils");
|
|
9
9
|
const immutable_1 = require("immutable");
|
|
10
10
|
/** A SassScript color. */
|
|
11
|
-
class SassColor extends
|
|
11
|
+
class SassColor extends index_1.Value {
|
|
12
12
|
constructor(color) {
|
|
13
13
|
super();
|
|
14
14
|
if ('red' in color) {
|
|
15
|
-
this.redInternal = color.red;
|
|
16
|
-
this.greenInternal = color.green;
|
|
17
|
-
this.blueInternal = color.blue;
|
|
15
|
+
this.redInternal = (0, utils_1.fuzzyAssertInRange)(Math.round(color.red), 0, 255, 'red');
|
|
16
|
+
this.greenInternal = (0, utils_1.fuzzyAssertInRange)(Math.round(color.green), 0, 255, 'green');
|
|
17
|
+
this.blueInternal = (0, utils_1.fuzzyAssertInRange)(Math.round(color.blue), 0, 255, 'blue');
|
|
18
18
|
}
|
|
19
|
-
else {
|
|
20
|
-
this.hueInternal = color.hue;
|
|
21
|
-
this.saturationInternal = color.saturation;
|
|
22
|
-
this.lightnessInternal = color.lightness;
|
|
19
|
+
else if ('saturation' in color) {
|
|
20
|
+
this.hueInternal = (0, utils_1.positiveMod)(color.hue, 360);
|
|
21
|
+
this.saturationInternal = (0, utils_1.fuzzyAssertInRange)(color.saturation, 0, 100, 'saturation');
|
|
22
|
+
this.lightnessInternal = (0, utils_1.fuzzyAssertInRange)(color.lightness, 0, 100, 'lightness');
|
|
23
23
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
* Creates an HSL color.
|
|
42
|
-
*
|
|
43
|
-
* Throws an error if `saturation` or `lightness` aren't between `0` and
|
|
44
|
-
* `100`, or if `alpha` isn't between `0` and `1`.
|
|
45
|
-
*/
|
|
46
|
-
static hsl(hue, saturation, lightness, alpha) {
|
|
47
|
-
return new SassColor({
|
|
48
|
-
hue: hue % 360,
|
|
49
|
-
saturation: (0, utils_1.fuzzyAssertInRange)(saturation, 0, 100, 'saturation'),
|
|
50
|
-
lightness: (0, utils_1.fuzzyAssertInRange)(lightness, 0, 100, 'lightness'),
|
|
51
|
-
alpha: alpha === undefined ? 1 : (0, utils_1.fuzzyAssertInRange)(alpha, 0, 1, 'alpha'),
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Creates an HWB color.
|
|
56
|
-
*
|
|
57
|
-
* Throws an error if `whiteness` or `blackness` aren't between `0` and `100`,
|
|
58
|
-
* or if `alpha` isn't between `0` and `1`.
|
|
59
|
-
*/
|
|
60
|
-
static hwb(hue, whiteness, blackness, alpha) {
|
|
61
|
-
// From https://www.w3.org/TR/css-color-4/#hwb-to-rgb
|
|
62
|
-
const scaledHue = (hue % 360) / 360;
|
|
63
|
-
let scaledWhiteness = (0, utils_1.fuzzyAssertInRange)(whiteness, 0, 100, 'whiteness') / 100;
|
|
64
|
-
let scaledBlackness = (0, utils_1.fuzzyAssertInRange)(blackness, 0, 100, 'blackness') / 100;
|
|
65
|
-
const sum = scaledWhiteness + scaledBlackness;
|
|
66
|
-
if (sum > 1) {
|
|
67
|
-
scaledWhiteness /= sum;
|
|
68
|
-
scaledBlackness /= sum;
|
|
69
|
-
}
|
|
70
|
-
const factor = 1 - scaledWhiteness - scaledBlackness;
|
|
71
|
-
function toRgb(hue) {
|
|
72
|
-
const channel = hueToRgb(0, 1, hue) * factor + scaledWhiteness;
|
|
73
|
-
return (0, utils_1.fuzzyRound)(channel * 255);
|
|
24
|
+
else {
|
|
25
|
+
// From https://www.w3.org/TR/css-color-4/#hwb-to-rgb
|
|
26
|
+
const scaledHue = (0, utils_1.positiveMod)(color.hue, 360) / 360;
|
|
27
|
+
let scaledWhiteness = (0, utils_1.fuzzyAssertInRange)(color.whiteness, 0, 100, 'whiteness') / 100;
|
|
28
|
+
let scaledBlackness = (0, utils_1.fuzzyAssertInRange)(color.blackness, 0, 100, 'blackness') / 100;
|
|
29
|
+
const sum = scaledWhiteness + scaledBlackness;
|
|
30
|
+
if (sum > 1) {
|
|
31
|
+
scaledWhiteness /= sum;
|
|
32
|
+
scaledBlackness /= sum;
|
|
33
|
+
}
|
|
34
|
+
// Because HWB is (currently) used much less frequently than HSL or RGB, we
|
|
35
|
+
// don't cache its values because we expect the memory overhead of doing so
|
|
36
|
+
// to outweigh the cost of recalculating it on access. Instead, we eagerly
|
|
37
|
+
// convert it to RGB and then convert back if necessary.
|
|
38
|
+
this.redInternal = hwbToRgb(scaledHue + 1 / 3, scaledWhiteness, scaledBlackness);
|
|
39
|
+
this.greenInternal = hwbToRgb(scaledHue, scaledWhiteness, scaledBlackness);
|
|
40
|
+
this.blueInternal = hwbToRgb(scaledHue - 1 / 3, scaledWhiteness, scaledBlackness);
|
|
74
41
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
return SassColor.rgb(toRgb(scaledHue + 1 / 3), toRgb(scaledHue), toRgb(scaledHue - 1 / 3), alpha);
|
|
42
|
+
this.alphaInternal =
|
|
43
|
+
color.alpha === undefined
|
|
44
|
+
? 1
|
|
45
|
+
: (0, utils_1.fuzzyAssertInRange)(color.alpha, 0, 1, 'alpha');
|
|
80
46
|
}
|
|
81
47
|
/** `this`'s red channel. */
|
|
82
48
|
get red() {
|
|
@@ -138,41 +104,60 @@ class SassColor extends value_1.Value {
|
|
|
138
104
|
get alpha() {
|
|
139
105
|
return this.alphaInternal;
|
|
140
106
|
}
|
|
141
|
-
assertColor() {
|
|
142
|
-
return this;
|
|
143
|
-
}
|
|
144
107
|
/**
|
|
145
|
-
*
|
|
146
|
-
*
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
var _a, _b, _c, _d;
|
|
150
|
-
return SassColor.rgb((_a = options.red) !== null && _a !== void 0 ? _a : this.red, (_b = options.green) !== null && _b !== void 0 ? _b : this.green, (_c = options.blue) !== null && _c !== void 0 ? _c : this.blue, (_d = options.alpha) !== null && _d !== void 0 ? _d : this.alpha);
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* Returns a copy of `this` with its HSL values changed to `hue`,
|
|
154
|
-
* `saturation`, `lightness`, and/or `alpha`.
|
|
108
|
+
* Whether `this` has already calculated the HSL components for the color.
|
|
109
|
+
*
|
|
110
|
+
* This is an internal property that's not an official part of Sass's JS API,
|
|
111
|
+
* and may be broken at any time.
|
|
155
112
|
*/
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
return SassColor.hsl((_a = options.hue) !== null && _a !== void 0 ? _a : this.hue, (_b = options.saturation) !== null && _b !== void 0 ? _b : this.saturation, (_c = options.lightness) !== null && _c !== void 0 ? _c : this.lightness, (_d = options.alpha) !== null && _d !== void 0 ? _d : this.alpha);
|
|
113
|
+
get hasCalculatedHsl() {
|
|
114
|
+
return !!this.hueInternal;
|
|
159
115
|
}
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
* `blackness`, and/or `alpha`.
|
|
163
|
-
*/
|
|
164
|
-
changeHwb(options) {
|
|
165
|
-
var _a, _b, _c, _d;
|
|
166
|
-
return SassColor.hwb((_a = options.hue) !== null && _a !== void 0 ? _a : this.hue, (_b = options.whiteness) !== null && _b !== void 0 ? _b : this.whiteness, (_c = options.blackness) !== null && _c !== void 0 ? _c : this.blackness, (_d = options.alpha) !== null && _d !== void 0 ? _d : this.alpha);
|
|
116
|
+
assertColor() {
|
|
117
|
+
return this;
|
|
167
118
|
}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
119
|
+
change(color) {
|
|
120
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
121
|
+
if ('whiteness' in color || 'blackness' in color) {
|
|
122
|
+
return new SassColor({
|
|
123
|
+
hue: (_a = color.hue) !== null && _a !== void 0 ? _a : this.hue,
|
|
124
|
+
whiteness: (_b = color.whiteness) !== null && _b !== void 0 ? _b : this.whiteness,
|
|
125
|
+
blackness: (_c = color.blackness) !== null && _c !== void 0 ? _c : this.blackness,
|
|
126
|
+
alpha: (_d = color.alpha) !== null && _d !== void 0 ? _d : this.alpha,
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
else if ('hue' in color ||
|
|
130
|
+
'saturation' in color ||
|
|
131
|
+
'lightness' in color) {
|
|
132
|
+
// Tell TypeScript this isn't a Partial<HwbColor>.
|
|
133
|
+
const hsl = color;
|
|
134
|
+
return new SassColor({
|
|
135
|
+
hue: (_e = hsl.hue) !== null && _e !== void 0 ? _e : this.hue,
|
|
136
|
+
saturation: (_f = hsl.saturation) !== null && _f !== void 0 ? _f : this.saturation,
|
|
137
|
+
lightness: (_g = hsl.lightness) !== null && _g !== void 0 ? _g : this.lightness,
|
|
138
|
+
alpha: (_h = hsl.alpha) !== null && _h !== void 0 ? _h : this.alpha,
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
else if ('red' in color ||
|
|
142
|
+
'green' in color ||
|
|
143
|
+
'blue' in color ||
|
|
144
|
+
this.redInternal) {
|
|
145
|
+
const rgb = color;
|
|
146
|
+
return new SassColor({
|
|
147
|
+
red: (_j = rgb.red) !== null && _j !== void 0 ? _j : this.red,
|
|
148
|
+
green: (_k = rgb.green) !== null && _k !== void 0 ? _k : this.green,
|
|
149
|
+
blue: (_l = rgb.blue) !== null && _l !== void 0 ? _l : this.blue,
|
|
150
|
+
alpha: (_m = rgb.alpha) !== null && _m !== void 0 ? _m : this.alpha,
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
return new SassColor({
|
|
155
|
+
hue: this.hue,
|
|
156
|
+
saturation: this.saturation,
|
|
157
|
+
lightness: this.lightness,
|
|
158
|
+
alpha: (_o = color.alpha) !== null && _o !== void 0 ? _o : this.alpha,
|
|
159
|
+
});
|
|
160
|
+
}
|
|
176
161
|
}
|
|
177
162
|
equals(other) {
|
|
178
163
|
return (other instanceof SassColor &&
|
|
@@ -206,13 +191,13 @@ class SassColor extends value_1.Value {
|
|
|
206
191
|
this.hueInternal = 0;
|
|
207
192
|
}
|
|
208
193
|
else if (max === scaledRed) {
|
|
209
|
-
this.hueInternal = ((60 * (scaledGreen - scaledBlue)) / delta
|
|
194
|
+
this.hueInternal = (0, utils_1.positiveMod)((60 * (scaledGreen - scaledBlue)) / delta, 360);
|
|
210
195
|
}
|
|
211
196
|
else if (max === scaledGreen) {
|
|
212
|
-
this.hueInternal = (120 + (60 * (scaledBlue - scaledRed)) / delta
|
|
197
|
+
this.hueInternal = (0, utils_1.positiveMod)(120 + (60 * (scaledBlue - scaledRed)) / delta, 360);
|
|
213
198
|
}
|
|
214
199
|
else if (max === scaledBlue) {
|
|
215
|
-
this.hueInternal = (240 + (60 * (scaledRed - scaledGreen)) / delta
|
|
200
|
+
this.hueInternal = (0, utils_1.positiveMod)(240 + (60 * (scaledRed - scaledGreen)) / delta, 360);
|
|
216
201
|
}
|
|
217
202
|
this.lightnessInternal = 50 * (max + min);
|
|
218
203
|
if (max === min) {
|
|
@@ -245,6 +230,12 @@ class SassColor extends value_1.Value {
|
|
|
245
230
|
}
|
|
246
231
|
}
|
|
247
232
|
exports.SassColor = SassColor;
|
|
233
|
+
// A helper for converting HWB colors to RGB.
|
|
234
|
+
function hwbToRgb(hue, scaledWhiteness, scaledBlackness) {
|
|
235
|
+
const factor = 1 - scaledWhiteness - scaledBlackness;
|
|
236
|
+
const channel = hueToRgb(0, 1, hue) * factor + scaledWhiteness;
|
|
237
|
+
return (0, utils_1.fuzzyRound)(channel * 255);
|
|
238
|
+
}
|
|
248
239
|
// An algorithm from the CSS3 spec: http://www.w3.org/TR/css3-color/#hsl-color.
|
|
249
240
|
function hueToRgb(m1, m2, hue) {
|
|
250
241
|
if (hue < 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color.js","sourceRoot":"","sources":["../../../../lib/src/value/color.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;AAEvC,mCAA8B;AAC9B,
|
|
1
|
+
{"version":3,"file":"color.js","sourceRoot":"","sources":["../../../../lib/src/value/color.ts"],"names":[],"mappings":"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"}
|
|
@@ -75,6 +75,10 @@ class Value {
|
|
|
75
75
|
}
|
|
76
76
|
return index < 0 ? this.lengthAsList + index : index - 1;
|
|
77
77
|
}
|
|
78
|
+
/** Returns `this.asList.get(index)`. */
|
|
79
|
+
get(index) {
|
|
80
|
+
return index < 1 && index >= -1 ? this : undefined;
|
|
81
|
+
}
|
|
78
82
|
/**
|
|
79
83
|
* Casts `this` to `SassBoolean`; throws if `this` isn't a boolean.
|
|
80
84
|
*
|
|
@@ -140,4 +144,4 @@ class Value {
|
|
|
140
144
|
}
|
|
141
145
|
}
|
|
142
146
|
exports.Value = Value;
|
|
143
|
-
//# sourceMappingURL=
|
|
147
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/src/value/index.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;AAEvC,yCAA4C;AAQ5C,oCAAoC;AAEpC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAsB,KAAK;IACzB,uCAAuC;IACvC,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0EAA0E;IAC1E,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IAED,wBAAwB;IACxB,IAAI,MAAM;QACR,OAAO,IAAA,gBAAI,EAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,0CAA0C;IAC1C,IAAI,SAAS;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+CAA+C;IAC/C,IAAI,WAAW;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED,yDAAyD;IACzD,0BAA0B;IAC1B,IAAc,YAAY;QACxB,OAAO,CAAC,CAAC;IACX,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,oBAAoB,CAAC,SAAgB,EAAE,IAAa;QAClD,MAAM,KAAK,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC,SAAS,EAAE,CAAC;QACnD,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,MAAM,KAAK,CAAC,0BAA0B,CAAC,CAAC;SACzC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE;YACvC,MAAM,IAAA,kBAAU,EACd,iBAAiB,SAAS,oBAAoB,IAAI,CAAC,YAAY,YAAY,EAC3E,IAAI,CACL,CAAC;SACH;QACD,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;IAC3D,CAAC;IAED,wCAAwC;IACxC,GAAG,CAAC,KAAa;QACf,OAAO,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACrD,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAC,IAAa;QACzB,MAAM,IAAA,kBAAU,EAAC,GAAG,IAAI,mBAAmB,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,IAAa;QACvB,MAAM,IAAA,kBAAU,EAAC,GAAG,IAAI,iBAAiB,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;OAMG;IACH,cAAc,CAAC,IAAa;QAC1B,MAAM,IAAA,kBAAU,EAAC,GAAG,IAAI,8BAA8B,EAAE,IAAI,CAAC,CAAC;QAC9D,uDAAuD;IACzD,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,IAAa;QACrB,MAAM,IAAA,kBAAU,EAAC,GAAG,IAAI,eAAe,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,IAAa;QACxB,MAAM,IAAA,kBAAU,EAAC,GAAG,IAAI,kBAAkB,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,IAAa;QACxB,MAAM,IAAA,kBAAU,EAAC,GAAG,IAAI,kBAAkB,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;CAUF;AAjJD,sBAiJC"}
|
|
@@ -5,22 +5,24 @@
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.SassList = void 0;
|
|
7
7
|
const immutable_1 = require("immutable");
|
|
8
|
-
const
|
|
8
|
+
const index_1 = require("./index");
|
|
9
9
|
const map_1 = require("./map");
|
|
10
10
|
const utils_1 = require("../utils");
|
|
11
11
|
// All empty SassList and SassMaps should have the same hashcode, so this caches
|
|
12
12
|
// the value.
|
|
13
13
|
const emptyListHashCode = (0, immutable_1.hash)([]);
|
|
14
14
|
/** A SassScript list. */
|
|
15
|
-
class SassList extends
|
|
16
|
-
|
|
17
|
-
* Returns a list that contains `contents`, with the given `separator` and
|
|
18
|
-
* `brackets`.
|
|
19
|
-
*/
|
|
20
|
-
constructor(contents, options) {
|
|
15
|
+
class SassList extends index_1.Value {
|
|
16
|
+
constructor(contentsOrOptions, options) {
|
|
21
17
|
var _a;
|
|
22
18
|
super();
|
|
23
|
-
|
|
19
|
+
if ((0, immutable_1.isList)(contentsOrOptions) || Array.isArray(contentsOrOptions)) {
|
|
20
|
+
this.contentsInternal = (0, utils_1.asImmutableList)(contentsOrOptions);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
this.contentsInternal = (0, immutable_1.List)();
|
|
24
|
+
options = contentsOrOptions;
|
|
25
|
+
}
|
|
24
26
|
if (this.contentsInternal.size > 1 && (options === null || options === void 0 ? void 0 : options.separator) === null) {
|
|
25
27
|
throw Error('Non-null separator required for SassList with more than one element.');
|
|
26
28
|
}
|
|
@@ -28,14 +30,6 @@ class SassList extends value_1.Value {
|
|
|
28
30
|
(options === null || options === void 0 ? void 0 : options.separator) === undefined ? ',' : options.separator;
|
|
29
31
|
this.hasBracketsInternal = (_a = options === null || options === void 0 ? void 0 : options.brackets) !== null && _a !== void 0 ? _a : false;
|
|
30
32
|
}
|
|
31
|
-
/** Returns an empty list with the given `separator` and `brackets`. */
|
|
32
|
-
static empty(options) {
|
|
33
|
-
var _a;
|
|
34
|
-
return new SassList([], {
|
|
35
|
-
separator: (_a = options === null || options === void 0 ? void 0 : options.separator) !== null && _a !== void 0 ? _a : null,
|
|
36
|
-
brackets: options === null || options === void 0 ? void 0 : options.brackets,
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
33
|
get asList() {
|
|
40
34
|
return this.contentsInternal;
|
|
41
35
|
}
|
|
@@ -50,12 +44,15 @@ class SassList extends value_1.Value {
|
|
|
50
44
|
get lengthAsList() {
|
|
51
45
|
return this.contentsInternal.size;
|
|
52
46
|
}
|
|
47
|
+
get(index) {
|
|
48
|
+
return this.contentsInternal.get(index);
|
|
49
|
+
}
|
|
53
50
|
assertList() {
|
|
54
51
|
return this;
|
|
55
52
|
}
|
|
56
53
|
assertMap(name) {
|
|
57
54
|
if (this.contentsInternal.isEmpty())
|
|
58
|
-
return map_1.SassMap
|
|
55
|
+
return new map_1.SassMap();
|
|
59
56
|
throw (0, utils_1.valueError)(`${this} is not a map`, name);
|
|
60
57
|
}
|
|
61
58
|
/**
|
|
@@ -64,7 +61,7 @@ class SassList extends value_1.Value {
|
|
|
64
61
|
* Otherwise, returns null.
|
|
65
62
|
*/
|
|
66
63
|
tryMap() {
|
|
67
|
-
return this.contentsInternal.isEmpty() ?
|
|
64
|
+
return this.contentsInternal.isEmpty() ? new map_1.SassMap() : null;
|
|
68
65
|
}
|
|
69
66
|
equals(other) {
|
|
70
67
|
if ((other instanceof SassList || other instanceof map_1.SassMap) &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../lib/src/value/list.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;AAEvC,
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../lib/src/value/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,18 +5,14 @@
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.SassMap = void 0;
|
|
7
7
|
const immutable_1 = require("immutable");
|
|
8
|
-
const
|
|
8
|
+
const index_1 = require("./index");
|
|
9
9
|
const list_1 = require("./list");
|
|
10
10
|
/** A SassScript map */
|
|
11
|
-
class SassMap extends
|
|
11
|
+
class SassMap extends index_1.Value {
|
|
12
12
|
/** Returns a map that contains `contents`. */
|
|
13
13
|
constructor(contents) {
|
|
14
14
|
super();
|
|
15
|
-
this.contentsInternal = contents;
|
|
16
|
-
}
|
|
17
|
-
/** Returns an empty map. */
|
|
18
|
-
static empty() {
|
|
19
|
-
return new SassMap((0, immutable_1.OrderedMap)());
|
|
15
|
+
this.contentsInternal = contents !== null && contents !== void 0 ? contents : (0, immutable_1.OrderedMap)();
|
|
20
16
|
}
|
|
21
17
|
/** The separator for `this`'s contents as a list. */
|
|
22
18
|
get separator() {
|
|
@@ -33,18 +29,29 @@ class SassMap extends value_1.Value {
|
|
|
33
29
|
get asList() {
|
|
34
30
|
const list = [];
|
|
35
31
|
for (const entry of this.contents.entries()) {
|
|
36
|
-
list.push(new list_1.SassList(entry));
|
|
32
|
+
list.push(new list_1.SassList(entry, { separator: ' ' }));
|
|
37
33
|
}
|
|
38
34
|
return (0, immutable_1.List)(list);
|
|
39
35
|
}
|
|
40
36
|
get lengthAsList() {
|
|
41
37
|
return this.contentsInternal.size;
|
|
42
38
|
}
|
|
39
|
+
get(indexOrKey) {
|
|
40
|
+
if (indexOrKey instanceof index_1.Value) {
|
|
41
|
+
return this.contentsInternal.get(indexOrKey);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
const entry = this.contentsInternal
|
|
45
|
+
.entrySeq()
|
|
46
|
+
.get(Math.floor(indexOrKey));
|
|
47
|
+
return entry ? new list_1.SassList(entry, { separator: ' ' }) : undefined;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
43
50
|
assertMap() {
|
|
44
51
|
return this;
|
|
45
52
|
}
|
|
46
53
|
tryMap() {
|
|
47
|
-
return this
|
|
54
|
+
return this;
|
|
48
55
|
}
|
|
49
56
|
equals(other) {
|
|
50
57
|
if (other instanceof list_1.SassList &&
|
|
@@ -66,7 +73,7 @@ class SassMap extends value_1.Value {
|
|
|
66
73
|
}
|
|
67
74
|
hashCode() {
|
|
68
75
|
return this.contents.isEmpty()
|
|
69
|
-
? list_1.SassList
|
|
76
|
+
? new list_1.SassList().hashCode()
|
|
70
77
|
: // SassMaps with the same key-value pairs are considered equal
|
|
71
78
|
// regardless of key-value order, so this hash must be order
|
|
72
79
|
// independent. Since OrderedMap.hashCode() encodes the key-value order,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../../../lib/src/value/map.ts"],"names":[],"mappings":";AAAA,uEAAuE;AACvE,gEAAgE;AAChE,uCAAuC;;;AAEvC,yCAA2C;AAE3C,mCAA8B;AAC9B,iCAA+C;AAE/C,uBAAuB;AACvB,MAAa,OAAQ,SAAQ,aAAK;IAGhC,8CAA8C;IAC9C,YAAY,
|
|
1
|
+
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../../../lib/src/value/map.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.sassNull = void 0;
|
|
7
7
|
const immutable_1 = require("immutable");
|
|
8
|
-
const
|
|
8
|
+
const index_1 = require("./index");
|
|
9
9
|
const hashCode = (0, immutable_1.hash)(null);
|
|
10
10
|
// SassScript null. Cannot be constructed; exists only as the exported
|
|
11
11
|
// singleton.
|
|
12
|
-
class SassNull extends
|
|
12
|
+
class SassNull extends index_1.Value {
|
|
13
13
|
constructor() {
|
|
14
14
|
super();
|
|
15
15
|
Object.freeze(this);
|