less 4.4.2 → 4.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/lessc +67 -58
- package/dist/less.js +14496 -11811
- package/dist/less.min.js +4 -4
- package/dist/less.min.js.map +1 -1
- package/lib/less/constants.js +5 -7
- package/lib/less/contexts.js +71 -56
- package/lib/less/data/colors.js +150 -153
- package/lib/less/data/index.js +4 -7
- package/lib/less/data/unit-conversions.js +2 -5
- package/lib/less/default-options.js +52 -23
- package/lib/less/deprecation.js +67 -0
- package/lib/less/environment/abstract-file-manager.js +62 -50
- package/lib/less/environment/abstract-plugin-loader.js +69 -46
- package/lib/less/environment/environment-api.ts +21 -0
- package/lib/less/environment/environment.js +34 -30
- package/lib/less/environment/file-manager-api.ts +77 -0
- package/lib/less/functions/boolean.js +13 -13
- package/lib/less/functions/color-blending.js +39 -31
- package/lib/less/functions/color.js +153 -137
- package/lib/less/functions/data-uri.js +73 -64
- package/lib/less/functions/default.js +9 -11
- package/lib/less/functions/function-caller.js +35 -34
- package/lib/less/functions/function-registry.js +16 -17
- package/lib/less/functions/index.js +33 -33
- package/lib/less/functions/list.js +88 -75
- package/lib/less/functions/math-helper.js +8 -11
- package/lib/less/functions/math.js +21 -21
- package/lib/less/functions/number.js +42 -53
- package/lib/less/functions/string.js +18 -22
- package/lib/less/functions/style.js +21 -20
- package/lib/less/functions/svg.js +83 -82
- package/lib/less/functions/types.js +28 -32
- package/lib/less/import-manager.js +73 -64
- package/lib/less/index.js +65 -65
- package/lib/less/less-error.js +65 -46
- package/lib/less/logger.js +11 -14
- package/lib/less/parse-tree.js +94 -38
- package/lib/less/parse.js +44 -44
- package/lib/less/parser/parser-input.js +152 -131
- package/lib/less/parser/parser.js +866 -672
- package/lib/less/plugin-manager.js +57 -46
- package/lib/less/render.js +17 -23
- package/lib/less/source-map-builder.js +52 -43
- package/lib/less/source-map-output.js +57 -44
- package/lib/less/transform-tree.js +40 -30
- package/lib/less/tree/anonymous.js +52 -28
- package/lib/less/tree/assignment.js +44 -27
- package/lib/less/tree/atrule-syntax.js +4 -6
- package/lib/less/tree/atrule.js +247 -140
- package/lib/less/tree/attribute.js +55 -24
- package/lib/less/tree/call.js +70 -42
- package/lib/less/tree/color.js +194 -145
- package/lib/less/tree/combinator.js +31 -21
- package/lib/less/tree/comment.js +44 -23
- package/lib/less/tree/condition.js +61 -36
- package/lib/less/tree/container.js +90 -34
- package/lib/less/tree/debug-info.js +53 -11
- package/lib/less/tree/declaration.js +97 -52
- package/lib/less/tree/detached-ruleset.js +42 -24
- package/lib/less/tree/dimension.js +127 -71
- package/lib/less/tree/element.js +82 -52
- package/lib/less/tree/expression.js +75 -50
- package/lib/less/tree/extend.js +71 -42
- package/lib/less/tree/import.js +184 -110
- package/lib/less/tree/index.js +52 -81
- package/lib/less/tree/javascript.js +43 -32
- package/lib/less/tree/js-eval-node.js +46 -32
- package/lib/less/tree/keyword.js +25 -17
- package/lib/less/tree/media.js +77 -35
- package/lib/less/tree/merge-rules.js +47 -0
- package/lib/less/tree/mixin-call.js +181 -98
- package/lib/less/tree/mixin-definition.js +211 -117
- package/lib/less/tree/namespace-value.js +63 -44
- package/lib/less/tree/negative.js +34 -21
- package/lib/less/tree/nested-at-rule.js +149 -66
- package/lib/less/tree/node.js +225 -90
- package/lib/less/tree/operation.js +59 -34
- package/lib/less/tree/paren.js +34 -17
- package/lib/less/tree/property.js +66 -35
- package/lib/less/tree/query-in-parens.js +52 -60
- package/lib/less/tree/quoted.js +93 -44
- package/lib/less/tree/ruleset.js +632 -318
- package/lib/less/tree/selector.js +151 -77
- package/lib/less/tree/unicode-descriptor.js +14 -12
- package/lib/less/tree/unit.js +111 -63
- package/lib/less/tree/url.js +62 -38
- package/lib/less/tree/value.js +50 -34
- package/lib/less/tree/variable-call.js +47 -30
- package/lib/less/tree/variable.js +53 -31
- package/lib/less/utils.js +44 -47
- package/lib/less/visitors/extend-visitor.js +233 -172
- package/lib/less/visitors/import-sequencer.js +24 -24
- package/lib/less/visitors/import-visitor.js +62 -52
- package/lib/less/visitors/index.js +14 -17
- package/lib/less/visitors/join-selector-visitor.js +40 -37
- package/lib/less/visitors/set-tree-visibility-visitor.js +32 -18
- package/lib/less/visitors/to-css-visitor.js +135 -128
- package/lib/less/visitors/visitor.js +60 -45
- package/lib/less-browser/add-default-options.js +23 -13
- package/lib/less-browser/bootstrap.js +23 -17
- package/lib/less-browser/browser.js +24 -21
- package/lib/less-browser/cache.js +17 -19
- package/lib/less-browser/error-reporting.js +52 -44
- package/lib/less-browser/file-manager.js +52 -42
- package/lib/less-browser/image-size.js +12 -12
- package/lib/less-browser/index.js +131 -105
- package/lib/less-browser/log-listener.js +30 -31
- package/lib/less-browser/plugin-loader.js +10 -10
- package/lib/less-browser/utils.js +19 -21
- package/lib/less-node/environment.js +32 -8
- package/lib/less-node/file-manager.js +62 -45
- package/lib/less-node/fs.js +11 -8
- package/lib/less-node/image-size.js +40 -31
- package/lib/less-node/index.js +28 -19
- package/lib/less-node/lessc-helper.js +28 -28
- package/lib/less-node/plugin-loader.js +35 -27
- package/lib/less-node/url-file-manager.js +33 -31
- package/package.json +31 -19
- package/.eslintignore +0 -6
- package/.eslintrc.js +0 -63
- package/Gruntfile.js +0 -404
- package/bower.json +0 -22
- package/lib/less/constants.js.map +0 -1
- package/lib/less/contexts.js.map +0 -1
- package/lib/less/data/colors.js.map +0 -1
- package/lib/less/data/index.js.map +0 -1
- package/lib/less/data/unit-conversions.js.map +0 -1
- package/lib/less/default-options.js.map +0 -1
- package/lib/less/environment/abstract-file-manager.js.map +0 -1
- package/lib/less/environment/abstract-plugin-loader.js.map +0 -1
- package/lib/less/environment/environment-api.js +0 -3
- package/lib/less/environment/environment-api.js.map +0 -1
- package/lib/less/environment/environment.js.map +0 -1
- package/lib/less/environment/file-manager-api.js +0 -3
- package/lib/less/environment/file-manager-api.js.map +0 -1
- package/lib/less/functions/boolean.js.map +0 -1
- package/lib/less/functions/color-blending.js.map +0 -1
- package/lib/less/functions/color.js.map +0 -1
- package/lib/less/functions/data-uri.js.map +0 -1
- package/lib/less/functions/default.js.map +0 -1
- package/lib/less/functions/function-caller.js.map +0 -1
- package/lib/less/functions/function-registry.js.map +0 -1
- package/lib/less/functions/index.js.map +0 -1
- package/lib/less/functions/list.js.map +0 -1
- package/lib/less/functions/math-helper.js.map +0 -1
- package/lib/less/functions/math.js.map +0 -1
- package/lib/less/functions/number.js.map +0 -1
- package/lib/less/functions/string.js.map +0 -1
- package/lib/less/functions/style.js.map +0 -1
- package/lib/less/functions/svg.js.map +0 -1
- package/lib/less/functions/types.js.map +0 -1
- package/lib/less/import-manager.js.map +0 -1
- package/lib/less/index.js.map +0 -1
- package/lib/less/less-error.js.map +0 -1
- package/lib/less/logger.js.map +0 -1
- package/lib/less/parse-tree.js.map +0 -1
- package/lib/less/parse.js.map +0 -1
- package/lib/less/parser/chunker.js +0 -148
- package/lib/less/parser/chunker.js.map +0 -1
- package/lib/less/parser/parser-input.js.map +0 -1
- package/lib/less/parser/parser.js.map +0 -1
- package/lib/less/plugin-manager.js.map +0 -1
- package/lib/less/render.js.map +0 -1
- package/lib/less/source-map-builder.js.map +0 -1
- package/lib/less/source-map-output.js.map +0 -1
- package/lib/less/transform-tree.js.map +0 -1
- package/lib/less/tree/anonymous.js.map +0 -1
- package/lib/less/tree/assignment.js.map +0 -1
- package/lib/less/tree/atrule-syntax.js.map +0 -1
- package/lib/less/tree/atrule.js.map +0 -1
- package/lib/less/tree/attribute.js.map +0 -1
- package/lib/less/tree/call.js.map +0 -1
- package/lib/less/tree/color.js.map +0 -1
- package/lib/less/tree/combinator.js.map +0 -1
- package/lib/less/tree/comment.js.map +0 -1
- package/lib/less/tree/condition.js.map +0 -1
- package/lib/less/tree/container.js.map +0 -1
- package/lib/less/tree/debug-info.js.map +0 -1
- package/lib/less/tree/declaration.js.map +0 -1
- package/lib/less/tree/detached-ruleset.js.map +0 -1
- package/lib/less/tree/dimension.js.map +0 -1
- package/lib/less/tree/element.js.map +0 -1
- package/lib/less/tree/expression.js.map +0 -1
- package/lib/less/tree/extend.js.map +0 -1
- package/lib/less/tree/import.js.map +0 -1
- package/lib/less/tree/index.js.map +0 -1
- package/lib/less/tree/javascript.js.map +0 -1
- package/lib/less/tree/js-eval-node.js.map +0 -1
- package/lib/less/tree/keyword.js.map +0 -1
- package/lib/less/tree/media.js.map +0 -1
- package/lib/less/tree/mixin-call.js.map +0 -1
- package/lib/less/tree/mixin-definition.js.map +0 -1
- package/lib/less/tree/namespace-value.js.map +0 -1
- package/lib/less/tree/negative.js.map +0 -1
- package/lib/less/tree/nested-at-rule.js.map +0 -1
- package/lib/less/tree/node.js.map +0 -1
- package/lib/less/tree/operation.js.map +0 -1
- package/lib/less/tree/paren.js.map +0 -1
- package/lib/less/tree/property.js.map +0 -1
- package/lib/less/tree/query-in-parens.js.map +0 -1
- package/lib/less/tree/quoted.js.map +0 -1
- package/lib/less/tree/ruleset.js.map +0 -1
- package/lib/less/tree/selector.js.map +0 -1
- package/lib/less/tree/unicode-descriptor.js.map +0 -1
- package/lib/less/tree/unit.js.map +0 -1
- package/lib/less/tree/url.js.map +0 -1
- package/lib/less/tree/value.js.map +0 -1
- package/lib/less/tree/variable-call.js.map +0 -1
- package/lib/less/tree/variable.js.map +0 -1
- package/lib/less/utils.js.map +0 -1
- package/lib/less/visitors/extend-visitor.js.map +0 -1
- package/lib/less/visitors/import-sequencer.js.map +0 -1
- package/lib/less/visitors/import-visitor.js.map +0 -1
- package/lib/less/visitors/index.js.map +0 -1
- package/lib/less/visitors/join-selector-visitor.js.map +0 -1
- package/lib/less/visitors/set-tree-visibility-visitor.js.map +0 -1
- package/lib/less/visitors/to-css-visitor.js.map +0 -1
- package/lib/less/visitors/visitor.js.map +0 -1
- package/lib/less-browser/add-default-options.js.map +0 -1
- package/lib/less-browser/bootstrap.js.map +0 -1
- package/lib/less-browser/browser.js.map +0 -1
- package/lib/less-browser/cache.js.map +0 -1
- package/lib/less-browser/error-reporting.js.map +0 -1
- package/lib/less-browser/file-manager.js.map +0 -1
- package/lib/less-browser/image-size.js.map +0 -1
- package/lib/less-browser/index.js.map +0 -1
- package/lib/less-browser/log-listener.js.map +0 -1
- package/lib/less-browser/plugin-loader.js.map +0 -1
- package/lib/less-browser/utils.js.map +0 -1
- package/lib/less-node/environment.js.map +0 -1
- package/lib/less-node/file-manager.js.map +0 -1
- package/lib/less-node/fs.js.map +0 -1
- package/lib/less-node/image-size.js.map +0 -1
- package/lib/less-node/index.js.map +0 -1
- package/lib/less-node/lessc-helper.js.map +0 -1
- package/lib/less-node/plugin-loader.js.map +0 -1
- package/lib/less-node/url-file-manager.js.map +0 -1
- package/test/.eslintrc.json +0 -9
- package/test/README.md +0 -3
- package/test/browser/common.js +0 -230
- package/test/browser/css/global-vars/simple.css +0 -3
- package/test/browser/css/modify-vars/simple.css +0 -8
- package/test/browser/css/plugin/plugin.css +0 -3
- package/test/browser/css/postProcessor/postProcessor.css +0 -4
- package/test/browser/css/relative-urls/urls.css +0 -36
- package/test/browser/css/rewrite-urls/urls.css +0 -36
- package/test/browser/css/rootpath/urls.css +0 -35
- package/test/browser/css/rootpath-relative/urls.css +0 -35
- package/test/browser/css/rootpath-rewrite-urls/urls.css +0 -35
- package/test/browser/css/urls.css +0 -54
- package/test/browser/generator/benchmark.config.js +0 -50
- package/test/browser/generator/generate.js +0 -78
- package/test/browser/generator/runner.config.js +0 -188
- package/test/browser/generator/runner.js +0 -2
- package/test/browser/generator/template.js +0 -93
- package/test/browser/generator/utils.js +0 -14
- package/test/browser/less/console-errors/test-error.less +0 -3
- package/test/browser/less/console-errors/test-error.txt +0 -2
- package/test/browser/less/errors/image-height-error.less +0 -3
- package/test/browser/less/errors/image-height-error.txt +0 -4
- package/test/browser/less/errors/image-size-error.less +0 -3
- package/test/browser/less/errors/image-size-error.txt +0 -4
- package/test/browser/less/errors/image-width-error.less +0 -3
- package/test/browser/less/errors/image-width-error.txt +0 -4
- package/test/browser/less/global-vars/simple.less +0 -3
- package/test/browser/less/imports/urls.less +0 -4
- package/test/browser/less/imports/urls2.less +0 -4
- package/test/browser/less/modify-vars/imports/simple2.less +0 -4
- package/test/browser/less/modify-vars/simple.less +0 -8
- package/test/browser/less/nested-gradient-with-svg-gradient/mixin-consumer.less +0 -5
- package/test/browser/less/nested-gradient-with-svg-gradient/svg-gradient-mixin.less +0 -15
- package/test/browser/less/plugin/plugin.js +0 -4
- package/test/browser/less/plugin/plugin.less +0 -4
- package/test/browser/less/postProcessor/postProcessor.less +0 -4
- package/test/browser/less/relative-urls/urls.less +0 -34
- package/test/browser/less/rewrite-urls/urls.less +0 -34
- package/test/browser/less/rootpath/urls.less +0 -33
- package/test/browser/less/rootpath-relative/urls.less +0 -33
- package/test/browser/less/rootpath-rewrite-urls/urls.less +0 -33
- package/test/browser/less/urls.less +0 -62
- package/test/browser/runner-VisitorPlugin-options.js +0 -3
- package/test/browser/runner-VisitorPlugin.js +0 -3
- package/test/browser/runner-browser-options.js +0 -51
- package/test/browser/runner-browser-spec.js +0 -12
- package/test/browser/runner-console-errors.js +0 -5
- package/test/browser/runner-errors-options.js +0 -6
- package/test/browser/runner-errors-spec.js +0 -3
- package/test/browser/runner-filemanagerPlugin-options.js +0 -5
- package/test/browser/runner-filemanagerPlugin.js +0 -3
- package/test/browser/runner-global-vars-options.js +0 -7
- package/test/browser/runner-global-vars-spec.js +0 -3
- package/test/browser/runner-legacy-options.js +0 -6
- package/test/browser/runner-legacy-spec.js +0 -3
- package/test/browser/runner-main-options.js +0 -17
- package/test/browser/runner-main-spec.js +0 -7
- package/test/browser/runner-modify-vars-options.js +0 -5
- package/test/browser/runner-modify-vars-spec.js +0 -33
- package/test/browser/runner-no-js-errors-options.js +0 -4
- package/test/browser/runner-no-js-errors-spec.js +0 -3
- package/test/browser/runner-postProcessorPlugin-options.js +0 -3
- package/test/browser/runner-postProcessorPlugin.js +0 -3
- package/test/browser/runner-preProcessorPlugin-options.js +0 -3
- package/test/browser/runner-preProcessorPlugin.js +0 -3
- package/test/browser/runner-production-options.js +0 -3
- package/test/browser/runner-production-spec.js +0 -5
- package/test/browser/runner-relative-urls-options.js +0 -3
- package/test/browser/runner-relative-urls-spec.js +0 -3
- package/test/browser/runner-rewrite-urls-options.js +0 -3
- package/test/browser/runner-rewrite-urls-spec.js +0 -3
- package/test/browser/runner-rootpath-options.js +0 -3
- package/test/browser/runner-rootpath-relative-options.js +0 -4
- package/test/browser/runner-rootpath-relative-spec.js +0 -3
- package/test/browser/runner-rootpath-rewrite-urls-options.js +0 -4
- package/test/browser/runner-rootpath-rewrite-urls-spec.js +0 -3
- package/test/browser/runner-rootpath-spec.js +0 -3
- package/test/browser/runner-strict-units-options.js +0 -5
- package/test/browser/runner-strict-units-spec.js +0 -3
- package/test/index.js +0 -112
- package/test/less-test.js +0 -625
- package/test/mocha-playwright/runner.js +0 -210
- package/test/modify-vars.js +0 -28
- package/test/plugins/filemanager/index.js +0 -19
- package/test/plugins/postprocess/index.js +0 -14
- package/test/plugins/preprocess/index.js +0 -19
- package/test/plugins/visitor/index.js +0 -24
- package/test/sourcemaps/basic.json +0 -1
- package/test/sourcemaps/custom-props.json +0 -1
- package/test/sourcemaps/index.html +0 -17
- package/test/sourcemaps-disable-annotation/basic.json +0 -1
- package/test/sourcemaps-variable-selector/basic.json +0 -1
- package/test/test-es6.ts +0 -17
- package/tsconfig.build.json +0 -7
- package/tsconfig.json +0 -21
|
@@ -1,14 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import {addDataAttr} from './utils.js';
|
|
2
|
+
import browser from './browser.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @param {Window} window
|
|
6
|
+
* @param {Record<string, *>} options
|
|
7
|
+
*/
|
|
8
|
+
export default (window, options) => {
|
|
9
|
+
|
|
7
10
|
// use options from the current script tag data attribues
|
|
8
|
-
|
|
11
|
+
addDataAttr(options, browser.currentScript(window));
|
|
12
|
+
|
|
9
13
|
if (options.isFileProtocol === undefined) {
|
|
10
14
|
options.isFileProtocol = /^(file|(chrome|safari)(-extension)?|resource|qrc|app):/.test(window.location.protocol);
|
|
11
15
|
}
|
|
16
|
+
|
|
12
17
|
// Load styles asynchronously (default: false)
|
|
13
18
|
//
|
|
14
19
|
// This is set to `false` by default, so that the body
|
|
@@ -17,27 +22,32 @@ exports.default = (function (window, options) {
|
|
|
17
22
|
//
|
|
18
23
|
options.async = options.async || false;
|
|
19
24
|
options.fileAsync = options.fileAsync || false;
|
|
25
|
+
|
|
20
26
|
// Interval between watch polls
|
|
21
27
|
options.poll = options.poll || (options.isFileProtocol ? 1000 : 1500);
|
|
28
|
+
|
|
22
29
|
options.env = options.env || (window.location.hostname == '127.0.0.1' ||
|
|
23
|
-
window.location.hostname == '0.0.0.0'
|
|
30
|
+
window.location.hostname == '0.0.0.0' ||
|
|
24
31
|
window.location.hostname == 'localhost' ||
|
|
25
32
|
(window.location.port &&
|
|
26
|
-
window.location.port.length > 0)
|
|
27
|
-
options.isFileProtocol
|
|
33
|
+
window.location.port.length > 0) ||
|
|
34
|
+
options.isFileProtocol ? 'development'
|
|
28
35
|
: 'production');
|
|
29
|
-
|
|
36
|
+
|
|
37
|
+
const dumpLineNumbers = /!dumpLineNumbers:(comments|mediaquery|all)/.exec(window.location.hash);
|
|
30
38
|
if (dumpLineNumbers) {
|
|
31
39
|
options.dumpLineNumbers = dumpLineNumbers[1];
|
|
32
40
|
}
|
|
41
|
+
|
|
33
42
|
if (options.useFileCache === undefined) {
|
|
34
43
|
options.useFileCache = true;
|
|
35
44
|
}
|
|
45
|
+
|
|
36
46
|
if (options.onReady === undefined) {
|
|
37
47
|
options.onReady = true;
|
|
38
48
|
}
|
|
49
|
+
|
|
39
50
|
if (options.relativeUrls) {
|
|
40
51
|
options.rewriteUrls = 'all';
|
|
41
52
|
}
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=add-default-options.js.map
|
|
53
|
+
};
|
|
@@ -1,33 +1,38 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
var tslib_1 = require("tslib");
|
|
4
1
|
/**
|
|
5
2
|
* Kicks off less and compiles any stylesheets
|
|
6
3
|
* used in the browser distributed version of less
|
|
7
4
|
* to kick-start less using the browser api
|
|
8
5
|
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
import defaultOptions from '../less/default-options.js';
|
|
7
|
+
import addDefaultOptions from './add-default-options.js';
|
|
8
|
+
import root from './index.js';
|
|
9
|
+
|
|
10
|
+
const options = defaultOptions();
|
|
11
|
+
|
|
13
12
|
if (window.less) {
|
|
14
|
-
for (
|
|
13
|
+
for (const key in window.less) {
|
|
15
14
|
if (Object.prototype.hasOwnProperty.call(window.less, key)) {
|
|
16
15
|
options[key] = window.less[key];
|
|
17
16
|
}
|
|
18
17
|
}
|
|
19
18
|
}
|
|
20
|
-
(
|
|
19
|
+
addDefaultOptions(window, options);
|
|
20
|
+
|
|
21
21
|
options.plugins = options.plugins || [];
|
|
22
|
+
|
|
22
23
|
if (window.LESS_PLUGINS) {
|
|
23
24
|
options.plugins = options.plugins.concat(window.LESS_PLUGINS);
|
|
24
25
|
}
|
|
25
|
-
|
|
26
|
-
|
|
26
|
+
|
|
27
|
+
const less = root(window, options);
|
|
28
|
+
export default less;
|
|
29
|
+
|
|
27
30
|
window.less = less;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
|
|
32
|
+
let css;
|
|
33
|
+
let head;
|
|
34
|
+
let style;
|
|
35
|
+
|
|
31
36
|
// Always restore page visibility
|
|
32
37
|
function resolveOrReject(data) {
|
|
33
38
|
if (data.filename) {
|
|
@@ -37,6 +42,7 @@ function resolveOrReject(data) {
|
|
|
37
42
|
head.removeChild(style);
|
|
38
43
|
}
|
|
39
44
|
}
|
|
45
|
+
|
|
40
46
|
if (options.onReady) {
|
|
41
47
|
if (/!watch/.test(window.location.hash)) {
|
|
42
48
|
less.watch();
|
|
@@ -46,16 +52,16 @@ if (options.onReady) {
|
|
|
46
52
|
css = 'body { display: none !important }';
|
|
47
53
|
head = document.head || document.getElementsByTagName('head')[0];
|
|
48
54
|
style = document.createElement('style');
|
|
55
|
+
|
|
49
56
|
style.type = 'text/css';
|
|
50
57
|
if (style.styleSheet) {
|
|
51
58
|
style.styleSheet.cssText = css;
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
59
|
+
} else {
|
|
54
60
|
style.appendChild(document.createTextNode(css));
|
|
55
61
|
}
|
|
62
|
+
|
|
56
63
|
head.appendChild(style);
|
|
57
64
|
}
|
|
58
65
|
less.registerStylesheetsImmediately();
|
|
59
66
|
less.pageLoadFinished = less.refresh(less.env === 'development').then(resolveOrReject, resolveOrReject);
|
|
60
67
|
}
|
|
61
|
-
//# sourceMappingURL=bootstrap.js.map
|
|
@@ -1,62 +1,65 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var utils = tslib_1.__importStar(require("./utils"));
|
|
5
|
-
exports.default = {
|
|
1
|
+
import * as utils from './utils.js';
|
|
2
|
+
|
|
3
|
+
export default {
|
|
6
4
|
createCSS: function (document, styles, sheet) {
|
|
7
5
|
// Strip the query-string
|
|
8
|
-
|
|
6
|
+
const href = sheet.href || '';
|
|
7
|
+
|
|
9
8
|
// If there is no title set, use the filename, minus the extension
|
|
10
|
-
|
|
9
|
+
const id = `less:${sheet.title || utils.extractId(href)}`;
|
|
10
|
+
|
|
11
11
|
// If this has already been inserted into the DOM, we may need to replace it
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
const oldStyleNode = document.getElementById(id);
|
|
13
|
+
let keepOldStyleNode = false;
|
|
14
|
+
|
|
14
15
|
// Create a new stylesheet node for insertion or (if necessary) replacement
|
|
15
|
-
|
|
16
|
+
const styleNode = document.createElement('style');
|
|
16
17
|
styleNode.setAttribute('type', 'text/css');
|
|
17
18
|
if (sheet.media) {
|
|
18
19
|
styleNode.setAttribute('media', sheet.media);
|
|
19
20
|
}
|
|
20
21
|
styleNode.id = id;
|
|
22
|
+
|
|
21
23
|
if (!styleNode.styleSheet) {
|
|
22
24
|
styleNode.appendChild(document.createTextNode(styles));
|
|
25
|
+
|
|
23
26
|
// If new contents match contents of oldStyleNode, don't replace oldStyleNode
|
|
24
27
|
keepOldStyleNode = (oldStyleNode !== null && oldStyleNode.childNodes.length > 0 && styleNode.childNodes.length > 0 &&
|
|
25
28
|
oldStyleNode.firstChild.nodeValue === styleNode.firstChild.nodeValue);
|
|
26
29
|
}
|
|
27
|
-
|
|
30
|
+
|
|
31
|
+
const head = document.getElementsByTagName('head')[0];
|
|
32
|
+
|
|
28
33
|
// If there is no oldStyleNode, just append; otherwise, only append if we need
|
|
29
34
|
// to replace oldStyleNode with an updated stylesheet
|
|
30
35
|
if (oldStyleNode === null || keepOldStyleNode === false) {
|
|
31
|
-
|
|
36
|
+
const nextEl = sheet && sheet.nextSibling || null;
|
|
32
37
|
if (nextEl) {
|
|
33
38
|
nextEl.parentNode.insertBefore(styleNode, nextEl);
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
39
|
+
} else {
|
|
36
40
|
head.appendChild(styleNode);
|
|
37
41
|
}
|
|
38
42
|
}
|
|
39
43
|
if (oldStyleNode && keepOldStyleNode === false) {
|
|
40
44
|
oldStyleNode.parentNode.removeChild(oldStyleNode);
|
|
41
45
|
}
|
|
46
|
+
|
|
42
47
|
// For IE.
|
|
43
48
|
// This needs to happen *after* the style element is added to the DOM, otherwise IE 7 and 8 may crash.
|
|
44
49
|
// See http://social.msdn.microsoft.com/Forums/en-US/7e081b65-878a-4c22-8e68-c10d39c2ed32/internet-explorer-crashes-appending-style-element-to-head
|
|
45
50
|
if (styleNode.styleSheet) {
|
|
46
51
|
try {
|
|
47
52
|
styleNode.styleSheet.cssText = styles;
|
|
48
|
-
}
|
|
49
|
-
catch (e) {
|
|
53
|
+
} catch (e) {
|
|
50
54
|
throw new Error('Couldn\'t reassign styleSheet.cssText.');
|
|
51
55
|
}
|
|
52
56
|
}
|
|
53
57
|
},
|
|
54
|
-
currentScript: function
|
|
55
|
-
|
|
56
|
-
return document.currentScript || (
|
|
57
|
-
|
|
58
|
+
currentScript: function(window) {
|
|
59
|
+
const document = window.document;
|
|
60
|
+
return document.currentScript || (() => {
|
|
61
|
+
const scripts = document.getElementsByTagName('script');
|
|
58
62
|
return scripts[scripts.length - 1];
|
|
59
63
|
})();
|
|
60
64
|
}
|
|
61
65
|
};
|
|
62
|
-
//# sourceMappingURL=browser.js.map
|
|
@@ -1,37 +1,36 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// Cache system is a bit outdated and could do with work
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
|
|
3
|
+
export default (window, options, logger) => {
|
|
4
|
+
let cache = null;
|
|
6
5
|
if (options.env !== 'development') {
|
|
7
6
|
try {
|
|
8
7
|
cache = (typeof window.localStorage === 'undefined') ? null : window.localStorage;
|
|
9
|
-
}
|
|
10
|
-
catch (_) { }
|
|
8
|
+
} catch (_) {}
|
|
11
9
|
}
|
|
12
10
|
return {
|
|
13
|
-
setCSS: function
|
|
11
|
+
setCSS: function(path, lastModified, modifyVars, styles) {
|
|
14
12
|
if (cache) {
|
|
15
|
-
logger.info(
|
|
13
|
+
logger.info(`saving ${path} to cache.`);
|
|
16
14
|
try {
|
|
17
15
|
cache.setItem(path, styles);
|
|
18
|
-
cache.setItem(
|
|
16
|
+
cache.setItem(`${path}:timestamp`, lastModified);
|
|
19
17
|
if (modifyVars) {
|
|
20
|
-
cache.setItem(
|
|
18
|
+
cache.setItem(`${path}:vars`, JSON.stringify(modifyVars));
|
|
21
19
|
}
|
|
22
|
-
}
|
|
23
|
-
catch (e) {
|
|
20
|
+
} catch (e) {
|
|
24
21
|
// TODO - could do with adding more robust error handling
|
|
25
|
-
logger.error(
|
|
22
|
+
logger.error(`failed to save "${path}" to local storage for caching.`);
|
|
26
23
|
}
|
|
27
24
|
}
|
|
28
25
|
},
|
|
29
|
-
getCSS: function
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
26
|
+
getCSS: function(path, webInfo, modifyVars) {
|
|
27
|
+
const css = cache && cache.getItem(path);
|
|
28
|
+
const timestamp = cache && cache.getItem(`${path}:timestamp`);
|
|
29
|
+
let vars = cache && cache.getItem(`${path}:vars`);
|
|
30
|
+
|
|
33
31
|
modifyVars = modifyVars || {};
|
|
34
32
|
vars = vars || '{}'; // if not set, treat as the JSON representation of an empty object
|
|
33
|
+
|
|
35
34
|
if (timestamp && webInfo.lastModified &&
|
|
36
35
|
(new Date(webInfo.lastModified).valueOf() ===
|
|
37
36
|
new Date(timestamp).valueOf()) &&
|
|
@@ -41,5 +40,4 @@ exports.default = (function (window, options, logger) {
|
|
|
41
40
|
}
|
|
42
41
|
}
|
|
43
42
|
};
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=cache.js.map
|
|
43
|
+
};
|
|
@@ -1,41 +1,45 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
exports.default = (function (window, less, options) {
|
|
1
|
+
import * as utils from './utils.js';
|
|
2
|
+
import browser from './browser.js';
|
|
3
|
+
|
|
4
|
+
export default (window, less, options) => {
|
|
5
|
+
|
|
7
6
|
function errorHTML(e, rootHref) {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
7
|
+
const id = `less-error-message:${utils.extractId(rootHref || '')}`;
|
|
8
|
+
const template = '<li><label>{line}</label><pre class="{class}">{content}</pre></li>';
|
|
9
|
+
const elem = window.document.createElement('div');
|
|
10
|
+
let timer;
|
|
11
|
+
let content;
|
|
12
|
+
const errors = [];
|
|
13
|
+
const filename = e.filename || rootHref;
|
|
14
|
+
const filenameNoPath = filename.match(/([^/]+(\?.*)?)$/)[1];
|
|
15
|
+
|
|
16
|
+
elem.id = id;
|
|
17
17
|
elem.className = 'less-error-message';
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
|
|
19
|
+
content = `<h3>${e.type || 'Syntax'}Error: ${e.message || 'There is an error in your .less file'}` +
|
|
20
|
+
`</h3><p>in <a href="${filename}">${filenameNoPath}</a> `;
|
|
21
|
+
|
|
22
|
+
const errorline = (e, i, classname) => {
|
|
21
23
|
if (e.extract[i] !== undefined) {
|
|
22
24
|
errors.push(template.replace(/\{line\}/, (parseInt(e.line, 10) || 0) + (i - 1))
|
|
23
25
|
.replace(/\{class\}/, classname)
|
|
24
26
|
.replace(/\{content\}/, e.extract[i]));
|
|
25
27
|
}
|
|
26
28
|
};
|
|
29
|
+
|
|
27
30
|
if (e.line) {
|
|
28
31
|
errorline(e, 0, '');
|
|
29
32
|
errorline(e, 1, 'line');
|
|
30
33
|
errorline(e, 2, '');
|
|
31
|
-
content +=
|
|
34
|
+
content += `on line ${e.line}, column ${e.column + 1}:</p><ul>${errors.join('')}</ul>`;
|
|
32
35
|
}
|
|
33
36
|
if (e.stack && (e.extract || options.logLevel >= 4)) {
|
|
34
|
-
content +=
|
|
37
|
+
content += `<br/>Stack Trace</br />${e.stack.split('\n').slice(1).join('<br/>')}`;
|
|
35
38
|
}
|
|
36
39
|
elem.innerHTML = content;
|
|
40
|
+
|
|
37
41
|
// CSS for error messages
|
|
38
|
-
|
|
42
|
+
browser.createCSS(window.document, [
|
|
39
43
|
'.less-error-message ul, .less-error-message li {',
|
|
40
44
|
'list-style-type: none;',
|
|
41
45
|
'margin-right: 15px;',
|
|
@@ -73,6 +77,7 @@ exports.default = (function (window, less, options) {
|
|
|
73
77
|
'border-bottom: 1px dashed red;',
|
|
74
78
|
'}'
|
|
75
79
|
].join('\n'), { title: 'error-message' });
|
|
80
|
+
|
|
76
81
|
elem.style.cssText = [
|
|
77
82
|
'font-family: Arial, sans-serif',
|
|
78
83
|
'border: 1px solid #e00',
|
|
@@ -84,15 +89,15 @@ exports.default = (function (window, less, options) {
|
|
|
84
89
|
'padding: 15px',
|
|
85
90
|
'margin-bottom: 15px'
|
|
86
91
|
].join(';');
|
|
92
|
+
|
|
87
93
|
if (options.env === 'development') {
|
|
88
|
-
timer = setInterval(
|
|
89
|
-
|
|
90
|
-
|
|
94
|
+
timer = setInterval(() => {
|
|
95
|
+
const document = window.document;
|
|
96
|
+
const body = document.body;
|
|
91
97
|
if (body) {
|
|
92
98
|
if (document.getElementById(id)) {
|
|
93
99
|
body.replaceChild(elem, document.getElementById(id));
|
|
94
|
-
}
|
|
95
|
-
else {
|
|
100
|
+
} else {
|
|
96
101
|
body.insertBefore(elem, body.firstChild);
|
|
97
102
|
}
|
|
98
103
|
clearInterval(timer);
|
|
@@ -100,63 +105,66 @@ exports.default = (function (window, less, options) {
|
|
|
100
105
|
}, 10);
|
|
101
106
|
}
|
|
102
107
|
}
|
|
108
|
+
|
|
103
109
|
function removeErrorHTML(path) {
|
|
104
|
-
|
|
110
|
+
const node = window.document.getElementById(`less-error-message:${utils.extractId(path)}`);
|
|
105
111
|
if (node) {
|
|
106
112
|
node.parentNode.removeChild(node);
|
|
107
113
|
}
|
|
108
114
|
}
|
|
115
|
+
|
|
109
116
|
function removeErrorConsole() {
|
|
110
117
|
// no action
|
|
111
118
|
}
|
|
119
|
+
|
|
112
120
|
function removeError(path) {
|
|
113
121
|
if (!options.errorReporting || options.errorReporting === 'html') {
|
|
114
122
|
removeErrorHTML(path);
|
|
115
|
-
}
|
|
116
|
-
else if (options.errorReporting === 'console') {
|
|
123
|
+
} else if (options.errorReporting === 'console') {
|
|
117
124
|
removeErrorConsole(path);
|
|
118
|
-
}
|
|
119
|
-
else if (typeof options.errorReporting === 'function') {
|
|
125
|
+
} else if (typeof options.errorReporting === 'function') {
|
|
120
126
|
options.errorReporting('remove', path);
|
|
121
127
|
}
|
|
122
128
|
}
|
|
129
|
+
|
|
123
130
|
function errorConsole(e, rootHref) {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
131
|
+
const template = '{line} {content}';
|
|
132
|
+
const filename = e.filename || rootHref;
|
|
133
|
+
const errors = [];
|
|
134
|
+
let content = `${e.type || 'Syntax'}Error: ${e.message || 'There is an error in your .less file'} in ${filename}`;
|
|
135
|
+
|
|
136
|
+
const errorline = (e, i, classname) => {
|
|
129
137
|
if (e.extract[i] !== undefined) {
|
|
130
138
|
errors.push(template.replace(/\{line\}/, (parseInt(e.line, 10) || 0) + (i - 1))
|
|
131
139
|
.replace(/\{class\}/, classname)
|
|
132
140
|
.replace(/\{content\}/, e.extract[i]));
|
|
133
141
|
}
|
|
134
142
|
};
|
|
143
|
+
|
|
135
144
|
if (e.line) {
|
|
136
145
|
errorline(e, 0, '');
|
|
137
146
|
errorline(e, 1, 'line');
|
|
138
147
|
errorline(e, 2, '');
|
|
139
|
-
content +=
|
|
148
|
+
content += ` on line ${e.line}, column ${e.column + 1}:\n${errors.join('\n')}`;
|
|
140
149
|
}
|
|
141
150
|
if (e.stack && (e.extract || options.logLevel >= 4)) {
|
|
142
|
-
content +=
|
|
151
|
+
content += `\nStack Trace\n${e.stack}`;
|
|
143
152
|
}
|
|
144
153
|
less.logger.error(content);
|
|
145
154
|
}
|
|
155
|
+
|
|
146
156
|
function error(e, rootHref) {
|
|
147
157
|
if (!options.errorReporting || options.errorReporting === 'html') {
|
|
148
158
|
errorHTML(e, rootHref);
|
|
149
|
-
}
|
|
150
|
-
else if (options.errorReporting === 'console') {
|
|
159
|
+
} else if (options.errorReporting === 'console') {
|
|
151
160
|
errorConsole(e, rootHref);
|
|
152
|
-
}
|
|
153
|
-
else if (typeof options.errorReporting === 'function') {
|
|
161
|
+
} else if (typeof options.errorReporting === 'function') {
|
|
154
162
|
options.errorReporting('add', e, rootHref);
|
|
155
163
|
}
|
|
156
164
|
}
|
|
165
|
+
|
|
157
166
|
return {
|
|
158
167
|
add: error,
|
|
159
168
|
remove: removeError
|
|
160
169
|
};
|
|
161
|
-
}
|
|
162
|
-
//# sourceMappingURL=error-reporting.js.map
|
|
170
|
+
};
|
|
@@ -1,102 +1,112 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var fileCache = {};
|
|
1
|
+
import AbstractFileManager from '../less/environment/abstract-file-manager.js';
|
|
2
|
+
|
|
3
|
+
let options;
|
|
4
|
+
let logger;
|
|
5
|
+
let fileCache = {};
|
|
6
|
+
|
|
8
7
|
// TODOS - move log somewhere. pathDiff and doing something similar in node. use pathDiff in the other browser file for the initial load
|
|
9
|
-
|
|
10
|
-
FileManager.prototype = Object.assign(new
|
|
11
|
-
alwaysMakePathsAbsolute
|
|
8
|
+
const FileManager = function() {}
|
|
9
|
+
FileManager.prototype = Object.assign(new AbstractFileManager(), {
|
|
10
|
+
alwaysMakePathsAbsolute() {
|
|
12
11
|
return true;
|
|
13
12
|
},
|
|
14
|
-
|
|
13
|
+
|
|
14
|
+
join(basePath, laterPath) {
|
|
15
15
|
if (!basePath) {
|
|
16
16
|
return laterPath;
|
|
17
17
|
}
|
|
18
18
|
return this.extractUrlParts(laterPath, basePath).path;
|
|
19
19
|
},
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
|
|
21
|
+
doXHR(url, type, callback, errback) {
|
|
22
|
+
const xhr = new XMLHttpRequest();
|
|
23
|
+
const async = options.isFileProtocol ? options.fileAsync : true;
|
|
24
|
+
|
|
23
25
|
if (typeof xhr.overrideMimeType === 'function') {
|
|
24
26
|
xhr.overrideMimeType('text/css');
|
|
25
27
|
}
|
|
26
|
-
logger.debug(
|
|
28
|
+
logger.debug(`XHR: Getting '${url}'`);
|
|
27
29
|
xhr.open('GET', url, async);
|
|
28
30
|
xhr.setRequestHeader('Accept', type || 'text/x-less, text/css; q=0.9, */*; q=0.5');
|
|
29
31
|
xhr.send(null);
|
|
32
|
+
|
|
30
33
|
function handleResponse(xhr, callback, errback) {
|
|
31
34
|
if (xhr.status >= 200 && xhr.status < 300) {
|
|
32
|
-
callback(xhr.responseText,
|
|
33
|
-
|
|
34
|
-
else if (typeof errback === 'function') {
|
|
35
|
+
callback(xhr.responseText,
|
|
36
|
+
xhr.getResponseHeader('Last-Modified'));
|
|
37
|
+
} else if (typeof errback === 'function') {
|
|
35
38
|
errback(xhr.status, url);
|
|
36
39
|
}
|
|
37
40
|
}
|
|
41
|
+
|
|
38
42
|
if (options.isFileProtocol && !options.fileAsync) {
|
|
39
43
|
if (xhr.status === 0 || (xhr.status >= 200 && xhr.status < 300)) {
|
|
40
44
|
callback(xhr.responseText);
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
45
|
+
} else {
|
|
43
46
|
errback(xhr.status, url);
|
|
44
47
|
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
xhr.onreadystatechange = function () {
|
|
48
|
+
} else if (async) {
|
|
49
|
+
xhr.onreadystatechange = () => {
|
|
48
50
|
if (xhr.readyState == 4) {
|
|
49
51
|
handleResponse(xhr, callback, errback);
|
|
50
52
|
}
|
|
51
53
|
};
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
+
} else {
|
|
54
55
|
handleResponse(xhr, callback, errback);
|
|
55
56
|
}
|
|
56
57
|
},
|
|
57
|
-
|
|
58
|
+
|
|
59
|
+
supports() {
|
|
58
60
|
return true;
|
|
59
61
|
},
|
|
60
|
-
|
|
62
|
+
|
|
63
|
+
clearFileCache() {
|
|
61
64
|
fileCache = {};
|
|
62
65
|
},
|
|
63
|
-
|
|
66
|
+
|
|
67
|
+
loadFile(filename, currentDirectory, options) {
|
|
64
68
|
// TODO: Add prefix support like less-node?
|
|
65
69
|
// What about multiple paths?
|
|
70
|
+
|
|
66
71
|
if (currentDirectory && !this.isPathAbsolute(filename)) {
|
|
67
72
|
filename = currentDirectory + filename;
|
|
68
73
|
}
|
|
74
|
+
|
|
69
75
|
filename = options.ext ? this.tryAppendExtension(filename, options.ext) : filename;
|
|
76
|
+
|
|
70
77
|
options = options || {};
|
|
78
|
+
|
|
71
79
|
// sheet may be set to the stylesheet for the initial load or a collection of properties including
|
|
72
80
|
// some context variables for imports
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
81
|
+
const hrefParts = this.extractUrlParts(filename, window.location.href);
|
|
82
|
+
const href = hrefParts.url;
|
|
83
|
+
const self = this;
|
|
84
|
+
|
|
85
|
+
return new Promise((resolve, reject) => {
|
|
77
86
|
if (options.useFileCache && fileCache[href]) {
|
|
78
87
|
try {
|
|
79
|
-
|
|
80
|
-
return resolve({ contents: lessText, filename: href, webInfo: { lastModified: new Date() }
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
return reject({ filename: href, message: "Error loading file ".concat(href, " error was ").concat(e.message) });
|
|
88
|
+
const lessText = fileCache[href];
|
|
89
|
+
return resolve({ contents: lessText, filename: href, webInfo: { lastModified: new Date() }});
|
|
90
|
+
} catch (e) {
|
|
91
|
+
return reject({ filename: href, message: `Error loading file ${href} error was ${e.message}` });
|
|
84
92
|
}
|
|
85
93
|
}
|
|
94
|
+
|
|
86
95
|
self.doXHR(href, options.mime, function doXHRCallback(data, lastModified) {
|
|
87
96
|
// per file cache
|
|
88
97
|
fileCache[href] = data;
|
|
98
|
+
|
|
89
99
|
// Use remote copy (re-parse)
|
|
90
|
-
resolve({ contents: data, filename: href, webInfo: { lastModified
|
|
100
|
+
resolve({ contents: data, filename: href, webInfo: { lastModified }});
|
|
91
101
|
}, function doXHRError(status, url) {
|
|
92
|
-
reject({ type: 'File', message:
|
|
102
|
+
reject({ type: 'File', message: `'${url}' wasn't found (${status})`, href });
|
|
93
103
|
});
|
|
94
104
|
});
|
|
95
105
|
}
|
|
96
106
|
});
|
|
97
|
-
|
|
107
|
+
|
|
108
|
+
export default (opts, log) => {
|
|
98
109
|
options = opts;
|
|
99
110
|
logger = log;
|
|
100
111
|
return FileManager;
|
|
101
|
-
}
|
|
102
|
-
//# sourceMappingURL=file-manager.js.map
|
|
112
|
+
}
|