From 351cd7696235ec5943fe19ee7c7a500da1a6e936 Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Fri, 3 Sep 2021 16:38:54 +0300 Subject: [PATCH 01/20] refactor: code --- src/options.json | 5 + src/utils.js | 119 ++++++------ .../exportStylesheet.test.js.snap | 176 ++++++++++++++++++ .../validate-options.test.js.snap | 23 ++- test/exportStylesheet.test.js | 24 +++ test/validate-options.test.js | 4 + 6 files changed, 285 insertions(+), 66 deletions(-) create mode 100644 test/__snapshots__/exportStylesheet.test.js.snap create mode 100644 test/exportStylesheet.test.js diff --git a/src/options.json b/src/options.json index 9715c923..a2612739 100644 --- a/src/options.json +++ b/src/options.json @@ -193,6 +193,11 @@ "description": "Use the ES modules syntax.", "link": "https://github.com/webpack-contrib/css-loader#esmodule", "type": "boolean" + }, + "exportStylesheet": { + "description": "Exports style as constructable stylesheets (i.e. `import sheet from './styles.css' assert { type: 'css' };`).", + "link": "https://github.com/webpack-contrib/css-loader#exportstylesheet", + "type": "boolean" } }, "type": "object" diff --git a/src/utils.js b/src/utils.js index 97aef5b5..3d5da005 100644 --- a/src/utils.js +++ b/src/utils.js @@ -1034,79 +1034,82 @@ function dashesCamelCase(str) { function getExportCode(exports, replacements, needToUseIcssPlugin, options) { let code = "// Exports\n"; - if (!needToUseIcssPlugin) { - code += `${ - options.esModule ? "export default" : "module.exports =" - } ___CSS_LOADER_EXPORT___;\n`; + if (needToUseIcssPlugin) { + let localsCode = ""; - return code; - } - - let localsCode = ""; + const addExportToLocalsCode = (names, value) => { + const normalizedNames = Array.isArray(names) + ? new Set(names) + : new Set([names]); - const addExportToLocalsCode = (names, value) => { - const normalizedNames = Array.isArray(names) - ? new Set(names) - : new Set([names]); + for (const name of normalizedNames) { + if (options.modules.namedExport) { + localsCode += `export var ${name} = ${JSON.stringify(value)};\n`; + } else { + if (localsCode) { + localsCode += `,\n`; + } - for (const name of normalizedNames) { - if (options.modules.namedExport) { - localsCode += `export var ${name} = ${JSON.stringify(value)};\n`; - } else { - if (localsCode) { - localsCode += `,\n`; + localsCode += `\t${JSON.stringify(name)}: ${JSON.stringify(value)}`; } - - localsCode += `\t${JSON.stringify(name)}: ${JSON.stringify(value)}`; } - } - }; - - for (const { name, value } of exports) { - addExportToLocalsCode(options.modules.exportLocalsConvention(name), value); - } + }; - for (const item of replacements) { - const { replacementName, localName } = item; + for (const { name, value } of exports) { + addExportToLocalsCode( + options.modules.exportLocalsConvention(name), + value + ); + } - if (localName) { - const { importName } = item; + for (const item of replacements) { + const { replacementName, localName } = item; + + if (localName) { + const { importName } = item; + + localsCode = localsCode.replace( + new RegExp(replacementName, "g"), + () => { + if (options.modules.namedExport) { + return `" + ${importName}_NAMED___[${JSON.stringify( + getValidLocalName( + localName, + options.modules.exportLocalsConvention + ) + )}] + "`; + } else if (options.modules.exportOnlyLocals) { + return `" + ${importName}[${JSON.stringify(localName)}] + "`; + } + + return `" + ${importName}.locals[${JSON.stringify(localName)}] + "`; + } + ); + } else { + localsCode = localsCode.replace( + new RegExp(replacementName, "g"), + () => `" + ${replacementName} + "` + ); + } + } - localsCode = localsCode.replace(new RegExp(replacementName, "g"), () => { - if (options.modules.namedExport) { - return `" + ${importName}_NAMED___[${JSON.stringify( - getValidLocalName(localName, options.modules.exportLocalsConvention) - )}] + "`; - } else if (options.modules.exportOnlyLocals) { - return `" + ${importName}[${JSON.stringify(localName)}] + "`; - } + if (options.modules.exportOnlyLocals) { + code += options.modules.namedExport + ? localsCode + : `${ + options.esModule ? "export default" : "module.exports =" + } {\n${localsCode}\n};\n`; - return `" + ${importName}.locals[${JSON.stringify(localName)}] + "`; - }); - } else { - localsCode = localsCode.replace( - new RegExp(replacementName, "g"), - () => `" + ${replacementName} + "` - ); + return code; } - } - if (options.modules.exportOnlyLocals) { code += options.modules.namedExport ? localsCode - : `${ - options.esModule ? "export default" : "module.exports =" - } {\n${localsCode}\n};\n`; - - return code; + : `___CSS_LOADER_EXPORT___.locals = {${ + localsCode ? `\n${localsCode}\n` : "" + }};\n`; } - code += options.modules.namedExport - ? localsCode - : `___CSS_LOADER_EXPORT___.locals = {${ - localsCode ? `\n${localsCode}\n` : "" - }};\n`; - code += `${ options.esModule ? "export default" : "module.exports =" } ___CSS_LOADER_EXPORT___;\n`; diff --git a/test/__snapshots__/exportStylesheet.test.js.snap b/test/__snapshots__/exportStylesheet.test.js.snap new file mode 100644 index 00000000..a68d3ddf --- /dev/null +++ b/test/__snapshots__/exportStylesheet.test.js.snap @@ -0,0 +1,176 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`exportStylesheet option should work: errors 1`] = `Array []`; + +exports[`exportStylesheet option should work: module 1`] = ` +"// Imports +import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; +import ___CSS_LOADER_AT_RULE_IMPORT_0___ from \\"-!../../src/index.js??ruleSet[1].rules[0].use[0]!./imported.css\\"; +import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]}); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +// Exports +export default ___CSS_LOADER_EXPORT___; +" +`; + +exports[`exportStylesheet option should work: result 1`] = ` +Array [ + Array [ + "../../src/index.js??ruleSet[1].rules[0].use[0]!./imported.css", + ".foo { + color: red; +} +", + "", + ], + Array [ + "./basic.css", + "@charset \\"UTF-8\\"; + +/* Comment */ + +.class { + color: red; + background: url(replaced_file_protocol_/webpack/public/path/img.png); +} + +.class-duplicate-url { + background: url(replaced_file_protocol_/webpack/public/path/img.png); +} + +:root { + --foo: 1px; + --bar: 2px; +} + +.class { a: b c d; } + +.two {} + +.u-m\\\\+ { a: b c d; } + +.class { content: \\"\\\\F10C\\" } + +@media only screen and (max-width: 600px) { + body { + background-color: lightblue; + } +} + +.class { + content: \\"\\\\2193\\"; + content: \\"\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193\\"; + content: \\"\\\\2193\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193 \\\\2193\\"; +} + +.-top {} +.\\\\-top {} + +#\\\\#test {} + +.grid { + display: flex; + flex-wrap: wrap; +} +.grid.\\\\-top { + align-items: flex-start; +} +.grid.-top { + align-items: flex-start; +} +.grid.\\\\-middle { + align-items: center; +} +.grid.\\\\-bottom { + align-items: flex-end; +} + +.u-m\\\\00002b {} + +.u-m00002b {} + +#u-m\\\\+ {} + +body { + font-family: '微软雅黑'; /* some chinese font name */ +} + +.myStyle { + content: '\\\\e901'; +} + +.myStyle { + content: '\\\\E901'; +} + +.♫ {} + +.\\\\3A \\\\\`\\\\( {} /* matches elements with class=\\":\`(\\" */ +.\\\\31 a2b3c {} /* matches elements with class=\\"1a2b3c\\" */ +#\\\\#fake-id {} /* matches the element with id=\\"#fake-id\\" */ +#-a-b-c- {} /* matches the element with id=\\"-a-b-c-\\" */ +#© {} /* matches the element with id=\\"©\\" */ + +:root { + --title-align: center; + --sr-only: { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0,0,0,0); + white-space: nowrap; + clip-path: inset(50%); + border: 0; + }; +} + +.test { + content: \\"\\\\2014\\\\A0\\"; + content: \\"\\\\2014 \\\\A0\\"; + content: \\"\\\\A0 \\\\2014\\"; + content: \\"\\\\A0\\\\2014\\"; + margin-top: 1px\\\\9; + background-color: #000\\\\9; +} + +.light.on .bulb:before{ + content: '💡'; +} + +.base64 { + background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); +} + +a[href=''] { + color: red; +} + +a[href='' i] { + color: red; +} + +a[href=\\"\\"] { + color: blue; +} + +a[href=\\"\\" i] { + color: blue; +} +", + "", + ], +] +`; + +exports[`exportStylesheet option should work: warnings 1`] = `Array []`; diff --git a/test/__snapshots__/validate-options.test.js.snap b/test/__snapshots__/validate-options.test.js.snap index 5af25b3d..9bf6914b 100644 --- a/test/__snapshots__/validate-options.test.js.snap +++ b/test/__snapshots__/validate-options.test.js.snap @@ -7,6 +7,13 @@ exports[`validate options should throw an error on the "esModule" option with "t -> Read more at https://github.com/webpack-contrib/css-loader#esmodule" `; +exports[`validate options should throw an error on the "exportStylesheet" option with "true" value 1`] = ` +"Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. + - options.exportStylesheet should be a boolean. + -> Exports style as constructable stylesheets (i.e. \`import sheet from './styles.css' assert { type: 'css' };\`). + -> Read more at https://github.com/webpack-contrib/css-loader#exportstylesheet" +`; + exports[`validate options should throw an error on the "import" option with "() => {}" value 1`] = ` "Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. - options.import should be one of these: @@ -299,49 +306,49 @@ exports[`validate options should throw an error on the "sourceMap" option with " exports[`validate options should throw an error on the "unknown" option with "/test/" value 1`] = ` "Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, esModule? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStylesheet? }" `; exports[`validate options should throw an error on the "unknown" option with "[]" value 1`] = ` "Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, esModule? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStylesheet? }" `; exports[`validate options should throw an error on the "unknown" option with "{"foo":"bar"}" value 1`] = ` "Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, esModule? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStylesheet? }" `; exports[`validate options should throw an error on the "unknown" option with "{}" value 1`] = ` "Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, esModule? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStylesheet? }" `; exports[`validate options should throw an error on the "unknown" option with "1" value 1`] = ` "Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, esModule? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStylesheet? }" `; exports[`validate options should throw an error on the "unknown" option with "false" value 1`] = ` "Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, esModule? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStylesheet? }" `; exports[`validate options should throw an error on the "unknown" option with "test" value 1`] = ` "Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, esModule? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStylesheet? }" `; exports[`validate options should throw an error on the "unknown" option with "true" value 1`] = ` "Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, esModule? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStylesheet? }" `; exports[`validate options should throw an error on the "url" option with "() => {}" value 1`] = ` diff --git a/test/exportStylesheet.test.js b/test/exportStylesheet.test.js new file mode 100644 index 00000000..3a5e374f --- /dev/null +++ b/test/exportStylesheet.test.js @@ -0,0 +1,24 @@ +import { + compile, + getCompiler, + getErrors, + getExecutedCode, + getModuleSource, + getWarnings, +} from "./helpers/index"; + +describe("exportStylesheet option", () => { + it("should work", async () => { + const compiler = getCompiler("./basic.js", { + exportStylesheet: true, + }); + const stats = await compile(compiler); + + expect(getModuleSource("./basic.css", stats)).toMatchSnapshot("module"); + expect(getExecutedCode("main.bundle.js", compiler, stats)).toMatchSnapshot( + "result" + ); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); + }); +}); diff --git a/test/validate-options.test.js b/test/validate-options.test.js index 068a8a22..44571285 100644 --- a/test/validate-options.test.js +++ b/test/validate-options.test.js @@ -87,6 +87,10 @@ describe("validate options", () => { success: [true, false], failure: ["true"], }, + exportStylesheet: { + success: [true, false], + failure: ["true"], + }, unknown: { success: [], failure: [1, true, false, "test", /test/, [], {}, { foo: "bar" }], From ff9bb9dcbff64b05ff179ba729ad33db86277eb9 Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Fri, 3 Sep 2021 17:28:00 +0300 Subject: [PATCH 02/20] feat: basic usage --- src/options.json | 4 +- src/utils.js | 18 +- ....js.snap => exportStyleSheet.test.js.snap} | 157 +----------------- ...sheet.test.js => exportStyleSheet.test.js} | 24 ++- test/fixtures/basic-import-assertion-css.js | 6 + test/validate-options.test.js | 2 +- 6 files changed, 44 insertions(+), 167 deletions(-) rename test/__snapshots__/{exportStylesheet.test.js.snap => exportStyleSheet.test.js.snap} (60%) rename test/{exportStylesheet.test.js => exportStyleSheet.test.js} (52%) create mode 100644 test/fixtures/basic-import-assertion-css.js diff --git a/src/options.json b/src/options.json index a2612739..5b0b0451 100644 --- a/src/options.json +++ b/src/options.json @@ -194,8 +194,8 @@ "link": "https://github.com/webpack-contrib/css-loader#esmodule", "type": "boolean" }, - "exportStylesheet": { - "description": "Exports style as constructable stylesheets (i.e. `import sheet from './styles.css' assert { type: 'css' };`).", + "exportStyleSheet": { + "description": "Exports styles as constructable stylesheets (i.e. `import sheet from './styles.css' assert { type: 'css' };`).", "link": "https://github.com/webpack-contrib/css-loader#exportstylesheet", "type": "boolean" } diff --git a/src/utils.js b/src/utils.js index 3d5da005..a6f22de8 100644 --- a/src/utils.js +++ b/src/utils.js @@ -662,6 +662,10 @@ function normalizeOptions(rawOptions, loaderContext) { : rawOptions.importLoaders, esModule: typeof rawOptions.esModule === "undefined" ? true : rawOptions.esModule, + exportStyleSheet: + typeof rawOptions.exportStyleSheet === "undefined" + ? false + : rawOptions.exportStyleSheet, }; } @@ -1110,9 +1114,17 @@ function getExportCode(exports, replacements, needToUseIcssPlugin, options) { }};\n`; } - code += `${ - options.esModule ? "export default" : "module.exports =" - } ___CSS_LOADER_EXPORT___;\n`; + if (options.exportStyleSheet) { + code += "var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet();\n"; + code += + "___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString());\n"; + } + + code += `${options.esModule ? "export default" : "module.exports ="} ${ + options.exportStyleSheet + ? "___CSS_LOADER_STYLE_SHEET___" + : "___CSS_LOADER_EXPORT___" + };\n`; return code; } diff --git a/test/__snapshots__/exportStylesheet.test.js.snap b/test/__snapshots__/exportStyleSheet.test.js.snap similarity index 60% rename from test/__snapshots__/exportStylesheet.test.js.snap rename to test/__snapshots__/exportStyleSheet.test.js.snap index a68d3ddf..ae03b398 100644 --- a/test/__snapshots__/exportStylesheet.test.js.snap +++ b/test/__snapshots__/exportStyleSheet.test.js.snap @@ -16,161 +16,10 @@ var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_ // Module ___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); // Exports -export default ___CSS_LOADER_EXPORT___; +var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); +___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); +export default ___CSS_LOADER_STYLE_SHEET___; " `; -exports[`exportStylesheet option should work: result 1`] = ` -Array [ - Array [ - "../../src/index.js??ruleSet[1].rules[0].use[0]!./imported.css", - ".foo { - color: red; -} -", - "", - ], - Array [ - "./basic.css", - "@charset \\"UTF-8\\"; - -/* Comment */ - -.class { - color: red; - background: url(replaced_file_protocol_/webpack/public/path/img.png); -} - -.class-duplicate-url { - background: url(replaced_file_protocol_/webpack/public/path/img.png); -} - -:root { - --foo: 1px; - --bar: 2px; -} - -.class { a: b c d; } - -.two {} - -.u-m\\\\+ { a: b c d; } - -.class { content: \\"\\\\F10C\\" } - -@media only screen and (max-width: 600px) { - body { - background-color: lightblue; - } -} - -.class { - content: \\"\\\\2193\\"; - content: \\"\\\\2193\\\\2193\\"; - content: \\"\\\\2193 \\\\2193\\"; - content: \\"\\\\2193\\\\2193\\\\2193\\"; - content: \\"\\\\2193 \\\\2193 \\\\2193\\"; -} - -.-top {} -.\\\\-top {} - -#\\\\#test {} - -.grid { - display: flex; - flex-wrap: wrap; -} -.grid.\\\\-top { - align-items: flex-start; -} -.grid.-top { - align-items: flex-start; -} -.grid.\\\\-middle { - align-items: center; -} -.grid.\\\\-bottom { - align-items: flex-end; -} - -.u-m\\\\00002b {} - -.u-m00002b {} - -#u-m\\\\+ {} - -body { - font-family: '微软雅黑'; /* some chinese font name */ -} - -.myStyle { - content: '\\\\e901'; -} - -.myStyle { - content: '\\\\E901'; -} - -.♫ {} - -.\\\\3A \\\\\`\\\\( {} /* matches elements with class=\\":\`(\\" */ -.\\\\31 a2b3c {} /* matches elements with class=\\"1a2b3c\\" */ -#\\\\#fake-id {} /* matches the element with id=\\"#fake-id\\" */ -#-a-b-c- {} /* matches the element with id=\\"-a-b-c-\\" */ -#© {} /* matches the element with id=\\"©\\" */ - -:root { - --title-align: center; - --sr-only: { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - overflow: hidden; - clip: rect(0,0,0,0); - white-space: nowrap; - clip-path: inset(50%); - border: 0; - }; -} - -.test { - content: \\"\\\\2014\\\\A0\\"; - content: \\"\\\\2014 \\\\A0\\"; - content: \\"\\\\A0 \\\\2014\\"; - content: \\"\\\\A0\\\\2014\\"; - margin-top: 1px\\\\9; - background-color: #000\\\\9; -} - -.light.on .bulb:before{ - content: '💡'; -} - -.base64 { - background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); -} - -a[href=''] { - color: red; -} - -a[href='' i] { - color: red; -} - -a[href=\\"\\"] { - color: blue; -} - -a[href=\\"\\" i] { - color: blue; -} -", - "", - ], -] -`; - exports[`exportStylesheet option should work: warnings 1`] = `Array []`; diff --git a/test/exportStylesheet.test.js b/test/exportStyleSheet.test.js similarity index 52% rename from test/exportStylesheet.test.js rename to test/exportStyleSheet.test.js index 3a5e374f..9c5d4052 100644 --- a/test/exportStylesheet.test.js +++ b/test/exportStyleSheet.test.js @@ -1,23 +1,33 @@ +import path from "path"; + import { compile, getCompiler, getErrors, - getExecutedCode, getModuleSource, getWarnings, } from "./helpers/index"; describe("exportStylesheet option", () => { it("should work", async () => { - const compiler = getCompiler("./basic.js", { - exportStylesheet: true, - }); + const compiler = getCompiler( + "./basic-import-assertion-css.js", + { + exportStyleSheet: true, + }, + { + target: "web", + output: { + path: path.resolve(__dirname, "./outputs"), + filename: "[name].bundle.js", + chunkFilename: "[name].chunk.js", + assetModuleFilename: "[name][ext]", + }, + } + ); const stats = await compile(compiler); expect(getModuleSource("./basic.css", stats)).toMatchSnapshot("module"); - expect(getExecutedCode("main.bundle.js", compiler, stats)).toMatchSnapshot( - "result" - ); expect(getWarnings(stats)).toMatchSnapshot("warnings"); expect(getErrors(stats)).toMatchSnapshot("errors"); }); diff --git a/test/fixtures/basic-import-assertion-css.js b/test/fixtures/basic-import-assertion-css.js new file mode 100644 index 00000000..015af879 --- /dev/null +++ b/test/fixtures/basic-import-assertion-css.js @@ -0,0 +1,6 @@ +import sheet from './basic.css' assert { type: "css" }; + +console.log(sheet instanceof CSSStyleSheet); + +document.adoptedStyleSheets = [sheet]; + diff --git a/test/validate-options.test.js b/test/validate-options.test.js index 44571285..fcfa84c7 100644 --- a/test/validate-options.test.js +++ b/test/validate-options.test.js @@ -87,7 +87,7 @@ describe("validate options", () => { success: [true, false], failure: ["true"], }, - exportStylesheet: { + exportStyleSheet: { success: [true, false], failure: ["true"], }, From d1612c5242d67119d451fca1555bc39d279418be Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Fri, 3 Sep 2021 17:30:21 +0300 Subject: [PATCH 03/20] test: more --- .../exportStyleSheet.test.js.snap | 46 ++++++++++++++++++ test/exportStyleSheet.test.js | 48 +++++++++++++++++++ 2 files changed, 94 insertions(+) diff --git a/test/__snapshots__/exportStyleSheet.test.js.snap b/test/__snapshots__/exportStyleSheet.test.js.snap index ae03b398..2a1cc8c5 100644 --- a/test/__snapshots__/exportStyleSheet.test.js.snap +++ b/test/__snapshots__/exportStyleSheet.test.js.snap @@ -1,5 +1,51 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`exportStylesheet option should work with CommonJS modules: errors 1`] = `Array []`; + +exports[`exportStylesheet option should work with CommonJS modules: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../src/runtime/api.js\\"); +var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../src/index.js??ruleSet[1].rules[0].use[0]!./imported.css\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./url/img.png\\"); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]}); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==);\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +// Exports +var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); +___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); +module.exports = ___CSS_LOADER_STYLE_SHEET___; +" +`; + +exports[`exportStylesheet option should work with CommonJS modules: warnings 1`] = `Array []`; + +exports[`exportStylesheet option should work with ECMA modules: errors 1`] = `Array []`; + +exports[`exportStylesheet option should work with ECMA modules: module 1`] = ` +"// Imports +import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; +import ___CSS_LOADER_AT_RULE_IMPORT_0___ from \\"-!../../src/index.js??ruleSet[1].rules[0].use[0]!./imported.css\\"; +import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]}); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +// Exports +var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); +___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); +export default ___CSS_LOADER_STYLE_SHEET___; +" +`; + +exports[`exportStylesheet option should work with ECMA modules: warnings 1`] = `Array []`; + exports[`exportStylesheet option should work: errors 1`] = `Array []`; exports[`exportStylesheet option should work: module 1`] = ` diff --git a/test/exportStyleSheet.test.js b/test/exportStyleSheet.test.js index 9c5d4052..e50754f9 100644 --- a/test/exportStyleSheet.test.js +++ b/test/exportStyleSheet.test.js @@ -31,4 +31,52 @@ describe("exportStylesheet option", () => { expect(getWarnings(stats)).toMatchSnapshot("warnings"); expect(getErrors(stats)).toMatchSnapshot("errors"); }); + + it("should work with ECMA modules", async () => { + const compiler = getCompiler( + "./basic-import-assertion-css.js", + { + exportStyleSheet: true, + esModule: true, + }, + { + target: "web", + output: { + path: path.resolve(__dirname, "./outputs"), + filename: "[name].bundle.js", + chunkFilename: "[name].chunk.js", + assetModuleFilename: "[name][ext]", + }, + } + ); + const stats = await compile(compiler); + + expect(getModuleSource("./basic.css", stats)).toMatchSnapshot("module"); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); + }); + + it("should work with CommonJS modules", async () => { + const compiler = getCompiler( + "./basic-import-assertion-css.js", + { + exportStyleSheet: true, + esModule: false, + }, + { + target: "web", + output: { + path: path.resolve(__dirname, "./outputs"), + filename: "[name].bundle.js", + chunkFilename: "[name].chunk.js", + assetModuleFilename: "[name][ext]", + }, + } + ); + const stats = await compile(compiler); + + expect(getModuleSource("./basic.css", stats)).toMatchSnapshot("module"); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); + }); }); From 6b291fdd5965631c2a97373c280b60a02ea1a14a Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Fri, 3 Sep 2021 17:41:24 +0300 Subject: [PATCH 04/20] test: more --- .../exportStyleSheet.test.js.snap | 24 ++++++++++ test/exportStyleSheet.test.js | 47 +++++++++++++++++++ ...basic-import-assertion-css-and-standard.js | 11 +++++ 3 files changed, 82 insertions(+) create mode 100644 test/fixtures/basic-import-assertion-css-and-standard.js diff --git a/test/__snapshots__/exportStyleSheet.test.js.snap b/test/__snapshots__/exportStyleSheet.test.js.snap index 2a1cc8c5..35533f20 100644 --- a/test/__snapshots__/exportStyleSheet.test.js.snap +++ b/test/__snapshots__/exportStyleSheet.test.js.snap @@ -1,5 +1,29 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`exportStylesheet option should work and export CSSStyleSheet for import asserions and basic output: errors 1`] = `Array []`; + +exports[`exportStylesheet option should work and export CSSStyleSheet for import asserions and basic output: module 1`] = ` +"// Imports +import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; +import ___CSS_LOADER_AT_RULE_IMPORT_0___ from \\"-!../../src/index.js??ruleSet[1].rules[0].oneOf[0]!./imported.css\\"; +import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]}); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +// Exports +var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); +___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); +export default ___CSS_LOADER_STYLE_SHEET___; +" +`; + +exports[`exportStylesheet option should work and export CSSStyleSheet for import asserions and basic output: warnings 1`] = `Array []`; + exports[`exportStylesheet option should work with CommonJS modules: errors 1`] = `Array []`; exports[`exportStylesheet option should work with CommonJS modules: module 1`] = ` diff --git a/test/exportStyleSheet.test.js b/test/exportStyleSheet.test.js index e50754f9..cd4c18eb 100644 --- a/test/exportStyleSheet.test.js +++ b/test/exportStyleSheet.test.js @@ -79,4 +79,51 @@ describe("exportStylesheet option", () => { expect(getWarnings(stats)).toMatchSnapshot("warnings"); expect(getErrors(stats)).toMatchSnapshot("errors"); }); + + it("should work and export CSSStyleSheet for import asserions and basic output", async () => { + const compiler = getCompiler( + "./basic-import-assertion-css-and-standard.js", + {}, + { + target: "web", + output: { + path: path.resolve(__dirname, "./outputs"), + filename: "[name].bundle.js", + chunkFilename: "[name].chunk.js", + assetModuleFilename: "[name][ext]", + }, + module: { + rules: [ + { + test: /\.(mycss|css)$/i, + oneOf: [ + { + assert: { type: "css" }, + loader: path.resolve(__dirname, "./../src"), + options: { exportStyleSheet: true }, + }, + { + loader: path.resolve(__dirname, "./../src"), + }, + ], + }, + { + test: /\.(png|jpg|gif|svg|eot|ttf|woff|woff2)$/i, + resourceQuery: /^(?!.*\?ignore-asset-modules).*$/, + type: "asset/resource", + }, + { + resourceQuery: /\?ignore-asset-modules$/, + type: "javascript/auto", + }, + ], + }, + } + ); + const stats = await compile(compiler); + + expect(getModuleSource("./basic.css", stats)).toMatchSnapshot("module"); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); + }); }); diff --git a/test/fixtures/basic-import-assertion-css-and-standard.js b/test/fixtures/basic-import-assertion-css-and-standard.js new file mode 100644 index 00000000..1c6a92f4 --- /dev/null +++ b/test/fixtures/basic-import-assertion-css-and-standard.js @@ -0,0 +1,11 @@ +import sheet from './basic.css' assert { type: "css" }; +import standard from './basic.css?foo=1'; + +console.log(sheet instanceof CSSStyleSheet); +console.log(standard instanceof CSSStyleSheet); + +const standardStyleSheet = new CSSStyleSheet(); + +standardStyleSheet.replace(standard.toString()); + +document.adoptedStyleSheets = [sheet, standardStyleSheet]; From 6635b5cf1f62df7fd48563c6c873381d7fc0d224 Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Fri, 3 Sep 2021 18:05:24 +0300 Subject: [PATCH 05/20] test: sass-loader --- .../exportStyleSheet.test.js.snap | 17 +++++++ test/exportStyleSheet.test.js | 45 +++++++++++++++++++ test/fixtures/scss/import-assertion-css.js | 6 +++ 3 files changed, 68 insertions(+) create mode 100644 test/fixtures/scss/import-assertion-css.js diff --git a/test/__snapshots__/exportStyleSheet.test.js.snap b/test/__snapshots__/exportStyleSheet.test.js.snap index 35533f20..df462388 100644 --- a/test/__snapshots__/exportStyleSheet.test.js.snap +++ b/test/__snapshots__/exportStyleSheet.test.js.snap @@ -24,6 +24,23 @@ export default ___CSS_LOADER_STYLE_SHEET___; exports[`exportStylesheet option should work and export CSSStyleSheet for import asserions and basic output: warnings 1`] = `Array []`; +exports[`exportStylesheet option should work with "sass-loader": errors 1`] = `Array []`; + +exports[`exportStylesheet option should work with "sass-loader": module 1`] = ` +"// Imports +import ___CSS_LOADER_API_IMPORT___ from \\"../../../src/runtime/api.js\\"; +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]}); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"body {\\\\n font: 100% Helvetica, sans-serif;\\\\n color: #333;\\\\n}\\", \\"\\"]); +// Exports +var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); +___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); +export default ___CSS_LOADER_STYLE_SHEET___; +" +`; + +exports[`exportStylesheet option should work with "sass-loader": warnings 1`] = `Array []`; + exports[`exportStylesheet option should work with CommonJS modules: errors 1`] = `Array []`; exports[`exportStylesheet option should work with CommonJS modules: module 1`] = ` diff --git a/test/exportStyleSheet.test.js b/test/exportStyleSheet.test.js index cd4c18eb..e750f768 100644 --- a/test/exportStyleSheet.test.js +++ b/test/exportStyleSheet.test.js @@ -126,4 +126,49 @@ describe("exportStylesheet option", () => { expect(getWarnings(stats)).toMatchSnapshot("warnings"); expect(getErrors(stats)).toMatchSnapshot("errors"); }); + + it('should work with "sass-loader"', async () => { + const compiler = getCompiler( + "./scss/import-assertion-css.js", + {}, + { + target: "web", + output: { + path: path.resolve(__dirname, "./outputs"), + filename: "[name].bundle.js", + chunkFilename: "[name].chunk.js", + assetModuleFilename: "[name][ext]", + }, + module: { + rules: [ + { + test: /\.s[ca]ss$/i, + rules: [ + { + loader: path.resolve(__dirname, "../src"), + options: { + exportStyleSheet: true, + }, + }, + { + loader: "sass-loader", + options: { + // eslint-disable-next-line global-require + implementation: require("sass"), + }, + }, + ], + }, + ], + }, + } + ); + const stats = await compile(compiler); + + expect(getModuleSource("./scss/source.scss", stats)).toMatchSnapshot( + "module" + ); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); + }); }); diff --git a/test/fixtures/scss/import-assertion-css.js b/test/fixtures/scss/import-assertion-css.js new file mode 100644 index 00000000..c89fcbe4 --- /dev/null +++ b/test/fixtures/scss/import-assertion-css.js @@ -0,0 +1,6 @@ +import sheet from './source.scss' assert { type: "css" }; + +console.log(sheet instanceof CSSStyleSheet); + +document.adoptedStyleSheets = [sheet]; + From 0f59b789f2f93bb18a718cbed25f2497cb714186 Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Fri, 3 Sep 2021 18:10:54 +0300 Subject: [PATCH 06/20] test: source map (bug in chrome) --- .../exportStyleSheet.test.js.snap | 25 +++++++++++++++++++ test/exportStyleSheet.test.js | 25 +++++++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/test/__snapshots__/exportStyleSheet.test.js.snap b/test/__snapshots__/exportStyleSheet.test.js.snap index df462388..97eefaa2 100644 --- a/test/__snapshots__/exportStyleSheet.test.js.snap +++ b/test/__snapshots__/exportStyleSheet.test.js.snap @@ -87,6 +87,31 @@ export default ___CSS_LOADER_STYLE_SHEET___; exports[`exportStylesheet option should work with ECMA modules: warnings 1`] = `Array []`; +exports[`exportStylesheet option should work with source maps: errors 1`] = `Array []`; + +exports[`exportStylesheet option should work with source maps: module 1`] = ` +"// Imports +import ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \\"../../src/runtime/cssWithMappingToString.js\\"; +import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; +import ___CSS_LOADER_AT_RULE_IMPORT_0___ from \\"-!../../src/index.js??ruleSet[1].rules[0].use[0]!./imported.css\\"; +import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\",{\\"version\\":3,\\"sources\\":[\\"webpack://./basic.css\\"],\\"names\\":[],\\"mappings\\":\\"AAAA,gBAAgB;;AAIhB,YAAY;;AAEZ;EACE,UAAU;EACV,mDAAgC;AAClC;;AAEA;EACE,mDAAgC;AAClC;;AAEA;EACE,UAAU;EACV,UAAU;AACZ;;AAEA,SAAS,QAAQ,EAAE;;AAEnB,MAAM;;AAEN,SAAS,QAAQ,EAAE;;AAEnB,SAAS,iBAAiB;;AAE1B;EACE;IACE,2BAA2B;EAC7B;AACF;;AAEA;EACE,gBAAgB;EAChB,qBAAqB;EACrB,sBAAsB;EACtB,0BAA0B;EAC1B,4BAA4B;AAC9B;;AAEA,OAAO;AACP,QAAQ;;AAER,SAAS;;AAET;EACE,aAAa;EACb,eAAe;AACjB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,qBAAqB;AACvB;;AAEA,aAAa;;AAEb,YAAY;;AAEZ,QAAQ;;AAER;EACE,mBAAmB,EAAE,2BAA2B;AAClD;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,gBAAgB;AAClB;;AAEA,IAAI;;AAEJ,WAAW,EAAE,sCAAsC;AACnD,YAAY,EAAE,yCAAyC;AACvD,YAAY,EAAE,2CAA2C;AACzD,UAAU,EAAE,0CAA0C;AACtD,IAAI,EAAE,oCAAoC;;AAE1C;EACE,qBAAqB;EACrB;;;;;;;;;;GAUC;AACH;;AAEA;EACE,mBAAmB;EACnB,oBAAoB;EACpB,oBAAoB;EACpB,mBAAmB;EACnB,iBAAiB;EACjB,wBAAwB;AAC1B;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,mDAAq1B;AACv1B;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,WAAW;AACb\\",\\"sourcesContent\\":[\\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n@import 'imported.css';\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\\\\\"./url/img.png\\\\\\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\\\\\"./url/img.png\\\\\\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==);\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\"],\\"sourceRoot\\":\\"\\"}]); +// Exports +var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); +___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); +export default ___CSS_LOADER_STYLE_SHEET___; +" +`; + +exports[`exportStylesheet option should work with source maps: warnings 1`] = `Array []`; + exports[`exportStylesheet option should work: errors 1`] = `Array []`; exports[`exportStylesheet option should work: module 1`] = ` diff --git a/test/exportStyleSheet.test.js b/test/exportStyleSheet.test.js index e750f768..bf379761 100644 --- a/test/exportStyleSheet.test.js +++ b/test/exportStyleSheet.test.js @@ -171,4 +171,29 @@ describe("exportStylesheet option", () => { expect(getWarnings(stats)).toMatchSnapshot("warnings"); expect(getErrors(stats)).toMatchSnapshot("errors"); }); + + // TODO https://bugs.chromium.org/p/chromium/issues/detail?id=1174094&q=CSSStyleSheet%20source%20maps&can=2 + it("should work with source maps", async () => { + const compiler = getCompiler( + "./basic-import-assertion-css.js", + { + exportStyleSheet: true, + }, + { + devtool: "source-map", + target: "web", + output: { + path: path.resolve(__dirname, "./outputs"), + filename: "[name].bundle.js", + chunkFilename: "[name].chunk.js", + assetModuleFilename: "[name][ext]", + }, + } + ); + const stats = await compile(compiler); + + expect(getModuleSource("./basic.css", stats)).toMatchSnapshot("module"); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); + }); }); From 179fbda883ab9aee69225ecd4d9e40cb60f1821c Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Fri, 3 Sep 2021 20:55:30 +0300 Subject: [PATCH 07/20] fix: support CSS modules --- src/utils.js | 23 +- .../exportStyleSheet.test.js.snap | 322 +++++++++++++++++- test/exportStyleSheet.test.js | 76 ++++- .../composes/composes-import-assertion-css.js | 8 + test/fixtures/url/url-import-assertion-css.js | 6 + 5 files changed, 407 insertions(+), 28 deletions(-) create mode 100644 test/fixtures/modules/composes/composes-import-assertion-css.js create mode 100644 test/fixtures/url/url-import-assertion-css.js diff --git a/src/utils.js b/src/utils.js index a6f22de8..69e22154 100644 --- a/src/utils.js +++ b/src/utils.js @@ -513,7 +513,7 @@ function getValidLocalName(localName, exportLocalsConvention) { const IS_MODULES = /\.module(s)?\.\w+$/i; const IS_ICSS = /\.icss\.\w+$/i; -function getModulesOptions(rawOptions, loaderContext) { +function getModulesOptions(rawOptions, isExportStyleSheet, loaderContext) { if (typeof rawOptions.modules === "boolean" && rawOptions.modules === false) { return false; } @@ -554,9 +554,9 @@ function getModulesOptions(rawOptions, loaderContext) { localIdentRegExp: undefined, // eslint-disable-next-line no-undefined getLocalIdent: undefined, - namedExport: false, + namedExport: isExportStyleSheet || false, exportLocalsConvention: - rawModulesOptions.namedExport === true && + (rawModulesOptions.namedExport === true || isExportStyleSheet) && typeof rawModulesOptions.exportLocalsConvention === "undefined" ? "camelCaseOnly" : "asIs", @@ -646,7 +646,15 @@ function getModulesOptions(rawOptions, loaderContext) { } function normalizeOptions(rawOptions, loaderContext) { - const modulesOptions = getModulesOptions(rawOptions, loaderContext); + const isExportStyleSheet = + typeof rawOptions.exportStyleSheet === "undefined" + ? false + : rawOptions.exportStyleSheet; + const modulesOptions = getModulesOptions( + rawOptions, + isExportStyleSheet, + loaderContext + ); return { url: typeof rawOptions.url === "undefined" ? true : rawOptions.url, @@ -662,15 +670,12 @@ function normalizeOptions(rawOptions, loaderContext) { : rawOptions.importLoaders, esModule: typeof rawOptions.esModule === "undefined" ? true : rawOptions.esModule, - exportStyleSheet: - typeof rawOptions.exportStyleSheet === "undefined" - ? false - : rawOptions.exportStyleSheet, + exportStyleSheet: isExportStyleSheet, }; } function shouldUseImportPlugin(options) { - if (options.modules.exportOnlyLocals) { + if (options.exportStyleSheet || options.modules.exportOnlyLocals) { return false; } diff --git a/test/__snapshots__/exportStyleSheet.test.js.snap b/test/__snapshots__/exportStyleSheet.test.js.snap index 97eefaa2..b627f7ce 100644 --- a/test/__snapshots__/exportStyleSheet.test.js.snap +++ b/test/__snapshots__/exportStyleSheet.test.js.snap @@ -1,20 +1,18 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`exportStylesheet option should work and export CSSStyleSheet for import asserions and basic output: errors 1`] = `Array []`; +exports[`exportStylesheet option should work and export CSSStyleSheet for import assertion and basic output: errors 1`] = `Array []`; -exports[`exportStylesheet option should work and export CSSStyleSheet for import asserions and basic output: module 1`] = ` +exports[`exportStylesheet option should work and export CSSStyleSheet for import assertion and basic output: module 1`] = ` "// Imports import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; -import ___CSS_LOADER_AT_RULE_IMPORT_0___ from \\"-!../../src/index.js??ruleSet[1].rules[0].oneOf[0]!./imported.css\\"; import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]}); -___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); // Module -___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n@import 'imported.css';\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); // Exports var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); ___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); @@ -22,7 +20,29 @@ export default ___CSS_LOADER_STYLE_SHEET___; " `; -exports[`exportStylesheet option should work and export CSSStyleSheet for import asserions and basic output: warnings 1`] = `Array []`; +exports[`exportStylesheet option should work and export CSSStyleSheet for import assertion and basic output: warnings 1`] = `Array []`; + +exports[`exportStylesheet option should work and keep import as is: errors 1`] = `Array []`; + +exports[`exportStylesheet option should work and keep import as is: module 1`] = ` +"// Imports +import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; +import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]}); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n@import 'imported.css';\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +// Exports +var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); +___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); +export default ___CSS_LOADER_STYLE_SHEET___; +" +`; + +exports[`exportStylesheet option should work and keep import as is: warnings 1`] = `Array []`; exports[`exportStylesheet option should work with "sass-loader": errors 1`] = `Array []`; @@ -41,19 +61,101 @@ export default ___CSS_LOADER_STYLE_SHEET___; exports[`exportStylesheet option should work with "sass-loader": warnings 1`] = `Array []`; +exports[`exportStylesheet option should work with CSS modules: errors 1`] = `Array []`; + +exports[`exportStylesheet option should work with CSS modules: module 1`] = ` +"// Imports +import ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \\"../../../../src/runtime/cssWithMappingToString.js\\"; +import ___CSS_LOADER_API_IMPORT___ from \\"../../../../src/runtime/api.js\\"; +import ___CSS_LOADER_ICSS_IMPORT_0___, * as ___CSS_LOADER_ICSS_IMPORT_0____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./values.css\\"; +import ___CSS_LOADER_ICSS_IMPORT_1___, * as ___CSS_LOADER_ICSS_IMPORT_1____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./something.css\\"; +import ___CSS_LOADER_ICSS_IMPORT_2___, * as ___CSS_LOADER_ICSS_IMPORT_2____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./imported-simple.css\\"; +import ___CSS_LOADER_ICSS_IMPORT_3___, * as ___CSS_LOADER_ICSS_IMPORT_3____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./relative.css\\"; +import ___CSS_LOADER_ICSS_IMPORT_4___, * as ___CSS_LOADER_ICSS_IMPORT_4____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./top-relative.css\\"; +import ___CSS_LOADER_ICSS_IMPORT_5___, * as ___CSS_LOADER_ICSS_IMPORT_5____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!../issue-861/node_modules/package/style.css\\"; +import ___CSS_LOADER_ICSS_IMPORT_6___, * as ___CSS_LOADER_ICSS_IMPORT_6____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./alias.css\\"; +import ___CSS_LOADER_ICSS_IMPORT_7___, * as ___CSS_LOADER_ICSS_IMPORT_7____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!sass-loader!./scss-file.scss\\"; +import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../../../src/runtime/getUrl.js\\"; +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"../../url/img.png\\", import.meta.url); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_1___, \\"\\", true); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_2___, \\"\\", true); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_3___, \\"\\", true); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_4___, \\"\\", true); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_5___, \\"\\", true); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_6___, \\"\\", true); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_7___, \\"\\", true); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"@import url(./test-other.css) (min-width: 100px);\\\\n\\\\n.JrMovmNxiARceckPi1Bb {\\\\n color: \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vDef\\"] + \\";\\\\n}\\\\n\\\\n._xZYrLKW96sXm2aniadM {\\\\n color: blue;\\\\n}\\\\n\\\\n.cXIvIhl_Be3NhMPQoE0z {\\\\n display: block;\\\\n}\\\\n\\\\n.wyIZMXPNE2D7zb9VCrHe {\\\\n width: \\" + ___CSS_LOADER_ICSS_IMPORT_1____NAMED___[\\"vSomething\\"] + \\";\\\\n}\\\\n\\\\n.as9P70j15m_wICZ94IJx {\\\\n color: \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vOther\\"] + \\";\\\\n}\\\\n\\\\n.zAepmy_SqloGdZJJmXNm {\\\\n prop: \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vDef\\"] + \\";\\\\n duplicate: \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vOther\\"] + \\";\\\\n}\\\\n\\\\n.n_zXxs10wzKREXQdQrw9 {\\\\n color: red;\\\\n}\\\\n\\\\n._u4nolEyHSlixSSx7uXN {\\\\n color: yellow;\\\\n}\\\\n\\\\n._EXVuUxUggUhA1UEBgZk {\\\\n color: gray;\\\\n}\\\\n\\\\n.o2wK31qqosVXAPAdGIxD {\\\\n color: gray;\\\\n}\\\\n\\\\n._Y2QYoxyUknZNv0u6wN3 {\\\\n color: gainsboro;\\\\n}\\\\n\\\\n.wmZh7D9g5PjWvMpojahG {\\\\n color: gainsboro;\\\\n}\\\\n\\\\n.uOEsMAq4YIv8PUUlnnhI {\\\\n color: #BF4040;\\\\n}\\\\n\\\\n._r6IpGhEbXgocCCXZgDs {\\\\n color: black;\\\\n}\\\\n\\\\n@media (min-width: 960px) {\\\\n .IsCkQQmCqI3_HSI_H_hT {\\\\n padding: 0 20px;\\\\n }\\\\n}\\\\n\\\\n.\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"sWhite\\"] + \\" {\\\\n color: white;\\\\n}\\\\n\\\\n@media \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"mSmall\\"] + \\" {\\\\n .IsCkQQmCqI3_HSI_H_hT {\\\\n padding: 20px 20px;\\\\n }\\\\n}\\\\n\\\\n.lNjqoQe7B3jKXIowFbpE {\\\\n v-ident: validIdent;\\\\n v-pre-defined-ident: left;\\\\n v-string: 'content';\\\\n v-string-1: '';\\\\n v-url: url(https://www.exammple.com/images/my-background.png);\\\\n v-url-1: url('https://www.exammple.com/images/my-background.png');\\\\n v-url-2: url(\\\\\\"https://www.exammple.com/images/my-background.png\\\\\\");\\\\n v-integer: 100;\\\\n v-integer-1: -100;\\\\n v-integer-2: +100;\\\\n v-number: .60;\\\\n v-number-1: -456.8;\\\\n v-number-2: -3.4e-2;\\\\n v-dimension: 12px;\\\\n v-percentage: 100%;\\\\n v-hex: #fff;\\\\n v-comment: /* comment */ 10px /* comment */;\\\\n v-function: rgb(0,0,0);\\\\n v-unicode-range: U+0025-00FF;\\\\n mutliple: #fff .60 100%;\\\\n}\\\\n\\\\n\\\\na {\\\\n content: 'content';\\\\n}\\\\n\\\\n@supports (content: 'content') {\\\\n a {\\\\n content: 'content';\\\\n }\\\\n}\\\\n\\\\n[class~='content'] {\\\\n color:green;\\\\n}\\\\n\\\\n.ABtimDL9fvKNWc1BjB59 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.K7O_z8z4VzoG6Ru_jb_T {\\\\n background: red;\\\\n}\\\\n\\", \\"\\",{\\"version\\":3,\\"sources\\":[\\"webpack://./modules/composes/composes.css\\"],\\"names\\":[],\\"mappings\\":\\"AAAA,gDAAgD;;AAgBhD;EACE,mDAAY;AACd;;AAEA;EACE,WAAY;AACd;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,mDAAkB;AACpB;;AAEA;EACE,mDAAc;AAChB;;AAEA;EACE,kDAAW;EACX,uDAAkB;AACpB;;AAEA;EACE,UAAU;AAEZ;;AAEA;EACE,aAAa;AAEf;;AAEA;EACE,WAAW;AAEb;;AAEA;EACE,WAAW;AAEb;;AAEA;EACE,gBAAgB;AAElB;;AAEA;EACE,gBAAgB;AAElB;;AAEA;EACE,cAAgB;AAClB;;AAEA;EACE,YAAY;AACd;;AAEA;EACE;IACE,eAAe;EACjB;AACF;;AAEA;EACE,YAAY;AACd;;AAEA;EACE;IACE,kBAAkB;EACpB;AACF;;AAsBA;EACE,mBAAgB;EAChB,yBAAwC;EACxC,mBAAkB;EAClB,cAAsB;EACtB,6DAAY;EACZ,iEAAgB;EAChB,iEAAgB;EAChB,cAAoB;EACpB,iBAAwB;EACxB,iBAAwB;EACxB,aAAkB;EAClB,kBAAsB;EACtB,mBAAsB;EACtB,iBAAwB;EACxB,kBAA0B;EAC1B,WAAY;EACZ,6CAAmC;EACnC,sBAAsB;EACtB,4BAAgC;EAChC,uBAAqC;AACvC;;;AAGA;EACE,kBAAiB;AACnB;;AAEA;EACE;IACE,kBAAiB;EACnB;AACF;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,mDAAkC;AACpC;;AAEA;EAEE,eAAe;AACjB\\",\\"sourcesContent\\":[\\"@import url(./test-other.css) (min-width: 100px);\\\\n\\\\n@value v-def from './values\\\\\\\\\\\\n\\\\\\\\\\\\n.css';\\\\n@value v-other from './values.css';\\\\n@value v-other from './values.css';\\\\n@value s-white from './values.css';\\\\n@value m-small from './values.css';\\\\n@value v-something from './something.css';\\\\n@value v-foo: blue;\\\\n@value v-bar: block;\\\\n@value v-primary: #BF4040;\\\\n@value s-black: black-selector;\\\\n@value m-large: (min-width: 960px);\\\\n\\\\n.ghi {\\\\n color: v-def;\\\\n}\\\\n\\\\n.my-class {\\\\n color: v-foo;\\\\n}\\\\n\\\\n.other {\\\\n display: v-bar;\\\\n}\\\\n\\\\n.other-other {\\\\n width: v-something;\\\\n}\\\\n\\\\n.green {\\\\n color: v-other;\\\\n}\\\\n\\\\n.foo {\\\\n prop: v-def;\\\\n duplicate: v-other;\\\\n}\\\\n\\\\n.simple {\\\\n color: red;\\\\n composes: imported-simple from './imported-simple.css';\\\\n}\\\\n\\\\n.relative {\\\\n color: yellow;\\\\n composes: imported-relative from './relative.css';\\\\n}\\\\n\\\\n.top-relative {\\\\n color: gray;\\\\n composes: imported-relative from './top-relative.css';\\\\n}\\\\n\\\\n.my-module {\\\\n color: gray;\\\\n composes: imported-module from '../issue-861/node_modules/package/style.css';\\\\n}\\\\n\\\\n.alias {\\\\n color: gainsboro;\\\\n composes: imported-alias from '~aliasesComposes/alias.css';\\\\n}\\\\n\\\\n.alias-duplicate {\\\\n color: gainsboro;\\\\n composes: imported-alias from './alias.css';\\\\n}\\\\n\\\\n.primary-selector {\\\\n color: v-primary;\\\\n}\\\\n\\\\n.s-black {\\\\n color: black;\\\\n}\\\\n\\\\n@media m-large {\\\\n .header {\\\\n padding: 0 20px;\\\\n }\\\\n}\\\\n\\\\n.s-white {\\\\n color: white;\\\\n}\\\\n\\\\n@media m-small {\\\\n .header {\\\\n padding: 20px 20px;\\\\n }\\\\n}\\\\n\\\\n@value v-ident: validIdent;\\\\n@value v-pre-defined-ident: left;\\\\n@value v-string: 'content';\\\\n@value v-string-1: '';\\\\n@value v-url: url(https://www.exammple.com/images/my-background.png);\\\\n@value v-url-1: url('https://www.exammple.com/images/my-background.png');\\\\n@value v-url-2: url(\\\\\\"https://www.exammple.com/images/my-background.png\\\\\\");\\\\n@value v-integer: 100;\\\\n@value v-integer-1: -100;\\\\n@value v-integer-2: +100;\\\\n@value v-number: .60;\\\\n@value v-number-1: -456.8;\\\\n@value v-number-2: -3.4e-2;\\\\n@value v-dimension: 12px;\\\\n@value v-percentage: 100%;\\\\n@value v-hex: #fff;\\\\n@value v-comment: /* comment */;\\\\n@value v-function: rgb(0,0,0);\\\\n@value v-unicode-range: U+0025-00FF;\\\\n\\\\n.foobarbaz {\\\\n v-ident: v-ident;\\\\n v-pre-defined-ident: v-pre-defined-ident;\\\\n v-string: v-string;\\\\n v-string-1: v-string-1;\\\\n v-url: v-url;\\\\n v-url-1: v-url-1;\\\\n v-url-2: v-url-2;\\\\n v-integer: v-integer;\\\\n v-integer-1: v-integer-1;\\\\n v-integer-2: v-integer-2;\\\\n v-number: v-number;\\\\n v-number-1: v-number-1;\\\\n v-number-2: v-number-2;\\\\n v-dimension: v-dimension;\\\\n v-percentage: v-percentage;\\\\n v-hex: v-hex;\\\\n v-comment: v-comment 10px v-comment;\\\\n v-function: v-function;\\\\n v-unicode-range: v-unicode-range;\\\\n mutliple: v-hex v-number v-percentage;\\\\n}\\\\n\\\\n\\\\na {\\\\n content: v-string;\\\\n}\\\\n\\\\n@supports (content: v-string) {\\\\n a {\\\\n content: v-string;\\\\n }\\\\n}\\\\n\\\\n[class~=v-string] {\\\\n color:green;\\\\n}\\\\n\\\\n.url {\\\\n background: url(../../url/img.png);\\\\n}\\\\n\\\\n.main {\\\\n composes: scssClass from 'sass-loader!./scss-file.scss';\\\\n background: red;\\\\n}\\\\n\\"],\\"sourceRoot\\":\\"\\"}]); +// Exports +export var vDef = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vDef\\"] + \\"\\"; +export var vOther = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vOther\\"] + \\"\\"; +export var sWhite = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"sWhite\\"] + \\"\\"; +export var mSmall = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"mSmall\\"] + \\"\\"; +export var vSomething = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_1____NAMED___[\\"vSomething\\"] + \\"\\"; +export var vFoo = \\"blue\\"; +export var vBar = \\"block\\"; +export var vPrimary = \\"#BF4040\\"; +export var sBlack = \\"black-selector\\"; +export var mLarge = \\"(min-width: 960px)\\"; +export var vIdent = \\"validIdent\\"; +export var vPreDefinedIdent = \\"left\\"; +export var vString = \\"'content'\\"; +export var vString1 = \\"''\\"; +export var vUrl = \\"url(https://www.exammple.com/images/my-background.png)\\"; +export var vUrl1 = \\"url('https://www.exammple.com/images/my-background.png')\\"; +export var vUrl2 = \\"url(\\\\\\"https://www.exammple.com/images/my-background.png\\\\\\")\\"; +export var vInteger = \\"100\\"; +export var vInteger1 = \\"-100\\"; +export var vInteger2 = \\"+100\\"; +export var vNumber = \\".60\\"; +export var vNumber1 = \\"-456.8\\"; +export var vNumber2 = \\"-3.4e-2\\"; +export var vDimension = \\"12px\\"; +export var vPercentage = \\"100%\\"; +export var vHex = \\"#fff\\"; +export var vComment = \\" /* comment */\\"; +export var vFunction = \\"rgb(0,0,0)\\"; +export var vUnicodeRange = \\"U+0025-00FF\\"; +export var ghi = \\"JrMovmNxiARceckPi1Bb\\"; +export var myClass = \\"_xZYrLKW96sXm2aniadM\\"; +export var other = \\"cXIvIhl_Be3NhMPQoE0z\\"; +export var otherOther = \\"wyIZMXPNE2D7zb9VCrHe\\"; +export var green = \\"as9P70j15m_wICZ94IJx\\"; +export var foo = \\"zAepmy_SqloGdZJJmXNm\\"; +export var simple = \\"n_zXxs10wzKREXQdQrw9 \\" + ___CSS_LOADER_ICSS_IMPORT_2____NAMED___[\\"importedSimple\\"] + \\"\\"; +export var relative = \\"_u4nolEyHSlixSSx7uXN \\" + ___CSS_LOADER_ICSS_IMPORT_3____NAMED___[\\"importedRelative\\"] + \\"\\"; +export var topRelative = \\"_EXVuUxUggUhA1UEBgZk \\" + ___CSS_LOADER_ICSS_IMPORT_4____NAMED___[\\"importedRelative\\"] + \\"\\"; +export var myModule = \\"o2wK31qqosVXAPAdGIxD \\" + ___CSS_LOADER_ICSS_IMPORT_5____NAMED___[\\"importedModule\\"] + \\"\\"; +export var alias = \\"_Y2QYoxyUknZNv0u6wN3 \\" + ___CSS_LOADER_ICSS_IMPORT_6____NAMED___[\\"importedAlias\\"] + \\"\\"; +export var aliasDuplicate = \\"wmZh7D9g5PjWvMpojahG \\" + ___CSS_LOADER_ICSS_IMPORT_6____NAMED___[\\"importedAlias\\"] + \\"\\"; +export var primarySelector = \\"uOEsMAq4YIv8PUUlnnhI\\"; +export var blackSelector = \\"_r6IpGhEbXgocCCXZgDs\\"; +export var header = \\"IsCkQQmCqI3_HSI_H_hT\\"; +export var foobarbaz = \\"lNjqoQe7B3jKXIowFbpE\\"; +export var url = \\"ABtimDL9fvKNWc1BjB59\\"; +export var main = \\"K7O_z8z4VzoG6Ru_jb_T \\" + ___CSS_LOADER_ICSS_IMPORT_7____NAMED___[\\"scssClass\\"] + \\"\\"; +var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); +___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); +export default ___CSS_LOADER_STYLE_SHEET___; +" +`; + +exports[`exportStylesheet option should work with CSS modules: warnings 1`] = `Array []`; + exports[`exportStylesheet option should work with CommonJS modules: errors 1`] = `Array []`; exports[`exportStylesheet option should work with CommonJS modules: module 1`] = ` "// Imports var ___CSS_LOADER_API_IMPORT___ = require(\\"../../src/runtime/api.js\\"); -var ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\\"-!../../src/index.js??ruleSet[1].rules[0].use[0]!./imported.css\\"); var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../src/runtime/getUrl.js\\"); var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./url/img.png\\"); var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]}); -___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); // Module -___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==);\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n@import 'imported.css';\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==);\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); // Exports var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); ___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); @@ -68,16 +170,14 @@ exports[`exportStylesheet option should work with ECMA modules: errors 1`] = `Ar exports[`exportStylesheet option should work with ECMA modules: module 1`] = ` "// Imports import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; -import ___CSS_LOADER_AT_RULE_IMPORT_0___ from \\"-!../../src/index.js??ruleSet[1].rules[0].use[0]!./imported.css\\"; import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]}); -___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); // Module -___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n@import 'imported.css';\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); // Exports var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); ___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); @@ -93,16 +193,14 @@ exports[`exportStylesheet option should work with source maps: module 1`] = ` "// Imports import ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \\"../../src/runtime/cssWithMappingToString.js\\"; import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; -import ___CSS_LOADER_AT_RULE_IMPORT_0___ from \\"-!../../src/index.js??ruleSet[1].rules[0].use[0]!./imported.css\\"; import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); -___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); // Module -___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\",{\\"version\\":3,\\"sources\\":[\\"webpack://./basic.css\\"],\\"names\\":[],\\"mappings\\":\\"AAAA,gBAAgB;;AAIhB,YAAY;;AAEZ;EACE,UAAU;EACV,mDAAgC;AAClC;;AAEA;EACE,mDAAgC;AAClC;;AAEA;EACE,UAAU;EACV,UAAU;AACZ;;AAEA,SAAS,QAAQ,EAAE;;AAEnB,MAAM;;AAEN,SAAS,QAAQ,EAAE;;AAEnB,SAAS,iBAAiB;;AAE1B;EACE;IACE,2BAA2B;EAC7B;AACF;;AAEA;EACE,gBAAgB;EAChB,qBAAqB;EACrB,sBAAsB;EACtB,0BAA0B;EAC1B,4BAA4B;AAC9B;;AAEA,OAAO;AACP,QAAQ;;AAER,SAAS;;AAET;EACE,aAAa;EACb,eAAe;AACjB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,qBAAqB;AACvB;;AAEA,aAAa;;AAEb,YAAY;;AAEZ,QAAQ;;AAER;EACE,mBAAmB,EAAE,2BAA2B;AAClD;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,gBAAgB;AAClB;;AAEA,IAAI;;AAEJ,WAAW,EAAE,sCAAsC;AACnD,YAAY,EAAE,yCAAyC;AACvD,YAAY,EAAE,2CAA2C;AACzD,UAAU,EAAE,0CAA0C;AACtD,IAAI,EAAE,oCAAoC;;AAE1C;EACE,qBAAqB;EACrB;;;;;;;;;;GAUC;AACH;;AAEA;EACE,mBAAmB;EACnB,oBAAoB;EACpB,oBAAoB;EACpB,mBAAmB;EACnB,iBAAiB;EACjB,wBAAwB;AAC1B;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,mDAAq1B;AACv1B;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,WAAW;AACb\\",\\"sourcesContent\\":[\\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n@import 'imported.css';\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\\\\\"./url/img.png\\\\\\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\\\\\"./url/img.png\\\\\\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==);\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\"],\\"sourceRoot\\":\\"\\"}]); +___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n@import 'imported.css';\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\",{\\"version\\":3,\\"sources\\":[\\"webpack://./basic.css\\"],\\"names\\":[],\\"mappings\\":\\"AAAA,gBAAgB;;AAEhB,sBAAsB;;AAEtB,YAAY;;AAEZ;EACE,UAAU;EACV,mDAAgC;AAClC;;AAEA;EACE,mDAAgC;AAClC;;AAEA;EACE,UAAU;EACV,UAAU;AACZ;;AAEA,SAAS,QAAQ,EAAE;;AAEnB,MAAM;;AAEN,SAAS,QAAQ,EAAE;;AAEnB,SAAS,iBAAiB;;AAE1B;EACE;IACE,2BAA2B;EAC7B;AACF;;AAEA;EACE,gBAAgB;EAChB,qBAAqB;EACrB,sBAAsB;EACtB,0BAA0B;EAC1B,4BAA4B;AAC9B;;AAEA,OAAO;AACP,QAAQ;;AAER,SAAS;;AAET;EACE,aAAa;EACb,eAAe;AACjB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,qBAAqB;AACvB;;AAEA,aAAa;;AAEb,YAAY;;AAEZ,QAAQ;;AAER;EACE,mBAAmB,EAAE,2BAA2B;AAClD;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,gBAAgB;AAClB;;AAEA,IAAI;;AAEJ,WAAW,EAAE,sCAAsC;AACnD,YAAY,EAAE,yCAAyC;AACvD,YAAY,EAAE,2CAA2C;AACzD,UAAU,EAAE,0CAA0C;AACtD,IAAI,EAAE,oCAAoC;;AAE1C;EACE,qBAAqB;EACrB;;;;;;;;;;GAUC;AACH;;AAEA;EACE,mBAAmB;EACnB,oBAAoB;EACpB,oBAAoB;EACpB,mBAAmB;EACnB,iBAAiB;EACjB,wBAAwB;AAC1B;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,mDAAq1B;AACv1B;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,WAAW;AACb\\",\\"sourcesContent\\":[\\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n@import 'imported.css';\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\\\\\"./url/img.png\\\\\\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\\\\\"./url/img.png\\\\\\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==);\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\"],\\"sourceRoot\\":\\"\\"}]); // Exports var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); ___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); @@ -112,21 +210,209 @@ export default ___CSS_LOADER_STYLE_SHEET___; exports[`exportStylesheet option should work with source maps: warnings 1`] = `Array []`; +exports[`exportStylesheet option should work with urls: errors 1`] = `Array []`; + +exports[`exportStylesheet option should work with urls: module 1`] = ` +"// Imports +import ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \\"../../../src/runtime/cssWithMappingToString.js\\"; +import ___CSS_LOADER_API_IMPORT___ from \\"../../../src/runtime/api.js\\"; +import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../../src/runtime/getUrl.js\\"; +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"package/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_2___ = new URL(\\"./other-img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_3___ = new URL(\\"./img img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_4___ = new URL(\\"/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_5___ = new URL(\\"data:image/png;base64,AAA\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_6___ = new URL(\\"data:image/svg+xml;charset=utf-8,\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_7___ = new URL(\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_8___ = new URL(\\"data:image/svg+xml;charset=utf-8,#filter\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_9___ = new URL(\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba%28255%2C255%2C255%2C1%29%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_10___ = new URL(\\"./font.woff\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_11___ = new URL(\\"./font.woff2\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_12___ = new URL(\\"./font.eot\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_13___ = new URL(\\"package/font.ttf\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_14___ = new URL(\\"./font with spaces.eot\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_15___ = new URL(\\"./font.svg\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_16___ = new URL(\\"./font.woff2?foo=bar\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_17___ = new URL(\\"./img1x.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_18___ = new URL(\\"./img2x.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_19___ = new URL(\\"./img.png?foo\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_20___ = new URL(\\"./img.png?foo=bar\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_21___ = new URL(\\"./img.png?\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_22___ = new URL(\\"img-simple.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_23___ = new URL(\\"/url/img-simple.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_24___ = new URL(\\"../url/img-simple.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_25___ = new URL(\\"aliasesImg/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_26___ = new URL(\\"./nested/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_27___ = new URL(\\"nested/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_28___ = new URL(\\"./img3x.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_29___ = new URL(\\"./img1x.png?foo=bar\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_30___ = new URL(\\"./img'img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_31___ = new URL(\\"./img'''img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_32___ = new URL(\\"./img(img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_33___ = new URL(\\"./img)img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_34___ = new URL(\\"./img'() img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_35___ = new URL(\\"img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_36___ = new URL(\\"./something.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_37___ = new URL(\\"./something.png?foo=bar\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_38___ = new URL(\\"./something.png?bar=foo\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_39___ = new URL(\\"./something.png?foo=1&bar=2\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_40___ = new URL(\\"./something.png?foo=2&bar=1\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_41___ = new URL(\\"data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3C%21DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%0A%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%0A%09%20width%3D%22191px%22%20height%3D%22191px%22%20viewBox%3D%220%200%20191%20191%22%20enable-background%3D%22new%200%200%20191%20191%22%20xml%3Aspace%3D%22preserve%22%3E%0A%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M95.5%2C0C42.8%2C0%2C0%2C42.8%2C0%2C95.5S42.8%2C191%2C95.5%2C191S191%2C148.2%2C191%2C95.5S148.2%2C0%2C95.5%2C0z%20M95.5%2C187.6%0A%09c-50.848%2C0-92.1-41.25-92.1-92.1c0-50.848%2C41.252-92.1%2C92.1-92.1c50.85%2C0%2C92.1%2C41.252%2C92.1%2C92.1%0A%09C187.6%2C146.35%2C146.35%2C187.6%2C95.5%2C187.6z%22%2F%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M92.9%2C10v8.6H91v-6.5c-0.1%2C0.1-0.2%2C0.2-0.4%2C0.3c-0.2%2C0.1-0.3%2C0.2-0.4%2C0.2c-0.1%2C0-0.3%2C0.1-0.5%2C0.2%0A%09%09c-0.2%2C0.1-0.3%2C0.1-0.5%2C0.1v-1.6c0.5-0.1%2C0.9-0.3%2C1.4-0.5c0.5-0.2%2C0.8-0.5%2C1.2-0.7h1.1V10z%22%2F%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M97.1%2C17.1h3.602v1.5h-5.6V18c0-0.4%2C0.1-0.8%2C0.2-1.2c0.1-0.4%2C0.3-0.6%2C0.5-0.9c0.2-0.3%2C0.5-0.5%2C0.7-0.7%0A%09%09c0.2-0.2%2C0.5-0.4%2C0.7-0.6c0.199-0.2%2C0.5-0.3%2C0.6-0.5c0.102-0.2%2C0.301-0.3%2C0.5-0.5c0.2-0.2%2C0.2-0.3%2C0.301-0.5%0A%09%09c0.101-0.2%2C0.101-0.3%2C0.101-0.5c0-0.4-0.101-0.6-0.3-0.8c-0.2-0.2-0.4-0.3-0.801-0.3c-0.699%2C0-1.399%2C0.3-2.101%2C0.9v-1.6%0A%09%09c0.7-0.5%2C1.5-0.7%2C2.5-0.7c0.399%2C0%2C0.8%2C0.1%2C1.101%2C0.2c0.301%2C0.1%2C0.601%2C0.3%2C0.899%2C0.5c0.3%2C0.2%2C0.399%2C0.5%2C0.5%2C0.8%0A%09%09c0.101%2C0.3%2C0.2%2C0.6%2C0.2%2C1s-0.102%2C0.7-0.2%2C1c-0.099%2C0.3-0.3%2C0.6-0.5%2C0.8c-0.2%2C0.2-0.399%2C0.5-0.7%2C0.7c-0.3%2C0.2-0.5%2C0.4-0.8%2C0.6%0A%09%09c-0.2%2C0.1-0.399%2C0.3-0.5%2C0.4s-0.3%2C0.3-0.5%2C0.4s-0.2%2C0.3-0.3%2C0.4C97.1%2C17%2C97.1%2C17%2C97.1%2C17.1z%22%2F%3E%0A%3C%2Fg%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M15%2C95.4c0%2C0.7-0.1%2C1.4-0.2%2C2c-0.1%2C0.6-0.4%2C1.1-0.7%2C1.5C13.8%2C99.3%2C13.4%2C99.6%2C12.9%2C99.8s-1%2C0.3-1.5%2C0.3%0A%09%09c-0.7%2C0-1.3-0.1-1.8-0.3v-1.5c0.4%2C0.3%2C1%2C0.4%2C1.6%2C0.4c0.6%2C0%2C1.1-0.2%2C1.5-0.7c0.4-0.5%2C0.5-1.1%2C0.5-1.9l0%2C0%0A%09%09C12.8%2C96.7%2C12.3%2C96.9%2C11.5%2C96.9c-0.3%2C0-0.7-0.102-1-0.2c-0.3-0.101-0.5-0.3-0.8-0.5c-0.3-0.2-0.4-0.5-0.5-0.8%0A%09%09c-0.1-0.3-0.2-0.7-0.2-1c0-0.4%2C0.1-0.8%2C0.2-1.2c0.1-0.4%2C0.3-0.7%2C0.6-0.9c0.3-0.2%2C0.6-0.5%2C0.9-0.6c0.3-0.1%2C0.8-0.2%2C1.2-0.2%0A%09%09c0.5%2C0%2C0.9%2C0.1%2C1.2%2C0.3c0.3%2C0.2%2C0.7%2C0.4%2C0.9%2C0.8s0.5%2C0.7%2C0.6%2C1.2S15%2C94.8%2C15%2C95.4z%20M13.1%2C94.4c0-0.2%2C0-0.4-0.1-0.6%0A%09%09c-0.1-0.2-0.1-0.4-0.2-0.5c-0.1-0.1-0.2-0.2-0.4-0.3c-0.2-0.1-0.3-0.1-0.5-0.1c-0.2%2C0-0.3%2C0-0.4%2C0.1s-0.3%2C0.2-0.3%2C0.3%0A%09%09c0%2C0.1-0.2%2C0.3-0.2%2C0.4c0%2C0.1-0.1%2C0.4-0.1%2C0.6c0%2C0.2%2C0%2C0.4%2C0.1%2C0.6c0.1%2C0.2%2C0.1%2C0.3%2C0.2%2C0.4c0.1%2C0.1%2C0.2%2C0.2%2C0.4%2C0.3%0A%09%09c0.2%2C0.1%2C0.3%2C0.1%2C0.5%2C0.1c0.2%2C0%2C0.3%2C0%2C0.4-0.1s0.2-0.2%2C0.3-0.3c0.1-0.1%2C0.2-0.2%2C0.2-0.4C13%2C94.7%2C13.1%2C94.6%2C13.1%2C94.4z%22%2F%3E%0A%3C%2Fg%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M176%2C99.7V98.1c0.6%2C0.4%2C1.2%2C0.602%2C2%2C0.602c0.5%2C0%2C0.8-0.102%2C1.1-0.301c0.301-0.199%2C0.4-0.5%2C0.4-0.801%0A%09%09c0-0.398-0.2-0.699-0.5-0.898c-0.3-0.2-0.8-0.301-1.3-0.301h-0.802V95h0.701c1.101%2C0%2C1.601-0.4%2C1.601-1.1c0-0.7-0.4-1-1.302-1%0A%09%09c-0.6%2C0-1.1%2C0.2-1.6%2C0.5v-1.5c0.6-0.3%2C1.301-0.4%2C2.1-0.4c0.9%2C0%2C1.5%2C0.2%2C2%2C0.6s0.701%2C0.9%2C0.701%2C1.5c0%2C1.1-0.601%2C1.8-1.701%2C2.1l0%2C0%0A%09%09c0.602%2C0.1%2C1.102%2C0.3%2C1.4%2C0.6s0.5%2C0.8%2C0.5%2C1.3c0%2C0.801-0.3%2C1.4-0.9%2C1.9c-0.6%2C0.5-1.398%2C0.7-2.398%2C0.7%0A%09%09C177.2%2C100.1%2C176.5%2C100%2C176%2C99.7z%22%2F%3E%0A%3C%2Fg%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M98.5%2C179.102c0%2C0.398-0.1%2C0.799-0.2%2C1.199C98.2%2C180.7%2C98%2C181%2C97.7%2C181.2s-0.601%2C0.5-0.9%2C0.601%0A%09%09c-0.3%2C0.1-0.7%2C0.199-1.2%2C0.199c-0.5%2C0-0.9-0.1-1.3-0.3c-0.4-0.2-0.7-0.399-0.9-0.8c-0.2-0.4-0.5-0.7-0.6-1.2%0A%09%09c-0.1-0.5-0.2-1-0.2-1.601c0-0.699%2C0.1-1.399%2C0.3-2c0.2-0.601%2C0.4-1.101%2C0.8-1.5c0.4-0.399%2C0.7-0.699%2C1.2-1c0.5-0.3%2C1-0.3%2C1.6-0.3%0A%09%09c0.6%2C0%2C1.2%2C0.101%2C1.5%2C0.199v1.5c-0.4-0.199-0.9-0.399-1.4-0.399c-0.3%2C0-0.6%2C0.101-0.8%2C0.2c-0.2%2C0.101-0.5%2C0.3-0.7%2C0.5%0A%09%09c-0.2%2C0.199-0.3%2C0.5-0.4%2C0.8c-0.1%2C0.301-0.2%2C0.7-0.2%2C1.101l0%2C0c0.4-0.601%2C1-0.8%2C1.8-0.8c0.3%2C0%2C0.7%2C0.1%2C0.9%2C0.199%0A%09%09c0.2%2C0.101%2C0.5%2C0.301%2C0.7%2C0.5c0.199%2C0.2%2C0.398%2C0.5%2C0.5%2C0.801C98.5%2C178.2%2C98.5%2C178.7%2C98.5%2C179.102z%20M96.7%2C179.2%0A%09%09c0-0.899-0.4-1.399-1.1-1.399c-0.2%2C0-0.3%2C0-0.5%2C0.1c-0.2%2C0.101-0.3%2C0.201-0.4%2C0.301c-0.1%2C0.101-0.2%2C0.199-0.2%2C0.4%0A%09%09c0%2C0.199-0.1%2C0.299-0.1%2C0.5c0%2C0.199%2C0%2C0.398%2C0.1%2C0.6s0.1%2C0.3%2C0.2%2C0.5c0.1%2C0.199%2C0.2%2C0.199%2C0.4%2C0.3c0.2%2C0.101%2C0.3%2C0.101%2C0.5%2C0.101%0A%09%09c0.2%2C0%2C0.3%2C0%2C0.5-0.101c0.2-0.101%2C0.301-0.199%2C0.301-0.3c0-0.1%2C0.199-0.301%2C0.199-0.399C96.6%2C179.7%2C96.7%2C179.4%2C96.7%2C179.2z%22%2F%3E%0A%3C%2Fg%3E%0A%3Ccircle%20fill%3D%22%23636363%22%20cx%3D%2295%22%20cy%3D%2295%22%20r%3D%227%22%2F%3E%0A%3C%2Fsvg%3E%0A\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_42___ = new URL(\\"/guide/img/banWord/addCoinDialogTitleBg.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_43___ = new URL(\\"!!../../helpers/url-loader.js?esModule=false!package/img-single.png?ignore-asset-modules\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_44___ = new URL(\\"nested/other.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_45___ = new URL(\\"data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27none%27 stroke=%27%23343a40%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27M2 5l6 6 6-6%27/%3e%3c/svg%3e\\", import.meta.url); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___, { hash: \\"#hash\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +var ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___); +var ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___); +var ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___); +var ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___); +var ___CSS_LOADER_URL_REPLACEMENT_7___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___); +var ___CSS_LOADER_URL_REPLACEMENT_8___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___); +var ___CSS_LOADER_URL_REPLACEMENT_9___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_8___); +var ___CSS_LOADER_URL_REPLACEMENT_10___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_9___); +var ___CSS_LOADER_URL_REPLACEMENT_11___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_10___); +var ___CSS_LOADER_URL_REPLACEMENT_12___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___); +var ___CSS_LOADER_URL_REPLACEMENT_13___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_12___); +var ___CSS_LOADER_URL_REPLACEMENT_14___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_13___); +var ___CSS_LOADER_URL_REPLACEMENT_15___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_14___); +var ___CSS_LOADER_URL_REPLACEMENT_16___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_15___, { hash: \\"#svgFontName\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_17___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_16___); +var ___CSS_LOADER_URL_REPLACEMENT_18___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_12___, { hash: \\"?#iefix\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_19___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_14___, { hash: \\"?#iefix\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_20___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___); +var ___CSS_LOADER_URL_REPLACEMENT_21___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_18___); +var ___CSS_LOADER_URL_REPLACEMENT_22___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_19___); +var ___CSS_LOADER_URL_REPLACEMENT_23___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_20___); +var ___CSS_LOADER_URL_REPLACEMENT_24___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_20___, { hash: \\"#hash\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_25___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_21___); +var ___CSS_LOADER_URL_REPLACEMENT_26___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_22___); +var ___CSS_LOADER_URL_REPLACEMENT_27___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_23___); +var ___CSS_LOADER_URL_REPLACEMENT_28___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_24___); +var ___CSS_LOADER_URL_REPLACEMENT_29___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_25___); +var ___CSS_LOADER_URL_REPLACEMENT_30___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_26___); +var ___CSS_LOADER_URL_REPLACEMENT_31___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_27___); +var ___CSS_LOADER_URL_REPLACEMENT_32___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___, { needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_33___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_18___, { needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_34___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___, { needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_35___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_28___, { needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_36___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_29___, { needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_37___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___, { hash: \\"#hash\\", needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_38___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___, { hash: \\"?#iefix\\", needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_39___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_28___); +var ___CSS_LOADER_URL_REPLACEMENT_40___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_30___); +var ___CSS_LOADER_URL_REPLACEMENT_41___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_31___); +var ___CSS_LOADER_URL_REPLACEMENT_42___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_32___); +var ___CSS_LOADER_URL_REPLACEMENT_43___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_33___); +var ___CSS_LOADER_URL_REPLACEMENT_44___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_34___); +var ___CSS_LOADER_URL_REPLACEMENT_45___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_35___); +var ___CSS_LOADER_URL_REPLACEMENT_46___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_36___); +var ___CSS_LOADER_URL_REPLACEMENT_47___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_37___); +var ___CSS_LOADER_URL_REPLACEMENT_48___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_37___, { hash: \\"#hash\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_49___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_38___); +var ___CSS_LOADER_URL_REPLACEMENT_50___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_37___, { hash: \\"#foo\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_51___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_38___, { hash: \\"#bar\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_52___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_39___); +var ___CSS_LOADER_URL_REPLACEMENT_53___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_40___); +var ___CSS_LOADER_URL_REPLACEMENT_54___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_41___); +var ___CSS_LOADER_URL_REPLACEMENT_55___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_42___); +var ___CSS_LOADER_URL_REPLACEMENT_56___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_43___); +var ___CSS_LOADER_URL_REPLACEMENT_57___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_44___); +var ___CSS_LOADER_URL_REPLACEMENT_58___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_45___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"@import \\\\\\"./imported.css\\\\\\";\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\"\\\\n );\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_6___ + \\") url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_8___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n filter: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n filter: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \\");\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url(#highlight);\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_11___ + \\") format('woff'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_12___ + \\") format('woff2'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \\") format('eot'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") format('truetype'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_16___ + \\") format('svg'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_17___ + \\") format('woff2'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_18___ + \\") format('embedded-opentype'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_19___ + \\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n body {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n }\\\\n}\\\\n\\\\na {\\\\n content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes anim {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") xyz;\\\\n}\\\\n\\\\n.a {\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x)\\\\n}\\\\n\\\\n.a {\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x)\\\\n}\\\\n\\\\n.class {\\\\n background: green url() xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url('') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(' ') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\n ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_22___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_23___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: ___CSS_LOADER_URL___;\\\\n background: ___CSS_LOADER_URL___INDEX___;\\\\n background: ___CSS_LOADER_URL___99999___;\\\\n background: ___CSS_LOADER_IMPORT___;\\\\n background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n.pure-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_26___ + \\");\\\\n}\\\\n\\\\n.root-relative {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_27___ + \\");\\\\n}\\\\n\\\\n.above-below {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_28___ + \\");\\\\n}\\\\n\\\\n.tilde {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\");\\\\n}\\\\n\\\\n.aliases {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_29___ + \\") ;\\\\n}\\\\n\\\\na {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_30___ + \\");\\\\n}\\\\n\\\\na {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_31___ + \\");\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n /* Broken */\\\\n background-image: -webkit-image-set();\\\\n background-image: -webkit-image-set('');\\\\n background-image: image-set();\\\\n background-image: image-set('');\\\\n background-image: image-set(\\\\\\"\\\\\\");\\\\n background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n background-image: image-set(url());\\\\n background-image: image-set(\\\\n url()\\\\n );\\\\n background-image: image-set(URL());\\\\n background-image: image-set(url(''));\\\\n background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n background-image: image-set(url('') 1x);\\\\n background-image: image-set(1x);\\\\n background-image: image-set(\\\\n 1x\\\\n );\\\\n background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n /* Strings */\\\\n background-image: -webkit-image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x),\\\\n image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x);\\\\n background-image: image-set(\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x,\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x,\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\" 600dpi\\\\n );\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_37___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_38___ + \\" 1x);\\\\n\\\\n /* With \`url\` function */\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x);\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x);\\\\n background-image: -webkit-image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x);\\\\n background-image: image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x);\\\\n background-image: image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_39___ + \\") 600dpi\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 2x);\\\\n\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x);\\\\n}\\\\n\\\\n.class {\\\\n /* Not allowed on windows */\\\\n /* background: url(./img\\\\\\\\\\\\\\"img.png); */\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n\\\\n background-image: image-set(\\\\n /* Not allowed on windows */\\\\n /* url(./img\\\\\\\\\\\\\\"img.png) 1x, */\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\") 2x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\") 3x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\") 4x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\") 5x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 6x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\") 7x\\\\n );\\\\n}\\\\n\\\\n.class-class-class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n}\\\\n\\\\n/* Comment */\\\\n\\\\n.class.class.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n}\\\\n\\\\n.other-test-case {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n}\\\\n\\\\n.qqq {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_45___ + \\");\\\\n}\\\\n\\\\n.www {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n /* Should be one import */\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_46___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_46___ + \\");\\\\n\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_47___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_47___ + \\");\\\\n\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_48___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_48___ + \\");\\\\n\\\\n /* Should be two imports */\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_47___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_49___ + \\");\\\\n\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_50___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_51___ + \\");\\\\n\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_52___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_53___ + \\");\\\\n}\\\\n\\\\n.base {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_54___ + \\") 50% 50%/191px no-repeat;\\\\n}\\\\n\\\\n.strange {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.my-background {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_55___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\", 'foo', './img.png', url('./img.png'));\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\", 'foo', './img.png', url('./img.png')) 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x);\\\\n}\\\\n\\\\n.button {\\\\n background-image: url('data:image/svg+xml;utf8,');\\\\n}\\\\n\\\\n/* We need to use \`resourceQuery: /inline/\` */\\\\n/* Hard to test on webpack v4 */\\\\n.qqq {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_56___ + \\")\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_45___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_45___ + \\");\\\\n}\\\\n\\\\n/** Prefer relative **/\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_31___ + \\");\\\\n}\\\\n\\\\n/** Prefer from modules **/\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_57___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\");\\\\n}\\\\n\\\\n.foo {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_58___ + \\");\\\\n}\\\\n\\", \\"\\",{\\"version\\":3,\\"sources\\":[\\"webpack://./url/url.css\\"],\\"names\\":[],\\"mappings\\":\\"AAAA,wBAAwB;;AAExB;EACE,mDAA4B;AAC9B;;AAEA;EACE,mDAA4B;AAC9B;;AAEA;EACE,mDAA0B;AAC5B;;AAEA;EACE,mDAAiC;AACnC;;AAEA;EACE;;GAEC;AACH;;AAEA;EACE,+DAAwC;AAC1C;;AAEA;EACE,+DAAwC;AAC1C;;AAEA;EACE,+DAAsC;AACxC;;AAEA;EACE,qGAAgE;AAClE;;AAEA;EACE,+DAA4C;AAC9C;;AAEA;EACE,+DAA4C;AAC9C;;AAEA;EACE,6DAAmC;AACrC;;AAEA;EACE,4HAAmH;AACrH;;AAEA;EACE,yDAA4W;AAC9W;;AAEA;EACE,yDAAomB;AACtmB;;AAEA;EACE,+CAAmY;AACrY;;AAEA;EACE,gDAA6nB;AAC/nB;;AAEA;EACE,uBAAuB;AACzB;;AAEA;EACE,2BAA2B;AAC7B;;AAEA;EACE;;;;;;;;wEAQkE;AACpE;;AAEA;EACE;IACE,mDAA4B;EAC9B;AACF;;AAEA;EACE,+BAA+B;AACjC;;AAEA;EACE,iCAAiC;AACnC;;AAEA;EACE,6DAAsC;AACxC;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE,2BAA2B;AAC7B;;AAEA;EACE,6BAA6B;AAC/B;;AAEA;EACE,6BAA6B;AAC/B;;AAEA;EACE,gCAAgC;AAClC;;AAEA;EACE;OACK;AACP;;AAEA;EACE,+FAA+F;AACjG;;AAEA;EACE,yFAAyF;AAC3F;;AAEA;EACE,oDAAgC;AAClC;;AAEA;EACE,oDAAoC;AACtC;;AAEA;EACE,oDAAyC;AAC3C;;AAEA;EACE,oDAAyC;AAC3C;;AAEA;EACE,oDAA6B;AAC/B;;AAEA;EACE,yIAA8Y;AAChZ;;AAEA;EACE,gCAAgC;EAChC,wCAAwC;EACxC,wCAAwC;EACxC,mCAAmC;EACnC,2CAA2C;EAC3C,2CAA2C;AAC7C;;AAEA;EACE,oDAAiC;AACnC;;AAEA;EACE,oDAAsC;AACxC;;AAEA;EACE,oDAAwC;AAC1C;;AAEA;EACE,mDAAmC;AACrC;;AAEA;EACE,qDAAuC;AACzC;;AAEA;EACE,oDAAiC;AACnC;;AAEA;EACE,oDAA+B;AACjC;;AAEA;EACE,6DAA6D;AAC/D;;AAEA;EACE,WAAW;EACX,qCAAqC;EACrC,uCAAuC;EACvC,6BAA6B;EAC7B,+BAA+B;EAC/B,+BAA+B;EAC/B,kCAAkC;EAClC,kCAAkC;EAClC;;GAEC;EACD,kCAAkC;EAClC,oCAAoC;EACpC,oCAAoC;EACpC,uCAAuC;EACvC,+BAA+B;EAC/B;;GAEC;EACD,0CAA0C;;EAE1C,YAAY;EACZ,mHAAuE;EACvE,mEAA6C;EAC7C,2GAA+D;EAC/D,2GAAmE;EACnE;6FAC+C;EAC/C;;;;GAIC;EACD,mEAAqD;EACrD,mEAAkD;EAClD,mEAAoD;;EAEpD,wBAAwB;EACxB,6HAAiF;EACjF,gFAA0D;EAC1D;;GAEC;EACD,wEAAgD;EAChD;;GAEC;EACD,qHAAyE;EACzE;;;;GAIC;EACD,mHAA6E;;EAE7E,gHAAoE;AACtE;;AAEA;EACE,2BAA2B;EAC3B,qCAAqC;EACrC,oDAA+B;EAC/B,oDAAmC;EACnC,oDAA+B;EAC/B,oDAA+B;EAC/B,mDAA+B;EAC/B,oDAAqC;;EAErC;;;;;;;;;GASC;AACH;;AAEA;EACE,oDAAkC;EAClC,oDAAmC;EACnC,oDAAgC;EAChC,oDAAgC;EAChC,oDAAgC;EAChC,mDAAgC;EAChC,mDAAgC;AAClC;;AAEA,YAAY;;AAEZ;EACE,oDACQ;EACR,oDACQ;EACR,oDACQ;EACR,oDAIQ;AACV;;AAEA;EACE,oDAAwC;EACxC,oDAA2C;EAC3C,oDAAkC;EAClC,oDAAkC;EAClC,oDAAkC;EAClC,mDAAkC;EAClC,oDAAsC;EACtC,oDAAyC;EACzC,oDAAgC;EAChC,oDAAgC;EAChC,oDAAgC;EAChC,mDAAgC;AAClC;;AAEA;EACE,oDAA0B;AAC5B;;AAEA;EACE,oDAAqC;EACrC,oDAAuC;EACvC,oDAAiC;EACjC,oDAAiC;EACjC,oDAAiC;EACjC,mDAAiC;EACjC,mDAAkC;EAClC,mDAAgC;EAChC,oDAAkC;EAClC,oDAAwC;EACxC,oDAAuC;AACzC;;AAEA;EACE,yBAAyB;EACzB,oDAAkC;EAClC,oDAAkC;;EAElC,oDAA0C;EAC1C,oDAA0C;;EAE1C,oDAA+C;EAC/C,oDAA+C;;EAE/C,0BAA0B;EAC1B,oDAA0C;EAC1C,oDAA0C;;EAE1C,oDAA8C;EAC9C,oDAA8C;;EAE9C,oDAA8C;EAC9C,oDAA8C;AAChD;;AAEA;EACE,4EAAg7K;AACl7K;;AAEA;EACE,mDAA8B;AAChC;;AAEA;EACE,0DAAoE;AACtE;;AAEA;EACE,yFAAkE;EAClE,0JAA6G;AAC/G;;AAEA;EACE,6NAA6N;AAC/N;;AAEA,6CAA6C;AAC7C,+BAA+B;AAC/B;EACE;AACF;;AAEA;EACE,oDAA0B;AAC5B;;AAEA;EACE,oDAA2B;AAC7B;;AAEA,sBAAsB;AACtB;EACE,oDAAiC;AACnC;;AAEA,0BAA0B;AAC1B;EACE,oDAAmC;AACrC;;AAEA;EACE,mDAAkC;AACpC;;AAEA;EACE,0DAAiP;AACnP\\",\\"sourcesContent\\":[\\"@import \\\\\\"./imported.css\\\\\\";\\\\n\\\\n.class {\\\\n background: url('./img.png');\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(./img.png);\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\n \\\\\\"./img.png\\\\\\"\\\\n );\\\\n}\\\\n\\\\n.class {\\\\n background: green url( './img.png' ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\\\\\"./img.png\\\\\\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( ./img.png ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(~package/img.png) url(./other-img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\\\\\"./img img.png\\\\\\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( './img img.png' ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(/img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n filter: url('data:image/svg+xml;charset=utf-8,#filter');\\\\n}\\\\n\\\\n.class {\\\\n filter: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba(255%2C255%2C255%2C1)%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter');\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url(#highlight);\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(./font.woff) format('woff'),\\\\n url('./font.woff2') format('woff2'),\\\\n url(\\\\\\"./font.eot\\\\\\") format('eot'),\\\\n url(~package/font.ttf) format('truetype'),\\\\n url(\\\\\\"./font with spaces.eot\\\\\\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n url('./font.svg#svgFontName') format('svg'),\\\\n url('./font.woff2?foo=bar') format('woff2'),\\\\n url(\\\\\\"./font.eot?#iefix\\\\\\") format('embedded-opentype'),\\\\n url(\\\\\\"./font with spaces.eot?#iefix\\\\\\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n body {\\\\n background: url(\\\\\\"./img.png\\\\\\");\\\\n }\\\\n}\\\\n\\\\na {\\\\n content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes anim {\\\\n background: green url('./img.png') xyz;\\\\n}\\\\n\\\\n.a {\\\\n background-image: -webkit-image-set(url('./img1x.png') 1x, url('./img2x.png') 2x)\\\\n}\\\\n\\\\n.a {\\\\n background-image: image-set(url('./img1x.png') 1x, url('./img2x.png') 2x)\\\\n}\\\\n\\\\n.class {\\\\n background: green url() xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url('') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(' ') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\n ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo=bar\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo=bar#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo=bar#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url('./img.png') url(\\\\\\"data:image/svg+xml;charset=utf-8,\\\\\\") url('./img.png');\\\\n}\\\\n\\\\n.class {\\\\n background: ___CSS_LOADER_URL___;\\\\n background: ___CSS_LOADER_URL___INDEX___;\\\\n background: ___CSS_LOADER_URL___99999___;\\\\n background: ___CSS_LOADER_IMPORT___;\\\\n background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n.pure-url {\\\\n background: url('img-simple.png');\\\\n}\\\\n\\\\n.root-relative {\\\\n background: url('/url/img-simple.png');\\\\n}\\\\n\\\\n.above-below {\\\\n background: url('../url/img-simple.png');\\\\n}\\\\n\\\\n.tilde {\\\\n background: url('~package/img.png');\\\\n}\\\\n\\\\n.aliases {\\\\n background: url('~aliasesImg/img.png') ;\\\\n}\\\\n\\\\na {\\\\n background: url(./nested/img.png);\\\\n}\\\\n\\\\na {\\\\n background: url(nested/img.png);\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n /* Broken */\\\\n background-image: -webkit-image-set();\\\\n background-image: -webkit-image-set('');\\\\n background-image: image-set();\\\\n background-image: image-set('');\\\\n background-image: image-set(\\\\\\"\\\\\\");\\\\n background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n background-image: image-set(url());\\\\n background-image: image-set(\\\\n url()\\\\n );\\\\n background-image: image-set(URL());\\\\n background-image: image-set(url(''));\\\\n background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n background-image: image-set(url('') 1x);\\\\n background-image: image-set(1x);\\\\n background-image: image-set(\\\\n 1x\\\\n );\\\\n background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n /* Strings */\\\\n background-image: -webkit-image-set(\\\\\\"./img1x.png\\\\\\" 1x, \\\\\\"./img2x.png\\\\\\" 2x);\\\\n background-image: image-set(\\\\\\"./img1x.png\\\\\\" 1x);\\\\n background-image: image-set(\\\\\\"./img1x.png\\\\\\" 1x, \\\\\\"./img2x.png\\\\\\" 2x);\\\\n background-image: image-set(\\\\\\"./img img.png\\\\\\" 1x, \\\\\\"./img img.png\\\\\\" 2x);\\\\n background-image: image-set(\\\\\\"./img1x.png\\\\\\" 1x, \\\\\\"./img2x.png\\\\\\" 2x),\\\\n image-set(\\\\\\"./img1x.png\\\\\\" 1x, \\\\\\"./img2x.png\\\\\\" 2x);\\\\n background-image: image-set(\\\\n \\\\\\"./img1x.png\\\\\\" 1x,\\\\n \\\\\\"./img2x.png\\\\\\" 2x,\\\\n \\\\\\"./img3x.png\\\\\\" 600dpi\\\\n );\\\\n background-image: image-set(\\\\\\"./img1x.png?foo=bar\\\\\\" 1x);\\\\n background-image: image-set(\\\\\\"./img1x.png#hash\\\\\\" 1x);\\\\n background-image: image-set(\\\\\\"./img1x.png?#iefix\\\\\\" 1x);\\\\n\\\\n /* With \`url\` function */\\\\n background-image: -webkit-image-set(url(\\\\\\"./img1x.png\\\\\\") 1x, url(\\\\\\"./img2x.png\\\\\\") 2x);\\\\n background-image: -webkit-image-set(url(\\\\\\"./img1x.png\\\\\\") 1x);\\\\n background-image: -webkit-image-set(\\\\n url(\\\\\\"./img1x.png\\\\\\") 1x\\\\n );\\\\n background-image: image-set(url(./img1x.png) 1x);\\\\n background-image: image-set(\\\\n url(./img1x.png) 1x\\\\n );\\\\n background-image: image-set(url(\\\\\\"./img1x.png\\\\\\") 1x, url(\\\\\\"./img2x.png\\\\\\") 2x);\\\\n background-image: image-set(\\\\n url(./img1x.png) 1x,\\\\n url(./img2x.png) 2x,\\\\n url(./img3x.png) 600dpi\\\\n );\\\\n background-image: image-set(url(\\\\\\"./img img.png\\\\\\") 1x, url(\\\\\\"./img img.png\\\\\\") 2x);\\\\n\\\\n background-image: image-set(url(\\\\\\"./img1x.png\\\\\\") 1x, \\\\\\"./img2x.png\\\\\\" 2x);\\\\n}\\\\n\\\\n.class {\\\\n /* Not allowed on windows */\\\\n /* background: url(./img\\\\\\\\\\\\\\"img.png); */\\\\n background: url(./img\\\\\\\\'img.png);\\\\n background: url(./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png);\\\\n background: url(./img\\\\\\\\(img.png);\\\\n background: url(./img\\\\\\\\)img.png);\\\\n background: url(./img\\\\\\\\ img.png);\\\\n background: url(./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png);\\\\n\\\\n background-image: image-set(\\\\n /* Not allowed on windows */\\\\n /* url(./img\\\\\\\\\\\\\\"img.png) 1x, */\\\\n url(./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png) 2x,\\\\n url(./img\\\\\\\\'img.png) 3x,\\\\n url(./img\\\\\\\\(img.png) 4x,\\\\n url(./img\\\\\\\\)img.png) 5x,\\\\n url(./img\\\\\\\\ img.png) 6x,\\\\n url(./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png) 7x\\\\n );\\\\n}\\\\n\\\\n.class-class-class {\\\\n background: url(\\\\\\"./img'''img.png\\\\\\");\\\\n background: url(\\\\\\"./img'() img.png\\\\\\");\\\\n background: url(\\\\\\"./img'img.png\\\\\\");\\\\n background: url(\\\\\\"./img(img.png\\\\\\");\\\\n background: url(\\\\\\"./img)img.png\\\\\\");\\\\n background: url('./img img.png');\\\\n background: url(\\\\\\"./img img.png\\\\\\");\\\\n}\\\\n\\\\n/* Comment */\\\\n\\\\n.class.class.class {\\\\n background: url('./img\\\\\\\\\\\\n(img.png');\\\\n background: url('./img\\\\\\\\\\\\n(img.png');\\\\n background: url('./img\\\\\\\\\\\\n(img.png');\\\\n background: url('./img\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\n(img.png');\\\\n}\\\\n\\\\n.other-test-case {\\\\n background: url(\\\\\\"./img%27%27%27img.png\\\\\\");\\\\n background: url(\\\\\\"./img%27%28%29%20img.png\\\\\\");\\\\n background: url(\\\\\\"./img%27img.png\\\\\\");\\\\n background: url(\\\\\\"./img%28img.png\\\\\\");\\\\n background: url(\\\\\\"./img%29img.png\\\\\\");\\\\n background: url(\\\\\\"./img%20img.png\\\\\\");\\\\n background: url(./img%27%27%27img.png);\\\\n background: url(./img%27%28%29%20img.png);\\\\n background: url(./img%27img.png);\\\\n background: url(./img%28img.png);\\\\n background: url(./img%29img.png);\\\\n background: url(./img%20img.png);\\\\n}\\\\n\\\\n.qqq {\\\\n background: url('img.png');\\\\n}\\\\n\\\\n.www {\\\\n background: url(\\\\\\"./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\'img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\(img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\)img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\ img.png\\\\\\");\\\\n background: url(\\\\\\"./\\\\\\\\69\\\\\\\\6D\\\\\\\\67.png\\\\\\");\\\\n background: url(./\\\\\\\\69\\\\\\\\6D\\\\\\\\67.png);\\\\n background: url(\\\\\\"./img\\\\\\\\27img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\'\\\\\\\\28%29 img.png\\\\\\");\\\\n background: url(./img\\\\\\\\'\\\\\\\\28%29\\\\\\\\ img.png);\\\\n}\\\\n\\\\n.class {\\\\n /* Should be one import */\\\\n background: url('./something.png');\\\\n background: url('./something.png');\\\\n\\\\n background: url('./something.png?foo=bar');\\\\n background: url('./something.png?foo=bar');\\\\n\\\\n background: url('./something.png?foo=bar#hash');\\\\n background: url('./something.png?foo=bar#hash');\\\\n\\\\n /* Should be two imports */\\\\n background: url('./something.png?foo=bar');\\\\n background: url('./something.png?bar=foo');\\\\n\\\\n background: url('./something.png?foo=bar#foo');\\\\n background: url('./something.png?bar=foo#bar');\\\\n\\\\n background: url('./something.png?foo=1&bar=2');\\\\n background: url('./something.png?foo=2&bar=1');\\\\n}\\\\n\\\\n.base {\\\\n background: url(\\\\\\"data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%0A%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%0A%09%20width%3D%22191px%22%20height%3D%22191px%22%20viewBox%3D%220%200%20191%20191%22%20enable-background%3D%22new%200%200%20191%20191%22%20xml%3Aspace%3D%22preserve%22%3E%0A%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M95.5%2C0C42.8%2C0%2C0%2C42.8%2C0%2C95.5S42.8%2C191%2C95.5%2C191S191%2C148.2%2C191%2C95.5S148.2%2C0%2C95.5%2C0z%20M95.5%2C187.6%0A%09c-50.848%2C0-92.1-41.25-92.1-92.1c0-50.848%2C41.252-92.1%2C92.1-92.1c50.85%2C0%2C92.1%2C41.252%2C92.1%2C92.1%0A%09C187.6%2C146.35%2C146.35%2C187.6%2C95.5%2C187.6z%22%2F%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M92.9%2C10v8.6H91v-6.5c-0.1%2C0.1-0.2%2C0.2-0.4%2C0.3c-0.2%2C0.1-0.3%2C0.2-0.4%2C0.2c-0.1%2C0-0.3%2C0.1-0.5%2C0.2%0A%09%09c-0.2%2C0.1-0.3%2C0.1-0.5%2C0.1v-1.6c0.5-0.1%2C0.9-0.3%2C1.4-0.5c0.5-0.2%2C0.8-0.5%2C1.2-0.7h1.1V10z%22%2F%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M97.1%2C17.1h3.602v1.5h-5.6V18c0-0.4%2C0.1-0.8%2C0.2-1.2c0.1-0.4%2C0.3-0.6%2C0.5-0.9c0.2-0.3%2C0.5-0.5%2C0.7-0.7%0A%09%09c0.2-0.2%2C0.5-0.4%2C0.7-0.6c0.199-0.2%2C0.5-0.3%2C0.6-0.5c0.102-0.2%2C0.301-0.3%2C0.5-0.5c0.2-0.2%2C0.2-0.3%2C0.301-0.5%0A%09%09c0.101-0.2%2C0.101-0.3%2C0.101-0.5c0-0.4-0.101-0.6-0.3-0.8c-0.2-0.2-0.4-0.3-0.801-0.3c-0.699%2C0-1.399%2C0.3-2.101%2C0.9v-1.6%0A%09%09c0.7-0.5%2C1.5-0.7%2C2.5-0.7c0.399%2C0%2C0.8%2C0.1%2C1.101%2C0.2c0.301%2C0.1%2C0.601%2C0.3%2C0.899%2C0.5c0.3%2C0.2%2C0.399%2C0.5%2C0.5%2C0.8%0A%09%09c0.101%2C0.3%2C0.2%2C0.6%2C0.2%2C1s-0.102%2C0.7-0.2%2C1c-0.099%2C0.3-0.3%2C0.6-0.5%2C0.8c-0.2%2C0.2-0.399%2C0.5-0.7%2C0.7c-0.3%2C0.2-0.5%2C0.4-0.8%2C0.6%0A%09%09c-0.2%2C0.1-0.399%2C0.3-0.5%2C0.4s-0.3%2C0.3-0.5%2C0.4s-0.2%2C0.3-0.3%2C0.4C97.1%2C17%2C97.1%2C17%2C97.1%2C17.1z%22%2F%3E%0A%3C%2Fg%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M15%2C95.4c0%2C0.7-0.1%2C1.4-0.2%2C2c-0.1%2C0.6-0.4%2C1.1-0.7%2C1.5C13.8%2C99.3%2C13.4%2C99.6%2C12.9%2C99.8s-1%2C0.3-1.5%2C0.3%0A%09%09c-0.7%2C0-1.3-0.1-1.8-0.3v-1.5c0.4%2C0.3%2C1%2C0.4%2C1.6%2C0.4c0.6%2C0%2C1.1-0.2%2C1.5-0.7c0.4-0.5%2C0.5-1.1%2C0.5-1.9l0%2C0%0A%09%09C12.8%2C96.7%2C12.3%2C96.9%2C11.5%2C96.9c-0.3%2C0-0.7-0.102-1-0.2c-0.3-0.101-0.5-0.3-0.8-0.5c-0.3-0.2-0.4-0.5-0.5-0.8%0A%09%09c-0.1-0.3-0.2-0.7-0.2-1c0-0.4%2C0.1-0.8%2C0.2-1.2c0.1-0.4%2C0.3-0.7%2C0.6-0.9c0.3-0.2%2C0.6-0.5%2C0.9-0.6c0.3-0.1%2C0.8-0.2%2C1.2-0.2%0A%09%09c0.5%2C0%2C0.9%2C0.1%2C1.2%2C0.3c0.3%2C0.2%2C0.7%2C0.4%2C0.9%2C0.8s0.5%2C0.7%2C0.6%2C1.2S15%2C94.8%2C15%2C95.4z%20M13.1%2C94.4c0-0.2%2C0-0.4-0.1-0.6%0A%09%09c-0.1-0.2-0.1-0.4-0.2-0.5c-0.1-0.1-0.2-0.2-0.4-0.3c-0.2-0.1-0.3-0.1-0.5-0.1c-0.2%2C0-0.3%2C0-0.4%2C0.1s-0.3%2C0.2-0.3%2C0.3%0A%09%09c0%2C0.1-0.2%2C0.3-0.2%2C0.4c0%2C0.1-0.1%2C0.4-0.1%2C0.6c0%2C0.2%2C0%2C0.4%2C0.1%2C0.6c0.1%2C0.2%2C0.1%2C0.3%2C0.2%2C0.4c0.1%2C0.1%2C0.2%2C0.2%2C0.4%2C0.3%0A%09%09c0.2%2C0.1%2C0.3%2C0.1%2C0.5%2C0.1c0.2%2C0%2C0.3%2C0%2C0.4-0.1s0.2-0.2%2C0.3-0.3c0.1-0.1%2C0.2-0.2%2C0.2-0.4C13%2C94.7%2C13.1%2C94.6%2C13.1%2C94.4z%22%2F%3E%0A%3C%2Fg%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M176%2C99.7V98.1c0.6%2C0.4%2C1.2%2C0.602%2C2%2C0.602c0.5%2C0%2C0.8-0.102%2C1.1-0.301c0.301-0.199%2C0.4-0.5%2C0.4-0.801%0A%09%09c0-0.398-0.2-0.699-0.5-0.898c-0.3-0.2-0.8-0.301-1.3-0.301h-0.802V95h0.701c1.101%2C0%2C1.601-0.4%2C1.601-1.1c0-0.7-0.4-1-1.302-1%0A%09%09c-0.6%2C0-1.1%2C0.2-1.6%2C0.5v-1.5c0.6-0.3%2C1.301-0.4%2C2.1-0.4c0.9%2C0%2C1.5%2C0.2%2C2%2C0.6s0.701%2C0.9%2C0.701%2C1.5c0%2C1.1-0.601%2C1.8-1.701%2C2.1l0%2C0%0A%09%09c0.602%2C0.1%2C1.102%2C0.3%2C1.4%2C0.6s0.5%2C0.8%2C0.5%2C1.3c0%2C0.801-0.3%2C1.4-0.9%2C1.9c-0.6%2C0.5-1.398%2C0.7-2.398%2C0.7%0A%09%09C177.2%2C100.1%2C176.5%2C100%2C176%2C99.7z%22%2F%3E%0A%3C%2Fg%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M98.5%2C179.102c0%2C0.398-0.1%2C0.799-0.2%2C1.199C98.2%2C180.7%2C98%2C181%2C97.7%2C181.2s-0.601%2C0.5-0.9%2C0.601%0A%09%09c-0.3%2C0.1-0.7%2C0.199-1.2%2C0.199c-0.5%2C0-0.9-0.1-1.3-0.3c-0.4-0.2-0.7-0.399-0.9-0.8c-0.2-0.4-0.5-0.7-0.6-1.2%0A%09%09c-0.1-0.5-0.2-1-0.2-1.601c0-0.699%2C0.1-1.399%2C0.3-2c0.2-0.601%2C0.4-1.101%2C0.8-1.5c0.4-0.399%2C0.7-0.699%2C1.2-1c0.5-0.3%2C1-0.3%2C1.6-0.3%0A%09%09c0.6%2C0%2C1.2%2C0.101%2C1.5%2C0.199v1.5c-0.4-0.199-0.9-0.399-1.4-0.399c-0.3%2C0-0.6%2C0.101-0.8%2C0.2c-0.2%2C0.101-0.5%2C0.3-0.7%2C0.5%0A%09%09c-0.2%2C0.199-0.3%2C0.5-0.4%2C0.8c-0.1%2C0.301-0.2%2C0.7-0.2%2C1.101l0%2C0c0.4-0.601%2C1-0.8%2C1.8-0.8c0.3%2C0%2C0.7%2C0.1%2C0.9%2C0.199%0A%09%09c0.2%2C0.101%2C0.5%2C0.301%2C0.7%2C0.5c0.199%2C0.2%2C0.398%2C0.5%2C0.5%2C0.801C98.5%2C178.2%2C98.5%2C178.7%2C98.5%2C179.102z%20M96.7%2C179.2%0A%09%09c0-0.899-0.4-1.399-1.1-1.399c-0.2%2C0-0.3%2C0-0.5%2C0.1c-0.2%2C0.101-0.3%2C0.201-0.4%2C0.301c-0.1%2C0.101-0.2%2C0.199-0.2%2C0.4%0A%09%09c0%2C0.199-0.1%2C0.299-0.1%2C0.5c0%2C0.199%2C0%2C0.398%2C0.1%2C0.6s0.1%2C0.3%2C0.2%2C0.5c0.1%2C0.199%2C0.2%2C0.199%2C0.4%2C0.3c0.2%2C0.101%2C0.3%2C0.101%2C0.5%2C0.101%0A%09%09c0.2%2C0%2C0.3%2C0%2C0.5-0.101c0.2-0.101%2C0.301-0.199%2C0.301-0.3c0-0.1%2C0.199-0.301%2C0.199-0.399C96.6%2C179.7%2C96.7%2C179.4%2C96.7%2C179.2z%22%2F%3E%0A%3C%2Fg%3E%0A%3Ccircle%20fill%3D%22%23636363%22%20cx%3D%2295%22%20cy%3D%2295%22%20r%3D%227%22%2F%3E%0A%3C%2Fsvg%3E%0A\\\\\\") 50% 50%/191px no-repeat;\\\\n}\\\\n\\\\n.strange {\\\\n background: url('%2E/img.png');\\\\n}\\\\n\\\\n.my-background {\\\\n background-image: url(\\\\\\"/guide/img/banWord/addCoinDialogTitleBg.png\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url('./img.png', 'foo', './img.png', url('./img.png'));\\\\n background-image: image-set(url('./img.png', 'foo', './img.png', url('./img.png')) 1x, url(\\\\\\"./img2x.png\\\\\\") 2x);\\\\n}\\\\n\\\\n.button {\\\\n background-image: url('data:image/svg+xml;utf8,');\\\\n}\\\\n\\\\n/* We need to use \`resourceQuery: /inline/\` */\\\\n/* Hard to test on webpack v4 */\\\\n.qqq {\\\\n background: url('!!../../helpers/url-loader.js?esModule=false!~package/img-single.png?ignore-asset-modules')\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"img.png\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"~img.png\\\\\\");\\\\n}\\\\n\\\\n/** Prefer relative **/\\\\n.class {\\\\n background: url(\\\\\\"nested/img.png\\\\\\");\\\\n}\\\\n\\\\n/** Prefer from modules **/\\\\n.class {\\\\n background: url(\\\\\\"nested/other.png\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"package/img.png\\\\\\");\\\\n}\\\\n\\\\n.foo {\\\\n background-image: url(\\\\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e\\\\\\");\\\\n}\\\\n\\"],\\"sourceRoot\\":\\"\\"}]); +// Exports +var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); +___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); +export default ___CSS_LOADER_STYLE_SHEET___; +" +`; + +exports[`exportStylesheet option should work with urls: warnings 1`] = ` +Array [ + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(120:3) Unable to find uri in 'background: green url() xyz'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(124:3) Unable to find uri in 'background: green url('') xyz'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(128:3) Unable to find uri in 'background: green url(\\"\\") xyz'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(132:3) Unable to find uri in 'background: green url(' ') xyz'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(136:3) Unable to find uri in 'background: green url( + ) xyz'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(216:3) Unable to find uri in 'background-image: -webkit-image-set('')'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(218:3) Unable to find uri in 'background-image: image-set('')'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(219:3) Unable to find uri in 'background-image: image-set(\\"\\")'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(220:3) Unable to find uri in 'background-image: image-set(\\"\\" 1x)'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(221:3) Unable to find uri in 'background-image: image-set(url())'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(222:3) Unable to find uri in 'background-image: image-set( + url() + )'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(225:3) Unable to find uri in 'background-image: image-set(URL())'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(226:3) Unable to find uri in 'background-image: image-set(url(''))'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(227:3) Unable to find uri in 'background-image: image-set(url(\\"\\"))'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(228:3) Unable to find uri in 'background-image: image-set(url('') 1x)'", +] +`; + exports[`exportStylesheet option should work: errors 1`] = `Array []`; exports[`exportStylesheet option should work: module 1`] = ` "// Imports import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; -import ___CSS_LOADER_AT_RULE_IMPORT_0___ from \\"-!../../src/index.js??ruleSet[1].rules[0].use[0]!./imported.css\\"; import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]}); -___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); // Module -___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n@import 'imported.css';\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); // Exports var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); ___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); diff --git a/test/exportStyleSheet.test.js b/test/exportStyleSheet.test.js index bf379761..83174ad1 100644 --- a/test/exportStyleSheet.test.js +++ b/test/exportStyleSheet.test.js @@ -80,7 +80,81 @@ describe("exportStylesheet option", () => { expect(getErrors(stats)).toMatchSnapshot("errors"); }); - it("should work and export CSSStyleSheet for import asserions and basic output", async () => { + it("should work and keep import as is", async () => { + const compiler = getCompiler( + "./basic-import-assertion-css.js", + { + exportStyleSheet: true, + }, + { + target: "web", + output: { + path: path.resolve(__dirname, "./outputs"), + filename: "[name].bundle.js", + chunkFilename: "[name].chunk.js", + assetModuleFilename: "[name][ext]", + }, + } + ); + const stats = await compile(compiler); + + expect(getModuleSource("./basic.css", stats)).toMatchSnapshot("module"); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); + }); + + it("should work with urls", async () => { + const compiler = getCompiler( + "./url/url-import-assertion-css.js", + { + exportStyleSheet: true, + }, + { + devtool: "source-map", + target: "web", + output: { + path: path.resolve(__dirname, "./outputs"), + filename: "[name].bundle.js", + chunkFilename: "[name].chunk.js", + assetModuleFilename: "[name][ext]", + }, + } + ); + const stats = await compile(compiler); + + expect(getModuleSource("./url/url.css", stats)).toMatchSnapshot("module"); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); + }); + + it("should work with CSS modules", async () => { + const compiler = getCompiler( + "./modules/composes/composes-import-assertion-css.js", + { + exportStyleSheet: true, + modules: true, + }, + { + devtool: "source-map", + target: "web", + output: { + path: path.resolve(__dirname, "./outputs"), + filename: "[name].bundle.js", + chunkFilename: "[name].chunk.js", + assetModuleFilename: "[name][ext]", + }, + } + ); + const stats = await compile(compiler); + + expect( + getModuleSource("./modules/composes/composes.css", stats) + ).toMatchSnapshot("module"); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); + }); + + it("should work and export CSSStyleSheet for import assertion and basic output", async () => { const compiler = getCompiler( "./basic-import-assertion-css-and-standard.js", {}, diff --git a/test/fixtures/modules/composes/composes-import-assertion-css.js b/test/fixtures/modules/composes/composes-import-assertion-css.js new file mode 100644 index 00000000..10223853 --- /dev/null +++ b/test/fixtures/modules/composes/composes-import-assertion-css.js @@ -0,0 +1,8 @@ +import sheet, {foo, simple} from '././composes.css' assert { type: "css" }; + +console.log(sheet instanceof CSSStyleSheet); +console.log(foo); +console.log(simple); + +document.adoptedStyleSheets = [sheet]; + diff --git a/test/fixtures/url/url-import-assertion-css.js b/test/fixtures/url/url-import-assertion-css.js new file mode 100644 index 00000000..0127ea2b --- /dev/null +++ b/test/fixtures/url/url-import-assertion-css.js @@ -0,0 +1,6 @@ +import sheet from './url.css' assert { type: "css" }; + +console.log(sheet instanceof CSSStyleSheet); + +document.adoptedStyleSheets = [sheet]; + From 373ab0c2dc2bf0cc5fd68ea36f09de1a451d7384 Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Fri, 3 Sep 2021 21:04:54 +0300 Subject: [PATCH 08/20] fix: logic for CSS modules and named export --- src/utils.js | 6 ++ .../exportStyleSheet.test.js.snap | 31 ++++++++-- test/exportStyleSheet.test.js | 62 ++++++++++++++++--- 3 files changed, 86 insertions(+), 13 deletions(-) diff --git a/src/utils.js b/src/utils.js index 69e22154..cd2c8f67 100644 --- a/src/utils.js +++ b/src/utils.js @@ -564,6 +564,12 @@ function getModulesOptions(rawOptions, isExportStyleSheet, loaderContext) { ...rawModulesOptions, }; + if (isExportStyleSheet && modulesOptions.namedExport === false) { + throw new Error( + 'The "exportStyleSheet" option requires the "modules.namedExport" option to be enabled.' + ); + } + let exportLocalsConventionType; if (typeof modulesOptions.exportLocalsConvention === "string") { diff --git a/test/__snapshots__/exportStyleSheet.test.js.snap b/test/__snapshots__/exportStyleSheet.test.js.snap index b627f7ce..ea079fc0 100644 --- a/test/__snapshots__/exportStyleSheet.test.js.snap +++ b/test/__snapshots__/exportStyleSheet.test.js.snap @@ -1,5 +1,17 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`exportStylesheet option should throw an error for CSS modules and disable named export: errors 1`] = ` +Array [ + "ModuleBuildError: Module build failed (from \`replaced original path\`): +Error: The \\"exportStyleSheet\\" option requires the \\"modules.namedExport\\" option to be enabled. + at getModulesOptions (/src/utils.js:548:11) + at normalizeOptions (/src/utils.js:639:26) + at Object.loader (/src/index.js:40:15)", +] +`; + +exports[`exportStylesheet option should throw an error for CSS modules and disable named export: warnings 1`] = `Array []`; + exports[`exportStylesheet option should work and export CSSStyleSheet for import assertion and basic output: errors 1`] = `Array []`; exports[`exportStylesheet option should work and export CSSStyleSheet for import assertion and basic output: module 1`] = ` @@ -61,11 +73,19 @@ export default ___CSS_LOADER_STYLE_SHEET___; exports[`exportStylesheet option should work with "sass-loader": warnings 1`] = `Array []`; +exports[`exportStylesheet option should work with CSS modules and the 'exportOnlyLocals' option: errors 1`] = `Array []`; + +exports[`exportStylesheet option should work with CSS modules and the 'exportOnlyLocals' option: warnings 1`] = ` +Array [ + "ModuleDependencyWarning: export 'default' (imported as 'sheet') was not found in '././composes.css' (possible exports: alias, aliasDuplicate, blackSelector, foo, foobarbaz, ghi, green, header, mLarge, mSmall, main, myClass, myModule, other, otherOther, primarySelector, relative, sBlack, sWhite, simple, topRelative, url, vBar, vComment, vDef, vDimension, vFoo, vFunction, vHex, vIdent, vInteger, vInteger1, vInteger2, vNumber, vNumber1, vNumber2, vOther, vPercentage, vPreDefinedIdent, vPrimary, vSomething, vString, vString1, vUnicodeRange, vUrl, vUrl1, vUrl2)", + "ModuleDependencyWarning: export 'default' (imported as 'sheet') was not found in '././composes.css' (possible exports: alias, aliasDuplicate, blackSelector, foo, foobarbaz, ghi, green, header, mLarge, mSmall, main, myClass, myModule, other, otherOther, primarySelector, relative, sBlack, sWhite, simple, topRelative, url, vBar, vComment, vDef, vDimension, vFoo, vFunction, vHex, vIdent, vInteger, vInteger1, vInteger2, vNumber, vNumber1, vNumber2, vOther, vPercentage, vPreDefinedIdent, vPrimary, vSomething, vString, vString1, vUnicodeRange, vUrl, vUrl1, vUrl2)", +] +`; + exports[`exportStylesheet option should work with CSS modules: errors 1`] = `Array []`; exports[`exportStylesheet option should work with CSS modules: module 1`] = ` "// Imports -import ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \\"../../../../src/runtime/cssWithMappingToString.js\\"; import ___CSS_LOADER_API_IMPORT___ from \\"../../../../src/runtime/api.js\\"; import ___CSS_LOADER_ICSS_IMPORT_0___, * as ___CSS_LOADER_ICSS_IMPORT_0____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./values.css\\"; import ___CSS_LOADER_ICSS_IMPORT_1___, * as ___CSS_LOADER_ICSS_IMPORT_1____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./something.css\\"; @@ -77,7 +97,7 @@ import ___CSS_LOADER_ICSS_IMPORT_6___, * as ___CSS_LOADER_ICSS_IMPORT_6____NAMED import ___CSS_LOADER_ICSS_IMPORT_7___, * as ___CSS_LOADER_ICSS_IMPORT_7____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!sass-loader!./scss-file.scss\\"; import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../../../src/runtime/getUrl.js\\"; var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"../../url/img.png\\", import.meta.url); -var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]}); ___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); ___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_1___, \\"\\", true); ___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_2___, \\"\\", true); @@ -88,7 +108,7 @@ ___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_6___, \\"\\", true); ___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_7___, \\"\\", true); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); // Module -___CSS_LOADER_EXPORT___.push([module.id, \\"@import url(./test-other.css) (min-width: 100px);\\\\n\\\\n.JrMovmNxiARceckPi1Bb {\\\\n color: \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vDef\\"] + \\";\\\\n}\\\\n\\\\n._xZYrLKW96sXm2aniadM {\\\\n color: blue;\\\\n}\\\\n\\\\n.cXIvIhl_Be3NhMPQoE0z {\\\\n display: block;\\\\n}\\\\n\\\\n.wyIZMXPNE2D7zb9VCrHe {\\\\n width: \\" + ___CSS_LOADER_ICSS_IMPORT_1____NAMED___[\\"vSomething\\"] + \\";\\\\n}\\\\n\\\\n.as9P70j15m_wICZ94IJx {\\\\n color: \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vOther\\"] + \\";\\\\n}\\\\n\\\\n.zAepmy_SqloGdZJJmXNm {\\\\n prop: \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vDef\\"] + \\";\\\\n duplicate: \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vOther\\"] + \\";\\\\n}\\\\n\\\\n.n_zXxs10wzKREXQdQrw9 {\\\\n color: red;\\\\n}\\\\n\\\\n._u4nolEyHSlixSSx7uXN {\\\\n color: yellow;\\\\n}\\\\n\\\\n._EXVuUxUggUhA1UEBgZk {\\\\n color: gray;\\\\n}\\\\n\\\\n.o2wK31qqosVXAPAdGIxD {\\\\n color: gray;\\\\n}\\\\n\\\\n._Y2QYoxyUknZNv0u6wN3 {\\\\n color: gainsboro;\\\\n}\\\\n\\\\n.wmZh7D9g5PjWvMpojahG {\\\\n color: gainsboro;\\\\n}\\\\n\\\\n.uOEsMAq4YIv8PUUlnnhI {\\\\n color: #BF4040;\\\\n}\\\\n\\\\n._r6IpGhEbXgocCCXZgDs {\\\\n color: black;\\\\n}\\\\n\\\\n@media (min-width: 960px) {\\\\n .IsCkQQmCqI3_HSI_H_hT {\\\\n padding: 0 20px;\\\\n }\\\\n}\\\\n\\\\n.\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"sWhite\\"] + \\" {\\\\n color: white;\\\\n}\\\\n\\\\n@media \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"mSmall\\"] + \\" {\\\\n .IsCkQQmCqI3_HSI_H_hT {\\\\n padding: 20px 20px;\\\\n }\\\\n}\\\\n\\\\n.lNjqoQe7B3jKXIowFbpE {\\\\n v-ident: validIdent;\\\\n v-pre-defined-ident: left;\\\\n v-string: 'content';\\\\n v-string-1: '';\\\\n v-url: url(https://www.exammple.com/images/my-background.png);\\\\n v-url-1: url('https://www.exammple.com/images/my-background.png');\\\\n v-url-2: url(\\\\\\"https://www.exammple.com/images/my-background.png\\\\\\");\\\\n v-integer: 100;\\\\n v-integer-1: -100;\\\\n v-integer-2: +100;\\\\n v-number: .60;\\\\n v-number-1: -456.8;\\\\n v-number-2: -3.4e-2;\\\\n v-dimension: 12px;\\\\n v-percentage: 100%;\\\\n v-hex: #fff;\\\\n v-comment: /* comment */ 10px /* comment */;\\\\n v-function: rgb(0,0,0);\\\\n v-unicode-range: U+0025-00FF;\\\\n mutliple: #fff .60 100%;\\\\n}\\\\n\\\\n\\\\na {\\\\n content: 'content';\\\\n}\\\\n\\\\n@supports (content: 'content') {\\\\n a {\\\\n content: 'content';\\\\n }\\\\n}\\\\n\\\\n[class~='content'] {\\\\n color:green;\\\\n}\\\\n\\\\n.ABtimDL9fvKNWc1BjB59 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.K7O_z8z4VzoG6Ru_jb_T {\\\\n background: red;\\\\n}\\\\n\\", \\"\\",{\\"version\\":3,\\"sources\\":[\\"webpack://./modules/composes/composes.css\\"],\\"names\\":[],\\"mappings\\":\\"AAAA,gDAAgD;;AAgBhD;EACE,mDAAY;AACd;;AAEA;EACE,WAAY;AACd;;AAEA;EACE,cAAc;AAChB;;AAEA;EACE,mDAAkB;AACpB;;AAEA;EACE,mDAAc;AAChB;;AAEA;EACE,kDAAW;EACX,uDAAkB;AACpB;;AAEA;EACE,UAAU;AAEZ;;AAEA;EACE,aAAa;AAEf;;AAEA;EACE,WAAW;AAEb;;AAEA;EACE,WAAW;AAEb;;AAEA;EACE,gBAAgB;AAElB;;AAEA;EACE,gBAAgB;AAElB;;AAEA;EACE,cAAgB;AAClB;;AAEA;EACE,YAAY;AACd;;AAEA;EACE;IACE,eAAe;EACjB;AACF;;AAEA;EACE,YAAY;AACd;;AAEA;EACE;IACE,kBAAkB;EACpB;AACF;;AAsBA;EACE,mBAAgB;EAChB,yBAAwC;EACxC,mBAAkB;EAClB,cAAsB;EACtB,6DAAY;EACZ,iEAAgB;EAChB,iEAAgB;EAChB,cAAoB;EACpB,iBAAwB;EACxB,iBAAwB;EACxB,aAAkB;EAClB,kBAAsB;EACtB,mBAAsB;EACtB,iBAAwB;EACxB,kBAA0B;EAC1B,WAAY;EACZ,6CAAmC;EACnC,sBAAsB;EACtB,4BAAgC;EAChC,uBAAqC;AACvC;;;AAGA;EACE,kBAAiB;AACnB;;AAEA;EACE;IACE,kBAAiB;EACnB;AACF;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,mDAAkC;AACpC;;AAEA;EAEE,eAAe;AACjB\\",\\"sourcesContent\\":[\\"@import url(./test-other.css) (min-width: 100px);\\\\n\\\\n@value v-def from './values\\\\\\\\\\\\n\\\\\\\\\\\\n.css';\\\\n@value v-other from './values.css';\\\\n@value v-other from './values.css';\\\\n@value s-white from './values.css';\\\\n@value m-small from './values.css';\\\\n@value v-something from './something.css';\\\\n@value v-foo: blue;\\\\n@value v-bar: block;\\\\n@value v-primary: #BF4040;\\\\n@value s-black: black-selector;\\\\n@value m-large: (min-width: 960px);\\\\n\\\\n.ghi {\\\\n color: v-def;\\\\n}\\\\n\\\\n.my-class {\\\\n color: v-foo;\\\\n}\\\\n\\\\n.other {\\\\n display: v-bar;\\\\n}\\\\n\\\\n.other-other {\\\\n width: v-something;\\\\n}\\\\n\\\\n.green {\\\\n color: v-other;\\\\n}\\\\n\\\\n.foo {\\\\n prop: v-def;\\\\n duplicate: v-other;\\\\n}\\\\n\\\\n.simple {\\\\n color: red;\\\\n composes: imported-simple from './imported-simple.css';\\\\n}\\\\n\\\\n.relative {\\\\n color: yellow;\\\\n composes: imported-relative from './relative.css';\\\\n}\\\\n\\\\n.top-relative {\\\\n color: gray;\\\\n composes: imported-relative from './top-relative.css';\\\\n}\\\\n\\\\n.my-module {\\\\n color: gray;\\\\n composes: imported-module from '../issue-861/node_modules/package/style.css';\\\\n}\\\\n\\\\n.alias {\\\\n color: gainsboro;\\\\n composes: imported-alias from '~aliasesComposes/alias.css';\\\\n}\\\\n\\\\n.alias-duplicate {\\\\n color: gainsboro;\\\\n composes: imported-alias from './alias.css';\\\\n}\\\\n\\\\n.primary-selector {\\\\n color: v-primary;\\\\n}\\\\n\\\\n.s-black {\\\\n color: black;\\\\n}\\\\n\\\\n@media m-large {\\\\n .header {\\\\n padding: 0 20px;\\\\n }\\\\n}\\\\n\\\\n.s-white {\\\\n color: white;\\\\n}\\\\n\\\\n@media m-small {\\\\n .header {\\\\n padding: 20px 20px;\\\\n }\\\\n}\\\\n\\\\n@value v-ident: validIdent;\\\\n@value v-pre-defined-ident: left;\\\\n@value v-string: 'content';\\\\n@value v-string-1: '';\\\\n@value v-url: url(https://www.exammple.com/images/my-background.png);\\\\n@value v-url-1: url('https://www.exammple.com/images/my-background.png');\\\\n@value v-url-2: url(\\\\\\"https://www.exammple.com/images/my-background.png\\\\\\");\\\\n@value v-integer: 100;\\\\n@value v-integer-1: -100;\\\\n@value v-integer-2: +100;\\\\n@value v-number: .60;\\\\n@value v-number-1: -456.8;\\\\n@value v-number-2: -3.4e-2;\\\\n@value v-dimension: 12px;\\\\n@value v-percentage: 100%;\\\\n@value v-hex: #fff;\\\\n@value v-comment: /* comment */;\\\\n@value v-function: rgb(0,0,0);\\\\n@value v-unicode-range: U+0025-00FF;\\\\n\\\\n.foobarbaz {\\\\n v-ident: v-ident;\\\\n v-pre-defined-ident: v-pre-defined-ident;\\\\n v-string: v-string;\\\\n v-string-1: v-string-1;\\\\n v-url: v-url;\\\\n v-url-1: v-url-1;\\\\n v-url-2: v-url-2;\\\\n v-integer: v-integer;\\\\n v-integer-1: v-integer-1;\\\\n v-integer-2: v-integer-2;\\\\n v-number: v-number;\\\\n v-number-1: v-number-1;\\\\n v-number-2: v-number-2;\\\\n v-dimension: v-dimension;\\\\n v-percentage: v-percentage;\\\\n v-hex: v-hex;\\\\n v-comment: v-comment 10px v-comment;\\\\n v-function: v-function;\\\\n v-unicode-range: v-unicode-range;\\\\n mutliple: v-hex v-number v-percentage;\\\\n}\\\\n\\\\n\\\\na {\\\\n content: v-string;\\\\n}\\\\n\\\\n@supports (content: v-string) {\\\\n a {\\\\n content: v-string;\\\\n }\\\\n}\\\\n\\\\n[class~=v-string] {\\\\n color:green;\\\\n}\\\\n\\\\n.url {\\\\n background: url(../../url/img.png);\\\\n}\\\\n\\\\n.main {\\\\n composes: scssClass from 'sass-loader!./scss-file.scss';\\\\n background: red;\\\\n}\\\\n\\"],\\"sourceRoot\\":\\"\\"}]); +___CSS_LOADER_EXPORT___.push([module.id, \\"@import url(./test-other.css) (min-width: 100px);\\\\n\\\\n.JrMovmNxiARceckPi1Bb {\\\\n color: \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vDef\\"] + \\";\\\\n}\\\\n\\\\n._xZYrLKW96sXm2aniadM {\\\\n color: blue;\\\\n}\\\\n\\\\n.cXIvIhl_Be3NhMPQoE0z {\\\\n display: block;\\\\n}\\\\n\\\\n.wyIZMXPNE2D7zb9VCrHe {\\\\n width: \\" + ___CSS_LOADER_ICSS_IMPORT_1____NAMED___[\\"vSomething\\"] + \\";\\\\n}\\\\n\\\\n.as9P70j15m_wICZ94IJx {\\\\n color: \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vOther\\"] + \\";\\\\n}\\\\n\\\\n.zAepmy_SqloGdZJJmXNm {\\\\n prop: \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vDef\\"] + \\";\\\\n duplicate: \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vOther\\"] + \\";\\\\n}\\\\n\\\\n.n_zXxs10wzKREXQdQrw9 {\\\\n color: red;\\\\n}\\\\n\\\\n._u4nolEyHSlixSSx7uXN {\\\\n color: yellow;\\\\n}\\\\n\\\\n._EXVuUxUggUhA1UEBgZk {\\\\n color: gray;\\\\n}\\\\n\\\\n.o2wK31qqosVXAPAdGIxD {\\\\n color: gray;\\\\n}\\\\n\\\\n._Y2QYoxyUknZNv0u6wN3 {\\\\n color: gainsboro;\\\\n}\\\\n\\\\n.wmZh7D9g5PjWvMpojahG {\\\\n color: gainsboro;\\\\n}\\\\n\\\\n.uOEsMAq4YIv8PUUlnnhI {\\\\n color: #BF4040;\\\\n}\\\\n\\\\n._r6IpGhEbXgocCCXZgDs {\\\\n color: black;\\\\n}\\\\n\\\\n@media (min-width: 960px) {\\\\n .IsCkQQmCqI3_HSI_H_hT {\\\\n padding: 0 20px;\\\\n }\\\\n}\\\\n\\\\n.\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"sWhite\\"] + \\" {\\\\n color: white;\\\\n}\\\\n\\\\n@media \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"mSmall\\"] + \\" {\\\\n .IsCkQQmCqI3_HSI_H_hT {\\\\n padding: 20px 20px;\\\\n }\\\\n}\\\\n\\\\n.lNjqoQe7B3jKXIowFbpE {\\\\n v-ident: validIdent;\\\\n v-pre-defined-ident: left;\\\\n v-string: 'content';\\\\n v-string-1: '';\\\\n v-url: url(https://www.exammple.com/images/my-background.png);\\\\n v-url-1: url('https://www.exammple.com/images/my-background.png');\\\\n v-url-2: url(\\\\\\"https://www.exammple.com/images/my-background.png\\\\\\");\\\\n v-integer: 100;\\\\n v-integer-1: -100;\\\\n v-integer-2: +100;\\\\n v-number: .60;\\\\n v-number-1: -456.8;\\\\n v-number-2: -3.4e-2;\\\\n v-dimension: 12px;\\\\n v-percentage: 100%;\\\\n v-hex: #fff;\\\\n v-comment: /* comment */ 10px /* comment */;\\\\n v-function: rgb(0,0,0);\\\\n v-unicode-range: U+0025-00FF;\\\\n mutliple: #fff .60 100%;\\\\n}\\\\n\\\\n\\\\na {\\\\n content: 'content';\\\\n}\\\\n\\\\n@supports (content: 'content') {\\\\n a {\\\\n content: 'content';\\\\n }\\\\n}\\\\n\\\\n[class~='content'] {\\\\n color:green;\\\\n}\\\\n\\\\n.ABtimDL9fvKNWc1BjB59 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.K7O_z8z4VzoG6Ru_jb_T {\\\\n background: red;\\\\n}\\\\n\\", \\"\\"]); // Exports export var vDef = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vDef\\"] + \\"\\"; export var vOther = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vOther\\"] + \\"\\"; @@ -214,7 +234,6 @@ exports[`exportStylesheet option should work with urls: errors 1`] = `Array []`; exports[`exportStylesheet option should work with urls: module 1`] = ` "// Imports -import ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \\"../../../src/runtime/cssWithMappingToString.js\\"; import ___CSS_LOADER_API_IMPORT___ from \\"../../../src/runtime/api.js\\"; import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../../src/runtime/getUrl.js\\"; var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./img.png\\", import.meta.url); @@ -263,7 +282,7 @@ var ___CSS_LOADER_URL_IMPORT_42___ = new URL(\\"/guide/img/banWord/addCoinDialog var ___CSS_LOADER_URL_IMPORT_43___ = new URL(\\"!!../../helpers/url-loader.js?esModule=false!package/img-single.png?ignore-asset-modules\\", import.meta.url); var ___CSS_LOADER_URL_IMPORT_44___ = new URL(\\"nested/other.png\\", import.meta.url); var ___CSS_LOADER_URL_IMPORT_45___ = new URL(\\"data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27none%27 stroke=%27%23343a40%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27M2 5l6 6 6-6%27/%3e%3c/svg%3e\\", import.meta.url); -var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]}); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___, { hash: \\"#hash\\" }); var ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); @@ -324,7 +343,7 @@ var ___CSS_LOADER_URL_REPLACEMENT_56___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS var ___CSS_LOADER_URL_REPLACEMENT_57___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_44___); var ___CSS_LOADER_URL_REPLACEMENT_58___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_45___); // Module -___CSS_LOADER_EXPORT___.push([module.id, \\"@import \\\\\\"./imported.css\\\\\\";\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\"\\\\n );\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_6___ + \\") url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_8___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n filter: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n filter: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \\");\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url(#highlight);\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_11___ + \\") format('woff'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_12___ + \\") format('woff2'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \\") format('eot'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") format('truetype'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_16___ + \\") format('svg'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_17___ + \\") format('woff2'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_18___ + \\") format('embedded-opentype'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_19___ + \\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n body {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n }\\\\n}\\\\n\\\\na {\\\\n content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes anim {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") xyz;\\\\n}\\\\n\\\\n.a {\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x)\\\\n}\\\\n\\\\n.a {\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x)\\\\n}\\\\n\\\\n.class {\\\\n background: green url() xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url('') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(' ') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\n ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_22___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_23___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: ___CSS_LOADER_URL___;\\\\n background: ___CSS_LOADER_URL___INDEX___;\\\\n background: ___CSS_LOADER_URL___99999___;\\\\n background: ___CSS_LOADER_IMPORT___;\\\\n background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n.pure-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_26___ + \\");\\\\n}\\\\n\\\\n.root-relative {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_27___ + \\");\\\\n}\\\\n\\\\n.above-below {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_28___ + \\");\\\\n}\\\\n\\\\n.tilde {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\");\\\\n}\\\\n\\\\n.aliases {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_29___ + \\") ;\\\\n}\\\\n\\\\na {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_30___ + \\");\\\\n}\\\\n\\\\na {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_31___ + \\");\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n /* Broken */\\\\n background-image: -webkit-image-set();\\\\n background-image: -webkit-image-set('');\\\\n background-image: image-set();\\\\n background-image: image-set('');\\\\n background-image: image-set(\\\\\\"\\\\\\");\\\\n background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n background-image: image-set(url());\\\\n background-image: image-set(\\\\n url()\\\\n );\\\\n background-image: image-set(URL());\\\\n background-image: image-set(url(''));\\\\n background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n background-image: image-set(url('') 1x);\\\\n background-image: image-set(1x);\\\\n background-image: image-set(\\\\n 1x\\\\n );\\\\n background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n /* Strings */\\\\n background-image: -webkit-image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x),\\\\n image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x);\\\\n background-image: image-set(\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x,\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x,\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\" 600dpi\\\\n );\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_37___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_38___ + \\" 1x);\\\\n\\\\n /* With \`url\` function */\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x);\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x);\\\\n background-image: -webkit-image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x);\\\\n background-image: image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x);\\\\n background-image: image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_39___ + \\") 600dpi\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 2x);\\\\n\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x);\\\\n}\\\\n\\\\n.class {\\\\n /* Not allowed on windows */\\\\n /* background: url(./img\\\\\\\\\\\\\\"img.png); */\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n\\\\n background-image: image-set(\\\\n /* Not allowed on windows */\\\\n /* url(./img\\\\\\\\\\\\\\"img.png) 1x, */\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\") 2x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\") 3x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\") 4x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\") 5x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 6x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\") 7x\\\\n );\\\\n}\\\\n\\\\n.class-class-class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n}\\\\n\\\\n/* Comment */\\\\n\\\\n.class.class.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n}\\\\n\\\\n.other-test-case {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n}\\\\n\\\\n.qqq {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_45___ + \\");\\\\n}\\\\n\\\\n.www {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n /* Should be one import */\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_46___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_46___ + \\");\\\\n\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_47___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_47___ + \\");\\\\n\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_48___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_48___ + \\");\\\\n\\\\n /* Should be two imports */\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_47___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_49___ + \\");\\\\n\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_50___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_51___ + \\");\\\\n\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_52___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_53___ + \\");\\\\n}\\\\n\\\\n.base {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_54___ + \\") 50% 50%/191px no-repeat;\\\\n}\\\\n\\\\n.strange {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.my-background {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_55___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\", 'foo', './img.png', url('./img.png'));\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\", 'foo', './img.png', url('./img.png')) 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x);\\\\n}\\\\n\\\\n.button {\\\\n background-image: url('data:image/svg+xml;utf8,');\\\\n}\\\\n\\\\n/* We need to use \`resourceQuery: /inline/\` */\\\\n/* Hard to test on webpack v4 */\\\\n.qqq {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_56___ + \\")\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_45___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_45___ + \\");\\\\n}\\\\n\\\\n/** Prefer relative **/\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_31___ + \\");\\\\n}\\\\n\\\\n/** Prefer from modules **/\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_57___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\");\\\\n}\\\\n\\\\n.foo {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_58___ + \\");\\\\n}\\\\n\\", \\"\\",{\\"version\\":3,\\"sources\\":[\\"webpack://./url/url.css\\"],\\"names\\":[],\\"mappings\\":\\"AAAA,wBAAwB;;AAExB;EACE,mDAA4B;AAC9B;;AAEA;EACE,mDAA4B;AAC9B;;AAEA;EACE,mDAA0B;AAC5B;;AAEA;EACE,mDAAiC;AACnC;;AAEA;EACE;;GAEC;AACH;;AAEA;EACE,+DAAwC;AAC1C;;AAEA;EACE,+DAAwC;AAC1C;;AAEA;EACE,+DAAsC;AACxC;;AAEA;EACE,qGAAgE;AAClE;;AAEA;EACE,+DAA4C;AAC9C;;AAEA;EACE,+DAA4C;AAC9C;;AAEA;EACE,6DAAmC;AACrC;;AAEA;EACE,4HAAmH;AACrH;;AAEA;EACE,yDAA4W;AAC9W;;AAEA;EACE,yDAAomB;AACtmB;;AAEA;EACE,+CAAmY;AACrY;;AAEA;EACE,gDAA6nB;AAC/nB;;AAEA;EACE,uBAAuB;AACzB;;AAEA;EACE,2BAA2B;AAC7B;;AAEA;EACE;;;;;;;;wEAQkE;AACpE;;AAEA;EACE;IACE,mDAA4B;EAC9B;AACF;;AAEA;EACE,+BAA+B;AACjC;;AAEA;EACE,iCAAiC;AACnC;;AAEA;EACE,6DAAsC;AACxC;;AAEA;EACE;AACF;;AAEA;EACE;AACF;;AAEA;EACE,2BAA2B;AAC7B;;AAEA;EACE,6BAA6B;AAC/B;;AAEA;EACE,6BAA6B;AAC/B;;AAEA;EACE,gCAAgC;AAClC;;AAEA;EACE;OACK;AACP;;AAEA;EACE,+FAA+F;AACjG;;AAEA;EACE,yFAAyF;AAC3F;;AAEA;EACE,oDAAgC;AAClC;;AAEA;EACE,oDAAoC;AACtC;;AAEA;EACE,oDAAyC;AAC3C;;AAEA;EACE,oDAAyC;AAC3C;;AAEA;EACE,oDAA6B;AAC/B;;AAEA;EACE,yIAA8Y;AAChZ;;AAEA;EACE,gCAAgC;EAChC,wCAAwC;EACxC,wCAAwC;EACxC,mCAAmC;EACnC,2CAA2C;EAC3C,2CAA2C;AAC7C;;AAEA;EACE,oDAAiC;AACnC;;AAEA;EACE,oDAAsC;AACxC;;AAEA;EACE,oDAAwC;AAC1C;;AAEA;EACE,mDAAmC;AACrC;;AAEA;EACE,qDAAuC;AACzC;;AAEA;EACE,oDAAiC;AACnC;;AAEA;EACE,oDAA+B;AACjC;;AAEA;EACE,6DAA6D;AAC/D;;AAEA;EACE,WAAW;EACX,qCAAqC;EACrC,uCAAuC;EACvC,6BAA6B;EAC7B,+BAA+B;EAC/B,+BAA+B;EAC/B,kCAAkC;EAClC,kCAAkC;EAClC;;GAEC;EACD,kCAAkC;EAClC,oCAAoC;EACpC,oCAAoC;EACpC,uCAAuC;EACvC,+BAA+B;EAC/B;;GAEC;EACD,0CAA0C;;EAE1C,YAAY;EACZ,mHAAuE;EACvE,mEAA6C;EAC7C,2GAA+D;EAC/D,2GAAmE;EACnE;6FAC+C;EAC/C;;;;GAIC;EACD,mEAAqD;EACrD,mEAAkD;EAClD,mEAAoD;;EAEpD,wBAAwB;EACxB,6HAAiF;EACjF,gFAA0D;EAC1D;;GAEC;EACD,wEAAgD;EAChD;;GAEC;EACD,qHAAyE;EACzE;;;;GAIC;EACD,mHAA6E;;EAE7E,gHAAoE;AACtE;;AAEA;EACE,2BAA2B;EAC3B,qCAAqC;EACrC,oDAA+B;EAC/B,oDAAmC;EACnC,oDAA+B;EAC/B,oDAA+B;EAC/B,mDAA+B;EAC/B,oDAAqC;;EAErC;;;;;;;;;GASC;AACH;;AAEA;EACE,oDAAkC;EAClC,oDAAmC;EACnC,oDAAgC;EAChC,oDAAgC;EAChC,oDAAgC;EAChC,mDAAgC;EAChC,mDAAgC;AAClC;;AAEA,YAAY;;AAEZ;EACE,oDACQ;EACR,oDACQ;EACR,oDACQ;EACR,oDAIQ;AACV;;AAEA;EACE,oDAAwC;EACxC,oDAA2C;EAC3C,oDAAkC;EAClC,oDAAkC;EAClC,oDAAkC;EAClC,mDAAkC;EAClC,oDAAsC;EACtC,oDAAyC;EACzC,oDAAgC;EAChC,oDAAgC;EAChC,oDAAgC;EAChC,mDAAgC;AAClC;;AAEA;EACE,oDAA0B;AAC5B;;AAEA;EACE,oDAAqC;EACrC,oDAAuC;EACvC,oDAAiC;EACjC,oDAAiC;EACjC,oDAAiC;EACjC,mDAAiC;EACjC,mDAAkC;EAClC,mDAAgC;EAChC,oDAAkC;EAClC,oDAAwC;EACxC,oDAAuC;AACzC;;AAEA;EACE,yBAAyB;EACzB,oDAAkC;EAClC,oDAAkC;;EAElC,oDAA0C;EAC1C,oDAA0C;;EAE1C,oDAA+C;EAC/C,oDAA+C;;EAE/C,0BAA0B;EAC1B,oDAA0C;EAC1C,oDAA0C;;EAE1C,oDAA8C;EAC9C,oDAA8C;;EAE9C,oDAA8C;EAC9C,oDAA8C;AAChD;;AAEA;EACE,4EAAg7K;AACl7K;;AAEA;EACE,mDAA8B;AAChC;;AAEA;EACE,0DAAoE;AACtE;;AAEA;EACE,yFAAkE;EAClE,0JAA6G;AAC/G;;AAEA;EACE,6NAA6N;AAC/N;;AAEA,6CAA6C;AAC7C,+BAA+B;AAC/B;EACE;AACF;;AAEA;EACE,oDAA0B;AAC5B;;AAEA;EACE,oDAA2B;AAC7B;;AAEA,sBAAsB;AACtB;EACE,oDAAiC;AACnC;;AAEA,0BAA0B;AAC1B;EACE,oDAAmC;AACrC;;AAEA;EACE,mDAAkC;AACpC;;AAEA;EACE,0DAAiP;AACnP\\",\\"sourcesContent\\":[\\"@import \\\\\\"./imported.css\\\\\\";\\\\n\\\\n.class {\\\\n background: url('./img.png');\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(./img.png);\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\n \\\\\\"./img.png\\\\\\"\\\\n );\\\\n}\\\\n\\\\n.class {\\\\n background: green url( './img.png' ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\\\\\"./img.png\\\\\\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( ./img.png ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(~package/img.png) url(./other-img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\\\\\"./img img.png\\\\\\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( './img img.png' ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(/img.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\\\\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n filter: url('data:image/svg+xml;charset=utf-8,#filter');\\\\n}\\\\n\\\\n.class {\\\\n filter: url('data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba(255%2C255%2C255%2C1)%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter');\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url(#highlight);\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(./font.woff) format('woff'),\\\\n url('./font.woff2') format('woff2'),\\\\n url(\\\\\\"./font.eot\\\\\\") format('eot'),\\\\n url(~package/font.ttf) format('truetype'),\\\\n url(\\\\\\"./font with spaces.eot\\\\\\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n url('./font.svg#svgFontName') format('svg'),\\\\n url('./font.woff2?foo=bar') format('woff2'),\\\\n url(\\\\\\"./font.eot?#iefix\\\\\\") format('embedded-opentype'),\\\\n url(\\\\\\"./font with spaces.eot?#iefix\\\\\\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n body {\\\\n background: url(\\\\\\"./img.png\\\\\\");\\\\n }\\\\n}\\\\n\\\\na {\\\\n content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes anim {\\\\n background: green url('./img.png') xyz;\\\\n}\\\\n\\\\n.a {\\\\n background-image: -webkit-image-set(url('./img1x.png') 1x, url('./img2x.png') 2x)\\\\n}\\\\n\\\\n.a {\\\\n background-image: image-set(url('./img1x.png') 1x, url('./img2x.png') 2x)\\\\n}\\\\n\\\\n.class {\\\\n background: green url() xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url('') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(' ') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\n ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo=bar\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo=bar#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?foo=bar#hash\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"./img.png?\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url('./img.png') url(\\\\\\"data:image/svg+xml;charset=utf-8,\\\\\\") url('./img.png');\\\\n}\\\\n\\\\n.class {\\\\n background: ___CSS_LOADER_URL___;\\\\n background: ___CSS_LOADER_URL___INDEX___;\\\\n background: ___CSS_LOADER_URL___99999___;\\\\n background: ___CSS_LOADER_IMPORT___;\\\\n background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n.pure-url {\\\\n background: url('img-simple.png');\\\\n}\\\\n\\\\n.root-relative {\\\\n background: url('/url/img-simple.png');\\\\n}\\\\n\\\\n.above-below {\\\\n background: url('../url/img-simple.png');\\\\n}\\\\n\\\\n.tilde {\\\\n background: url('~package/img.png');\\\\n}\\\\n\\\\n.aliases {\\\\n background: url('~aliasesImg/img.png') ;\\\\n}\\\\n\\\\na {\\\\n background: url(./nested/img.png);\\\\n}\\\\n\\\\na {\\\\n background: url(nested/img.png);\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n /* Broken */\\\\n background-image: -webkit-image-set();\\\\n background-image: -webkit-image-set('');\\\\n background-image: image-set();\\\\n background-image: image-set('');\\\\n background-image: image-set(\\\\\\"\\\\\\");\\\\n background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n background-image: image-set(url());\\\\n background-image: image-set(\\\\n url()\\\\n );\\\\n background-image: image-set(URL());\\\\n background-image: image-set(url(''));\\\\n background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n background-image: image-set(url('') 1x);\\\\n background-image: image-set(1x);\\\\n background-image: image-set(\\\\n 1x\\\\n );\\\\n background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n /* Strings */\\\\n background-image: -webkit-image-set(\\\\\\"./img1x.png\\\\\\" 1x, \\\\\\"./img2x.png\\\\\\" 2x);\\\\n background-image: image-set(\\\\\\"./img1x.png\\\\\\" 1x);\\\\n background-image: image-set(\\\\\\"./img1x.png\\\\\\" 1x, \\\\\\"./img2x.png\\\\\\" 2x);\\\\n background-image: image-set(\\\\\\"./img img.png\\\\\\" 1x, \\\\\\"./img img.png\\\\\\" 2x);\\\\n background-image: image-set(\\\\\\"./img1x.png\\\\\\" 1x, \\\\\\"./img2x.png\\\\\\" 2x),\\\\n image-set(\\\\\\"./img1x.png\\\\\\" 1x, \\\\\\"./img2x.png\\\\\\" 2x);\\\\n background-image: image-set(\\\\n \\\\\\"./img1x.png\\\\\\" 1x,\\\\n \\\\\\"./img2x.png\\\\\\" 2x,\\\\n \\\\\\"./img3x.png\\\\\\" 600dpi\\\\n );\\\\n background-image: image-set(\\\\\\"./img1x.png?foo=bar\\\\\\" 1x);\\\\n background-image: image-set(\\\\\\"./img1x.png#hash\\\\\\" 1x);\\\\n background-image: image-set(\\\\\\"./img1x.png?#iefix\\\\\\" 1x);\\\\n\\\\n /* With \`url\` function */\\\\n background-image: -webkit-image-set(url(\\\\\\"./img1x.png\\\\\\") 1x, url(\\\\\\"./img2x.png\\\\\\") 2x);\\\\n background-image: -webkit-image-set(url(\\\\\\"./img1x.png\\\\\\") 1x);\\\\n background-image: -webkit-image-set(\\\\n url(\\\\\\"./img1x.png\\\\\\") 1x\\\\n );\\\\n background-image: image-set(url(./img1x.png) 1x);\\\\n background-image: image-set(\\\\n url(./img1x.png) 1x\\\\n );\\\\n background-image: image-set(url(\\\\\\"./img1x.png\\\\\\") 1x, url(\\\\\\"./img2x.png\\\\\\") 2x);\\\\n background-image: image-set(\\\\n url(./img1x.png) 1x,\\\\n url(./img2x.png) 2x,\\\\n url(./img3x.png) 600dpi\\\\n );\\\\n background-image: image-set(url(\\\\\\"./img img.png\\\\\\") 1x, url(\\\\\\"./img img.png\\\\\\") 2x);\\\\n\\\\n background-image: image-set(url(\\\\\\"./img1x.png\\\\\\") 1x, \\\\\\"./img2x.png\\\\\\" 2x);\\\\n}\\\\n\\\\n.class {\\\\n /* Not allowed on windows */\\\\n /* background: url(./img\\\\\\\\\\\\\\"img.png); */\\\\n background: url(./img\\\\\\\\'img.png);\\\\n background: url(./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png);\\\\n background: url(./img\\\\\\\\(img.png);\\\\n background: url(./img\\\\\\\\)img.png);\\\\n background: url(./img\\\\\\\\ img.png);\\\\n background: url(./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png);\\\\n\\\\n background-image: image-set(\\\\n /* Not allowed on windows */\\\\n /* url(./img\\\\\\\\\\\\\\"img.png) 1x, */\\\\n url(./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png) 2x,\\\\n url(./img\\\\\\\\'img.png) 3x,\\\\n url(./img\\\\\\\\(img.png) 4x,\\\\n url(./img\\\\\\\\)img.png) 5x,\\\\n url(./img\\\\\\\\ img.png) 6x,\\\\n url(./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png) 7x\\\\n );\\\\n}\\\\n\\\\n.class-class-class {\\\\n background: url(\\\\\\"./img'''img.png\\\\\\");\\\\n background: url(\\\\\\"./img'() img.png\\\\\\");\\\\n background: url(\\\\\\"./img'img.png\\\\\\");\\\\n background: url(\\\\\\"./img(img.png\\\\\\");\\\\n background: url(\\\\\\"./img)img.png\\\\\\");\\\\n background: url('./img img.png');\\\\n background: url(\\\\\\"./img img.png\\\\\\");\\\\n}\\\\n\\\\n/* Comment */\\\\n\\\\n.class.class.class {\\\\n background: url('./img\\\\\\\\\\\\n(img.png');\\\\n background: url('./img\\\\\\\\\\\\n(img.png');\\\\n background: url('./img\\\\\\\\\\\\n(img.png');\\\\n background: url('./img\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\n\\\\\\\\\\\\n(img.png');\\\\n}\\\\n\\\\n.other-test-case {\\\\n background: url(\\\\\\"./img%27%27%27img.png\\\\\\");\\\\n background: url(\\\\\\"./img%27%28%29%20img.png\\\\\\");\\\\n background: url(\\\\\\"./img%27img.png\\\\\\");\\\\n background: url(\\\\\\"./img%28img.png\\\\\\");\\\\n background: url(\\\\\\"./img%29img.png\\\\\\");\\\\n background: url(\\\\\\"./img%20img.png\\\\\\");\\\\n background: url(./img%27%27%27img.png);\\\\n background: url(./img%27%28%29%20img.png);\\\\n background: url(./img%27img.png);\\\\n background: url(./img%28img.png);\\\\n background: url(./img%29img.png);\\\\n background: url(./img%20img.png);\\\\n}\\\\n\\\\n.qqq {\\\\n background: url('img.png');\\\\n}\\\\n\\\\n.www {\\\\n background: url(\\\\\\"./img\\\\\\\\'\\\\\\\\'\\\\\\\\'img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\'\\\\\\\\(\\\\\\\\)\\\\\\\\ img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\'img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\(img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\)img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\ img.png\\\\\\");\\\\n background: url(\\\\\\"./\\\\\\\\69\\\\\\\\6D\\\\\\\\67.png\\\\\\");\\\\n background: url(./\\\\\\\\69\\\\\\\\6D\\\\\\\\67.png);\\\\n background: url(\\\\\\"./img\\\\\\\\27img.png\\\\\\");\\\\n background: url(\\\\\\"./img\\\\\\\\'\\\\\\\\28%29 img.png\\\\\\");\\\\n background: url(./img\\\\\\\\'\\\\\\\\28%29\\\\\\\\ img.png);\\\\n}\\\\n\\\\n.class {\\\\n /* Should be one import */\\\\n background: url('./something.png');\\\\n background: url('./something.png');\\\\n\\\\n background: url('./something.png?foo=bar');\\\\n background: url('./something.png?foo=bar');\\\\n\\\\n background: url('./something.png?foo=bar#hash');\\\\n background: url('./something.png?foo=bar#hash');\\\\n\\\\n /* Should be two imports */\\\\n background: url('./something.png?foo=bar');\\\\n background: url('./something.png?bar=foo');\\\\n\\\\n background: url('./something.png?foo=bar#foo');\\\\n background: url('./something.png?bar=foo#bar');\\\\n\\\\n background: url('./something.png?foo=1&bar=2');\\\\n background: url('./something.png?foo=2&bar=1');\\\\n}\\\\n\\\\n.base {\\\\n background: url(\\\\\\"data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%0A%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%0A%09%20width%3D%22191px%22%20height%3D%22191px%22%20viewBox%3D%220%200%20191%20191%22%20enable-background%3D%22new%200%200%20191%20191%22%20xml%3Aspace%3D%22preserve%22%3E%0A%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M95.5%2C0C42.8%2C0%2C0%2C42.8%2C0%2C95.5S42.8%2C191%2C95.5%2C191S191%2C148.2%2C191%2C95.5S148.2%2C0%2C95.5%2C0z%20M95.5%2C187.6%0A%09c-50.848%2C0-92.1-41.25-92.1-92.1c0-50.848%2C41.252-92.1%2C92.1-92.1c50.85%2C0%2C92.1%2C41.252%2C92.1%2C92.1%0A%09C187.6%2C146.35%2C146.35%2C187.6%2C95.5%2C187.6z%22%2F%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M92.9%2C10v8.6H91v-6.5c-0.1%2C0.1-0.2%2C0.2-0.4%2C0.3c-0.2%2C0.1-0.3%2C0.2-0.4%2C0.2c-0.1%2C0-0.3%2C0.1-0.5%2C0.2%0A%09%09c-0.2%2C0.1-0.3%2C0.1-0.5%2C0.1v-1.6c0.5-0.1%2C0.9-0.3%2C1.4-0.5c0.5-0.2%2C0.8-0.5%2C1.2-0.7h1.1V10z%22%2F%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M97.1%2C17.1h3.602v1.5h-5.6V18c0-0.4%2C0.1-0.8%2C0.2-1.2c0.1-0.4%2C0.3-0.6%2C0.5-0.9c0.2-0.3%2C0.5-0.5%2C0.7-0.7%0A%09%09c0.2-0.2%2C0.5-0.4%2C0.7-0.6c0.199-0.2%2C0.5-0.3%2C0.6-0.5c0.102-0.2%2C0.301-0.3%2C0.5-0.5c0.2-0.2%2C0.2-0.3%2C0.301-0.5%0A%09%09c0.101-0.2%2C0.101-0.3%2C0.101-0.5c0-0.4-0.101-0.6-0.3-0.8c-0.2-0.2-0.4-0.3-0.801-0.3c-0.699%2C0-1.399%2C0.3-2.101%2C0.9v-1.6%0A%09%09c0.7-0.5%2C1.5-0.7%2C2.5-0.7c0.399%2C0%2C0.8%2C0.1%2C1.101%2C0.2c0.301%2C0.1%2C0.601%2C0.3%2C0.899%2C0.5c0.3%2C0.2%2C0.399%2C0.5%2C0.5%2C0.8%0A%09%09c0.101%2C0.3%2C0.2%2C0.6%2C0.2%2C1s-0.102%2C0.7-0.2%2C1c-0.099%2C0.3-0.3%2C0.6-0.5%2C0.8c-0.2%2C0.2-0.399%2C0.5-0.7%2C0.7c-0.3%2C0.2-0.5%2C0.4-0.8%2C0.6%0A%09%09c-0.2%2C0.1-0.399%2C0.3-0.5%2C0.4s-0.3%2C0.3-0.5%2C0.4s-0.2%2C0.3-0.3%2C0.4C97.1%2C17%2C97.1%2C17%2C97.1%2C17.1z%22%2F%3E%0A%3C%2Fg%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M15%2C95.4c0%2C0.7-0.1%2C1.4-0.2%2C2c-0.1%2C0.6-0.4%2C1.1-0.7%2C1.5C13.8%2C99.3%2C13.4%2C99.6%2C12.9%2C99.8s-1%2C0.3-1.5%2C0.3%0A%09%09c-0.7%2C0-1.3-0.1-1.8-0.3v-1.5c0.4%2C0.3%2C1%2C0.4%2C1.6%2C0.4c0.6%2C0%2C1.1-0.2%2C1.5-0.7c0.4-0.5%2C0.5-1.1%2C0.5-1.9l0%2C0%0A%09%09C12.8%2C96.7%2C12.3%2C96.9%2C11.5%2C96.9c-0.3%2C0-0.7-0.102-1-0.2c-0.3-0.101-0.5-0.3-0.8-0.5c-0.3-0.2-0.4-0.5-0.5-0.8%0A%09%09c-0.1-0.3-0.2-0.7-0.2-1c0-0.4%2C0.1-0.8%2C0.2-1.2c0.1-0.4%2C0.3-0.7%2C0.6-0.9c0.3-0.2%2C0.6-0.5%2C0.9-0.6c0.3-0.1%2C0.8-0.2%2C1.2-0.2%0A%09%09c0.5%2C0%2C0.9%2C0.1%2C1.2%2C0.3c0.3%2C0.2%2C0.7%2C0.4%2C0.9%2C0.8s0.5%2C0.7%2C0.6%2C1.2S15%2C94.8%2C15%2C95.4z%20M13.1%2C94.4c0-0.2%2C0-0.4-0.1-0.6%0A%09%09c-0.1-0.2-0.1-0.4-0.2-0.5c-0.1-0.1-0.2-0.2-0.4-0.3c-0.2-0.1-0.3-0.1-0.5-0.1c-0.2%2C0-0.3%2C0-0.4%2C0.1s-0.3%2C0.2-0.3%2C0.3%0A%09%09c0%2C0.1-0.2%2C0.3-0.2%2C0.4c0%2C0.1-0.1%2C0.4-0.1%2C0.6c0%2C0.2%2C0%2C0.4%2C0.1%2C0.6c0.1%2C0.2%2C0.1%2C0.3%2C0.2%2C0.4c0.1%2C0.1%2C0.2%2C0.2%2C0.4%2C0.3%0A%09%09c0.2%2C0.1%2C0.3%2C0.1%2C0.5%2C0.1c0.2%2C0%2C0.3%2C0%2C0.4-0.1s0.2-0.2%2C0.3-0.3c0.1-0.1%2C0.2-0.2%2C0.2-0.4C13%2C94.7%2C13.1%2C94.6%2C13.1%2C94.4z%22%2F%3E%0A%3C%2Fg%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M176%2C99.7V98.1c0.6%2C0.4%2C1.2%2C0.602%2C2%2C0.602c0.5%2C0%2C0.8-0.102%2C1.1-0.301c0.301-0.199%2C0.4-0.5%2C0.4-0.801%0A%09%09c0-0.398-0.2-0.699-0.5-0.898c-0.3-0.2-0.8-0.301-1.3-0.301h-0.802V95h0.701c1.101%2C0%2C1.601-0.4%2C1.601-1.1c0-0.7-0.4-1-1.302-1%0A%09%09c-0.6%2C0-1.1%2C0.2-1.6%2C0.5v-1.5c0.6-0.3%2C1.301-0.4%2C2.1-0.4c0.9%2C0%2C1.5%2C0.2%2C2%2C0.6s0.701%2C0.9%2C0.701%2C1.5c0%2C1.1-0.601%2C1.8-1.701%2C2.1l0%2C0%0A%09%09c0.602%2C0.1%2C1.102%2C0.3%2C1.4%2C0.6s0.5%2C0.8%2C0.5%2C1.3c0%2C0.801-0.3%2C1.4-0.9%2C1.9c-0.6%2C0.5-1.398%2C0.7-2.398%2C0.7%0A%09%09C177.2%2C100.1%2C176.5%2C100%2C176%2C99.7z%22%2F%3E%0A%3C%2Fg%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M98.5%2C179.102c0%2C0.398-0.1%2C0.799-0.2%2C1.199C98.2%2C180.7%2C98%2C181%2C97.7%2C181.2s-0.601%2C0.5-0.9%2C0.601%0A%09%09c-0.3%2C0.1-0.7%2C0.199-1.2%2C0.199c-0.5%2C0-0.9-0.1-1.3-0.3c-0.4-0.2-0.7-0.399-0.9-0.8c-0.2-0.4-0.5-0.7-0.6-1.2%0A%09%09c-0.1-0.5-0.2-1-0.2-1.601c0-0.699%2C0.1-1.399%2C0.3-2c0.2-0.601%2C0.4-1.101%2C0.8-1.5c0.4-0.399%2C0.7-0.699%2C1.2-1c0.5-0.3%2C1-0.3%2C1.6-0.3%0A%09%09c0.6%2C0%2C1.2%2C0.101%2C1.5%2C0.199v1.5c-0.4-0.199-0.9-0.399-1.4-0.399c-0.3%2C0-0.6%2C0.101-0.8%2C0.2c-0.2%2C0.101-0.5%2C0.3-0.7%2C0.5%0A%09%09c-0.2%2C0.199-0.3%2C0.5-0.4%2C0.8c-0.1%2C0.301-0.2%2C0.7-0.2%2C1.101l0%2C0c0.4-0.601%2C1-0.8%2C1.8-0.8c0.3%2C0%2C0.7%2C0.1%2C0.9%2C0.199%0A%09%09c0.2%2C0.101%2C0.5%2C0.301%2C0.7%2C0.5c0.199%2C0.2%2C0.398%2C0.5%2C0.5%2C0.801C98.5%2C178.2%2C98.5%2C178.7%2C98.5%2C179.102z%20M96.7%2C179.2%0A%09%09c0-0.899-0.4-1.399-1.1-1.399c-0.2%2C0-0.3%2C0-0.5%2C0.1c-0.2%2C0.101-0.3%2C0.201-0.4%2C0.301c-0.1%2C0.101-0.2%2C0.199-0.2%2C0.4%0A%09%09c0%2C0.199-0.1%2C0.299-0.1%2C0.5c0%2C0.199%2C0%2C0.398%2C0.1%2C0.6s0.1%2C0.3%2C0.2%2C0.5c0.1%2C0.199%2C0.2%2C0.199%2C0.4%2C0.3c0.2%2C0.101%2C0.3%2C0.101%2C0.5%2C0.101%0A%09%09c0.2%2C0%2C0.3%2C0%2C0.5-0.101c0.2-0.101%2C0.301-0.199%2C0.301-0.3c0-0.1%2C0.199-0.301%2C0.199-0.399C96.6%2C179.7%2C96.7%2C179.4%2C96.7%2C179.2z%22%2F%3E%0A%3C%2Fg%3E%0A%3Ccircle%20fill%3D%22%23636363%22%20cx%3D%2295%22%20cy%3D%2295%22%20r%3D%227%22%2F%3E%0A%3C%2Fsvg%3E%0A\\\\\\") 50% 50%/191px no-repeat;\\\\n}\\\\n\\\\n.strange {\\\\n background: url('%2E/img.png');\\\\n}\\\\n\\\\n.my-background {\\\\n background-image: url(\\\\\\"/guide/img/banWord/addCoinDialogTitleBg.png\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url('./img.png', 'foo', './img.png', url('./img.png'));\\\\n background-image: image-set(url('./img.png', 'foo', './img.png', url('./img.png')) 1x, url(\\\\\\"./img2x.png\\\\\\") 2x);\\\\n}\\\\n\\\\n.button {\\\\n background-image: url('data:image/svg+xml;utf8,');\\\\n}\\\\n\\\\n/* We need to use \`resourceQuery: /inline/\` */\\\\n/* Hard to test on webpack v4 */\\\\n.qqq {\\\\n background: url('!!../../helpers/url-loader.js?esModule=false!~package/img-single.png?ignore-asset-modules')\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"img.png\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"~img.png\\\\\\");\\\\n}\\\\n\\\\n/** Prefer relative **/\\\\n.class {\\\\n background: url(\\\\\\"nested/img.png\\\\\\");\\\\n}\\\\n\\\\n/** Prefer from modules **/\\\\n.class {\\\\n background: url(\\\\\\"nested/other.png\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\\\"package/img.png\\\\\\");\\\\n}\\\\n\\\\n.foo {\\\\n background-image: url(\\\\\\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e\\\\\\");\\\\n}\\\\n\\"],\\"sourceRoot\\":\\"\\"}]); +___CSS_LOADER_EXPORT___.push([module.id, \\"@import \\\\\\"./imported.css\\\\\\";\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\"\\\\n );\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_6___ + \\") url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_8___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n filter: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n filter: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \\");\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url(#highlight);\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_11___ + \\") format('woff'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_12___ + \\") format('woff2'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \\") format('eot'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") format('truetype'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_16___ + \\") format('svg'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_17___ + \\") format('woff2'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_18___ + \\") format('embedded-opentype'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_19___ + \\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n body {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n }\\\\n}\\\\n\\\\na {\\\\n content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes anim {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") xyz;\\\\n}\\\\n\\\\n.a {\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x)\\\\n}\\\\n\\\\n.a {\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x)\\\\n}\\\\n\\\\n.class {\\\\n background: green url() xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url('') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(' ') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\n ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_22___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_23___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: ___CSS_LOADER_URL___;\\\\n background: ___CSS_LOADER_URL___INDEX___;\\\\n background: ___CSS_LOADER_URL___99999___;\\\\n background: ___CSS_LOADER_IMPORT___;\\\\n background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n.pure-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_26___ + \\");\\\\n}\\\\n\\\\n.root-relative {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_27___ + \\");\\\\n}\\\\n\\\\n.above-below {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_28___ + \\");\\\\n}\\\\n\\\\n.tilde {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\");\\\\n}\\\\n\\\\n.aliases {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_29___ + \\") ;\\\\n}\\\\n\\\\na {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_30___ + \\");\\\\n}\\\\n\\\\na {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_31___ + \\");\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n /* Broken */\\\\n background-image: -webkit-image-set();\\\\n background-image: -webkit-image-set('');\\\\n background-image: image-set();\\\\n background-image: image-set('');\\\\n background-image: image-set(\\\\\\"\\\\\\");\\\\n background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n background-image: image-set(url());\\\\n background-image: image-set(\\\\n url()\\\\n );\\\\n background-image: image-set(URL());\\\\n background-image: image-set(url(''));\\\\n background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n background-image: image-set(url('') 1x);\\\\n background-image: image-set(1x);\\\\n background-image: image-set(\\\\n 1x\\\\n );\\\\n background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n /* Strings */\\\\n background-image: -webkit-image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x),\\\\n image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x);\\\\n background-image: image-set(\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x,\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x,\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\" 600dpi\\\\n );\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_37___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_38___ + \\" 1x);\\\\n\\\\n /* With \`url\` function */\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x);\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x);\\\\n background-image: -webkit-image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x);\\\\n background-image: image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x);\\\\n background-image: image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_39___ + \\") 600dpi\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 2x);\\\\n\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x);\\\\n}\\\\n\\\\n.class {\\\\n /* Not allowed on windows */\\\\n /* background: url(./img\\\\\\\\\\\\\\"img.png); */\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n\\\\n background-image: image-set(\\\\n /* Not allowed on windows */\\\\n /* url(./img\\\\\\\\\\\\\\"img.png) 1x, */\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\") 2x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\") 3x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\") 4x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\") 5x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 6x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\") 7x\\\\n );\\\\n}\\\\n\\\\n.class-class-class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n}\\\\n\\\\n/* Comment */\\\\n\\\\n.class.class.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n}\\\\n\\\\n.other-test-case {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n}\\\\n\\\\n.qqq {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_45___ + \\");\\\\n}\\\\n\\\\n.www {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n /* Should be one import */\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_46___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_46___ + \\");\\\\n\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_47___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_47___ + \\");\\\\n\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_48___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_48___ + \\");\\\\n\\\\n /* Should be two imports */\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_47___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_49___ + \\");\\\\n\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_50___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_51___ + \\");\\\\n\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_52___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_53___ + \\");\\\\n}\\\\n\\\\n.base {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_54___ + \\") 50% 50%/191px no-repeat;\\\\n}\\\\n\\\\n.strange {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.my-background {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_55___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\", 'foo', './img.png', url('./img.png'));\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\", 'foo', './img.png', url('./img.png')) 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x);\\\\n}\\\\n\\\\n.button {\\\\n background-image: url('data:image/svg+xml;utf8,');\\\\n}\\\\n\\\\n/* We need to use \`resourceQuery: /inline/\` */\\\\n/* Hard to test on webpack v4 */\\\\n.qqq {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_56___ + \\")\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_45___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_45___ + \\");\\\\n}\\\\n\\\\n/** Prefer relative **/\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_31___ + \\");\\\\n}\\\\n\\\\n/** Prefer from modules **/\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_57___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\");\\\\n}\\\\n\\\\n.foo {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_58___ + \\");\\\\n}\\\\n\\", \\"\\"]); // Exports var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); ___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); diff --git a/test/exportStyleSheet.test.js b/test/exportStyleSheet.test.js index 83174ad1..84ae3fae 100644 --- a/test/exportStyleSheet.test.js +++ b/test/exportStyleSheet.test.js @@ -110,7 +110,6 @@ describe("exportStylesheet option", () => { exportStyleSheet: true, }, { - devtool: "source-map", target: "web", output: { path: path.resolve(__dirname, "./outputs"), @@ -135,7 +134,6 @@ describe("exportStylesheet option", () => { modules: true, }, { - devtool: "source-map", target: "web", output: { path: path.resolve(__dirname, "./outputs"), @@ -154,6 +152,31 @@ describe("exportStylesheet option", () => { expect(getErrors(stats)).toMatchSnapshot("errors"); }); + it("should work with CSS modules and the 'exportOnlyLocals' option", async () => { + const compiler = getCompiler( + "./modules/composes/composes-import-assertion-css.js", + { + exportStyleSheet: true, + modules: { + exportOnlyLocals: true, + }, + }, + { + target: "web", + output: { + path: path.resolve(__dirname, "./outputs"), + filename: "[name].bundle.js", + chunkFilename: "[name].chunk.js", + assetModuleFilename: "[name][ext]", + }, + } + ); + const stats = await compile(compiler); + + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); + }); + it("should work and export CSSStyleSheet for import assertion and basic output", async () => { const compiler = getCompiler( "./basic-import-assertion-css-and-standard.js", @@ -201,6 +224,31 @@ describe("exportStylesheet option", () => { expect(getErrors(stats)).toMatchSnapshot("errors"); }); + // TODO https://bugs.chromium.org/p/chromium/issues/detail?id=1174094&q=CSSStyleSheet%20source%20maps&can=2 + it("should work with source maps", async () => { + const compiler = getCompiler( + "./basic-import-assertion-css.js", + { + exportStyleSheet: true, + }, + { + devtool: "source-map", + target: "web", + output: { + path: path.resolve(__dirname, "./outputs"), + filename: "[name].bundle.js", + chunkFilename: "[name].chunk.js", + assetModuleFilename: "[name][ext]", + }, + } + ); + const stats = await compile(compiler); + + expect(getModuleSource("./basic.css", stats)).toMatchSnapshot("module"); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); + }); + it('should work with "sass-loader"', async () => { const compiler = getCompiler( "./scss/import-assertion-css.js", @@ -246,15 +294,16 @@ describe("exportStylesheet option", () => { expect(getErrors(stats)).toMatchSnapshot("errors"); }); - // TODO https://bugs.chromium.org/p/chromium/issues/detail?id=1174094&q=CSSStyleSheet%20source%20maps&can=2 - it("should work with source maps", async () => { + it("should throw an error for CSS modules and disable named export", async () => { const compiler = getCompiler( - "./basic-import-assertion-css.js", + "./modules/composes/composes-import-assertion-css.js", { exportStyleSheet: true, + modules: { + namedExport: false, + }, }, { - devtool: "source-map", target: "web", output: { path: path.resolve(__dirname, "./outputs"), @@ -266,7 +315,6 @@ describe("exportStylesheet option", () => { ); const stats = await compile(compiler); - expect(getModuleSource("./basic.css", stats)).toMatchSnapshot("module"); expect(getWarnings(stats)).toMatchSnapshot("warnings"); expect(getErrors(stats)).toMatchSnapshot("errors"); }); From e995878c357e42880ce991574af3ec9e8ac8a80e Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Fri, 3 Sep 2021 21:22:45 +0300 Subject: [PATCH 09/20] test: update snapshots --- .../validate-options.test.js.snap | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/test/__snapshots__/validate-options.test.js.snap b/test/__snapshots__/validate-options.test.js.snap index 9bf6914b..0b3775df 100644 --- a/test/__snapshots__/validate-options.test.js.snap +++ b/test/__snapshots__/validate-options.test.js.snap @@ -7,10 +7,10 @@ exports[`validate options should throw an error on the "esModule" option with "t -> Read more at https://github.com/webpack-contrib/css-loader#esmodule" `; -exports[`validate options should throw an error on the "exportStylesheet" option with "true" value 1`] = ` +exports[`validate options should throw an error on the "exportStyleSheet" option with "true" value 1`] = ` "Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. - - options.exportStylesheet should be a boolean. - -> Exports style as constructable stylesheets (i.e. \`import sheet from './styles.css' assert { type: 'css' };\`). + - options.exportStyleSheet should be a boolean. + -> Exports styles as constructable stylesheets (i.e. \`import sheet from './styles.css' assert { type: 'css' };\`). -> Read more at https://github.com/webpack-contrib/css-loader#exportstylesheet" `; @@ -306,49 +306,49 @@ exports[`validate options should throw an error on the "sourceMap" option with " exports[`validate options should throw an error on the "unknown" option with "/test/" value 1`] = ` "Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStylesheet? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStyleSheet? }" `; exports[`validate options should throw an error on the "unknown" option with "[]" value 1`] = ` "Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStylesheet? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStyleSheet? }" `; exports[`validate options should throw an error on the "unknown" option with "{"foo":"bar"}" value 1`] = ` "Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStylesheet? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStyleSheet? }" `; exports[`validate options should throw an error on the "unknown" option with "{}" value 1`] = ` "Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStylesheet? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStyleSheet? }" `; exports[`validate options should throw an error on the "unknown" option with "1" value 1`] = ` "Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStylesheet? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStyleSheet? }" `; exports[`validate options should throw an error on the "unknown" option with "false" value 1`] = ` "Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStylesheet? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStyleSheet? }" `; exports[`validate options should throw an error on the "unknown" option with "test" value 1`] = ` "Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStylesheet? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStyleSheet? }" `; exports[`validate options should throw an error on the "unknown" option with "true" value 1`] = ` "Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStylesheet? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStyleSheet? }" `; exports[`validate options should throw an error on the "url" option with "() => {}" value 1`] = ` From e0fbacab5ef106df73646239b00089e792b4efb3 Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Sat, 18 Sep 2021 18:47:06 +0300 Subject: [PATCH 10/20] refactor: code --- src/Warning.js | 2 + src/index.js | 28 +- src/options.json | 8 +- src/plugins/postcss-icss-parser.js | 21 +- src/plugins/postcss-import-parser.js | 38 +- src/utils.js | 35 +- .../exportStyleSheet.test.js.snap | 442 --- test/__snapshots__/exportType.test.js.snap | 2558 +++++++++++++++++ .../validate-options.test.js.snap | 33 +- test/exportStyleSheet.test.js | 321 --- test/exportType.test.js | 269 ++ ...s => basic-css-style-sheet-with-import.js} | 3 +- test/fixtures/basic-css-style-sheet.css | 135 + test/fixtures/basic-css-style-sheet.js | 5 + ...basic-import-assertion-css-and-standard.js | 11 - .../basic-javascript-and-css-style-sheet.js | 10 + .../composes-css-style-sheet-only-locals.js | 4 + .../composes/composes-css-style-sheet.js | 6 + .../composes/composes-import-assertion-css.js | 8 - ...rt-assertion-css.js => css-style-sheet.js} | 3 +- ...ssertion-css.js => url-css-style-sheet.js} | 3 +- test/helpers/execute.js | 19 +- test/helpers/getExecutedCode.js | 4 +- test/validate-options.test.js | 6 +- 24 files changed, 3107 insertions(+), 865 deletions(-) delete mode 100644 test/__snapshots__/exportStyleSheet.test.js.snap create mode 100644 test/__snapshots__/exportType.test.js.snap delete mode 100644 test/exportStyleSheet.test.js create mode 100644 test/exportType.test.js rename test/fixtures/{basic-import-assertion-css.js => basic-css-style-sheet-with-import.js} (67%) create mode 100644 test/fixtures/basic-css-style-sheet.css create mode 100644 test/fixtures/basic-css-style-sheet.js delete mode 100644 test/fixtures/basic-import-assertion-css-and-standard.js create mode 100644 test/fixtures/basic-javascript-and-css-style-sheet.js create mode 100644 test/fixtures/modules/composes/composes-css-style-sheet-only-locals.js create mode 100644 test/fixtures/modules/composes/composes-css-style-sheet.js delete mode 100644 test/fixtures/modules/composes/composes-import-assertion-css.js rename test/fixtures/scss/{import-assertion-css.js => css-style-sheet.js} (68%) rename test/fixtures/url/{url-import-assertion-css.js => url-css-style-sheet.js} (67%) diff --git a/src/Warning.js b/src/Warning.js index f3b18c7a..ca08204d 100644 --- a/src/Warning.js +++ b/src/Warning.js @@ -1,7 +1,9 @@ export default class Warning extends Error { constructor(warning) { super(warning); + const { text, line, column } = warning; + this.name = "Warning"; // Based on https://github.com/postcss/postcss/blob/master/lib/warning.es6#L74 diff --git a/src/index.js b/src/index.js index b8b72d05..4e975a25 100644 --- a/src/index.js +++ b/src/index.js @@ -55,24 +55,13 @@ export default async function loader(content, map, meta) { const importPluginApi = []; if (shouldUseImportPlugin(options)) { - const resolver = this.getResolve({ - dependencyType: "css", - conditionNames: ["style"], - mainFields: ["css", "style", "main", "..."], - mainFiles: ["index", "..."], - extensions: [".css", "..."], - preferRelative: true, - }); - plugins.push( importParser({ + isCSSStyleSheet: options.exportType === "css-style-sheet", + loaderContext: this, imports: importPluginImports, api: importPluginApi, - context: this.context, - rootContext: this.rootContext, - resourcePath: this.resourcePath, filter: options.import.filter, - resolver, urlHandler: (url) => stringifyRequest( this, @@ -114,24 +103,13 @@ export default async function loader(content, map, meta) { const needToUseIcssPlugin = shouldUseIcssPlugin(options); if (needToUseIcssPlugin) { - const icssResolver = this.getResolve({ - dependencyType: "icss", - conditionNames: ["style"], - extensions: ["..."], - mainFields: ["css", "style", "main", "..."], - mainFiles: ["index", "..."], - preferRelative: true, - }); - plugins.push( icssParser({ + loaderContext: this, imports: icssPluginImports, api: icssPluginApi, replacements, exports, - context: this.context, - rootContext: this.rootContext, - resolver: icssResolver, urlHandler: (url) => stringifyRequest( this, diff --git a/src/options.json b/src/options.json index 5b0b0451..ddc2f5c6 100644 --- a/src/options.json +++ b/src/options.json @@ -194,10 +194,10 @@ "link": "https://github.com/webpack-contrib/css-loader#esmodule", "type": "boolean" }, - "exportStyleSheet": { - "description": "Exports styles as constructable stylesheets (i.e. `import sheet from './styles.css' assert { type: 'css' };`).", - "link": "https://github.com/webpack-contrib/css-loader#exportstylesheet", - "type": "boolean" + "exportType": { + "description": "Allows to exports styles as javascript or constructable stylesheets ('CSSStyleSheet').", + "link": "https://github.com/webpack-contrib/css-loader#exporttype", + "enum": ["javascript", "css-style-sheet"] } }, "type": "object" diff --git a/src/plugins/postcss-icss-parser.js b/src/plugins/postcss-icss-parser.js index 64d343a0..09ec2295 100644 --- a/src/plugins/postcss-icss-parser.js +++ b/src/plugins/postcss-icss-parser.js @@ -11,6 +11,16 @@ const plugin = (options = {}) => { const imports = new Map(); const tasks = []; + const { loaderContext } = options; + const resolver = loaderContext.getResolve({ + dependencyType: "icss", + conditionNames: ["style"], + extensions: ["..."], + mainFields: ["css", "style", "main", "..."], + mainFiles: ["index", "..."], + preferRelative: true, + }); + // eslint-disable-next-line guard-for-in for (const url in icssImports) { const tokens = icssImports[url]; @@ -32,13 +42,14 @@ const plugin = (options = {}) => { const request = requestify( normalizeUrl(normalizedUrl, true), - options.rootContext + loaderContext.rootContext ); const doResolve = async () => { - const { resolver, context } = options; - const resolvedUrl = await resolveRequests(resolver, context, [ - ...new Set([normalizedUrl, request]), - ]); + const resolvedUrl = await resolveRequests( + resolver, + loaderContext.context, + [...new Set([normalizedUrl, request])] + ); if (!resolvedUrl) { return; diff --git a/src/plugins/postcss-import-parser.js b/src/plugins/postcss-import-parser.js index b410c99a..5527fa6e 100644 --- a/src/plugins/postcss-import-parser.js +++ b/src/plugins/postcss-import-parser.js @@ -177,6 +177,18 @@ const plugin = (options = {}) => { return { AtRule: { import(atRule) { + if (options.isCSSStyleSheet) { + options.loaderContext.emitError( + new Error( + atRule.error( + "'@import' rules are not allowed here and will not be processed" + ).message + ) + ); + + return; + } + let parsedAtRule; try { @@ -197,6 +209,16 @@ const plugin = (options = {}) => { return; } + const { loaderContext } = options; + const resolver = loaderContext.getResolve({ + dependencyType: "css", + conditionNames: ["style"], + mainFields: ["css", "style", "main", "..."], + mainFiles: ["index", "..."], + extensions: [".css", "..."], + preferRelative: true, + }); + const resolvedAtRules = await Promise.all( parsedAtRules.map(async (parsedAtRule) => { const { @@ -213,7 +235,7 @@ const plugin = (options = {}) => { const needKeep = await options.filter( url, media, - options.resourcePath, + loaderContext.resourcePath, supports, layer ); @@ -224,18 +246,18 @@ const plugin = (options = {}) => { } if (isRequestable) { - const request = requestify(url, options.rootContext); - - const { resolver, context } = options; - const resolvedUrl = await resolveRequests(resolver, context, [ - ...new Set([request, url]), - ]); + const request = requestify(url, loaderContext.rootContext); + const resolvedUrl = await resolveRequests( + resolver, + loaderContext.context, + [...new Set([request, url])] + ); if (!resolvedUrl) { return; } - if (resolvedUrl === options.resourcePath) { + if (resolvedUrl === loaderContext.resourcePath) { atRule.remove(); return; diff --git a/src/utils.js b/src/utils.js index cd2c8f67..8f47cdd6 100644 --- a/src/utils.js +++ b/src/utils.js @@ -513,7 +513,7 @@ function getValidLocalName(localName, exportLocalsConvention) { const IS_MODULES = /\.module(s)?\.\w+$/i; const IS_ICSS = /\.icss\.\w+$/i; -function getModulesOptions(rawOptions, isExportStyleSheet, loaderContext) { +function getModulesOptions(rawOptions, exportType, loaderContext) { if (typeof rawOptions.modules === "boolean" && rawOptions.modules === false) { return false; } @@ -540,6 +540,7 @@ function getModulesOptions(rawOptions, isExportStyleSheet, loaderContext) { // eslint-disable-next-line no-underscore-dangle const { outputOptions } = loaderContext._compilation; + const isExportCSSStyleSheet = exportType === "css-style-sheet"; const modulesOptions = { auto, mode: "local", @@ -554,9 +555,9 @@ function getModulesOptions(rawOptions, isExportStyleSheet, loaderContext) { localIdentRegExp: undefined, // eslint-disable-next-line no-undefined getLocalIdent: undefined, - namedExport: isExportStyleSheet || false, + namedExport: isExportCSSStyleSheet || false, exportLocalsConvention: - (rawModulesOptions.namedExport === true || isExportStyleSheet) && + (rawModulesOptions.namedExport === true || isExportCSSStyleSheet) && typeof rawModulesOptions.exportLocalsConvention === "undefined" ? "camelCaseOnly" : "asIs", @@ -564,9 +565,9 @@ function getModulesOptions(rawOptions, isExportStyleSheet, loaderContext) { ...rawModulesOptions, }; - if (isExportStyleSheet && modulesOptions.namedExport === false) { + if (isExportCSSStyleSheet && modulesOptions.namedExport === false) { throw new Error( - 'The "exportStyleSheet" option requires the "modules.namedExport" option to be enabled.' + "When using the 'css-steel-sheet' export type, you must enable the 'modules.namedExport'" ); } @@ -652,13 +653,13 @@ function getModulesOptions(rawOptions, isExportStyleSheet, loaderContext) { } function normalizeOptions(rawOptions, loaderContext) { - const isExportStyleSheet = - typeof rawOptions.exportStyleSheet === "undefined" - ? false - : rawOptions.exportStyleSheet; + const exportType = + typeof rawOptions.exportType === "undefined" + ? "javascript" + : rawOptions.exportType; const modulesOptions = getModulesOptions( rawOptions, - isExportStyleSheet, + exportType, loaderContext ); @@ -676,12 +677,12 @@ function normalizeOptions(rawOptions, loaderContext) { : rawOptions.importLoaders, esModule: typeof rawOptions.esModule === "undefined" ? true : rawOptions.esModule, - exportStyleSheet: isExportStyleSheet, + exportType, }; } function shouldUseImportPlugin(options) { - if (options.exportStyleSheet || options.modules.exportOnlyLocals) { + if (options.modules.exportOnlyLocals) { return false; } @@ -1046,10 +1047,10 @@ function dashesCamelCase(str) { ); } -function getExportCode(exports, replacements, needToUseIcssPlugin, options) { +function getExportCode(exports, replacements, icssPluginUsed, options) { let code = "// Exports\n"; - if (needToUseIcssPlugin) { + if (icssPluginUsed) { let localsCode = ""; const addExportToLocalsCode = (names, value) => { @@ -1125,14 +1126,16 @@ function getExportCode(exports, replacements, needToUseIcssPlugin, options) { }};\n`; } - if (options.exportStyleSheet) { + const isCSSStyleSheetExport = options.exportType === "css-style-sheet"; + + if (isCSSStyleSheetExport) { code += "var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet();\n"; code += "___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString());\n"; } code += `${options.esModule ? "export default" : "module.exports ="} ${ - options.exportStyleSheet + isCSSStyleSheetExport ? "___CSS_LOADER_STYLE_SHEET___" : "___CSS_LOADER_EXPORT___" };\n`; diff --git a/test/__snapshots__/exportStyleSheet.test.js.snap b/test/__snapshots__/exportStyleSheet.test.js.snap deleted file mode 100644 index ea079fc0..00000000 --- a/test/__snapshots__/exportStyleSheet.test.js.snap +++ /dev/null @@ -1,442 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`exportStylesheet option should throw an error for CSS modules and disable named export: errors 1`] = ` -Array [ - "ModuleBuildError: Module build failed (from \`replaced original path\`): -Error: The \\"exportStyleSheet\\" option requires the \\"modules.namedExport\\" option to be enabled. - at getModulesOptions (/src/utils.js:548:11) - at normalizeOptions (/src/utils.js:639:26) - at Object.loader (/src/index.js:40:15)", -] -`; - -exports[`exportStylesheet option should throw an error for CSS modules and disable named export: warnings 1`] = `Array []`; - -exports[`exportStylesheet option should work and export CSSStyleSheet for import assertion and basic output: errors 1`] = `Array []`; - -exports[`exportStylesheet option should work and export CSSStyleSheet for import assertion and basic output: module 1`] = ` -"// Imports -import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; -import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; -var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); -var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]}); -var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); -var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); -// Module -___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n@import 'imported.css';\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); -// Exports -var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); -___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); -export default ___CSS_LOADER_STYLE_SHEET___; -" -`; - -exports[`exportStylesheet option should work and export CSSStyleSheet for import assertion and basic output: warnings 1`] = `Array []`; - -exports[`exportStylesheet option should work and keep import as is: errors 1`] = `Array []`; - -exports[`exportStylesheet option should work and keep import as is: module 1`] = ` -"// Imports -import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; -import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; -var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); -var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]}); -var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); -var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); -// Module -___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n@import 'imported.css';\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); -// Exports -var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); -___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); -export default ___CSS_LOADER_STYLE_SHEET___; -" -`; - -exports[`exportStylesheet option should work and keep import as is: warnings 1`] = `Array []`; - -exports[`exportStylesheet option should work with "sass-loader": errors 1`] = `Array []`; - -exports[`exportStylesheet option should work with "sass-loader": module 1`] = ` -"// Imports -import ___CSS_LOADER_API_IMPORT___ from \\"../../../src/runtime/api.js\\"; -var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]}); -// Module -___CSS_LOADER_EXPORT___.push([module.id, \\"body {\\\\n font: 100% Helvetica, sans-serif;\\\\n color: #333;\\\\n}\\", \\"\\"]); -// Exports -var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); -___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); -export default ___CSS_LOADER_STYLE_SHEET___; -" -`; - -exports[`exportStylesheet option should work with "sass-loader": warnings 1`] = `Array []`; - -exports[`exportStylesheet option should work with CSS modules and the 'exportOnlyLocals' option: errors 1`] = `Array []`; - -exports[`exportStylesheet option should work with CSS modules and the 'exportOnlyLocals' option: warnings 1`] = ` -Array [ - "ModuleDependencyWarning: export 'default' (imported as 'sheet') was not found in '././composes.css' (possible exports: alias, aliasDuplicate, blackSelector, foo, foobarbaz, ghi, green, header, mLarge, mSmall, main, myClass, myModule, other, otherOther, primarySelector, relative, sBlack, sWhite, simple, topRelative, url, vBar, vComment, vDef, vDimension, vFoo, vFunction, vHex, vIdent, vInteger, vInteger1, vInteger2, vNumber, vNumber1, vNumber2, vOther, vPercentage, vPreDefinedIdent, vPrimary, vSomething, vString, vString1, vUnicodeRange, vUrl, vUrl1, vUrl2)", - "ModuleDependencyWarning: export 'default' (imported as 'sheet') was not found in '././composes.css' (possible exports: alias, aliasDuplicate, blackSelector, foo, foobarbaz, ghi, green, header, mLarge, mSmall, main, myClass, myModule, other, otherOther, primarySelector, relative, sBlack, sWhite, simple, topRelative, url, vBar, vComment, vDef, vDimension, vFoo, vFunction, vHex, vIdent, vInteger, vInteger1, vInteger2, vNumber, vNumber1, vNumber2, vOther, vPercentage, vPreDefinedIdent, vPrimary, vSomething, vString, vString1, vUnicodeRange, vUrl, vUrl1, vUrl2)", -] -`; - -exports[`exportStylesheet option should work with CSS modules: errors 1`] = `Array []`; - -exports[`exportStylesheet option should work with CSS modules: module 1`] = ` -"// Imports -import ___CSS_LOADER_API_IMPORT___ from \\"../../../../src/runtime/api.js\\"; -import ___CSS_LOADER_ICSS_IMPORT_0___, * as ___CSS_LOADER_ICSS_IMPORT_0____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./values.css\\"; -import ___CSS_LOADER_ICSS_IMPORT_1___, * as ___CSS_LOADER_ICSS_IMPORT_1____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./something.css\\"; -import ___CSS_LOADER_ICSS_IMPORT_2___, * as ___CSS_LOADER_ICSS_IMPORT_2____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./imported-simple.css\\"; -import ___CSS_LOADER_ICSS_IMPORT_3___, * as ___CSS_LOADER_ICSS_IMPORT_3____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./relative.css\\"; -import ___CSS_LOADER_ICSS_IMPORT_4___, * as ___CSS_LOADER_ICSS_IMPORT_4____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./top-relative.css\\"; -import ___CSS_LOADER_ICSS_IMPORT_5___, * as ___CSS_LOADER_ICSS_IMPORT_5____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!../issue-861/node_modules/package/style.css\\"; -import ___CSS_LOADER_ICSS_IMPORT_6___, * as ___CSS_LOADER_ICSS_IMPORT_6____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./alias.css\\"; -import ___CSS_LOADER_ICSS_IMPORT_7___, * as ___CSS_LOADER_ICSS_IMPORT_7____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!sass-loader!./scss-file.scss\\"; -import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../../../src/runtime/getUrl.js\\"; -var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"../../url/img.png\\", import.meta.url); -var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]}); -___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); -___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_1___, \\"\\", true); -___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_2___, \\"\\", true); -___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_3___, \\"\\", true); -___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_4___, \\"\\", true); -___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_5___, \\"\\", true); -___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_6___, \\"\\", true); -___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_7___, \\"\\", true); -var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); -// Module -___CSS_LOADER_EXPORT___.push([module.id, \\"@import url(./test-other.css) (min-width: 100px);\\\\n\\\\n.JrMovmNxiARceckPi1Bb {\\\\n color: \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vDef\\"] + \\";\\\\n}\\\\n\\\\n._xZYrLKW96sXm2aniadM {\\\\n color: blue;\\\\n}\\\\n\\\\n.cXIvIhl_Be3NhMPQoE0z {\\\\n display: block;\\\\n}\\\\n\\\\n.wyIZMXPNE2D7zb9VCrHe {\\\\n width: \\" + ___CSS_LOADER_ICSS_IMPORT_1____NAMED___[\\"vSomething\\"] + \\";\\\\n}\\\\n\\\\n.as9P70j15m_wICZ94IJx {\\\\n color: \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vOther\\"] + \\";\\\\n}\\\\n\\\\n.zAepmy_SqloGdZJJmXNm {\\\\n prop: \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vDef\\"] + \\";\\\\n duplicate: \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vOther\\"] + \\";\\\\n}\\\\n\\\\n.n_zXxs10wzKREXQdQrw9 {\\\\n color: red;\\\\n}\\\\n\\\\n._u4nolEyHSlixSSx7uXN {\\\\n color: yellow;\\\\n}\\\\n\\\\n._EXVuUxUggUhA1UEBgZk {\\\\n color: gray;\\\\n}\\\\n\\\\n.o2wK31qqosVXAPAdGIxD {\\\\n color: gray;\\\\n}\\\\n\\\\n._Y2QYoxyUknZNv0u6wN3 {\\\\n color: gainsboro;\\\\n}\\\\n\\\\n.wmZh7D9g5PjWvMpojahG {\\\\n color: gainsboro;\\\\n}\\\\n\\\\n.uOEsMAq4YIv8PUUlnnhI {\\\\n color: #BF4040;\\\\n}\\\\n\\\\n._r6IpGhEbXgocCCXZgDs {\\\\n color: black;\\\\n}\\\\n\\\\n@media (min-width: 960px) {\\\\n .IsCkQQmCqI3_HSI_H_hT {\\\\n padding: 0 20px;\\\\n }\\\\n}\\\\n\\\\n.\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"sWhite\\"] + \\" {\\\\n color: white;\\\\n}\\\\n\\\\n@media \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"mSmall\\"] + \\" {\\\\n .IsCkQQmCqI3_HSI_H_hT {\\\\n padding: 20px 20px;\\\\n }\\\\n}\\\\n\\\\n.lNjqoQe7B3jKXIowFbpE {\\\\n v-ident: validIdent;\\\\n v-pre-defined-ident: left;\\\\n v-string: 'content';\\\\n v-string-1: '';\\\\n v-url: url(https://www.exammple.com/images/my-background.png);\\\\n v-url-1: url('https://www.exammple.com/images/my-background.png');\\\\n v-url-2: url(\\\\\\"https://www.exammple.com/images/my-background.png\\\\\\");\\\\n v-integer: 100;\\\\n v-integer-1: -100;\\\\n v-integer-2: +100;\\\\n v-number: .60;\\\\n v-number-1: -456.8;\\\\n v-number-2: -3.4e-2;\\\\n v-dimension: 12px;\\\\n v-percentage: 100%;\\\\n v-hex: #fff;\\\\n v-comment: /* comment */ 10px /* comment */;\\\\n v-function: rgb(0,0,0);\\\\n v-unicode-range: U+0025-00FF;\\\\n mutliple: #fff .60 100%;\\\\n}\\\\n\\\\n\\\\na {\\\\n content: 'content';\\\\n}\\\\n\\\\n@supports (content: 'content') {\\\\n a {\\\\n content: 'content';\\\\n }\\\\n}\\\\n\\\\n[class~='content'] {\\\\n color:green;\\\\n}\\\\n\\\\n.ABtimDL9fvKNWc1BjB59 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.K7O_z8z4VzoG6Ru_jb_T {\\\\n background: red;\\\\n}\\\\n\\", \\"\\"]); -// Exports -export var vDef = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vDef\\"] + \\"\\"; -export var vOther = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vOther\\"] + \\"\\"; -export var sWhite = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"sWhite\\"] + \\"\\"; -export var mSmall = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"mSmall\\"] + \\"\\"; -export var vSomething = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_1____NAMED___[\\"vSomething\\"] + \\"\\"; -export var vFoo = \\"blue\\"; -export var vBar = \\"block\\"; -export var vPrimary = \\"#BF4040\\"; -export var sBlack = \\"black-selector\\"; -export var mLarge = \\"(min-width: 960px)\\"; -export var vIdent = \\"validIdent\\"; -export var vPreDefinedIdent = \\"left\\"; -export var vString = \\"'content'\\"; -export var vString1 = \\"''\\"; -export var vUrl = \\"url(https://www.exammple.com/images/my-background.png)\\"; -export var vUrl1 = \\"url('https://www.exammple.com/images/my-background.png')\\"; -export var vUrl2 = \\"url(\\\\\\"https://www.exammple.com/images/my-background.png\\\\\\")\\"; -export var vInteger = \\"100\\"; -export var vInteger1 = \\"-100\\"; -export var vInteger2 = \\"+100\\"; -export var vNumber = \\".60\\"; -export var vNumber1 = \\"-456.8\\"; -export var vNumber2 = \\"-3.4e-2\\"; -export var vDimension = \\"12px\\"; -export var vPercentage = \\"100%\\"; -export var vHex = \\"#fff\\"; -export var vComment = \\" /* comment */\\"; -export var vFunction = \\"rgb(0,0,0)\\"; -export var vUnicodeRange = \\"U+0025-00FF\\"; -export var ghi = \\"JrMovmNxiARceckPi1Bb\\"; -export var myClass = \\"_xZYrLKW96sXm2aniadM\\"; -export var other = \\"cXIvIhl_Be3NhMPQoE0z\\"; -export var otherOther = \\"wyIZMXPNE2D7zb9VCrHe\\"; -export var green = \\"as9P70j15m_wICZ94IJx\\"; -export var foo = \\"zAepmy_SqloGdZJJmXNm\\"; -export var simple = \\"n_zXxs10wzKREXQdQrw9 \\" + ___CSS_LOADER_ICSS_IMPORT_2____NAMED___[\\"importedSimple\\"] + \\"\\"; -export var relative = \\"_u4nolEyHSlixSSx7uXN \\" + ___CSS_LOADER_ICSS_IMPORT_3____NAMED___[\\"importedRelative\\"] + \\"\\"; -export var topRelative = \\"_EXVuUxUggUhA1UEBgZk \\" + ___CSS_LOADER_ICSS_IMPORT_4____NAMED___[\\"importedRelative\\"] + \\"\\"; -export var myModule = \\"o2wK31qqosVXAPAdGIxD \\" + ___CSS_LOADER_ICSS_IMPORT_5____NAMED___[\\"importedModule\\"] + \\"\\"; -export var alias = \\"_Y2QYoxyUknZNv0u6wN3 \\" + ___CSS_LOADER_ICSS_IMPORT_6____NAMED___[\\"importedAlias\\"] + \\"\\"; -export var aliasDuplicate = \\"wmZh7D9g5PjWvMpojahG \\" + ___CSS_LOADER_ICSS_IMPORT_6____NAMED___[\\"importedAlias\\"] + \\"\\"; -export var primarySelector = \\"uOEsMAq4YIv8PUUlnnhI\\"; -export var blackSelector = \\"_r6IpGhEbXgocCCXZgDs\\"; -export var header = \\"IsCkQQmCqI3_HSI_H_hT\\"; -export var foobarbaz = \\"lNjqoQe7B3jKXIowFbpE\\"; -export var url = \\"ABtimDL9fvKNWc1BjB59\\"; -export var main = \\"K7O_z8z4VzoG6Ru_jb_T \\" + ___CSS_LOADER_ICSS_IMPORT_7____NAMED___[\\"scssClass\\"] + \\"\\"; -var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); -___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); -export default ___CSS_LOADER_STYLE_SHEET___; -" -`; - -exports[`exportStylesheet option should work with CSS modules: warnings 1`] = `Array []`; - -exports[`exportStylesheet option should work with CommonJS modules: errors 1`] = `Array []`; - -exports[`exportStylesheet option should work with CommonJS modules: module 1`] = ` -"// Imports -var ___CSS_LOADER_API_IMPORT___ = require(\\"../../src/runtime/api.js\\"); -var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../src/runtime/getUrl.js\\"); -var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./url/img.png\\"); -var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]}); -var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); -// Module -___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n@import 'imported.css';\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==);\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); -// Exports -var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); -___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); -module.exports = ___CSS_LOADER_STYLE_SHEET___; -" -`; - -exports[`exportStylesheet option should work with CommonJS modules: warnings 1`] = `Array []`; - -exports[`exportStylesheet option should work with ECMA modules: errors 1`] = `Array []`; - -exports[`exportStylesheet option should work with ECMA modules: module 1`] = ` -"// Imports -import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; -import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; -var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); -var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]}); -var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); -var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); -// Module -___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n@import 'imported.css';\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); -// Exports -var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); -___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); -export default ___CSS_LOADER_STYLE_SHEET___; -" -`; - -exports[`exportStylesheet option should work with ECMA modules: warnings 1`] = `Array []`; - -exports[`exportStylesheet option should work with source maps: errors 1`] = `Array []`; - -exports[`exportStylesheet option should work with source maps: module 1`] = ` -"// Imports -import ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \\"../../src/runtime/cssWithMappingToString.js\\"; -import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; -import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; -var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); -var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); -var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); -var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); -// Module -___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n@import 'imported.css';\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\",{\\"version\\":3,\\"sources\\":[\\"webpack://./basic.css\\"],\\"names\\":[],\\"mappings\\":\\"AAAA,gBAAgB;;AAEhB,sBAAsB;;AAEtB,YAAY;;AAEZ;EACE,UAAU;EACV,mDAAgC;AAClC;;AAEA;EACE,mDAAgC;AAClC;;AAEA;EACE,UAAU;EACV,UAAU;AACZ;;AAEA,SAAS,QAAQ,EAAE;;AAEnB,MAAM;;AAEN,SAAS,QAAQ,EAAE;;AAEnB,SAAS,iBAAiB;;AAE1B;EACE;IACE,2BAA2B;EAC7B;AACF;;AAEA;EACE,gBAAgB;EAChB,qBAAqB;EACrB,sBAAsB;EACtB,0BAA0B;EAC1B,4BAA4B;AAC9B;;AAEA,OAAO;AACP,QAAQ;;AAER,SAAS;;AAET;EACE,aAAa;EACb,eAAe;AACjB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,qBAAqB;AACvB;;AAEA,aAAa;;AAEb,YAAY;;AAEZ,QAAQ;;AAER;EACE,mBAAmB,EAAE,2BAA2B;AAClD;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,gBAAgB;AAClB;;AAEA,IAAI;;AAEJ,WAAW,EAAE,sCAAsC;AACnD,YAAY,EAAE,yCAAyC;AACvD,YAAY,EAAE,2CAA2C;AACzD,UAAU,EAAE,0CAA0C;AACtD,IAAI,EAAE,oCAAoC;;AAE1C;EACE,qBAAqB;EACrB;;;;;;;;;;GAUC;AACH;;AAEA;EACE,mBAAmB;EACnB,oBAAoB;EACpB,oBAAoB;EACpB,mBAAmB;EACnB,iBAAiB;EACjB,wBAAwB;AAC1B;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,mDAAq1B;AACv1B;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,WAAW;AACb\\",\\"sourcesContent\\":[\\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n@import 'imported.css';\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\\\\\"./url/img.png\\\\\\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\\\\\"./url/img.png\\\\\\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==);\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\"],\\"sourceRoot\\":\\"\\"}]); -// Exports -var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); -___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); -export default ___CSS_LOADER_STYLE_SHEET___; -" -`; - -exports[`exportStylesheet option should work with source maps: warnings 1`] = `Array []`; - -exports[`exportStylesheet option should work with urls: errors 1`] = `Array []`; - -exports[`exportStylesheet option should work with urls: module 1`] = ` -"// Imports -import ___CSS_LOADER_API_IMPORT___ from \\"../../../src/runtime/api.js\\"; -import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../../src/runtime/getUrl.js\\"; -var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"package/img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_2___ = new URL(\\"./other-img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_3___ = new URL(\\"./img img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_4___ = new URL(\\"/img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_5___ = new URL(\\"data:image/png;base64,AAA\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_6___ = new URL(\\"data:image/svg+xml;charset=utf-8,\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_7___ = new URL(\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_8___ = new URL(\\"data:image/svg+xml;charset=utf-8,#filter\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_9___ = new URL(\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba%28255%2C255%2C255%2C1%29%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_10___ = new URL(\\"./font.woff\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_11___ = new URL(\\"./font.woff2\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_12___ = new URL(\\"./font.eot\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_13___ = new URL(\\"package/font.ttf\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_14___ = new URL(\\"./font with spaces.eot\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_15___ = new URL(\\"./font.svg\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_16___ = new URL(\\"./font.woff2?foo=bar\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_17___ = new URL(\\"./img1x.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_18___ = new URL(\\"./img2x.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_19___ = new URL(\\"./img.png?foo\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_20___ = new URL(\\"./img.png?foo=bar\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_21___ = new URL(\\"./img.png?\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_22___ = new URL(\\"img-simple.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_23___ = new URL(\\"/url/img-simple.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_24___ = new URL(\\"../url/img-simple.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_25___ = new URL(\\"aliasesImg/img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_26___ = new URL(\\"./nested/img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_27___ = new URL(\\"nested/img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_28___ = new URL(\\"./img3x.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_29___ = new URL(\\"./img1x.png?foo=bar\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_30___ = new URL(\\"./img'img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_31___ = new URL(\\"./img'''img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_32___ = new URL(\\"./img(img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_33___ = new URL(\\"./img)img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_34___ = new URL(\\"./img'() img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_35___ = new URL(\\"img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_36___ = new URL(\\"./something.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_37___ = new URL(\\"./something.png?foo=bar\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_38___ = new URL(\\"./something.png?bar=foo\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_39___ = new URL(\\"./something.png?foo=1&bar=2\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_40___ = new URL(\\"./something.png?foo=2&bar=1\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_41___ = new URL(\\"data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3C%21DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%0A%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%0A%09%20width%3D%22191px%22%20height%3D%22191px%22%20viewBox%3D%220%200%20191%20191%22%20enable-background%3D%22new%200%200%20191%20191%22%20xml%3Aspace%3D%22preserve%22%3E%0A%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M95.5%2C0C42.8%2C0%2C0%2C42.8%2C0%2C95.5S42.8%2C191%2C95.5%2C191S191%2C148.2%2C191%2C95.5S148.2%2C0%2C95.5%2C0z%20M95.5%2C187.6%0A%09c-50.848%2C0-92.1-41.25-92.1-92.1c0-50.848%2C41.252-92.1%2C92.1-92.1c50.85%2C0%2C92.1%2C41.252%2C92.1%2C92.1%0A%09C187.6%2C146.35%2C146.35%2C187.6%2C95.5%2C187.6z%22%2F%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M92.9%2C10v8.6H91v-6.5c-0.1%2C0.1-0.2%2C0.2-0.4%2C0.3c-0.2%2C0.1-0.3%2C0.2-0.4%2C0.2c-0.1%2C0-0.3%2C0.1-0.5%2C0.2%0A%09%09c-0.2%2C0.1-0.3%2C0.1-0.5%2C0.1v-1.6c0.5-0.1%2C0.9-0.3%2C1.4-0.5c0.5-0.2%2C0.8-0.5%2C1.2-0.7h1.1V10z%22%2F%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M97.1%2C17.1h3.602v1.5h-5.6V18c0-0.4%2C0.1-0.8%2C0.2-1.2c0.1-0.4%2C0.3-0.6%2C0.5-0.9c0.2-0.3%2C0.5-0.5%2C0.7-0.7%0A%09%09c0.2-0.2%2C0.5-0.4%2C0.7-0.6c0.199-0.2%2C0.5-0.3%2C0.6-0.5c0.102-0.2%2C0.301-0.3%2C0.5-0.5c0.2-0.2%2C0.2-0.3%2C0.301-0.5%0A%09%09c0.101-0.2%2C0.101-0.3%2C0.101-0.5c0-0.4-0.101-0.6-0.3-0.8c-0.2-0.2-0.4-0.3-0.801-0.3c-0.699%2C0-1.399%2C0.3-2.101%2C0.9v-1.6%0A%09%09c0.7-0.5%2C1.5-0.7%2C2.5-0.7c0.399%2C0%2C0.8%2C0.1%2C1.101%2C0.2c0.301%2C0.1%2C0.601%2C0.3%2C0.899%2C0.5c0.3%2C0.2%2C0.399%2C0.5%2C0.5%2C0.8%0A%09%09c0.101%2C0.3%2C0.2%2C0.6%2C0.2%2C1s-0.102%2C0.7-0.2%2C1c-0.099%2C0.3-0.3%2C0.6-0.5%2C0.8c-0.2%2C0.2-0.399%2C0.5-0.7%2C0.7c-0.3%2C0.2-0.5%2C0.4-0.8%2C0.6%0A%09%09c-0.2%2C0.1-0.399%2C0.3-0.5%2C0.4s-0.3%2C0.3-0.5%2C0.4s-0.2%2C0.3-0.3%2C0.4C97.1%2C17%2C97.1%2C17%2C97.1%2C17.1z%22%2F%3E%0A%3C%2Fg%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M15%2C95.4c0%2C0.7-0.1%2C1.4-0.2%2C2c-0.1%2C0.6-0.4%2C1.1-0.7%2C1.5C13.8%2C99.3%2C13.4%2C99.6%2C12.9%2C99.8s-1%2C0.3-1.5%2C0.3%0A%09%09c-0.7%2C0-1.3-0.1-1.8-0.3v-1.5c0.4%2C0.3%2C1%2C0.4%2C1.6%2C0.4c0.6%2C0%2C1.1-0.2%2C1.5-0.7c0.4-0.5%2C0.5-1.1%2C0.5-1.9l0%2C0%0A%09%09C12.8%2C96.7%2C12.3%2C96.9%2C11.5%2C96.9c-0.3%2C0-0.7-0.102-1-0.2c-0.3-0.101-0.5-0.3-0.8-0.5c-0.3-0.2-0.4-0.5-0.5-0.8%0A%09%09c-0.1-0.3-0.2-0.7-0.2-1c0-0.4%2C0.1-0.8%2C0.2-1.2c0.1-0.4%2C0.3-0.7%2C0.6-0.9c0.3-0.2%2C0.6-0.5%2C0.9-0.6c0.3-0.1%2C0.8-0.2%2C1.2-0.2%0A%09%09c0.5%2C0%2C0.9%2C0.1%2C1.2%2C0.3c0.3%2C0.2%2C0.7%2C0.4%2C0.9%2C0.8s0.5%2C0.7%2C0.6%2C1.2S15%2C94.8%2C15%2C95.4z%20M13.1%2C94.4c0-0.2%2C0-0.4-0.1-0.6%0A%09%09c-0.1-0.2-0.1-0.4-0.2-0.5c-0.1-0.1-0.2-0.2-0.4-0.3c-0.2-0.1-0.3-0.1-0.5-0.1c-0.2%2C0-0.3%2C0-0.4%2C0.1s-0.3%2C0.2-0.3%2C0.3%0A%09%09c0%2C0.1-0.2%2C0.3-0.2%2C0.4c0%2C0.1-0.1%2C0.4-0.1%2C0.6c0%2C0.2%2C0%2C0.4%2C0.1%2C0.6c0.1%2C0.2%2C0.1%2C0.3%2C0.2%2C0.4c0.1%2C0.1%2C0.2%2C0.2%2C0.4%2C0.3%0A%09%09c0.2%2C0.1%2C0.3%2C0.1%2C0.5%2C0.1c0.2%2C0%2C0.3%2C0%2C0.4-0.1s0.2-0.2%2C0.3-0.3c0.1-0.1%2C0.2-0.2%2C0.2-0.4C13%2C94.7%2C13.1%2C94.6%2C13.1%2C94.4z%22%2F%3E%0A%3C%2Fg%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M176%2C99.7V98.1c0.6%2C0.4%2C1.2%2C0.602%2C2%2C0.602c0.5%2C0%2C0.8-0.102%2C1.1-0.301c0.301-0.199%2C0.4-0.5%2C0.4-0.801%0A%09%09c0-0.398-0.2-0.699-0.5-0.898c-0.3-0.2-0.8-0.301-1.3-0.301h-0.802V95h0.701c1.101%2C0%2C1.601-0.4%2C1.601-1.1c0-0.7-0.4-1-1.302-1%0A%09%09c-0.6%2C0-1.1%2C0.2-1.6%2C0.5v-1.5c0.6-0.3%2C1.301-0.4%2C2.1-0.4c0.9%2C0%2C1.5%2C0.2%2C2%2C0.6s0.701%2C0.9%2C0.701%2C1.5c0%2C1.1-0.601%2C1.8-1.701%2C2.1l0%2C0%0A%09%09c0.602%2C0.1%2C1.102%2C0.3%2C1.4%2C0.6s0.5%2C0.8%2C0.5%2C1.3c0%2C0.801-0.3%2C1.4-0.9%2C1.9c-0.6%2C0.5-1.398%2C0.7-2.398%2C0.7%0A%09%09C177.2%2C100.1%2C176.5%2C100%2C176%2C99.7z%22%2F%3E%0A%3C%2Fg%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M98.5%2C179.102c0%2C0.398-0.1%2C0.799-0.2%2C1.199C98.2%2C180.7%2C98%2C181%2C97.7%2C181.2s-0.601%2C0.5-0.9%2C0.601%0A%09%09c-0.3%2C0.1-0.7%2C0.199-1.2%2C0.199c-0.5%2C0-0.9-0.1-1.3-0.3c-0.4-0.2-0.7-0.399-0.9-0.8c-0.2-0.4-0.5-0.7-0.6-1.2%0A%09%09c-0.1-0.5-0.2-1-0.2-1.601c0-0.699%2C0.1-1.399%2C0.3-2c0.2-0.601%2C0.4-1.101%2C0.8-1.5c0.4-0.399%2C0.7-0.699%2C1.2-1c0.5-0.3%2C1-0.3%2C1.6-0.3%0A%09%09c0.6%2C0%2C1.2%2C0.101%2C1.5%2C0.199v1.5c-0.4-0.199-0.9-0.399-1.4-0.399c-0.3%2C0-0.6%2C0.101-0.8%2C0.2c-0.2%2C0.101-0.5%2C0.3-0.7%2C0.5%0A%09%09c-0.2%2C0.199-0.3%2C0.5-0.4%2C0.8c-0.1%2C0.301-0.2%2C0.7-0.2%2C1.101l0%2C0c0.4-0.601%2C1-0.8%2C1.8-0.8c0.3%2C0%2C0.7%2C0.1%2C0.9%2C0.199%0A%09%09c0.2%2C0.101%2C0.5%2C0.301%2C0.7%2C0.5c0.199%2C0.2%2C0.398%2C0.5%2C0.5%2C0.801C98.5%2C178.2%2C98.5%2C178.7%2C98.5%2C179.102z%20M96.7%2C179.2%0A%09%09c0-0.899-0.4-1.399-1.1-1.399c-0.2%2C0-0.3%2C0-0.5%2C0.1c-0.2%2C0.101-0.3%2C0.201-0.4%2C0.301c-0.1%2C0.101-0.2%2C0.199-0.2%2C0.4%0A%09%09c0%2C0.199-0.1%2C0.299-0.1%2C0.5c0%2C0.199%2C0%2C0.398%2C0.1%2C0.6s0.1%2C0.3%2C0.2%2C0.5c0.1%2C0.199%2C0.2%2C0.199%2C0.4%2C0.3c0.2%2C0.101%2C0.3%2C0.101%2C0.5%2C0.101%0A%09%09c0.2%2C0%2C0.3%2C0%2C0.5-0.101c0.2-0.101%2C0.301-0.199%2C0.301-0.3c0-0.1%2C0.199-0.301%2C0.199-0.399C96.6%2C179.7%2C96.7%2C179.4%2C96.7%2C179.2z%22%2F%3E%0A%3C%2Fg%3E%0A%3Ccircle%20fill%3D%22%23636363%22%20cx%3D%2295%22%20cy%3D%2295%22%20r%3D%227%22%2F%3E%0A%3C%2Fsvg%3E%0A\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_42___ = new URL(\\"/guide/img/banWord/addCoinDialogTitleBg.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_43___ = new URL(\\"!!../../helpers/url-loader.js?esModule=false!package/img-single.png?ignore-asset-modules\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_44___ = new URL(\\"nested/other.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_45___ = new URL(\\"data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27none%27 stroke=%27%23343a40%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27M2 5l6 6 6-6%27/%3e%3c/svg%3e\\", import.meta.url); -var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]}); -var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); -var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___, { hash: \\"#hash\\" }); -var ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); -var ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___); -var ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___); -var ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___); -var ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___); -var ___CSS_LOADER_URL_REPLACEMENT_7___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___); -var ___CSS_LOADER_URL_REPLACEMENT_8___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___); -var ___CSS_LOADER_URL_REPLACEMENT_9___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_8___); -var ___CSS_LOADER_URL_REPLACEMENT_10___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_9___); -var ___CSS_LOADER_URL_REPLACEMENT_11___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_10___); -var ___CSS_LOADER_URL_REPLACEMENT_12___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___); -var ___CSS_LOADER_URL_REPLACEMENT_13___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_12___); -var ___CSS_LOADER_URL_REPLACEMENT_14___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_13___); -var ___CSS_LOADER_URL_REPLACEMENT_15___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_14___); -var ___CSS_LOADER_URL_REPLACEMENT_16___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_15___, { hash: \\"#svgFontName\\" }); -var ___CSS_LOADER_URL_REPLACEMENT_17___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_16___); -var ___CSS_LOADER_URL_REPLACEMENT_18___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_12___, { hash: \\"?#iefix\\" }); -var ___CSS_LOADER_URL_REPLACEMENT_19___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_14___, { hash: \\"?#iefix\\" }); -var ___CSS_LOADER_URL_REPLACEMENT_20___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___); -var ___CSS_LOADER_URL_REPLACEMENT_21___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_18___); -var ___CSS_LOADER_URL_REPLACEMENT_22___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_19___); -var ___CSS_LOADER_URL_REPLACEMENT_23___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_20___); -var ___CSS_LOADER_URL_REPLACEMENT_24___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_20___, { hash: \\"#hash\\" }); -var ___CSS_LOADER_URL_REPLACEMENT_25___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_21___); -var ___CSS_LOADER_URL_REPLACEMENT_26___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_22___); -var ___CSS_LOADER_URL_REPLACEMENT_27___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_23___); -var ___CSS_LOADER_URL_REPLACEMENT_28___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_24___); -var ___CSS_LOADER_URL_REPLACEMENT_29___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_25___); -var ___CSS_LOADER_URL_REPLACEMENT_30___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_26___); -var ___CSS_LOADER_URL_REPLACEMENT_31___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_27___); -var ___CSS_LOADER_URL_REPLACEMENT_32___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___, { needQuotes: true }); -var ___CSS_LOADER_URL_REPLACEMENT_33___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_18___, { needQuotes: true }); -var ___CSS_LOADER_URL_REPLACEMENT_34___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___, { needQuotes: true }); -var ___CSS_LOADER_URL_REPLACEMENT_35___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_28___, { needQuotes: true }); -var ___CSS_LOADER_URL_REPLACEMENT_36___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_29___, { needQuotes: true }); -var ___CSS_LOADER_URL_REPLACEMENT_37___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___, { hash: \\"#hash\\", needQuotes: true }); -var ___CSS_LOADER_URL_REPLACEMENT_38___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___, { hash: \\"?#iefix\\", needQuotes: true }); -var ___CSS_LOADER_URL_REPLACEMENT_39___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_28___); -var ___CSS_LOADER_URL_REPLACEMENT_40___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_30___); -var ___CSS_LOADER_URL_REPLACEMENT_41___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_31___); -var ___CSS_LOADER_URL_REPLACEMENT_42___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_32___); -var ___CSS_LOADER_URL_REPLACEMENT_43___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_33___); -var ___CSS_LOADER_URL_REPLACEMENT_44___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_34___); -var ___CSS_LOADER_URL_REPLACEMENT_45___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_35___); -var ___CSS_LOADER_URL_REPLACEMENT_46___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_36___); -var ___CSS_LOADER_URL_REPLACEMENT_47___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_37___); -var ___CSS_LOADER_URL_REPLACEMENT_48___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_37___, { hash: \\"#hash\\" }); -var ___CSS_LOADER_URL_REPLACEMENT_49___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_38___); -var ___CSS_LOADER_URL_REPLACEMENT_50___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_37___, { hash: \\"#foo\\" }); -var ___CSS_LOADER_URL_REPLACEMENT_51___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_38___, { hash: \\"#bar\\" }); -var ___CSS_LOADER_URL_REPLACEMENT_52___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_39___); -var ___CSS_LOADER_URL_REPLACEMENT_53___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_40___); -var ___CSS_LOADER_URL_REPLACEMENT_54___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_41___); -var ___CSS_LOADER_URL_REPLACEMENT_55___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_42___); -var ___CSS_LOADER_URL_REPLACEMENT_56___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_43___); -var ___CSS_LOADER_URL_REPLACEMENT_57___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_44___); -var ___CSS_LOADER_URL_REPLACEMENT_58___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_45___); -// Module -___CSS_LOADER_EXPORT___.push([module.id, \\"@import \\\\\\"./imported.css\\\\\\";\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\"\\\\n );\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_6___ + \\") url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_8___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n filter: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n filter: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \\");\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url(#highlight);\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_11___ + \\") format('woff'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_12___ + \\") format('woff2'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \\") format('eot'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") format('truetype'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_16___ + \\") format('svg'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_17___ + \\") format('woff2'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_18___ + \\") format('embedded-opentype'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_19___ + \\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n body {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n }\\\\n}\\\\n\\\\na {\\\\n content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes anim {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") xyz;\\\\n}\\\\n\\\\n.a {\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x)\\\\n}\\\\n\\\\n.a {\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x)\\\\n}\\\\n\\\\n.class {\\\\n background: green url() xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url('') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(' ') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\n ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_22___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_23___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: ___CSS_LOADER_URL___;\\\\n background: ___CSS_LOADER_URL___INDEX___;\\\\n background: ___CSS_LOADER_URL___99999___;\\\\n background: ___CSS_LOADER_IMPORT___;\\\\n background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n.pure-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_26___ + \\");\\\\n}\\\\n\\\\n.root-relative {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_27___ + \\");\\\\n}\\\\n\\\\n.above-below {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_28___ + \\");\\\\n}\\\\n\\\\n.tilde {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\");\\\\n}\\\\n\\\\n.aliases {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_29___ + \\") ;\\\\n}\\\\n\\\\na {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_30___ + \\");\\\\n}\\\\n\\\\na {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_31___ + \\");\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n /* Broken */\\\\n background-image: -webkit-image-set();\\\\n background-image: -webkit-image-set('');\\\\n background-image: image-set();\\\\n background-image: image-set('');\\\\n background-image: image-set(\\\\\\"\\\\\\");\\\\n background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n background-image: image-set(url());\\\\n background-image: image-set(\\\\n url()\\\\n );\\\\n background-image: image-set(URL());\\\\n background-image: image-set(url(''));\\\\n background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n background-image: image-set(url('') 1x);\\\\n background-image: image-set(1x);\\\\n background-image: image-set(\\\\n 1x\\\\n );\\\\n background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n /* Strings */\\\\n background-image: -webkit-image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x),\\\\n image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x);\\\\n background-image: image-set(\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x,\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x,\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\" 600dpi\\\\n );\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_37___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_38___ + \\" 1x);\\\\n\\\\n /* With \`url\` function */\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x);\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x);\\\\n background-image: -webkit-image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x);\\\\n background-image: image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x);\\\\n background-image: image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_39___ + \\") 600dpi\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 2x);\\\\n\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x);\\\\n}\\\\n\\\\n.class {\\\\n /* Not allowed on windows */\\\\n /* background: url(./img\\\\\\\\\\\\\\"img.png); */\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n\\\\n background-image: image-set(\\\\n /* Not allowed on windows */\\\\n /* url(./img\\\\\\\\\\\\\\"img.png) 1x, */\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\") 2x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\") 3x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\") 4x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\") 5x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 6x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\") 7x\\\\n );\\\\n}\\\\n\\\\n.class-class-class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n}\\\\n\\\\n/* Comment */\\\\n\\\\n.class.class.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n}\\\\n\\\\n.other-test-case {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n}\\\\n\\\\n.qqq {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_45___ + \\");\\\\n}\\\\n\\\\n.www {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n /* Should be one import */\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_46___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_46___ + \\");\\\\n\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_47___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_47___ + \\");\\\\n\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_48___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_48___ + \\");\\\\n\\\\n /* Should be two imports */\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_47___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_49___ + \\");\\\\n\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_50___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_51___ + \\");\\\\n\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_52___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_53___ + \\");\\\\n}\\\\n\\\\n.base {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_54___ + \\") 50% 50%/191px no-repeat;\\\\n}\\\\n\\\\n.strange {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.my-background {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_55___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\", 'foo', './img.png', url('./img.png'));\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\", 'foo', './img.png', url('./img.png')) 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x);\\\\n}\\\\n\\\\n.button {\\\\n background-image: url('data:image/svg+xml;utf8,');\\\\n}\\\\n\\\\n/* We need to use \`resourceQuery: /inline/\` */\\\\n/* Hard to test on webpack v4 */\\\\n.qqq {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_56___ + \\")\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_45___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_45___ + \\");\\\\n}\\\\n\\\\n/** Prefer relative **/\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_31___ + \\");\\\\n}\\\\n\\\\n/** Prefer from modules **/\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_57___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\");\\\\n}\\\\n\\\\n.foo {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_58___ + \\");\\\\n}\\\\n\\", \\"\\"]); -// Exports -var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); -___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); -export default ___CSS_LOADER_STYLE_SHEET___; -" -`; - -exports[`exportStylesheet option should work with urls: warnings 1`] = ` -Array [ - "ModuleWarning: Module Warning (from \`replaced original path\`): -Warning - -(120:3) Unable to find uri in 'background: green url() xyz'", - "ModuleWarning: Module Warning (from \`replaced original path\`): -Warning - -(124:3) Unable to find uri in 'background: green url('') xyz'", - "ModuleWarning: Module Warning (from \`replaced original path\`): -Warning - -(128:3) Unable to find uri in 'background: green url(\\"\\") xyz'", - "ModuleWarning: Module Warning (from \`replaced original path\`): -Warning - -(132:3) Unable to find uri in 'background: green url(' ') xyz'", - "ModuleWarning: Module Warning (from \`replaced original path\`): -Warning - -(136:3) Unable to find uri in 'background: green url( - ) xyz'", - "ModuleWarning: Module Warning (from \`replaced original path\`): -Warning - -(216:3) Unable to find uri in 'background-image: -webkit-image-set('')'", - "ModuleWarning: Module Warning (from \`replaced original path\`): -Warning - -(218:3) Unable to find uri in 'background-image: image-set('')'", - "ModuleWarning: Module Warning (from \`replaced original path\`): -Warning - -(219:3) Unable to find uri in 'background-image: image-set(\\"\\")'", - "ModuleWarning: Module Warning (from \`replaced original path\`): -Warning - -(220:3) Unable to find uri in 'background-image: image-set(\\"\\" 1x)'", - "ModuleWarning: Module Warning (from \`replaced original path\`): -Warning - -(221:3) Unable to find uri in 'background-image: image-set(url())'", - "ModuleWarning: Module Warning (from \`replaced original path\`): -Warning - -(222:3) Unable to find uri in 'background-image: image-set( - url() - )'", - "ModuleWarning: Module Warning (from \`replaced original path\`): -Warning - -(225:3) Unable to find uri in 'background-image: image-set(URL())'", - "ModuleWarning: Module Warning (from \`replaced original path\`): -Warning - -(226:3) Unable to find uri in 'background-image: image-set(url(''))'", - "ModuleWarning: Module Warning (from \`replaced original path\`): -Warning - -(227:3) Unable to find uri in 'background-image: image-set(url(\\"\\"))'", - "ModuleWarning: Module Warning (from \`replaced original path\`): -Warning - -(228:3) Unable to find uri in 'background-image: image-set(url('') 1x)'", -] -`; - -exports[`exportStylesheet option should work: errors 1`] = `Array []`; - -exports[`exportStylesheet option should work: module 1`] = ` -"// Imports -import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; -import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; -var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); -var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]}); -var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); -var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); -// Module -___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n@import 'imported.css';\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); -// Exports -var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); -___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); -export default ___CSS_LOADER_STYLE_SHEET___; -" -`; - -exports[`exportStylesheet option should work: warnings 1`] = `Array []`; diff --git a/test/__snapshots__/exportType.test.js.snap b/test/__snapshots__/exportType.test.js.snap new file mode 100644 index 00000000..ebd57558 --- /dev/null +++ b/test/__snapshots__/exportType.test.js.snap @@ -0,0 +1,2558 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`'exportType' option should throw an error for CSS modules when used 'css-style-sheet' value and named export disabled: errors 1`] = ` +Array [ + "ModuleBuildError: Module build failed (from \`replaced original path\`): +Error: When using the 'css-steel-sheet' export type, you must enable the 'modules.namedExport' + at getModulesOptions (/src/utils.js:569:11) + at normalizeOptions (/src/utils.js:660:26) + at Object.loader (/src/index.js:40:15)", +] +`; + +exports[`'exportType' option should throw an error for CSS modules when used 'css-style-sheet' value and named export disabled: warnings 1`] = `Array []`; + +exports[`'exportType' option should work and export 'javascript' by default: errors 1`] = `Array []`; + +exports[`'exportType' option should work and export 'javascript' by default: module 1`] = ` +"// Imports +import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../src/runtime/noSourceMaps.js\\"; +import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; +import ___CSS_LOADER_AT_RULE_IMPORT_0___ from \\"-!../../src/index.js??ruleSet[1].rules[0].use[0]!./imported.css\\"; +import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +// Exports +export default ___CSS_LOADER_EXPORT___; +" +`; + +exports[`'exportType' option should work and export 'javascript' by default: result 1`] = ` +Array [ + Array [ + "../../src/index.js??ruleSet[1].rules[0].use[0]!./imported.css", + ".foo { + color: red; +} +", + "", + ], + Array [ + "./basic.css", + "@charset \\"UTF-8\\"; + +/* Comment */ + +.class { + color: red; + background: url(replaced_file_protocol_/webpack/public/path/img.png); +} + +.class-duplicate-url { + background: url(replaced_file_protocol_/webpack/public/path/img.png); +} + +:root { + --foo: 1px; + --bar: 2px; +} + +.class { a: b c d; } + +.two {} + +.u-m\\\\+ { a: b c d; } + +.class { content: \\"\\\\F10C\\" } + +@media only screen and (max-width: 600px) { + body { + background-color: lightblue; + } +} + +.class { + content: \\"\\\\2193\\"; + content: \\"\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193\\"; + content: \\"\\\\2193\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193 \\\\2193\\"; +} + +.-top {} +.\\\\-top {} + +#\\\\#test {} + +.grid { + display: flex; + flex-wrap: wrap; +} +.grid.\\\\-top { + align-items: flex-start; +} +.grid.-top { + align-items: flex-start; +} +.grid.\\\\-middle { + align-items: center; +} +.grid.\\\\-bottom { + align-items: flex-end; +} + +.u-m\\\\00002b {} + +.u-m00002b {} + +#u-m\\\\+ {} + +body { + font-family: '微软雅黑'; /* some chinese font name */ +} + +.myStyle { + content: '\\\\e901'; +} + +.myStyle { + content: '\\\\E901'; +} + +.♫ {} + +.\\\\3A \\\\\`\\\\( {} /* matches elements with class=\\":\`(\\" */ +.\\\\31 a2b3c {} /* matches elements with class=\\"1a2b3c\\" */ +#\\\\#fake-id {} /* matches the element with id=\\"#fake-id\\" */ +#-a-b-c- {} /* matches the element with id=\\"-a-b-c-\\" */ +#© {} /* matches the element with id=\\"©\\" */ + +:root { + --title-align: center; + --sr-only: { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0,0,0,0); + white-space: nowrap; + clip-path: inset(50%); + border: 0; + }; +} + +.test { + content: \\"\\\\2014\\\\A0\\"; + content: \\"\\\\2014 \\\\A0\\"; + content: \\"\\\\A0 \\\\2014\\"; + content: \\"\\\\A0\\\\2014\\"; + margin-top: 1px\\\\9; + background-color: #000\\\\9; +} + +.light.on .bulb:before{ + content: '💡'; +} + +.base64 { + background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); +} + +a[href=''] { + color: red; +} + +a[href='' i] { + color: red; +} + +a[href=\\"\\"] { + color: blue; +} + +a[href=\\"\\" i] { + color: blue; +} +", + "", + ], +] +`; + +exports[`'exportType' option should work and export 'javascript' by default: warnings 1`] = `Array []`; + +exports[`'exportType' option should work with 'css-style-sheet' and 'javascript' values: errors 1`] = `Array []`; + +exports[`'exportType' option should work with 'css-style-sheet' and 'javascript' values: module 1`] = ` +"// Imports +import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../src/runtime/noSourceMaps.js\\"; +import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; +import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +// Exports +var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); +___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); +export default ___CSS_LOADER_STYLE_SHEET___; +" +`; + +exports[`'exportType' option should work with 'css-style-sheet' and 'javascript' values: module 2`] = ` +"// Imports +import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../src/runtime/noSourceMaps.js\\"; +import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; +import ___CSS_LOADER_AT_RULE_IMPORT_0___ from \\"-!../../src/index.js!./imported.css\\"; +import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +// Exports +export default ___CSS_LOADER_EXPORT___; +" +`; + +exports[`'exportType' option should work with 'css-style-sheet' and 'javascript' values: result 1`] = ` +Array [ + CSSStyleSheet { + "text": "@charset \\"UTF-8\\"; + +/* Comment */ + +.class { + color: red; + background: url(file:///webpack/public/path/img.png); +} + +.class-duplicate-url { + background: url(file:///webpack/public/path/img.png); +} + +:root { + --foo: 1px; + --bar: 2px; +} + +.class { a: b c d; } + +.two {} + +.u-m\\\\+ { a: b c d; } + +.class { content: \\"\\\\F10C\\" } + +@media only screen and (max-width: 600px) { + body { + background-color: lightblue; + } +} + +.class { + content: \\"\\\\2193\\"; + content: \\"\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193\\"; + content: \\"\\\\2193\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193 \\\\2193\\"; +} + +.-top {} +.\\\\-top {} + +#\\\\#test {} + +.grid { + display: flex; + flex-wrap: wrap; +} +.grid.\\\\-top { + align-items: flex-start; +} +.grid.-top { + align-items: flex-start; +} +.grid.\\\\-middle { + align-items: center; +} +.grid.\\\\-bottom { + align-items: flex-end; +} + +.u-m\\\\00002b {} + +.u-m00002b {} + +#u-m\\\\+ {} + +body { + font-family: '微软雅黑'; /* some chinese font name */ +} + +.myStyle { + content: '\\\\e901'; +} + +.myStyle { + content: '\\\\E901'; +} + +.♫ {} + +.\\\\3A \\\\\`\\\\( {} /* matches elements with class=\\":\`(\\" */ +.\\\\31 a2b3c {} /* matches elements with class=\\"1a2b3c\\" */ +#\\\\#fake-id {} /* matches the element with id=\\"#fake-id\\" */ +#-a-b-c- {} /* matches the element with id=\\"-a-b-c-\\" */ +#© {} /* matches the element with id=\\"©\\" */ + +:root { + --title-align: center; + --sr-only: { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0,0,0,0); + white-space: nowrap; + clip-path: inset(50%); + border: 0; + }; +} + +.test { + content: \\"\\\\2014\\\\A0\\"; + content: \\"\\\\2014 \\\\A0\\"; + content: \\"\\\\A0 \\\\2014\\"; + content: \\"\\\\A0\\\\2014\\"; + margin-top: 1px\\\\9; + background-color: #000\\\\9; +} + +.light.on .bulb:before{ + content: '💡'; +} + +.base64 { + background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); +} + +a[href=''] { + color: red; +} + +a[href='' i] { + color: red; +} + +a[href=\\"\\"] { + color: blue; +} + +a[href=\\"\\" i] { + color: blue; +} +", + }, + Array [ + Array [ + "../../src/index.js!./imported.css", + ".foo { + color: red; +} +", + "", + ], + Array [ + "./basic.css?foo=1", + "@charset \\"UTF-8\\"; + +/* Comment */ + +.class { + color: red; + background: url(replaced_file_protocol_/webpack/public/path/img.png); +} + +.class-duplicate-url { + background: url(replaced_file_protocol_/webpack/public/path/img.png); +} + +:root { + --foo: 1px; + --bar: 2px; +} + +.class { a: b c d; } + +.two {} + +.u-m\\\\+ { a: b c d; } + +.class { content: \\"\\\\F10C\\" } + +@media only screen and (max-width: 600px) { + body { + background-color: lightblue; + } +} + +.class { + content: \\"\\\\2193\\"; + content: \\"\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193\\"; + content: \\"\\\\2193\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193 \\\\2193\\"; +} + +.-top {} +.\\\\-top {} + +#\\\\#test {} + +.grid { + display: flex; + flex-wrap: wrap; +} +.grid.\\\\-top { + align-items: flex-start; +} +.grid.-top { + align-items: flex-start; +} +.grid.\\\\-middle { + align-items: center; +} +.grid.\\\\-bottom { + align-items: flex-end; +} + +.u-m\\\\00002b {} + +.u-m00002b {} + +#u-m\\\\+ {} + +body { + font-family: '微软雅黑'; /* some chinese font name */ +} + +.myStyle { + content: '\\\\e901'; +} + +.myStyle { + content: '\\\\E901'; +} + +.♫ {} + +.\\\\3A \\\\\`\\\\( {} /* matches elements with class=\\":\`(\\" */ +.\\\\31 a2b3c {} /* matches elements with class=\\"1a2b3c\\" */ +#\\\\#fake-id {} /* matches the element with id=\\"#fake-id\\" */ +#-a-b-c- {} /* matches the element with id=\\"-a-b-c-\\" */ +#© {} /* matches the element with id=\\"©\\" */ + +:root { + --title-align: center; + --sr-only: { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0,0,0,0); + white-space: nowrap; + clip-path: inset(50%); + border: 0; + }; +} + +.test { + content: \\"\\\\2014\\\\A0\\"; + content: \\"\\\\2014 \\\\A0\\"; + content: \\"\\\\A0 \\\\2014\\"; + content: \\"\\\\A0\\\\2014\\"; + margin-top: 1px\\\\9; + background-color: #000\\\\9; +} + +.light.on .bulb:before{ + content: '💡'; +} + +.base64 { + background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); +} + +a[href=''] { + color: red; +} + +a[href='' i] { + color: red; +} + +a[href=\\"\\"] { + color: blue; +} + +a[href=\\"\\" i] { + color: blue; +} +", + "", + ], + ], +] +`; + +exports[`'exportType' option should work with 'css-style-sheet' and 'javascript' values: warnings 1`] = `Array []`; + +exports[`'exportType' option should work with 'css-style-sheet' value and CSS modules and still emit error on '@import' at-rules: errors 1`] = ` +Array [ + "ModuleError: Module Error (from \`replaced original path\`): +/test/fixtures/modules/composes/composes.css:1:1: '@import' rules are not allowed here and will not be processed", +] +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and CSS modules and still emit error on '@import' at-rules: module 1`] = ` +"// Imports +import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../../../src/runtime/noSourceMaps.js\\"; +import ___CSS_LOADER_API_IMPORT___ from \\"../../../../src/runtime/api.js\\"; +import ___CSS_LOADER_ICSS_IMPORT_0___, * as ___CSS_LOADER_ICSS_IMPORT_0____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./values.css\\"; +import ___CSS_LOADER_ICSS_IMPORT_1___, * as ___CSS_LOADER_ICSS_IMPORT_1____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./something.css\\"; +import ___CSS_LOADER_ICSS_IMPORT_2___, * as ___CSS_LOADER_ICSS_IMPORT_2____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./imported-simple.css\\"; +import ___CSS_LOADER_ICSS_IMPORT_3___, * as ___CSS_LOADER_ICSS_IMPORT_3____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./relative.css\\"; +import ___CSS_LOADER_ICSS_IMPORT_4___, * as ___CSS_LOADER_ICSS_IMPORT_4____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./top-relative.css\\"; +import ___CSS_LOADER_ICSS_IMPORT_5___, * as ___CSS_LOADER_ICSS_IMPORT_5____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!../issue-861/node_modules/package/style.css\\"; +import ___CSS_LOADER_ICSS_IMPORT_6___, * as ___CSS_LOADER_ICSS_IMPORT_6____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./alias.css\\"; +import ___CSS_LOADER_ICSS_IMPORT_7___, * as ___CSS_LOADER_ICSS_IMPORT_7____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!sass-loader!./scss-file.scss\\"; +import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../../../src/runtime/getUrl.js\\"; +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"../../url/img.png\\", import.meta.url); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_1___, \\"\\", true); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_2___, \\"\\", true); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_3___, \\"\\", true); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_4___, \\"\\", true); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_5___, \\"\\", true); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_6___, \\"\\", true); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_7___, \\"\\", true); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"@import url(./test-other.css) (min-width: 100px);\\\\n\\\\n.JrMovmNxiARceckPi1Bb {\\\\n color: \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vDef\\"] + \\";\\\\n}\\\\n\\\\n._xZYrLKW96sXm2aniadM {\\\\n color: blue;\\\\n}\\\\n\\\\n.cXIvIhl_Be3NhMPQoE0z {\\\\n display: block;\\\\n}\\\\n\\\\n.wyIZMXPNE2D7zb9VCrHe {\\\\n width: \\" + ___CSS_LOADER_ICSS_IMPORT_1____NAMED___[\\"vSomething\\"] + \\";\\\\n}\\\\n\\\\n.as9P70j15m_wICZ94IJx {\\\\n color: \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vOther\\"] + \\";\\\\n}\\\\n\\\\n.zAepmy_SqloGdZJJmXNm {\\\\n prop: \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vDef\\"] + \\";\\\\n duplicate: \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vOther\\"] + \\";\\\\n}\\\\n\\\\n.n_zXxs10wzKREXQdQrw9 {\\\\n color: red;\\\\n}\\\\n\\\\n._u4nolEyHSlixSSx7uXN {\\\\n color: yellow;\\\\n}\\\\n\\\\n._EXVuUxUggUhA1UEBgZk {\\\\n color: gray;\\\\n}\\\\n\\\\n.o2wK31qqosVXAPAdGIxD {\\\\n color: gray;\\\\n}\\\\n\\\\n._Y2QYoxyUknZNv0u6wN3 {\\\\n color: gainsboro;\\\\n}\\\\n\\\\n.wmZh7D9g5PjWvMpojahG {\\\\n color: gainsboro;\\\\n}\\\\n\\\\n.uOEsMAq4YIv8PUUlnnhI {\\\\n color: #BF4040;\\\\n}\\\\n\\\\n._r6IpGhEbXgocCCXZgDs {\\\\n color: black;\\\\n}\\\\n\\\\n@media (min-width: 960px) {\\\\n .IsCkQQmCqI3_HSI_H_hT {\\\\n padding: 0 20px;\\\\n }\\\\n}\\\\n\\\\n.\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"sWhite\\"] + \\" {\\\\n color: white;\\\\n}\\\\n\\\\n@media \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"mSmall\\"] + \\" {\\\\n .IsCkQQmCqI3_HSI_H_hT {\\\\n padding: 20px 20px;\\\\n }\\\\n}\\\\n\\\\n.lNjqoQe7B3jKXIowFbpE {\\\\n v-ident: validIdent;\\\\n v-pre-defined-ident: left;\\\\n v-string: 'content';\\\\n v-string-1: '';\\\\n v-url: url(https://www.exammple.com/images/my-background.png);\\\\n v-url-1: url('https://www.exammple.com/images/my-background.png');\\\\n v-url-2: url(\\\\\\"https://www.exammple.com/images/my-background.png\\\\\\");\\\\n v-integer: 100;\\\\n v-integer-1: -100;\\\\n v-integer-2: +100;\\\\n v-number: .60;\\\\n v-number-1: -456.8;\\\\n v-number-2: -3.4e-2;\\\\n v-dimension: 12px;\\\\n v-percentage: 100%;\\\\n v-hex: #fff;\\\\n v-comment: /* comment */ 10px /* comment */;\\\\n v-function: rgb(0,0,0);\\\\n v-unicode-range: U+0025-00FF;\\\\n mutliple: #fff .60 100%;\\\\n}\\\\n\\\\n\\\\na {\\\\n content: 'content';\\\\n}\\\\n\\\\n@supports (content: 'content') {\\\\n a {\\\\n content: 'content';\\\\n }\\\\n}\\\\n\\\\n[class~='content'] {\\\\n color:green;\\\\n}\\\\n\\\\n.ABtimDL9fvKNWc1BjB59 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.K7O_z8z4VzoG6Ru_jb_T {\\\\n background: red;\\\\n}\\\\n\\", \\"\\"]); +// Exports +export var vDef = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vDef\\"] + \\"\\"; +export var vOther = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vOther\\"] + \\"\\"; +export var sWhite = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"sWhite\\"] + \\"\\"; +export var mSmall = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"mSmall\\"] + \\"\\"; +export var vSomething = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_1____NAMED___[\\"vSomething\\"] + \\"\\"; +export var vFoo = \\"blue\\"; +export var vBar = \\"block\\"; +export var vPrimary = \\"#BF4040\\"; +export var sBlack = \\"black-selector\\"; +export var mLarge = \\"(min-width: 960px)\\"; +export var vIdent = \\"validIdent\\"; +export var vPreDefinedIdent = \\"left\\"; +export var vString = \\"'content'\\"; +export var vString1 = \\"''\\"; +export var vUrl = \\"url(https://www.exammple.com/images/my-background.png)\\"; +export var vUrl1 = \\"url('https://www.exammple.com/images/my-background.png')\\"; +export var vUrl2 = \\"url(\\\\\\"https://www.exammple.com/images/my-background.png\\\\\\")\\"; +export var vInteger = \\"100\\"; +export var vInteger1 = \\"-100\\"; +export var vInteger2 = \\"+100\\"; +export var vNumber = \\".60\\"; +export var vNumber1 = \\"-456.8\\"; +export var vNumber2 = \\"-3.4e-2\\"; +export var vDimension = \\"12px\\"; +export var vPercentage = \\"100%\\"; +export var vHex = \\"#fff\\"; +export var vComment = \\" /* comment */\\"; +export var vFunction = \\"rgb(0,0,0)\\"; +export var vUnicodeRange = \\"U+0025-00FF\\"; +export var ghi = \\"JrMovmNxiARceckPi1Bb\\"; +export var myClass = \\"_xZYrLKW96sXm2aniadM\\"; +export var other = \\"cXIvIhl_Be3NhMPQoE0z\\"; +export var otherOther = \\"wyIZMXPNE2D7zb9VCrHe\\"; +export var green = \\"as9P70j15m_wICZ94IJx\\"; +export var foo = \\"zAepmy_SqloGdZJJmXNm\\"; +export var simple = \\"n_zXxs10wzKREXQdQrw9 \\" + ___CSS_LOADER_ICSS_IMPORT_2____NAMED___[\\"importedSimple\\"] + \\"\\"; +export var relative = \\"_u4nolEyHSlixSSx7uXN \\" + ___CSS_LOADER_ICSS_IMPORT_3____NAMED___[\\"importedRelative\\"] + \\"\\"; +export var topRelative = \\"_EXVuUxUggUhA1UEBgZk \\" + ___CSS_LOADER_ICSS_IMPORT_4____NAMED___[\\"importedRelative\\"] + \\"\\"; +export var myModule = \\"o2wK31qqosVXAPAdGIxD \\" + ___CSS_LOADER_ICSS_IMPORT_5____NAMED___[\\"importedModule\\"] + \\"\\"; +export var alias = \\"_Y2QYoxyUknZNv0u6wN3 \\" + ___CSS_LOADER_ICSS_IMPORT_6____NAMED___[\\"importedAlias\\"] + \\"\\"; +export var aliasDuplicate = \\"wmZh7D9g5PjWvMpojahG \\" + ___CSS_LOADER_ICSS_IMPORT_6____NAMED___[\\"importedAlias\\"] + \\"\\"; +export var primarySelector = \\"uOEsMAq4YIv8PUUlnnhI\\"; +export var blackSelector = \\"_r6IpGhEbXgocCCXZgDs\\"; +export var header = \\"IsCkQQmCqI3_HSI_H_hT\\"; +export var foobarbaz = \\"lNjqoQe7B3jKXIowFbpE\\"; +export var url = \\"ABtimDL9fvKNWc1BjB59\\"; +export var main = \\"K7O_z8z4VzoG6Ru_jb_T \\" + ___CSS_LOADER_ICSS_IMPORT_7____NAMED___[\\"scssClass\\"] + \\"\\"; +var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); +___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); +export default ___CSS_LOADER_STYLE_SHEET___; +" +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and CSS modules and still emit error on '@import' at-rules: result 1`] = ` +CSSStyleSheet { + "named": Object { + "alias": "_Y2QYoxyUknZNv0u6wN3 _4Zj8x54IrWF75cUaGyT", + "aliasDuplicate": "wmZh7D9g5PjWvMpojahG _4Zj8x54IrWF75cUaGyT", + "blackSelector": "_r6IpGhEbXgocCCXZgDs", + "default": [Circular], + "foo": "zAepmy_SqloGdZJJmXNm", + "foobarbaz": "lNjqoQe7B3jKXIowFbpE", + "ghi": "JrMovmNxiARceckPi1Bb", + "green": "as9P70j15m_wICZ94IJx", + "header": "IsCkQQmCqI3_HSI_H_hT", + "mLarge": "(min-width: 960px)", + "mSmall": "(min-width: 320px)", + "main": "K7O_z8z4VzoG6Ru_jb_T pqdLCWFRW03AVy9uJoZX", + "myClass": "_xZYrLKW96sXm2aniadM", + "myModule": "o2wK31qqosVXAPAdGIxD ONhOxkn21jORUJmheiwE", + "other": "cXIvIhl_Be3NhMPQoE0z", + "otherOther": "wyIZMXPNE2D7zb9VCrHe", + "primarySelector": "uOEsMAq4YIv8PUUlnnhI", + "relative": "_u4nolEyHSlixSSx7uXN HlqmBJrtIvJ3Gzgbut_w", + "sBlack": "black-selector", + "sWhite": "white", + "simple": "n_zXxs10wzKREXQdQrw9 kN0Z3n7LgkVJQeFmVucy", + "topRelative": "_EXVuUxUggUhA1UEBgZk MzX17bUYYh7fmdKVXQ9p", + "url": "ABtimDL9fvKNWc1BjB59", + "vBar": "block", + "vComment": " /* comment */", + "vDef": "red", + "vDimension": "12px", + "vFoo": "blue", + "vFunction": "rgb(0,0,0)", + "vHex": "#fff", + "vIdent": "validIdent", + "vInteger": "100", + "vInteger1": "-100", + "vInteger2": "+100", + "vNumber": ".60", + "vNumber1": "-456.8", + "vNumber2": "-3.4e-2", + "vOther": "green", + "vPercentage": "100%", + "vPreDefinedIdent": "left", + "vPrimary": "#BF4040", + "vSomething": "2112moon", + "vString": "'content'", + "vString1": "''", + "vUnicodeRange": "U+0025-00FF", + "vUrl": "url(https://www.exammple.com/images/my-background.png)", + "vUrl1": "url('https://www.exammple.com/images/my-background.png')", + "vUrl2": "url(\\"https://www.exammple.com/images/my-background.png\\")", + }, + "text": "@import url(./test-other.css) (min-width: 100px); + +.JrMovmNxiARceckPi1Bb { + color: red; +} + +._xZYrLKW96sXm2aniadM { + color: blue; +} + +.cXIvIhl_Be3NhMPQoE0z { + display: block; +} + +.wyIZMXPNE2D7zb9VCrHe { + width: 2112moon; +} + +.as9P70j15m_wICZ94IJx { + color: green; +} + +.zAepmy_SqloGdZJJmXNm { + prop: red; + duplicate: green; +} + +.n_zXxs10wzKREXQdQrw9 { + color: red; +} + +._u4nolEyHSlixSSx7uXN { + color: yellow; +} + +._EXVuUxUggUhA1UEBgZk { + color: gray; +} + +.o2wK31qqosVXAPAdGIxD { + color: gray; +} + +._Y2QYoxyUknZNv0u6wN3 { + color: gainsboro; +} + +.wmZh7D9g5PjWvMpojahG { + color: gainsboro; +} + +.uOEsMAq4YIv8PUUlnnhI { + color: #BF4040; +} + +._r6IpGhEbXgocCCXZgDs { + color: black; +} + +@media (min-width: 960px) { + .IsCkQQmCqI3_HSI_H_hT { + padding: 0 20px; + } +} + +.white { + color: white; +} + +@media (min-width: 320px) { + .IsCkQQmCqI3_HSI_H_hT { + padding: 20px 20px; + } +} + +.lNjqoQe7B3jKXIowFbpE { + v-ident: validIdent; + v-pre-defined-ident: left; + v-string: 'content'; + v-string-1: ''; + v-url: url(https://www.exammple.com/images/my-background.png); + v-url-1: url('https://www.exammple.com/images/my-background.png'); + v-url-2: url(\\"https://www.exammple.com/images/my-background.png\\"); + v-integer: 100; + v-integer-1: -100; + v-integer-2: +100; + v-number: .60; + v-number-1: -456.8; + v-number-2: -3.4e-2; + v-dimension: 12px; + v-percentage: 100%; + v-hex: #fff; + v-comment: /* comment */ 10px /* comment */; + v-function: rgb(0,0,0); + v-unicode-range: U+0025-00FF; + mutliple: #fff .60 100%; +} + + +a { + content: 'content'; +} + +@supports (content: 'content') { + a { + content: 'content'; + } +} + +[class~='content'] { + color:green; +} + +.ABtimDL9fvKNWc1BjB59 { + background: url(file:///webpack/public/path/img.png); +} + +.K7O_z8z4VzoG6Ru_jb_T { + background: red; +} +", +} +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and CSS modules and still emit error on '@import' at-rules: warnings 1`] = `Array []`; + +exports[`'exportType' option should work with 'css-style-sheet' value and CommonJS modules: errors 1`] = `Array []`; + +exports[`'exportType' option should work with 'css-style-sheet' value and CommonJS modules: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = require(\\"../../src/runtime/noSourceMaps.js\\"); +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../src/runtime/api.js\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./url/img.png\\"); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==);\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +// Exports +var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); +___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); +module.exports = ___CSS_LOADER_STYLE_SHEET___; +" +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and CommonJS modules: result 1`] = ` +CSSStyleSheet { + "text": "@charset \\"UTF-8\\"; + +/* Comment */ + +.class { + color: red; + background: url(/webpack/public/path/img.png); +} + +.class-duplicate-url { + background: url(/webpack/public/path/img.png); +} + +:root { + --foo: 1px; + --bar: 2px; +} + +.class { a: b c d; } + +.two {} + +.u-m\\\\+ { a: b c d; } + +.class { content: \\"\\\\F10C\\" } + +@media only screen and (max-width: 600px) { + body { + background-color: lightblue; + } +} + +.class { + content: \\"\\\\2193\\"; + content: \\"\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193\\"; + content: \\"\\\\2193\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193 \\\\2193\\"; +} + +.-top {} +.\\\\-top {} + +#\\\\#test {} + +.grid { + display: flex; + flex-wrap: wrap; +} +.grid.\\\\-top { + align-items: flex-start; +} +.grid.-top { + align-items: flex-start; +} +.grid.\\\\-middle { + align-items: center; +} +.grid.\\\\-bottom { + align-items: flex-end; +} + +.u-m\\\\00002b {} + +.u-m00002b {} + +#u-m\\\\+ {} + +body { + font-family: '微软雅黑'; /* some chinese font name */ +} + +.myStyle { + content: '\\\\e901'; +} + +.myStyle { + content: '\\\\E901'; +} + +.♫ {} + +.\\\\3A \\\\\`\\\\( {} /* matches elements with class=\\":\`(\\" */ +.\\\\31 a2b3c {} /* matches elements with class=\\"1a2b3c\\" */ +#\\\\#fake-id {} /* matches the element with id=\\"#fake-id\\" */ +#-a-b-c- {} /* matches the element with id=\\"-a-b-c-\\" */ +#© {} /* matches the element with id=\\"©\\" */ + +:root { + --title-align: center; + --sr-only: { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0,0,0,0); + white-space: nowrap; + clip-path: inset(50%); + border: 0; + }; +} + +.test { + content: \\"\\\\2014\\\\A0\\"; + content: \\"\\\\2014 \\\\A0\\"; + content: \\"\\\\A0 \\\\2014\\"; + content: \\"\\\\A0\\\\2014\\"; + margin-top: 1px\\\\9; + background-color: #000\\\\9; +} + +.light.on .bulb:before{ + content: '💡'; +} + +.base64 { + background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); +} + +a[href=''] { + color: red; +} + +a[href='' i] { + color: red; +} + +a[href=\\"\\"] { + color: blue; +} + +a[href=\\"\\" i] { + color: blue; +} +", +} +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and CommonJS modules: warnings 1`] = `Array []`; + +exports[`'exportType' option should work with 'css-style-sheet' value and ECMA modules: errors 1`] = `Array []`; + +exports[`'exportType' option should work with 'css-style-sheet' value and ECMA modules: module 1`] = ` +"// Imports +import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../src/runtime/noSourceMaps.js\\"; +import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; +import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +// Exports +var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); +___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); +export default ___CSS_LOADER_STYLE_SHEET___; +" +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and ECMA modules: result 1`] = ` +CSSStyleSheet { + "text": "@charset \\"UTF-8\\"; + +/* Comment */ + +.class { + color: red; + background: url(file:///webpack/public/path/img.png); +} + +.class-duplicate-url { + background: url(file:///webpack/public/path/img.png); +} + +:root { + --foo: 1px; + --bar: 2px; +} + +.class { a: b c d; } + +.two {} + +.u-m\\\\+ { a: b c d; } + +.class { content: \\"\\\\F10C\\" } + +@media only screen and (max-width: 600px) { + body { + background-color: lightblue; + } +} + +.class { + content: \\"\\\\2193\\"; + content: \\"\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193\\"; + content: \\"\\\\2193\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193 \\\\2193\\"; +} + +.-top {} +.\\\\-top {} + +#\\\\#test {} + +.grid { + display: flex; + flex-wrap: wrap; +} +.grid.\\\\-top { + align-items: flex-start; +} +.grid.-top { + align-items: flex-start; +} +.grid.\\\\-middle { + align-items: center; +} +.grid.\\\\-bottom { + align-items: flex-end; +} + +.u-m\\\\00002b {} + +.u-m00002b {} + +#u-m\\\\+ {} + +body { + font-family: '微软雅黑'; /* some chinese font name */ +} + +.myStyle { + content: '\\\\e901'; +} + +.myStyle { + content: '\\\\E901'; +} + +.♫ {} + +.\\\\3A \\\\\`\\\\( {} /* matches elements with class=\\":\`(\\" */ +.\\\\31 a2b3c {} /* matches elements with class=\\"1a2b3c\\" */ +#\\\\#fake-id {} /* matches the element with id=\\"#fake-id\\" */ +#-a-b-c- {} /* matches the element with id=\\"-a-b-c-\\" */ +#© {} /* matches the element with id=\\"©\\" */ + +:root { + --title-align: center; + --sr-only: { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0,0,0,0); + white-space: nowrap; + clip-path: inset(50%); + border: 0; + }; +} + +.test { + content: \\"\\\\2014\\\\A0\\"; + content: \\"\\\\2014 \\\\A0\\"; + content: \\"\\\\A0 \\\\2014\\"; + content: \\"\\\\A0\\\\2014\\"; + margin-top: 1px\\\\9; + background-color: #000\\\\9; +} + +.light.on .bulb:before{ + content: '💡'; +} + +.base64 { + background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); +} + +a[href=''] { + color: red; +} + +a[href='' i] { + color: red; +} + +a[href=\\"\\"] { + color: blue; +} + +a[href=\\"\\" i] { + color: blue; +} +", +} +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and ECMA modules: warnings 1`] = `Array []`; + +exports[`'exportType' option should work with 'css-style-sheet' value and generate source maps: errors 1`] = `Array []`; + +exports[`'exportType' option should work with 'css-style-sheet' value and generate source maps: module 1`] = ` +"// Imports +import ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \\"../../src/runtime/sourceMaps.js\\"; +import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; +import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\",{\\"version\\":3,\\"sources\\":[\\"webpack://./basic-css-style-sheet.css\\"],\\"names\\":[],\\"mappings\\":\\"AAAA,gBAAgB;;AAEhB,YAAY;;AAEZ;EACE,UAAU;EACV,mDAAgC;AAClC;;AAEA;EACE,mDAAgC;AAClC;;AAEA;EACE,UAAU;EACV,UAAU;AACZ;;AAEA,SAAS,QAAQ,EAAE;;AAEnB,MAAM;;AAEN,SAAS,QAAQ,EAAE;;AAEnB,SAAS,iBAAiB;;AAE1B;EACE;IACE,2BAA2B;EAC7B;AACF;;AAEA;EACE,gBAAgB;EAChB,qBAAqB;EACrB,sBAAsB;EACtB,0BAA0B;EAC1B,4BAA4B;AAC9B;;AAEA,OAAO;AACP,QAAQ;;AAER,SAAS;;AAET;EACE,aAAa;EACb,eAAe;AACjB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,qBAAqB;AACvB;;AAEA,aAAa;;AAEb,YAAY;;AAEZ,QAAQ;;AAER;EACE,mBAAmB,EAAE,2BAA2B;AAClD;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,gBAAgB;AAClB;;AAEA,IAAI;;AAEJ,WAAW,EAAE,sCAAsC;AACnD,YAAY,EAAE,yCAAyC;AACvD,YAAY,EAAE,2CAA2C;AACzD,UAAU,EAAE,0CAA0C;AACtD,IAAI,EAAE,oCAAoC;;AAE1C;EACE,qBAAqB;EACrB;;;;;;;;;;GAUC;AACH;;AAEA;EACE,mBAAmB;EACnB,oBAAoB;EACpB,oBAAoB;EACpB,mBAAmB;EACnB,iBAAiB;EACjB,wBAAwB;AAC1B;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,mDAAq1B;AACv1B;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,WAAW;AACb\\",\\"sourcesContent\\":[\\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\\\\\"./url/img.png\\\\\\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\\\\\"./url/img.png\\\\\\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==);\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\"],\\"sourceRoot\\":\\"\\"}]); +// Exports +var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); +___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); +export default ___CSS_LOADER_STYLE_SHEET___; +" +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and generate source maps: result 1`] = ` +CSSStyleSheet { + "text": "@charset \\"UTF-8\\"; + +/* Comment */ + +.class { + color: red; + background: url(file:///webpack/public/path/img.png); +} + +.class-duplicate-url { + background: url(file:///webpack/public/path/img.png); +} + +:root { + --foo: 1px; + --bar: 2px; +} + +.class { a: b c d; } + +.two {} + +.u-m\\\\+ { a: b c d; } + +.class { content: \\"\\\\F10C\\" } + +@media only screen and (max-width: 600px) { + body { + background-color: lightblue; + } +} + +.class { + content: \\"\\\\2193\\"; + content: \\"\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193\\"; + content: \\"\\\\2193\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193 \\\\2193\\"; +} + +.-top {} +.\\\\-top {} + +#\\\\#test {} + +.grid { + display: flex; + flex-wrap: wrap; +} +.grid.\\\\-top { + align-items: flex-start; +} +.grid.-top { + align-items: flex-start; +} +.grid.\\\\-middle { + align-items: center; +} +.grid.\\\\-bottom { + align-items: flex-end; +} + +.u-m\\\\00002b {} + +.u-m00002b {} + +#u-m\\\\+ {} + +body { + font-family: '微软雅黑'; /* some chinese font name */ +} + +.myStyle { + content: '\\\\e901'; +} + +.myStyle { + content: '\\\\E901'; +} + +.♫ {} + +.\\\\3A \\\\\`\\\\( {} /* matches elements with class=\\":\`(\\" */ +.\\\\31 a2b3c {} /* matches elements with class=\\"1a2b3c\\" */ +#\\\\#fake-id {} /* matches the element with id=\\"#fake-id\\" */ +#-a-b-c- {} /* matches the element with id=\\"-a-b-c-\\" */ +#© {} /* matches the element with id=\\"©\\" */ + +:root { + --title-align: center; + --sr-only: { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0,0,0,0); + white-space: nowrap; + clip-path: inset(50%); + border: 0; + }; +} + +.test { + content: \\"\\\\2014\\\\A0\\"; + content: \\"\\\\2014 \\\\A0\\"; + content: \\"\\\\A0 \\\\2014\\"; + content: \\"\\\\A0\\\\2014\\"; + margin-top: 1px\\\\9; + background-color: #000\\\\9; +} + +.light.on .bulb:before{ + content: '💡'; +} + +.base64 { + background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); +} + +a[href=''] { + color: red; +} + +a[href='' i] { + color: red; +} + +a[href=\\"\\"] { + color: blue; +} + +a[href=\\"\\" i] { + color: blue; +} + +/*# sourceURL=webpack://./basic-css-style-sheet.css */ +/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL2Jhc2ljLWNzcy1zdHlsZS1zaGVldC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCOztBQUVoQixZQUFZOztBQUVaO0VBQ0UsVUFBVTtFQUNWLG1EQUFnQztBQUNsQzs7QUFFQTtFQUNFLG1EQUFnQztBQUNsQzs7QUFFQTtFQUNFLFVBQVU7RUFDVixVQUFVO0FBQ1o7O0FBRUEsU0FBUyxRQUFRLEVBQUU7O0FBRW5CLE1BQU07O0FBRU4sU0FBUyxRQUFRLEVBQUU7O0FBRW5CLFNBQVMsaUJBQWlCOztBQUUxQjtFQUNFO0lBQ0UsMkJBQTJCO0VBQzdCO0FBQ0Y7O0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIscUJBQXFCO0VBQ3JCLHNCQUFzQjtFQUN0QiwwQkFBMEI7RUFDMUIsNEJBQTRCO0FBQzlCOztBQUVBLE9BQU87QUFDUCxRQUFROztBQUVSLFNBQVM7O0FBRVQ7RUFDRSxhQUFhO0VBQ2IsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsdUJBQXVCO0FBQ3pCO0FBQ0E7RUFDRSx1QkFBdUI7QUFDekI7QUFDQTtFQUNFLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UscUJBQXFCO0FBQ3ZCOztBQUVBLGFBQWE7O0FBRWIsWUFBWTs7QUFFWixRQUFROztBQUVSO0VBQ0UsbUJBQW1CLEVBQUUsMkJBQTJCO0FBQ2xEOztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUVBLElBQUk7O0FBRUosV0FBVyxFQUFFLHNDQUFzQztBQUNuRCxZQUFZLEVBQUUseUNBQXlDO0FBQ3ZELFlBQVksRUFBRSwyQ0FBMkM7QUFDekQsVUFBVSxFQUFFLDBDQUEwQztBQUN0RCxJQUFJLEVBQUUsb0NBQW9DOztBQUUxQztFQUNFLHFCQUFxQjtFQUNyQjs7Ozs7Ozs7OztHQVVDO0FBQ0g7O0FBRUE7RUFDRSxtQkFBbUI7RUFDbkIsb0JBQW9CO0VBQ3BCLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLHdCQUF3QjtBQUMxQjs7QUFFQTtFQUNFLGFBQWE7QUFDZjs7QUFFQTtFQUNFLG1EQUFxMUI7QUFDdjFCOztBQUVBO0VBQ0UsVUFBVTtBQUNaOztBQUVBO0VBQ0UsVUFBVTtBQUNaOztBQUVBO0VBQ0UsV0FBVztBQUNiOztBQUVBO0VBQ0UsV0FBVztBQUNiIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vKiBDb21tZW50ICovXG5cbi5jbGFzcyB7XG4gIGNvbG9yOiByZWQ7XG4gIGJhY2tncm91bmQ6IHVybChcIi4vdXJsL2ltZy5wbmdcIik7XG59XG5cbi5jbGFzcy1kdXBsaWNhdGUtdXJsIHtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi91cmwvaW1nLnBuZ1wiKTtcbn1cblxuOnJvb3Qge1xuICAtLWZvbzogMXB4O1xuICAtLWJhcjogMnB4O1xufVxuXG4uY2xhc3MgeyBhOiBiIGMgZDsgfVxuXG4udHdvIHt9XG5cbi51LW1cXCsgeyBhOiBiIGMgZDsgfVxuXG4uY2xhc3MgeyBjb250ZW50OiBcIlxcRjEwQ1wiIH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICBib2R5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGJsdWU7XG4gIH1cbn1cblxuLmNsYXNzIHtcbiAgY29udGVudDogXCJcXDIxOTNcIjtcbiAgY29udGVudDogXCJcXDIxOTNcXDIxOTNcIjtcbiAgY29udGVudDogXCJcXDIxOTMgXFwyMTkzXCI7XG4gIGNvbnRlbnQ6IFwiXFwyMTkzXFwyMTkzXFwyMTkzXCI7XG4gIGNvbnRlbnQ6IFwiXFwyMTkzIFxcMjE5MyBcXDIxOTNcIjtcbn1cblxuLi10b3Age31cbi5cXC10b3Age31cblxuI1xcI3Rlc3Qge31cblxuLmdyaWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG4uZ3JpZC5cXC10b3Age1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cbi5ncmlkLi10b3Age1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cbi5ncmlkLlxcLW1pZGRsZSB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uZ3JpZC5cXC1ib3R0b20ge1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG59XG5cbi51LW1cXDAwMDAyYiB7fVxuXG4udS1tMDAwMDJiIHt9XG5cbiN1LW1cXCsge31cblxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiAnw6XCvsKuw6jCvcKvw6nCm8KFw6nCu8KRJzsgLyogc29tZSBjaGluZXNlIGZvbnQgbmFtZSAqL1xufVxuXG4ubXlTdHlsZSB7XG4gIGNvbnRlbnQ6ICdcXGU5MDEnO1xufVxuXG4ubXlTdHlsZSB7XG4gIGNvbnRlbnQ6ICdcXEU5MDEnO1xufVxuXG4uw6LCmcKrIHt9XG5cbi5cXDNBIFxcYFxcKCB7fSAvKiBtYXRjaGVzIGVsZW1lbnRzIHdpdGggY2xhc3M9XCI6YChcIiAqL1xuLlxcMzEgYTJiM2Mge30gLyogbWF0Y2hlcyBlbGVtZW50cyB3aXRoIGNsYXNzPVwiMWEyYjNjXCIgKi9cbiNcXCNmYWtlLWlkIHt9IC8qIG1hdGNoZXMgdGhlIGVsZW1lbnQgd2l0aCBpZD1cIiNmYWtlLWlkXCIgKi9cbiMtYS1iLWMtIHt9IC8qIG1hdGNoZXMgdGhlIGVsZW1lbnQgd2l0aCBpZD1cIi1hLWItYy1cIiAqL1xuI8OCwqkge30gLyogbWF0Y2hlcyB0aGUgZWxlbWVudCB3aXRoIGlkPVwiw4LCqVwiICovXG5cbjpyb290IHtcbiAgLS10aXRsZS1hbGlnbjogY2VudGVyO1xuICAtLXNyLW9ubHk6IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY2xpcDogcmVjdCgwLDAsMCwwKTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcbiAgICBib3JkZXI6IDA7XG4gIH07XG59XG5cbi50ZXN0IHtcbiAgY29udGVudDogXCJcXDIwMTRcXEEwXCI7XG4gIGNvbnRlbnQ6IFwiXFwyMDE0IFxcQTBcIjtcbiAgY29udGVudDogXCJcXEEwIFxcMjAxNFwiO1xuICBjb250ZW50OiBcIlxcQTBcXDIwMTRcIjtcbiAgbWFyZ2luLXRvcDogMXB4XFw5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwXFw5O1xufVxuXG4ubGlnaHQub24gLmJ1bGI6YmVmb3Jle1xuICBjb250ZW50OiAnw7DCn8KSwqEnO1xufVxuXG4uYmFzZTY0IHtcbiAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1nL2pwZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJnQUFBQVlDQVlBQUFEZ2R6MzRBQUFBQVhOU1IwSUFyczRjNlFBQUFoeEpSRUZVU0EzdGs3MXJVMUVZeG5NVEVvSlVrb3dXd2RKMmFrRUhCZkdqQ2lJRjZaeWxWVUtTbTJUcVpMR0krQS9vSXUyVVhtOEM0bEF5RjRTV2ppMHRkRkxvMUVvN1ZOMFNhQkVoSDdlL056MG5QVGZHT2ppYUN5ZlBjNTczNHpsZkNRVDZYLzhFL3ZVRXJMODFLQmFMOXkzTFNudWVkNVBjSVRqVU93UjNnc0ZnMmJidGpZdDYvTkdnWEM0UDFldDFsMmFQTG1wQWJEMFNpZGpwZFBxZ1YxNVBBOWQxN3pRYWpVOFV4SFFSSy80RzM1UTVwdmVBSzhMbEkxWmpQTW5sY2x0bnl2bnZid2FPNDF4dnRWcXk3WUh6dE1BQ3E1eG5sYjlFWTNkUmR2Y0dvMWtqNXdSK3QxQW9mREcwZ00rQTg3NUU4RE5qUkNleHNyVjhQajlacVZRaXRWcnRxZWp4ZVB4ak1wbXNzNWhWVEI0YnVYdk1iMkR5VTJ0QlRSUytCanZObFZZVXBQbDdpdVZPM0dxMXVvUXgxRnRTT1cxZ1BncDVaV3JkQnRObVVEZ3Y1YXNneFE4RjFhZjV2aFkwWWp5anVXQzN3VHN6S0p6N0dCT2tjRmxRZlcyT05xNEZqV2krSGo2RFJDS3hRT0syVGxZNHg5MkV1WWQ1ZHZNQWJZSXpmaWthdTNwdTV0SjhLeGFMTGZvMGN5S2NpN3RLNFRaalVNY29YQW1Id3psZTBRL1JhQzVQMUdGTXlWeDlSOUZvOUhZcWxUclNncUR2RmVsQXFWUWE1aG11TVIvV0d0akFhQmRqd0JvRFEwWnNud1ZNWmpLWjluMFplbThEU2VEUGRyblpiTDZGMmwzTk92VVlOWms0b1ZEb1JUYWJQZTRFRE5KekIwWmNqQVl4ZW9aMmkzRk54UTdCSFl3L2NCL2ZsZGFILy9VRVRnSEhPOFM0NEtiZlhnQUFBQUJKUlU1RXJrSmdnZz09KTtcbn1cblxuYVtocmVmPScnXSB7XG4gIGNvbG9yOiByZWQ7XG59XG5cbmFbaHJlZj0nJyBpXSB7XG4gIGNvbG9yOiByZWQ7XG59XG5cbmFbaHJlZj1cIlwiXSB7XG4gIGNvbG9yOiBibHVlO1xufVxuXG5hW2hyZWY9XCJcIiBpXSB7XG4gIGNvbG9yOiBibHVlO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ== */", +} +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and generate source maps: warnings 1`] = `Array []`; + +exports[`'exportType' option should work with 'css-style-sheet' value and keep import and emit errors on \`@import\` at-rules: errors 1`] = ` +Array [ + "ModuleError: Module Error (from \`replaced original path\`): +/test/fixtures/basic.css:3:1: '@import' rules are not allowed here and will not be processed", +] +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and keep import and emit errors on \`@import\` at-rules: module 1`] = ` +"// Imports +import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../src/runtime/noSourceMaps.js\\"; +import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; +import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n@import 'imported.css';\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +// Exports +var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); +___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); +export default ___CSS_LOADER_STYLE_SHEET___; +" +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and keep import and emit errors on \`@import\` at-rules: result 1`] = ` +CSSStyleSheet { + "text": "@charset \\"UTF-8\\"; + +@import 'imported.css'; + +/* Comment */ + +.class { + color: red; + background: url(file:///webpack/public/path/img.png); +} + +.class-duplicate-url { + background: url(file:///webpack/public/path/img.png); +} + +:root { + --foo: 1px; + --bar: 2px; +} + +.class { a: b c d; } + +.two {} + +.u-m\\\\+ { a: b c d; } + +.class { content: \\"\\\\F10C\\" } + +@media only screen and (max-width: 600px) { + body { + background-color: lightblue; + } +} + +.class { + content: \\"\\\\2193\\"; + content: \\"\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193\\"; + content: \\"\\\\2193\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193 \\\\2193\\"; +} + +.-top {} +.\\\\-top {} + +#\\\\#test {} + +.grid { + display: flex; + flex-wrap: wrap; +} +.grid.\\\\-top { + align-items: flex-start; +} +.grid.-top { + align-items: flex-start; +} +.grid.\\\\-middle { + align-items: center; +} +.grid.\\\\-bottom { + align-items: flex-end; +} + +.u-m\\\\00002b {} + +.u-m00002b {} + +#u-m\\\\+ {} + +body { + font-family: '微软雅黑'; /* some chinese font name */ +} + +.myStyle { + content: '\\\\e901'; +} + +.myStyle { + content: '\\\\E901'; +} + +.♫ {} + +.\\\\3A \\\\\`\\\\( {} /* matches elements with class=\\":\`(\\" */ +.\\\\31 a2b3c {} /* matches elements with class=\\"1a2b3c\\" */ +#\\\\#fake-id {} /* matches the element with id=\\"#fake-id\\" */ +#-a-b-c- {} /* matches the element with id=\\"-a-b-c-\\" */ +#© {} /* matches the element with id=\\"©\\" */ + +:root { + --title-align: center; + --sr-only: { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0,0,0,0); + white-space: nowrap; + clip-path: inset(50%); + border: 0; + }; +} + +.test { + content: \\"\\\\2014\\\\A0\\"; + content: \\"\\\\2014 \\\\A0\\"; + content: \\"\\\\A0 \\\\2014\\"; + content: \\"\\\\A0\\\\2014\\"; + margin-top: 1px\\\\9; + background-color: #000\\\\9; +} + +.light.on .bulb:before{ + content: '💡'; +} + +.base64 { + background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); +} + +a[href=''] { + color: red; +} + +a[href='' i] { + color: red; +} + +a[href=\\"\\"] { + color: blue; +} + +a[href=\\"\\" i] { + color: blue; +} +", +} +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and keep import and emit errors on \`@import\` at-rules: warnings 1`] = `Array []`; + +exports[`'exportType' option should work with 'css-style-sheet' value and urls: errors 1`] = ` +Array [ + "ModuleError: Module Error (from \`replaced original path\`): +/test/fixtures/url/url.css:1:1: '@import' rules are not allowed here and will not be processed", +] +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and urls: module 1`] = ` +"// Imports +import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../../src/runtime/noSourceMaps.js\\"; +import ___CSS_LOADER_API_IMPORT___ from \\"../../../src/runtime/api.js\\"; +import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../../src/runtime/getUrl.js\\"; +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"package/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_2___ = new URL(\\"./other-img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_3___ = new URL(\\"./img img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_4___ = new URL(\\"/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_5___ = new URL(\\"data:image/png;base64,AAA\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_6___ = new URL(\\"data:image/svg+xml;charset=utf-8,\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_7___ = new URL(\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_8___ = new URL(\\"data:image/svg+xml;charset=utf-8,#filter\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_9___ = new URL(\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba%28255%2C255%2C255%2C1%29%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_10___ = new URL(\\"./font.woff\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_11___ = new URL(\\"./font.woff2\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_12___ = new URL(\\"./font.eot\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_13___ = new URL(\\"package/font.ttf\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_14___ = new URL(\\"./font with spaces.eot\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_15___ = new URL(\\"./font.svg\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_16___ = new URL(\\"./font.woff2?foo=bar\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_17___ = new URL(\\"./img1x.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_18___ = new URL(\\"./img2x.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_19___ = new URL(\\"./img.png?foo\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_20___ = new URL(\\"./img.png?foo=bar\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_21___ = new URL(\\"./img.png?\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_22___ = new URL(\\"img-simple.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_23___ = new URL(\\"/url/img-simple.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_24___ = new URL(\\"../url/img-simple.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_25___ = new URL(\\"aliasesImg/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_26___ = new URL(\\"./nested/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_27___ = new URL(\\"nested/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_28___ = new URL(\\"./img3x.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_29___ = new URL(\\"./img1x.png?foo=bar\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_30___ = new URL(\\"./img'img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_31___ = new URL(\\"./img'''img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_32___ = new URL(\\"./img(img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_33___ = new URL(\\"./img)img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_34___ = new URL(\\"./img'() img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_35___ = new URL(\\"img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_36___ = new URL(\\"./something.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_37___ = new URL(\\"./something.png?foo=bar\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_38___ = new URL(\\"./something.png?bar=foo\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_39___ = new URL(\\"./something.png?foo=1&bar=2\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_40___ = new URL(\\"./something.png?foo=2&bar=1\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_41___ = new URL(\\"data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3C%21DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%0A%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%0A%09%20width%3D%22191px%22%20height%3D%22191px%22%20viewBox%3D%220%200%20191%20191%22%20enable-background%3D%22new%200%200%20191%20191%22%20xml%3Aspace%3D%22preserve%22%3E%0A%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M95.5%2C0C42.8%2C0%2C0%2C42.8%2C0%2C95.5S42.8%2C191%2C95.5%2C191S191%2C148.2%2C191%2C95.5S148.2%2C0%2C95.5%2C0z%20M95.5%2C187.6%0A%09c-50.848%2C0-92.1-41.25-92.1-92.1c0-50.848%2C41.252-92.1%2C92.1-92.1c50.85%2C0%2C92.1%2C41.252%2C92.1%2C92.1%0A%09C187.6%2C146.35%2C146.35%2C187.6%2C95.5%2C187.6z%22%2F%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M92.9%2C10v8.6H91v-6.5c-0.1%2C0.1-0.2%2C0.2-0.4%2C0.3c-0.2%2C0.1-0.3%2C0.2-0.4%2C0.2c-0.1%2C0-0.3%2C0.1-0.5%2C0.2%0A%09%09c-0.2%2C0.1-0.3%2C0.1-0.5%2C0.1v-1.6c0.5-0.1%2C0.9-0.3%2C1.4-0.5c0.5-0.2%2C0.8-0.5%2C1.2-0.7h1.1V10z%22%2F%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M97.1%2C17.1h3.602v1.5h-5.6V18c0-0.4%2C0.1-0.8%2C0.2-1.2c0.1-0.4%2C0.3-0.6%2C0.5-0.9c0.2-0.3%2C0.5-0.5%2C0.7-0.7%0A%09%09c0.2-0.2%2C0.5-0.4%2C0.7-0.6c0.199-0.2%2C0.5-0.3%2C0.6-0.5c0.102-0.2%2C0.301-0.3%2C0.5-0.5c0.2-0.2%2C0.2-0.3%2C0.301-0.5%0A%09%09c0.101-0.2%2C0.101-0.3%2C0.101-0.5c0-0.4-0.101-0.6-0.3-0.8c-0.2-0.2-0.4-0.3-0.801-0.3c-0.699%2C0-1.399%2C0.3-2.101%2C0.9v-1.6%0A%09%09c0.7-0.5%2C1.5-0.7%2C2.5-0.7c0.399%2C0%2C0.8%2C0.1%2C1.101%2C0.2c0.301%2C0.1%2C0.601%2C0.3%2C0.899%2C0.5c0.3%2C0.2%2C0.399%2C0.5%2C0.5%2C0.8%0A%09%09c0.101%2C0.3%2C0.2%2C0.6%2C0.2%2C1s-0.102%2C0.7-0.2%2C1c-0.099%2C0.3-0.3%2C0.6-0.5%2C0.8c-0.2%2C0.2-0.399%2C0.5-0.7%2C0.7c-0.3%2C0.2-0.5%2C0.4-0.8%2C0.6%0A%09%09c-0.2%2C0.1-0.399%2C0.3-0.5%2C0.4s-0.3%2C0.3-0.5%2C0.4s-0.2%2C0.3-0.3%2C0.4C97.1%2C17%2C97.1%2C17%2C97.1%2C17.1z%22%2F%3E%0A%3C%2Fg%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M15%2C95.4c0%2C0.7-0.1%2C1.4-0.2%2C2c-0.1%2C0.6-0.4%2C1.1-0.7%2C1.5C13.8%2C99.3%2C13.4%2C99.6%2C12.9%2C99.8s-1%2C0.3-1.5%2C0.3%0A%09%09c-0.7%2C0-1.3-0.1-1.8-0.3v-1.5c0.4%2C0.3%2C1%2C0.4%2C1.6%2C0.4c0.6%2C0%2C1.1-0.2%2C1.5-0.7c0.4-0.5%2C0.5-1.1%2C0.5-1.9l0%2C0%0A%09%09C12.8%2C96.7%2C12.3%2C96.9%2C11.5%2C96.9c-0.3%2C0-0.7-0.102-1-0.2c-0.3-0.101-0.5-0.3-0.8-0.5c-0.3-0.2-0.4-0.5-0.5-0.8%0A%09%09c-0.1-0.3-0.2-0.7-0.2-1c0-0.4%2C0.1-0.8%2C0.2-1.2c0.1-0.4%2C0.3-0.7%2C0.6-0.9c0.3-0.2%2C0.6-0.5%2C0.9-0.6c0.3-0.1%2C0.8-0.2%2C1.2-0.2%0A%09%09c0.5%2C0%2C0.9%2C0.1%2C1.2%2C0.3c0.3%2C0.2%2C0.7%2C0.4%2C0.9%2C0.8s0.5%2C0.7%2C0.6%2C1.2S15%2C94.8%2C15%2C95.4z%20M13.1%2C94.4c0-0.2%2C0-0.4-0.1-0.6%0A%09%09c-0.1-0.2-0.1-0.4-0.2-0.5c-0.1-0.1-0.2-0.2-0.4-0.3c-0.2-0.1-0.3-0.1-0.5-0.1c-0.2%2C0-0.3%2C0-0.4%2C0.1s-0.3%2C0.2-0.3%2C0.3%0A%09%09c0%2C0.1-0.2%2C0.3-0.2%2C0.4c0%2C0.1-0.1%2C0.4-0.1%2C0.6c0%2C0.2%2C0%2C0.4%2C0.1%2C0.6c0.1%2C0.2%2C0.1%2C0.3%2C0.2%2C0.4c0.1%2C0.1%2C0.2%2C0.2%2C0.4%2C0.3%0A%09%09c0.2%2C0.1%2C0.3%2C0.1%2C0.5%2C0.1c0.2%2C0%2C0.3%2C0%2C0.4-0.1s0.2-0.2%2C0.3-0.3c0.1-0.1%2C0.2-0.2%2C0.2-0.4C13%2C94.7%2C13.1%2C94.6%2C13.1%2C94.4z%22%2F%3E%0A%3C%2Fg%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M176%2C99.7V98.1c0.6%2C0.4%2C1.2%2C0.602%2C2%2C0.602c0.5%2C0%2C0.8-0.102%2C1.1-0.301c0.301-0.199%2C0.4-0.5%2C0.4-0.801%0A%09%09c0-0.398-0.2-0.699-0.5-0.898c-0.3-0.2-0.8-0.301-1.3-0.301h-0.802V95h0.701c1.101%2C0%2C1.601-0.4%2C1.601-1.1c0-0.7-0.4-1-1.302-1%0A%09%09c-0.6%2C0-1.1%2C0.2-1.6%2C0.5v-1.5c0.6-0.3%2C1.301-0.4%2C2.1-0.4c0.9%2C0%2C1.5%2C0.2%2C2%2C0.6s0.701%2C0.9%2C0.701%2C1.5c0%2C1.1-0.601%2C1.8-1.701%2C2.1l0%2C0%0A%09%09c0.602%2C0.1%2C1.102%2C0.3%2C1.4%2C0.6s0.5%2C0.8%2C0.5%2C1.3c0%2C0.801-0.3%2C1.4-0.9%2C1.9c-0.6%2C0.5-1.398%2C0.7-2.398%2C0.7%0A%09%09C177.2%2C100.1%2C176.5%2C100%2C176%2C99.7z%22%2F%3E%0A%3C%2Fg%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M98.5%2C179.102c0%2C0.398-0.1%2C0.799-0.2%2C1.199C98.2%2C180.7%2C98%2C181%2C97.7%2C181.2s-0.601%2C0.5-0.9%2C0.601%0A%09%09c-0.3%2C0.1-0.7%2C0.199-1.2%2C0.199c-0.5%2C0-0.9-0.1-1.3-0.3c-0.4-0.2-0.7-0.399-0.9-0.8c-0.2-0.4-0.5-0.7-0.6-1.2%0A%09%09c-0.1-0.5-0.2-1-0.2-1.601c0-0.699%2C0.1-1.399%2C0.3-2c0.2-0.601%2C0.4-1.101%2C0.8-1.5c0.4-0.399%2C0.7-0.699%2C1.2-1c0.5-0.3%2C1-0.3%2C1.6-0.3%0A%09%09c0.6%2C0%2C1.2%2C0.101%2C1.5%2C0.199v1.5c-0.4-0.199-0.9-0.399-1.4-0.399c-0.3%2C0-0.6%2C0.101-0.8%2C0.2c-0.2%2C0.101-0.5%2C0.3-0.7%2C0.5%0A%09%09c-0.2%2C0.199-0.3%2C0.5-0.4%2C0.8c-0.1%2C0.301-0.2%2C0.7-0.2%2C1.101l0%2C0c0.4-0.601%2C1-0.8%2C1.8-0.8c0.3%2C0%2C0.7%2C0.1%2C0.9%2C0.199%0A%09%09c0.2%2C0.101%2C0.5%2C0.301%2C0.7%2C0.5c0.199%2C0.2%2C0.398%2C0.5%2C0.5%2C0.801C98.5%2C178.2%2C98.5%2C178.7%2C98.5%2C179.102z%20M96.7%2C179.2%0A%09%09c0-0.899-0.4-1.399-1.1-1.399c-0.2%2C0-0.3%2C0-0.5%2C0.1c-0.2%2C0.101-0.3%2C0.201-0.4%2C0.301c-0.1%2C0.101-0.2%2C0.199-0.2%2C0.4%0A%09%09c0%2C0.199-0.1%2C0.299-0.1%2C0.5c0%2C0.199%2C0%2C0.398%2C0.1%2C0.6s0.1%2C0.3%2C0.2%2C0.5c0.1%2C0.199%2C0.2%2C0.199%2C0.4%2C0.3c0.2%2C0.101%2C0.3%2C0.101%2C0.5%2C0.101%0A%09%09c0.2%2C0%2C0.3%2C0%2C0.5-0.101c0.2-0.101%2C0.301-0.199%2C0.301-0.3c0-0.1%2C0.199-0.301%2C0.199-0.399C96.6%2C179.7%2C96.7%2C179.4%2C96.7%2C179.2z%22%2F%3E%0A%3C%2Fg%3E%0A%3Ccircle%20fill%3D%22%23636363%22%20cx%3D%2295%22%20cy%3D%2295%22%20r%3D%227%22%2F%3E%0A%3C%2Fsvg%3E%0A\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_42___ = new URL(\\"/guide/img/banWord/addCoinDialogTitleBg.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_43___ = new URL(\\"!!../../helpers/url-loader.js?esModule=false!package/img-single.png?ignore-asset-modules\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_44___ = new URL(\\"nested/other.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_45___ = new URL(\\"data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27none%27 stroke=%27%23343a40%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27M2 5l6 6 6-6%27/%3e%3c/svg%3e\\", import.meta.url); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___, { hash: \\"#hash\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +var ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___); +var ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___); +var ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___); +var ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___); +var ___CSS_LOADER_URL_REPLACEMENT_7___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___); +var ___CSS_LOADER_URL_REPLACEMENT_8___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___); +var ___CSS_LOADER_URL_REPLACEMENT_9___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_8___); +var ___CSS_LOADER_URL_REPLACEMENT_10___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_9___); +var ___CSS_LOADER_URL_REPLACEMENT_11___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_10___); +var ___CSS_LOADER_URL_REPLACEMENT_12___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___); +var ___CSS_LOADER_URL_REPLACEMENT_13___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_12___); +var ___CSS_LOADER_URL_REPLACEMENT_14___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_13___); +var ___CSS_LOADER_URL_REPLACEMENT_15___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_14___); +var ___CSS_LOADER_URL_REPLACEMENT_16___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_15___, { hash: \\"#svgFontName\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_17___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_16___); +var ___CSS_LOADER_URL_REPLACEMENT_18___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_12___, { hash: \\"?#iefix\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_19___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_14___, { hash: \\"?#iefix\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_20___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___); +var ___CSS_LOADER_URL_REPLACEMENT_21___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_18___); +var ___CSS_LOADER_URL_REPLACEMENT_22___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_19___); +var ___CSS_LOADER_URL_REPLACEMENT_23___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_20___); +var ___CSS_LOADER_URL_REPLACEMENT_24___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_20___, { hash: \\"#hash\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_25___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_21___); +var ___CSS_LOADER_URL_REPLACEMENT_26___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_22___); +var ___CSS_LOADER_URL_REPLACEMENT_27___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_23___); +var ___CSS_LOADER_URL_REPLACEMENT_28___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_24___); +var ___CSS_LOADER_URL_REPLACEMENT_29___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_25___); +var ___CSS_LOADER_URL_REPLACEMENT_30___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_26___); +var ___CSS_LOADER_URL_REPLACEMENT_31___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_27___); +var ___CSS_LOADER_URL_REPLACEMENT_32___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___, { needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_33___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_18___, { needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_34___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___, { needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_35___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_28___, { needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_36___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_29___, { needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_37___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___, { hash: \\"#hash\\", needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_38___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___, { hash: \\"?#iefix\\", needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_39___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_28___); +var ___CSS_LOADER_URL_REPLACEMENT_40___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_30___); +var ___CSS_LOADER_URL_REPLACEMENT_41___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_31___); +var ___CSS_LOADER_URL_REPLACEMENT_42___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_32___); +var ___CSS_LOADER_URL_REPLACEMENT_43___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_33___); +var ___CSS_LOADER_URL_REPLACEMENT_44___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_34___); +var ___CSS_LOADER_URL_REPLACEMENT_45___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_35___); +var ___CSS_LOADER_URL_REPLACEMENT_46___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_36___); +var ___CSS_LOADER_URL_REPLACEMENT_47___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_37___); +var ___CSS_LOADER_URL_REPLACEMENT_48___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_37___, { hash: \\"#hash\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_49___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_38___); +var ___CSS_LOADER_URL_REPLACEMENT_50___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_37___, { hash: \\"#foo\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_51___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_38___, { hash: \\"#bar\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_52___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_39___); +var ___CSS_LOADER_URL_REPLACEMENT_53___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_40___); +var ___CSS_LOADER_URL_REPLACEMENT_54___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_41___); +var ___CSS_LOADER_URL_REPLACEMENT_55___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_42___); +var ___CSS_LOADER_URL_REPLACEMENT_56___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_43___); +var ___CSS_LOADER_URL_REPLACEMENT_57___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_44___); +var ___CSS_LOADER_URL_REPLACEMENT_58___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_45___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"@import \\\\\\"./imported.css\\\\\\";\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\"\\\\n );\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_6___ + \\") url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_8___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n filter: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n filter: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \\");\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url(#highlight);\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_11___ + \\") format('woff'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_12___ + \\") format('woff2'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \\") format('eot'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") format('truetype'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_16___ + \\") format('svg'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_17___ + \\") format('woff2'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_18___ + \\") format('embedded-opentype'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_19___ + \\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n body {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n }\\\\n}\\\\n\\\\na {\\\\n content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes anim {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") xyz;\\\\n}\\\\n\\\\n.a {\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x)\\\\n}\\\\n\\\\n.a {\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x)\\\\n}\\\\n\\\\n.class {\\\\n background: green url() xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url('') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(' ') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\n ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_22___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_23___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: ___CSS_LOADER_URL___;\\\\n background: ___CSS_LOADER_URL___INDEX___;\\\\n background: ___CSS_LOADER_URL___99999___;\\\\n background: ___CSS_LOADER_IMPORT___;\\\\n background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n.pure-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_26___ + \\");\\\\n}\\\\n\\\\n.root-relative {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_27___ + \\");\\\\n}\\\\n\\\\n.above-below {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_28___ + \\");\\\\n}\\\\n\\\\n.tilde {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\");\\\\n}\\\\n\\\\n.aliases {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_29___ + \\") ;\\\\n}\\\\n\\\\na {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_30___ + \\");\\\\n}\\\\n\\\\na {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_31___ + \\");\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n /* Broken */\\\\n background-image: -webkit-image-set();\\\\n background-image: -webkit-image-set('');\\\\n background-image: image-set();\\\\n background-image: image-set('');\\\\n background-image: image-set(\\\\\\"\\\\\\");\\\\n background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n background-image: image-set(url());\\\\n background-image: image-set(\\\\n url()\\\\n );\\\\n background-image: image-set(URL());\\\\n background-image: image-set(url(''));\\\\n background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n background-image: image-set(url('') 1x);\\\\n background-image: image-set(1x);\\\\n background-image: image-set(\\\\n 1x\\\\n );\\\\n background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n /* Strings */\\\\n background-image: -webkit-image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x),\\\\n image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x);\\\\n background-image: image-set(\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x,\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x,\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\" 600dpi\\\\n );\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_37___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_38___ + \\" 1x);\\\\n\\\\n /* With \`url\` function */\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x);\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x);\\\\n background-image: -webkit-image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x);\\\\n background-image: image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x);\\\\n background-image: image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_39___ + \\") 600dpi\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 2x);\\\\n\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x);\\\\n}\\\\n\\\\n.class {\\\\n /* Not allowed on windows */\\\\n /* background: url(./img\\\\\\\\\\\\\\"img.png); */\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n\\\\n background-image: image-set(\\\\n /* Not allowed on windows */\\\\n /* url(./img\\\\\\\\\\\\\\"img.png) 1x, */\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\") 2x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\") 3x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\") 4x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\") 5x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 6x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\") 7x\\\\n );\\\\n}\\\\n\\\\n.class-class-class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n}\\\\n\\\\n/* Comment */\\\\n\\\\n.class.class.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n}\\\\n\\\\n.other-test-case {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n}\\\\n\\\\n.qqq {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_45___ + \\");\\\\n}\\\\n\\\\n.www {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n /* Should be one import */\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_46___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_46___ + \\");\\\\n\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_47___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_47___ + \\");\\\\n\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_48___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_48___ + \\");\\\\n\\\\n /* Should be two imports */\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_47___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_49___ + \\");\\\\n\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_50___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_51___ + \\");\\\\n\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_52___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_53___ + \\");\\\\n}\\\\n\\\\n.base {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_54___ + \\") 50% 50%/191px no-repeat;\\\\n}\\\\n\\\\n.strange {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.my-background {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_55___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\", 'foo', './img.png', url('./img.png'));\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\", 'foo', './img.png', url('./img.png')) 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x);\\\\n}\\\\n\\\\n.button {\\\\n background-image: url('data:image/svg+xml;utf8,');\\\\n}\\\\n\\\\n/* We need to use \`resourceQuery: /inline/\` */\\\\n/* Hard to test on webpack v4 */\\\\n.qqq {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_56___ + \\")\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_45___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_45___ + \\");\\\\n}\\\\n\\\\n/** Prefer relative **/\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_31___ + \\");\\\\n}\\\\n\\\\n/** Prefer from modules **/\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_57___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\");\\\\n}\\\\n\\\\n.foo {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_58___ + \\");\\\\n}\\\\n\\", \\"\\"]); +// Exports +var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); +___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); +export default ___CSS_LOADER_STYLE_SHEET___; +" +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and urls: result 1`] = ` +CSSStyleSheet { + "text": "@import \\"./imported.css\\"; + +.class { + background: url(file:///webpack/public/path/img.png); +} + +.class { + background: url(file:///webpack/public/path/img.png); +} + +.class { + background: url(file:///webpack/public/path/img.png); +} + +.class { + background: url(file:///webpack/public/path/img.png#hash); +} + +.class { + background: url( + file:///webpack/public/path/img.png + ); +} + +.class { + background: green url( file:///webpack/public/path/img.png ) xyz; +} + +.class { + background: green url( file:///webpack/public/path/img.png ) xyz; +} + +.class { + background: green url( file:///webpack/public/path/img.png ) xyz; +} + +.class { + background: green url(file:///webpack/public/path/img.png) url(file:///webpack/public/path/other-img.png) xyz; +} + +.class { + background: green url( \\"file:///webpack/public/path/img%20img.png\\" ) xyz; +} + +.class { + background: green url( \\"file:///webpack/public/path/img%20img.png\\" ) xyz; +} + +.class { + background: green url(file:///webpack/public/path/img.png) xyz; +} + +.class { + background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) xyz; +} + +.class { + background-image: url(\\"data:image/svg+xml;charset=utf-8,\\"); +} + +.class { + background-image: url(\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\"); +} + +.class { + filter: url(\\"data:image/svg+xml;charset=utf-8,#filter\\"); +} + +.class { + filter: url(\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba%28255%2C255%2C255%2C1%29%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter\\"); +} + +.highlight { + filter: url(#highlight); +} + +.highlight { + filter: url('#line-marker'); +} + +@font-face { + src: url(file:///webpack/public/path/font.woff) format('woff'), + url(file:///webpack/public/path/font.woff2) format('woff2'), + url(file:///webpack/public/path/font.eot) format('eot'), + url(file:///webpack/public/path/font.ttf) format('truetype'), + url(\\"file:///webpack/public/path/font%20with%20spaces.eot\\") format(\\"embedded-opentype\\"), + url(file:///webpack/public/path/font.svg#svgFontName) format('svg'), + url(file:///webpack/public/path/font.woff2) format('woff2'), + url(file:///webpack/public/path/font.eot?#iefix) format('embedded-opentype'), + url(\\"file:///webpack/public/path/font%20with%20spaces.eot?#iefix\\") format('embedded-opentype'); +} + +@media (min-width: 500px) { + body { + background: url(file:///webpack/public/path/img.png); + } +} + +a { + content: \\"do not use url(path)\\"; +} + +b { + content: 'do not \\"use\\" url(path)'; +} + +@keyframes anim { + background: green url(file:///webpack/public/path/img.png) xyz; +} + +.a { + background-image: -webkit-image-set(url(file:///webpack/public/path/img1x.png) 1x, url(file:///webpack/public/path/img2x.png) 2x) +} + +.a { + background-image: image-set(url(file:///webpack/public/path/img1x.png) 1x, url(file:///webpack/public/path/img2x.png) 2x) +} + +.class { + background: green url() xyz; +} + +.class { + background: green url('') xyz; +} + +.class { + background: green url(\\"\\") xyz; +} + +.class { + background: green url(' ') xyz; +} + +.class { + background: green url( + ) xyz; +} + +.class { + background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz; +} + +.class { + background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz; +} + +.class { + background: url(file:///webpack/public/path/img.png); +} + +.class { + background: url(file:///webpack/public/path/img.png); +} + +.class { + background: url(file:///webpack/public/path/img.png#hash); +} + +.class { + background: url(file:///webpack/public/path/img.png#hash); +} + +.class { + background: url(file:///webpack/public/path/img.png); +} + +.class { + background-image: url(file:///webpack/public/path/img.png) url(\\"data:image/svg+xml;charset=utf-8,\\") url(file:///webpack/public/path/img.png); +} + +.class { + background: ___CSS_LOADER_URL___; + background: ___CSS_LOADER_URL___INDEX___; + background: ___CSS_LOADER_URL___99999___; + background: ___CSS_LOADER_IMPORT___; + background: ___CSS_LOADER_IMPORT___INDEX___; + background: ___CSS_LOADER_IMPORT___99999___; +} + +.pure-url { + background: url(file:///webpack/public/path/img-simple.png); +} + +.root-relative { + background: url(file:///webpack/public/path/img-simple.png); +} + +.above-below { + background: url(file:///webpack/public/path/img-simple.png); +} + +.tilde { + background: url(file:///webpack/public/path/img.png); +} + +.aliases { + background: url(file:///webpack/public/path/img.png) ; +} + +a { + background: url(file:///webpack/public/path/img.png); +} + +a { + background: url(file:///webpack/public/path/img.png); +} + +@font-face { + src: url(\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\"); +} + +.class { + /* Broken */ + background-image: -webkit-image-set(); + background-image: -webkit-image-set(''); + background-image: image-set(); + background-image: image-set(''); + background-image: image-set(\\"\\"); + background-image: image-set(\\"\\" 1x); + background-image: image-set(url()); + background-image: image-set( + url() + ); + background-image: image-set(URL()); + background-image: image-set(url('')); + background-image: image-set(url(\\"\\")); + background-image: image-set(url('') 1x); + background-image: image-set(1x); + background-image: image-set( + 1x + ); + background: image-set(calc(1rem + 1px) 1x); + + /* Strings */ + background-image: -webkit-image-set(\\"file:///webpack/public/path/img1x.png\\" 1x, \\"file:///webpack/public/path/img2x.png\\" 2x); + background-image: image-set(\\"file:///webpack/public/path/img1x.png\\" 1x); + background-image: image-set(\\"file:///webpack/public/path/img1x.png\\" 1x, \\"file:///webpack/public/path/img2x.png\\" 2x); + background-image: image-set(\\"file:///webpack/public/path/img%20img.png\\" 1x, \\"file:///webpack/public/path/img%20img.png\\" 2x); + background-image: image-set(\\"file:///webpack/public/path/img1x.png\\" 1x, \\"file:///webpack/public/path/img2x.png\\" 2x), + image-set(\\"file:///webpack/public/path/img1x.png\\" 1x, \\"file:///webpack/public/path/img2x.png\\" 2x); + background-image: image-set( + \\"file:///webpack/public/path/img1x.png\\" 1x, + \\"file:///webpack/public/path/img2x.png\\" 2x, + \\"file:///webpack/public/path/img3x.png\\" 600dpi + ); + background-image: image-set(\\"file:///webpack/public/path/img1x.png\\" 1x); + background-image: image-set(\\"file:///webpack/public/path/img1x.png#hash\\" 1x); + background-image: image-set(\\"file:///webpack/public/path/img1x.png?#iefix\\" 1x); + + /* With \`url\` function */ + background-image: -webkit-image-set(url(file:///webpack/public/path/img1x.png) 1x, url(file:///webpack/public/path/img2x.png) 2x); + background-image: -webkit-image-set(url(file:///webpack/public/path/img1x.png) 1x); + background-image: -webkit-image-set( + url(file:///webpack/public/path/img1x.png) 1x + ); + background-image: image-set(url(file:///webpack/public/path/img1x.png) 1x); + background-image: image-set( + url(file:///webpack/public/path/img1x.png) 1x + ); + background-image: image-set(url(file:///webpack/public/path/img1x.png) 1x, url(file:///webpack/public/path/img2x.png) 2x); + background-image: image-set( + url(file:///webpack/public/path/img1x.png) 1x, + url(file:///webpack/public/path/img2x.png) 2x, + url(file:///webpack/public/path/img3x.png) 600dpi + ); + background-image: image-set(url(\\"file:///webpack/public/path/img%20img.png\\") 1x, url(\\"file:///webpack/public/path/img%20img.png\\") 2x); + + background-image: image-set(url(file:///webpack/public/path/img1x.png) 1x, \\"file:///webpack/public/path/img2x.png\\" 2x); +} + +.class { + /* Not allowed on windows */ + /* background: url(./img\\\\\\"img.png); */ + background: url(\\"file:///webpack/public/path/img'img.png\\"); + background: url(\\"file:///webpack/public/path/img'''img.png\\"); + background: url(\\"file:///webpack/public/path/img(img.png\\"); + background: url(\\"file:///webpack/public/path/img)img.png\\"); + background: url(\\"file:///webpack/public/path/img%20img.png\\"); + background: url(\\"file:///webpack/public/path/img'()%20img.png\\"); + + background-image: image-set( + /* Not allowed on windows */ + /* url(./img\\\\\\"img.png) 1x, */ + url(\\"file:///webpack/public/path/img'''img.png\\") 2x, + url(\\"file:///webpack/public/path/img'img.png\\") 3x, + url(\\"file:///webpack/public/path/img(img.png\\") 4x, + url(\\"file:///webpack/public/path/img)img.png\\") 5x, + url(\\"file:///webpack/public/path/img%20img.png\\") 6x, + url(\\"file:///webpack/public/path/img'()%20img.png\\") 7x + ); +} + +.class-class-class { + background: url(\\"file:///webpack/public/path/img'''img.png\\"); + background: url(\\"file:///webpack/public/path/img'()%20img.png\\"); + background: url(\\"file:///webpack/public/path/img'img.png\\"); + background: url(\\"file:///webpack/public/path/img(img.png\\"); + background: url(\\"file:///webpack/public/path/img)img.png\\"); + background: url(\\"file:///webpack/public/path/img%20img.png\\"); + background: url(\\"file:///webpack/public/path/img%20img.png\\"); +} + +/* Comment */ + +.class.class.class { + background: url(\\"file:///webpack/public/path/img(img.png\\"); + background: url(\\"file:///webpack/public/path/img(img.png\\"); + background: url(\\"file:///webpack/public/path/img(img.png\\"); + background: url(\\"file:///webpack/public/path/img(img.png\\"); +} + +.other-test-case { + background: url(\\"file:///webpack/public/path/img'''img.png\\"); + background: url(\\"file:///webpack/public/path/img'()%20img.png\\"); + background: url(\\"file:///webpack/public/path/img'img.png\\"); + background: url(\\"file:///webpack/public/path/img(img.png\\"); + background: url(\\"file:///webpack/public/path/img)img.png\\"); + background: url(\\"file:///webpack/public/path/img%20img.png\\"); + background: url(\\"file:///webpack/public/path/img'''img.png\\"); + background: url(\\"file:///webpack/public/path/img'()%20img.png\\"); + background: url(\\"file:///webpack/public/path/img'img.png\\"); + background: url(\\"file:///webpack/public/path/img(img.png\\"); + background: url(\\"file:///webpack/public/path/img)img.png\\"); + background: url(\\"file:///webpack/public/path/img%20img.png\\"); +} + +.qqq { + background: url(file:///webpack/public/path/img.png); +} + +.www { + background: url(\\"file:///webpack/public/path/img'''img.png\\"); + background: url(\\"file:///webpack/public/path/img'()%20img.png\\"); + background: url(\\"file:///webpack/public/path/img'img.png\\"); + background: url(\\"file:///webpack/public/path/img(img.png\\"); + background: url(\\"file:///webpack/public/path/img)img.png\\"); + background: url(\\"file:///webpack/public/path/img%20img.png\\"); + background: url(file:///webpack/public/path/img.png); + background: url(file:///webpack/public/path/img.png); + background: url(\\"file:///webpack/public/path/img'img.png\\"); + background: url(\\"file:///webpack/public/path/img'()%20img.png\\"); + background: url(\\"file:///webpack/public/path/img'()%20img.png\\"); +} + +.class { + /* Should be one import */ + background: url(file:///webpack/public/path/something.png); + background: url(file:///webpack/public/path/something.png); + + background: url(file:///webpack/public/path/something.png); + background: url(file:///webpack/public/path/something.png); + + background: url(file:///webpack/public/path/something.png#hash); + background: url(file:///webpack/public/path/something.png#hash); + + /* Should be two imports */ + background: url(file:///webpack/public/path/something.png); + background: url(file:///webpack/public/path/something.png); + + background: url(file:///webpack/public/path/something.png#foo); + background: url(file:///webpack/public/path/something.png#bar); + + background: url(file:///webpack/public/path/something.png); + background: url(file:///webpack/public/path/something.png); +} + +.base { + background: url(\\"data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3C%21DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%0A%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%0A%09%20width%3D%22191px%22%20height%3D%22191px%22%20viewBox%3D%220%200%20191%20191%22%20enable-background%3D%22new%200%200%20191%20191%22%20xml%3Aspace%3D%22preserve%22%3E%0A%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M95.5%2C0C42.8%2C0%2C0%2C42.8%2C0%2C95.5S42.8%2C191%2C95.5%2C191S191%2C148.2%2C191%2C95.5S148.2%2C0%2C95.5%2C0z%20M95.5%2C187.6%0A%09c-50.848%2C0-92.1-41.25-92.1-92.1c0-50.848%2C41.252-92.1%2C92.1-92.1c50.85%2C0%2C92.1%2C41.252%2C92.1%2C92.1%0A%09C187.6%2C146.35%2C146.35%2C187.6%2C95.5%2C187.6z%22%2F%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M92.9%2C10v8.6H91v-6.5c-0.1%2C0.1-0.2%2C0.2-0.4%2C0.3c-0.2%2C0.1-0.3%2C0.2-0.4%2C0.2c-0.1%2C0-0.3%2C0.1-0.5%2C0.2%0A%09%09c-0.2%2C0.1-0.3%2C0.1-0.5%2C0.1v-1.6c0.5-0.1%2C0.9-0.3%2C1.4-0.5c0.5-0.2%2C0.8-0.5%2C1.2-0.7h1.1V10z%22%2F%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M97.1%2C17.1h3.602v1.5h-5.6V18c0-0.4%2C0.1-0.8%2C0.2-1.2c0.1-0.4%2C0.3-0.6%2C0.5-0.9c0.2-0.3%2C0.5-0.5%2C0.7-0.7%0A%09%09c0.2-0.2%2C0.5-0.4%2C0.7-0.6c0.199-0.2%2C0.5-0.3%2C0.6-0.5c0.102-0.2%2C0.301-0.3%2C0.5-0.5c0.2-0.2%2C0.2-0.3%2C0.301-0.5%0A%09%09c0.101-0.2%2C0.101-0.3%2C0.101-0.5c0-0.4-0.101-0.6-0.3-0.8c-0.2-0.2-0.4-0.3-0.801-0.3c-0.699%2C0-1.399%2C0.3-2.101%2C0.9v-1.6%0A%09%09c0.7-0.5%2C1.5-0.7%2C2.5-0.7c0.399%2C0%2C0.8%2C0.1%2C1.101%2C0.2c0.301%2C0.1%2C0.601%2C0.3%2C0.899%2C0.5c0.3%2C0.2%2C0.399%2C0.5%2C0.5%2C0.8%0A%09%09c0.101%2C0.3%2C0.2%2C0.6%2C0.2%2C1s-0.102%2C0.7-0.2%2C1c-0.099%2C0.3-0.3%2C0.6-0.5%2C0.8c-0.2%2C0.2-0.399%2C0.5-0.7%2C0.7c-0.3%2C0.2-0.5%2C0.4-0.8%2C0.6%0A%09%09c-0.2%2C0.1-0.399%2C0.3-0.5%2C0.4s-0.3%2C0.3-0.5%2C0.4s-0.2%2C0.3-0.3%2C0.4C97.1%2C17%2C97.1%2C17%2C97.1%2C17.1z%22%2F%3E%0A%3C%2Fg%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M15%2C95.4c0%2C0.7-0.1%2C1.4-0.2%2C2c-0.1%2C0.6-0.4%2C1.1-0.7%2C1.5C13.8%2C99.3%2C13.4%2C99.6%2C12.9%2C99.8s-1%2C0.3-1.5%2C0.3%0A%09%09c-0.7%2C0-1.3-0.1-1.8-0.3v-1.5c0.4%2C0.3%2C1%2C0.4%2C1.6%2C0.4c0.6%2C0%2C1.1-0.2%2C1.5-0.7c0.4-0.5%2C0.5-1.1%2C0.5-1.9l0%2C0%0A%09%09C12.8%2C96.7%2C12.3%2C96.9%2C11.5%2C96.9c-0.3%2C0-0.7-0.102-1-0.2c-0.3-0.101-0.5-0.3-0.8-0.5c-0.3-0.2-0.4-0.5-0.5-0.8%0A%09%09c-0.1-0.3-0.2-0.7-0.2-1c0-0.4%2C0.1-0.8%2C0.2-1.2c0.1-0.4%2C0.3-0.7%2C0.6-0.9c0.3-0.2%2C0.6-0.5%2C0.9-0.6c0.3-0.1%2C0.8-0.2%2C1.2-0.2%0A%09%09c0.5%2C0%2C0.9%2C0.1%2C1.2%2C0.3c0.3%2C0.2%2C0.7%2C0.4%2C0.9%2C0.8s0.5%2C0.7%2C0.6%2C1.2S15%2C94.8%2C15%2C95.4z%20M13.1%2C94.4c0-0.2%2C0-0.4-0.1-0.6%0A%09%09c-0.1-0.2-0.1-0.4-0.2-0.5c-0.1-0.1-0.2-0.2-0.4-0.3c-0.2-0.1-0.3-0.1-0.5-0.1c-0.2%2C0-0.3%2C0-0.4%2C0.1s-0.3%2C0.2-0.3%2C0.3%0A%09%09c0%2C0.1-0.2%2C0.3-0.2%2C0.4c0%2C0.1-0.1%2C0.4-0.1%2C0.6c0%2C0.2%2C0%2C0.4%2C0.1%2C0.6c0.1%2C0.2%2C0.1%2C0.3%2C0.2%2C0.4c0.1%2C0.1%2C0.2%2C0.2%2C0.4%2C0.3%0A%09%09c0.2%2C0.1%2C0.3%2C0.1%2C0.5%2C0.1c0.2%2C0%2C0.3%2C0%2C0.4-0.1s0.2-0.2%2C0.3-0.3c0.1-0.1%2C0.2-0.2%2C0.2-0.4C13%2C94.7%2C13.1%2C94.6%2C13.1%2C94.4z%22%2F%3E%0A%3C%2Fg%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M176%2C99.7V98.1c0.6%2C0.4%2C1.2%2C0.602%2C2%2C0.602c0.5%2C0%2C0.8-0.102%2C1.1-0.301c0.301-0.199%2C0.4-0.5%2C0.4-0.801%0A%09%09c0-0.398-0.2-0.699-0.5-0.898c-0.3-0.2-0.8-0.301-1.3-0.301h-0.802V95h0.701c1.101%2C0%2C1.601-0.4%2C1.601-1.1c0-0.7-0.4-1-1.302-1%0A%09%09c-0.6%2C0-1.1%2C0.2-1.6%2C0.5v-1.5c0.6-0.3%2C1.301-0.4%2C2.1-0.4c0.9%2C0%2C1.5%2C0.2%2C2%2C0.6s0.701%2C0.9%2C0.701%2C1.5c0%2C1.1-0.601%2C1.8-1.701%2C2.1l0%2C0%0A%09%09c0.602%2C0.1%2C1.102%2C0.3%2C1.4%2C0.6s0.5%2C0.8%2C0.5%2C1.3c0%2C0.801-0.3%2C1.4-0.9%2C1.9c-0.6%2C0.5-1.398%2C0.7-2.398%2C0.7%0A%09%09C177.2%2C100.1%2C176.5%2C100%2C176%2C99.7z%22%2F%3E%0A%3C%2Fg%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M98.5%2C179.102c0%2C0.398-0.1%2C0.799-0.2%2C1.199C98.2%2C180.7%2C98%2C181%2C97.7%2C181.2s-0.601%2C0.5-0.9%2C0.601%0A%09%09c-0.3%2C0.1-0.7%2C0.199-1.2%2C0.199c-0.5%2C0-0.9-0.1-1.3-0.3c-0.4-0.2-0.7-0.399-0.9-0.8c-0.2-0.4-0.5-0.7-0.6-1.2%0A%09%09c-0.1-0.5-0.2-1-0.2-1.601c0-0.699%2C0.1-1.399%2C0.3-2c0.2-0.601%2C0.4-1.101%2C0.8-1.5c0.4-0.399%2C0.7-0.699%2C1.2-1c0.5-0.3%2C1-0.3%2C1.6-0.3%0A%09%09c0.6%2C0%2C1.2%2C0.101%2C1.5%2C0.199v1.5c-0.4-0.199-0.9-0.399-1.4-0.399c-0.3%2C0-0.6%2C0.101-0.8%2C0.2c-0.2%2C0.101-0.5%2C0.3-0.7%2C0.5%0A%09%09c-0.2%2C0.199-0.3%2C0.5-0.4%2C0.8c-0.1%2C0.301-0.2%2C0.7-0.2%2C1.101l0%2C0c0.4-0.601%2C1-0.8%2C1.8-0.8c0.3%2C0%2C0.7%2C0.1%2C0.9%2C0.199%0A%09%09c0.2%2C0.101%2C0.5%2C0.301%2C0.7%2C0.5c0.199%2C0.2%2C0.398%2C0.5%2C0.5%2C0.801C98.5%2C178.2%2C98.5%2C178.7%2C98.5%2C179.102z%20M96.7%2C179.2%0A%09%09c0-0.899-0.4-1.399-1.1-1.399c-0.2%2C0-0.3%2C0-0.5%2C0.1c-0.2%2C0.101-0.3%2C0.201-0.4%2C0.301c-0.1%2C0.101-0.2%2C0.199-0.2%2C0.4%0A%09%09c0%2C0.199-0.1%2C0.299-0.1%2C0.5c0%2C0.199%2C0%2C0.398%2C0.1%2C0.6s0.1%2C0.3%2C0.2%2C0.5c0.1%2C0.199%2C0.2%2C0.199%2C0.4%2C0.3c0.2%2C0.101%2C0.3%2C0.101%2C0.5%2C0.101%0A%09%09c0.2%2C0%2C0.3%2C0%2C0.5-0.101c0.2-0.101%2C0.301-0.199%2C0.301-0.3c0-0.1%2C0.199-0.301%2C0.199-0.399C96.6%2C179.7%2C96.7%2C179.4%2C96.7%2C179.2z%22%2F%3E%0A%3C%2Fg%3E%0A%3Ccircle%20fill%3D%22%23636363%22%20cx%3D%2295%22%20cy%3D%2295%22%20r%3D%227%22%2F%3E%0A%3C%2Fsvg%3E%0A\\") 50% 50%/191px no-repeat; +} + +.strange { + background: url(file:///webpack/public/path/img.png); +} + +.my-background { + background-image: url(file:///webpack/public/path/img.png); +} + +.class { + background: url(file:///webpack/public/path/img.png, 'foo', './img.png', url('./img.png')); + background-image: image-set(url(file:///webpack/public/path/img.png, 'foo', './img.png', url('./img.png')) 1x, url(file:///webpack/public/path/img2x.png) 2x); +} + +.button { + background-image: url('data:image/svg+xml;utf8,'); +} + +/* We need to use \`resourceQuery: /inline/\` */ +/* Hard to test on webpack v4 */ +.qqq { + background: url(file:///webpack/public/path/custom-img.png) +} + +.class { + background: url(file:///webpack/public/path/img.png); +} + +.class { + background: url(file:///webpack/public/path/img.png); +} + +/** Prefer relative **/ +.class { + background: url(file:///webpack/public/path/img.png); +} + +/** Prefer from modules **/ +.class { + background: url(file:///webpack/public/path/other.png); +} + +.class { + background: url(file:///webpack/public/path/img.png); +} + +.foo { + background-image: url(\\"data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27none%27 stroke=%27%23343a40%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27M2 5l6 6 6-6%27/%3e%3c/svg%3e\\"); +} +", +} +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and urls: warnings 1`] = ` +Array [ + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(120:3) Unable to find uri in 'background: green url() xyz'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(124:3) Unable to find uri in 'background: green url('') xyz'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(128:3) Unable to find uri in 'background: green url(\\"\\") xyz'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(132:3) Unable to find uri in 'background: green url(' ') xyz'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(136:3) Unable to find uri in 'background: green url( + ) xyz'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(216:3) Unable to find uri in 'background-image: -webkit-image-set('')'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(218:3) Unable to find uri in 'background-image: image-set('')'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(219:3) Unable to find uri in 'background-image: image-set(\\"\\")'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(220:3) Unable to find uri in 'background-image: image-set(\\"\\" 1x)'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(221:3) Unable to find uri in 'background-image: image-set(url())'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(222:3) Unable to find uri in 'background-image: image-set( + url() + )'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(225:3) Unable to find uri in 'background-image: image-set(URL())'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(226:3) Unable to find uri in 'background-image: image-set(url(''))'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(227:3) Unable to find uri in 'background-image: image-set(url(\\"\\"))'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(228:3) Unable to find uri in 'background-image: image-set(url('') 1x)'", +] +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and with 'sass-loader': errors 1`] = `Array []`; + +exports[`'exportType' option should work with 'css-style-sheet' value and with 'sass-loader': module 1`] = ` +"// Imports +import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../../src/runtime/noSourceMaps.js\\"; +import ___CSS_LOADER_API_IMPORT___ from \\"../../../src/runtime/api.js\\"; +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"body {\\\\n font: 100% Helvetica, sans-serif;\\\\n color: #333;\\\\n}\\", \\"\\"]); +// Exports +var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); +___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); +export default ___CSS_LOADER_STYLE_SHEET___; +" +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and with 'sass-loader': result 1`] = ` +CSSStyleSheet { + "text": "body { + font: 100% Helvetica, sans-serif; + color: #333; +}", +} +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and with 'sass-loader': warnings 1`] = `Array []`; + +exports[`'exportType' option should work with 'css-style-sheet' value: errors 1`] = `Array []`; + +exports[`'exportType' option should work with 'css-style-sheet' value: module 1`] = ` +"// Imports +import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../src/runtime/noSourceMaps.js\\"; +import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; +import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +// Exports +var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); +___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); +export default ___CSS_LOADER_STYLE_SHEET___; +" +`; + +exports[`'exportType' option should work with 'css-style-sheet' value: result 1`] = ` +CSSStyleSheet { + "text": "@charset \\"UTF-8\\"; + +/* Comment */ + +.class { + color: red; + background: url(file:///webpack/public/path/img.png); +} + +.class-duplicate-url { + background: url(file:///webpack/public/path/img.png); +} + +:root { + --foo: 1px; + --bar: 2px; +} + +.class { a: b c d; } + +.two {} + +.u-m\\\\+ { a: b c d; } + +.class { content: \\"\\\\F10C\\" } + +@media only screen and (max-width: 600px) { + body { + background-color: lightblue; + } +} + +.class { + content: \\"\\\\2193\\"; + content: \\"\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193\\"; + content: \\"\\\\2193\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193 \\\\2193\\"; +} + +.-top {} +.\\\\-top {} + +#\\\\#test {} + +.grid { + display: flex; + flex-wrap: wrap; +} +.grid.\\\\-top { + align-items: flex-start; +} +.grid.-top { + align-items: flex-start; +} +.grid.\\\\-middle { + align-items: center; +} +.grid.\\\\-bottom { + align-items: flex-end; +} + +.u-m\\\\00002b {} + +.u-m00002b {} + +#u-m\\\\+ {} + +body { + font-family: '微软雅黑'; /* some chinese font name */ +} + +.myStyle { + content: '\\\\e901'; +} + +.myStyle { + content: '\\\\E901'; +} + +.♫ {} + +.\\\\3A \\\\\`\\\\( {} /* matches elements with class=\\":\`(\\" */ +.\\\\31 a2b3c {} /* matches elements with class=\\"1a2b3c\\" */ +#\\\\#fake-id {} /* matches the element with id=\\"#fake-id\\" */ +#-a-b-c- {} /* matches the element with id=\\"-a-b-c-\\" */ +#© {} /* matches the element with id=\\"©\\" */ + +:root { + --title-align: center; + --sr-only: { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0,0,0,0); + white-space: nowrap; + clip-path: inset(50%); + border: 0; + }; +} + +.test { + content: \\"\\\\2014\\\\A0\\"; + content: \\"\\\\2014 \\\\A0\\"; + content: \\"\\\\A0 \\\\2014\\"; + content: \\"\\\\A0\\\\2014\\"; + margin-top: 1px\\\\9; + background-color: #000\\\\9; +} + +.light.on .bulb:before{ + content: '💡'; +} + +.base64 { + background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); +} + +a[href=''] { + color: red; +} + +a[href='' i] { + color: red; +} + +a[href=\\"\\"] { + color: blue; +} + +a[href=\\"\\" i] { + color: blue; +} +", +} +`; + +exports[`'exportType' option should work with 'css-style-sheet' value: warnings 1`] = `Array []`; + +exports[`'exportType' option should work with 'javascript' value: errors 1`] = `Array []`; + +exports[`'exportType' option should work with 'javascript' value: module 1`] = ` +"// Imports +import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../src/runtime/noSourceMaps.js\\"; +import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; +import ___CSS_LOADER_AT_RULE_IMPORT_0___ from \\"-!../../src/index.js??ruleSet[1].rules[0].use[0]!./imported.css\\"; +import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +// Exports +export default ___CSS_LOADER_EXPORT___; +" +`; + +exports[`'exportType' option should work with 'javascript' value: result 1`] = ` +Array [ + Array [ + "../../src/index.js??ruleSet[1].rules[0].use[0]!./imported.css", + ".foo { + color: red; +} +", + "", + ], + Array [ + "./basic.css", + "@charset \\"UTF-8\\"; + +/* Comment */ + +.class { + color: red; + background: url(replaced_file_protocol_/webpack/public/path/img.png); +} + +.class-duplicate-url { + background: url(replaced_file_protocol_/webpack/public/path/img.png); +} + +:root { + --foo: 1px; + --bar: 2px; +} + +.class { a: b c d; } + +.two {} + +.u-m\\\\+ { a: b c d; } + +.class { content: \\"\\\\F10C\\" } + +@media only screen and (max-width: 600px) { + body { + background-color: lightblue; + } +} + +.class { + content: \\"\\\\2193\\"; + content: \\"\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193\\"; + content: \\"\\\\2193\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193 \\\\2193\\"; +} + +.-top {} +.\\\\-top {} + +#\\\\#test {} + +.grid { + display: flex; + flex-wrap: wrap; +} +.grid.\\\\-top { + align-items: flex-start; +} +.grid.-top { + align-items: flex-start; +} +.grid.\\\\-middle { + align-items: center; +} +.grid.\\\\-bottom { + align-items: flex-end; +} + +.u-m\\\\00002b {} + +.u-m00002b {} + +#u-m\\\\+ {} + +body { + font-family: '微软雅黑'; /* some chinese font name */ +} + +.myStyle { + content: '\\\\e901'; +} + +.myStyle { + content: '\\\\E901'; +} + +.♫ {} + +.\\\\3A \\\\\`\\\\( {} /* matches elements with class=\\":\`(\\" */ +.\\\\31 a2b3c {} /* matches elements with class=\\"1a2b3c\\" */ +#\\\\#fake-id {} /* matches the element with id=\\"#fake-id\\" */ +#-a-b-c- {} /* matches the element with id=\\"-a-b-c-\\" */ +#© {} /* matches the element with id=\\"©\\" */ + +:root { + --title-align: center; + --sr-only: { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0,0,0,0); + white-space: nowrap; + clip-path: inset(50%); + border: 0; + }; +} + +.test { + content: \\"\\\\2014\\\\A0\\"; + content: \\"\\\\2014 \\\\A0\\"; + content: \\"\\\\A0 \\\\2014\\"; + content: \\"\\\\A0\\\\2014\\"; + margin-top: 1px\\\\9; + background-color: #000\\\\9; +} + +.light.on .bulb:before{ + content: '💡'; +} + +.base64 { + background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); +} + +a[href=''] { + color: red; +} + +a[href='' i] { + color: red; +} + +a[href=\\"\\"] { + color: blue; +} + +a[href=\\"\\" i] { + color: blue; +} +", + "", + ], +] +`; + +exports[`'exportType' option should work with 'javascript' value: warnings 1`] = `Array []`; + +exports[`'exportType' option should work with CSS modules and the 'exportOnlyLocals' option: errors 1`] = `Array []`; + +exports[`'exportType' option should work with CSS modules and the 'exportOnlyLocals' option: module 1`] = ` +"// Imports +import * as ___CSS_LOADER_ICSS_IMPORT_0____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./values.css\\"; +import * as ___CSS_LOADER_ICSS_IMPORT_1____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./something.css\\"; +import * as ___CSS_LOADER_ICSS_IMPORT_2____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./imported-simple.css\\"; +import * as ___CSS_LOADER_ICSS_IMPORT_3____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./relative.css\\"; +import * as ___CSS_LOADER_ICSS_IMPORT_4____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./top-relative.css\\"; +import * as ___CSS_LOADER_ICSS_IMPORT_5____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!../issue-861/node_modules/package/style.css\\"; +import * as ___CSS_LOADER_ICSS_IMPORT_6____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./alias.css\\"; +import * as ___CSS_LOADER_ICSS_IMPORT_7____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!sass-loader!./scss-file.scss\\"; +// Exports +export var vDef = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vDef\\"] + \\"\\"; +export var vOther = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vOther\\"] + \\"\\"; +export var sWhite = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"sWhite\\"] + \\"\\"; +export var mSmall = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"mSmall\\"] + \\"\\"; +export var vSomething = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_1____NAMED___[\\"vSomething\\"] + \\"\\"; +export var vFoo = \\"blue\\"; +export var vBar = \\"block\\"; +export var vPrimary = \\"#BF4040\\"; +export var sBlack = \\"black-selector\\"; +export var mLarge = \\"(min-width: 960px)\\"; +export var vIdent = \\"validIdent\\"; +export var vPreDefinedIdent = \\"left\\"; +export var vString = \\"'content'\\"; +export var vString1 = \\"''\\"; +export var vUrl = \\"url(https://www.exammple.com/images/my-background.png)\\"; +export var vUrl1 = \\"url('https://www.exammple.com/images/my-background.png')\\"; +export var vUrl2 = \\"url(\\\\\\"https://www.exammple.com/images/my-background.png\\\\\\")\\"; +export var vInteger = \\"100\\"; +export var vInteger1 = \\"-100\\"; +export var vInteger2 = \\"+100\\"; +export var vNumber = \\".60\\"; +export var vNumber1 = \\"-456.8\\"; +export var vNumber2 = \\"-3.4e-2\\"; +export var vDimension = \\"12px\\"; +export var vPercentage = \\"100%\\"; +export var vHex = \\"#fff\\"; +export var vComment = \\" /* comment */\\"; +export var vFunction = \\"rgb(0,0,0)\\"; +export var vUnicodeRange = \\"U+0025-00FF\\"; +export var ghi = \\"JrMovmNxiARceckPi1Bb\\"; +export var myClass = \\"_xZYrLKW96sXm2aniadM\\"; +export var other = \\"cXIvIhl_Be3NhMPQoE0z\\"; +export var otherOther = \\"wyIZMXPNE2D7zb9VCrHe\\"; +export var green = \\"as9P70j15m_wICZ94IJx\\"; +export var foo = \\"zAepmy_SqloGdZJJmXNm\\"; +export var simple = \\"n_zXxs10wzKREXQdQrw9 \\" + ___CSS_LOADER_ICSS_IMPORT_2____NAMED___[\\"importedSimple\\"] + \\"\\"; +export var relative = \\"_u4nolEyHSlixSSx7uXN \\" + ___CSS_LOADER_ICSS_IMPORT_3____NAMED___[\\"importedRelative\\"] + \\"\\"; +export var topRelative = \\"_EXVuUxUggUhA1UEBgZk \\" + ___CSS_LOADER_ICSS_IMPORT_4____NAMED___[\\"importedRelative\\"] + \\"\\"; +export var myModule = \\"o2wK31qqosVXAPAdGIxD \\" + ___CSS_LOADER_ICSS_IMPORT_5____NAMED___[\\"importedModule\\"] + \\"\\"; +export var alias = \\"_Y2QYoxyUknZNv0u6wN3 \\" + ___CSS_LOADER_ICSS_IMPORT_6____NAMED___[\\"importedAlias\\"] + \\"\\"; +export var aliasDuplicate = \\"wmZh7D9g5PjWvMpojahG \\" + ___CSS_LOADER_ICSS_IMPORT_6____NAMED___[\\"importedAlias\\"] + \\"\\"; +export var primarySelector = \\"uOEsMAq4YIv8PUUlnnhI\\"; +export var blackSelector = \\"_r6IpGhEbXgocCCXZgDs\\"; +export var header = \\"IsCkQQmCqI3_HSI_H_hT\\"; +export var foobarbaz = \\"lNjqoQe7B3jKXIowFbpE\\"; +export var url = \\"ABtimDL9fvKNWc1BjB59\\"; +export var main = \\"K7O_z8z4VzoG6Ru_jb_T \\" + ___CSS_LOADER_ICSS_IMPORT_7____NAMED___[\\"scssClass\\"] + \\"\\"; +" +`; + +exports[`'exportType' option should work with CSS modules and the 'exportOnlyLocals' option: result 1`] = ` +Object { + "named": Object { + "alias": "_Y2QYoxyUknZNv0u6wN3 _4Zj8x54IrWF75cUaGyT", + "aliasDuplicate": "wmZh7D9g5PjWvMpojahG _4Zj8x54IrWF75cUaGyT", + "blackSelector": "_r6IpGhEbXgocCCXZgDs", + "foo": "zAepmy_SqloGdZJJmXNm", + "foobarbaz": "lNjqoQe7B3jKXIowFbpE", + "ghi": "JrMovmNxiARceckPi1Bb", + "green": "as9P70j15m_wICZ94IJx", + "header": "IsCkQQmCqI3_HSI_H_hT", + "mLarge": "(min-width: 960px)", + "mSmall": "(min-width: 320px)", + "main": "K7O_z8z4VzoG6Ru_jb_T pqdLCWFRW03AVy9uJoZX", + "myClass": "_xZYrLKW96sXm2aniadM", + "myModule": "o2wK31qqosVXAPAdGIxD ONhOxkn21jORUJmheiwE", + "other": "cXIvIhl_Be3NhMPQoE0z", + "otherOther": "wyIZMXPNE2D7zb9VCrHe", + "primarySelector": "uOEsMAq4YIv8PUUlnnhI", + "relative": "_u4nolEyHSlixSSx7uXN HlqmBJrtIvJ3Gzgbut_w", + "sBlack": "black-selector", + "sWhite": "white", + "simple": "n_zXxs10wzKREXQdQrw9 kN0Z3n7LgkVJQeFmVucy", + "topRelative": "_EXVuUxUggUhA1UEBgZk MzX17bUYYh7fmdKVXQ9p", + "url": "ABtimDL9fvKNWc1BjB59", + "vBar": "block", + "vComment": " /* comment */", + "vDef": "red", + "vDimension": "12px", + "vFoo": "blue", + "vFunction": "rgb(0,0,0)", + "vHex": "#fff", + "vIdent": "validIdent", + "vInteger": "100", + "vInteger1": "-100", + "vInteger2": "+100", + "vNumber": ".60", + "vNumber1": "-456.8", + "vNumber2": "-3.4e-2", + "vOther": "green", + "vPercentage": "100%", + "vPreDefinedIdent": "left", + "vPrimary": "#BF4040", + "vSomething": "2112moon", + "vString": "'content'", + "vString1": "''", + "vUnicodeRange": "U+0025-00FF", + "vUrl": "url(https://www.exammple.com/images/my-background.png)", + "vUrl1": "url('https://www.exammple.com/images/my-background.png')", + "vUrl2": "url(\\"https://www.exammple.com/images/my-background.png\\")", + }, +} +`; + +exports[`'exportType' option should work with CSS modules and the 'exportOnlyLocals' option: warnings 1`] = `Array []`; diff --git a/test/__snapshots__/validate-options.test.js.snap b/test/__snapshots__/validate-options.test.js.snap index 0b3775df..2f3884d1 100644 --- a/test/__snapshots__/validate-options.test.js.snap +++ b/test/__snapshots__/validate-options.test.js.snap @@ -7,11 +7,20 @@ exports[`validate options should throw an error on the "esModule" option with "t -> Read more at https://github.com/webpack-contrib/css-loader#esmodule" `; -exports[`validate options should throw an error on the "exportStyleSheet" option with "true" value 1`] = ` +exports[`validate options should throw an error on the "exportType" option with "false" value 1`] = ` "Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. - - options.exportStyleSheet should be a boolean. - -> Exports styles as constructable stylesheets (i.e. \`import sheet from './styles.css' assert { type: 'css' };\`). - -> Read more at https://github.com/webpack-contrib/css-loader#exportstylesheet" + - options.exportType should be one of these: + \\"javascript\\" | \\"css-style-sheet\\" + -> Allows to exports styles as javascript or constructable stylesheets ('CSSStyleSheet'). + -> Read more at https://github.com/webpack-contrib/css-loader#exporttype" +`; + +exports[`validate options should throw an error on the "exportType" option with "true" value 1`] = ` +"Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. + - options.exportType should be one of these: + \\"javascript\\" | \\"css-style-sheet\\" + -> Allows to exports styles as javascript or constructable stylesheets ('CSSStyleSheet'). + -> Read more at https://github.com/webpack-contrib/css-loader#exporttype" `; exports[`validate options should throw an error on the "import" option with "() => {}" value 1`] = ` @@ -306,49 +315,49 @@ exports[`validate options should throw an error on the "sourceMap" option with " exports[`validate options should throw an error on the "unknown" option with "/test/" value 1`] = ` "Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStyleSheet? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportType? }" `; exports[`validate options should throw an error on the "unknown" option with "[]" value 1`] = ` "Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStyleSheet? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportType? }" `; exports[`validate options should throw an error on the "unknown" option with "{"foo":"bar"}" value 1`] = ` "Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStyleSheet? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportType? }" `; exports[`validate options should throw an error on the "unknown" option with "{}" value 1`] = ` "Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStyleSheet? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportType? }" `; exports[`validate options should throw an error on the "unknown" option with "1" value 1`] = ` "Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStyleSheet? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportType? }" `; exports[`validate options should throw an error on the "unknown" option with "false" value 1`] = ` "Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStyleSheet? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportType? }" `; exports[`validate options should throw an error on the "unknown" option with "test" value 1`] = ` "Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStyleSheet? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportType? }" `; exports[`validate options should throw an error on the "unknown" option with "true" value 1`] = ` "Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. - options has an unknown property 'unknown'. These properties are valid: - object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportStyleSheet? }" + object { url?, import?, modules?, sourceMap?, importLoaders?, esModule?, exportType? }" `; exports[`validate options should throw an error on the "url" option with "() => {}" value 1`] = ` diff --git a/test/exportStyleSheet.test.js b/test/exportStyleSheet.test.js deleted file mode 100644 index 84ae3fae..00000000 --- a/test/exportStyleSheet.test.js +++ /dev/null @@ -1,321 +0,0 @@ -import path from "path"; - -import { - compile, - getCompiler, - getErrors, - getModuleSource, - getWarnings, -} from "./helpers/index"; - -describe("exportStylesheet option", () => { - it("should work", async () => { - const compiler = getCompiler( - "./basic-import-assertion-css.js", - { - exportStyleSheet: true, - }, - { - target: "web", - output: { - path: path.resolve(__dirname, "./outputs"), - filename: "[name].bundle.js", - chunkFilename: "[name].chunk.js", - assetModuleFilename: "[name][ext]", - }, - } - ); - const stats = await compile(compiler); - - expect(getModuleSource("./basic.css", stats)).toMatchSnapshot("module"); - expect(getWarnings(stats)).toMatchSnapshot("warnings"); - expect(getErrors(stats)).toMatchSnapshot("errors"); - }); - - it("should work with ECMA modules", async () => { - const compiler = getCompiler( - "./basic-import-assertion-css.js", - { - exportStyleSheet: true, - esModule: true, - }, - { - target: "web", - output: { - path: path.resolve(__dirname, "./outputs"), - filename: "[name].bundle.js", - chunkFilename: "[name].chunk.js", - assetModuleFilename: "[name][ext]", - }, - } - ); - const stats = await compile(compiler); - - expect(getModuleSource("./basic.css", stats)).toMatchSnapshot("module"); - expect(getWarnings(stats)).toMatchSnapshot("warnings"); - expect(getErrors(stats)).toMatchSnapshot("errors"); - }); - - it("should work with CommonJS modules", async () => { - const compiler = getCompiler( - "./basic-import-assertion-css.js", - { - exportStyleSheet: true, - esModule: false, - }, - { - target: "web", - output: { - path: path.resolve(__dirname, "./outputs"), - filename: "[name].bundle.js", - chunkFilename: "[name].chunk.js", - assetModuleFilename: "[name][ext]", - }, - } - ); - const stats = await compile(compiler); - - expect(getModuleSource("./basic.css", stats)).toMatchSnapshot("module"); - expect(getWarnings(stats)).toMatchSnapshot("warnings"); - expect(getErrors(stats)).toMatchSnapshot("errors"); - }); - - it("should work and keep import as is", async () => { - const compiler = getCompiler( - "./basic-import-assertion-css.js", - { - exportStyleSheet: true, - }, - { - target: "web", - output: { - path: path.resolve(__dirname, "./outputs"), - filename: "[name].bundle.js", - chunkFilename: "[name].chunk.js", - assetModuleFilename: "[name][ext]", - }, - } - ); - const stats = await compile(compiler); - - expect(getModuleSource("./basic.css", stats)).toMatchSnapshot("module"); - expect(getWarnings(stats)).toMatchSnapshot("warnings"); - expect(getErrors(stats)).toMatchSnapshot("errors"); - }); - - it("should work with urls", async () => { - const compiler = getCompiler( - "./url/url-import-assertion-css.js", - { - exportStyleSheet: true, - }, - { - target: "web", - output: { - path: path.resolve(__dirname, "./outputs"), - filename: "[name].bundle.js", - chunkFilename: "[name].chunk.js", - assetModuleFilename: "[name][ext]", - }, - } - ); - const stats = await compile(compiler); - - expect(getModuleSource("./url/url.css", stats)).toMatchSnapshot("module"); - expect(getWarnings(stats)).toMatchSnapshot("warnings"); - expect(getErrors(stats)).toMatchSnapshot("errors"); - }); - - it("should work with CSS modules", async () => { - const compiler = getCompiler( - "./modules/composes/composes-import-assertion-css.js", - { - exportStyleSheet: true, - modules: true, - }, - { - target: "web", - output: { - path: path.resolve(__dirname, "./outputs"), - filename: "[name].bundle.js", - chunkFilename: "[name].chunk.js", - assetModuleFilename: "[name][ext]", - }, - } - ); - const stats = await compile(compiler); - - expect( - getModuleSource("./modules/composes/composes.css", stats) - ).toMatchSnapshot("module"); - expect(getWarnings(stats)).toMatchSnapshot("warnings"); - expect(getErrors(stats)).toMatchSnapshot("errors"); - }); - - it("should work with CSS modules and the 'exportOnlyLocals' option", async () => { - const compiler = getCompiler( - "./modules/composes/composes-import-assertion-css.js", - { - exportStyleSheet: true, - modules: { - exportOnlyLocals: true, - }, - }, - { - target: "web", - output: { - path: path.resolve(__dirname, "./outputs"), - filename: "[name].bundle.js", - chunkFilename: "[name].chunk.js", - assetModuleFilename: "[name][ext]", - }, - } - ); - const stats = await compile(compiler); - - expect(getWarnings(stats)).toMatchSnapshot("warnings"); - expect(getErrors(stats)).toMatchSnapshot("errors"); - }); - - it("should work and export CSSStyleSheet for import assertion and basic output", async () => { - const compiler = getCompiler( - "./basic-import-assertion-css-and-standard.js", - {}, - { - target: "web", - output: { - path: path.resolve(__dirname, "./outputs"), - filename: "[name].bundle.js", - chunkFilename: "[name].chunk.js", - assetModuleFilename: "[name][ext]", - }, - module: { - rules: [ - { - test: /\.(mycss|css)$/i, - oneOf: [ - { - assert: { type: "css" }, - loader: path.resolve(__dirname, "./../src"), - options: { exportStyleSheet: true }, - }, - { - loader: path.resolve(__dirname, "./../src"), - }, - ], - }, - { - test: /\.(png|jpg|gif|svg|eot|ttf|woff|woff2)$/i, - resourceQuery: /^(?!.*\?ignore-asset-modules).*$/, - type: "asset/resource", - }, - { - resourceQuery: /\?ignore-asset-modules$/, - type: "javascript/auto", - }, - ], - }, - } - ); - const stats = await compile(compiler); - - expect(getModuleSource("./basic.css", stats)).toMatchSnapshot("module"); - expect(getWarnings(stats)).toMatchSnapshot("warnings"); - expect(getErrors(stats)).toMatchSnapshot("errors"); - }); - - // TODO https://bugs.chromium.org/p/chromium/issues/detail?id=1174094&q=CSSStyleSheet%20source%20maps&can=2 - it("should work with source maps", async () => { - const compiler = getCompiler( - "./basic-import-assertion-css.js", - { - exportStyleSheet: true, - }, - { - devtool: "source-map", - target: "web", - output: { - path: path.resolve(__dirname, "./outputs"), - filename: "[name].bundle.js", - chunkFilename: "[name].chunk.js", - assetModuleFilename: "[name][ext]", - }, - } - ); - const stats = await compile(compiler); - - expect(getModuleSource("./basic.css", stats)).toMatchSnapshot("module"); - expect(getWarnings(stats)).toMatchSnapshot("warnings"); - expect(getErrors(stats)).toMatchSnapshot("errors"); - }); - - it('should work with "sass-loader"', async () => { - const compiler = getCompiler( - "./scss/import-assertion-css.js", - {}, - { - target: "web", - output: { - path: path.resolve(__dirname, "./outputs"), - filename: "[name].bundle.js", - chunkFilename: "[name].chunk.js", - assetModuleFilename: "[name][ext]", - }, - module: { - rules: [ - { - test: /\.s[ca]ss$/i, - rules: [ - { - loader: path.resolve(__dirname, "../src"), - options: { - exportStyleSheet: true, - }, - }, - { - loader: "sass-loader", - options: { - // eslint-disable-next-line global-require - implementation: require("sass"), - }, - }, - ], - }, - ], - }, - } - ); - const stats = await compile(compiler); - - expect(getModuleSource("./scss/source.scss", stats)).toMatchSnapshot( - "module" - ); - expect(getWarnings(stats)).toMatchSnapshot("warnings"); - expect(getErrors(stats)).toMatchSnapshot("errors"); - }); - - it("should throw an error for CSS modules and disable named export", async () => { - const compiler = getCompiler( - "./modules/composes/composes-import-assertion-css.js", - { - exportStyleSheet: true, - modules: { - namedExport: false, - }, - }, - { - target: "web", - output: { - path: path.resolve(__dirname, "./outputs"), - filename: "[name].bundle.js", - chunkFilename: "[name].chunk.js", - assetModuleFilename: "[name][ext]", - }, - } - ); - const stats = await compile(compiler); - - expect(getWarnings(stats)).toMatchSnapshot("warnings"); - expect(getErrors(stats)).toMatchSnapshot("errors"); - }); -}); diff --git a/test/exportType.test.js b/test/exportType.test.js new file mode 100644 index 00000000..83df16d7 --- /dev/null +++ b/test/exportType.test.js @@ -0,0 +1,269 @@ +import path from "path"; + +import { + compile, + getCompiler, + getErrors, + getExecutedCode, + getModuleSource, + getWarnings, +} from "./helpers/index"; + +describe("'exportType' option", () => { + it("should work and export 'javascript' by default", async () => { + const compiler = getCompiler("./basic.js"); + const stats = await compile(compiler); + + expect(getModuleSource("./basic.css", stats)).toMatchSnapshot("module"); + expect(getExecutedCode("main.bundle.js", compiler, stats)).toMatchSnapshot( + "result" + ); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); + }); + + it("should work with 'javascript' value", async () => { + const compiler = getCompiler("./basic.js", { + exportType: "javascript", + }); + const stats = await compile(compiler); + + expect(getModuleSource("./basic.css", stats)).toMatchSnapshot("module"); + expect(getExecutedCode("main.bundle.js", compiler, stats)).toMatchSnapshot( + "result" + ); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); + }); + + it("should work with 'css-style-sheet' value", async () => { + const compiler = getCompiler("./basic-css-style-sheet.js", { + exportType: "css-style-sheet", + }); + const stats = await compile(compiler); + + expect( + getModuleSource("./basic-css-style-sheet.css", stats) + ).toMatchSnapshot("module"); + expect( + getExecutedCode("main.bundle.js", compiler, stats, "css-style-sheet") + ).toMatchSnapshot("result"); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); + }); + + // Note - chrome has bug https://bugs.chromium.org/p/chromium/issues/detail?id=1174094&q=CSSStyleSheet%20source%20maps&can=2 + it("should work with 'css-style-sheet' value and generate source maps", async () => { + const compiler = getCompiler("./basic-css-style-sheet.js", { + exportType: "css-style-sheet", + sourceMap: true, + }); + const stats = await compile(compiler); + + expect( + getModuleSource("./basic-css-style-sheet.css", stats) + ).toMatchSnapshot("module"); + expect( + getExecutedCode("main.bundle.js", compiler, stats, "css-style-sheet") + ).toMatchSnapshot("result"); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); + }); + + it("should work with 'css-style-sheet' value and ECMA modules", async () => { + const compiler = getCompiler("./basic-css-style-sheet.js", { + exportType: "css-style-sheet", + esModule: true, + }); + const stats = await compile(compiler); + + expect( + getModuleSource("./basic-css-style-sheet.css", stats) + ).toMatchSnapshot("module"); + expect( + getExecutedCode("main.bundle.js", compiler, stats, "css-style-sheet") + ).toMatchSnapshot("result"); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); + }); + + it("should work with 'css-style-sheet' value and CommonJS modules", async () => { + const compiler = getCompiler("./basic-css-style-sheet.js", { + exportType: "css-style-sheet", + esModule: false, + }); + const stats = await compile(compiler); + + expect( + getModuleSource("./basic-css-style-sheet.css", stats) + ).toMatchSnapshot("module"); + expect( + getExecutedCode("main.bundle.js", compiler, stats, "css-style-sheet") + ).toMatchSnapshot("result"); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); + }); + + it("should work with 'css-style-sheet' value and keep import and emit errors on `@import` at-rules", async () => { + const compiler = getCompiler("./basic-css-style-sheet-with-import.js", { + exportType: "css-style-sheet", + }); + const stats = await compile(compiler); + + expect(getModuleSource("./basic.css", stats)).toMatchSnapshot("module"); + expect( + getExecutedCode("main.bundle.js", compiler, stats, "css-style-sheet") + ).toMatchSnapshot("result"); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); + }); + + it("should work with 'css-style-sheet' value and urls", async () => { + const compiler = getCompiler("./url/url-css-style-sheet.js", { + exportType: "css-style-sheet", + }); + const stats = await compile(compiler); + + expect(getModuleSource("./url/url.css", stats)).toMatchSnapshot("module"); + expect( + getExecutedCode("main.bundle.js", compiler, stats, "css-style-sheet") + ).toMatchSnapshot("result"); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); + }); + + it("should work with 'css-style-sheet' value and CSS modules and still emit error on '@import' at-rules", async () => { + const compiler = getCompiler( + "./modules/composes/composes-css-style-sheet.js", + { + exportType: "css-style-sheet", + modules: true, + } + ); + const stats = await compile(compiler); + + expect( + getModuleSource("./modules/composes/composes.css", stats) + ).toMatchSnapshot("module"); + expect( + getExecutedCode("main.bundle.js", compiler, stats, "css-style-sheet") + ).toMatchSnapshot("result"); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); + }); + + it("should work with CSS modules and the 'exportOnlyLocals' option", async () => { + const compiler = getCompiler( + "./modules/composes/composes-css-style-sheet-only-locals.js", + { + exportType: "css-style-sheet", + modules: { + exportOnlyLocals: true, + }, + } + ); + const stats = await compile(compiler); + + expect( + getModuleSource("./modules/composes/composes.css", stats) + ).toMatchSnapshot("module"); + expect( + getExecutedCode("main.bundle.js", compiler, stats, "css-style-sheet") + ).toMatchSnapshot("result"); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); + }); + + it("should work with 'css-style-sheet' and 'javascript' values", async () => { + const compiler = getCompiler( + "./basic-javascript-and-css-style-sheet.js", + {}, + { + module: { + rules: [ + { + test: /\.(mycss|css)$/i, + oneOf: [ + { + assert: { type: "css" }, + loader: path.resolve(__dirname, "./../src"), + options: { exportType: "css-style-sheet" }, + }, + { + loader: path.resolve(__dirname, "./../src"), + }, + ], + }, + ], + }, + } + ); + const stats = await compile(compiler); + + expect( + getModuleSource("./basic-css-style-sheet.css", stats) + ).toMatchSnapshot("module"); + expect(getModuleSource("./basic.css?foo=1", stats)).toMatchSnapshot( + "module" + ); + expect( + getExecutedCode("main.bundle.js", compiler, stats, "css-style-sheet") + ).toMatchSnapshot("result"); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); + }); + + it("should work with 'css-style-sheet' value and with 'sass-loader'", async () => { + const compiler = getCompiler( + "./scss/css-style-sheet.js", + {}, + { + module: { + rules: [ + { + test: /\.s[ca]ss$/i, + rules: [ + { + loader: path.resolve(__dirname, "../src"), + options: { + exportType: "css-style-sheet", + }, + }, + { + loader: "sass-loader", + options: { + // eslint-disable-next-line global-require + implementation: require("sass"), + }, + }, + ], + }, + ], + }, + } + ); + const stats = await compile(compiler); + + expect(getModuleSource("./scss/source.scss", stats)).toMatchSnapshot( + "module" + ); + expect( + getExecutedCode("main.bundle.js", compiler, stats, "css-style-sheet") + ).toMatchSnapshot("result"); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); + }); + + it("should throw an error for CSS modules when used 'css-style-sheet' value and named export disabled", async () => { + const compiler = getCompiler("./basic-css-style-sheet.js", { + exportType: "css-style-sheet", + modules: { + namedExport: false, + }, + }); + const stats = await compile(compiler); + + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); + }); +}); diff --git a/test/fixtures/basic-import-assertion-css.js b/test/fixtures/basic-css-style-sheet-with-import.js similarity index 67% rename from test/fixtures/basic-import-assertion-css.js rename to test/fixtures/basic-css-style-sheet-with-import.js index 015af879..99c3a2f6 100644 --- a/test/fixtures/basic-import-assertion-css.js +++ b/test/fixtures/basic-css-style-sheet-with-import.js @@ -1,6 +1,5 @@ import sheet from './basic.css' assert { type: "css" }; -console.log(sheet instanceof CSSStyleSheet); - document.adoptedStyleSheets = [sheet]; +__export__ = sheet; diff --git a/test/fixtures/basic-css-style-sheet.css b/test/fixtures/basic-css-style-sheet.css new file mode 100644 index 00000000..491ad56b --- /dev/null +++ b/test/fixtures/basic-css-style-sheet.css @@ -0,0 +1,135 @@ +@charset "UTF-8"; + +/* Comment */ + +.class { + color: red; + background: url("./url/img.png"); +} + +.class-duplicate-url { + background: url("./url/img.png"); +} + +:root { + --foo: 1px; + --bar: 2px; +} + +.class { a: b c d; } + +.two {} + +.u-m\+ { a: b c d; } + +.class { content: "\F10C" } + +@media only screen and (max-width: 600px) { + body { + background-color: lightblue; + } +} + +.class { + content: "\2193"; + content: "\2193\2193"; + content: "\2193 \2193"; + content: "\2193\2193\2193"; + content: "\2193 \2193 \2193"; +} + +.-top {} +.\-top {} + +#\#test {} + +.grid { + display: flex; + flex-wrap: wrap; +} +.grid.\-top { + align-items: flex-start; +} +.grid.-top { + align-items: flex-start; +} +.grid.\-middle { + align-items: center; +} +.grid.\-bottom { + align-items: flex-end; +} + +.u-m\00002b {} + +.u-m00002b {} + +#u-m\+ {} + +body { + font-family: '微软雅黑'; /* some chinese font name */ +} + +.myStyle { + content: '\e901'; +} + +.myStyle { + content: '\E901'; +} + +.♫ {} + +.\3A \`\( {} /* matches elements with class=":`(" */ +.\31 a2b3c {} /* matches elements with class="1a2b3c" */ +#\#fake-id {} /* matches the element with id="#fake-id" */ +#-a-b-c- {} /* matches the element with id="-a-b-c-" */ +#© {} /* matches the element with id="©" */ + +:root { + --title-align: center; + --sr-only: { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0,0,0,0); + white-space: nowrap; + clip-path: inset(50%); + border: 0; + }; +} + +.test { + content: "\2014\A0"; + content: "\2014 \A0"; + content: "\A0 \2014"; + content: "\A0\2014"; + margin-top: 1px\9; + background-color: #000\9; +} + +.light.on .bulb:before{ + content: '💡'; +} + +.base64 { + background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); +} + +a[href=''] { + color: red; +} + +a[href='' i] { + color: red; +} + +a[href=""] { + color: blue; +} + +a[href="" i] { + color: blue; +} diff --git a/test/fixtures/basic-css-style-sheet.js b/test/fixtures/basic-css-style-sheet.js new file mode 100644 index 00000000..4e8d1c36 --- /dev/null +++ b/test/fixtures/basic-css-style-sheet.js @@ -0,0 +1,5 @@ +import sheet from './basic-css-style-sheet.css' assert { type: "css" }; + +document.adoptedStyleSheets = [sheet]; + +__export__ = sheet; diff --git a/test/fixtures/basic-import-assertion-css-and-standard.js b/test/fixtures/basic-import-assertion-css-and-standard.js deleted file mode 100644 index 1c6a92f4..00000000 --- a/test/fixtures/basic-import-assertion-css-and-standard.js +++ /dev/null @@ -1,11 +0,0 @@ -import sheet from './basic.css' assert { type: "css" }; -import standard from './basic.css?foo=1'; - -console.log(sheet instanceof CSSStyleSheet); -console.log(standard instanceof CSSStyleSheet); - -const standardStyleSheet = new CSSStyleSheet(); - -standardStyleSheet.replace(standard.toString()); - -document.adoptedStyleSheets = [sheet, standardStyleSheet]; diff --git a/test/fixtures/basic-javascript-and-css-style-sheet.js b/test/fixtures/basic-javascript-and-css-style-sheet.js new file mode 100644 index 00000000..85424ce5 --- /dev/null +++ b/test/fixtures/basic-javascript-and-css-style-sheet.js @@ -0,0 +1,10 @@ +import sheet from './basic-css-style-sheet.css' assert { type: "css" }; +import standard from './basic.css?foo=1'; + +const standardStyleSheet = new CSSStyleSheet(); + +standardStyleSheet.replaceSync(standard.toString()); + +document.adoptedStyleSheets = [sheet, standardStyleSheet]; + +__export__ = [sheet, standard]; diff --git a/test/fixtures/modules/composes/composes-css-style-sheet-only-locals.js b/test/fixtures/modules/composes/composes-css-style-sheet-only-locals.js new file mode 100644 index 00000000..56d9d4aa --- /dev/null +++ b/test/fixtures/modules/composes/composes-css-style-sheet-only-locals.js @@ -0,0 +1,4 @@ +import sheet, * as named from './composes.css' assert { type: "css" }; + +__export__ = {}; +__export__.named = named; diff --git a/test/fixtures/modules/composes/composes-css-style-sheet.js b/test/fixtures/modules/composes/composes-css-style-sheet.js new file mode 100644 index 00000000..f7858b76 --- /dev/null +++ b/test/fixtures/modules/composes/composes-css-style-sheet.js @@ -0,0 +1,6 @@ +import sheet, * as named from './composes.css' assert { type: "css" }; + +document.adoptedStyleSheets = [sheet]; + +__export__ = sheet; +__export__.named = named; diff --git a/test/fixtures/modules/composes/composes-import-assertion-css.js b/test/fixtures/modules/composes/composes-import-assertion-css.js deleted file mode 100644 index 10223853..00000000 --- a/test/fixtures/modules/composes/composes-import-assertion-css.js +++ /dev/null @@ -1,8 +0,0 @@ -import sheet, {foo, simple} from '././composes.css' assert { type: "css" }; - -console.log(sheet instanceof CSSStyleSheet); -console.log(foo); -console.log(simple); - -document.adoptedStyleSheets = [sheet]; - diff --git a/test/fixtures/scss/import-assertion-css.js b/test/fixtures/scss/css-style-sheet.js similarity index 68% rename from test/fixtures/scss/import-assertion-css.js rename to test/fixtures/scss/css-style-sheet.js index c89fcbe4..91e7569d 100644 --- a/test/fixtures/scss/import-assertion-css.js +++ b/test/fixtures/scss/css-style-sheet.js @@ -1,6 +1,5 @@ import sheet from './source.scss' assert { type: "css" }; -console.log(sheet instanceof CSSStyleSheet); - document.adoptedStyleSheets = [sheet]; +__export__ = sheet; diff --git a/test/fixtures/url/url-import-assertion-css.js b/test/fixtures/url/url-css-style-sheet.js similarity index 67% rename from test/fixtures/url/url-import-assertion-css.js rename to test/fixtures/url/url-css-style-sheet.js index 0127ea2b..074d8168 100644 --- a/test/fixtures/url/url-import-assertion-css.js +++ b/test/fixtures/url/url-css-style-sheet.js @@ -1,6 +1,5 @@ import sheet from './url.css' assert { type: "css" }; -console.log(sheet instanceof CSSStyleSheet); - document.adoptedStyleSheets = [sheet]; +__export__ = sheet; diff --git a/test/helpers/execute.js b/test/helpers/execute.js index 6204844d..877d51c5 100644 --- a/test/helpers/execute.js +++ b/test/helpers/execute.js @@ -13,7 +13,7 @@ function replaceAbsolutePath(data) { : data; } -export default (code) => { +export default (code, type) => { const resource = "test.js"; const module = new Module(resource, parentModule); // eslint-disable-next-line no-underscore-dangle @@ -22,9 +22,24 @@ export default (code) => { ); module.filename = resource; + let newCode = code; + + newCode = ` +global.btoa = (string) => { return Buffer.from(string).toString('base64') }; +${newCode} +`; + + if (type === "css-style-sheet") { + newCode = ` +global.CSSStyleSheet = class CSSStyleSheet { replaceSync(text) { this.text = text; } }; +global.document = { adoptedStyleSheets: [] }; +${newCode} +`; + } + // eslint-disable-next-line no-underscore-dangle module._compile( - `let __export__;${code};\nmodule.exports = __export__;`, + `let __export__;${newCode};\nmodule.exports = __export__;`, resource ); diff --git a/test/helpers/getExecutedCode.js b/test/helpers/getExecutedCode.js index be31f8e7..186e8cbd 100644 --- a/test/helpers/getExecutedCode.js +++ b/test/helpers/getExecutedCode.js @@ -1,7 +1,7 @@ import { execute, readAsset } from "./index"; -export default (asset, compiler, stats) => { - let executed = execute(readAsset(asset, compiler, stats)); +export default (asset, compiler, stats, type) => { + let executed = execute(readAsset(asset, compiler, stats), type); if (Array.isArray(executed)) { executed = executed.map((module) => { diff --git a/test/validate-options.test.js b/test/validate-options.test.js index fcfa84c7..55614473 100644 --- a/test/validate-options.test.js +++ b/test/validate-options.test.js @@ -87,9 +87,9 @@ describe("validate options", () => { success: [true, false], failure: ["true"], }, - exportStyleSheet: { - success: [true, false], - failure: ["true"], + exportType: { + success: ["javascript", "css-style-sheet"], + failure: ["true", false], }, unknown: { success: [], From 081e93ccc3c02002132f3c90a7c2c34f0eb04263 Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Sat, 18 Sep 2021 19:23:28 +0300 Subject: [PATCH 11/20] test: more --- src/utils.js | 22 ++++++++---- test/__snapshots__/exportType.test.js.snap | 34 ++++++++++++++++--- .../__snapshots__/modules-option.test.js.snap | 2 +- test/exportType.test.js | 28 ++++++++++++++- 4 files changed, 72 insertions(+), 14 deletions(-) diff --git a/src/utils.js b/src/utils.js index 8f47cdd6..8d69eaf7 100644 --- a/src/utils.js +++ b/src/utils.js @@ -565,12 +565,6 @@ function getModulesOptions(rawOptions, exportType, loaderContext) { ...rawModulesOptions, }; - if (isExportCSSStyleSheet && modulesOptions.namedExport === false) { - throw new Error( - "When using the 'css-steel-sheet' export type, you must enable the 'modules.namedExport'" - ); - } - let exportLocalsConventionType; if (typeof modulesOptions.exportLocalsConvention === "string") { @@ -631,10 +625,24 @@ function getModulesOptions(rawOptions, exportType, loaderContext) { modulesOptions.mode = modulesOptions.mode(loaderContext.resourcePath); } + if (isExportCSSStyleSheet) { + if (rawOptions.esModule === false) { + throw new Error( + "The 'exportType' option with the 'css-style-sheet' value requires the 'esModules' option to be enabled" + ); + } + + if (modulesOptions.namedExport === false) { + throw new Error( + "The 'exportType' option with the 'css-style-sheet' value requires the 'modules.namedExport' option to be enabled" + ); + } + } + if (modulesOptions.namedExport === true) { if (rawOptions.esModule === false) { throw new Error( - 'The "modules.namedExport" option requires the "esModules" option to be enabled' + "The 'modules.namedExport' option requires the 'esModules' option to be enabled" ); } diff --git a/test/__snapshots__/exportType.test.js.snap b/test/__snapshots__/exportType.test.js.snap index ebd57558..fb8c40b0 100644 --- a/test/__snapshots__/exportType.test.js.snap +++ b/test/__snapshots__/exportType.test.js.snap @@ -1,16 +1,40 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`'exportType' option should throw an error for CSS modules when used 'css-style-sheet' value and named export disabled: errors 1`] = ` +exports[`'exportType' option should throw an error with 'css-style-sheet' value for CSS modules when \`esModule\` disabled, but 'modules.namedExport' enabled: errors 1`] = ` Array [ "ModuleBuildError: Module build failed (from \`replaced original path\`): -Error: When using the 'css-steel-sheet' export type, you must enable the 'modules.namedExport' - at getModulesOptions (/src/utils.js:569:11) - at normalizeOptions (/src/utils.js:660:26) +Error: The 'exportType' option with the 'css-style-sheet' value requires the 'esModules' option to be enabled + at getModulesOptions (/src/utils.js:630:13) + at normalizeOptions (/src/utils.js:668:26) at Object.loader (/src/index.js:40:15)", ] `; -exports[`'exportType' option should throw an error for CSS modules when used 'css-style-sheet' value and named export disabled: warnings 1`] = `Array []`; +exports[`'exportType' option should throw an error with 'css-style-sheet' value for CSS modules when \`esModule\` disabled, but 'modules.namedExport' enabled: warnings 1`] = `Array []`; + +exports[`'exportType' option should throw an error with 'css-style-sheet' value for CSS modules when \`esModule\` disabled: errors 1`] = ` +Array [ + "ModuleBuildError: Module build failed (from \`replaced original path\`): +Error: The 'exportType' option with the 'css-style-sheet' value requires the 'esModules' option to be enabled + at getModulesOptions (/src/utils.js:630:13) + at normalizeOptions (/src/utils.js:668:26) + at Object.loader (/src/index.js:40:15)", +] +`; + +exports[`'exportType' option should throw an error with 'css-style-sheet' value for CSS modules when \`esModule\` disabled: warnings 1`] = `Array []`; + +exports[`'exportType' option should throw an error with 'css-style-sheet' value for CSS modules when named export disabled: errors 1`] = ` +Array [ + "ModuleBuildError: Module build failed (from \`replaced original path\`): +Error: The 'exportType' option with the 'css-style-sheet' value requires the 'modules.namedExport' option to be enabled + at getModulesOptions (/src/utils.js:636:13) + at normalizeOptions (/src/utils.js:668:26) + at Object.loader (/src/index.js:40:15)", +] +`; + +exports[`'exportType' option should throw an error with 'css-style-sheet' value for CSS modules when named export disabled: warnings 1`] = `Array []`; exports[`'exportType' option should work and export 'javascript' by default: errors 1`] = `Array []`; diff --git a/test/__snapshots__/modules-option.test.js.snap b/test/__snapshots__/modules-option.test.js.snap index ee82ec65..4af3965b 100644 --- a/test/__snapshots__/modules-option.test.js.snap +++ b/test/__snapshots__/modules-option.test.js.snap @@ -1767,7 +1767,7 @@ exports[`"modules" option should throw an error when the "namedExport" is enable exports[`"modules" option should throw an error when the "namedExport" option is "true", but the "esModule" is "false": errors 1`] = ` Array [ "ModuleBuildError: Module build failed (from \`replaced original path\`): -Error: The \\"modules.namedExport\\" option requires the \\"esModules\\" option to be enabled", +Error: The 'modules.namedExport' option requires the 'esModules' option to be enabled", ] `; diff --git a/test/exportType.test.js b/test/exportType.test.js index 83df16d7..3748359d 100644 --- a/test/exportType.test.js +++ b/test/exportType.test.js @@ -254,7 +254,7 @@ describe("'exportType' option", () => { expect(getErrors(stats)).toMatchSnapshot("errors"); }); - it("should throw an error for CSS modules when used 'css-style-sheet' value and named export disabled", async () => { + it("should throw an error with 'css-style-sheet' value for CSS modules when named export disabled", async () => { const compiler = getCompiler("./basic-css-style-sheet.js", { exportType: "css-style-sheet", modules: { @@ -266,4 +266,30 @@ describe("'exportType' option", () => { expect(getWarnings(stats)).toMatchSnapshot("warnings"); expect(getErrors(stats)).toMatchSnapshot("errors"); }); + + it("should throw an error with 'css-style-sheet' value for CSS modules when `esModule` disabled", async () => { + const compiler = getCompiler("./basic-css-style-sheet.js", { + exportType: "css-style-sheet", + esModule: false, + modules: true, + }); + const stats = await compile(compiler); + + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); + }); + + it("should throw an error with 'css-style-sheet' value for CSS modules when `esModule` disabled, but 'modules.namedExport' enabled", async () => { + const compiler = getCompiler("./basic-css-style-sheet.js", { + exportType: "css-style-sheet", + esModule: false, + modules: { + namedExport: true, + }, + }); + const stats = await compile(compiler); + + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); + }); }); From 739a5d7d47e00a7422134675c1efdace4f2da5be Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Sat, 18 Sep 2021 19:36:00 +0300 Subject: [PATCH 12/20] test: normalize --- test/helpers/getExecutedCode.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/helpers/getExecutedCode.js b/test/helpers/getExecutedCode.js index 186e8cbd..3bc807dd 100644 --- a/test/helpers/getExecutedCode.js +++ b/test/helpers/getExecutedCode.js @@ -16,5 +16,9 @@ export default (asset, compiler, stats, type) => { }); } + if (executed && typeof executed.text !== "undefined") { + executed.text = executed.text.replace(/file:\/\/\/[a-z]:/i, "file:///"); + } + return executed; }; From cf467f178014f93fc6d7843558dd9f26dc6c650e Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Sat, 18 Sep 2021 19:51:26 +0300 Subject: [PATCH 13/20] test: normalize --- test/__snapshots__/exportType.test.js.snap | 15 +++------------ test/exportType.test.js | 6 +++--- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/test/__snapshots__/exportType.test.js.snap b/test/__snapshots__/exportType.test.js.snap index fb8c40b0..c5457917 100644 --- a/test/__snapshots__/exportType.test.js.snap +++ b/test/__snapshots__/exportType.test.js.snap @@ -3,10 +3,7 @@ exports[`'exportType' option should throw an error with 'css-style-sheet' value for CSS modules when \`esModule\` disabled, but 'modules.namedExport' enabled: errors 1`] = ` Array [ "ModuleBuildError: Module build failed (from \`replaced original path\`): -Error: The 'exportType' option with the 'css-style-sheet' value requires the 'esModules' option to be enabled - at getModulesOptions (/src/utils.js:630:13) - at normalizeOptions (/src/utils.js:668:26) - at Object.loader (/src/index.js:40:15)", +Error: The 'exportType' option with the 'css-style-sheet' value requires the 'esModules' option to be enabled", ] `; @@ -15,10 +12,7 @@ exports[`'exportType' option should throw an error with 'css-style-sheet' value exports[`'exportType' option should throw an error with 'css-style-sheet' value for CSS modules when \`esModule\` disabled: errors 1`] = ` Array [ "ModuleBuildError: Module build failed (from \`replaced original path\`): -Error: The 'exportType' option with the 'css-style-sheet' value requires the 'esModules' option to be enabled - at getModulesOptions (/src/utils.js:630:13) - at normalizeOptions (/src/utils.js:668:26) - at Object.loader (/src/index.js:40:15)", +Error: The 'exportType' option with the 'css-style-sheet' value requires the 'esModules' option to be enabled", ] `; @@ -27,10 +21,7 @@ exports[`'exportType' option should throw an error with 'css-style-sheet' value exports[`'exportType' option should throw an error with 'css-style-sheet' value for CSS modules when named export disabled: errors 1`] = ` Array [ "ModuleBuildError: Module build failed (from \`replaced original path\`): -Error: The 'exportType' option with the 'css-style-sheet' value requires the 'modules.namedExport' option to be enabled - at getModulesOptions (/src/utils.js:636:13) - at normalizeOptions (/src/utils.js:668:26) - at Object.loader (/src/index.js:40:15)", +Error: The 'exportType' option with the 'css-style-sheet' value requires the 'modules.namedExport' option to be enabled", ] `; diff --git a/test/exportType.test.js b/test/exportType.test.js index 3748359d..2dd078b9 100644 --- a/test/exportType.test.js +++ b/test/exportType.test.js @@ -264,7 +264,7 @@ describe("'exportType' option", () => { const stats = await compile(compiler); expect(getWarnings(stats)).toMatchSnapshot("warnings"); - expect(getErrors(stats)).toMatchSnapshot("errors"); + expect(getErrors(stats, true)).toMatchSnapshot("errors"); }); it("should throw an error with 'css-style-sheet' value for CSS modules when `esModule` disabled", async () => { @@ -276,7 +276,7 @@ describe("'exportType' option", () => { const stats = await compile(compiler); expect(getWarnings(stats)).toMatchSnapshot("warnings"); - expect(getErrors(stats)).toMatchSnapshot("errors"); + expect(getErrors(stats, true)).toMatchSnapshot("errors"); }); it("should throw an error with 'css-style-sheet' value for CSS modules when `esModule` disabled, but 'modules.namedExport' enabled", async () => { @@ -290,6 +290,6 @@ describe("'exportType' option", () => { const stats = await compile(compiler); expect(getWarnings(stats)).toMatchSnapshot("warnings"); - expect(getErrors(stats)).toMatchSnapshot("errors"); + expect(getErrors(stats, true)).toMatchSnapshot("errors"); }); }); From b576e376db067fd1fbd9637a2ded9633d8bb4587 Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Sat, 18 Sep 2021 19:57:47 +0300 Subject: [PATCH 14/20] test: debug --- test/helpers/getExecutedCode.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/helpers/getExecutedCode.js b/test/helpers/getExecutedCode.js index 3bc807dd..6847ea5e 100644 --- a/test/helpers/getExecutedCode.js +++ b/test/helpers/getExecutedCode.js @@ -17,6 +17,8 @@ export default (asset, compiler, stats, type) => { } if (executed && typeof executed.text !== "undefined") { + console.log(executed.text.match(/file:\/\/\/[a-z]:/i)); + executed.text = executed.text.replace(/file:\/\/\/[a-z]:/i, "file:///"); } From ed52d5d428df00a2a64b8c1947bddb8e5c1cc607 Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Sat, 18 Sep 2021 20:44:50 +0300 Subject: [PATCH 15/20] docs: added --- README.md | 187 ++++++++++++++++-- src/options.json | 2 +- .../validate-options.test.js.snap | 4 +- test/helpers/getExecutedCode.js | 4 +- 4 files changed, 179 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 1d904b27..91013996 100644 --- a/README.md +++ b/README.md @@ -87,14 +87,15 @@ If, for one reason or another, you need to extract CSS as a file (i.e. do not st ## Options -| Name | Type | Default | Description | -| :-----------------------------------: | :-------------------------: | :----------------: | :----------------------------------------------------------------------------------------------------------------------- | -| **[`url`](#url)** | `{Boolean\|Object}` | `true` | Allows to enables/disables `url()`/`image-set()` functions handling | -| **[`import`](#import)** | `{Boolean\|Object}` | `true` | Allows to enables/disables `@import` at-rules handling | -| **[`modules`](#modules)** | `{Boolean\|String\|Object}` | `{auto: true}` | Allows to enables/disables or setup CSS Modules options | -| **[`sourceMap`](#sourcemap)** | `{Boolean}` | `compiler.devtool` | Enables/Disables generation of source maps | -| **[`importLoaders`](#importloaders)** | `{Number}` | `0` | Allows enables/disables or setups number of loaders applied before CSS loader for `@import`/CSS Modules and ICSS imports | -| **[`esModule`](#esmodule)** | `{Boolean}` | `true` | Use ES modules syntax | +| Name | Type | Default | Description | +| :-----------------------------------: | :-----------------------------------: | :----------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **[`url`](#url)** | `{Boolean\|Object}` | `true` | Allows to enables/disables `url()`/`image-set()` functions handling | +| **[`import`](#import)** | `{Boolean\|Object}` | `true` | Allows to enables/disables `@import` at-rules handling | +| **[`modules`](#modules)** | `{Boolean\|String\|Object}` | `{auto: true}` | Allows to enables/disables or setup CSS Modules options | +| **[`sourceMap`](#sourcemap)** | `{Boolean}` | `compiler.devtool` | Enables/Disables generation of source maps | +| **[`importLoaders`](#importloaders)** | `{Number}` | `0` | Allows enables/disables or setups number of loaders applied before CSS loader for `@import`/CSS Modules and ICSS imports | +| **[`esModule`](#esmodule)** | `{Boolean}` | `true` | Use ES modules syntax | +| **[`exportType`](#exporttype)** | `{'javascript' \| 'css-style-sheet'}` | `javascript` | Allows exporting styles as javascript array with modules or [constructable stylesheet](https://developers.google.com/web/updates/2019/02/constructable-stylesheets) (i.e. [`CSSStyleSheet`](https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet)) | ### `url` @@ -1269,6 +1270,168 @@ module.exports = { }; ``` +### `exportType` + +Type: `'javascript' | 'css-style-sheet'` +Default: `javascript` + +Allows exporting styles as javascript array with modules or [constructable stylesheet](https://developers.google.com/web/updates/2019/02/constructable-stylesheets) (i.e. [`CSSStyleSheet`](https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet)). +Default value is `javascript`, i.e. loader exports array of modules with specific API which is used in `style-loader` or other. + +**webpack.config.js** + +```js +module.exports = { + module: { + rules: [ + { + assert: { type: "css" }, + loader: "css-loader", + options: { + exportType: "css-style-sheet", + }, + }, + ], + }, +}; +``` + +**src/index.js** + +```js +import sheet from "./styles.css" assert { type: "css" }; + +document.adoptedStyleSheets = [sheet]; +shadowRoot.adoptedStyleSheets = [sheet]; +``` + +#### `javascript` + +The default export is array of modules with specific API which is used in `style-loader` or other. + +**webpack.config.js** + +```js +module.exports = { + module: { + rules: [ + { + test: /\.(sa|sc|c)ss$/i, + use: ["style-loader", "css-loader", "postcss-loader", "sass-loader"], + }, + ], + }, +}; +``` + +**src/index.js** + +```js +// `style-loader` applies styles to DOM +import "./styles.css"; +``` + +#### `css-style-sheet` + +> ⚠ `@import` rules not yet allowed, more [information](https://web.dev/css-module-scripts/#@import-rules-not-yet-allowed) +> ⚠ You don't need [`style-loader`](https://github.com/webpack-contrib/style-loader) anymore, please remove it. +> ⚠ The `esModules` option should be enabled if you want to use it with [`CSS modules`](https://github.com/webpack-contrib/css-loader#modules), by default for locals will be used [named export](https://github.com/webpack-contrib/css-loader#namedexport). +> ⚠ Source maps are not currently supported in `Chrome` due [bug](https://bugs.chromium.org/p/chromium/issues/detail?id=1174094&q=CSSStyleSheet%20source%20maps&can=2) + +The default export is a [constructable stylesheet](https://developers.google.com/web/updates/2019/02/constructable-stylesheets) (i.e. [`CSSStyleSheet`](https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet)). + +Useful for [custom elements](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements) and shadow DOM. + +More information: + +- [Using CSS Module Scripts to import stylesheets](https://web.dev/css-module-scripts/) +- [Constructable Stylesheets: seamless reusable styles](https://developers.google.com/web/updates/2019/02/constructable-stylesheets) + +**webpack.config.js** + +```js +module.exports = { + module: { + rules: [ + { + assert: { type: "css" }, + loader: "css-loader", + options: { + exportType: "css-style-sheet", + }, + }, + + // For Sass/SCSS: + // + // { + // assert: { type: "css" }, + // rules: [ + // { + // loader: "css-loader", + // options: { + // exportType: "css-style-sheet", + // // Other options + // }, + // }, + // { + // loader: "sass-loader", + // options: { + // // Other options + // }, + // }, + // ], + // }, + ], + }, +}; +``` + +**src/index.js** + +```js +// Example for Sass/SCSS: +// import sheet from "./styles.scss" assert { type: "css" }; +import sheet from "./styles.css" assert { type: "css" }; + +document.adoptedStyleSheets = [sheet]; +shadowRoot.adoptedStyleSheets = [sheet]; +``` + +For migration purposes, you can use the following configuration: + +```js +module.exports = { + module: { + rules: [ + { + test: /\.css$/i, + oneOf: [ + { + assert: { type: "css" }, + loader: "css-loader", + options: { + exportType: "css-style-sheet", + // Other options + }, + }, + { + use: [ + "style-loader", + { + loader: "css-loader", + options: { + // Other options + }, + }, + ], + }, + ], + }, + ], + }, +}; +``` + ## Examples ### Recommend @@ -1289,7 +1452,7 @@ module.exports = { module: { rules: [ { - test: /\.(sa|sc|c)ss$/, + test: /\.(sa|sc|c)ss$/i, use: [ devMode ? "style-loader" : MiniCssExtractPlugin.loader, "css-loader", @@ -1512,8 +1675,8 @@ module.exports = { // -------- // SCSS ALL EXCEPT MODULES { - test: /\.scss$/, - exclude: /\.module\.scss$/, + test: /\.scss$/i, + exclude: /\.module\.scss$/i, use: [ { loader: "style-loader", @@ -1535,7 +1698,7 @@ module.exports = { // -------- // SCSS MODULES { - test: /\.module\.scss$/, + test: /\.module\.scss$/i, use: [ { loader: "style-loader", diff --git a/src/options.json b/src/options.json index ddc2f5c6..b20501cc 100644 --- a/src/options.json +++ b/src/options.json @@ -195,7 +195,7 @@ "type": "boolean" }, "exportType": { - "description": "Allows to exports styles as javascript or constructable stylesheets ('CSSStyleSheet').", + "description": "Allows exporting styles as javascript array with modules or constructable stylesheet (i.e. `CSSStyleSheet`).", "link": "https://github.com/webpack-contrib/css-loader#exporttype", "enum": ["javascript", "css-style-sheet"] } diff --git a/test/__snapshots__/validate-options.test.js.snap b/test/__snapshots__/validate-options.test.js.snap index 2f3884d1..b63a3850 100644 --- a/test/__snapshots__/validate-options.test.js.snap +++ b/test/__snapshots__/validate-options.test.js.snap @@ -11,7 +11,7 @@ exports[`validate options should throw an error on the "exportType" option with "Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. - options.exportType should be one of these: \\"javascript\\" | \\"css-style-sheet\\" - -> Allows to exports styles as javascript or constructable stylesheets ('CSSStyleSheet'). + -> Allows exporting styles as javascript array with modules or constructable stylesheet (i.e. \`CSSStyleSheet\`). -> Read more at https://github.com/webpack-contrib/css-loader#exporttype" `; @@ -19,7 +19,7 @@ exports[`validate options should throw an error on the "exportType" option with "Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. - options.exportType should be one of these: \\"javascript\\" | \\"css-style-sheet\\" - -> Allows to exports styles as javascript or constructable stylesheets ('CSSStyleSheet'). + -> Allows exporting styles as javascript array with modules or constructable stylesheet (i.e. \`CSSStyleSheet\`). -> Read more at https://github.com/webpack-contrib/css-loader#exporttype" `; diff --git a/test/helpers/getExecutedCode.js b/test/helpers/getExecutedCode.js index 6847ea5e..a797a790 100644 --- a/test/helpers/getExecutedCode.js +++ b/test/helpers/getExecutedCode.js @@ -17,9 +17,7 @@ export default (asset, compiler, stats, type) => { } if (executed && typeof executed.text !== "undefined") { - console.log(executed.text.match(/file:\/\/\/[a-z]:/i)); - - executed.text = executed.text.replace(/file:\/\/\/[a-z]:/i, "file:///"); + executed.text = executed.text.replace(/file:\/\/\/[a-z]:\//i, "file:///"); } return executed; From 7d92a3619fccbd241efe9b07d526ee63662c883f Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Sat, 18 Sep 2021 20:50:26 +0300 Subject: [PATCH 16/20] refactor: rename `javascript` to `array` --- README.md | 28 +- src/options.json | 4 +- src/utils.js | 2 +- test/__snapshots__/exportType.test.js.snap | 360 +++++++++--------- .../validate-options.test.js.snap | 8 +- test/exportType.test.js | 6 +- test/helpers/getExecutedCode.js | 2 +- test/validate-options.test.js | 2 +- 8 files changed, 206 insertions(+), 206 deletions(-) diff --git a/README.md b/README.md index 91013996..273e1c0d 100644 --- a/README.md +++ b/README.md @@ -87,15 +87,15 @@ If, for one reason or another, you need to extract CSS as a file (i.e. do not st ## Options -| Name | Type | Default | Description | -| :-----------------------------------: | :-----------------------------------: | :----------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **[`url`](#url)** | `{Boolean\|Object}` | `true` | Allows to enables/disables `url()`/`image-set()` functions handling | -| **[`import`](#import)** | `{Boolean\|Object}` | `true` | Allows to enables/disables `@import` at-rules handling | -| **[`modules`](#modules)** | `{Boolean\|String\|Object}` | `{auto: true}` | Allows to enables/disables or setup CSS Modules options | -| **[`sourceMap`](#sourcemap)** | `{Boolean}` | `compiler.devtool` | Enables/Disables generation of source maps | -| **[`importLoaders`](#importloaders)** | `{Number}` | `0` | Allows enables/disables or setups number of loaders applied before CSS loader for `@import`/CSS Modules and ICSS imports | -| **[`esModule`](#esmodule)** | `{Boolean}` | `true` | Use ES modules syntax | -| **[`exportType`](#exporttype)** | `{'javascript' \| 'css-style-sheet'}` | `javascript` | Allows exporting styles as javascript array with modules or [constructable stylesheet](https://developers.google.com/web/updates/2019/02/constructable-stylesheets) (i.e. [`CSSStyleSheet`](https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet)) | +| Name | Type | Default | Description | +| :-----------------------------------: | :------------------------------: | :----------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| **[`url`](#url)** | `{Boolean\|Object}` | `true` | Allows to enables/disables `url()`/`image-set()` functions handling | +| **[`import`](#import)** | `{Boolean\|Object}` | `true` | Allows to enables/disables `@import` at-rules handling | +| **[`modules`](#modules)** | `{Boolean\|String\|Object}` | `{auto: true}` | Allows to enables/disables or setup CSS Modules options | +| **[`sourceMap`](#sourcemap)** | `{Boolean}` | `compiler.devtool` | Enables/Disables generation of source maps | +| **[`importLoaders`](#importloaders)** | `{Number}` | `0` | Allows enables/disables or setups number of loaders applied before CSS loader for `@import`/CSS Modules and ICSS imports | +| **[`esModule`](#esmodule)** | `{Boolean}` | `true` | Use ES modules syntax | +| **[`exportType`](#exporttype)** | `{'array' \| 'css-style-sheet'}` | `array` | Allows exporting styles as array with modules or [constructable stylesheet](https://developers.google.com/web/updates/2019/02/constructable-stylesheets) (i.e. [`CSSStyleSheet`](https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet)) | ### `url` @@ -1272,11 +1272,11 @@ module.exports = { ### `exportType` -Type: `'javascript' | 'css-style-sheet'` -Default: `javascript` +Type: `'array' | 'css-style-sheet'` +Default: `array` -Allows exporting styles as javascript array with modules or [constructable stylesheet](https://developers.google.com/web/updates/2019/02/constructable-stylesheets) (i.e. [`CSSStyleSheet`](https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet)). -Default value is `javascript`, i.e. loader exports array of modules with specific API which is used in `style-loader` or other. +Allows exporting styles as array with modules or [constructable stylesheet](https://developers.google.com/web/updates/2019/02/constructable-stylesheets) (i.e. [`CSSStyleSheet`](https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet)). +Default value is `array`, i.e. loader exports array of modules with specific API which is used in `style-loader` or other. **webpack.config.js** @@ -1305,7 +1305,7 @@ document.adoptedStyleSheets = [sheet]; shadowRoot.adoptedStyleSheets = [sheet]; ``` -#### `javascript` +#### `array` The default export is array of modules with specific API which is used in `style-loader` or other. diff --git a/src/options.json b/src/options.json index b20501cc..e57559f9 100644 --- a/src/options.json +++ b/src/options.json @@ -195,9 +195,9 @@ "type": "boolean" }, "exportType": { - "description": "Allows exporting styles as javascript array with modules or constructable stylesheet (i.e. `CSSStyleSheet`).", + "description": "Allows exporting styles as array with modules or constructable stylesheet (i.e. `CSSStyleSheet`).", "link": "https://github.com/webpack-contrib/css-loader#exporttype", - "enum": ["javascript", "css-style-sheet"] + "enum": ["array", "css-style-sheet"] } }, "type": "object" diff --git a/src/utils.js b/src/utils.js index 8d69eaf7..befe6399 100644 --- a/src/utils.js +++ b/src/utils.js @@ -663,7 +663,7 @@ function getModulesOptions(rawOptions, exportType, loaderContext) { function normalizeOptions(rawOptions, loaderContext) { const exportType = typeof rawOptions.exportType === "undefined" - ? "javascript" + ? "array" : rawOptions.exportType; const modulesOptions = getModulesOptions( rawOptions, diff --git a/test/__snapshots__/exportType.test.js.snap b/test/__snapshots__/exportType.test.js.snap index c5457917..7830384b 100644 --- a/test/__snapshots__/exportType.test.js.snap +++ b/test/__snapshots__/exportType.test.js.snap @@ -27,9 +27,9 @@ Error: The 'exportType' option with the 'css-style-sheet' value requires the 'mo exports[`'exportType' option should throw an error with 'css-style-sheet' value for CSS modules when named export disabled: warnings 1`] = `Array []`; -exports[`'exportType' option should work and export 'javascript' by default: errors 1`] = `Array []`; +exports[`'exportType' option should work and export 'array' by default: errors 1`] = `Array []`; -exports[`'exportType' option should work and export 'javascript' by default: module 1`] = ` +exports[`'exportType' option should work and export 'array' by default: module 1`] = ` "// Imports import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../src/runtime/noSourceMaps.js\\"; import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; @@ -48,7 +48,7 @@ export default ___CSS_LOADER_EXPORT___; " `; -exports[`'exportType' option should work and export 'javascript' by default: result 1`] = ` +exports[`'exportType' option should work and export 'array' by default: result 1`] = ` Array [ Array [ "../../src/index.js??ruleSet[1].rules[0].use[0]!./imported.css", @@ -201,7 +201,183 @@ a[href=\\"\\" i] { ] `; -exports[`'exportType' option should work and export 'javascript' by default: warnings 1`] = `Array []`; +exports[`'exportType' option should work and export 'array' by default: warnings 1`] = `Array []`; + +exports[`'exportType' option should work with 'array' value: errors 1`] = `Array []`; + +exports[`'exportType' option should work with 'array' value: module 1`] = ` +"// Imports +import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../src/runtime/noSourceMaps.js\\"; +import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; +import ___CSS_LOADER_AT_RULE_IMPORT_0___ from \\"-!../../src/index.js??ruleSet[1].rules[0].use[0]!./imported.css\\"; +import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +// Exports +export default ___CSS_LOADER_EXPORT___; +" +`; + +exports[`'exportType' option should work with 'array' value: result 1`] = ` +Array [ + Array [ + "../../src/index.js??ruleSet[1].rules[0].use[0]!./imported.css", + ".foo { + color: red; +} +", + "", + ], + Array [ + "./basic.css", + "@charset \\"UTF-8\\"; + +/* Comment */ + +.class { + color: red; + background: url(replaced_file_protocol_/webpack/public/path/img.png); +} + +.class-duplicate-url { + background: url(replaced_file_protocol_/webpack/public/path/img.png); +} + +:root { + --foo: 1px; + --bar: 2px; +} + +.class { a: b c d; } + +.two {} + +.u-m\\\\+ { a: b c d; } + +.class { content: \\"\\\\F10C\\" } + +@media only screen and (max-width: 600px) { + body { + background-color: lightblue; + } +} + +.class { + content: \\"\\\\2193\\"; + content: \\"\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193\\"; + content: \\"\\\\2193\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193 \\\\2193\\"; +} + +.-top {} +.\\\\-top {} + +#\\\\#test {} + +.grid { + display: flex; + flex-wrap: wrap; +} +.grid.\\\\-top { + align-items: flex-start; +} +.grid.-top { + align-items: flex-start; +} +.grid.\\\\-middle { + align-items: center; +} +.grid.\\\\-bottom { + align-items: flex-end; +} + +.u-m\\\\00002b {} + +.u-m00002b {} + +#u-m\\\\+ {} + +body { + font-family: '微软雅黑'; /* some chinese font name */ +} + +.myStyle { + content: '\\\\e901'; +} + +.myStyle { + content: '\\\\E901'; +} + +.♫ {} + +.\\\\3A \\\\\`\\\\( {} /* matches elements with class=\\":\`(\\" */ +.\\\\31 a2b3c {} /* matches elements with class=\\"1a2b3c\\" */ +#\\\\#fake-id {} /* matches the element with id=\\"#fake-id\\" */ +#-a-b-c- {} /* matches the element with id=\\"-a-b-c-\\" */ +#© {} /* matches the element with id=\\"©\\" */ + +:root { + --title-align: center; + --sr-only: { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0,0,0,0); + white-space: nowrap; + clip-path: inset(50%); + border: 0; + }; +} + +.test { + content: \\"\\\\2014\\\\A0\\"; + content: \\"\\\\2014 \\\\A0\\"; + content: \\"\\\\A0 \\\\2014\\"; + content: \\"\\\\A0\\\\2014\\"; + margin-top: 1px\\\\9; + background-color: #000\\\\9; +} + +.light.on .bulb:before{ + content: '💡'; +} + +.base64 { + background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); +} + +a[href=''] { + color: red; +} + +a[href='' i] { + color: red; +} + +a[href=\\"\\"] { + color: blue; +} + +a[href=\\"\\" i] { + color: blue; +} +", + "", + ], +] +`; + +exports[`'exportType' option should work with 'array' value: warnings 1`] = `Array []`; exports[`'exportType' option should work with 'css-style-sheet' and 'javascript' values: errors 1`] = `Array []`; @@ -2277,182 +2453,6 @@ a[href=\\"\\" i] { exports[`'exportType' option should work with 'css-style-sheet' value: warnings 1`] = `Array []`; -exports[`'exportType' option should work with 'javascript' value: errors 1`] = `Array []`; - -exports[`'exportType' option should work with 'javascript' value: module 1`] = ` -"// Imports -import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../src/runtime/noSourceMaps.js\\"; -import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; -import ___CSS_LOADER_AT_RULE_IMPORT_0___ from \\"-!../../src/index.js??ruleSet[1].rules[0].use[0]!./imported.css\\"; -import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; -var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); -var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); -___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); -var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); -// Module -___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); -// Exports -export default ___CSS_LOADER_EXPORT___; -" -`; - -exports[`'exportType' option should work with 'javascript' value: result 1`] = ` -Array [ - Array [ - "../../src/index.js??ruleSet[1].rules[0].use[0]!./imported.css", - ".foo { - color: red; -} -", - "", - ], - Array [ - "./basic.css", - "@charset \\"UTF-8\\"; - -/* Comment */ - -.class { - color: red; - background: url(replaced_file_protocol_/webpack/public/path/img.png); -} - -.class-duplicate-url { - background: url(replaced_file_protocol_/webpack/public/path/img.png); -} - -:root { - --foo: 1px; - --bar: 2px; -} - -.class { a: b c d; } - -.two {} - -.u-m\\\\+ { a: b c d; } - -.class { content: \\"\\\\F10C\\" } - -@media only screen and (max-width: 600px) { - body { - background-color: lightblue; - } -} - -.class { - content: \\"\\\\2193\\"; - content: \\"\\\\2193\\\\2193\\"; - content: \\"\\\\2193 \\\\2193\\"; - content: \\"\\\\2193\\\\2193\\\\2193\\"; - content: \\"\\\\2193 \\\\2193 \\\\2193\\"; -} - -.-top {} -.\\\\-top {} - -#\\\\#test {} - -.grid { - display: flex; - flex-wrap: wrap; -} -.grid.\\\\-top { - align-items: flex-start; -} -.grid.-top { - align-items: flex-start; -} -.grid.\\\\-middle { - align-items: center; -} -.grid.\\\\-bottom { - align-items: flex-end; -} - -.u-m\\\\00002b {} - -.u-m00002b {} - -#u-m\\\\+ {} - -body { - font-family: '微软雅黑'; /* some chinese font name */ -} - -.myStyle { - content: '\\\\e901'; -} - -.myStyle { - content: '\\\\E901'; -} - -.♫ {} - -.\\\\3A \\\\\`\\\\( {} /* matches elements with class=\\":\`(\\" */ -.\\\\31 a2b3c {} /* matches elements with class=\\"1a2b3c\\" */ -#\\\\#fake-id {} /* matches the element with id=\\"#fake-id\\" */ -#-a-b-c- {} /* matches the element with id=\\"-a-b-c-\\" */ -#© {} /* matches the element with id=\\"©\\" */ - -:root { - --title-align: center; - --sr-only: { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - overflow: hidden; - clip: rect(0,0,0,0); - white-space: nowrap; - clip-path: inset(50%); - border: 0; - }; -} - -.test { - content: \\"\\\\2014\\\\A0\\"; - content: \\"\\\\2014 \\\\A0\\"; - content: \\"\\\\A0 \\\\2014\\"; - content: \\"\\\\A0\\\\2014\\"; - margin-top: 1px\\\\9; - background-color: #000\\\\9; -} - -.light.on .bulb:before{ - content: '💡'; -} - -.base64 { - background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); -} - -a[href=''] { - color: red; -} - -a[href='' i] { - color: red; -} - -a[href=\\"\\"] { - color: blue; -} - -a[href=\\"\\" i] { - color: blue; -} -", - "", - ], -] -`; - -exports[`'exportType' option should work with 'javascript' value: warnings 1`] = `Array []`; - exports[`'exportType' option should work with CSS modules and the 'exportOnlyLocals' option: errors 1`] = `Array []`; exports[`'exportType' option should work with CSS modules and the 'exportOnlyLocals' option: module 1`] = ` diff --git a/test/__snapshots__/validate-options.test.js.snap b/test/__snapshots__/validate-options.test.js.snap index b63a3850..3cf63714 100644 --- a/test/__snapshots__/validate-options.test.js.snap +++ b/test/__snapshots__/validate-options.test.js.snap @@ -10,16 +10,16 @@ exports[`validate options should throw an error on the "esModule" option with "t exports[`validate options should throw an error on the "exportType" option with "false" value 1`] = ` "Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. - options.exportType should be one of these: - \\"javascript\\" | \\"css-style-sheet\\" - -> Allows exporting styles as javascript array with modules or constructable stylesheet (i.e. \`CSSStyleSheet\`). + \\"array\\" | \\"css-style-sheet\\" + -> Allows exporting styles as array with modules or constructable stylesheet (i.e. \`CSSStyleSheet\`). -> Read more at https://github.com/webpack-contrib/css-loader#exporttype" `; exports[`validate options should throw an error on the "exportType" option with "true" value 1`] = ` "Invalid options object. CSS Loader has been initialized using an options object that does not match the API schema. - options.exportType should be one of these: - \\"javascript\\" | \\"css-style-sheet\\" - -> Allows exporting styles as javascript array with modules or constructable stylesheet (i.e. \`CSSStyleSheet\`). + \\"array\\" | \\"css-style-sheet\\" + -> Allows exporting styles as array with modules or constructable stylesheet (i.e. \`CSSStyleSheet\`). -> Read more at https://github.com/webpack-contrib/css-loader#exporttype" `; diff --git a/test/exportType.test.js b/test/exportType.test.js index 2dd078b9..ee146d24 100644 --- a/test/exportType.test.js +++ b/test/exportType.test.js @@ -10,7 +10,7 @@ import { } from "./helpers/index"; describe("'exportType' option", () => { - it("should work and export 'javascript' by default", async () => { + it("should work and export 'array' by default", async () => { const compiler = getCompiler("./basic.js"); const stats = await compile(compiler); @@ -22,9 +22,9 @@ describe("'exportType' option", () => { expect(getErrors(stats)).toMatchSnapshot("errors"); }); - it("should work with 'javascript' value", async () => { + it("should work with 'array' value", async () => { const compiler = getCompiler("./basic.js", { - exportType: "javascript", + exportType: "array", }); const stats = await compile(compiler); diff --git a/test/helpers/getExecutedCode.js b/test/helpers/getExecutedCode.js index a797a790..401692d8 100644 --- a/test/helpers/getExecutedCode.js +++ b/test/helpers/getExecutedCode.js @@ -17,7 +17,7 @@ export default (asset, compiler, stats, type) => { } if (executed && typeof executed.text !== "undefined") { - executed.text = executed.text.replace(/file:\/\/\/[a-z]:\//i, "file:///"); + executed.text = executed.text.replace(/file:\/\/\/[a-z]:\//gi, "file:///"); } return executed; diff --git a/test/validate-options.test.js b/test/validate-options.test.js index 55614473..3376905e 100644 --- a/test/validate-options.test.js +++ b/test/validate-options.test.js @@ -88,7 +88,7 @@ describe("validate options", () => { failure: ["true"], }, exportType: { - success: ["javascript", "css-style-sheet"], + success: ["array", "css-style-sheet"], failure: ["true", false], }, unknown: { From 5d1d7cd614b3c9eea6fde20595fa9cd9a7637239 Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Sat, 18 Sep 2021 20:57:06 +0300 Subject: [PATCH 17/20] test: fix --- test/__snapshots__/exportType.test.js.snap | 2293 +------------------- test/exportType.test.js | 2 +- test/helpers/getExecutedCode.js | 7 + 3 files changed, 36 insertions(+), 2266 deletions(-) diff --git a/test/__snapshots__/exportType.test.js.snap b/test/__snapshots__/exportType.test.js.snap index 7830384b..6a80ade5 100644 --- a/test/__snapshots__/exportType.test.js.snap +++ b/test/__snapshots__/exportType.test.js.snap @@ -1,215 +1,31 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`'exportType' option should throw an error with 'css-style-sheet' value for CSS modules when \`esModule\` disabled, but 'modules.namedExport' enabled: errors 1`] = ` -Array [ - "ModuleBuildError: Module build failed (from \`replaced original path\`): -Error: The 'exportType' option with the 'css-style-sheet' value requires the 'esModules' option to be enabled", -] -`; - -exports[`'exportType' option should throw an error with 'css-style-sheet' value for CSS modules when \`esModule\` disabled, but 'modules.namedExport' enabled: warnings 1`] = `Array []`; - -exports[`'exportType' option should throw an error with 'css-style-sheet' value for CSS modules when \`esModule\` disabled: errors 1`] = ` -Array [ - "ModuleBuildError: Module build failed (from \`replaced original path\`): -Error: The 'exportType' option with the 'css-style-sheet' value requires the 'esModules' option to be enabled", -] -`; +exports[`'exportType' option should work with 'css-style-sheet' and 'array' values: errors 1`] = `Array []`; -exports[`'exportType' option should throw an error with 'css-style-sheet' value for CSS modules when \`esModule\` disabled: warnings 1`] = `Array []`; - -exports[`'exportType' option should throw an error with 'css-style-sheet' value for CSS modules when named export disabled: errors 1`] = ` -Array [ - "ModuleBuildError: Module build failed (from \`replaced original path\`): -Error: The 'exportType' option with the 'css-style-sheet' value requires the 'modules.namedExport' option to be enabled", -] -`; - -exports[`'exportType' option should throw an error with 'css-style-sheet' value for CSS modules when named export disabled: warnings 1`] = `Array []`; - -exports[`'exportType' option should work and export 'array' by default: errors 1`] = `Array []`; - -exports[`'exportType' option should work and export 'array' by default: module 1`] = ` +exports[`'exportType' option should work with 'css-style-sheet' and 'array' values: module 1`] = ` "// Imports import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../src/runtime/noSourceMaps.js\\"; import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; -import ___CSS_LOADER_AT_RULE_IMPORT_0___ from \\"-!../../src/index.js??ruleSet[1].rules[0].use[0]!./imported.css\\"; import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); -___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); // Module ___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); // Exports -export default ___CSS_LOADER_EXPORT___; +var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); +___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); +export default ___CSS_LOADER_STYLE_SHEET___; " `; -exports[`'exportType' option should work and export 'array' by default: result 1`] = ` -Array [ - Array [ - "../../src/index.js??ruleSet[1].rules[0].use[0]!./imported.css", - ".foo { - color: red; -} -", - "", - ], - Array [ - "./basic.css", - "@charset \\"UTF-8\\"; - -/* Comment */ - -.class { - color: red; - background: url(replaced_file_protocol_/webpack/public/path/img.png); -} - -.class-duplicate-url { - background: url(replaced_file_protocol_/webpack/public/path/img.png); -} - -:root { - --foo: 1px; - --bar: 2px; -} - -.class { a: b c d; } - -.two {} - -.u-m\\\\+ { a: b c d; } - -.class { content: \\"\\\\F10C\\" } - -@media only screen and (max-width: 600px) { - body { - background-color: lightblue; - } -} - -.class { - content: \\"\\\\2193\\"; - content: \\"\\\\2193\\\\2193\\"; - content: \\"\\\\2193 \\\\2193\\"; - content: \\"\\\\2193\\\\2193\\\\2193\\"; - content: \\"\\\\2193 \\\\2193 \\\\2193\\"; -} - -.-top {} -.\\\\-top {} - -#\\\\#test {} - -.grid { - display: flex; - flex-wrap: wrap; -} -.grid.\\\\-top { - align-items: flex-start; -} -.grid.-top { - align-items: flex-start; -} -.grid.\\\\-middle { - align-items: center; -} -.grid.\\\\-bottom { - align-items: flex-end; -} - -.u-m\\\\00002b {} - -.u-m00002b {} - -#u-m\\\\+ {} - -body { - font-family: '微软雅黑'; /* some chinese font name */ -} - -.myStyle { - content: '\\\\e901'; -} - -.myStyle { - content: '\\\\E901'; -} - -.♫ {} - -.\\\\3A \\\\\`\\\\( {} /* matches elements with class=\\":\`(\\" */ -.\\\\31 a2b3c {} /* matches elements with class=\\"1a2b3c\\" */ -#\\\\#fake-id {} /* matches the element with id=\\"#fake-id\\" */ -#-a-b-c- {} /* matches the element with id=\\"-a-b-c-\\" */ -#© {} /* matches the element with id=\\"©\\" */ - -:root { - --title-align: center; - --sr-only: { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - overflow: hidden; - clip: rect(0,0,0,0); - white-space: nowrap; - clip-path: inset(50%); - border: 0; - }; -} - -.test { - content: \\"\\\\2014\\\\A0\\"; - content: \\"\\\\2014 \\\\A0\\"; - content: \\"\\\\A0 \\\\2014\\"; - content: \\"\\\\A0\\\\2014\\"; - margin-top: 1px\\\\9; - background-color: #000\\\\9; -} - -.light.on .bulb:before{ - content: '💡'; -} - -.base64 { - background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); -} - -a[href=''] { - color: red; -} - -a[href='' i] { - color: red; -} - -a[href=\\"\\"] { - color: blue; -} - -a[href=\\"\\" i] { - color: blue; -} -", - "", - ], -] -`; - -exports[`'exportType' option should work and export 'array' by default: warnings 1`] = `Array []`; - -exports[`'exportType' option should work with 'array' value: errors 1`] = `Array []`; - -exports[`'exportType' option should work with 'array' value: module 1`] = ` +exports[`'exportType' option should work with 'css-style-sheet' and 'array' values: module 2`] = ` "// Imports import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../src/runtime/noSourceMaps.js\\"; import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; -import ___CSS_LOADER_AT_RULE_IMPORT_0___ from \\"-!../../src/index.js??ruleSet[1].rules[0].use[0]!./imported.css\\"; +import ___CSS_LOADER_AT_RULE_IMPORT_0___ from \\"-!../../src/index.js!./imported.css\\"; import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); @@ -224,29 +40,20 @@ export default ___CSS_LOADER_EXPORT___; " `; -exports[`'exportType' option should work with 'array' value: result 1`] = ` +exports[`'exportType' option should work with 'css-style-sheet' and 'array' values: result 1`] = ` Array [ - Array [ - "../../src/index.js??ruleSet[1].rules[0].use[0]!./imported.css", - ".foo { - color: red; -} -", - "", - ], - Array [ - "./basic.css", - "@charset \\"UTF-8\\"; + CSSStyleSheet { + "text": "@charset \\"UTF-8\\"; /* Comment */ .class { color: red; - background: url(replaced_file_protocol_/webpack/public/path/img.png); + background: url(file:///webpack/public/path/img.png); } .class-duplicate-url { - background: url(replaced_file_protocol_/webpack/public/path/img.png); + background: url(file:///webpack/public/path/img.png); } :root { @@ -372,215 +179,29 @@ a[href=\\"\\" i] { color: blue; } ", - "", - ], -] -`; - -exports[`'exportType' option should work with 'array' value: warnings 1`] = `Array []`; - -exports[`'exportType' option should work with 'css-style-sheet' and 'javascript' values: errors 1`] = `Array []`; - -exports[`'exportType' option should work with 'css-style-sheet' and 'javascript' values: module 1`] = ` -"// Imports -import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../src/runtime/noSourceMaps.js\\"; -import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; -import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; -var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); -var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); -var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); -var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); -// Module -___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); -// Exports -var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); -___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); -export default ___CSS_LOADER_STYLE_SHEET___; -" -`; - -exports[`'exportType' option should work with 'css-style-sheet' and 'javascript' values: module 2`] = ` -"// Imports -import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../src/runtime/noSourceMaps.js\\"; -import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; -import ___CSS_LOADER_AT_RULE_IMPORT_0___ from \\"-!../../src/index.js!./imported.css\\"; -import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; -var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); -var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); -___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___); -var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); -var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); -// Module -___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); -// Exports -export default ___CSS_LOADER_EXPORT___; -" -`; - -exports[`'exportType' option should work with 'css-style-sheet' and 'javascript' values: result 1`] = ` -Array [ - CSSStyleSheet { - "text": "@charset \\"UTF-8\\"; + }, + Array [ + Array [ + "../../src/index.js!./imported.css", + ".foo { + color: red; +} +", + "", + ], + Array [ + "./basic.css?foo=1", + "@charset \\"UTF-8\\"; /* Comment */ .class { color: red; - background: url(file:///webpack/public/path/img.png); + background: url(replaced_file_protocol_/webpack/public/path/img.png); } .class-duplicate-url { - background: url(file:///webpack/public/path/img.png); -} - -:root { - --foo: 1px; - --bar: 2px; -} - -.class { a: b c d; } - -.two {} - -.u-m\\\\+ { a: b c d; } - -.class { content: \\"\\\\F10C\\" } - -@media only screen and (max-width: 600px) { - body { - background-color: lightblue; - } -} - -.class { - content: \\"\\\\2193\\"; - content: \\"\\\\2193\\\\2193\\"; - content: \\"\\\\2193 \\\\2193\\"; - content: \\"\\\\2193\\\\2193\\\\2193\\"; - content: \\"\\\\2193 \\\\2193 \\\\2193\\"; -} - -.-top {} -.\\\\-top {} - -#\\\\#test {} - -.grid { - display: flex; - flex-wrap: wrap; -} -.grid.\\\\-top { - align-items: flex-start; -} -.grid.-top { - align-items: flex-start; -} -.grid.\\\\-middle { - align-items: center; -} -.grid.\\\\-bottom { - align-items: flex-end; -} - -.u-m\\\\00002b {} - -.u-m00002b {} - -#u-m\\\\+ {} - -body { - font-family: '微软雅黑'; /* some chinese font name */ -} - -.myStyle { - content: '\\\\e901'; -} - -.myStyle { - content: '\\\\E901'; -} - -.♫ {} - -.\\\\3A \\\\\`\\\\( {} /* matches elements with class=\\":\`(\\" */ -.\\\\31 a2b3c {} /* matches elements with class=\\"1a2b3c\\" */ -#\\\\#fake-id {} /* matches the element with id=\\"#fake-id\\" */ -#-a-b-c- {} /* matches the element with id=\\"-a-b-c-\\" */ -#© {} /* matches the element with id=\\"©\\" */ - -:root { - --title-align: center; - --sr-only: { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - overflow: hidden; - clip: rect(0,0,0,0); - white-space: nowrap; - clip-path: inset(50%); - border: 0; - }; -} - -.test { - content: \\"\\\\2014\\\\A0\\"; - content: \\"\\\\2014 \\\\A0\\"; - content: \\"\\\\A0 \\\\2014\\"; - content: \\"\\\\A0\\\\2014\\"; - margin-top: 1px\\\\9; - background-color: #000\\\\9; -} - -.light.on .bulb:before{ - content: '💡'; -} - -.base64 { - background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); -} - -a[href=''] { - color: red; -} - -a[href='' i] { - color: red; -} - -a[href=\\"\\"] { - color: blue; -} - -a[href=\\"\\" i] { - color: blue; -} -", - }, - Array [ - Array [ - "../../src/index.js!./imported.css", - ".foo { - color: red; -} -", - "", - ], - Array [ - "./basic.css?foo=1", - "@charset \\"UTF-8\\"; - -/* Comment */ - -.class { - color: red; - background: url(replaced_file_protocol_/webpack/public/path/img.png); -} - -.class-duplicate-url { - background: url(replaced_file_protocol_/webpack/public/path/img.png); + background: url(replaced_file_protocol_/webpack/public/path/img.png); } :root { @@ -712,1862 +333,4 @@ a[href=\\"\\" i] { ] `; -exports[`'exportType' option should work with 'css-style-sheet' and 'javascript' values: warnings 1`] = `Array []`; - -exports[`'exportType' option should work with 'css-style-sheet' value and CSS modules and still emit error on '@import' at-rules: errors 1`] = ` -Array [ - "ModuleError: Module Error (from \`replaced original path\`): -/test/fixtures/modules/composes/composes.css:1:1: '@import' rules are not allowed here and will not be processed", -] -`; - -exports[`'exportType' option should work with 'css-style-sheet' value and CSS modules and still emit error on '@import' at-rules: module 1`] = ` -"// Imports -import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../../../src/runtime/noSourceMaps.js\\"; -import ___CSS_LOADER_API_IMPORT___ from \\"../../../../src/runtime/api.js\\"; -import ___CSS_LOADER_ICSS_IMPORT_0___, * as ___CSS_LOADER_ICSS_IMPORT_0____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./values.css\\"; -import ___CSS_LOADER_ICSS_IMPORT_1___, * as ___CSS_LOADER_ICSS_IMPORT_1____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./something.css\\"; -import ___CSS_LOADER_ICSS_IMPORT_2___, * as ___CSS_LOADER_ICSS_IMPORT_2____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./imported-simple.css\\"; -import ___CSS_LOADER_ICSS_IMPORT_3___, * as ___CSS_LOADER_ICSS_IMPORT_3____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./relative.css\\"; -import ___CSS_LOADER_ICSS_IMPORT_4___, * as ___CSS_LOADER_ICSS_IMPORT_4____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./top-relative.css\\"; -import ___CSS_LOADER_ICSS_IMPORT_5___, * as ___CSS_LOADER_ICSS_IMPORT_5____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!../issue-861/node_modules/package/style.css\\"; -import ___CSS_LOADER_ICSS_IMPORT_6___, * as ___CSS_LOADER_ICSS_IMPORT_6____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./alias.css\\"; -import ___CSS_LOADER_ICSS_IMPORT_7___, * as ___CSS_LOADER_ICSS_IMPORT_7____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!sass-loader!./scss-file.scss\\"; -import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../../../src/runtime/getUrl.js\\"; -var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"../../url/img.png\\", import.meta.url); -var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); -___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); -___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_1___, \\"\\", true); -___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_2___, \\"\\", true); -___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_3___, \\"\\", true); -___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_4___, \\"\\", true); -___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_5___, \\"\\", true); -___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_6___, \\"\\", true); -___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_7___, \\"\\", true); -var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); -// Module -___CSS_LOADER_EXPORT___.push([module.id, \\"@import url(./test-other.css) (min-width: 100px);\\\\n\\\\n.JrMovmNxiARceckPi1Bb {\\\\n color: \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vDef\\"] + \\";\\\\n}\\\\n\\\\n._xZYrLKW96sXm2aniadM {\\\\n color: blue;\\\\n}\\\\n\\\\n.cXIvIhl_Be3NhMPQoE0z {\\\\n display: block;\\\\n}\\\\n\\\\n.wyIZMXPNE2D7zb9VCrHe {\\\\n width: \\" + ___CSS_LOADER_ICSS_IMPORT_1____NAMED___[\\"vSomething\\"] + \\";\\\\n}\\\\n\\\\n.as9P70j15m_wICZ94IJx {\\\\n color: \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vOther\\"] + \\";\\\\n}\\\\n\\\\n.zAepmy_SqloGdZJJmXNm {\\\\n prop: \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vDef\\"] + \\";\\\\n duplicate: \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vOther\\"] + \\";\\\\n}\\\\n\\\\n.n_zXxs10wzKREXQdQrw9 {\\\\n color: red;\\\\n}\\\\n\\\\n._u4nolEyHSlixSSx7uXN {\\\\n color: yellow;\\\\n}\\\\n\\\\n._EXVuUxUggUhA1UEBgZk {\\\\n color: gray;\\\\n}\\\\n\\\\n.o2wK31qqosVXAPAdGIxD {\\\\n color: gray;\\\\n}\\\\n\\\\n._Y2QYoxyUknZNv0u6wN3 {\\\\n color: gainsboro;\\\\n}\\\\n\\\\n.wmZh7D9g5PjWvMpojahG {\\\\n color: gainsboro;\\\\n}\\\\n\\\\n.uOEsMAq4YIv8PUUlnnhI {\\\\n color: #BF4040;\\\\n}\\\\n\\\\n._r6IpGhEbXgocCCXZgDs {\\\\n color: black;\\\\n}\\\\n\\\\n@media (min-width: 960px) {\\\\n .IsCkQQmCqI3_HSI_H_hT {\\\\n padding: 0 20px;\\\\n }\\\\n}\\\\n\\\\n.\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"sWhite\\"] + \\" {\\\\n color: white;\\\\n}\\\\n\\\\n@media \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"mSmall\\"] + \\" {\\\\n .IsCkQQmCqI3_HSI_H_hT {\\\\n padding: 20px 20px;\\\\n }\\\\n}\\\\n\\\\n.lNjqoQe7B3jKXIowFbpE {\\\\n v-ident: validIdent;\\\\n v-pre-defined-ident: left;\\\\n v-string: 'content';\\\\n v-string-1: '';\\\\n v-url: url(https://www.exammple.com/images/my-background.png);\\\\n v-url-1: url('https://www.exammple.com/images/my-background.png');\\\\n v-url-2: url(\\\\\\"https://www.exammple.com/images/my-background.png\\\\\\");\\\\n v-integer: 100;\\\\n v-integer-1: -100;\\\\n v-integer-2: +100;\\\\n v-number: .60;\\\\n v-number-1: -456.8;\\\\n v-number-2: -3.4e-2;\\\\n v-dimension: 12px;\\\\n v-percentage: 100%;\\\\n v-hex: #fff;\\\\n v-comment: /* comment */ 10px /* comment */;\\\\n v-function: rgb(0,0,0);\\\\n v-unicode-range: U+0025-00FF;\\\\n mutliple: #fff .60 100%;\\\\n}\\\\n\\\\n\\\\na {\\\\n content: 'content';\\\\n}\\\\n\\\\n@supports (content: 'content') {\\\\n a {\\\\n content: 'content';\\\\n }\\\\n}\\\\n\\\\n[class~='content'] {\\\\n color:green;\\\\n}\\\\n\\\\n.ABtimDL9fvKNWc1BjB59 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.K7O_z8z4VzoG6Ru_jb_T {\\\\n background: red;\\\\n}\\\\n\\", \\"\\"]); -// Exports -export var vDef = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vDef\\"] + \\"\\"; -export var vOther = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vOther\\"] + \\"\\"; -export var sWhite = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"sWhite\\"] + \\"\\"; -export var mSmall = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"mSmall\\"] + \\"\\"; -export var vSomething = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_1____NAMED___[\\"vSomething\\"] + \\"\\"; -export var vFoo = \\"blue\\"; -export var vBar = \\"block\\"; -export var vPrimary = \\"#BF4040\\"; -export var sBlack = \\"black-selector\\"; -export var mLarge = \\"(min-width: 960px)\\"; -export var vIdent = \\"validIdent\\"; -export var vPreDefinedIdent = \\"left\\"; -export var vString = \\"'content'\\"; -export var vString1 = \\"''\\"; -export var vUrl = \\"url(https://www.exammple.com/images/my-background.png)\\"; -export var vUrl1 = \\"url('https://www.exammple.com/images/my-background.png')\\"; -export var vUrl2 = \\"url(\\\\\\"https://www.exammple.com/images/my-background.png\\\\\\")\\"; -export var vInteger = \\"100\\"; -export var vInteger1 = \\"-100\\"; -export var vInteger2 = \\"+100\\"; -export var vNumber = \\".60\\"; -export var vNumber1 = \\"-456.8\\"; -export var vNumber2 = \\"-3.4e-2\\"; -export var vDimension = \\"12px\\"; -export var vPercentage = \\"100%\\"; -export var vHex = \\"#fff\\"; -export var vComment = \\" /* comment */\\"; -export var vFunction = \\"rgb(0,0,0)\\"; -export var vUnicodeRange = \\"U+0025-00FF\\"; -export var ghi = \\"JrMovmNxiARceckPi1Bb\\"; -export var myClass = \\"_xZYrLKW96sXm2aniadM\\"; -export var other = \\"cXIvIhl_Be3NhMPQoE0z\\"; -export var otherOther = \\"wyIZMXPNE2D7zb9VCrHe\\"; -export var green = \\"as9P70j15m_wICZ94IJx\\"; -export var foo = \\"zAepmy_SqloGdZJJmXNm\\"; -export var simple = \\"n_zXxs10wzKREXQdQrw9 \\" + ___CSS_LOADER_ICSS_IMPORT_2____NAMED___[\\"importedSimple\\"] + \\"\\"; -export var relative = \\"_u4nolEyHSlixSSx7uXN \\" + ___CSS_LOADER_ICSS_IMPORT_3____NAMED___[\\"importedRelative\\"] + \\"\\"; -export var topRelative = \\"_EXVuUxUggUhA1UEBgZk \\" + ___CSS_LOADER_ICSS_IMPORT_4____NAMED___[\\"importedRelative\\"] + \\"\\"; -export var myModule = \\"o2wK31qqosVXAPAdGIxD \\" + ___CSS_LOADER_ICSS_IMPORT_5____NAMED___[\\"importedModule\\"] + \\"\\"; -export var alias = \\"_Y2QYoxyUknZNv0u6wN3 \\" + ___CSS_LOADER_ICSS_IMPORT_6____NAMED___[\\"importedAlias\\"] + \\"\\"; -export var aliasDuplicate = \\"wmZh7D9g5PjWvMpojahG \\" + ___CSS_LOADER_ICSS_IMPORT_6____NAMED___[\\"importedAlias\\"] + \\"\\"; -export var primarySelector = \\"uOEsMAq4YIv8PUUlnnhI\\"; -export var blackSelector = \\"_r6IpGhEbXgocCCXZgDs\\"; -export var header = \\"IsCkQQmCqI3_HSI_H_hT\\"; -export var foobarbaz = \\"lNjqoQe7B3jKXIowFbpE\\"; -export var url = \\"ABtimDL9fvKNWc1BjB59\\"; -export var main = \\"K7O_z8z4VzoG6Ru_jb_T \\" + ___CSS_LOADER_ICSS_IMPORT_7____NAMED___[\\"scssClass\\"] + \\"\\"; -var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); -___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); -export default ___CSS_LOADER_STYLE_SHEET___; -" -`; - -exports[`'exportType' option should work with 'css-style-sheet' value and CSS modules and still emit error on '@import' at-rules: result 1`] = ` -CSSStyleSheet { - "named": Object { - "alias": "_Y2QYoxyUknZNv0u6wN3 _4Zj8x54IrWF75cUaGyT", - "aliasDuplicate": "wmZh7D9g5PjWvMpojahG _4Zj8x54IrWF75cUaGyT", - "blackSelector": "_r6IpGhEbXgocCCXZgDs", - "default": [Circular], - "foo": "zAepmy_SqloGdZJJmXNm", - "foobarbaz": "lNjqoQe7B3jKXIowFbpE", - "ghi": "JrMovmNxiARceckPi1Bb", - "green": "as9P70j15m_wICZ94IJx", - "header": "IsCkQQmCqI3_HSI_H_hT", - "mLarge": "(min-width: 960px)", - "mSmall": "(min-width: 320px)", - "main": "K7O_z8z4VzoG6Ru_jb_T pqdLCWFRW03AVy9uJoZX", - "myClass": "_xZYrLKW96sXm2aniadM", - "myModule": "o2wK31qqosVXAPAdGIxD ONhOxkn21jORUJmheiwE", - "other": "cXIvIhl_Be3NhMPQoE0z", - "otherOther": "wyIZMXPNE2D7zb9VCrHe", - "primarySelector": "uOEsMAq4YIv8PUUlnnhI", - "relative": "_u4nolEyHSlixSSx7uXN HlqmBJrtIvJ3Gzgbut_w", - "sBlack": "black-selector", - "sWhite": "white", - "simple": "n_zXxs10wzKREXQdQrw9 kN0Z3n7LgkVJQeFmVucy", - "topRelative": "_EXVuUxUggUhA1UEBgZk MzX17bUYYh7fmdKVXQ9p", - "url": "ABtimDL9fvKNWc1BjB59", - "vBar": "block", - "vComment": " /* comment */", - "vDef": "red", - "vDimension": "12px", - "vFoo": "blue", - "vFunction": "rgb(0,0,0)", - "vHex": "#fff", - "vIdent": "validIdent", - "vInteger": "100", - "vInteger1": "-100", - "vInteger2": "+100", - "vNumber": ".60", - "vNumber1": "-456.8", - "vNumber2": "-3.4e-2", - "vOther": "green", - "vPercentage": "100%", - "vPreDefinedIdent": "left", - "vPrimary": "#BF4040", - "vSomething": "2112moon", - "vString": "'content'", - "vString1": "''", - "vUnicodeRange": "U+0025-00FF", - "vUrl": "url(https://www.exammple.com/images/my-background.png)", - "vUrl1": "url('https://www.exammple.com/images/my-background.png')", - "vUrl2": "url(\\"https://www.exammple.com/images/my-background.png\\")", - }, - "text": "@import url(./test-other.css) (min-width: 100px); - -.JrMovmNxiARceckPi1Bb { - color: red; -} - -._xZYrLKW96sXm2aniadM { - color: blue; -} - -.cXIvIhl_Be3NhMPQoE0z { - display: block; -} - -.wyIZMXPNE2D7zb9VCrHe { - width: 2112moon; -} - -.as9P70j15m_wICZ94IJx { - color: green; -} - -.zAepmy_SqloGdZJJmXNm { - prop: red; - duplicate: green; -} - -.n_zXxs10wzKREXQdQrw9 { - color: red; -} - -._u4nolEyHSlixSSx7uXN { - color: yellow; -} - -._EXVuUxUggUhA1UEBgZk { - color: gray; -} - -.o2wK31qqosVXAPAdGIxD { - color: gray; -} - -._Y2QYoxyUknZNv0u6wN3 { - color: gainsboro; -} - -.wmZh7D9g5PjWvMpojahG { - color: gainsboro; -} - -.uOEsMAq4YIv8PUUlnnhI { - color: #BF4040; -} - -._r6IpGhEbXgocCCXZgDs { - color: black; -} - -@media (min-width: 960px) { - .IsCkQQmCqI3_HSI_H_hT { - padding: 0 20px; - } -} - -.white { - color: white; -} - -@media (min-width: 320px) { - .IsCkQQmCqI3_HSI_H_hT { - padding: 20px 20px; - } -} - -.lNjqoQe7B3jKXIowFbpE { - v-ident: validIdent; - v-pre-defined-ident: left; - v-string: 'content'; - v-string-1: ''; - v-url: url(https://www.exammple.com/images/my-background.png); - v-url-1: url('https://www.exammple.com/images/my-background.png'); - v-url-2: url(\\"https://www.exammple.com/images/my-background.png\\"); - v-integer: 100; - v-integer-1: -100; - v-integer-2: +100; - v-number: .60; - v-number-1: -456.8; - v-number-2: -3.4e-2; - v-dimension: 12px; - v-percentage: 100%; - v-hex: #fff; - v-comment: /* comment */ 10px /* comment */; - v-function: rgb(0,0,0); - v-unicode-range: U+0025-00FF; - mutliple: #fff .60 100%; -} - - -a { - content: 'content'; -} - -@supports (content: 'content') { - a { - content: 'content'; - } -} - -[class~='content'] { - color:green; -} - -.ABtimDL9fvKNWc1BjB59 { - background: url(file:///webpack/public/path/img.png); -} - -.K7O_z8z4VzoG6Ru_jb_T { - background: red; -} -", -} -`; - -exports[`'exportType' option should work with 'css-style-sheet' value and CSS modules and still emit error on '@import' at-rules: warnings 1`] = `Array []`; - -exports[`'exportType' option should work with 'css-style-sheet' value and CommonJS modules: errors 1`] = `Array []`; - -exports[`'exportType' option should work with 'css-style-sheet' value and CommonJS modules: module 1`] = ` -"// Imports -var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = require(\\"../../src/runtime/noSourceMaps.js\\"); -var ___CSS_LOADER_API_IMPORT___ = require(\\"../../src/runtime/api.js\\"); -var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../src/runtime/getUrl.js\\"); -var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./url/img.png\\"); -var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); -var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); -// Module -___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==);\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); -// Exports -var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); -___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); -module.exports = ___CSS_LOADER_STYLE_SHEET___; -" -`; - -exports[`'exportType' option should work with 'css-style-sheet' value and CommonJS modules: result 1`] = ` -CSSStyleSheet { - "text": "@charset \\"UTF-8\\"; - -/* Comment */ - -.class { - color: red; - background: url(/webpack/public/path/img.png); -} - -.class-duplicate-url { - background: url(/webpack/public/path/img.png); -} - -:root { - --foo: 1px; - --bar: 2px; -} - -.class { a: b c d; } - -.two {} - -.u-m\\\\+ { a: b c d; } - -.class { content: \\"\\\\F10C\\" } - -@media only screen and (max-width: 600px) { - body { - background-color: lightblue; - } -} - -.class { - content: \\"\\\\2193\\"; - content: \\"\\\\2193\\\\2193\\"; - content: \\"\\\\2193 \\\\2193\\"; - content: \\"\\\\2193\\\\2193\\\\2193\\"; - content: \\"\\\\2193 \\\\2193 \\\\2193\\"; -} - -.-top {} -.\\\\-top {} - -#\\\\#test {} - -.grid { - display: flex; - flex-wrap: wrap; -} -.grid.\\\\-top { - align-items: flex-start; -} -.grid.-top { - align-items: flex-start; -} -.grid.\\\\-middle { - align-items: center; -} -.grid.\\\\-bottom { - align-items: flex-end; -} - -.u-m\\\\00002b {} - -.u-m00002b {} - -#u-m\\\\+ {} - -body { - font-family: '微软雅黑'; /* some chinese font name */ -} - -.myStyle { - content: '\\\\e901'; -} - -.myStyle { - content: '\\\\E901'; -} - -.♫ {} - -.\\\\3A \\\\\`\\\\( {} /* matches elements with class=\\":\`(\\" */ -.\\\\31 a2b3c {} /* matches elements with class=\\"1a2b3c\\" */ -#\\\\#fake-id {} /* matches the element with id=\\"#fake-id\\" */ -#-a-b-c- {} /* matches the element with id=\\"-a-b-c-\\" */ -#© {} /* matches the element with id=\\"©\\" */ - -:root { - --title-align: center; - --sr-only: { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - overflow: hidden; - clip: rect(0,0,0,0); - white-space: nowrap; - clip-path: inset(50%); - border: 0; - }; -} - -.test { - content: \\"\\\\2014\\\\A0\\"; - content: \\"\\\\2014 \\\\A0\\"; - content: \\"\\\\A0 \\\\2014\\"; - content: \\"\\\\A0\\\\2014\\"; - margin-top: 1px\\\\9; - background-color: #000\\\\9; -} - -.light.on .bulb:before{ - content: '💡'; -} - -.base64 { - background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); -} - -a[href=''] { - color: red; -} - -a[href='' i] { - color: red; -} - -a[href=\\"\\"] { - color: blue; -} - -a[href=\\"\\" i] { - color: blue; -} -", -} -`; - -exports[`'exportType' option should work with 'css-style-sheet' value and CommonJS modules: warnings 1`] = `Array []`; - -exports[`'exportType' option should work with 'css-style-sheet' value and ECMA modules: errors 1`] = `Array []`; - -exports[`'exportType' option should work with 'css-style-sheet' value and ECMA modules: module 1`] = ` -"// Imports -import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../src/runtime/noSourceMaps.js\\"; -import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; -import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; -var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); -var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); -var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); -var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); -// Module -___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); -// Exports -var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); -___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); -export default ___CSS_LOADER_STYLE_SHEET___; -" -`; - -exports[`'exportType' option should work with 'css-style-sheet' value and ECMA modules: result 1`] = ` -CSSStyleSheet { - "text": "@charset \\"UTF-8\\"; - -/* Comment */ - -.class { - color: red; - background: url(file:///webpack/public/path/img.png); -} - -.class-duplicate-url { - background: url(file:///webpack/public/path/img.png); -} - -:root { - --foo: 1px; - --bar: 2px; -} - -.class { a: b c d; } - -.two {} - -.u-m\\\\+ { a: b c d; } - -.class { content: \\"\\\\F10C\\" } - -@media only screen and (max-width: 600px) { - body { - background-color: lightblue; - } -} - -.class { - content: \\"\\\\2193\\"; - content: \\"\\\\2193\\\\2193\\"; - content: \\"\\\\2193 \\\\2193\\"; - content: \\"\\\\2193\\\\2193\\\\2193\\"; - content: \\"\\\\2193 \\\\2193 \\\\2193\\"; -} - -.-top {} -.\\\\-top {} - -#\\\\#test {} - -.grid { - display: flex; - flex-wrap: wrap; -} -.grid.\\\\-top { - align-items: flex-start; -} -.grid.-top { - align-items: flex-start; -} -.grid.\\\\-middle { - align-items: center; -} -.grid.\\\\-bottom { - align-items: flex-end; -} - -.u-m\\\\00002b {} - -.u-m00002b {} - -#u-m\\\\+ {} - -body { - font-family: '微软雅黑'; /* some chinese font name */ -} - -.myStyle { - content: '\\\\e901'; -} - -.myStyle { - content: '\\\\E901'; -} - -.♫ {} - -.\\\\3A \\\\\`\\\\( {} /* matches elements with class=\\":\`(\\" */ -.\\\\31 a2b3c {} /* matches elements with class=\\"1a2b3c\\" */ -#\\\\#fake-id {} /* matches the element with id=\\"#fake-id\\" */ -#-a-b-c- {} /* matches the element with id=\\"-a-b-c-\\" */ -#© {} /* matches the element with id=\\"©\\" */ - -:root { - --title-align: center; - --sr-only: { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - overflow: hidden; - clip: rect(0,0,0,0); - white-space: nowrap; - clip-path: inset(50%); - border: 0; - }; -} - -.test { - content: \\"\\\\2014\\\\A0\\"; - content: \\"\\\\2014 \\\\A0\\"; - content: \\"\\\\A0 \\\\2014\\"; - content: \\"\\\\A0\\\\2014\\"; - margin-top: 1px\\\\9; - background-color: #000\\\\9; -} - -.light.on .bulb:before{ - content: '💡'; -} - -.base64 { - background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); -} - -a[href=''] { - color: red; -} - -a[href='' i] { - color: red; -} - -a[href=\\"\\"] { - color: blue; -} - -a[href=\\"\\" i] { - color: blue; -} -", -} -`; - -exports[`'exportType' option should work with 'css-style-sheet' value and ECMA modules: warnings 1`] = `Array []`; - -exports[`'exportType' option should work with 'css-style-sheet' value and generate source maps: errors 1`] = `Array []`; - -exports[`'exportType' option should work with 'css-style-sheet' value and generate source maps: module 1`] = ` -"// Imports -import ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \\"../../src/runtime/sourceMaps.js\\"; -import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; -import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; -var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); -var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); -var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); -var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); -// Module -___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\",{\\"version\\":3,\\"sources\\":[\\"webpack://./basic-css-style-sheet.css\\"],\\"names\\":[],\\"mappings\\":\\"AAAA,gBAAgB;;AAEhB,YAAY;;AAEZ;EACE,UAAU;EACV,mDAAgC;AAClC;;AAEA;EACE,mDAAgC;AAClC;;AAEA;EACE,UAAU;EACV,UAAU;AACZ;;AAEA,SAAS,QAAQ,EAAE;;AAEnB,MAAM;;AAEN,SAAS,QAAQ,EAAE;;AAEnB,SAAS,iBAAiB;;AAE1B;EACE;IACE,2BAA2B;EAC7B;AACF;;AAEA;EACE,gBAAgB;EAChB,qBAAqB;EACrB,sBAAsB;EACtB,0BAA0B;EAC1B,4BAA4B;AAC9B;;AAEA,OAAO;AACP,QAAQ;;AAER,SAAS;;AAET;EACE,aAAa;EACb,eAAe;AACjB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,qBAAqB;AACvB;;AAEA,aAAa;;AAEb,YAAY;;AAEZ,QAAQ;;AAER;EACE,mBAAmB,EAAE,2BAA2B;AAClD;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,gBAAgB;AAClB;;AAEA,IAAI;;AAEJ,WAAW,EAAE,sCAAsC;AACnD,YAAY,EAAE,yCAAyC;AACvD,YAAY,EAAE,2CAA2C;AACzD,UAAU,EAAE,0CAA0C;AACtD,IAAI,EAAE,oCAAoC;;AAE1C;EACE,qBAAqB;EACrB;;;;;;;;;;GAUC;AACH;;AAEA;EACE,mBAAmB;EACnB,oBAAoB;EACpB,oBAAoB;EACpB,mBAAmB;EACnB,iBAAiB;EACjB,wBAAwB;AAC1B;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,mDAAq1B;AACv1B;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,WAAW;AACb\\",\\"sourcesContent\\":[\\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\\\\\"./url/img.png\\\\\\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\\\\\"./url/img.png\\\\\\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==);\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\"],\\"sourceRoot\\":\\"\\"}]); -// Exports -var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); -___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); -export default ___CSS_LOADER_STYLE_SHEET___; -" -`; - -exports[`'exportType' option should work with 'css-style-sheet' value and generate source maps: result 1`] = ` -CSSStyleSheet { - "text": "@charset \\"UTF-8\\"; - -/* Comment */ - -.class { - color: red; - background: url(file:///webpack/public/path/img.png); -} - -.class-duplicate-url { - background: url(file:///webpack/public/path/img.png); -} - -:root { - --foo: 1px; - --bar: 2px; -} - -.class { a: b c d; } - -.two {} - -.u-m\\\\+ { a: b c d; } - -.class { content: \\"\\\\F10C\\" } - -@media only screen and (max-width: 600px) { - body { - background-color: lightblue; - } -} - -.class { - content: \\"\\\\2193\\"; - content: \\"\\\\2193\\\\2193\\"; - content: \\"\\\\2193 \\\\2193\\"; - content: \\"\\\\2193\\\\2193\\\\2193\\"; - content: \\"\\\\2193 \\\\2193 \\\\2193\\"; -} - -.-top {} -.\\\\-top {} - -#\\\\#test {} - -.grid { - display: flex; - flex-wrap: wrap; -} -.grid.\\\\-top { - align-items: flex-start; -} -.grid.-top { - align-items: flex-start; -} -.grid.\\\\-middle { - align-items: center; -} -.grid.\\\\-bottom { - align-items: flex-end; -} - -.u-m\\\\00002b {} - -.u-m00002b {} - -#u-m\\\\+ {} - -body { - font-family: '微软雅黑'; /* some chinese font name */ -} - -.myStyle { - content: '\\\\e901'; -} - -.myStyle { - content: '\\\\E901'; -} - -.♫ {} - -.\\\\3A \\\\\`\\\\( {} /* matches elements with class=\\":\`(\\" */ -.\\\\31 a2b3c {} /* matches elements with class=\\"1a2b3c\\" */ -#\\\\#fake-id {} /* matches the element with id=\\"#fake-id\\" */ -#-a-b-c- {} /* matches the element with id=\\"-a-b-c-\\" */ -#© {} /* matches the element with id=\\"©\\" */ - -:root { - --title-align: center; - --sr-only: { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - overflow: hidden; - clip: rect(0,0,0,0); - white-space: nowrap; - clip-path: inset(50%); - border: 0; - }; -} - -.test { - content: \\"\\\\2014\\\\A0\\"; - content: \\"\\\\2014 \\\\A0\\"; - content: \\"\\\\A0 \\\\2014\\"; - content: \\"\\\\A0\\\\2014\\"; - margin-top: 1px\\\\9; - background-color: #000\\\\9; -} - -.light.on .bulb:before{ - content: '💡'; -} - -.base64 { - background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); -} - -a[href=''] { - color: red; -} - -a[href='' i] { - color: red; -} - -a[href=\\"\\"] { - color: blue; -} - -a[href=\\"\\" i] { - color: blue; -} - -/*# sourceURL=webpack://./basic-css-style-sheet.css */ -/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL2Jhc2ljLWNzcy1zdHlsZS1zaGVldC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCOztBQUVoQixZQUFZOztBQUVaO0VBQ0UsVUFBVTtFQUNWLG1EQUFnQztBQUNsQzs7QUFFQTtFQUNFLG1EQUFnQztBQUNsQzs7QUFFQTtFQUNFLFVBQVU7RUFDVixVQUFVO0FBQ1o7O0FBRUEsU0FBUyxRQUFRLEVBQUU7O0FBRW5CLE1BQU07O0FBRU4sU0FBUyxRQUFRLEVBQUU7O0FBRW5CLFNBQVMsaUJBQWlCOztBQUUxQjtFQUNFO0lBQ0UsMkJBQTJCO0VBQzdCO0FBQ0Y7O0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIscUJBQXFCO0VBQ3JCLHNCQUFzQjtFQUN0QiwwQkFBMEI7RUFDMUIsNEJBQTRCO0FBQzlCOztBQUVBLE9BQU87QUFDUCxRQUFROztBQUVSLFNBQVM7O0FBRVQ7RUFDRSxhQUFhO0VBQ2IsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsdUJBQXVCO0FBQ3pCO0FBQ0E7RUFDRSx1QkFBdUI7QUFDekI7QUFDQTtFQUNFLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UscUJBQXFCO0FBQ3ZCOztBQUVBLGFBQWE7O0FBRWIsWUFBWTs7QUFFWixRQUFROztBQUVSO0VBQ0UsbUJBQW1CLEVBQUUsMkJBQTJCO0FBQ2xEOztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUVBLElBQUk7O0FBRUosV0FBVyxFQUFFLHNDQUFzQztBQUNuRCxZQUFZLEVBQUUseUNBQXlDO0FBQ3ZELFlBQVksRUFBRSwyQ0FBMkM7QUFDekQsVUFBVSxFQUFFLDBDQUEwQztBQUN0RCxJQUFJLEVBQUUsb0NBQW9DOztBQUUxQztFQUNFLHFCQUFxQjtFQUNyQjs7Ozs7Ozs7OztHQVVDO0FBQ0g7O0FBRUE7RUFDRSxtQkFBbUI7RUFDbkIsb0JBQW9CO0VBQ3BCLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLHdCQUF3QjtBQUMxQjs7QUFFQTtFQUNFLGFBQWE7QUFDZjs7QUFFQTtFQUNFLG1EQUFxMUI7QUFDdjFCOztBQUVBO0VBQ0UsVUFBVTtBQUNaOztBQUVBO0VBQ0UsVUFBVTtBQUNaOztBQUVBO0VBQ0UsV0FBVztBQUNiOztBQUVBO0VBQ0UsV0FBVztBQUNiIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vKiBDb21tZW50ICovXG5cbi5jbGFzcyB7XG4gIGNvbG9yOiByZWQ7XG4gIGJhY2tncm91bmQ6IHVybChcIi4vdXJsL2ltZy5wbmdcIik7XG59XG5cbi5jbGFzcy1kdXBsaWNhdGUtdXJsIHtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi91cmwvaW1nLnBuZ1wiKTtcbn1cblxuOnJvb3Qge1xuICAtLWZvbzogMXB4O1xuICAtLWJhcjogMnB4O1xufVxuXG4uY2xhc3MgeyBhOiBiIGMgZDsgfVxuXG4udHdvIHt9XG5cbi51LW1cXCsgeyBhOiBiIGMgZDsgfVxuXG4uY2xhc3MgeyBjb250ZW50OiBcIlxcRjEwQ1wiIH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICBib2R5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGJsdWU7XG4gIH1cbn1cblxuLmNsYXNzIHtcbiAgY29udGVudDogXCJcXDIxOTNcIjtcbiAgY29udGVudDogXCJcXDIxOTNcXDIxOTNcIjtcbiAgY29udGVudDogXCJcXDIxOTMgXFwyMTkzXCI7XG4gIGNvbnRlbnQ6IFwiXFwyMTkzXFwyMTkzXFwyMTkzXCI7XG4gIGNvbnRlbnQ6IFwiXFwyMTkzIFxcMjE5MyBcXDIxOTNcIjtcbn1cblxuLi10b3Age31cbi5cXC10b3Age31cblxuI1xcI3Rlc3Qge31cblxuLmdyaWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG4uZ3JpZC5cXC10b3Age1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cbi5ncmlkLi10b3Age1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cbi5ncmlkLlxcLW1pZGRsZSB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uZ3JpZC5cXC1ib3R0b20ge1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG59XG5cbi51LW1cXDAwMDAyYiB7fVxuXG4udS1tMDAwMDJiIHt9XG5cbiN1LW1cXCsge31cblxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiAnw6XCvsKuw6jCvcKvw6nCm8KFw6nCu8KRJzsgLyogc29tZSBjaGluZXNlIGZvbnQgbmFtZSAqL1xufVxuXG4ubXlTdHlsZSB7XG4gIGNvbnRlbnQ6ICdcXGU5MDEnO1xufVxuXG4ubXlTdHlsZSB7XG4gIGNvbnRlbnQ6ICdcXEU5MDEnO1xufVxuXG4uw6LCmcKrIHt9XG5cbi5cXDNBIFxcYFxcKCB7fSAvKiBtYXRjaGVzIGVsZW1lbnRzIHdpdGggY2xhc3M9XCI6YChcIiAqL1xuLlxcMzEgYTJiM2Mge30gLyogbWF0Y2hlcyBlbGVtZW50cyB3aXRoIGNsYXNzPVwiMWEyYjNjXCIgKi9cbiNcXCNmYWtlLWlkIHt9IC8qIG1hdGNoZXMgdGhlIGVsZW1lbnQgd2l0aCBpZD1cIiNmYWtlLWlkXCIgKi9cbiMtYS1iLWMtIHt9IC8qIG1hdGNoZXMgdGhlIGVsZW1lbnQgd2l0aCBpZD1cIi1hLWItYy1cIiAqL1xuI8OCwqkge30gLyogbWF0Y2hlcyB0aGUgZWxlbWVudCB3aXRoIGlkPVwiw4LCqVwiICovXG5cbjpyb290IHtcbiAgLS10aXRsZS1hbGlnbjogY2VudGVyO1xuICAtLXNyLW9ubHk6IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY2xpcDogcmVjdCgwLDAsMCwwKTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcbiAgICBib3JkZXI6IDA7XG4gIH07XG59XG5cbi50ZXN0IHtcbiAgY29udGVudDogXCJcXDIwMTRcXEEwXCI7XG4gIGNvbnRlbnQ6IFwiXFwyMDE0IFxcQTBcIjtcbiAgY29udGVudDogXCJcXEEwIFxcMjAxNFwiO1xuICBjb250ZW50OiBcIlxcQTBcXDIwMTRcIjtcbiAgbWFyZ2luLXRvcDogMXB4XFw5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwXFw5O1xufVxuXG4ubGlnaHQub24gLmJ1bGI6YmVmb3Jle1xuICBjb250ZW50OiAnw7DCn8KSwqEnO1xufVxuXG4uYmFzZTY0IHtcbiAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1nL2pwZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJnQUFBQVlDQVlBQUFEZ2R6MzRBQUFBQVhOU1IwSUFyczRjNlFBQUFoeEpSRUZVU0EzdGs3MXJVMUVZeG5NVEVvSlVrb3dXd2RKMmFrRUhCZkdqQ2lJRjZaeWxWVUtTbTJUcVpMR0krQS9vSXUyVVhtOEM0bEF5RjRTV2ppMHRkRkxvMUVvN1ZOMFNhQkVoSDdlL056MG5QVGZHT2ppYUN5ZlBjNTczNHpsZkNRVDZYLzhFL3ZVRXJMODFLQmFMOXkzTFNudWVkNVBjSVRqVU93UjNnc0ZnMmJidGpZdDYvTkdnWEM0UDFldDFsMmFQTG1wQWJEMFNpZGpwZFBxZ1YxNVBBOWQxN3pRYWpVOFV4SFFSSy80RzM1UTVwdmVBSzhMbEkxWmpQTW5sY2x0bnl2bnZid2FPNDF4dnRWcXk3WUh6dE1BQ3E1eG5sYjlFWTNkUmR2Y0dvMWtqNXdSK3QxQW9mREcwZ00rQTg3NUU4RE5qUkNleHNyVjhQajlacVZRaXRWcnRxZWp4ZVB4ak1wbXNzNWhWVEI0YnVYdk1iMkR5VTJ0QlRSUytCanZObFZZVXBQbDdpdVZPM0dxMXVvUXgxRnRTT1cxZ1BncDVaV3JkQnRObVVEZ3Y1YXNneFE4RjFhZjV2aFkwWWp5anVXQzN3VHN6S0p6N0dCT2tjRmxRZlcyT05xNEZqV2krSGo2RFJDS3hRT0syVGxZNHg5MkV1WWQ1ZHZNQWJZSXpmaWthdTNwdTV0SjhLeGFMTGZvMGN5S2NpN3RLNFRaalVNY29YQW1Id3psZTBRL1JhQzVQMUdGTXlWeDlSOUZvOUhZcWxUclNncUR2RmVsQXFWUWE1aG11TVIvV0d0akFhQmRqd0JvRFEwWnNud1ZNWmpLWjluMFplbThEU2VEUGRyblpiTDZGMmwzTk92VVlOWms0b1ZEb1JUYWJQZTRFRE5KekIwWmNqQVl4ZW9aMmkzRk54UTdCSFl3L2NCL2ZsZGFILy9VRVRnSEhPOFM0NEtiZlhnQUFBQUJKUlU1RXJrSmdnZz09KTtcbn1cblxuYVtocmVmPScnXSB7XG4gIGNvbG9yOiByZWQ7XG59XG5cbmFbaHJlZj0nJyBpXSB7XG4gIGNvbG9yOiByZWQ7XG59XG5cbmFbaHJlZj1cIlwiXSB7XG4gIGNvbG9yOiBibHVlO1xufVxuXG5hW2hyZWY9XCJcIiBpXSB7XG4gIGNvbG9yOiBibHVlO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ== */", -} -`; - -exports[`'exportType' option should work with 'css-style-sheet' value and generate source maps: warnings 1`] = `Array []`; - -exports[`'exportType' option should work with 'css-style-sheet' value and keep import and emit errors on \`@import\` at-rules: errors 1`] = ` -Array [ - "ModuleError: Module Error (from \`replaced original path\`): -/test/fixtures/basic.css:3:1: '@import' rules are not allowed here and will not be processed", -] -`; - -exports[`'exportType' option should work with 'css-style-sheet' value and keep import and emit errors on \`@import\` at-rules: module 1`] = ` -"// Imports -import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../src/runtime/noSourceMaps.js\\"; -import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; -import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; -var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); -var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); -var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); -var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); -// Module -___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n@import 'imported.css';\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); -// Exports -var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); -___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); -export default ___CSS_LOADER_STYLE_SHEET___; -" -`; - -exports[`'exportType' option should work with 'css-style-sheet' value and keep import and emit errors on \`@import\` at-rules: result 1`] = ` -CSSStyleSheet { - "text": "@charset \\"UTF-8\\"; - -@import 'imported.css'; - -/* Comment */ - -.class { - color: red; - background: url(file:///webpack/public/path/img.png); -} - -.class-duplicate-url { - background: url(file:///webpack/public/path/img.png); -} - -:root { - --foo: 1px; - --bar: 2px; -} - -.class { a: b c d; } - -.two {} - -.u-m\\\\+ { a: b c d; } - -.class { content: \\"\\\\F10C\\" } - -@media only screen and (max-width: 600px) { - body { - background-color: lightblue; - } -} - -.class { - content: \\"\\\\2193\\"; - content: \\"\\\\2193\\\\2193\\"; - content: \\"\\\\2193 \\\\2193\\"; - content: \\"\\\\2193\\\\2193\\\\2193\\"; - content: \\"\\\\2193 \\\\2193 \\\\2193\\"; -} - -.-top {} -.\\\\-top {} - -#\\\\#test {} - -.grid { - display: flex; - flex-wrap: wrap; -} -.grid.\\\\-top { - align-items: flex-start; -} -.grid.-top { - align-items: flex-start; -} -.grid.\\\\-middle { - align-items: center; -} -.grid.\\\\-bottom { - align-items: flex-end; -} - -.u-m\\\\00002b {} - -.u-m00002b {} - -#u-m\\\\+ {} - -body { - font-family: '微软雅黑'; /* some chinese font name */ -} - -.myStyle { - content: '\\\\e901'; -} - -.myStyle { - content: '\\\\E901'; -} - -.♫ {} - -.\\\\3A \\\\\`\\\\( {} /* matches elements with class=\\":\`(\\" */ -.\\\\31 a2b3c {} /* matches elements with class=\\"1a2b3c\\" */ -#\\\\#fake-id {} /* matches the element with id=\\"#fake-id\\" */ -#-a-b-c- {} /* matches the element with id=\\"-a-b-c-\\" */ -#© {} /* matches the element with id=\\"©\\" */ - -:root { - --title-align: center; - --sr-only: { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - overflow: hidden; - clip: rect(0,0,0,0); - white-space: nowrap; - clip-path: inset(50%); - border: 0; - }; -} - -.test { - content: \\"\\\\2014\\\\A0\\"; - content: \\"\\\\2014 \\\\A0\\"; - content: \\"\\\\A0 \\\\2014\\"; - content: \\"\\\\A0\\\\2014\\"; - margin-top: 1px\\\\9; - background-color: #000\\\\9; -} - -.light.on .bulb:before{ - content: '💡'; -} - -.base64 { - background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); -} - -a[href=''] { - color: red; -} - -a[href='' i] { - color: red; -} - -a[href=\\"\\"] { - color: blue; -} - -a[href=\\"\\" i] { - color: blue; -} -", -} -`; - -exports[`'exportType' option should work with 'css-style-sheet' value and keep import and emit errors on \`@import\` at-rules: warnings 1`] = `Array []`; - -exports[`'exportType' option should work with 'css-style-sheet' value and urls: errors 1`] = ` -Array [ - "ModuleError: Module Error (from \`replaced original path\`): -/test/fixtures/url/url.css:1:1: '@import' rules are not allowed here and will not be processed", -] -`; - -exports[`'exportType' option should work with 'css-style-sheet' value and urls: module 1`] = ` -"// Imports -import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../../src/runtime/noSourceMaps.js\\"; -import ___CSS_LOADER_API_IMPORT___ from \\"../../../src/runtime/api.js\\"; -import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../../src/runtime/getUrl.js\\"; -var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"package/img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_2___ = new URL(\\"./other-img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_3___ = new URL(\\"./img img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_4___ = new URL(\\"/img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_5___ = new URL(\\"data:image/png;base64,AAA\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_6___ = new URL(\\"data:image/svg+xml;charset=utf-8,\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_7___ = new URL(\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_8___ = new URL(\\"data:image/svg+xml;charset=utf-8,#filter\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_9___ = new URL(\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba%28255%2C255%2C255%2C1%29%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_10___ = new URL(\\"./font.woff\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_11___ = new URL(\\"./font.woff2\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_12___ = new URL(\\"./font.eot\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_13___ = new URL(\\"package/font.ttf\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_14___ = new URL(\\"./font with spaces.eot\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_15___ = new URL(\\"./font.svg\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_16___ = new URL(\\"./font.woff2?foo=bar\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_17___ = new URL(\\"./img1x.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_18___ = new URL(\\"./img2x.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_19___ = new URL(\\"./img.png?foo\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_20___ = new URL(\\"./img.png?foo=bar\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_21___ = new URL(\\"./img.png?\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_22___ = new URL(\\"img-simple.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_23___ = new URL(\\"/url/img-simple.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_24___ = new URL(\\"../url/img-simple.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_25___ = new URL(\\"aliasesImg/img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_26___ = new URL(\\"./nested/img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_27___ = new URL(\\"nested/img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_28___ = new URL(\\"./img3x.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_29___ = new URL(\\"./img1x.png?foo=bar\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_30___ = new URL(\\"./img'img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_31___ = new URL(\\"./img'''img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_32___ = new URL(\\"./img(img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_33___ = new URL(\\"./img)img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_34___ = new URL(\\"./img'() img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_35___ = new URL(\\"img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_36___ = new URL(\\"./something.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_37___ = new URL(\\"./something.png?foo=bar\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_38___ = new URL(\\"./something.png?bar=foo\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_39___ = new URL(\\"./something.png?foo=1&bar=2\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_40___ = new URL(\\"./something.png?foo=2&bar=1\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_41___ = new URL(\\"data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3C%21DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%0A%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%0A%09%20width%3D%22191px%22%20height%3D%22191px%22%20viewBox%3D%220%200%20191%20191%22%20enable-background%3D%22new%200%200%20191%20191%22%20xml%3Aspace%3D%22preserve%22%3E%0A%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M95.5%2C0C42.8%2C0%2C0%2C42.8%2C0%2C95.5S42.8%2C191%2C95.5%2C191S191%2C148.2%2C191%2C95.5S148.2%2C0%2C95.5%2C0z%20M95.5%2C187.6%0A%09c-50.848%2C0-92.1-41.25-92.1-92.1c0-50.848%2C41.252-92.1%2C92.1-92.1c50.85%2C0%2C92.1%2C41.252%2C92.1%2C92.1%0A%09C187.6%2C146.35%2C146.35%2C187.6%2C95.5%2C187.6z%22%2F%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M92.9%2C10v8.6H91v-6.5c-0.1%2C0.1-0.2%2C0.2-0.4%2C0.3c-0.2%2C0.1-0.3%2C0.2-0.4%2C0.2c-0.1%2C0-0.3%2C0.1-0.5%2C0.2%0A%09%09c-0.2%2C0.1-0.3%2C0.1-0.5%2C0.1v-1.6c0.5-0.1%2C0.9-0.3%2C1.4-0.5c0.5-0.2%2C0.8-0.5%2C1.2-0.7h1.1V10z%22%2F%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M97.1%2C17.1h3.602v1.5h-5.6V18c0-0.4%2C0.1-0.8%2C0.2-1.2c0.1-0.4%2C0.3-0.6%2C0.5-0.9c0.2-0.3%2C0.5-0.5%2C0.7-0.7%0A%09%09c0.2-0.2%2C0.5-0.4%2C0.7-0.6c0.199-0.2%2C0.5-0.3%2C0.6-0.5c0.102-0.2%2C0.301-0.3%2C0.5-0.5c0.2-0.2%2C0.2-0.3%2C0.301-0.5%0A%09%09c0.101-0.2%2C0.101-0.3%2C0.101-0.5c0-0.4-0.101-0.6-0.3-0.8c-0.2-0.2-0.4-0.3-0.801-0.3c-0.699%2C0-1.399%2C0.3-2.101%2C0.9v-1.6%0A%09%09c0.7-0.5%2C1.5-0.7%2C2.5-0.7c0.399%2C0%2C0.8%2C0.1%2C1.101%2C0.2c0.301%2C0.1%2C0.601%2C0.3%2C0.899%2C0.5c0.3%2C0.2%2C0.399%2C0.5%2C0.5%2C0.8%0A%09%09c0.101%2C0.3%2C0.2%2C0.6%2C0.2%2C1s-0.102%2C0.7-0.2%2C1c-0.099%2C0.3-0.3%2C0.6-0.5%2C0.8c-0.2%2C0.2-0.399%2C0.5-0.7%2C0.7c-0.3%2C0.2-0.5%2C0.4-0.8%2C0.6%0A%09%09c-0.2%2C0.1-0.399%2C0.3-0.5%2C0.4s-0.3%2C0.3-0.5%2C0.4s-0.2%2C0.3-0.3%2C0.4C97.1%2C17%2C97.1%2C17%2C97.1%2C17.1z%22%2F%3E%0A%3C%2Fg%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M15%2C95.4c0%2C0.7-0.1%2C1.4-0.2%2C2c-0.1%2C0.6-0.4%2C1.1-0.7%2C1.5C13.8%2C99.3%2C13.4%2C99.6%2C12.9%2C99.8s-1%2C0.3-1.5%2C0.3%0A%09%09c-0.7%2C0-1.3-0.1-1.8-0.3v-1.5c0.4%2C0.3%2C1%2C0.4%2C1.6%2C0.4c0.6%2C0%2C1.1-0.2%2C1.5-0.7c0.4-0.5%2C0.5-1.1%2C0.5-1.9l0%2C0%0A%09%09C12.8%2C96.7%2C12.3%2C96.9%2C11.5%2C96.9c-0.3%2C0-0.7-0.102-1-0.2c-0.3-0.101-0.5-0.3-0.8-0.5c-0.3-0.2-0.4-0.5-0.5-0.8%0A%09%09c-0.1-0.3-0.2-0.7-0.2-1c0-0.4%2C0.1-0.8%2C0.2-1.2c0.1-0.4%2C0.3-0.7%2C0.6-0.9c0.3-0.2%2C0.6-0.5%2C0.9-0.6c0.3-0.1%2C0.8-0.2%2C1.2-0.2%0A%09%09c0.5%2C0%2C0.9%2C0.1%2C1.2%2C0.3c0.3%2C0.2%2C0.7%2C0.4%2C0.9%2C0.8s0.5%2C0.7%2C0.6%2C1.2S15%2C94.8%2C15%2C95.4z%20M13.1%2C94.4c0-0.2%2C0-0.4-0.1-0.6%0A%09%09c-0.1-0.2-0.1-0.4-0.2-0.5c-0.1-0.1-0.2-0.2-0.4-0.3c-0.2-0.1-0.3-0.1-0.5-0.1c-0.2%2C0-0.3%2C0-0.4%2C0.1s-0.3%2C0.2-0.3%2C0.3%0A%09%09c0%2C0.1-0.2%2C0.3-0.2%2C0.4c0%2C0.1-0.1%2C0.4-0.1%2C0.6c0%2C0.2%2C0%2C0.4%2C0.1%2C0.6c0.1%2C0.2%2C0.1%2C0.3%2C0.2%2C0.4c0.1%2C0.1%2C0.2%2C0.2%2C0.4%2C0.3%0A%09%09c0.2%2C0.1%2C0.3%2C0.1%2C0.5%2C0.1c0.2%2C0%2C0.3%2C0%2C0.4-0.1s0.2-0.2%2C0.3-0.3c0.1-0.1%2C0.2-0.2%2C0.2-0.4C13%2C94.7%2C13.1%2C94.6%2C13.1%2C94.4z%22%2F%3E%0A%3C%2Fg%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M176%2C99.7V98.1c0.6%2C0.4%2C1.2%2C0.602%2C2%2C0.602c0.5%2C0%2C0.8-0.102%2C1.1-0.301c0.301-0.199%2C0.4-0.5%2C0.4-0.801%0A%09%09c0-0.398-0.2-0.699-0.5-0.898c-0.3-0.2-0.8-0.301-1.3-0.301h-0.802V95h0.701c1.101%2C0%2C1.601-0.4%2C1.601-1.1c0-0.7-0.4-1-1.302-1%0A%09%09c-0.6%2C0-1.1%2C0.2-1.6%2C0.5v-1.5c0.6-0.3%2C1.301-0.4%2C2.1-0.4c0.9%2C0%2C1.5%2C0.2%2C2%2C0.6s0.701%2C0.9%2C0.701%2C1.5c0%2C1.1-0.601%2C1.8-1.701%2C2.1l0%2C0%0A%09%09c0.602%2C0.1%2C1.102%2C0.3%2C1.4%2C0.6s0.5%2C0.8%2C0.5%2C1.3c0%2C0.801-0.3%2C1.4-0.9%2C1.9c-0.6%2C0.5-1.398%2C0.7-2.398%2C0.7%0A%09%09C177.2%2C100.1%2C176.5%2C100%2C176%2C99.7z%22%2F%3E%0A%3C%2Fg%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M98.5%2C179.102c0%2C0.398-0.1%2C0.799-0.2%2C1.199C98.2%2C180.7%2C98%2C181%2C97.7%2C181.2s-0.601%2C0.5-0.9%2C0.601%0A%09%09c-0.3%2C0.1-0.7%2C0.199-1.2%2C0.199c-0.5%2C0-0.9-0.1-1.3-0.3c-0.4-0.2-0.7-0.399-0.9-0.8c-0.2-0.4-0.5-0.7-0.6-1.2%0A%09%09c-0.1-0.5-0.2-1-0.2-1.601c0-0.699%2C0.1-1.399%2C0.3-2c0.2-0.601%2C0.4-1.101%2C0.8-1.5c0.4-0.399%2C0.7-0.699%2C1.2-1c0.5-0.3%2C1-0.3%2C1.6-0.3%0A%09%09c0.6%2C0%2C1.2%2C0.101%2C1.5%2C0.199v1.5c-0.4-0.199-0.9-0.399-1.4-0.399c-0.3%2C0-0.6%2C0.101-0.8%2C0.2c-0.2%2C0.101-0.5%2C0.3-0.7%2C0.5%0A%09%09c-0.2%2C0.199-0.3%2C0.5-0.4%2C0.8c-0.1%2C0.301-0.2%2C0.7-0.2%2C1.101l0%2C0c0.4-0.601%2C1-0.8%2C1.8-0.8c0.3%2C0%2C0.7%2C0.1%2C0.9%2C0.199%0A%09%09c0.2%2C0.101%2C0.5%2C0.301%2C0.7%2C0.5c0.199%2C0.2%2C0.398%2C0.5%2C0.5%2C0.801C98.5%2C178.2%2C98.5%2C178.7%2C98.5%2C179.102z%20M96.7%2C179.2%0A%09%09c0-0.899-0.4-1.399-1.1-1.399c-0.2%2C0-0.3%2C0-0.5%2C0.1c-0.2%2C0.101-0.3%2C0.201-0.4%2C0.301c-0.1%2C0.101-0.2%2C0.199-0.2%2C0.4%0A%09%09c0%2C0.199-0.1%2C0.299-0.1%2C0.5c0%2C0.199%2C0%2C0.398%2C0.1%2C0.6s0.1%2C0.3%2C0.2%2C0.5c0.1%2C0.199%2C0.2%2C0.199%2C0.4%2C0.3c0.2%2C0.101%2C0.3%2C0.101%2C0.5%2C0.101%0A%09%09c0.2%2C0%2C0.3%2C0%2C0.5-0.101c0.2-0.101%2C0.301-0.199%2C0.301-0.3c0-0.1%2C0.199-0.301%2C0.199-0.399C96.6%2C179.7%2C96.7%2C179.4%2C96.7%2C179.2z%22%2F%3E%0A%3C%2Fg%3E%0A%3Ccircle%20fill%3D%22%23636363%22%20cx%3D%2295%22%20cy%3D%2295%22%20r%3D%227%22%2F%3E%0A%3C%2Fsvg%3E%0A\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_42___ = new URL(\\"/guide/img/banWord/addCoinDialogTitleBg.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_43___ = new URL(\\"!!../../helpers/url-loader.js?esModule=false!package/img-single.png?ignore-asset-modules\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_44___ = new URL(\\"nested/other.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_45___ = new URL(\\"data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27none%27 stroke=%27%23343a40%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27M2 5l6 6 6-6%27/%3e%3c/svg%3e\\", import.meta.url); -var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); -var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); -var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___, { hash: \\"#hash\\" }); -var ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); -var ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___); -var ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___); -var ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___); -var ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___); -var ___CSS_LOADER_URL_REPLACEMENT_7___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___); -var ___CSS_LOADER_URL_REPLACEMENT_8___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___); -var ___CSS_LOADER_URL_REPLACEMENT_9___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_8___); -var ___CSS_LOADER_URL_REPLACEMENT_10___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_9___); -var ___CSS_LOADER_URL_REPLACEMENT_11___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_10___); -var ___CSS_LOADER_URL_REPLACEMENT_12___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___); -var ___CSS_LOADER_URL_REPLACEMENT_13___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_12___); -var ___CSS_LOADER_URL_REPLACEMENT_14___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_13___); -var ___CSS_LOADER_URL_REPLACEMENT_15___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_14___); -var ___CSS_LOADER_URL_REPLACEMENT_16___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_15___, { hash: \\"#svgFontName\\" }); -var ___CSS_LOADER_URL_REPLACEMENT_17___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_16___); -var ___CSS_LOADER_URL_REPLACEMENT_18___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_12___, { hash: \\"?#iefix\\" }); -var ___CSS_LOADER_URL_REPLACEMENT_19___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_14___, { hash: \\"?#iefix\\" }); -var ___CSS_LOADER_URL_REPLACEMENT_20___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___); -var ___CSS_LOADER_URL_REPLACEMENT_21___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_18___); -var ___CSS_LOADER_URL_REPLACEMENT_22___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_19___); -var ___CSS_LOADER_URL_REPLACEMENT_23___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_20___); -var ___CSS_LOADER_URL_REPLACEMENT_24___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_20___, { hash: \\"#hash\\" }); -var ___CSS_LOADER_URL_REPLACEMENT_25___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_21___); -var ___CSS_LOADER_URL_REPLACEMENT_26___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_22___); -var ___CSS_LOADER_URL_REPLACEMENT_27___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_23___); -var ___CSS_LOADER_URL_REPLACEMENT_28___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_24___); -var ___CSS_LOADER_URL_REPLACEMENT_29___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_25___); -var ___CSS_LOADER_URL_REPLACEMENT_30___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_26___); -var ___CSS_LOADER_URL_REPLACEMENT_31___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_27___); -var ___CSS_LOADER_URL_REPLACEMENT_32___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___, { needQuotes: true }); -var ___CSS_LOADER_URL_REPLACEMENT_33___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_18___, { needQuotes: true }); -var ___CSS_LOADER_URL_REPLACEMENT_34___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___, { needQuotes: true }); -var ___CSS_LOADER_URL_REPLACEMENT_35___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_28___, { needQuotes: true }); -var ___CSS_LOADER_URL_REPLACEMENT_36___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_29___, { needQuotes: true }); -var ___CSS_LOADER_URL_REPLACEMENT_37___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___, { hash: \\"#hash\\", needQuotes: true }); -var ___CSS_LOADER_URL_REPLACEMENT_38___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___, { hash: \\"?#iefix\\", needQuotes: true }); -var ___CSS_LOADER_URL_REPLACEMENT_39___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_28___); -var ___CSS_LOADER_URL_REPLACEMENT_40___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_30___); -var ___CSS_LOADER_URL_REPLACEMENT_41___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_31___); -var ___CSS_LOADER_URL_REPLACEMENT_42___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_32___); -var ___CSS_LOADER_URL_REPLACEMENT_43___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_33___); -var ___CSS_LOADER_URL_REPLACEMENT_44___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_34___); -var ___CSS_LOADER_URL_REPLACEMENT_45___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_35___); -var ___CSS_LOADER_URL_REPLACEMENT_46___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_36___); -var ___CSS_LOADER_URL_REPLACEMENT_47___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_37___); -var ___CSS_LOADER_URL_REPLACEMENT_48___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_37___, { hash: \\"#hash\\" }); -var ___CSS_LOADER_URL_REPLACEMENT_49___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_38___); -var ___CSS_LOADER_URL_REPLACEMENT_50___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_37___, { hash: \\"#foo\\" }); -var ___CSS_LOADER_URL_REPLACEMENT_51___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_38___, { hash: \\"#bar\\" }); -var ___CSS_LOADER_URL_REPLACEMENT_52___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_39___); -var ___CSS_LOADER_URL_REPLACEMENT_53___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_40___); -var ___CSS_LOADER_URL_REPLACEMENT_54___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_41___); -var ___CSS_LOADER_URL_REPLACEMENT_55___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_42___); -var ___CSS_LOADER_URL_REPLACEMENT_56___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_43___); -var ___CSS_LOADER_URL_REPLACEMENT_57___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_44___); -var ___CSS_LOADER_URL_REPLACEMENT_58___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_45___); -// Module -___CSS_LOADER_EXPORT___.push([module.id, \\"@import \\\\\\"./imported.css\\\\\\";\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\"\\\\n );\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_6___ + \\") url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_8___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n filter: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n filter: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \\");\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url(#highlight);\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_11___ + \\") format('woff'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_12___ + \\") format('woff2'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \\") format('eot'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") format('truetype'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_16___ + \\") format('svg'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_17___ + \\") format('woff2'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_18___ + \\") format('embedded-opentype'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_19___ + \\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n body {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n }\\\\n}\\\\n\\\\na {\\\\n content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes anim {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") xyz;\\\\n}\\\\n\\\\n.a {\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x)\\\\n}\\\\n\\\\n.a {\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x)\\\\n}\\\\n\\\\n.class {\\\\n background: green url() xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url('') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(' ') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\n ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_22___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_23___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: ___CSS_LOADER_URL___;\\\\n background: ___CSS_LOADER_URL___INDEX___;\\\\n background: ___CSS_LOADER_URL___99999___;\\\\n background: ___CSS_LOADER_IMPORT___;\\\\n background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n.pure-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_26___ + \\");\\\\n}\\\\n\\\\n.root-relative {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_27___ + \\");\\\\n}\\\\n\\\\n.above-below {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_28___ + \\");\\\\n}\\\\n\\\\n.tilde {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\");\\\\n}\\\\n\\\\n.aliases {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_29___ + \\") ;\\\\n}\\\\n\\\\na {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_30___ + \\");\\\\n}\\\\n\\\\na {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_31___ + \\");\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n /* Broken */\\\\n background-image: -webkit-image-set();\\\\n background-image: -webkit-image-set('');\\\\n background-image: image-set();\\\\n background-image: image-set('');\\\\n background-image: image-set(\\\\\\"\\\\\\");\\\\n background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n background-image: image-set(url());\\\\n background-image: image-set(\\\\n url()\\\\n );\\\\n background-image: image-set(URL());\\\\n background-image: image-set(url(''));\\\\n background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n background-image: image-set(url('') 1x);\\\\n background-image: image-set(1x);\\\\n background-image: image-set(\\\\n 1x\\\\n );\\\\n background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n /* Strings */\\\\n background-image: -webkit-image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x),\\\\n image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x);\\\\n background-image: image-set(\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x,\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x,\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\" 600dpi\\\\n );\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_37___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_38___ + \\" 1x);\\\\n\\\\n /* With \`url\` function */\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x);\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x);\\\\n background-image: -webkit-image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x);\\\\n background-image: image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x);\\\\n background-image: image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_39___ + \\") 600dpi\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 2x);\\\\n\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x);\\\\n}\\\\n\\\\n.class {\\\\n /* Not allowed on windows */\\\\n /* background: url(./img\\\\\\\\\\\\\\"img.png); */\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n\\\\n background-image: image-set(\\\\n /* Not allowed on windows */\\\\n /* url(./img\\\\\\\\\\\\\\"img.png) 1x, */\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\") 2x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\") 3x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\") 4x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\") 5x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 6x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\") 7x\\\\n );\\\\n}\\\\n\\\\n.class-class-class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n}\\\\n\\\\n/* Comment */\\\\n\\\\n.class.class.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n}\\\\n\\\\n.other-test-case {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n}\\\\n\\\\n.qqq {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_45___ + \\");\\\\n}\\\\n\\\\n.www {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n /* Should be one import */\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_46___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_46___ + \\");\\\\n\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_47___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_47___ + \\");\\\\n\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_48___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_48___ + \\");\\\\n\\\\n /* Should be two imports */\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_47___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_49___ + \\");\\\\n\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_50___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_51___ + \\");\\\\n\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_52___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_53___ + \\");\\\\n}\\\\n\\\\n.base {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_54___ + \\") 50% 50%/191px no-repeat;\\\\n}\\\\n\\\\n.strange {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.my-background {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_55___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\", 'foo', './img.png', url('./img.png'));\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\", 'foo', './img.png', url('./img.png')) 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x);\\\\n}\\\\n\\\\n.button {\\\\n background-image: url('data:image/svg+xml;utf8,');\\\\n}\\\\n\\\\n/* We need to use \`resourceQuery: /inline/\` */\\\\n/* Hard to test on webpack v4 */\\\\n.qqq {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_56___ + \\")\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_45___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_45___ + \\");\\\\n}\\\\n\\\\n/** Prefer relative **/\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_31___ + \\");\\\\n}\\\\n\\\\n/** Prefer from modules **/\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_57___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\");\\\\n}\\\\n\\\\n.foo {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_58___ + \\");\\\\n}\\\\n\\", \\"\\"]); -// Exports -var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); -___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); -export default ___CSS_LOADER_STYLE_SHEET___; -" -`; - -exports[`'exportType' option should work with 'css-style-sheet' value and urls: result 1`] = ` -CSSStyleSheet { - "text": "@import \\"./imported.css\\"; - -.class { - background: url(file:///webpack/public/path/img.png); -} - -.class { - background: url(file:///webpack/public/path/img.png); -} - -.class { - background: url(file:///webpack/public/path/img.png); -} - -.class { - background: url(file:///webpack/public/path/img.png#hash); -} - -.class { - background: url( - file:///webpack/public/path/img.png - ); -} - -.class { - background: green url( file:///webpack/public/path/img.png ) xyz; -} - -.class { - background: green url( file:///webpack/public/path/img.png ) xyz; -} - -.class { - background: green url( file:///webpack/public/path/img.png ) xyz; -} - -.class { - background: green url(file:///webpack/public/path/img.png) url(file:///webpack/public/path/other-img.png) xyz; -} - -.class { - background: green url( \\"file:///webpack/public/path/img%20img.png\\" ) xyz; -} - -.class { - background: green url( \\"file:///webpack/public/path/img%20img.png\\" ) xyz; -} - -.class { - background: green url(file:///webpack/public/path/img.png) xyz; -} - -.class { - background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) xyz; -} - -.class { - background-image: url(\\"data:image/svg+xml;charset=utf-8,\\"); -} - -.class { - background-image: url(\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\"); -} - -.class { - filter: url(\\"data:image/svg+xml;charset=utf-8,#filter\\"); -} - -.class { - filter: url(\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba%28255%2C255%2C255%2C1%29%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter\\"); -} - -.highlight { - filter: url(#highlight); -} - -.highlight { - filter: url('#line-marker'); -} - -@font-face { - src: url(file:///webpack/public/path/font.woff) format('woff'), - url(file:///webpack/public/path/font.woff2) format('woff2'), - url(file:///webpack/public/path/font.eot) format('eot'), - url(file:///webpack/public/path/font.ttf) format('truetype'), - url(\\"file:///webpack/public/path/font%20with%20spaces.eot\\") format(\\"embedded-opentype\\"), - url(file:///webpack/public/path/font.svg#svgFontName) format('svg'), - url(file:///webpack/public/path/font.woff2) format('woff2'), - url(file:///webpack/public/path/font.eot?#iefix) format('embedded-opentype'), - url(\\"file:///webpack/public/path/font%20with%20spaces.eot?#iefix\\") format('embedded-opentype'); -} - -@media (min-width: 500px) { - body { - background: url(file:///webpack/public/path/img.png); - } -} - -a { - content: \\"do not use url(path)\\"; -} - -b { - content: 'do not \\"use\\" url(path)'; -} - -@keyframes anim { - background: green url(file:///webpack/public/path/img.png) xyz; -} - -.a { - background-image: -webkit-image-set(url(file:///webpack/public/path/img1x.png) 1x, url(file:///webpack/public/path/img2x.png) 2x) -} - -.a { - background-image: image-set(url(file:///webpack/public/path/img1x.png) 1x, url(file:///webpack/public/path/img2x.png) 2x) -} - -.class { - background: green url() xyz; -} - -.class { - background: green url('') xyz; -} - -.class { - background: green url(\\"\\") xyz; -} - -.class { - background: green url(' ') xyz; -} - -.class { - background: green url( - ) xyz; -} - -.class { - background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz; -} - -.class { - background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz; -} - -.class { - background: url(file:///webpack/public/path/img.png); -} - -.class { - background: url(file:///webpack/public/path/img.png); -} - -.class { - background: url(file:///webpack/public/path/img.png#hash); -} - -.class { - background: url(file:///webpack/public/path/img.png#hash); -} - -.class { - background: url(file:///webpack/public/path/img.png); -} - -.class { - background-image: url(file:///webpack/public/path/img.png) url(\\"data:image/svg+xml;charset=utf-8,\\") url(file:///webpack/public/path/img.png); -} - -.class { - background: ___CSS_LOADER_URL___; - background: ___CSS_LOADER_URL___INDEX___; - background: ___CSS_LOADER_URL___99999___; - background: ___CSS_LOADER_IMPORT___; - background: ___CSS_LOADER_IMPORT___INDEX___; - background: ___CSS_LOADER_IMPORT___99999___; -} - -.pure-url { - background: url(file:///webpack/public/path/img-simple.png); -} - -.root-relative { - background: url(file:///webpack/public/path/img-simple.png); -} - -.above-below { - background: url(file:///webpack/public/path/img-simple.png); -} - -.tilde { - background: url(file:///webpack/public/path/img.png); -} - -.aliases { - background: url(file:///webpack/public/path/img.png) ; -} - -a { - background: url(file:///webpack/public/path/img.png); -} - -a { - background: url(file:///webpack/public/path/img.png); -} - -@font-face { - src: url(\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\"); -} - -.class { - /* Broken */ - background-image: -webkit-image-set(); - background-image: -webkit-image-set(''); - background-image: image-set(); - background-image: image-set(''); - background-image: image-set(\\"\\"); - background-image: image-set(\\"\\" 1x); - background-image: image-set(url()); - background-image: image-set( - url() - ); - background-image: image-set(URL()); - background-image: image-set(url('')); - background-image: image-set(url(\\"\\")); - background-image: image-set(url('') 1x); - background-image: image-set(1x); - background-image: image-set( - 1x - ); - background: image-set(calc(1rem + 1px) 1x); - - /* Strings */ - background-image: -webkit-image-set(\\"file:///webpack/public/path/img1x.png\\" 1x, \\"file:///webpack/public/path/img2x.png\\" 2x); - background-image: image-set(\\"file:///webpack/public/path/img1x.png\\" 1x); - background-image: image-set(\\"file:///webpack/public/path/img1x.png\\" 1x, \\"file:///webpack/public/path/img2x.png\\" 2x); - background-image: image-set(\\"file:///webpack/public/path/img%20img.png\\" 1x, \\"file:///webpack/public/path/img%20img.png\\" 2x); - background-image: image-set(\\"file:///webpack/public/path/img1x.png\\" 1x, \\"file:///webpack/public/path/img2x.png\\" 2x), - image-set(\\"file:///webpack/public/path/img1x.png\\" 1x, \\"file:///webpack/public/path/img2x.png\\" 2x); - background-image: image-set( - \\"file:///webpack/public/path/img1x.png\\" 1x, - \\"file:///webpack/public/path/img2x.png\\" 2x, - \\"file:///webpack/public/path/img3x.png\\" 600dpi - ); - background-image: image-set(\\"file:///webpack/public/path/img1x.png\\" 1x); - background-image: image-set(\\"file:///webpack/public/path/img1x.png#hash\\" 1x); - background-image: image-set(\\"file:///webpack/public/path/img1x.png?#iefix\\" 1x); - - /* With \`url\` function */ - background-image: -webkit-image-set(url(file:///webpack/public/path/img1x.png) 1x, url(file:///webpack/public/path/img2x.png) 2x); - background-image: -webkit-image-set(url(file:///webpack/public/path/img1x.png) 1x); - background-image: -webkit-image-set( - url(file:///webpack/public/path/img1x.png) 1x - ); - background-image: image-set(url(file:///webpack/public/path/img1x.png) 1x); - background-image: image-set( - url(file:///webpack/public/path/img1x.png) 1x - ); - background-image: image-set(url(file:///webpack/public/path/img1x.png) 1x, url(file:///webpack/public/path/img2x.png) 2x); - background-image: image-set( - url(file:///webpack/public/path/img1x.png) 1x, - url(file:///webpack/public/path/img2x.png) 2x, - url(file:///webpack/public/path/img3x.png) 600dpi - ); - background-image: image-set(url(\\"file:///webpack/public/path/img%20img.png\\") 1x, url(\\"file:///webpack/public/path/img%20img.png\\") 2x); - - background-image: image-set(url(file:///webpack/public/path/img1x.png) 1x, \\"file:///webpack/public/path/img2x.png\\" 2x); -} - -.class { - /* Not allowed on windows */ - /* background: url(./img\\\\\\"img.png); */ - background: url(\\"file:///webpack/public/path/img'img.png\\"); - background: url(\\"file:///webpack/public/path/img'''img.png\\"); - background: url(\\"file:///webpack/public/path/img(img.png\\"); - background: url(\\"file:///webpack/public/path/img)img.png\\"); - background: url(\\"file:///webpack/public/path/img%20img.png\\"); - background: url(\\"file:///webpack/public/path/img'()%20img.png\\"); - - background-image: image-set( - /* Not allowed on windows */ - /* url(./img\\\\\\"img.png) 1x, */ - url(\\"file:///webpack/public/path/img'''img.png\\") 2x, - url(\\"file:///webpack/public/path/img'img.png\\") 3x, - url(\\"file:///webpack/public/path/img(img.png\\") 4x, - url(\\"file:///webpack/public/path/img)img.png\\") 5x, - url(\\"file:///webpack/public/path/img%20img.png\\") 6x, - url(\\"file:///webpack/public/path/img'()%20img.png\\") 7x - ); -} - -.class-class-class { - background: url(\\"file:///webpack/public/path/img'''img.png\\"); - background: url(\\"file:///webpack/public/path/img'()%20img.png\\"); - background: url(\\"file:///webpack/public/path/img'img.png\\"); - background: url(\\"file:///webpack/public/path/img(img.png\\"); - background: url(\\"file:///webpack/public/path/img)img.png\\"); - background: url(\\"file:///webpack/public/path/img%20img.png\\"); - background: url(\\"file:///webpack/public/path/img%20img.png\\"); -} - -/* Comment */ - -.class.class.class { - background: url(\\"file:///webpack/public/path/img(img.png\\"); - background: url(\\"file:///webpack/public/path/img(img.png\\"); - background: url(\\"file:///webpack/public/path/img(img.png\\"); - background: url(\\"file:///webpack/public/path/img(img.png\\"); -} - -.other-test-case { - background: url(\\"file:///webpack/public/path/img'''img.png\\"); - background: url(\\"file:///webpack/public/path/img'()%20img.png\\"); - background: url(\\"file:///webpack/public/path/img'img.png\\"); - background: url(\\"file:///webpack/public/path/img(img.png\\"); - background: url(\\"file:///webpack/public/path/img)img.png\\"); - background: url(\\"file:///webpack/public/path/img%20img.png\\"); - background: url(\\"file:///webpack/public/path/img'''img.png\\"); - background: url(\\"file:///webpack/public/path/img'()%20img.png\\"); - background: url(\\"file:///webpack/public/path/img'img.png\\"); - background: url(\\"file:///webpack/public/path/img(img.png\\"); - background: url(\\"file:///webpack/public/path/img)img.png\\"); - background: url(\\"file:///webpack/public/path/img%20img.png\\"); -} - -.qqq { - background: url(file:///webpack/public/path/img.png); -} - -.www { - background: url(\\"file:///webpack/public/path/img'''img.png\\"); - background: url(\\"file:///webpack/public/path/img'()%20img.png\\"); - background: url(\\"file:///webpack/public/path/img'img.png\\"); - background: url(\\"file:///webpack/public/path/img(img.png\\"); - background: url(\\"file:///webpack/public/path/img)img.png\\"); - background: url(\\"file:///webpack/public/path/img%20img.png\\"); - background: url(file:///webpack/public/path/img.png); - background: url(file:///webpack/public/path/img.png); - background: url(\\"file:///webpack/public/path/img'img.png\\"); - background: url(\\"file:///webpack/public/path/img'()%20img.png\\"); - background: url(\\"file:///webpack/public/path/img'()%20img.png\\"); -} - -.class { - /* Should be one import */ - background: url(file:///webpack/public/path/something.png); - background: url(file:///webpack/public/path/something.png); - - background: url(file:///webpack/public/path/something.png); - background: url(file:///webpack/public/path/something.png); - - background: url(file:///webpack/public/path/something.png#hash); - background: url(file:///webpack/public/path/something.png#hash); - - /* Should be two imports */ - background: url(file:///webpack/public/path/something.png); - background: url(file:///webpack/public/path/something.png); - - background: url(file:///webpack/public/path/something.png#foo); - background: url(file:///webpack/public/path/something.png#bar); - - background: url(file:///webpack/public/path/something.png); - background: url(file:///webpack/public/path/something.png); -} - -.base { - background: url(\\"data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3C%21DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%0A%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%0A%09%20width%3D%22191px%22%20height%3D%22191px%22%20viewBox%3D%220%200%20191%20191%22%20enable-background%3D%22new%200%200%20191%20191%22%20xml%3Aspace%3D%22preserve%22%3E%0A%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M95.5%2C0C42.8%2C0%2C0%2C42.8%2C0%2C95.5S42.8%2C191%2C95.5%2C191S191%2C148.2%2C191%2C95.5S148.2%2C0%2C95.5%2C0z%20M95.5%2C187.6%0A%09c-50.848%2C0-92.1-41.25-92.1-92.1c0-50.848%2C41.252-92.1%2C92.1-92.1c50.85%2C0%2C92.1%2C41.252%2C92.1%2C92.1%0A%09C187.6%2C146.35%2C146.35%2C187.6%2C95.5%2C187.6z%22%2F%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M92.9%2C10v8.6H91v-6.5c-0.1%2C0.1-0.2%2C0.2-0.4%2C0.3c-0.2%2C0.1-0.3%2C0.2-0.4%2C0.2c-0.1%2C0-0.3%2C0.1-0.5%2C0.2%0A%09%09c-0.2%2C0.1-0.3%2C0.1-0.5%2C0.1v-1.6c0.5-0.1%2C0.9-0.3%2C1.4-0.5c0.5-0.2%2C0.8-0.5%2C1.2-0.7h1.1V10z%22%2F%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M97.1%2C17.1h3.602v1.5h-5.6V18c0-0.4%2C0.1-0.8%2C0.2-1.2c0.1-0.4%2C0.3-0.6%2C0.5-0.9c0.2-0.3%2C0.5-0.5%2C0.7-0.7%0A%09%09c0.2-0.2%2C0.5-0.4%2C0.7-0.6c0.199-0.2%2C0.5-0.3%2C0.6-0.5c0.102-0.2%2C0.301-0.3%2C0.5-0.5c0.2-0.2%2C0.2-0.3%2C0.301-0.5%0A%09%09c0.101-0.2%2C0.101-0.3%2C0.101-0.5c0-0.4-0.101-0.6-0.3-0.8c-0.2-0.2-0.4-0.3-0.801-0.3c-0.699%2C0-1.399%2C0.3-2.101%2C0.9v-1.6%0A%09%09c0.7-0.5%2C1.5-0.7%2C2.5-0.7c0.399%2C0%2C0.8%2C0.1%2C1.101%2C0.2c0.301%2C0.1%2C0.601%2C0.3%2C0.899%2C0.5c0.3%2C0.2%2C0.399%2C0.5%2C0.5%2C0.8%0A%09%09c0.101%2C0.3%2C0.2%2C0.6%2C0.2%2C1s-0.102%2C0.7-0.2%2C1c-0.099%2C0.3-0.3%2C0.6-0.5%2C0.8c-0.2%2C0.2-0.399%2C0.5-0.7%2C0.7c-0.3%2C0.2-0.5%2C0.4-0.8%2C0.6%0A%09%09c-0.2%2C0.1-0.399%2C0.3-0.5%2C0.4s-0.3%2C0.3-0.5%2C0.4s-0.2%2C0.3-0.3%2C0.4C97.1%2C17%2C97.1%2C17%2C97.1%2C17.1z%22%2F%3E%0A%3C%2Fg%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M15%2C95.4c0%2C0.7-0.1%2C1.4-0.2%2C2c-0.1%2C0.6-0.4%2C1.1-0.7%2C1.5C13.8%2C99.3%2C13.4%2C99.6%2C12.9%2C99.8s-1%2C0.3-1.5%2C0.3%0A%09%09c-0.7%2C0-1.3-0.1-1.8-0.3v-1.5c0.4%2C0.3%2C1%2C0.4%2C1.6%2C0.4c0.6%2C0%2C1.1-0.2%2C1.5-0.7c0.4-0.5%2C0.5-1.1%2C0.5-1.9l0%2C0%0A%09%09C12.8%2C96.7%2C12.3%2C96.9%2C11.5%2C96.9c-0.3%2C0-0.7-0.102-1-0.2c-0.3-0.101-0.5-0.3-0.8-0.5c-0.3-0.2-0.4-0.5-0.5-0.8%0A%09%09c-0.1-0.3-0.2-0.7-0.2-1c0-0.4%2C0.1-0.8%2C0.2-1.2c0.1-0.4%2C0.3-0.7%2C0.6-0.9c0.3-0.2%2C0.6-0.5%2C0.9-0.6c0.3-0.1%2C0.8-0.2%2C1.2-0.2%0A%09%09c0.5%2C0%2C0.9%2C0.1%2C1.2%2C0.3c0.3%2C0.2%2C0.7%2C0.4%2C0.9%2C0.8s0.5%2C0.7%2C0.6%2C1.2S15%2C94.8%2C15%2C95.4z%20M13.1%2C94.4c0-0.2%2C0-0.4-0.1-0.6%0A%09%09c-0.1-0.2-0.1-0.4-0.2-0.5c-0.1-0.1-0.2-0.2-0.4-0.3c-0.2-0.1-0.3-0.1-0.5-0.1c-0.2%2C0-0.3%2C0-0.4%2C0.1s-0.3%2C0.2-0.3%2C0.3%0A%09%09c0%2C0.1-0.2%2C0.3-0.2%2C0.4c0%2C0.1-0.1%2C0.4-0.1%2C0.6c0%2C0.2%2C0%2C0.4%2C0.1%2C0.6c0.1%2C0.2%2C0.1%2C0.3%2C0.2%2C0.4c0.1%2C0.1%2C0.2%2C0.2%2C0.4%2C0.3%0A%09%09c0.2%2C0.1%2C0.3%2C0.1%2C0.5%2C0.1c0.2%2C0%2C0.3%2C0%2C0.4-0.1s0.2-0.2%2C0.3-0.3c0.1-0.1%2C0.2-0.2%2C0.2-0.4C13%2C94.7%2C13.1%2C94.6%2C13.1%2C94.4z%22%2F%3E%0A%3C%2Fg%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M176%2C99.7V98.1c0.6%2C0.4%2C1.2%2C0.602%2C2%2C0.602c0.5%2C0%2C0.8-0.102%2C1.1-0.301c0.301-0.199%2C0.4-0.5%2C0.4-0.801%0A%09%09c0-0.398-0.2-0.699-0.5-0.898c-0.3-0.2-0.8-0.301-1.3-0.301h-0.802V95h0.701c1.101%2C0%2C1.601-0.4%2C1.601-1.1c0-0.7-0.4-1-1.302-1%0A%09%09c-0.6%2C0-1.1%2C0.2-1.6%2C0.5v-1.5c0.6-0.3%2C1.301-0.4%2C2.1-0.4c0.9%2C0%2C1.5%2C0.2%2C2%2C0.6s0.701%2C0.9%2C0.701%2C1.5c0%2C1.1-0.601%2C1.8-1.701%2C2.1l0%2C0%0A%09%09c0.602%2C0.1%2C1.102%2C0.3%2C1.4%2C0.6s0.5%2C0.8%2C0.5%2C1.3c0%2C0.801-0.3%2C1.4-0.9%2C1.9c-0.6%2C0.5-1.398%2C0.7-2.398%2C0.7%0A%09%09C177.2%2C100.1%2C176.5%2C100%2C176%2C99.7z%22%2F%3E%0A%3C%2Fg%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M98.5%2C179.102c0%2C0.398-0.1%2C0.799-0.2%2C1.199C98.2%2C180.7%2C98%2C181%2C97.7%2C181.2s-0.601%2C0.5-0.9%2C0.601%0A%09%09c-0.3%2C0.1-0.7%2C0.199-1.2%2C0.199c-0.5%2C0-0.9-0.1-1.3-0.3c-0.4-0.2-0.7-0.399-0.9-0.8c-0.2-0.4-0.5-0.7-0.6-1.2%0A%09%09c-0.1-0.5-0.2-1-0.2-1.601c0-0.699%2C0.1-1.399%2C0.3-2c0.2-0.601%2C0.4-1.101%2C0.8-1.5c0.4-0.399%2C0.7-0.699%2C1.2-1c0.5-0.3%2C1-0.3%2C1.6-0.3%0A%09%09c0.6%2C0%2C1.2%2C0.101%2C1.5%2C0.199v1.5c-0.4-0.199-0.9-0.399-1.4-0.399c-0.3%2C0-0.6%2C0.101-0.8%2C0.2c-0.2%2C0.101-0.5%2C0.3-0.7%2C0.5%0A%09%09c-0.2%2C0.199-0.3%2C0.5-0.4%2C0.8c-0.1%2C0.301-0.2%2C0.7-0.2%2C1.101l0%2C0c0.4-0.601%2C1-0.8%2C1.8-0.8c0.3%2C0%2C0.7%2C0.1%2C0.9%2C0.199%0A%09%09c0.2%2C0.101%2C0.5%2C0.301%2C0.7%2C0.5c0.199%2C0.2%2C0.398%2C0.5%2C0.5%2C0.801C98.5%2C178.2%2C98.5%2C178.7%2C98.5%2C179.102z%20M96.7%2C179.2%0A%09%09c0-0.899-0.4-1.399-1.1-1.399c-0.2%2C0-0.3%2C0-0.5%2C0.1c-0.2%2C0.101-0.3%2C0.201-0.4%2C0.301c-0.1%2C0.101-0.2%2C0.199-0.2%2C0.4%0A%09%09c0%2C0.199-0.1%2C0.299-0.1%2C0.5c0%2C0.199%2C0%2C0.398%2C0.1%2C0.6s0.1%2C0.3%2C0.2%2C0.5c0.1%2C0.199%2C0.2%2C0.199%2C0.4%2C0.3c0.2%2C0.101%2C0.3%2C0.101%2C0.5%2C0.101%0A%09%09c0.2%2C0%2C0.3%2C0%2C0.5-0.101c0.2-0.101%2C0.301-0.199%2C0.301-0.3c0-0.1%2C0.199-0.301%2C0.199-0.399C96.6%2C179.7%2C96.7%2C179.4%2C96.7%2C179.2z%22%2F%3E%0A%3C%2Fg%3E%0A%3Ccircle%20fill%3D%22%23636363%22%20cx%3D%2295%22%20cy%3D%2295%22%20r%3D%227%22%2F%3E%0A%3C%2Fsvg%3E%0A\\") 50% 50%/191px no-repeat; -} - -.strange { - background: url(file:///webpack/public/path/img.png); -} - -.my-background { - background-image: url(file:///webpack/public/path/img.png); -} - -.class { - background: url(file:///webpack/public/path/img.png, 'foo', './img.png', url('./img.png')); - background-image: image-set(url(file:///webpack/public/path/img.png, 'foo', './img.png', url('./img.png')) 1x, url(file:///webpack/public/path/img2x.png) 2x); -} - -.button { - background-image: url('data:image/svg+xml;utf8,'); -} - -/* We need to use \`resourceQuery: /inline/\` */ -/* Hard to test on webpack v4 */ -.qqq { - background: url(file:///webpack/public/path/custom-img.png) -} - -.class { - background: url(file:///webpack/public/path/img.png); -} - -.class { - background: url(file:///webpack/public/path/img.png); -} - -/** Prefer relative **/ -.class { - background: url(file:///webpack/public/path/img.png); -} - -/** Prefer from modules **/ -.class { - background: url(file:///webpack/public/path/other.png); -} - -.class { - background: url(file:///webpack/public/path/img.png); -} - -.foo { - background-image: url(\\"data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27none%27 stroke=%27%23343a40%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27M2 5l6 6 6-6%27/%3e%3c/svg%3e\\"); -} -", -} -`; - -exports[`'exportType' option should work with 'css-style-sheet' value and urls: warnings 1`] = ` -Array [ - "ModuleWarning: Module Warning (from \`replaced original path\`): -Warning - -(120:3) Unable to find uri in 'background: green url() xyz'", - "ModuleWarning: Module Warning (from \`replaced original path\`): -Warning - -(124:3) Unable to find uri in 'background: green url('') xyz'", - "ModuleWarning: Module Warning (from \`replaced original path\`): -Warning - -(128:3) Unable to find uri in 'background: green url(\\"\\") xyz'", - "ModuleWarning: Module Warning (from \`replaced original path\`): -Warning - -(132:3) Unable to find uri in 'background: green url(' ') xyz'", - "ModuleWarning: Module Warning (from \`replaced original path\`): -Warning - -(136:3) Unable to find uri in 'background: green url( - ) xyz'", - "ModuleWarning: Module Warning (from \`replaced original path\`): -Warning - -(216:3) Unable to find uri in 'background-image: -webkit-image-set('')'", - "ModuleWarning: Module Warning (from \`replaced original path\`): -Warning - -(218:3) Unable to find uri in 'background-image: image-set('')'", - "ModuleWarning: Module Warning (from \`replaced original path\`): -Warning - -(219:3) Unable to find uri in 'background-image: image-set(\\"\\")'", - "ModuleWarning: Module Warning (from \`replaced original path\`): -Warning - -(220:3) Unable to find uri in 'background-image: image-set(\\"\\" 1x)'", - "ModuleWarning: Module Warning (from \`replaced original path\`): -Warning - -(221:3) Unable to find uri in 'background-image: image-set(url())'", - "ModuleWarning: Module Warning (from \`replaced original path\`): -Warning - -(222:3) Unable to find uri in 'background-image: image-set( - url() - )'", - "ModuleWarning: Module Warning (from \`replaced original path\`): -Warning - -(225:3) Unable to find uri in 'background-image: image-set(URL())'", - "ModuleWarning: Module Warning (from \`replaced original path\`): -Warning - -(226:3) Unable to find uri in 'background-image: image-set(url(''))'", - "ModuleWarning: Module Warning (from \`replaced original path\`): -Warning - -(227:3) Unable to find uri in 'background-image: image-set(url(\\"\\"))'", - "ModuleWarning: Module Warning (from \`replaced original path\`): -Warning - -(228:3) Unable to find uri in 'background-image: image-set(url('') 1x)'", -] -`; - -exports[`'exportType' option should work with 'css-style-sheet' value and with 'sass-loader': errors 1`] = `Array []`; - -exports[`'exportType' option should work with 'css-style-sheet' value and with 'sass-loader': module 1`] = ` -"// Imports -import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../../src/runtime/noSourceMaps.js\\"; -import ___CSS_LOADER_API_IMPORT___ from \\"../../../src/runtime/api.js\\"; -var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); -// Module -___CSS_LOADER_EXPORT___.push([module.id, \\"body {\\\\n font: 100% Helvetica, sans-serif;\\\\n color: #333;\\\\n}\\", \\"\\"]); -// Exports -var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); -___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); -export default ___CSS_LOADER_STYLE_SHEET___; -" -`; - -exports[`'exportType' option should work with 'css-style-sheet' value and with 'sass-loader': result 1`] = ` -CSSStyleSheet { - "text": "body { - font: 100% Helvetica, sans-serif; - color: #333; -}", -} -`; - -exports[`'exportType' option should work with 'css-style-sheet' value and with 'sass-loader': warnings 1`] = `Array []`; - -exports[`'exportType' option should work with 'css-style-sheet' value: errors 1`] = `Array []`; - -exports[`'exportType' option should work with 'css-style-sheet' value: module 1`] = ` -"// Imports -import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../src/runtime/noSourceMaps.js\\"; -import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; -import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; -var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); -var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); -var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); -var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); -var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); -// Module -___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); -// Exports -var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); -___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); -export default ___CSS_LOADER_STYLE_SHEET___; -" -`; - -exports[`'exportType' option should work with 'css-style-sheet' value: result 1`] = ` -CSSStyleSheet { - "text": "@charset \\"UTF-8\\"; - -/* Comment */ - -.class { - color: red; - background: url(file:///webpack/public/path/img.png); -} - -.class-duplicate-url { - background: url(file:///webpack/public/path/img.png); -} - -:root { - --foo: 1px; - --bar: 2px; -} - -.class { a: b c d; } - -.two {} - -.u-m\\\\+ { a: b c d; } - -.class { content: \\"\\\\F10C\\" } - -@media only screen and (max-width: 600px) { - body { - background-color: lightblue; - } -} - -.class { - content: \\"\\\\2193\\"; - content: \\"\\\\2193\\\\2193\\"; - content: \\"\\\\2193 \\\\2193\\"; - content: \\"\\\\2193\\\\2193\\\\2193\\"; - content: \\"\\\\2193 \\\\2193 \\\\2193\\"; -} - -.-top {} -.\\\\-top {} - -#\\\\#test {} - -.grid { - display: flex; - flex-wrap: wrap; -} -.grid.\\\\-top { - align-items: flex-start; -} -.grid.-top { - align-items: flex-start; -} -.grid.\\\\-middle { - align-items: center; -} -.grid.\\\\-bottom { - align-items: flex-end; -} - -.u-m\\\\00002b {} - -.u-m00002b {} - -#u-m\\\\+ {} - -body { - font-family: '微软雅黑'; /* some chinese font name */ -} - -.myStyle { - content: '\\\\e901'; -} - -.myStyle { - content: '\\\\E901'; -} - -.♫ {} - -.\\\\3A \\\\\`\\\\( {} /* matches elements with class=\\":\`(\\" */ -.\\\\31 a2b3c {} /* matches elements with class=\\"1a2b3c\\" */ -#\\\\#fake-id {} /* matches the element with id=\\"#fake-id\\" */ -#-a-b-c- {} /* matches the element with id=\\"-a-b-c-\\" */ -#© {} /* matches the element with id=\\"©\\" */ - -:root { - --title-align: center; - --sr-only: { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - overflow: hidden; - clip: rect(0,0,0,0); - white-space: nowrap; - clip-path: inset(50%); - border: 0; - }; -} - -.test { - content: \\"\\\\2014\\\\A0\\"; - content: \\"\\\\2014 \\\\A0\\"; - content: \\"\\\\A0 \\\\2014\\"; - content: \\"\\\\A0\\\\2014\\"; - margin-top: 1px\\\\9; - background-color: #000\\\\9; -} - -.light.on .bulb:before{ - content: '💡'; -} - -.base64 { - background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); -} - -a[href=''] { - color: red; -} - -a[href='' i] { - color: red; -} - -a[href=\\"\\"] { - color: blue; -} - -a[href=\\"\\" i] { - color: blue; -} -", -} -`; - -exports[`'exportType' option should work with 'css-style-sheet' value: warnings 1`] = `Array []`; - -exports[`'exportType' option should work with CSS modules and the 'exportOnlyLocals' option: errors 1`] = `Array []`; - -exports[`'exportType' option should work with CSS modules and the 'exportOnlyLocals' option: module 1`] = ` -"// Imports -import * as ___CSS_LOADER_ICSS_IMPORT_0____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./values.css\\"; -import * as ___CSS_LOADER_ICSS_IMPORT_1____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./something.css\\"; -import * as ___CSS_LOADER_ICSS_IMPORT_2____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./imported-simple.css\\"; -import * as ___CSS_LOADER_ICSS_IMPORT_3____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./relative.css\\"; -import * as ___CSS_LOADER_ICSS_IMPORT_4____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./top-relative.css\\"; -import * as ___CSS_LOADER_ICSS_IMPORT_5____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!../issue-861/node_modules/package/style.css\\"; -import * as ___CSS_LOADER_ICSS_IMPORT_6____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./alias.css\\"; -import * as ___CSS_LOADER_ICSS_IMPORT_7____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!sass-loader!./scss-file.scss\\"; -// Exports -export var vDef = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vDef\\"] + \\"\\"; -export var vOther = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vOther\\"] + \\"\\"; -export var sWhite = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"sWhite\\"] + \\"\\"; -export var mSmall = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"mSmall\\"] + \\"\\"; -export var vSomething = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_1____NAMED___[\\"vSomething\\"] + \\"\\"; -export var vFoo = \\"blue\\"; -export var vBar = \\"block\\"; -export var vPrimary = \\"#BF4040\\"; -export var sBlack = \\"black-selector\\"; -export var mLarge = \\"(min-width: 960px)\\"; -export var vIdent = \\"validIdent\\"; -export var vPreDefinedIdent = \\"left\\"; -export var vString = \\"'content'\\"; -export var vString1 = \\"''\\"; -export var vUrl = \\"url(https://www.exammple.com/images/my-background.png)\\"; -export var vUrl1 = \\"url('https://www.exammple.com/images/my-background.png')\\"; -export var vUrl2 = \\"url(\\\\\\"https://www.exammple.com/images/my-background.png\\\\\\")\\"; -export var vInteger = \\"100\\"; -export var vInteger1 = \\"-100\\"; -export var vInteger2 = \\"+100\\"; -export var vNumber = \\".60\\"; -export var vNumber1 = \\"-456.8\\"; -export var vNumber2 = \\"-3.4e-2\\"; -export var vDimension = \\"12px\\"; -export var vPercentage = \\"100%\\"; -export var vHex = \\"#fff\\"; -export var vComment = \\" /* comment */\\"; -export var vFunction = \\"rgb(0,0,0)\\"; -export var vUnicodeRange = \\"U+0025-00FF\\"; -export var ghi = \\"JrMovmNxiARceckPi1Bb\\"; -export var myClass = \\"_xZYrLKW96sXm2aniadM\\"; -export var other = \\"cXIvIhl_Be3NhMPQoE0z\\"; -export var otherOther = \\"wyIZMXPNE2D7zb9VCrHe\\"; -export var green = \\"as9P70j15m_wICZ94IJx\\"; -export var foo = \\"zAepmy_SqloGdZJJmXNm\\"; -export var simple = \\"n_zXxs10wzKREXQdQrw9 \\" + ___CSS_LOADER_ICSS_IMPORT_2____NAMED___[\\"importedSimple\\"] + \\"\\"; -export var relative = \\"_u4nolEyHSlixSSx7uXN \\" + ___CSS_LOADER_ICSS_IMPORT_3____NAMED___[\\"importedRelative\\"] + \\"\\"; -export var topRelative = \\"_EXVuUxUggUhA1UEBgZk \\" + ___CSS_LOADER_ICSS_IMPORT_4____NAMED___[\\"importedRelative\\"] + \\"\\"; -export var myModule = \\"o2wK31qqosVXAPAdGIxD \\" + ___CSS_LOADER_ICSS_IMPORT_5____NAMED___[\\"importedModule\\"] + \\"\\"; -export var alias = \\"_Y2QYoxyUknZNv0u6wN3 \\" + ___CSS_LOADER_ICSS_IMPORT_6____NAMED___[\\"importedAlias\\"] + \\"\\"; -export var aliasDuplicate = \\"wmZh7D9g5PjWvMpojahG \\" + ___CSS_LOADER_ICSS_IMPORT_6____NAMED___[\\"importedAlias\\"] + \\"\\"; -export var primarySelector = \\"uOEsMAq4YIv8PUUlnnhI\\"; -export var blackSelector = \\"_r6IpGhEbXgocCCXZgDs\\"; -export var header = \\"IsCkQQmCqI3_HSI_H_hT\\"; -export var foobarbaz = \\"lNjqoQe7B3jKXIowFbpE\\"; -export var url = \\"ABtimDL9fvKNWc1BjB59\\"; -export var main = \\"K7O_z8z4VzoG6Ru_jb_T \\" + ___CSS_LOADER_ICSS_IMPORT_7____NAMED___[\\"scssClass\\"] + \\"\\"; -" -`; - -exports[`'exportType' option should work with CSS modules and the 'exportOnlyLocals' option: result 1`] = ` -Object { - "named": Object { - "alias": "_Y2QYoxyUknZNv0u6wN3 _4Zj8x54IrWF75cUaGyT", - "aliasDuplicate": "wmZh7D9g5PjWvMpojahG _4Zj8x54IrWF75cUaGyT", - "blackSelector": "_r6IpGhEbXgocCCXZgDs", - "foo": "zAepmy_SqloGdZJJmXNm", - "foobarbaz": "lNjqoQe7B3jKXIowFbpE", - "ghi": "JrMovmNxiARceckPi1Bb", - "green": "as9P70j15m_wICZ94IJx", - "header": "IsCkQQmCqI3_HSI_H_hT", - "mLarge": "(min-width: 960px)", - "mSmall": "(min-width: 320px)", - "main": "K7O_z8z4VzoG6Ru_jb_T pqdLCWFRW03AVy9uJoZX", - "myClass": "_xZYrLKW96sXm2aniadM", - "myModule": "o2wK31qqosVXAPAdGIxD ONhOxkn21jORUJmheiwE", - "other": "cXIvIhl_Be3NhMPQoE0z", - "otherOther": "wyIZMXPNE2D7zb9VCrHe", - "primarySelector": "uOEsMAq4YIv8PUUlnnhI", - "relative": "_u4nolEyHSlixSSx7uXN HlqmBJrtIvJ3Gzgbut_w", - "sBlack": "black-selector", - "sWhite": "white", - "simple": "n_zXxs10wzKREXQdQrw9 kN0Z3n7LgkVJQeFmVucy", - "topRelative": "_EXVuUxUggUhA1UEBgZk MzX17bUYYh7fmdKVXQ9p", - "url": "ABtimDL9fvKNWc1BjB59", - "vBar": "block", - "vComment": " /* comment */", - "vDef": "red", - "vDimension": "12px", - "vFoo": "blue", - "vFunction": "rgb(0,0,0)", - "vHex": "#fff", - "vIdent": "validIdent", - "vInteger": "100", - "vInteger1": "-100", - "vInteger2": "+100", - "vNumber": ".60", - "vNumber1": "-456.8", - "vNumber2": "-3.4e-2", - "vOther": "green", - "vPercentage": "100%", - "vPreDefinedIdent": "left", - "vPrimary": "#BF4040", - "vSomething": "2112moon", - "vString": "'content'", - "vString1": "''", - "vUnicodeRange": "U+0025-00FF", - "vUrl": "url(https://www.exammple.com/images/my-background.png)", - "vUrl1": "url('https://www.exammple.com/images/my-background.png')", - "vUrl2": "url(\\"https://www.exammple.com/images/my-background.png\\")", - }, -} -`; - -exports[`'exportType' option should work with CSS modules and the 'exportOnlyLocals' option: warnings 1`] = `Array []`; +exports[`'exportType' option should work with 'css-style-sheet' and 'array' values: warnings 1`] = `Array []`; diff --git a/test/exportType.test.js b/test/exportType.test.js index ee146d24..a421f050 100644 --- a/test/exportType.test.js +++ b/test/exportType.test.js @@ -174,7 +174,7 @@ describe("'exportType' option", () => { expect(getErrors(stats)).toMatchSnapshot("errors"); }); - it("should work with 'css-style-sheet' and 'javascript' values", async () => { + it.only("should work with 'css-style-sheet' and 'array' values", async () => { const compiler = getCompiler( "./basic-javascript-and-css-style-sheet.js", {}, diff --git a/test/helpers/getExecutedCode.js b/test/helpers/getExecutedCode.js index 401692d8..a5bfafb5 100644 --- a/test/helpers/getExecutedCode.js +++ b/test/helpers/getExecutedCode.js @@ -18,6 +18,13 @@ export default (asset, compiler, stats, type) => { if (executed && typeof executed.text !== "undefined") { executed.text = executed.text.replace(/file:\/\/\/[a-z]:\//gi, "file:///"); + } else if (Array.isArray(executed)) { + executed.forEach((item) => { + if (typeof item.text !== "undefined") { + // eslint-disable-next-line no-param-reassign + item.text = item.text.replace(/file:\/\/\/[a-z]:\//gi, "file:///"); + } + }); } return executed; From 65679b4d035558bd7b7205ea8b7bd467f083d7d4 Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Sat, 18 Sep 2021 20:58:10 +0300 Subject: [PATCH 18/20] docs: fix --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 273e1c0d..0d14e962 100644 --- a/README.md +++ b/README.md @@ -1273,10 +1273,10 @@ module.exports = { ### `exportType` Type: `'array' | 'css-style-sheet'` -Default: `array` +Default: `'array'` Allows exporting styles as array with modules or [constructable stylesheet](https://developers.google.com/web/updates/2019/02/constructable-stylesheets) (i.e. [`CSSStyleSheet`](https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet)). -Default value is `array`, i.e. loader exports array of modules with specific API which is used in `style-loader` or other. +Default value is `'array'`, i.e. loader exports array of modules with specific API which is used in `style-loader` or other. **webpack.config.js** @@ -1305,7 +1305,7 @@ document.adoptedStyleSheets = [sheet]; shadowRoot.adoptedStyleSheets = [sheet]; ``` -#### `array` +#### `'array'` The default export is array of modules with specific API which is used in `style-loader` or other. @@ -1331,7 +1331,7 @@ module.exports = { import "./styles.css"; ``` -#### `css-style-sheet` +#### `'css-style-sheet'` > ⚠ `@import` rules not yet allowed, more [information](https://web.dev/css-module-scripts/#@import-rules-not-yet-allowed) > ⚠ You don't need [`style-loader`](https://github.com/webpack-contrib/style-loader) anymore, please remove it. From 768d410c0276cd9e916d6d3ea579f4fba0f5be04 Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Sat, 18 Sep 2021 21:00:18 +0300 Subject: [PATCH 19/20] docs: more examples --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 0d14e962..34f893c1 100644 --- a/README.md +++ b/README.md @@ -1391,6 +1391,11 @@ module.exports = { ```js // Example for Sass/SCSS: // import sheet from "./styles.scss" assert { type: "css" }; + +// Example for CSS modules: +// import sheet, { myClass } from "./styles.scss" assert { type: "css" }; + +// Example for CSS: import sheet from "./styles.css" assert { type: "css" }; document.adoptedStyleSheets = [sheet]; From 801982445b894596ad9e256a59f6d5b6b54e0428 Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Sat, 18 Sep 2021 21:02:13 +0300 Subject: [PATCH 20/20] test: fix --- test/__snapshots__/exportType.test.js.snap | 2301 +++++++++++++++++++- test/exportType.test.js | 2 +- 2 files changed, 2270 insertions(+), 33 deletions(-) diff --git a/test/__snapshots__/exportType.test.js.snap b/test/__snapshots__/exportType.test.js.snap index 6a80ade5..07fa8835 100644 --- a/test/__snapshots__/exportType.test.js.snap +++ b/test/__snapshots__/exportType.test.js.snap @@ -1,31 +1,215 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`'exportType' option should work with 'css-style-sheet' and 'array' values: errors 1`] = `Array []`; +exports[`'exportType' option should throw an error with 'css-style-sheet' value for CSS modules when \`esModule\` disabled, but 'modules.namedExport' enabled: errors 1`] = ` +Array [ + "ModuleBuildError: Module build failed (from \`replaced original path\`): +Error: The 'exportType' option with the 'css-style-sheet' value requires the 'esModules' option to be enabled", +] +`; -exports[`'exportType' option should work with 'css-style-sheet' and 'array' values: module 1`] = ` +exports[`'exportType' option should throw an error with 'css-style-sheet' value for CSS modules when \`esModule\` disabled, but 'modules.namedExport' enabled: warnings 1`] = `Array []`; + +exports[`'exportType' option should throw an error with 'css-style-sheet' value for CSS modules when \`esModule\` disabled: errors 1`] = ` +Array [ + "ModuleBuildError: Module build failed (from \`replaced original path\`): +Error: The 'exportType' option with the 'css-style-sheet' value requires the 'esModules' option to be enabled", +] +`; + +exports[`'exportType' option should throw an error with 'css-style-sheet' value for CSS modules when \`esModule\` disabled: warnings 1`] = `Array []`; + +exports[`'exportType' option should throw an error with 'css-style-sheet' value for CSS modules when named export disabled: errors 1`] = ` +Array [ + "ModuleBuildError: Module build failed (from \`replaced original path\`): +Error: The 'exportType' option with the 'css-style-sheet' value requires the 'modules.namedExport' option to be enabled", +] +`; + +exports[`'exportType' option should throw an error with 'css-style-sheet' value for CSS modules when named export disabled: warnings 1`] = `Array []`; + +exports[`'exportType' option should work and export 'array' by default: errors 1`] = `Array []`; + +exports[`'exportType' option should work and export 'array' by default: module 1`] = ` "// Imports import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../src/runtime/noSourceMaps.js\\"; import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; +import ___CSS_LOADER_AT_RULE_IMPORT_0___ from \\"-!../../src/index.js??ruleSet[1].rules[0].use[0]!./imported.css\\"; import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); // Module ___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); // Exports -var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); -___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); -export default ___CSS_LOADER_STYLE_SHEET___; +export default ___CSS_LOADER_EXPORT___; " `; -exports[`'exportType' option should work with 'css-style-sheet' and 'array' values: module 2`] = ` +exports[`'exportType' option should work and export 'array' by default: result 1`] = ` +Array [ + Array [ + "../../src/index.js??ruleSet[1].rules[0].use[0]!./imported.css", + ".foo { + color: red; +} +", + "", + ], + Array [ + "./basic.css", + "@charset \\"UTF-8\\"; + +/* Comment */ + +.class { + color: red; + background: url(replaced_file_protocol_/webpack/public/path/img.png); +} + +.class-duplicate-url { + background: url(replaced_file_protocol_/webpack/public/path/img.png); +} + +:root { + --foo: 1px; + --bar: 2px; +} + +.class { a: b c d; } + +.two {} + +.u-m\\\\+ { a: b c d; } + +.class { content: \\"\\\\F10C\\" } + +@media only screen and (max-width: 600px) { + body { + background-color: lightblue; + } +} + +.class { + content: \\"\\\\2193\\"; + content: \\"\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193\\"; + content: \\"\\\\2193\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193 \\\\2193\\"; +} + +.-top {} +.\\\\-top {} + +#\\\\#test {} + +.grid { + display: flex; + flex-wrap: wrap; +} +.grid.\\\\-top { + align-items: flex-start; +} +.grid.-top { + align-items: flex-start; +} +.grid.\\\\-middle { + align-items: center; +} +.grid.\\\\-bottom { + align-items: flex-end; +} + +.u-m\\\\00002b {} + +.u-m00002b {} + +#u-m\\\\+ {} + +body { + font-family: '微软雅黑'; /* some chinese font name */ +} + +.myStyle { + content: '\\\\e901'; +} + +.myStyle { + content: '\\\\E901'; +} + +.♫ {} + +.\\\\3A \\\\\`\\\\( {} /* matches elements with class=\\":\`(\\" */ +.\\\\31 a2b3c {} /* matches elements with class=\\"1a2b3c\\" */ +#\\\\#fake-id {} /* matches the element with id=\\"#fake-id\\" */ +#-a-b-c- {} /* matches the element with id=\\"-a-b-c-\\" */ +#© {} /* matches the element with id=\\"©\\" */ + +:root { + --title-align: center; + --sr-only: { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0,0,0,0); + white-space: nowrap; + clip-path: inset(50%); + border: 0; + }; +} + +.test { + content: \\"\\\\2014\\\\A0\\"; + content: \\"\\\\2014 \\\\A0\\"; + content: \\"\\\\A0 \\\\2014\\"; + content: \\"\\\\A0\\\\2014\\"; + margin-top: 1px\\\\9; + background-color: #000\\\\9; +} + +.light.on .bulb:before{ + content: '💡'; +} + +.base64 { + background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); +} + +a[href=''] { + color: red; +} + +a[href='' i] { + color: red; +} + +a[href=\\"\\"] { + color: blue; +} + +a[href=\\"\\" i] { + color: blue; +} +", + "", + ], +] +`; + +exports[`'exportType' option should work and export 'array' by default: warnings 1`] = `Array []`; + +exports[`'exportType' option should work with 'array' value: errors 1`] = `Array []`; + +exports[`'exportType' option should work with 'array' value: module 1`] = ` "// Imports import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../src/runtime/noSourceMaps.js\\"; import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; -import ___CSS_LOADER_AT_RULE_IMPORT_0___ from \\"-!../../src/index.js!./imported.css\\"; +import ___CSS_LOADER_AT_RULE_IMPORT_0___ from \\"-!../../src/index.js??ruleSet[1].rules[0].use[0]!./imported.css\\"; import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); @@ -40,20 +224,29 @@ export default ___CSS_LOADER_EXPORT___; " `; -exports[`'exportType' option should work with 'css-style-sheet' and 'array' values: result 1`] = ` +exports[`'exportType' option should work with 'array' value: result 1`] = ` Array [ - CSSStyleSheet { - "text": "@charset \\"UTF-8\\"; + Array [ + "../../src/index.js??ruleSet[1].rules[0].use[0]!./imported.css", + ".foo { + color: red; +} +", + "", + ], + Array [ + "./basic.css", + "@charset \\"UTF-8\\"; /* Comment */ .class { color: red; - background: url(file:///webpack/public/path/img.png); + background: url(replaced_file_protocol_/webpack/public/path/img.png); } .class-duplicate-url { - background: url(file:///webpack/public/path/img.png); + background: url(replaced_file_protocol_/webpack/public/path/img.png); } :root { @@ -179,29 +372,67 @@ a[href=\\"\\" i] { color: blue; } ", - }, - Array [ - Array [ - "../../src/index.js!./imported.css", - ".foo { - color: red; -} -", - "", - ], - Array [ - "./basic.css?foo=1", - "@charset \\"UTF-8\\"; + "", + ], +] +`; + +exports[`'exportType' option should work with 'array' value: warnings 1`] = `Array []`; + +exports[`'exportType' option should work with 'css-style-sheet' and 'array' values: errors 1`] = `Array []`; + +exports[`'exportType' option should work with 'css-style-sheet' and 'array' values: module 1`] = ` +"// Imports +import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../src/runtime/noSourceMaps.js\\"; +import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; +import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +// Exports +var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); +___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); +export default ___CSS_LOADER_STYLE_SHEET___; +" +`; + +exports[`'exportType' option should work with 'css-style-sheet' and 'array' values: module 2`] = ` +"// Imports +import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../src/runtime/noSourceMaps.js\\"; +import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; +import ___CSS_LOADER_AT_RULE_IMPORT_0___ from \\"-!../../src/index.js!./imported.css\\"; +import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_AT_RULE_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +// Exports +export default ___CSS_LOADER_EXPORT___; +" +`; + +exports[`'exportType' option should work with 'css-style-sheet' and 'array' values: result 1`] = ` +Array [ + CSSStyleSheet { + "text": "@charset \\"UTF-8\\"; /* Comment */ .class { color: red; - background: url(replaced_file_protocol_/webpack/public/path/img.png); + background: url(file:///webpack/public/path/img.png); } .class-duplicate-url { - background: url(replaced_file_protocol_/webpack/public/path/img.png); + background: url(file:///webpack/public/path/img.png); } :root { @@ -327,10 +558,2016 @@ a[href=\\"\\" i] { color: blue; } ", - "", - ], - ], -] -`; + }, + Array [ + Array [ + "../../src/index.js!./imported.css", + ".foo { + color: red; +} +", + "", + ], + Array [ + "./basic.css?foo=1", + "@charset \\"UTF-8\\"; + +/* Comment */ + +.class { + color: red; + background: url(replaced_file_protocol_/webpack/public/path/img.png); +} + +.class-duplicate-url { + background: url(replaced_file_protocol_/webpack/public/path/img.png); +} + +:root { + --foo: 1px; + --bar: 2px; +} + +.class { a: b c d; } + +.two {} + +.u-m\\\\+ { a: b c d; } + +.class { content: \\"\\\\F10C\\" } + +@media only screen and (max-width: 600px) { + body { + background-color: lightblue; + } +} + +.class { + content: \\"\\\\2193\\"; + content: \\"\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193\\"; + content: \\"\\\\2193\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193 \\\\2193\\"; +} + +.-top {} +.\\\\-top {} + +#\\\\#test {} + +.grid { + display: flex; + flex-wrap: wrap; +} +.grid.\\\\-top { + align-items: flex-start; +} +.grid.-top { + align-items: flex-start; +} +.grid.\\\\-middle { + align-items: center; +} +.grid.\\\\-bottom { + align-items: flex-end; +} + +.u-m\\\\00002b {} + +.u-m00002b {} + +#u-m\\\\+ {} + +body { + font-family: '微软雅黑'; /* some chinese font name */ +} + +.myStyle { + content: '\\\\e901'; +} + +.myStyle { + content: '\\\\E901'; +} + +.♫ {} + +.\\\\3A \\\\\`\\\\( {} /* matches elements with class=\\":\`(\\" */ +.\\\\31 a2b3c {} /* matches elements with class=\\"1a2b3c\\" */ +#\\\\#fake-id {} /* matches the element with id=\\"#fake-id\\" */ +#-a-b-c- {} /* matches the element with id=\\"-a-b-c-\\" */ +#© {} /* matches the element with id=\\"©\\" */ + +:root { + --title-align: center; + --sr-only: { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0,0,0,0); + white-space: nowrap; + clip-path: inset(50%); + border: 0; + }; +} + +.test { + content: \\"\\\\2014\\\\A0\\"; + content: \\"\\\\2014 \\\\A0\\"; + content: \\"\\\\A0 \\\\2014\\"; + content: \\"\\\\A0\\\\2014\\"; + margin-top: 1px\\\\9; + background-color: #000\\\\9; +} + +.light.on .bulb:before{ + content: '💡'; +} + +.base64 { + background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); +} + +a[href=''] { + color: red; +} + +a[href='' i] { + color: red; +} + +a[href=\\"\\"] { + color: blue; +} + +a[href=\\"\\" i] { + color: blue; +} +", + "", + ], + ], +] +`; exports[`'exportType' option should work with 'css-style-sheet' and 'array' values: warnings 1`] = `Array []`; + +exports[`'exportType' option should work with 'css-style-sheet' value and CSS modules and still emit error on '@import' at-rules: errors 1`] = ` +Array [ + "ModuleError: Module Error (from \`replaced original path\`): +/test/fixtures/modules/composes/composes.css:1:1: '@import' rules are not allowed here and will not be processed", +] +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and CSS modules and still emit error on '@import' at-rules: module 1`] = ` +"// Imports +import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../../../src/runtime/noSourceMaps.js\\"; +import ___CSS_LOADER_API_IMPORT___ from \\"../../../../src/runtime/api.js\\"; +import ___CSS_LOADER_ICSS_IMPORT_0___, * as ___CSS_LOADER_ICSS_IMPORT_0____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./values.css\\"; +import ___CSS_LOADER_ICSS_IMPORT_1___, * as ___CSS_LOADER_ICSS_IMPORT_1____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./something.css\\"; +import ___CSS_LOADER_ICSS_IMPORT_2___, * as ___CSS_LOADER_ICSS_IMPORT_2____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./imported-simple.css\\"; +import ___CSS_LOADER_ICSS_IMPORT_3___, * as ___CSS_LOADER_ICSS_IMPORT_3____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./relative.css\\"; +import ___CSS_LOADER_ICSS_IMPORT_4___, * as ___CSS_LOADER_ICSS_IMPORT_4____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./top-relative.css\\"; +import ___CSS_LOADER_ICSS_IMPORT_5___, * as ___CSS_LOADER_ICSS_IMPORT_5____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!../issue-861/node_modules/package/style.css\\"; +import ___CSS_LOADER_ICSS_IMPORT_6___, * as ___CSS_LOADER_ICSS_IMPORT_6____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./alias.css\\"; +import ___CSS_LOADER_ICSS_IMPORT_7___, * as ___CSS_LOADER_ICSS_IMPORT_7____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!sass-loader!./scss-file.scss\\"; +import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../../../src/runtime/getUrl.js\\"; +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"../../url/img.png\\", import.meta.url); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_0___, \\"\\", true); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_1___, \\"\\", true); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_2___, \\"\\", true); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_3___, \\"\\", true); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_4___, \\"\\", true); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_5___, \\"\\", true); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_6___, \\"\\", true); +___CSS_LOADER_EXPORT___.i(___CSS_LOADER_ICSS_IMPORT_7___, \\"\\", true); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"@import url(./test-other.css) (min-width: 100px);\\\\n\\\\n.JrMovmNxiARceckPi1Bb {\\\\n color: \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vDef\\"] + \\";\\\\n}\\\\n\\\\n._xZYrLKW96sXm2aniadM {\\\\n color: blue;\\\\n}\\\\n\\\\n.cXIvIhl_Be3NhMPQoE0z {\\\\n display: block;\\\\n}\\\\n\\\\n.wyIZMXPNE2D7zb9VCrHe {\\\\n width: \\" + ___CSS_LOADER_ICSS_IMPORT_1____NAMED___[\\"vSomething\\"] + \\";\\\\n}\\\\n\\\\n.as9P70j15m_wICZ94IJx {\\\\n color: \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vOther\\"] + \\";\\\\n}\\\\n\\\\n.zAepmy_SqloGdZJJmXNm {\\\\n prop: \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vDef\\"] + \\";\\\\n duplicate: \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vOther\\"] + \\";\\\\n}\\\\n\\\\n.n_zXxs10wzKREXQdQrw9 {\\\\n color: red;\\\\n}\\\\n\\\\n._u4nolEyHSlixSSx7uXN {\\\\n color: yellow;\\\\n}\\\\n\\\\n._EXVuUxUggUhA1UEBgZk {\\\\n color: gray;\\\\n}\\\\n\\\\n.o2wK31qqosVXAPAdGIxD {\\\\n color: gray;\\\\n}\\\\n\\\\n._Y2QYoxyUknZNv0u6wN3 {\\\\n color: gainsboro;\\\\n}\\\\n\\\\n.wmZh7D9g5PjWvMpojahG {\\\\n color: gainsboro;\\\\n}\\\\n\\\\n.uOEsMAq4YIv8PUUlnnhI {\\\\n color: #BF4040;\\\\n}\\\\n\\\\n._r6IpGhEbXgocCCXZgDs {\\\\n color: black;\\\\n}\\\\n\\\\n@media (min-width: 960px) {\\\\n .IsCkQQmCqI3_HSI_H_hT {\\\\n padding: 0 20px;\\\\n }\\\\n}\\\\n\\\\n.\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"sWhite\\"] + \\" {\\\\n color: white;\\\\n}\\\\n\\\\n@media \\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"mSmall\\"] + \\" {\\\\n .IsCkQQmCqI3_HSI_H_hT {\\\\n padding: 20px 20px;\\\\n }\\\\n}\\\\n\\\\n.lNjqoQe7B3jKXIowFbpE {\\\\n v-ident: validIdent;\\\\n v-pre-defined-ident: left;\\\\n v-string: 'content';\\\\n v-string-1: '';\\\\n v-url: url(https://www.exammple.com/images/my-background.png);\\\\n v-url-1: url('https://www.exammple.com/images/my-background.png');\\\\n v-url-2: url(\\\\\\"https://www.exammple.com/images/my-background.png\\\\\\");\\\\n v-integer: 100;\\\\n v-integer-1: -100;\\\\n v-integer-2: +100;\\\\n v-number: .60;\\\\n v-number-1: -456.8;\\\\n v-number-2: -3.4e-2;\\\\n v-dimension: 12px;\\\\n v-percentage: 100%;\\\\n v-hex: #fff;\\\\n v-comment: /* comment */ 10px /* comment */;\\\\n v-function: rgb(0,0,0);\\\\n v-unicode-range: U+0025-00FF;\\\\n mutliple: #fff .60 100%;\\\\n}\\\\n\\\\n\\\\na {\\\\n content: 'content';\\\\n}\\\\n\\\\n@supports (content: 'content') {\\\\n a {\\\\n content: 'content';\\\\n }\\\\n}\\\\n\\\\n[class~='content'] {\\\\n color:green;\\\\n}\\\\n\\\\n.ABtimDL9fvKNWc1BjB59 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.K7O_z8z4VzoG6Ru_jb_T {\\\\n background: red;\\\\n}\\\\n\\", \\"\\"]); +// Exports +export var vDef = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vDef\\"] + \\"\\"; +export var vOther = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vOther\\"] + \\"\\"; +export var sWhite = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"sWhite\\"] + \\"\\"; +export var mSmall = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"mSmall\\"] + \\"\\"; +export var vSomething = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_1____NAMED___[\\"vSomething\\"] + \\"\\"; +export var vFoo = \\"blue\\"; +export var vBar = \\"block\\"; +export var vPrimary = \\"#BF4040\\"; +export var sBlack = \\"black-selector\\"; +export var mLarge = \\"(min-width: 960px)\\"; +export var vIdent = \\"validIdent\\"; +export var vPreDefinedIdent = \\"left\\"; +export var vString = \\"'content'\\"; +export var vString1 = \\"''\\"; +export var vUrl = \\"url(https://www.exammple.com/images/my-background.png)\\"; +export var vUrl1 = \\"url('https://www.exammple.com/images/my-background.png')\\"; +export var vUrl2 = \\"url(\\\\\\"https://www.exammple.com/images/my-background.png\\\\\\")\\"; +export var vInteger = \\"100\\"; +export var vInteger1 = \\"-100\\"; +export var vInteger2 = \\"+100\\"; +export var vNumber = \\".60\\"; +export var vNumber1 = \\"-456.8\\"; +export var vNumber2 = \\"-3.4e-2\\"; +export var vDimension = \\"12px\\"; +export var vPercentage = \\"100%\\"; +export var vHex = \\"#fff\\"; +export var vComment = \\" /* comment */\\"; +export var vFunction = \\"rgb(0,0,0)\\"; +export var vUnicodeRange = \\"U+0025-00FF\\"; +export var ghi = \\"JrMovmNxiARceckPi1Bb\\"; +export var myClass = \\"_xZYrLKW96sXm2aniadM\\"; +export var other = \\"cXIvIhl_Be3NhMPQoE0z\\"; +export var otherOther = \\"wyIZMXPNE2D7zb9VCrHe\\"; +export var green = \\"as9P70j15m_wICZ94IJx\\"; +export var foo = \\"zAepmy_SqloGdZJJmXNm\\"; +export var simple = \\"n_zXxs10wzKREXQdQrw9 \\" + ___CSS_LOADER_ICSS_IMPORT_2____NAMED___[\\"importedSimple\\"] + \\"\\"; +export var relative = \\"_u4nolEyHSlixSSx7uXN \\" + ___CSS_LOADER_ICSS_IMPORT_3____NAMED___[\\"importedRelative\\"] + \\"\\"; +export var topRelative = \\"_EXVuUxUggUhA1UEBgZk \\" + ___CSS_LOADER_ICSS_IMPORT_4____NAMED___[\\"importedRelative\\"] + \\"\\"; +export var myModule = \\"o2wK31qqosVXAPAdGIxD \\" + ___CSS_LOADER_ICSS_IMPORT_5____NAMED___[\\"importedModule\\"] + \\"\\"; +export var alias = \\"_Y2QYoxyUknZNv0u6wN3 \\" + ___CSS_LOADER_ICSS_IMPORT_6____NAMED___[\\"importedAlias\\"] + \\"\\"; +export var aliasDuplicate = \\"wmZh7D9g5PjWvMpojahG \\" + ___CSS_LOADER_ICSS_IMPORT_6____NAMED___[\\"importedAlias\\"] + \\"\\"; +export var primarySelector = \\"uOEsMAq4YIv8PUUlnnhI\\"; +export var blackSelector = \\"_r6IpGhEbXgocCCXZgDs\\"; +export var header = \\"IsCkQQmCqI3_HSI_H_hT\\"; +export var foobarbaz = \\"lNjqoQe7B3jKXIowFbpE\\"; +export var url = \\"ABtimDL9fvKNWc1BjB59\\"; +export var main = \\"K7O_z8z4VzoG6Ru_jb_T \\" + ___CSS_LOADER_ICSS_IMPORT_7____NAMED___[\\"scssClass\\"] + \\"\\"; +var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); +___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); +export default ___CSS_LOADER_STYLE_SHEET___; +" +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and CSS modules and still emit error on '@import' at-rules: result 1`] = ` +CSSStyleSheet { + "named": Object { + "alias": "_Y2QYoxyUknZNv0u6wN3 _4Zj8x54IrWF75cUaGyT", + "aliasDuplicate": "wmZh7D9g5PjWvMpojahG _4Zj8x54IrWF75cUaGyT", + "blackSelector": "_r6IpGhEbXgocCCXZgDs", + "default": [Circular], + "foo": "zAepmy_SqloGdZJJmXNm", + "foobarbaz": "lNjqoQe7B3jKXIowFbpE", + "ghi": "JrMovmNxiARceckPi1Bb", + "green": "as9P70j15m_wICZ94IJx", + "header": "IsCkQQmCqI3_HSI_H_hT", + "mLarge": "(min-width: 960px)", + "mSmall": "(min-width: 320px)", + "main": "K7O_z8z4VzoG6Ru_jb_T pqdLCWFRW03AVy9uJoZX", + "myClass": "_xZYrLKW96sXm2aniadM", + "myModule": "o2wK31qqosVXAPAdGIxD ONhOxkn21jORUJmheiwE", + "other": "cXIvIhl_Be3NhMPQoE0z", + "otherOther": "wyIZMXPNE2D7zb9VCrHe", + "primarySelector": "uOEsMAq4YIv8PUUlnnhI", + "relative": "_u4nolEyHSlixSSx7uXN HlqmBJrtIvJ3Gzgbut_w", + "sBlack": "black-selector", + "sWhite": "white", + "simple": "n_zXxs10wzKREXQdQrw9 kN0Z3n7LgkVJQeFmVucy", + "topRelative": "_EXVuUxUggUhA1UEBgZk MzX17bUYYh7fmdKVXQ9p", + "url": "ABtimDL9fvKNWc1BjB59", + "vBar": "block", + "vComment": " /* comment */", + "vDef": "red", + "vDimension": "12px", + "vFoo": "blue", + "vFunction": "rgb(0,0,0)", + "vHex": "#fff", + "vIdent": "validIdent", + "vInteger": "100", + "vInteger1": "-100", + "vInteger2": "+100", + "vNumber": ".60", + "vNumber1": "-456.8", + "vNumber2": "-3.4e-2", + "vOther": "green", + "vPercentage": "100%", + "vPreDefinedIdent": "left", + "vPrimary": "#BF4040", + "vSomething": "2112moon", + "vString": "'content'", + "vString1": "''", + "vUnicodeRange": "U+0025-00FF", + "vUrl": "url(https://www.exammple.com/images/my-background.png)", + "vUrl1": "url('https://www.exammple.com/images/my-background.png')", + "vUrl2": "url(\\"https://www.exammple.com/images/my-background.png\\")", + }, + "text": "@import url(./test-other.css) (min-width: 100px); + +.JrMovmNxiARceckPi1Bb { + color: red; +} + +._xZYrLKW96sXm2aniadM { + color: blue; +} + +.cXIvIhl_Be3NhMPQoE0z { + display: block; +} + +.wyIZMXPNE2D7zb9VCrHe { + width: 2112moon; +} + +.as9P70j15m_wICZ94IJx { + color: green; +} + +.zAepmy_SqloGdZJJmXNm { + prop: red; + duplicate: green; +} + +.n_zXxs10wzKREXQdQrw9 { + color: red; +} + +._u4nolEyHSlixSSx7uXN { + color: yellow; +} + +._EXVuUxUggUhA1UEBgZk { + color: gray; +} + +.o2wK31qqosVXAPAdGIxD { + color: gray; +} + +._Y2QYoxyUknZNv0u6wN3 { + color: gainsboro; +} + +.wmZh7D9g5PjWvMpojahG { + color: gainsboro; +} + +.uOEsMAq4YIv8PUUlnnhI { + color: #BF4040; +} + +._r6IpGhEbXgocCCXZgDs { + color: black; +} + +@media (min-width: 960px) { + .IsCkQQmCqI3_HSI_H_hT { + padding: 0 20px; + } +} + +.white { + color: white; +} + +@media (min-width: 320px) { + .IsCkQQmCqI3_HSI_H_hT { + padding: 20px 20px; + } +} + +.lNjqoQe7B3jKXIowFbpE { + v-ident: validIdent; + v-pre-defined-ident: left; + v-string: 'content'; + v-string-1: ''; + v-url: url(https://www.exammple.com/images/my-background.png); + v-url-1: url('https://www.exammple.com/images/my-background.png'); + v-url-2: url(\\"https://www.exammple.com/images/my-background.png\\"); + v-integer: 100; + v-integer-1: -100; + v-integer-2: +100; + v-number: .60; + v-number-1: -456.8; + v-number-2: -3.4e-2; + v-dimension: 12px; + v-percentage: 100%; + v-hex: #fff; + v-comment: /* comment */ 10px /* comment */; + v-function: rgb(0,0,0); + v-unicode-range: U+0025-00FF; + mutliple: #fff .60 100%; +} + + +a { + content: 'content'; +} + +@supports (content: 'content') { + a { + content: 'content'; + } +} + +[class~='content'] { + color:green; +} + +.ABtimDL9fvKNWc1BjB59 { + background: url(file:///webpack/public/path/img.png); +} + +.K7O_z8z4VzoG6Ru_jb_T { + background: red; +} +", +} +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and CSS modules and still emit error on '@import' at-rules: warnings 1`] = `Array []`; + +exports[`'exportType' option should work with 'css-style-sheet' value and CommonJS modules: errors 1`] = `Array []`; + +exports[`'exportType' option should work with 'css-style-sheet' value and CommonJS modules: module 1`] = ` +"// Imports +var ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ = require(\\"../../src/runtime/noSourceMaps.js\\"); +var ___CSS_LOADER_API_IMPORT___ = require(\\"../../src/runtime/api.js\\"); +var ___CSS_LOADER_GET_URL_IMPORT___ = require(\\"../../src/runtime/getUrl.js\\"); +var ___CSS_LOADER_URL_IMPORT_0___ = require(\\"./url/img.png\\"); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==);\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +// Exports +var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); +___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); +module.exports = ___CSS_LOADER_STYLE_SHEET___; +" +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and CommonJS modules: result 1`] = ` +CSSStyleSheet { + "text": "@charset \\"UTF-8\\"; + +/* Comment */ + +.class { + color: red; + background: url(/webpack/public/path/img.png); +} + +.class-duplicate-url { + background: url(/webpack/public/path/img.png); +} + +:root { + --foo: 1px; + --bar: 2px; +} + +.class { a: b c d; } + +.two {} + +.u-m\\\\+ { a: b c d; } + +.class { content: \\"\\\\F10C\\" } + +@media only screen and (max-width: 600px) { + body { + background-color: lightblue; + } +} + +.class { + content: \\"\\\\2193\\"; + content: \\"\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193\\"; + content: \\"\\\\2193\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193 \\\\2193\\"; +} + +.-top {} +.\\\\-top {} + +#\\\\#test {} + +.grid { + display: flex; + flex-wrap: wrap; +} +.grid.\\\\-top { + align-items: flex-start; +} +.grid.-top { + align-items: flex-start; +} +.grid.\\\\-middle { + align-items: center; +} +.grid.\\\\-bottom { + align-items: flex-end; +} + +.u-m\\\\00002b {} + +.u-m00002b {} + +#u-m\\\\+ {} + +body { + font-family: '微软雅黑'; /* some chinese font name */ +} + +.myStyle { + content: '\\\\e901'; +} + +.myStyle { + content: '\\\\E901'; +} + +.♫ {} + +.\\\\3A \\\\\`\\\\( {} /* matches elements with class=\\":\`(\\" */ +.\\\\31 a2b3c {} /* matches elements with class=\\"1a2b3c\\" */ +#\\\\#fake-id {} /* matches the element with id=\\"#fake-id\\" */ +#-a-b-c- {} /* matches the element with id=\\"-a-b-c-\\" */ +#© {} /* matches the element with id=\\"©\\" */ + +:root { + --title-align: center; + --sr-only: { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0,0,0,0); + white-space: nowrap; + clip-path: inset(50%); + border: 0; + }; +} + +.test { + content: \\"\\\\2014\\\\A0\\"; + content: \\"\\\\2014 \\\\A0\\"; + content: \\"\\\\A0 \\\\2014\\"; + content: \\"\\\\A0\\\\2014\\"; + margin-top: 1px\\\\9; + background-color: #000\\\\9; +} + +.light.on .bulb:before{ + content: '💡'; +} + +.base64 { + background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); +} + +a[href=''] { + color: red; +} + +a[href='' i] { + color: red; +} + +a[href=\\"\\"] { + color: blue; +} + +a[href=\\"\\" i] { + color: blue; +} +", +} +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and CommonJS modules: warnings 1`] = `Array []`; + +exports[`'exportType' option should work with 'css-style-sheet' value and ECMA modules: errors 1`] = `Array []`; + +exports[`'exportType' option should work with 'css-style-sheet' value and ECMA modules: module 1`] = ` +"// Imports +import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../src/runtime/noSourceMaps.js\\"; +import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; +import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +// Exports +var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); +___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); +export default ___CSS_LOADER_STYLE_SHEET___; +" +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and ECMA modules: result 1`] = ` +CSSStyleSheet { + "text": "@charset \\"UTF-8\\"; + +/* Comment */ + +.class { + color: red; + background: url(file:///webpack/public/path/img.png); +} + +.class-duplicate-url { + background: url(file:///webpack/public/path/img.png); +} + +:root { + --foo: 1px; + --bar: 2px; +} + +.class { a: b c d; } + +.two {} + +.u-m\\\\+ { a: b c d; } + +.class { content: \\"\\\\F10C\\" } + +@media only screen and (max-width: 600px) { + body { + background-color: lightblue; + } +} + +.class { + content: \\"\\\\2193\\"; + content: \\"\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193\\"; + content: \\"\\\\2193\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193 \\\\2193\\"; +} + +.-top {} +.\\\\-top {} + +#\\\\#test {} + +.grid { + display: flex; + flex-wrap: wrap; +} +.grid.\\\\-top { + align-items: flex-start; +} +.grid.-top { + align-items: flex-start; +} +.grid.\\\\-middle { + align-items: center; +} +.grid.\\\\-bottom { + align-items: flex-end; +} + +.u-m\\\\00002b {} + +.u-m00002b {} + +#u-m\\\\+ {} + +body { + font-family: '微软雅黑'; /* some chinese font name */ +} + +.myStyle { + content: '\\\\e901'; +} + +.myStyle { + content: '\\\\E901'; +} + +.♫ {} + +.\\\\3A \\\\\`\\\\( {} /* matches elements with class=\\":\`(\\" */ +.\\\\31 a2b3c {} /* matches elements with class=\\"1a2b3c\\" */ +#\\\\#fake-id {} /* matches the element with id=\\"#fake-id\\" */ +#-a-b-c- {} /* matches the element with id=\\"-a-b-c-\\" */ +#© {} /* matches the element with id=\\"©\\" */ + +:root { + --title-align: center; + --sr-only: { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0,0,0,0); + white-space: nowrap; + clip-path: inset(50%); + border: 0; + }; +} + +.test { + content: \\"\\\\2014\\\\A0\\"; + content: \\"\\\\2014 \\\\A0\\"; + content: \\"\\\\A0 \\\\2014\\"; + content: \\"\\\\A0\\\\2014\\"; + margin-top: 1px\\\\9; + background-color: #000\\\\9; +} + +.light.on .bulb:before{ + content: '💡'; +} + +.base64 { + background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); +} + +a[href=''] { + color: red; +} + +a[href='' i] { + color: red; +} + +a[href=\\"\\"] { + color: blue; +} + +a[href=\\"\\" i] { + color: blue; +} +", +} +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and ECMA modules: warnings 1`] = `Array []`; + +exports[`'exportType' option should work with 'css-style-sheet' value and generate source maps: errors 1`] = `Array []`; + +exports[`'exportType' option should work with 'css-style-sheet' value and generate source maps: module 1`] = ` +"// Imports +import ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \\"../../src/runtime/sourceMaps.js\\"; +import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; +import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\",{\\"version\\":3,\\"sources\\":[\\"webpack://./basic-css-style-sheet.css\\"],\\"names\\":[],\\"mappings\\":\\"AAAA,gBAAgB;;AAEhB,YAAY;;AAEZ;EACE,UAAU;EACV,mDAAgC;AAClC;;AAEA;EACE,mDAAgC;AAClC;;AAEA;EACE,UAAU;EACV,UAAU;AACZ;;AAEA,SAAS,QAAQ,EAAE;;AAEnB,MAAM;;AAEN,SAAS,QAAQ,EAAE;;AAEnB,SAAS,iBAAiB;;AAE1B;EACE;IACE,2BAA2B;EAC7B;AACF;;AAEA;EACE,gBAAgB;EAChB,qBAAqB;EACrB,sBAAsB;EACtB,0BAA0B;EAC1B,4BAA4B;AAC9B;;AAEA,OAAO;AACP,QAAQ;;AAER,SAAS;;AAET;EACE,aAAa;EACb,eAAe;AACjB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,qBAAqB;AACvB;;AAEA,aAAa;;AAEb,YAAY;;AAEZ,QAAQ;;AAER;EACE,mBAAmB,EAAE,2BAA2B;AAClD;;AAEA;EACE,gBAAgB;AAClB;;AAEA;EACE,gBAAgB;AAClB;;AAEA,IAAI;;AAEJ,WAAW,EAAE,sCAAsC;AACnD,YAAY,EAAE,yCAAyC;AACvD,YAAY,EAAE,2CAA2C;AACzD,UAAU,EAAE,0CAA0C;AACtD,IAAI,EAAE,oCAAoC;;AAE1C;EACE,qBAAqB;EACrB;;;;;;;;;;GAUC;AACH;;AAEA;EACE,mBAAmB;EACnB,oBAAoB;EACpB,oBAAoB;EACpB,mBAAmB;EACnB,iBAAiB;EACjB,wBAAwB;AAC1B;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,mDAAq1B;AACv1B;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,WAAW;AACb\\",\\"sourcesContent\\":[\\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\\\\\"./url/img.png\\\\\\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\\\\\"./url/img.png\\\\\\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==);\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\"],\\"sourceRoot\\":\\"\\"}]); +// Exports +var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); +___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); +export default ___CSS_LOADER_STYLE_SHEET___; +" +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and generate source maps: result 1`] = ` +CSSStyleSheet { + "text": "@charset \\"UTF-8\\"; + +/* Comment */ + +.class { + color: red; + background: url(file:///webpack/public/path/img.png); +} + +.class-duplicate-url { + background: url(file:///webpack/public/path/img.png); +} + +:root { + --foo: 1px; + --bar: 2px; +} + +.class { a: b c d; } + +.two {} + +.u-m\\\\+ { a: b c d; } + +.class { content: \\"\\\\F10C\\" } + +@media only screen and (max-width: 600px) { + body { + background-color: lightblue; + } +} + +.class { + content: \\"\\\\2193\\"; + content: \\"\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193\\"; + content: \\"\\\\2193\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193 \\\\2193\\"; +} + +.-top {} +.\\\\-top {} + +#\\\\#test {} + +.grid { + display: flex; + flex-wrap: wrap; +} +.grid.\\\\-top { + align-items: flex-start; +} +.grid.-top { + align-items: flex-start; +} +.grid.\\\\-middle { + align-items: center; +} +.grid.\\\\-bottom { + align-items: flex-end; +} + +.u-m\\\\00002b {} + +.u-m00002b {} + +#u-m\\\\+ {} + +body { + font-family: '微软雅黑'; /* some chinese font name */ +} + +.myStyle { + content: '\\\\e901'; +} + +.myStyle { + content: '\\\\E901'; +} + +.♫ {} + +.\\\\3A \\\\\`\\\\( {} /* matches elements with class=\\":\`(\\" */ +.\\\\31 a2b3c {} /* matches elements with class=\\"1a2b3c\\" */ +#\\\\#fake-id {} /* matches the element with id=\\"#fake-id\\" */ +#-a-b-c- {} /* matches the element with id=\\"-a-b-c-\\" */ +#© {} /* matches the element with id=\\"©\\" */ + +:root { + --title-align: center; + --sr-only: { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0,0,0,0); + white-space: nowrap; + clip-path: inset(50%); + border: 0; + }; +} + +.test { + content: \\"\\\\2014\\\\A0\\"; + content: \\"\\\\2014 \\\\A0\\"; + content: \\"\\\\A0 \\\\2014\\"; + content: \\"\\\\A0\\\\2014\\"; + margin-top: 1px\\\\9; + background-color: #000\\\\9; +} + +.light.on .bulb:before{ + content: '💡'; +} + +.base64 { + background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); +} + +a[href=''] { + color: red; +} + +a[href='' i] { + color: red; +} + +a[href=\\"\\"] { + color: blue; +} + +a[href=\\"\\" i] { + color: blue; +} + +/*# sourceURL=webpack://./basic-css-style-sheet.css */ +/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8uL2Jhc2ljLWNzcy1zdHlsZS1zaGVldC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0JBQWdCOztBQUVoQixZQUFZOztBQUVaO0VBQ0UsVUFBVTtFQUNWLG1EQUFnQztBQUNsQzs7QUFFQTtFQUNFLG1EQUFnQztBQUNsQzs7QUFFQTtFQUNFLFVBQVU7RUFDVixVQUFVO0FBQ1o7O0FBRUEsU0FBUyxRQUFRLEVBQUU7O0FBRW5CLE1BQU07O0FBRU4sU0FBUyxRQUFRLEVBQUU7O0FBRW5CLFNBQVMsaUJBQWlCOztBQUUxQjtFQUNFO0lBQ0UsMkJBQTJCO0VBQzdCO0FBQ0Y7O0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIscUJBQXFCO0VBQ3JCLHNCQUFzQjtFQUN0QiwwQkFBMEI7RUFDMUIsNEJBQTRCO0FBQzlCOztBQUVBLE9BQU87QUFDUCxRQUFROztBQUVSLFNBQVM7O0FBRVQ7RUFDRSxhQUFhO0VBQ2IsZUFBZTtBQUNqQjtBQUNBO0VBQ0UsdUJBQXVCO0FBQ3pCO0FBQ0E7RUFDRSx1QkFBdUI7QUFDekI7QUFDQTtFQUNFLG1CQUFtQjtBQUNyQjtBQUNBO0VBQ0UscUJBQXFCO0FBQ3ZCOztBQUVBLGFBQWE7O0FBRWIsWUFBWTs7QUFFWixRQUFROztBQUVSO0VBQ0UsbUJBQW1CLEVBQUUsMkJBQTJCO0FBQ2xEOztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsZ0JBQWdCO0FBQ2xCOztBQUVBLElBQUk7O0FBRUosV0FBVyxFQUFFLHNDQUFzQztBQUNuRCxZQUFZLEVBQUUseUNBQXlDO0FBQ3ZELFlBQVksRUFBRSwyQ0FBMkM7QUFDekQsVUFBVSxFQUFFLDBDQUEwQztBQUN0RCxJQUFJLEVBQUUsb0NBQW9DOztBQUUxQztFQUNFLHFCQUFxQjtFQUNyQjs7Ozs7Ozs7OztHQVVDO0FBQ0g7O0FBRUE7RUFDRSxtQkFBbUI7RUFDbkIsb0JBQW9CO0VBQ3BCLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsaUJBQWlCO0VBQ2pCLHdCQUF3QjtBQUMxQjs7QUFFQTtFQUNFLGFBQWE7QUFDZjs7QUFFQTtFQUNFLG1EQUFxMUI7QUFDdjFCOztBQUVBO0VBQ0UsVUFBVTtBQUNaOztBQUVBO0VBQ0UsVUFBVTtBQUNaOztBQUVBO0VBQ0UsV0FBVztBQUNiOztBQUVBO0VBQ0UsV0FBVztBQUNiIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vKiBDb21tZW50ICovXG5cbi5jbGFzcyB7XG4gIGNvbG9yOiByZWQ7XG4gIGJhY2tncm91bmQ6IHVybChcIi4vdXJsL2ltZy5wbmdcIik7XG59XG5cbi5jbGFzcy1kdXBsaWNhdGUtdXJsIHtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi91cmwvaW1nLnBuZ1wiKTtcbn1cblxuOnJvb3Qge1xuICAtLWZvbzogMXB4O1xuICAtLWJhcjogMnB4O1xufVxuXG4uY2xhc3MgeyBhOiBiIGMgZDsgfVxuXG4udHdvIHt9XG5cbi51LW1cXCsgeyBhOiBiIGMgZDsgfVxuXG4uY2xhc3MgeyBjb250ZW50OiBcIlxcRjEwQ1wiIH1cblxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuICBib2R5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGJsdWU7XG4gIH1cbn1cblxuLmNsYXNzIHtcbiAgY29udGVudDogXCJcXDIxOTNcIjtcbiAgY29udGVudDogXCJcXDIxOTNcXDIxOTNcIjtcbiAgY29udGVudDogXCJcXDIxOTMgXFwyMTkzXCI7XG4gIGNvbnRlbnQ6IFwiXFwyMTkzXFwyMTkzXFwyMTkzXCI7XG4gIGNvbnRlbnQ6IFwiXFwyMTkzIFxcMjE5MyBcXDIxOTNcIjtcbn1cblxuLi10b3Age31cbi5cXC10b3Age31cblxuI1xcI3Rlc3Qge31cblxuLmdyaWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG4uZ3JpZC5cXC10b3Age1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cbi5ncmlkLi10b3Age1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbn1cbi5ncmlkLlxcLW1pZGRsZSB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uZ3JpZC5cXC1ib3R0b20ge1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG59XG5cbi51LW1cXDAwMDAyYiB7fVxuXG4udS1tMDAwMDJiIHt9XG5cbiN1LW1cXCsge31cblxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiAnw6XCvsKuw6jCvcKvw6nCm8KFw6nCu8KRJzsgLyogc29tZSBjaGluZXNlIGZvbnQgbmFtZSAqL1xufVxuXG4ubXlTdHlsZSB7XG4gIGNvbnRlbnQ6ICdcXGU5MDEnO1xufVxuXG4ubXlTdHlsZSB7XG4gIGNvbnRlbnQ6ICdcXEU5MDEnO1xufVxuXG4uw6LCmcKrIHt9XG5cbi5cXDNBIFxcYFxcKCB7fSAvKiBtYXRjaGVzIGVsZW1lbnRzIHdpdGggY2xhc3M9XCI6YChcIiAqL1xuLlxcMzEgYTJiM2Mge30gLyogbWF0Y2hlcyBlbGVtZW50cyB3aXRoIGNsYXNzPVwiMWEyYjNjXCIgKi9cbiNcXCNmYWtlLWlkIHt9IC8qIG1hdGNoZXMgdGhlIGVsZW1lbnQgd2l0aCBpZD1cIiNmYWtlLWlkXCIgKi9cbiMtYS1iLWMtIHt9IC8qIG1hdGNoZXMgdGhlIGVsZW1lbnQgd2l0aCBpZD1cIi1hLWItYy1cIiAqL1xuI8OCwqkge30gLyogbWF0Y2hlcyB0aGUgZWxlbWVudCB3aXRoIGlkPVwiw4LCqVwiICovXG5cbjpyb290IHtcbiAgLS10aXRsZS1hbGlnbjogY2VudGVyO1xuICAtLXNyLW9ubHk6IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY2xpcDogcmVjdCgwLDAsMCwwKTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGNsaXAtcGF0aDogaW5zZXQoNTAlKTtcbiAgICBib3JkZXI6IDA7XG4gIH07XG59XG5cbi50ZXN0IHtcbiAgY29udGVudDogXCJcXDIwMTRcXEEwXCI7XG4gIGNvbnRlbnQ6IFwiXFwyMDE0IFxcQTBcIjtcbiAgY29udGVudDogXCJcXEEwIFxcMjAxNFwiO1xuICBjb250ZW50OiBcIlxcQTBcXDIwMTRcIjtcbiAgbWFyZ2luLXRvcDogMXB4XFw5O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwXFw5O1xufVxuXG4ubGlnaHQub24gLmJ1bGI6YmVmb3Jle1xuICBjb250ZW50OiAnw7DCn8KSwqEnO1xufVxuXG4uYmFzZTY0IHtcbiAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1nL2pwZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJnQUFBQVlDQVlBQUFEZ2R6MzRBQUFBQVhOU1IwSUFyczRjNlFBQUFoeEpSRUZVU0EzdGs3MXJVMUVZeG5NVEVvSlVrb3dXd2RKMmFrRUhCZkdqQ2lJRjZaeWxWVUtTbTJUcVpMR0krQS9vSXUyVVhtOEM0bEF5RjRTV2ppMHRkRkxvMUVvN1ZOMFNhQkVoSDdlL056MG5QVGZHT2ppYUN5ZlBjNTczNHpsZkNRVDZYLzhFL3ZVRXJMODFLQmFMOXkzTFNudWVkNVBjSVRqVU93UjNnc0ZnMmJidGpZdDYvTkdnWEM0UDFldDFsMmFQTG1wQWJEMFNpZGpwZFBxZ1YxNVBBOWQxN3pRYWpVOFV4SFFSSy80RzM1UTVwdmVBSzhMbEkxWmpQTW5sY2x0bnl2bnZid2FPNDF4dnRWcXk3WUh6dE1BQ3E1eG5sYjlFWTNkUmR2Y0dvMWtqNXdSK3QxQW9mREcwZ00rQTg3NUU4RE5qUkNleHNyVjhQajlacVZRaXRWcnRxZWp4ZVB4ak1wbXNzNWhWVEI0YnVYdk1iMkR5VTJ0QlRSUytCanZObFZZVXBQbDdpdVZPM0dxMXVvUXgxRnRTT1cxZ1BncDVaV3JkQnRObVVEZ3Y1YXNneFE4RjFhZjV2aFkwWWp5anVXQzN3VHN6S0p6N0dCT2tjRmxRZlcyT05xNEZqV2krSGo2RFJDS3hRT0syVGxZNHg5MkV1WWQ1ZHZNQWJZSXpmaWthdTNwdTV0SjhLeGFMTGZvMGN5S2NpN3RLNFRaalVNY29YQW1Id3psZTBRL1JhQzVQMUdGTXlWeDlSOUZvOUhZcWxUclNncUR2RmVsQXFWUWE1aG11TVIvV0d0akFhQmRqd0JvRFEwWnNud1ZNWmpLWjluMFplbThEU2VEUGRyblpiTDZGMmwzTk92VVlOWms0b1ZEb1JUYWJQZTRFRE5KekIwWmNqQVl4ZW9aMmkzRk54UTdCSFl3L2NCL2ZsZGFILy9VRVRnSEhPOFM0NEtiZlhnQUFBQUJKUlU1RXJrSmdnZz09KTtcbn1cblxuYVtocmVmPScnXSB7XG4gIGNvbG9yOiByZWQ7XG59XG5cbmFbaHJlZj0nJyBpXSB7XG4gIGNvbG9yOiByZWQ7XG59XG5cbmFbaHJlZj1cIlwiXSB7XG4gIGNvbG9yOiBibHVlO1xufVxuXG5hW2hyZWY9XCJcIiBpXSB7XG4gIGNvbG9yOiBibHVlO1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ== */", +} +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and generate source maps: warnings 1`] = `Array []`; + +exports[`'exportType' option should work with 'css-style-sheet' value and keep import and emit errors on \`@import\` at-rules: errors 1`] = ` +Array [ + "ModuleError: Module Error (from \`replaced original path\`): +/test/fixtures/basic.css:3:1: '@import' rules are not allowed here and will not be processed", +] +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and keep import and emit errors on \`@import\` at-rules: module 1`] = ` +"// Imports +import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../src/runtime/noSourceMaps.js\\"; +import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; +import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n@import 'imported.css';\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +// Exports +var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); +___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); +export default ___CSS_LOADER_STYLE_SHEET___; +" +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and keep import and emit errors on \`@import\` at-rules: result 1`] = ` +CSSStyleSheet { + "text": "@charset \\"UTF-8\\"; + +@import 'imported.css'; + +/* Comment */ + +.class { + color: red; + background: url(file:///webpack/public/path/img.png); +} + +.class-duplicate-url { + background: url(file:///webpack/public/path/img.png); +} + +:root { + --foo: 1px; + --bar: 2px; +} + +.class { a: b c d; } + +.two {} + +.u-m\\\\+ { a: b c d; } + +.class { content: \\"\\\\F10C\\" } + +@media only screen and (max-width: 600px) { + body { + background-color: lightblue; + } +} + +.class { + content: \\"\\\\2193\\"; + content: \\"\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193\\"; + content: \\"\\\\2193\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193 \\\\2193\\"; +} + +.-top {} +.\\\\-top {} + +#\\\\#test {} + +.grid { + display: flex; + flex-wrap: wrap; +} +.grid.\\\\-top { + align-items: flex-start; +} +.grid.-top { + align-items: flex-start; +} +.grid.\\\\-middle { + align-items: center; +} +.grid.\\\\-bottom { + align-items: flex-end; +} + +.u-m\\\\00002b {} + +.u-m00002b {} + +#u-m\\\\+ {} + +body { + font-family: '微软雅黑'; /* some chinese font name */ +} + +.myStyle { + content: '\\\\e901'; +} + +.myStyle { + content: '\\\\E901'; +} + +.♫ {} + +.\\\\3A \\\\\`\\\\( {} /* matches elements with class=\\":\`(\\" */ +.\\\\31 a2b3c {} /* matches elements with class=\\"1a2b3c\\" */ +#\\\\#fake-id {} /* matches the element with id=\\"#fake-id\\" */ +#-a-b-c- {} /* matches the element with id=\\"-a-b-c-\\" */ +#© {} /* matches the element with id=\\"©\\" */ + +:root { + --title-align: center; + --sr-only: { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0,0,0,0); + white-space: nowrap; + clip-path: inset(50%); + border: 0; + }; +} + +.test { + content: \\"\\\\2014\\\\A0\\"; + content: \\"\\\\2014 \\\\A0\\"; + content: \\"\\\\A0 \\\\2014\\"; + content: \\"\\\\A0\\\\2014\\"; + margin-top: 1px\\\\9; + background-color: #000\\\\9; +} + +.light.on .bulb:before{ + content: '💡'; +} + +.base64 { + background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); +} + +a[href=''] { + color: red; +} + +a[href='' i] { + color: red; +} + +a[href=\\"\\"] { + color: blue; +} + +a[href=\\"\\" i] { + color: blue; +} +", +} +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and keep import and emit errors on \`@import\` at-rules: warnings 1`] = `Array []`; + +exports[`'exportType' option should work with 'css-style-sheet' value and urls: errors 1`] = ` +Array [ + "ModuleError: Module Error (from \`replaced original path\`): +/test/fixtures/url/url.css:1:1: '@import' rules are not allowed here and will not be processed", +] +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and urls: module 1`] = ` +"// Imports +import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../../src/runtime/noSourceMaps.js\\"; +import ___CSS_LOADER_API_IMPORT___ from \\"../../../src/runtime/api.js\\"; +import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../../src/runtime/getUrl.js\\"; +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"package/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_2___ = new URL(\\"./other-img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_3___ = new URL(\\"./img img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_4___ = new URL(\\"/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_5___ = new URL(\\"data:image/png;base64,AAA\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_6___ = new URL(\\"data:image/svg+xml;charset=utf-8,\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_7___ = new URL(\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_8___ = new URL(\\"data:image/svg+xml;charset=utf-8,#filter\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_9___ = new URL(\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba%28255%2C255%2C255%2C1%29%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_10___ = new URL(\\"./font.woff\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_11___ = new URL(\\"./font.woff2\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_12___ = new URL(\\"./font.eot\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_13___ = new URL(\\"package/font.ttf\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_14___ = new URL(\\"./font with spaces.eot\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_15___ = new URL(\\"./font.svg\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_16___ = new URL(\\"./font.woff2?foo=bar\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_17___ = new URL(\\"./img1x.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_18___ = new URL(\\"./img2x.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_19___ = new URL(\\"./img.png?foo\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_20___ = new URL(\\"./img.png?foo=bar\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_21___ = new URL(\\"./img.png?\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_22___ = new URL(\\"img-simple.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_23___ = new URL(\\"/url/img-simple.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_24___ = new URL(\\"../url/img-simple.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_25___ = new URL(\\"aliasesImg/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_26___ = new URL(\\"./nested/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_27___ = new URL(\\"nested/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_28___ = new URL(\\"./img3x.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_29___ = new URL(\\"./img1x.png?foo=bar\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_30___ = new URL(\\"./img'img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_31___ = new URL(\\"./img'''img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_32___ = new URL(\\"./img(img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_33___ = new URL(\\"./img)img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_34___ = new URL(\\"./img'() img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_35___ = new URL(\\"img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_36___ = new URL(\\"./something.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_37___ = new URL(\\"./something.png?foo=bar\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_38___ = new URL(\\"./something.png?bar=foo\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_39___ = new URL(\\"./something.png?foo=1&bar=2\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_40___ = new URL(\\"./something.png?foo=2&bar=1\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_41___ = new URL(\\"data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3C%21DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%0A%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%0A%09%20width%3D%22191px%22%20height%3D%22191px%22%20viewBox%3D%220%200%20191%20191%22%20enable-background%3D%22new%200%200%20191%20191%22%20xml%3Aspace%3D%22preserve%22%3E%0A%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M95.5%2C0C42.8%2C0%2C0%2C42.8%2C0%2C95.5S42.8%2C191%2C95.5%2C191S191%2C148.2%2C191%2C95.5S148.2%2C0%2C95.5%2C0z%20M95.5%2C187.6%0A%09c-50.848%2C0-92.1-41.25-92.1-92.1c0-50.848%2C41.252-92.1%2C92.1-92.1c50.85%2C0%2C92.1%2C41.252%2C92.1%2C92.1%0A%09C187.6%2C146.35%2C146.35%2C187.6%2C95.5%2C187.6z%22%2F%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M92.9%2C10v8.6H91v-6.5c-0.1%2C0.1-0.2%2C0.2-0.4%2C0.3c-0.2%2C0.1-0.3%2C0.2-0.4%2C0.2c-0.1%2C0-0.3%2C0.1-0.5%2C0.2%0A%09%09c-0.2%2C0.1-0.3%2C0.1-0.5%2C0.1v-1.6c0.5-0.1%2C0.9-0.3%2C1.4-0.5c0.5-0.2%2C0.8-0.5%2C1.2-0.7h1.1V10z%22%2F%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M97.1%2C17.1h3.602v1.5h-5.6V18c0-0.4%2C0.1-0.8%2C0.2-1.2c0.1-0.4%2C0.3-0.6%2C0.5-0.9c0.2-0.3%2C0.5-0.5%2C0.7-0.7%0A%09%09c0.2-0.2%2C0.5-0.4%2C0.7-0.6c0.199-0.2%2C0.5-0.3%2C0.6-0.5c0.102-0.2%2C0.301-0.3%2C0.5-0.5c0.2-0.2%2C0.2-0.3%2C0.301-0.5%0A%09%09c0.101-0.2%2C0.101-0.3%2C0.101-0.5c0-0.4-0.101-0.6-0.3-0.8c-0.2-0.2-0.4-0.3-0.801-0.3c-0.699%2C0-1.399%2C0.3-2.101%2C0.9v-1.6%0A%09%09c0.7-0.5%2C1.5-0.7%2C2.5-0.7c0.399%2C0%2C0.8%2C0.1%2C1.101%2C0.2c0.301%2C0.1%2C0.601%2C0.3%2C0.899%2C0.5c0.3%2C0.2%2C0.399%2C0.5%2C0.5%2C0.8%0A%09%09c0.101%2C0.3%2C0.2%2C0.6%2C0.2%2C1s-0.102%2C0.7-0.2%2C1c-0.099%2C0.3-0.3%2C0.6-0.5%2C0.8c-0.2%2C0.2-0.399%2C0.5-0.7%2C0.7c-0.3%2C0.2-0.5%2C0.4-0.8%2C0.6%0A%09%09c-0.2%2C0.1-0.399%2C0.3-0.5%2C0.4s-0.3%2C0.3-0.5%2C0.4s-0.2%2C0.3-0.3%2C0.4C97.1%2C17%2C97.1%2C17%2C97.1%2C17.1z%22%2F%3E%0A%3C%2Fg%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M15%2C95.4c0%2C0.7-0.1%2C1.4-0.2%2C2c-0.1%2C0.6-0.4%2C1.1-0.7%2C1.5C13.8%2C99.3%2C13.4%2C99.6%2C12.9%2C99.8s-1%2C0.3-1.5%2C0.3%0A%09%09c-0.7%2C0-1.3-0.1-1.8-0.3v-1.5c0.4%2C0.3%2C1%2C0.4%2C1.6%2C0.4c0.6%2C0%2C1.1-0.2%2C1.5-0.7c0.4-0.5%2C0.5-1.1%2C0.5-1.9l0%2C0%0A%09%09C12.8%2C96.7%2C12.3%2C96.9%2C11.5%2C96.9c-0.3%2C0-0.7-0.102-1-0.2c-0.3-0.101-0.5-0.3-0.8-0.5c-0.3-0.2-0.4-0.5-0.5-0.8%0A%09%09c-0.1-0.3-0.2-0.7-0.2-1c0-0.4%2C0.1-0.8%2C0.2-1.2c0.1-0.4%2C0.3-0.7%2C0.6-0.9c0.3-0.2%2C0.6-0.5%2C0.9-0.6c0.3-0.1%2C0.8-0.2%2C1.2-0.2%0A%09%09c0.5%2C0%2C0.9%2C0.1%2C1.2%2C0.3c0.3%2C0.2%2C0.7%2C0.4%2C0.9%2C0.8s0.5%2C0.7%2C0.6%2C1.2S15%2C94.8%2C15%2C95.4z%20M13.1%2C94.4c0-0.2%2C0-0.4-0.1-0.6%0A%09%09c-0.1-0.2-0.1-0.4-0.2-0.5c-0.1-0.1-0.2-0.2-0.4-0.3c-0.2-0.1-0.3-0.1-0.5-0.1c-0.2%2C0-0.3%2C0-0.4%2C0.1s-0.3%2C0.2-0.3%2C0.3%0A%09%09c0%2C0.1-0.2%2C0.3-0.2%2C0.4c0%2C0.1-0.1%2C0.4-0.1%2C0.6c0%2C0.2%2C0%2C0.4%2C0.1%2C0.6c0.1%2C0.2%2C0.1%2C0.3%2C0.2%2C0.4c0.1%2C0.1%2C0.2%2C0.2%2C0.4%2C0.3%0A%09%09c0.2%2C0.1%2C0.3%2C0.1%2C0.5%2C0.1c0.2%2C0%2C0.3%2C0%2C0.4-0.1s0.2-0.2%2C0.3-0.3c0.1-0.1%2C0.2-0.2%2C0.2-0.4C13%2C94.7%2C13.1%2C94.6%2C13.1%2C94.4z%22%2F%3E%0A%3C%2Fg%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M176%2C99.7V98.1c0.6%2C0.4%2C1.2%2C0.602%2C2%2C0.602c0.5%2C0%2C0.8-0.102%2C1.1-0.301c0.301-0.199%2C0.4-0.5%2C0.4-0.801%0A%09%09c0-0.398-0.2-0.699-0.5-0.898c-0.3-0.2-0.8-0.301-1.3-0.301h-0.802V95h0.701c1.101%2C0%2C1.601-0.4%2C1.601-1.1c0-0.7-0.4-1-1.302-1%0A%09%09c-0.6%2C0-1.1%2C0.2-1.6%2C0.5v-1.5c0.6-0.3%2C1.301-0.4%2C2.1-0.4c0.9%2C0%2C1.5%2C0.2%2C2%2C0.6s0.701%2C0.9%2C0.701%2C1.5c0%2C1.1-0.601%2C1.8-1.701%2C2.1l0%2C0%0A%09%09c0.602%2C0.1%2C1.102%2C0.3%2C1.4%2C0.6s0.5%2C0.8%2C0.5%2C1.3c0%2C0.801-0.3%2C1.4-0.9%2C1.9c-0.6%2C0.5-1.398%2C0.7-2.398%2C0.7%0A%09%09C177.2%2C100.1%2C176.5%2C100%2C176%2C99.7z%22%2F%3E%0A%3C%2Fg%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M98.5%2C179.102c0%2C0.398-0.1%2C0.799-0.2%2C1.199C98.2%2C180.7%2C98%2C181%2C97.7%2C181.2s-0.601%2C0.5-0.9%2C0.601%0A%09%09c-0.3%2C0.1-0.7%2C0.199-1.2%2C0.199c-0.5%2C0-0.9-0.1-1.3-0.3c-0.4-0.2-0.7-0.399-0.9-0.8c-0.2-0.4-0.5-0.7-0.6-1.2%0A%09%09c-0.1-0.5-0.2-1-0.2-1.601c0-0.699%2C0.1-1.399%2C0.3-2c0.2-0.601%2C0.4-1.101%2C0.8-1.5c0.4-0.399%2C0.7-0.699%2C1.2-1c0.5-0.3%2C1-0.3%2C1.6-0.3%0A%09%09c0.6%2C0%2C1.2%2C0.101%2C1.5%2C0.199v1.5c-0.4-0.199-0.9-0.399-1.4-0.399c-0.3%2C0-0.6%2C0.101-0.8%2C0.2c-0.2%2C0.101-0.5%2C0.3-0.7%2C0.5%0A%09%09c-0.2%2C0.199-0.3%2C0.5-0.4%2C0.8c-0.1%2C0.301-0.2%2C0.7-0.2%2C1.101l0%2C0c0.4-0.601%2C1-0.8%2C1.8-0.8c0.3%2C0%2C0.7%2C0.1%2C0.9%2C0.199%0A%09%09c0.2%2C0.101%2C0.5%2C0.301%2C0.7%2C0.5c0.199%2C0.2%2C0.398%2C0.5%2C0.5%2C0.801C98.5%2C178.2%2C98.5%2C178.7%2C98.5%2C179.102z%20M96.7%2C179.2%0A%09%09c0-0.899-0.4-1.399-1.1-1.399c-0.2%2C0-0.3%2C0-0.5%2C0.1c-0.2%2C0.101-0.3%2C0.201-0.4%2C0.301c-0.1%2C0.101-0.2%2C0.199-0.2%2C0.4%0A%09%09c0%2C0.199-0.1%2C0.299-0.1%2C0.5c0%2C0.199%2C0%2C0.398%2C0.1%2C0.6s0.1%2C0.3%2C0.2%2C0.5c0.1%2C0.199%2C0.2%2C0.199%2C0.4%2C0.3c0.2%2C0.101%2C0.3%2C0.101%2C0.5%2C0.101%0A%09%09c0.2%2C0%2C0.3%2C0%2C0.5-0.101c0.2-0.101%2C0.301-0.199%2C0.301-0.3c0-0.1%2C0.199-0.301%2C0.199-0.399C96.6%2C179.7%2C96.7%2C179.4%2C96.7%2C179.2z%22%2F%3E%0A%3C%2Fg%3E%0A%3Ccircle%20fill%3D%22%23636363%22%20cx%3D%2295%22%20cy%3D%2295%22%20r%3D%227%22%2F%3E%0A%3C%2Fsvg%3E%0A\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_42___ = new URL(\\"/guide/img/banWord/addCoinDialogTitleBg.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_43___ = new URL(\\"!!../../helpers/url-loader.js?esModule=false!package/img-single.png?ignore-asset-modules\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_44___ = new URL(\\"nested/other.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_45___ = new URL(\\"data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27none%27 stroke=%27%23343a40%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27M2 5l6 6 6-6%27/%3e%3c/svg%3e\\", import.meta.url); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___, { hash: \\"#hash\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +var ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___); +var ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___); +var ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___); +var ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___); +var ___CSS_LOADER_URL_REPLACEMENT_7___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___); +var ___CSS_LOADER_URL_REPLACEMENT_8___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___); +var ___CSS_LOADER_URL_REPLACEMENT_9___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_8___); +var ___CSS_LOADER_URL_REPLACEMENT_10___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_9___); +var ___CSS_LOADER_URL_REPLACEMENT_11___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_10___); +var ___CSS_LOADER_URL_REPLACEMENT_12___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___); +var ___CSS_LOADER_URL_REPLACEMENT_13___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_12___); +var ___CSS_LOADER_URL_REPLACEMENT_14___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_13___); +var ___CSS_LOADER_URL_REPLACEMENT_15___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_14___); +var ___CSS_LOADER_URL_REPLACEMENT_16___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_15___, { hash: \\"#svgFontName\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_17___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_16___); +var ___CSS_LOADER_URL_REPLACEMENT_18___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_12___, { hash: \\"?#iefix\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_19___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_14___, { hash: \\"?#iefix\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_20___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___); +var ___CSS_LOADER_URL_REPLACEMENT_21___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_18___); +var ___CSS_LOADER_URL_REPLACEMENT_22___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_19___); +var ___CSS_LOADER_URL_REPLACEMENT_23___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_20___); +var ___CSS_LOADER_URL_REPLACEMENT_24___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_20___, { hash: \\"#hash\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_25___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_21___); +var ___CSS_LOADER_URL_REPLACEMENT_26___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_22___); +var ___CSS_LOADER_URL_REPLACEMENT_27___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_23___); +var ___CSS_LOADER_URL_REPLACEMENT_28___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_24___); +var ___CSS_LOADER_URL_REPLACEMENT_29___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_25___); +var ___CSS_LOADER_URL_REPLACEMENT_30___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_26___); +var ___CSS_LOADER_URL_REPLACEMENT_31___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_27___); +var ___CSS_LOADER_URL_REPLACEMENT_32___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___, { needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_33___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_18___, { needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_34___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___, { needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_35___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_28___, { needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_36___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_29___, { needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_37___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___, { hash: \\"#hash\\", needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_38___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___, { hash: \\"?#iefix\\", needQuotes: true }); +var ___CSS_LOADER_URL_REPLACEMENT_39___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_28___); +var ___CSS_LOADER_URL_REPLACEMENT_40___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_30___); +var ___CSS_LOADER_URL_REPLACEMENT_41___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_31___); +var ___CSS_LOADER_URL_REPLACEMENT_42___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_32___); +var ___CSS_LOADER_URL_REPLACEMENT_43___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_33___); +var ___CSS_LOADER_URL_REPLACEMENT_44___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_34___); +var ___CSS_LOADER_URL_REPLACEMENT_45___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_35___); +var ___CSS_LOADER_URL_REPLACEMENT_46___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_36___); +var ___CSS_LOADER_URL_REPLACEMENT_47___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_37___); +var ___CSS_LOADER_URL_REPLACEMENT_48___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_37___, { hash: \\"#hash\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_49___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_38___); +var ___CSS_LOADER_URL_REPLACEMENT_50___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_37___, { hash: \\"#foo\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_51___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_38___, { hash: \\"#bar\\" }); +var ___CSS_LOADER_URL_REPLACEMENT_52___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_39___); +var ___CSS_LOADER_URL_REPLACEMENT_53___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_40___); +var ___CSS_LOADER_URL_REPLACEMENT_54___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_41___); +var ___CSS_LOADER_URL_REPLACEMENT_55___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_42___); +var ___CSS_LOADER_URL_REPLACEMENT_56___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_43___); +var ___CSS_LOADER_URL_REPLACEMENT_57___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_44___); +var ___CSS_LOADER_URL_REPLACEMENT_58___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_45___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"@import \\\\\\"./imported.css\\\\\\";\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\"\\\\n );\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url( \\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\" ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_6___ + \\") url(http://example.com/image.jpg) url(//example.com/image.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_8___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n filter: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n filter: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \\");\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url(#highlight);\\\\n}\\\\n\\\\n.highlight {\\\\n filter: url('#line-marker');\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_11___ + \\") format('woff'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_12___ + \\") format('woff2'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \\") format('eot'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \\") format('truetype'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \\") format(\\\\\\"embedded-opentype\\\\\\"),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_16___ + \\") format('svg'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_17___ + \\") format('woff2'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_18___ + \\") format('embedded-opentype'),\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_19___ + \\") format('embedded-opentype');\\\\n}\\\\n\\\\n@media (min-width: 500px) {\\\\n body {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n }\\\\n}\\\\n\\\\na {\\\\n content: \\\\\\"do not use url(path)\\\\\\";\\\\n}\\\\n\\\\nb {\\\\n content: 'do not \\\\\\"use\\\\\\" url(path)';\\\\n}\\\\n\\\\n@keyframes anim {\\\\n background: green url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") xyz;\\\\n}\\\\n\\\\n.a {\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x)\\\\n}\\\\n\\\\n.a {\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x)\\\\n}\\\\n\\\\n.class {\\\\n background: green url() xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url('') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\\\"\\\\\\") xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(' ') xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(\\\\n ) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz;\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_22___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_23___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_24___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_25___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \\") url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: ___CSS_LOADER_URL___;\\\\n background: ___CSS_LOADER_URL___INDEX___;\\\\n background: ___CSS_LOADER_URL___99999___;\\\\n background: ___CSS_LOADER_IMPORT___;\\\\n background: ___CSS_LOADER_IMPORT___INDEX___;\\\\n background: ___CSS_LOADER_IMPORT___99999___;\\\\n}\\\\n\\\\n.pure-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_26___ + \\");\\\\n}\\\\n\\\\n.root-relative {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_27___ + \\");\\\\n}\\\\n\\\\n.above-below {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_28___ + \\");\\\\n}\\\\n\\\\n.tilde {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\");\\\\n}\\\\n\\\\n.aliases {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_29___ + \\") ;\\\\n}\\\\n\\\\na {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_30___ + \\");\\\\n}\\\\n\\\\na {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_31___ + \\");\\\\n}\\\\n\\\\n@font-face {\\\\n src: url(\\\\\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\\\\\");\\\\n}\\\\n\\\\n.class {\\\\n /* Broken */\\\\n background-image: -webkit-image-set();\\\\n background-image: -webkit-image-set('');\\\\n background-image: image-set();\\\\n background-image: image-set('');\\\\n background-image: image-set(\\\\\\"\\\\\\");\\\\n background-image: image-set(\\\\\\"\\\\\\" 1x);\\\\n background-image: image-set(url());\\\\n background-image: image-set(\\\\n url()\\\\n );\\\\n background-image: image-set(URL());\\\\n background-image: image-set(url(''));\\\\n background-image: image-set(url(\\\\\\"\\\\\\"));\\\\n background-image: image-set(url('') 1x);\\\\n background-image: image-set(1x);\\\\n background-image: image-set(\\\\n 1x\\\\n );\\\\n background: image-set(calc(1rem + 1px) 1x);\\\\n\\\\n /* Strings */\\\\n background-image: -webkit-image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_34___ + \\" 2x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x),\\\\n image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x);\\\\n background-image: image-set(\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_32___ + \\" 1x,\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x,\\\\n \\" + ___CSS_LOADER_URL_REPLACEMENT_35___ + \\" 600dpi\\\\n );\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_36___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_37___ + \\" 1x);\\\\n background-image: image-set(\\" + ___CSS_LOADER_URL_REPLACEMENT_38___ + \\" 1x);\\\\n\\\\n /* With \`url\` function */\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x);\\\\n background-image: -webkit-image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x);\\\\n background-image: -webkit-image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x);\\\\n background-image: image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x);\\\\n background-image: image-set(\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_39___ + \\") 600dpi\\\\n );\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 2x);\\\\n\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_20___ + \\") 1x, \\" + ___CSS_LOADER_URL_REPLACEMENT_33___ + \\" 2x);\\\\n}\\\\n\\\\n.class {\\\\n /* Not allowed on windows */\\\\n /* background: url(./img\\\\\\\\\\\\\\"img.png); */\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n\\\\n background-image: image-set(\\\\n /* Not allowed on windows */\\\\n /* url(./img\\\\\\\\\\\\\\"img.png) 1x, */\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\") 2x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\") 3x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\") 4x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\") 5x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\") 6x,\\\\n url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\") 7x\\\\n );\\\\n}\\\\n\\\\n.class-class-class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n}\\\\n\\\\n/* Comment */\\\\n\\\\n.class.class.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n}\\\\n\\\\n.other-test-case {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n}\\\\n\\\\n.qqq {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_45___ + \\");\\\\n}\\\\n\\\\n.www {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_41___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_42___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_43___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_40___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_44___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n /* Should be one import */\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_46___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_46___ + \\");\\\\n\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_47___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_47___ + \\");\\\\n\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_48___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_48___ + \\");\\\\n\\\\n /* Should be two imports */\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_47___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_49___ + \\");\\\\n\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_50___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_51___ + \\");\\\\n\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_52___ + \\");\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_53___ + \\");\\\\n}\\\\n\\\\n.base {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_54___ + \\") 50% 50%/191px no-repeat;\\\\n}\\\\n\\\\n.strange {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.my-background {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_55___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\", 'foo', './img.png', url('./img.png'));\\\\n background-image: image-set(url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\", 'foo', './img.png', url('./img.png')) 1x, url(\\" + ___CSS_LOADER_URL_REPLACEMENT_21___ + \\") 2x);\\\\n}\\\\n\\\\n.button {\\\\n background-image: url('data:image/svg+xml;utf8,');\\\\n}\\\\n\\\\n/* We need to use \`resourceQuery: /inline/\` */\\\\n/* Hard to test on webpack v4 */\\\\n.qqq {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_56___ + \\")\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_45___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_45___ + \\");\\\\n}\\\\n\\\\n/** Prefer relative **/\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_31___ + \\");\\\\n}\\\\n\\\\n/** Prefer from modules **/\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_57___ + \\");\\\\n}\\\\n\\\\n.class {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \\");\\\\n}\\\\n\\\\n.foo {\\\\n background-image: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_58___ + \\");\\\\n}\\\\n\\", \\"\\"]); +// Exports +var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); +___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); +export default ___CSS_LOADER_STYLE_SHEET___; +" +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and urls: result 1`] = ` +CSSStyleSheet { + "text": "@import \\"./imported.css\\"; + +.class { + background: url(file:///webpack/public/path/img.png); +} + +.class { + background: url(file:///webpack/public/path/img.png); +} + +.class { + background: url(file:///webpack/public/path/img.png); +} + +.class { + background: url(file:///webpack/public/path/img.png#hash); +} + +.class { + background: url( + file:///webpack/public/path/img.png + ); +} + +.class { + background: green url( file:///webpack/public/path/img.png ) xyz; +} + +.class { + background: green url( file:///webpack/public/path/img.png ) xyz; +} + +.class { + background: green url( file:///webpack/public/path/img.png ) xyz; +} + +.class { + background: green url(file:///webpack/public/path/img.png) url(file:///webpack/public/path/other-img.png) xyz; +} + +.class { + background: green url( \\"file:///webpack/public/path/img%20img.png\\" ) xyz; +} + +.class { + background: green url( \\"file:///webpack/public/path/img%20img.png\\" ) xyz; +} + +.class { + background: green url(file:///webpack/public/path/img.png) xyz; +} + +.class { + background: green url(data:image/png;base64,AAA) url(http://example.com/image.jpg) url(//example.com/image.png) xyz; +} + +.class { + background-image: url(\\"data:image/svg+xml;charset=utf-8,\\"); +} + +.class { + background-image: url(\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2042%2026%27%20fill%3D%27%2523007aff%27%3E%3Crect%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%271%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2711%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2712%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3Crect%20y%3D%2722%27%20width%3D%274%27%20height%3D%274%27%2F%3E%3Crect%20x%3D%278%27%20y%3D%2723%27%20width%3D%2734%27%20height%3D%272%27%2F%3E%3C%2Fsvg%3E\\"); +} + +.class { + filter: url(\\"data:image/svg+xml;charset=utf-8,#filter\\"); +} + +.class { + filter: url(\\"data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%5C%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%5C%22%3E%3Cfilter%20id%3D%5C%22filter%5C%22%3E%3CfeGaussianBlur%20in%3D%5C%22SourceAlpha%5C%22%20stdDeviation%3D%5C%220%5C%22%20%2F%3E%3CfeOffset%20dx%3D%5C%221%5C%22%20dy%3D%5C%222%5C%22%20result%3D%5C%22offsetblur%5C%22%20%2F%3E%3CfeFlood%20flood-color%3D%5C%22rgba%28255%2C255%2C255%2C1%29%5C%22%20%2F%3E%3CfeComposite%20in2%3D%5C%22offsetblur%5C%22%20operator%3D%5C%22in%5C%22%20%2F%3E%3CfeMerge%3E%3CfeMergeNode%20%2F%3E%3CfeMergeNode%20in%3D%5C%22SourceGraphic%5C%22%20%2F%3E%3C%2FfeMerge%3E%3C%2Ffilter%3E%3C%2Fsvg%3E%23filter\\"); +} + +.highlight { + filter: url(#highlight); +} + +.highlight { + filter: url('#line-marker'); +} + +@font-face { + src: url(file:///webpack/public/path/font.woff) format('woff'), + url(file:///webpack/public/path/font.woff2) format('woff2'), + url(file:///webpack/public/path/font.eot) format('eot'), + url(file:///webpack/public/path/font.ttf) format('truetype'), + url(\\"file:///webpack/public/path/font%20with%20spaces.eot\\") format(\\"embedded-opentype\\"), + url(file:///webpack/public/path/font.svg#svgFontName) format('svg'), + url(file:///webpack/public/path/font.woff2) format('woff2'), + url(file:///webpack/public/path/font.eot?#iefix) format('embedded-opentype'), + url(\\"file:///webpack/public/path/font%20with%20spaces.eot?#iefix\\") format('embedded-opentype'); +} + +@media (min-width: 500px) { + body { + background: url(file:///webpack/public/path/img.png); + } +} + +a { + content: \\"do not use url(path)\\"; +} + +b { + content: 'do not \\"use\\" url(path)'; +} + +@keyframes anim { + background: green url(file:///webpack/public/path/img.png) xyz; +} + +.a { + background-image: -webkit-image-set(url(file:///webpack/public/path/img1x.png) 1x, url(file:///webpack/public/path/img2x.png) 2x) +} + +.a { + background-image: image-set(url(file:///webpack/public/path/img1x.png) 1x, url(file:///webpack/public/path/img2x.png) 2x) +} + +.class { + background: green url() xyz; +} + +.class { + background: green url('') xyz; +} + +.class { + background: green url(\\"\\") xyz; +} + +.class { + background: green url(' ') xyz; +} + +.class { + background: green url( + ) xyz; +} + +.class { + background: green url(https://raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz; +} + +.class { + background: green url(//raw.githubusercontent.com/webpack/media/master/logo/icon.png) xyz; +} + +.class { + background: url(file:///webpack/public/path/img.png); +} + +.class { + background: url(file:///webpack/public/path/img.png); +} + +.class { + background: url(file:///webpack/public/path/img.png#hash); +} + +.class { + background: url(file:///webpack/public/path/img.png#hash); +} + +.class { + background: url(file:///webpack/public/path/img.png); +} + +.class { + background-image: url(file:///webpack/public/path/img.png) url(\\"data:image/svg+xml;charset=utf-8,\\") url(file:///webpack/public/path/img.png); +} + +.class { + background: ___CSS_LOADER_URL___; + background: ___CSS_LOADER_URL___INDEX___; + background: ___CSS_LOADER_URL___99999___; + background: ___CSS_LOADER_IMPORT___; + background: ___CSS_LOADER_IMPORT___INDEX___; + background: ___CSS_LOADER_IMPORT___99999___; +} + +.pure-url { + background: url(file:///webpack/public/path/img-simple.png); +} + +.root-relative { + background: url(file:///webpack/public/path/img-simple.png); +} + +.above-below { + background: url(file:///webpack/public/path/img-simple.png); +} + +.tilde { + background: url(file:///webpack/public/path/img.png); +} + +.aliases { + background: url(file:///webpack/public/path/img.png) ; +} + +a { + background: url(file:///webpack/public/path/img.png); +} + +a { + background: url(file:///webpack/public/path/img.png); +} + +@font-face { + src: url(\\"//at.alicdn.com/t/font_515771_emcns5054x3whfr.eot\\"); +} + +.class { + /* Broken */ + background-image: -webkit-image-set(); + background-image: -webkit-image-set(''); + background-image: image-set(); + background-image: image-set(''); + background-image: image-set(\\"\\"); + background-image: image-set(\\"\\" 1x); + background-image: image-set(url()); + background-image: image-set( + url() + ); + background-image: image-set(URL()); + background-image: image-set(url('')); + background-image: image-set(url(\\"\\")); + background-image: image-set(url('') 1x); + background-image: image-set(1x); + background-image: image-set( + 1x + ); + background: image-set(calc(1rem + 1px) 1x); + + /* Strings */ + background-image: -webkit-image-set(\\"file:///webpack/public/path/img1x.png\\" 1x, \\"file:///webpack/public/path/img2x.png\\" 2x); + background-image: image-set(\\"file:///webpack/public/path/img1x.png\\" 1x); + background-image: image-set(\\"file:///webpack/public/path/img1x.png\\" 1x, \\"file:///webpack/public/path/img2x.png\\" 2x); + background-image: image-set(\\"file:///webpack/public/path/img%20img.png\\" 1x, \\"file:///webpack/public/path/img%20img.png\\" 2x); + background-image: image-set(\\"file:///webpack/public/path/img1x.png\\" 1x, \\"file:///webpack/public/path/img2x.png\\" 2x), + image-set(\\"file:///webpack/public/path/img1x.png\\" 1x, \\"file:///webpack/public/path/img2x.png\\" 2x); + background-image: image-set( + \\"file:///webpack/public/path/img1x.png\\" 1x, + \\"file:///webpack/public/path/img2x.png\\" 2x, + \\"file:///webpack/public/path/img3x.png\\" 600dpi + ); + background-image: image-set(\\"file:///webpack/public/path/img1x.png\\" 1x); + background-image: image-set(\\"file:///webpack/public/path/img1x.png#hash\\" 1x); + background-image: image-set(\\"file:///webpack/public/path/img1x.png?#iefix\\" 1x); + + /* With \`url\` function */ + background-image: -webkit-image-set(url(file:///webpack/public/path/img1x.png) 1x, url(file:///webpack/public/path/img2x.png) 2x); + background-image: -webkit-image-set(url(file:///webpack/public/path/img1x.png) 1x); + background-image: -webkit-image-set( + url(file:///webpack/public/path/img1x.png) 1x + ); + background-image: image-set(url(file:///webpack/public/path/img1x.png) 1x); + background-image: image-set( + url(file:///webpack/public/path/img1x.png) 1x + ); + background-image: image-set(url(file:///webpack/public/path/img1x.png) 1x, url(file:///webpack/public/path/img2x.png) 2x); + background-image: image-set( + url(file:///webpack/public/path/img1x.png) 1x, + url(file:///webpack/public/path/img2x.png) 2x, + url(file:///webpack/public/path/img3x.png) 600dpi + ); + background-image: image-set(url(\\"file:///webpack/public/path/img%20img.png\\") 1x, url(\\"file:///webpack/public/path/img%20img.png\\") 2x); + + background-image: image-set(url(file:///webpack/public/path/img1x.png) 1x, \\"file:///webpack/public/path/img2x.png\\" 2x); +} + +.class { + /* Not allowed on windows */ + /* background: url(./img\\\\\\"img.png); */ + background: url(\\"file:///webpack/public/path/img'img.png\\"); + background: url(\\"file:///webpack/public/path/img'''img.png\\"); + background: url(\\"file:///webpack/public/path/img(img.png\\"); + background: url(\\"file:///webpack/public/path/img)img.png\\"); + background: url(\\"file:///webpack/public/path/img%20img.png\\"); + background: url(\\"file:///webpack/public/path/img'()%20img.png\\"); + + background-image: image-set( + /* Not allowed on windows */ + /* url(./img\\\\\\"img.png) 1x, */ + url(\\"file:///webpack/public/path/img'''img.png\\") 2x, + url(\\"file:///webpack/public/path/img'img.png\\") 3x, + url(\\"file:///webpack/public/path/img(img.png\\") 4x, + url(\\"file:///webpack/public/path/img)img.png\\") 5x, + url(\\"file:///webpack/public/path/img%20img.png\\") 6x, + url(\\"file:///webpack/public/path/img'()%20img.png\\") 7x + ); +} + +.class-class-class { + background: url(\\"file:///webpack/public/path/img'''img.png\\"); + background: url(\\"file:///webpack/public/path/img'()%20img.png\\"); + background: url(\\"file:///webpack/public/path/img'img.png\\"); + background: url(\\"file:///webpack/public/path/img(img.png\\"); + background: url(\\"file:///webpack/public/path/img)img.png\\"); + background: url(\\"file:///webpack/public/path/img%20img.png\\"); + background: url(\\"file:///webpack/public/path/img%20img.png\\"); +} + +/* Comment */ + +.class.class.class { + background: url(\\"file:///webpack/public/path/img(img.png\\"); + background: url(\\"file:///webpack/public/path/img(img.png\\"); + background: url(\\"file:///webpack/public/path/img(img.png\\"); + background: url(\\"file:///webpack/public/path/img(img.png\\"); +} + +.other-test-case { + background: url(\\"file:///webpack/public/path/img'''img.png\\"); + background: url(\\"file:///webpack/public/path/img'()%20img.png\\"); + background: url(\\"file:///webpack/public/path/img'img.png\\"); + background: url(\\"file:///webpack/public/path/img(img.png\\"); + background: url(\\"file:///webpack/public/path/img)img.png\\"); + background: url(\\"file:///webpack/public/path/img%20img.png\\"); + background: url(\\"file:///webpack/public/path/img'''img.png\\"); + background: url(\\"file:///webpack/public/path/img'()%20img.png\\"); + background: url(\\"file:///webpack/public/path/img'img.png\\"); + background: url(\\"file:///webpack/public/path/img(img.png\\"); + background: url(\\"file:///webpack/public/path/img)img.png\\"); + background: url(\\"file:///webpack/public/path/img%20img.png\\"); +} + +.qqq { + background: url(file:///webpack/public/path/img.png); +} + +.www { + background: url(\\"file:///webpack/public/path/img'''img.png\\"); + background: url(\\"file:///webpack/public/path/img'()%20img.png\\"); + background: url(\\"file:///webpack/public/path/img'img.png\\"); + background: url(\\"file:///webpack/public/path/img(img.png\\"); + background: url(\\"file:///webpack/public/path/img)img.png\\"); + background: url(\\"file:///webpack/public/path/img%20img.png\\"); + background: url(file:///webpack/public/path/img.png); + background: url(file:///webpack/public/path/img.png); + background: url(\\"file:///webpack/public/path/img'img.png\\"); + background: url(\\"file:///webpack/public/path/img'()%20img.png\\"); + background: url(\\"file:///webpack/public/path/img'()%20img.png\\"); +} + +.class { + /* Should be one import */ + background: url(file:///webpack/public/path/something.png); + background: url(file:///webpack/public/path/something.png); + + background: url(file:///webpack/public/path/something.png); + background: url(file:///webpack/public/path/something.png); + + background: url(file:///webpack/public/path/something.png#hash); + background: url(file:///webpack/public/path/something.png#hash); + + /* Should be two imports */ + background: url(file:///webpack/public/path/something.png); + background: url(file:///webpack/public/path/something.png); + + background: url(file:///webpack/public/path/something.png#foo); + background: url(file:///webpack/public/path/something.png#bar); + + background: url(file:///webpack/public/path/something.png); + background: url(file:///webpack/public/path/something.png); +} + +.base { + background: url(\\"data:image/svg+xml;charset=UTF-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0A%3C%21DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%0A%3Csvg%20version%3D%221.1%22%20id%3D%22Layer_1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20x%3D%220px%22%20y%3D%220px%22%0A%09%20width%3D%22191px%22%20height%3D%22191px%22%20viewBox%3D%220%200%20191%20191%22%20enable-background%3D%22new%200%200%20191%20191%22%20xml%3Aspace%3D%22preserve%22%3E%0A%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M95.5%2C0C42.8%2C0%2C0%2C42.8%2C0%2C95.5S42.8%2C191%2C95.5%2C191S191%2C148.2%2C191%2C95.5S148.2%2C0%2C95.5%2C0z%20M95.5%2C187.6%0A%09c-50.848%2C0-92.1-41.25-92.1-92.1c0-50.848%2C41.252-92.1%2C92.1-92.1c50.85%2C0%2C92.1%2C41.252%2C92.1%2C92.1%0A%09C187.6%2C146.35%2C146.35%2C187.6%2C95.5%2C187.6z%22%2F%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M92.9%2C10v8.6H91v-6.5c-0.1%2C0.1-0.2%2C0.2-0.4%2C0.3c-0.2%2C0.1-0.3%2C0.2-0.4%2C0.2c-0.1%2C0-0.3%2C0.1-0.5%2C0.2%0A%09%09c-0.2%2C0.1-0.3%2C0.1-0.5%2C0.1v-1.6c0.5-0.1%2C0.9-0.3%2C1.4-0.5c0.5-0.2%2C0.8-0.5%2C1.2-0.7h1.1V10z%22%2F%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M97.1%2C17.1h3.602v1.5h-5.6V18c0-0.4%2C0.1-0.8%2C0.2-1.2c0.1-0.4%2C0.3-0.6%2C0.5-0.9c0.2-0.3%2C0.5-0.5%2C0.7-0.7%0A%09%09c0.2-0.2%2C0.5-0.4%2C0.7-0.6c0.199-0.2%2C0.5-0.3%2C0.6-0.5c0.102-0.2%2C0.301-0.3%2C0.5-0.5c0.2-0.2%2C0.2-0.3%2C0.301-0.5%0A%09%09c0.101-0.2%2C0.101-0.3%2C0.101-0.5c0-0.4-0.101-0.6-0.3-0.8c-0.2-0.2-0.4-0.3-0.801-0.3c-0.699%2C0-1.399%2C0.3-2.101%2C0.9v-1.6%0A%09%09c0.7-0.5%2C1.5-0.7%2C2.5-0.7c0.399%2C0%2C0.8%2C0.1%2C1.101%2C0.2c0.301%2C0.1%2C0.601%2C0.3%2C0.899%2C0.5c0.3%2C0.2%2C0.399%2C0.5%2C0.5%2C0.8%0A%09%09c0.101%2C0.3%2C0.2%2C0.6%2C0.2%2C1s-0.102%2C0.7-0.2%2C1c-0.099%2C0.3-0.3%2C0.6-0.5%2C0.8c-0.2%2C0.2-0.399%2C0.5-0.7%2C0.7c-0.3%2C0.2-0.5%2C0.4-0.8%2C0.6%0A%09%09c-0.2%2C0.1-0.399%2C0.3-0.5%2C0.4s-0.3%2C0.3-0.5%2C0.4s-0.2%2C0.3-0.3%2C0.4C97.1%2C17%2C97.1%2C17%2C97.1%2C17.1z%22%2F%3E%0A%3C%2Fg%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M15%2C95.4c0%2C0.7-0.1%2C1.4-0.2%2C2c-0.1%2C0.6-0.4%2C1.1-0.7%2C1.5C13.8%2C99.3%2C13.4%2C99.6%2C12.9%2C99.8s-1%2C0.3-1.5%2C0.3%0A%09%09c-0.7%2C0-1.3-0.1-1.8-0.3v-1.5c0.4%2C0.3%2C1%2C0.4%2C1.6%2C0.4c0.6%2C0%2C1.1-0.2%2C1.5-0.7c0.4-0.5%2C0.5-1.1%2C0.5-1.9l0%2C0%0A%09%09C12.8%2C96.7%2C12.3%2C96.9%2C11.5%2C96.9c-0.3%2C0-0.7-0.102-1-0.2c-0.3-0.101-0.5-0.3-0.8-0.5c-0.3-0.2-0.4-0.5-0.5-0.8%0A%09%09c-0.1-0.3-0.2-0.7-0.2-1c0-0.4%2C0.1-0.8%2C0.2-1.2c0.1-0.4%2C0.3-0.7%2C0.6-0.9c0.3-0.2%2C0.6-0.5%2C0.9-0.6c0.3-0.1%2C0.8-0.2%2C1.2-0.2%0A%09%09c0.5%2C0%2C0.9%2C0.1%2C1.2%2C0.3c0.3%2C0.2%2C0.7%2C0.4%2C0.9%2C0.8s0.5%2C0.7%2C0.6%2C1.2S15%2C94.8%2C15%2C95.4z%20M13.1%2C94.4c0-0.2%2C0-0.4-0.1-0.6%0A%09%09c-0.1-0.2-0.1-0.4-0.2-0.5c-0.1-0.1-0.2-0.2-0.4-0.3c-0.2-0.1-0.3-0.1-0.5-0.1c-0.2%2C0-0.3%2C0-0.4%2C0.1s-0.3%2C0.2-0.3%2C0.3%0A%09%09c0%2C0.1-0.2%2C0.3-0.2%2C0.4c0%2C0.1-0.1%2C0.4-0.1%2C0.6c0%2C0.2%2C0%2C0.4%2C0.1%2C0.6c0.1%2C0.2%2C0.1%2C0.3%2C0.2%2C0.4c0.1%2C0.1%2C0.2%2C0.2%2C0.4%2C0.3%0A%09%09c0.2%2C0.1%2C0.3%2C0.1%2C0.5%2C0.1c0.2%2C0%2C0.3%2C0%2C0.4-0.1s0.2-0.2%2C0.3-0.3c0.1-0.1%2C0.2-0.2%2C0.2-0.4C13%2C94.7%2C13.1%2C94.6%2C13.1%2C94.4z%22%2F%3E%0A%3C%2Fg%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M176%2C99.7V98.1c0.6%2C0.4%2C1.2%2C0.602%2C2%2C0.602c0.5%2C0%2C0.8-0.102%2C1.1-0.301c0.301-0.199%2C0.4-0.5%2C0.4-0.801%0A%09%09c0-0.398-0.2-0.699-0.5-0.898c-0.3-0.2-0.8-0.301-1.3-0.301h-0.802V95h0.701c1.101%2C0%2C1.601-0.4%2C1.601-1.1c0-0.7-0.4-1-1.302-1%0A%09%09c-0.6%2C0-1.1%2C0.2-1.6%2C0.5v-1.5c0.6-0.3%2C1.301-0.4%2C2.1-0.4c0.9%2C0%2C1.5%2C0.2%2C2%2C0.6s0.701%2C0.9%2C0.701%2C1.5c0%2C1.1-0.601%2C1.8-1.701%2C2.1l0%2C0%0A%09%09c0.602%2C0.1%2C1.102%2C0.3%2C1.4%2C0.6s0.5%2C0.8%2C0.5%2C1.3c0%2C0.801-0.3%2C1.4-0.9%2C1.9c-0.6%2C0.5-1.398%2C0.7-2.398%2C0.7%0A%09%09C177.2%2C100.1%2C176.5%2C100%2C176%2C99.7z%22%2F%3E%0A%3C%2Fg%3E%0A%3Cg%3E%0A%09%3Cpath%20fill%3D%22%23636363%22%20d%3D%22M98.5%2C179.102c0%2C0.398-0.1%2C0.799-0.2%2C1.199C98.2%2C180.7%2C98%2C181%2C97.7%2C181.2s-0.601%2C0.5-0.9%2C0.601%0A%09%09c-0.3%2C0.1-0.7%2C0.199-1.2%2C0.199c-0.5%2C0-0.9-0.1-1.3-0.3c-0.4-0.2-0.7-0.399-0.9-0.8c-0.2-0.4-0.5-0.7-0.6-1.2%0A%09%09c-0.1-0.5-0.2-1-0.2-1.601c0-0.699%2C0.1-1.399%2C0.3-2c0.2-0.601%2C0.4-1.101%2C0.8-1.5c0.4-0.399%2C0.7-0.699%2C1.2-1c0.5-0.3%2C1-0.3%2C1.6-0.3%0A%09%09c0.6%2C0%2C1.2%2C0.101%2C1.5%2C0.199v1.5c-0.4-0.199-0.9-0.399-1.4-0.399c-0.3%2C0-0.6%2C0.101-0.8%2C0.2c-0.2%2C0.101-0.5%2C0.3-0.7%2C0.5%0A%09%09c-0.2%2C0.199-0.3%2C0.5-0.4%2C0.8c-0.1%2C0.301-0.2%2C0.7-0.2%2C1.101l0%2C0c0.4-0.601%2C1-0.8%2C1.8-0.8c0.3%2C0%2C0.7%2C0.1%2C0.9%2C0.199%0A%09%09c0.2%2C0.101%2C0.5%2C0.301%2C0.7%2C0.5c0.199%2C0.2%2C0.398%2C0.5%2C0.5%2C0.801C98.5%2C178.2%2C98.5%2C178.7%2C98.5%2C179.102z%20M96.7%2C179.2%0A%09%09c0-0.899-0.4-1.399-1.1-1.399c-0.2%2C0-0.3%2C0-0.5%2C0.1c-0.2%2C0.101-0.3%2C0.201-0.4%2C0.301c-0.1%2C0.101-0.2%2C0.199-0.2%2C0.4%0A%09%09c0%2C0.199-0.1%2C0.299-0.1%2C0.5c0%2C0.199%2C0%2C0.398%2C0.1%2C0.6s0.1%2C0.3%2C0.2%2C0.5c0.1%2C0.199%2C0.2%2C0.199%2C0.4%2C0.3c0.2%2C0.101%2C0.3%2C0.101%2C0.5%2C0.101%0A%09%09c0.2%2C0%2C0.3%2C0%2C0.5-0.101c0.2-0.101%2C0.301-0.199%2C0.301-0.3c0-0.1%2C0.199-0.301%2C0.199-0.399C96.6%2C179.7%2C96.7%2C179.4%2C96.7%2C179.2z%22%2F%3E%0A%3C%2Fg%3E%0A%3Ccircle%20fill%3D%22%23636363%22%20cx%3D%2295%22%20cy%3D%2295%22%20r%3D%227%22%2F%3E%0A%3C%2Fsvg%3E%0A\\") 50% 50%/191px no-repeat; +} + +.strange { + background: url(file:///webpack/public/path/img.png); +} + +.my-background { + background-image: url(file:///webpack/public/path/img.png); +} + +.class { + background: url(file:///webpack/public/path/img.png, 'foo', './img.png', url('./img.png')); + background-image: image-set(url(file:///webpack/public/path/img.png, 'foo', './img.png', url('./img.png')) 1x, url(file:///webpack/public/path/img2x.png) 2x); +} + +.button { + background-image: url('data:image/svg+xml;utf8,'); +} + +/* We need to use \`resourceQuery: /inline/\` */ +/* Hard to test on webpack v4 */ +.qqq { + background: url(file:///webpack/public/path/custom-img.png) +} + +.class { + background: url(file:///webpack/public/path/img.png); +} + +.class { + background: url(file:///webpack/public/path/img.png); +} + +/** Prefer relative **/ +.class { + background: url(file:///webpack/public/path/img.png); +} + +/** Prefer from modules **/ +.class { + background: url(file:///webpack/public/path/other.png); +} + +.class { + background: url(file:///webpack/public/path/img.png); +} + +.foo { + background-image: url(\\"data:image/svg+xml,%3csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27%3e%3cpath fill=%27none%27 stroke=%27%23343a40%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 stroke-width=%272%27 d=%27M2 5l6 6 6-6%27/%3e%3c/svg%3e\\"); +} +", +} +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and urls: warnings 1`] = ` +Array [ + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(120:3) Unable to find uri in 'background: green url() xyz'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(124:3) Unable to find uri in 'background: green url('') xyz'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(128:3) Unable to find uri in 'background: green url(\\"\\") xyz'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(132:3) Unable to find uri in 'background: green url(' ') xyz'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(136:3) Unable to find uri in 'background: green url( + ) xyz'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(216:3) Unable to find uri in 'background-image: -webkit-image-set('')'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(218:3) Unable to find uri in 'background-image: image-set('')'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(219:3) Unable to find uri in 'background-image: image-set(\\"\\")'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(220:3) Unable to find uri in 'background-image: image-set(\\"\\" 1x)'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(221:3) Unable to find uri in 'background-image: image-set(url())'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(222:3) Unable to find uri in 'background-image: image-set( + url() + )'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(225:3) Unable to find uri in 'background-image: image-set(URL())'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(226:3) Unable to find uri in 'background-image: image-set(url(''))'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(227:3) Unable to find uri in 'background-image: image-set(url(\\"\\"))'", + "ModuleWarning: Module Warning (from \`replaced original path\`): +Warning + +(228:3) Unable to find uri in 'background-image: image-set(url('') 1x)'", +] +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and with 'sass-loader': errors 1`] = `Array []`; + +exports[`'exportType' option should work with 'css-style-sheet' value and with 'sass-loader': module 1`] = ` +"// Imports +import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../../src/runtime/noSourceMaps.js\\"; +import ___CSS_LOADER_API_IMPORT___ from \\"../../../src/runtime/api.js\\"; +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"body {\\\\n font: 100% Helvetica, sans-serif;\\\\n color: #333;\\\\n}\\", \\"\\"]); +// Exports +var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); +___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); +export default ___CSS_LOADER_STYLE_SHEET___; +" +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and with 'sass-loader': result 1`] = ` +CSSStyleSheet { + "text": "body { + font: 100% Helvetica, sans-serif; + color: #333; +}", +} +`; + +exports[`'exportType' option should work with 'css-style-sheet' value and with 'sass-loader': warnings 1`] = `Array []`; + +exports[`'exportType' option should work with 'css-style-sheet' value: errors 1`] = `Array []`; + +exports[`'exportType' option should work with 'css-style-sheet' value: module 1`] = ` +"// Imports +import ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \\"../../src/runtime/noSourceMaps.js\\"; +import ___CSS_LOADER_API_IMPORT___ from \\"../../src/runtime/api.js\\"; +import ___CSS_LOADER_GET_URL_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; +var ___CSS_LOADER_URL_IMPORT_0___ = new URL(\\"./url/img.png\\", import.meta.url); +var ___CSS_LOADER_URL_IMPORT_1___ = new URL(\\"data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==\\", import.meta.url); +var ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___); +var ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___); +var ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___); +// Module +___CSS_LOADER_EXPORT___.push([module.id, \\"@charset \\\\\\"UTF-8\\\\\\";\\\\n\\\\n/* Comment */\\\\n\\\\n.class {\\\\n color: red;\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n.class-duplicate-url {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \\");\\\\n}\\\\n\\\\n:root {\\\\n --foo: 1px;\\\\n --bar: 2px;\\\\n}\\\\n\\\\n.class { a: b c d; }\\\\n\\\\n.two {}\\\\n\\\\n.u-m\\\\\\\\+ { a: b c d; }\\\\n\\\\n.class { content: \\\\\\"\\\\\\\\F10C\\\\\\" }\\\\n\\\\n@media only screen and (max-width: 600px) {\\\\n body {\\\\n background-color: lightblue;\\\\n }\\\\n}\\\\n\\\\n.class {\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193\\\\\\\\2193\\\\\\\\2193\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2193 \\\\\\\\2193 \\\\\\\\2193\\\\\\";\\\\n}\\\\n\\\\n.-top {}\\\\n.\\\\\\\\-top {}\\\\n\\\\n#\\\\\\\\#test {}\\\\n\\\\n.grid {\\\\n display: flex;\\\\n flex-wrap: wrap;\\\\n}\\\\n.grid.\\\\\\\\-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.-top {\\\\n align-items: flex-start;\\\\n}\\\\n.grid.\\\\\\\\-middle {\\\\n align-items: center;\\\\n}\\\\n.grid.\\\\\\\\-bottom {\\\\n align-items: flex-end;\\\\n}\\\\n\\\\n.u-m\\\\\\\\00002b {}\\\\n\\\\n.u-m00002b {}\\\\n\\\\n#u-m\\\\\\\\+ {}\\\\n\\\\nbody {\\\\n font-family: '微软雅黑'; /* some chinese font name */\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\e901';\\\\n}\\\\n\\\\n.myStyle {\\\\n content: '\\\\\\\\E901';\\\\n}\\\\n\\\\n.♫ {}\\\\n\\\\n.\\\\\\\\3A \\\\\\\\\`\\\\\\\\( {} /* matches elements with class=\\\\\\":\`(\\\\\\" */\\\\n.\\\\\\\\31 a2b3c {} /* matches elements with class=\\\\\\"1a2b3c\\\\\\" */\\\\n#\\\\\\\\#fake-id {} /* matches the element with id=\\\\\\"#fake-id\\\\\\" */\\\\n#-a-b-c- {} /* matches the element with id=\\\\\\"-a-b-c-\\\\\\" */\\\\n#© {} /* matches the element with id=\\\\\\"©\\\\\\" */\\\\n\\\\n:root {\\\\n --title-align: center;\\\\n --sr-only: {\\\\n position: absolute;\\\\n width: 1px;\\\\n height: 1px;\\\\n padding: 0;\\\\n overflow: hidden;\\\\n clip: rect(0,0,0,0);\\\\n white-space: nowrap;\\\\n clip-path: inset(50%);\\\\n border: 0;\\\\n };\\\\n}\\\\n\\\\n.test {\\\\n content: \\\\\\"\\\\\\\\2014\\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\2014 \\\\\\\\A0\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0 \\\\\\\\2014\\\\\\";\\\\n content: \\\\\\"\\\\\\\\A0\\\\\\\\2014\\\\\\";\\\\n margin-top: 1px\\\\\\\\9;\\\\n background-color: #000\\\\\\\\9;\\\\n}\\\\n\\\\n.light.on .bulb:before{\\\\n content: '💡';\\\\n}\\\\n\\\\n.base64 {\\\\n background: url(\\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \\");\\\\n}\\\\n\\\\na[href=''] {\\\\n color: red;\\\\n}\\\\n\\\\na[href='' i] {\\\\n color: red;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\"] {\\\\n color: blue;\\\\n}\\\\n\\\\na[href=\\\\\\"\\\\\\" i] {\\\\n color: blue;\\\\n}\\\\n\\", \\"\\"]); +// Exports +var ___CSS_LOADER_STYLE_SHEET___ = new CSSStyleSheet(); +___CSS_LOADER_STYLE_SHEET___.replaceSync(___CSS_LOADER_EXPORT___.toString()); +export default ___CSS_LOADER_STYLE_SHEET___; +" +`; + +exports[`'exportType' option should work with 'css-style-sheet' value: result 1`] = ` +CSSStyleSheet { + "text": "@charset \\"UTF-8\\"; + +/* Comment */ + +.class { + color: red; + background: url(file:///webpack/public/path/img.png); +} + +.class-duplicate-url { + background: url(file:///webpack/public/path/img.png); +} + +:root { + --foo: 1px; + --bar: 2px; +} + +.class { a: b c d; } + +.two {} + +.u-m\\\\+ { a: b c d; } + +.class { content: \\"\\\\F10C\\" } + +@media only screen and (max-width: 600px) { + body { + background-color: lightblue; + } +} + +.class { + content: \\"\\\\2193\\"; + content: \\"\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193\\"; + content: \\"\\\\2193\\\\2193\\\\2193\\"; + content: \\"\\\\2193 \\\\2193 \\\\2193\\"; +} + +.-top {} +.\\\\-top {} + +#\\\\#test {} + +.grid { + display: flex; + flex-wrap: wrap; +} +.grid.\\\\-top { + align-items: flex-start; +} +.grid.-top { + align-items: flex-start; +} +.grid.\\\\-middle { + align-items: center; +} +.grid.\\\\-bottom { + align-items: flex-end; +} + +.u-m\\\\00002b {} + +.u-m00002b {} + +#u-m\\\\+ {} + +body { + font-family: '微软雅黑'; /* some chinese font name */ +} + +.myStyle { + content: '\\\\e901'; +} + +.myStyle { + content: '\\\\E901'; +} + +.♫ {} + +.\\\\3A \\\\\`\\\\( {} /* matches elements with class=\\":\`(\\" */ +.\\\\31 a2b3c {} /* matches elements with class=\\"1a2b3c\\" */ +#\\\\#fake-id {} /* matches the element with id=\\"#fake-id\\" */ +#-a-b-c- {} /* matches the element with id=\\"-a-b-c-\\" */ +#© {} /* matches the element with id=\\"©\\" */ + +:root { + --title-align: center; + --sr-only: { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + overflow: hidden; + clip: rect(0,0,0,0); + white-space: nowrap; + clip-path: inset(50%); + border: 0; + }; +} + +.test { + content: \\"\\\\2014\\\\A0\\"; + content: \\"\\\\2014 \\\\A0\\"; + content: \\"\\\\A0 \\\\2014\\"; + content: \\"\\\\A0\\\\2014\\"; + margin-top: 1px\\\\9; + background-color: #000\\\\9; +} + +.light.on .bulb:before{ + content: '💡'; +} + +.base64 { + background: url(data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAhxJREFUSA3tk71rU1EYxnMTEoJUkowWwdJ2akEHBfGjCiIF6ZylVUKSm2TqZLGI+A/oIu2UXm8C4lAyF4SWji0tdFLo1Eo7VN0SaBEhH7e/Nz0nPTfGOjiaCyfPc5734zlfCQT6X/8E/vUErL81KBaL9y3LSnued5PcITjUOwR3gsFg2bbtjYt6/NGgXC4P1et1l2aPLmpAbD0SidjpdPqgV15PA9d17zQajU8UxHQRK/4G35Q5pveAK8LlI1ZjPMnlcltnyvnvbwaO41xvtVqy7YHztMACq5xnlb9EY3dRdvcGo1kj5wR+t1AofDG0gM+A875E8DNjRCexsrV8Pj9ZqVQitVrtqejxePxjMpmss5hVTB4buXvMb2DyU2tBTRS+BjvNlVYUpPl7iuVO3Gq1uoQx1FtSOW1gPgp5ZWrdBtNmUDgv5asgxQ8F1af5vhY0YjyjuWC3wTszKJz7GBOkcFlQfW2ONq4FjWi+Hj6DRCKxQOK2TlY4x92EuYd5dvMAbYIzfikau3pu5tJ8KxaLLfo0cyKci7tK4TZjUMcoXAmHwzle0Q/RaC5P1GFMyVx9R9Fo9HYqlTrSgqDvFelAqVQa5hmuMR/WGtjAaBdjwBoDQ0ZsnwVMZjKZ9n0Zem8DSeDPdrnZbL6F2l3NOvUYNZk4oVDoRTabPe4EDNJzB0ZcjAYxeoZ2i3FNxQ7BHYw/cB/fldaH//UETgHHO8S44KbfXgAAAABJRU5ErkJggg==); +} + +a[href=''] { + color: red; +} + +a[href='' i] { + color: red; +} + +a[href=\\"\\"] { + color: blue; +} + +a[href=\\"\\" i] { + color: blue; +} +", +} +`; + +exports[`'exportType' option should work with 'css-style-sheet' value: warnings 1`] = `Array []`; + +exports[`'exportType' option should work with CSS modules and the 'exportOnlyLocals' option: errors 1`] = `Array []`; + +exports[`'exportType' option should work with CSS modules and the 'exportOnlyLocals' option: module 1`] = ` +"// Imports +import * as ___CSS_LOADER_ICSS_IMPORT_0____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./values.css\\"; +import * as ___CSS_LOADER_ICSS_IMPORT_1____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./something.css\\"; +import * as ___CSS_LOADER_ICSS_IMPORT_2____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./imported-simple.css\\"; +import * as ___CSS_LOADER_ICSS_IMPORT_3____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./relative.css\\"; +import * as ___CSS_LOADER_ICSS_IMPORT_4____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./top-relative.css\\"; +import * as ___CSS_LOADER_ICSS_IMPORT_5____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!../issue-861/node_modules/package/style.css\\"; +import * as ___CSS_LOADER_ICSS_IMPORT_6____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!./alias.css\\"; +import * as ___CSS_LOADER_ICSS_IMPORT_7____NAMED___ from \\"-!../../../../src/index.js??ruleSet[1].rules[0].use[0]!sass-loader!./scss-file.scss\\"; +// Exports +export var vDef = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vDef\\"] + \\"\\"; +export var vOther = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"vOther\\"] + \\"\\"; +export var sWhite = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"sWhite\\"] + \\"\\"; +export var mSmall = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_0____NAMED___[\\"mSmall\\"] + \\"\\"; +export var vSomething = \\"\\" + ___CSS_LOADER_ICSS_IMPORT_1____NAMED___[\\"vSomething\\"] + \\"\\"; +export var vFoo = \\"blue\\"; +export var vBar = \\"block\\"; +export var vPrimary = \\"#BF4040\\"; +export var sBlack = \\"black-selector\\"; +export var mLarge = \\"(min-width: 960px)\\"; +export var vIdent = \\"validIdent\\"; +export var vPreDefinedIdent = \\"left\\"; +export var vString = \\"'content'\\"; +export var vString1 = \\"''\\"; +export var vUrl = \\"url(https://www.exammple.com/images/my-background.png)\\"; +export var vUrl1 = \\"url('https://www.exammple.com/images/my-background.png')\\"; +export var vUrl2 = \\"url(\\\\\\"https://www.exammple.com/images/my-background.png\\\\\\")\\"; +export var vInteger = \\"100\\"; +export var vInteger1 = \\"-100\\"; +export var vInteger2 = \\"+100\\"; +export var vNumber = \\".60\\"; +export var vNumber1 = \\"-456.8\\"; +export var vNumber2 = \\"-3.4e-2\\"; +export var vDimension = \\"12px\\"; +export var vPercentage = \\"100%\\"; +export var vHex = \\"#fff\\"; +export var vComment = \\" /* comment */\\"; +export var vFunction = \\"rgb(0,0,0)\\"; +export var vUnicodeRange = \\"U+0025-00FF\\"; +export var ghi = \\"JrMovmNxiARceckPi1Bb\\"; +export var myClass = \\"_xZYrLKW96sXm2aniadM\\"; +export var other = \\"cXIvIhl_Be3NhMPQoE0z\\"; +export var otherOther = \\"wyIZMXPNE2D7zb9VCrHe\\"; +export var green = \\"as9P70j15m_wICZ94IJx\\"; +export var foo = \\"zAepmy_SqloGdZJJmXNm\\"; +export var simple = \\"n_zXxs10wzKREXQdQrw9 \\" + ___CSS_LOADER_ICSS_IMPORT_2____NAMED___[\\"importedSimple\\"] + \\"\\"; +export var relative = \\"_u4nolEyHSlixSSx7uXN \\" + ___CSS_LOADER_ICSS_IMPORT_3____NAMED___[\\"importedRelative\\"] + \\"\\"; +export var topRelative = \\"_EXVuUxUggUhA1UEBgZk \\" + ___CSS_LOADER_ICSS_IMPORT_4____NAMED___[\\"importedRelative\\"] + \\"\\"; +export var myModule = \\"o2wK31qqosVXAPAdGIxD \\" + ___CSS_LOADER_ICSS_IMPORT_5____NAMED___[\\"importedModule\\"] + \\"\\"; +export var alias = \\"_Y2QYoxyUknZNv0u6wN3 \\" + ___CSS_LOADER_ICSS_IMPORT_6____NAMED___[\\"importedAlias\\"] + \\"\\"; +export var aliasDuplicate = \\"wmZh7D9g5PjWvMpojahG \\" + ___CSS_LOADER_ICSS_IMPORT_6____NAMED___[\\"importedAlias\\"] + \\"\\"; +export var primarySelector = \\"uOEsMAq4YIv8PUUlnnhI\\"; +export var blackSelector = \\"_r6IpGhEbXgocCCXZgDs\\"; +export var header = \\"IsCkQQmCqI3_HSI_H_hT\\"; +export var foobarbaz = \\"lNjqoQe7B3jKXIowFbpE\\"; +export var url = \\"ABtimDL9fvKNWc1BjB59\\"; +export var main = \\"K7O_z8z4VzoG6Ru_jb_T \\" + ___CSS_LOADER_ICSS_IMPORT_7____NAMED___[\\"scssClass\\"] + \\"\\"; +" +`; + +exports[`'exportType' option should work with CSS modules and the 'exportOnlyLocals' option: result 1`] = ` +Object { + "named": Object { + "alias": "_Y2QYoxyUknZNv0u6wN3 _4Zj8x54IrWF75cUaGyT", + "aliasDuplicate": "wmZh7D9g5PjWvMpojahG _4Zj8x54IrWF75cUaGyT", + "blackSelector": "_r6IpGhEbXgocCCXZgDs", + "foo": "zAepmy_SqloGdZJJmXNm", + "foobarbaz": "lNjqoQe7B3jKXIowFbpE", + "ghi": "JrMovmNxiARceckPi1Bb", + "green": "as9P70j15m_wICZ94IJx", + "header": "IsCkQQmCqI3_HSI_H_hT", + "mLarge": "(min-width: 960px)", + "mSmall": "(min-width: 320px)", + "main": "K7O_z8z4VzoG6Ru_jb_T pqdLCWFRW03AVy9uJoZX", + "myClass": "_xZYrLKW96sXm2aniadM", + "myModule": "o2wK31qqosVXAPAdGIxD ONhOxkn21jORUJmheiwE", + "other": "cXIvIhl_Be3NhMPQoE0z", + "otherOther": "wyIZMXPNE2D7zb9VCrHe", + "primarySelector": "uOEsMAq4YIv8PUUlnnhI", + "relative": "_u4nolEyHSlixSSx7uXN HlqmBJrtIvJ3Gzgbut_w", + "sBlack": "black-selector", + "sWhite": "white", + "simple": "n_zXxs10wzKREXQdQrw9 kN0Z3n7LgkVJQeFmVucy", + "topRelative": "_EXVuUxUggUhA1UEBgZk MzX17bUYYh7fmdKVXQ9p", + "url": "ABtimDL9fvKNWc1BjB59", + "vBar": "block", + "vComment": " /* comment */", + "vDef": "red", + "vDimension": "12px", + "vFoo": "blue", + "vFunction": "rgb(0,0,0)", + "vHex": "#fff", + "vIdent": "validIdent", + "vInteger": "100", + "vInteger1": "-100", + "vInteger2": "+100", + "vNumber": ".60", + "vNumber1": "-456.8", + "vNumber2": "-3.4e-2", + "vOther": "green", + "vPercentage": "100%", + "vPreDefinedIdent": "left", + "vPrimary": "#BF4040", + "vSomething": "2112moon", + "vString": "'content'", + "vString1": "''", + "vUnicodeRange": "U+0025-00FF", + "vUrl": "url(https://www.exammple.com/images/my-background.png)", + "vUrl1": "url('https://www.exammple.com/images/my-background.png')", + "vUrl2": "url(\\"https://www.exammple.com/images/my-background.png\\")", + }, +} +`; + +exports[`'exportType' option should work with CSS modules and the 'exportOnlyLocals' option: warnings 1`] = `Array []`; diff --git a/test/exportType.test.js b/test/exportType.test.js index a421f050..29b2c031 100644 --- a/test/exportType.test.js +++ b/test/exportType.test.js @@ -174,7 +174,7 @@ describe("'exportType' option", () => { expect(getErrors(stats)).toMatchSnapshot("errors"); }); - it.only("should work with 'css-style-sheet' and 'array' values", async () => { + it("should work with 'css-style-sheet' and 'array' values", async () => { const compiler = getCompiler( "./basic-javascript-and-css-style-sheet.js", {},