@stencil/core 4.43.2 → 5.0.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/stencil.mjs +2 -0
- package/dist/chunk-ClPoSABd.mjs +21 -0
- package/dist/client-DR9zhmKG.mjs +4449 -0
- package/dist/compiler/index.d.mts +187 -0
- package/dist/compiler/index.mjs +9 -0
- package/dist/compiler/utils/index.d.mts +3 -0
- package/dist/compiler/utils/index.mjs +5 -0
- package/dist/declarations/stencil-public-compiler.d.ts +4401 -0
- package/dist/declarations/stencil-public-compiler.js +53 -0
- package/dist/declarations/stencil-public-runtime.d.ts +1857 -0
- package/dist/index-Bxo2jCf6.d.mts +77 -0
- package/dist/index-szczUd2l.d.mts +6851 -0
- package/{internal/stencil-core/index.d.ts → dist/index.d.mts} +7 -3
- package/dist/index.mjs +4 -0
- package/dist/mock-doc.d.mts +1 -0
- package/dist/mock-doc.mjs +3 -0
- package/dist/node-sys-BGURUNOZ.mjs +1954 -0
- package/{internal → dist/runtime}/app-data/index.d.ts +11 -7
- package/dist/runtime/app-data/index.js +100 -0
- package/dist/runtime/app-globals/index.d.ts +5 -0
- package/dist/runtime/app-globals/index.js +6 -0
- package/dist/runtime/client/index.d.ts +2286 -0
- package/dist/runtime/client/index.js +4839 -0
- package/dist/runtime/index.d.ts +221 -0
- package/dist/runtime/index.js +4819 -0
- package/dist/runtime/server/index.d.mts +1277 -0
- package/dist/runtime/server/index.mjs +5376 -0
- package/dist/runtime/server/runner.d.mts +298 -0
- package/dist/runtime/server/runner.mjs +1976 -0
- package/dist/serialize-BJvhE9aQ.mjs +775 -0
- package/dist/stencil-private-Cgcr414u.d.ts +1893 -0
- package/dist/sys/node/index.d.mts +33 -0
- package/dist/sys/node/index.mjs +7 -0
- package/dist/sys/node/worker.d.mts +1 -0
- package/dist/sys/node/worker.mjs +60 -0
- package/dist/testing/index.d.mts +207 -0
- package/dist/testing/index.mjs +1188 -0
- package/dist/transpile-CJQcQEVa.mjs +21854 -0
- package/dist/validation-BdcPruW_.mjs +1451 -0
- package/package.json +88 -232
- package/bin/stencil +0 -57
- package/cli/config-flags.d.ts +0 -132
- package/cli/index.cjs +0 -5816
- package/cli/index.d.ts +0 -19
- package/cli/index.js +0 -5809
- package/cli/package.json +0 -14
- package/compiler/lib.d.ts +0 -22
- package/compiler/lib.decorators.d.ts +0 -384
- package/compiler/lib.decorators.legacy.d.ts +0 -22
- package/compiler/lib.dom.asynciterable.d.ts +0 -41
- package/compiler/lib.dom.d.ts +0 -29610
- package/compiler/lib.dom.iterable.d.ts +0 -493
- package/compiler/lib.es2015.collection.d.ts +0 -147
- package/compiler/lib.es2015.core.d.ts +0 -597
- package/compiler/lib.es2015.d.ts +0 -28
- package/compiler/lib.es2015.generator.d.ts +0 -77
- package/compiler/lib.es2015.iterable.d.ts +0 -605
- package/compiler/lib.es2015.promise.d.ts +0 -81
- package/compiler/lib.es2015.proxy.d.ts +0 -128
- package/compiler/lib.es2015.reflect.d.ts +0 -144
- package/compiler/lib.es2015.symbol.d.ts +0 -46
- package/compiler/lib.es2015.symbol.wellknown.d.ts +0 -326
- package/compiler/lib.es2016.array.include.d.ts +0 -116
- package/compiler/lib.es2016.d.ts +0 -21
- package/compiler/lib.es2016.full.d.ts +0 -23
- package/compiler/lib.es2016.intl.d.ts +0 -31
- package/compiler/lib.es2017.arraybuffer.d.ts +0 -21
- package/compiler/lib.es2017.d.ts +0 -26
- package/compiler/lib.es2017.date.d.ts +0 -31
- package/compiler/lib.es2017.full.d.ts +0 -23
- package/compiler/lib.es2017.intl.d.ts +0 -44
- package/compiler/lib.es2017.object.d.ts +0 -49
- package/compiler/lib.es2017.sharedmemory.d.ts +0 -135
- package/compiler/lib.es2017.string.d.ts +0 -45
- package/compiler/lib.es2017.typedarrays.d.ts +0 -53
- package/compiler/lib.es2018.asyncgenerator.d.ts +0 -77
- package/compiler/lib.es2018.asynciterable.d.ts +0 -53
- package/compiler/lib.es2018.d.ts +0 -24
- package/compiler/lib.es2018.full.d.ts +0 -24
- package/compiler/lib.es2018.intl.d.ts +0 -83
- package/compiler/lib.es2018.promise.d.ts +0 -30
- package/compiler/lib.es2018.regexp.d.ts +0 -37
- package/compiler/lib.es2019.array.d.ts +0 -79
- package/compiler/lib.es2019.d.ts +0 -24
- package/compiler/lib.es2019.full.d.ts +0 -24
- package/compiler/lib.es2019.intl.d.ts +0 -23
- package/compiler/lib.es2019.object.d.ts +0 -33
- package/compiler/lib.es2019.string.d.ts +0 -37
- package/compiler/lib.es2019.symbol.d.ts +0 -24
- package/compiler/lib.es2020.bigint.d.ts +0 -765
- package/compiler/lib.es2020.d.ts +0 -27
- package/compiler/lib.es2020.date.d.ts +0 -42
- package/compiler/lib.es2020.full.d.ts +0 -24
- package/compiler/lib.es2020.intl.d.ts +0 -474
- package/compiler/lib.es2020.number.d.ts +0 -28
- package/compiler/lib.es2020.promise.d.ts +0 -47
- package/compiler/lib.es2020.sharedmemory.d.ts +0 -99
- package/compiler/lib.es2020.string.d.ts +0 -44
- package/compiler/lib.es2020.symbol.wellknown.d.ts +0 -41
- package/compiler/lib.es2021.d.ts +0 -23
- package/compiler/lib.es2021.full.d.ts +0 -24
- package/compiler/lib.es2021.intl.d.ts +0 -166
- package/compiler/lib.es2021.promise.d.ts +0 -48
- package/compiler/lib.es2021.string.d.ts +0 -33
- package/compiler/lib.es2021.weakref.d.ts +0 -78
- package/compiler/lib.es2022.array.d.ts +0 -121
- package/compiler/lib.es2022.d.ts +0 -25
- package/compiler/lib.es2022.error.d.ts +0 -75
- package/compiler/lib.es2022.full.d.ts +0 -24
- package/compiler/lib.es2022.intl.d.ts +0 -121
- package/compiler/lib.es2022.object.d.ts +0 -26
- package/compiler/lib.es2022.regexp.d.ts +0 -39
- package/compiler/lib.es2022.string.d.ts +0 -25
- package/compiler/lib.es2023.array.d.ts +0 -924
- package/compiler/lib.es2023.collection.d.ts +0 -21
- package/compiler/lib.es2023.d.ts +0 -22
- package/compiler/lib.es2023.full.d.ts +0 -24
- package/compiler/lib.es2023.intl.d.ts +0 -56
- package/compiler/lib.es2024.arraybuffer.d.ts +0 -65
- package/compiler/lib.es2024.collection.d.ts +0 -29
- package/compiler/lib.es2024.d.ts +0 -26
- package/compiler/lib.es2024.full.d.ts +0 -24
- package/compiler/lib.es2024.object.d.ts +0 -29
- package/compiler/lib.es2024.promise.d.ts +0 -35
- package/compiler/lib.es2024.regexp.d.ts +0 -25
- package/compiler/lib.es2024.sharedmemory.d.ts +0 -68
- package/compiler/lib.es2024.string.d.ts +0 -29
- package/compiler/lib.es5.d.ts +0 -4594
- package/compiler/lib.es6.d.ts +0 -23
- package/compiler/lib.esnext.array.d.ts +0 -35
- package/compiler/lib.esnext.collection.d.ts +0 -96
- package/compiler/lib.esnext.d.ts +0 -27
- package/compiler/lib.esnext.decorators.d.ts +0 -28
- package/compiler/lib.esnext.disposable.d.ts +0 -193
- package/compiler/lib.esnext.float16.d.ts +0 -443
- package/compiler/lib.esnext.full.d.ts +0 -24
- package/compiler/lib.esnext.intl.d.ts +0 -21
- package/compiler/lib.esnext.iterator.d.ts +0 -148
- package/compiler/lib.esnext.promise.d.ts +0 -34
- package/compiler/lib.scripthost.d.ts +0 -322
- package/compiler/lib.webworker.asynciterable.d.ts +0 -41
- package/compiler/lib.webworker.d.ts +0 -9894
- package/compiler/lib.webworker.importscripts.d.ts +0 -23
- package/compiler/lib.webworker.iterable.d.ts +0 -287
- package/compiler/package.json +0 -8
- package/compiler/stencil.d.ts +0 -73
- package/compiler/stencil.js +0 -287816
- package/compiler/sys/in-memory-fs.d.ts +0 -227
- package/compiler/transpile.d.ts +0 -32
- package/dev-server/client/app-error.d.ts +0 -20
- package/dev-server/client/events.d.ts +0 -6
- package/dev-server/client/hmr-components.d.ts +0 -12
- package/dev-server/client/hmr-external-styles.d.ts +0 -1
- package/dev-server/client/hmr-images.d.ts +0 -1
- package/dev-server/client/hmr-inline-styles.d.ts +0 -1
- package/dev-server/client/hmr-util.d.ts +0 -39
- package/dev-server/client/hmr-window.d.ts +0 -10
- package/dev-server/client/index.d.ts +0 -6
- package/dev-server/client/index.js +0 -793
- package/dev-server/client/logger.d.ts +0 -6
- package/dev-server/client/package.json +0 -8
- package/dev-server/client/progress.d.ts +0 -3
- package/dev-server/client/status.d.ts +0 -4
- package/dev-server/client/test/hmr-util.spec.d.ts +0 -1
- package/dev-server/client/test/status.spec.d.ts +0 -1
- package/dev-server/connector.html +0 -6
- package/dev-server/index.d.ts +0 -3
- package/dev-server/index.js +0 -247
- package/dev-server/package.json +0 -8
- package/dev-server/server-process.js +0 -12095
- package/dev-server/server-worker-thread.js +0 -39
- package/dev-server/static/favicon.ico +0 -0
- package/dev-server/templates/directory-index.html +0 -176
- package/dev-server/templates/initial-load.html +0 -168
- package/dev-server/visualstudio.vbs +0 -82
- package/dev-server/xdg-open +0 -1066
- package/internal/app-data/index.cjs +0 -119
- package/internal/app-data/index.js +0 -92
- package/internal/app-data/package.json +0 -15
- package/internal/app-globals/index.d.ts +0 -2
- package/internal/app-globals/index.js +0 -14
- package/internal/app-globals/package.json +0 -14
- package/internal/child_process.d.ts +0 -7
- package/internal/client/index.js +0 -4736
- package/internal/client/package.json +0 -10
- package/internal/client/patch-browser.js +0 -45
- package/internal/client/polyfills/core-js.js +0 -11
- package/internal/client/polyfills/dom.js +0 -79
- package/internal/client/polyfills/es5-html-element.js +0 -1
- package/internal/client/polyfills/index.js +0 -34
- package/internal/client/polyfills/system.js +0 -6
- package/internal/client/shadow-css.js +0 -414
- package/internal/hydrate/index.js +0 -6671
- package/internal/hydrate/package.json +0 -7
- package/internal/hydrate/runner.d.ts +0 -287
- package/internal/hydrate/runner.js +0 -17950
- package/internal/index.d.ts +0 -4
- package/internal/index.js +0 -2
- package/internal/package.json +0 -9
- package/internal/stencil-core/index.cjs +0 -1
- package/internal/stencil-core/index.js +0 -18
- package/internal/stencil-core/jsx-dev-runtime.cjs +0 -7
- package/internal/stencil-core/jsx-dev-runtime.d.ts +0 -41
- package/internal/stencil-core/jsx-dev-runtime.js +0 -2
- package/internal/stencil-core/jsx-runtime.cjs +0 -8
- package/internal/stencil-core/jsx-runtime.d.ts +0 -40
- package/internal/stencil-core/jsx-runtime.js +0 -2
- package/internal/stencil-private.d.ts +0 -2549
- package/internal/stencil-public-compiler.d.ts +0 -2867
- package/internal/stencil-public-runtime.d.ts +0 -1860
- package/internal/testing/index.js +0 -6528
- package/internal/testing/jsx-dev-runtime.d.ts +0 -2
- package/internal/testing/jsx-dev-runtime.js +0 -8
- package/internal/testing/jsx-runtime.d.ts +0 -2
- package/internal/testing/jsx-runtime.js +0 -9
- package/internal/testing/package.json +0 -7
- package/internal/utils/index.d.ts +0 -1
- package/internal/utils/result.d.ts +0 -112
- package/mock-doc/index.cjs +0 -10165
- package/mock-doc/index.d.ts +0 -1172
- package/mock-doc/index.js +0 -10144
- package/mock-doc/package.json +0 -15
- package/readme.md +0 -94
- package/screenshot/compare/assets/favicon.ico +0 -0
- package/screenshot/compare/assets/logo.png +0 -0
- package/screenshot/compare/build/app.css +0 -1
- package/screenshot/compare/build/app.esm.js +0 -1
- package/screenshot/compare/build/app.js +0 -33
- package/screenshot/compare/build/p-081b0641.js +0 -1
- package/screenshot/compare/build/p-227a1e18.entry.js +0 -1
- package/screenshot/compare/build/p-2c298727.entry.js +0 -1
- package/screenshot/compare/build/p-5479268c.entry.js +0 -1
- package/screenshot/compare/build/p-573ec8a4.entry.js +0 -1
- package/screenshot/compare/build/p-6ba08604.entry.js +0 -1
- package/screenshot/compare/build/p-6bc63295.entry.js +0 -1
- package/screenshot/compare/build/p-7a3759fd.entry.js +0 -1
- package/screenshot/compare/build/p-7b4e3ba7.js +0 -1
- package/screenshot/compare/build/p-988eb362.css +0 -1
- package/screenshot/compare/build/p-9b6a9315.js +0 -1
- package/screenshot/compare/build/p-b4cc611c.entry.js +0 -1
- package/screenshot/compare/build/p-d1bf53f5.entry.js +0 -1
- package/screenshot/compare/build/p-e2efe0df.js +0 -1
- package/screenshot/compare/build/p-e8ca6d97.entry.js +0 -1
- package/screenshot/compare/build/p-ec2f13e0.entry.js +0 -1
- package/screenshot/compare/build/p-f0b99977.entry.js +0 -1
- package/screenshot/compare/build/p-f4745c2f.entry.js +0 -1
- package/screenshot/compare/build/p-fbbae598.js +0 -1
- package/screenshot/compare/host.config.json +0 -15
- package/screenshot/compare/index.html +0 -1
- package/screenshot/compare/manifest.json +0 -13
- package/screenshot/connector-base.d.ts +0 -42
- package/screenshot/connector-local.d.ts +0 -7
- package/screenshot/connector.js +0 -2
- package/screenshot/index.d.ts +0 -3
- package/screenshot/index.js +0 -2433
- package/screenshot/local-connector.js +0 -2
- package/screenshot/package.json +0 -15
- package/screenshot/pixel-match.d.ts +0 -1
- package/screenshot/pixel-match.js +0 -2315
- package/screenshot/screenshot-compare.d.ts +0 -20
- package/screenshot/screenshot-fs.d.ts +0 -14
- package/sys/node/460.node-fetch.js +0 -451
- package/sys/node/autoprefixer.js +0 -9
- package/sys/node/glob.js +0 -1
- package/sys/node/graceful-fs.js +0 -1
- package/sys/node/index.d.ts +0 -39
- package/sys/node/index.js +0 -64
- package/sys/node/node-fetch.js +0 -12
- package/sys/node/package.json +0 -8
- package/sys/node/prompts.js +0 -1
- package/sys/node/worker.js +0 -4
- package/testing/index.d.ts +0 -9
- package/testing/index.js +0 -13064
- package/testing/jest/jest-27-and-under/jest-config.d.ts +0 -16
- package/testing/jest/jest-27-and-under/jest-environment.d.ts +0 -2
- package/testing/jest/jest-27-and-under/jest-facade.d.ts +0 -155
- package/testing/jest/jest-27-and-under/jest-preprocessor.d.ts +0 -59
- package/testing/jest/jest-27-and-under/jest-preset.d.ts +0 -3
- package/testing/jest/jest-27-and-under/jest-runner.d.ts +0 -11
- package/testing/jest/jest-27-and-under/jest-screenshot.d.ts +0 -2
- package/testing/jest/jest-27-and-under/jest-serializer.d.ts +0 -4
- package/testing/jest/jest-27-and-under/jest-setup-test-framework.d.ts +0 -9
- package/testing/jest/jest-27-and-under/matchers/attributes.d.ts +0 -14
- package/testing/jest/jest-27-and-under/matchers/class-list.d.ts +0 -12
- package/testing/jest/jest-27-and-under/matchers/events.d.ts +0 -25
- package/testing/jest/jest-27-and-under/matchers/html.d.ts +0 -13
- package/testing/jest/jest-27-and-under/matchers/index.d.ts +0 -24
- package/testing/jest/jest-27-and-under/matchers/screenshot.d.ts +0 -5
- package/testing/jest/jest-27-and-under/matchers/text.d.ts +0 -4
- package/testing/jest/jest-27-and-under/test/jest-config.spec.d.ts +0 -1
- package/testing/jest/jest-27-and-under/test/jest-preprocessor.spec.d.ts +0 -1
- package/testing/jest/jest-27-and-under/test/jest-runner.spec.d.ts +0 -1
- package/testing/jest/jest-27-and-under/test/jest-serializer.spec.d.ts +0 -1
- package/testing/jest/jest-27-and-under/test/jest-setup-test-framework.spec.d.ts +0 -1
- package/testing/jest/jest-28/jest-config.d.ts +0 -16
- package/testing/jest/jest-28/jest-environment.d.ts +0 -2
- package/testing/jest/jest-28/jest-facade.d.ts +0 -134
- package/testing/jest/jest-28/jest-preprocessor.d.ts +0 -35
- package/testing/jest/jest-28/jest-preset.d.ts +0 -3
- package/testing/jest/jest-28/jest-runner.d.ts +0 -11
- package/testing/jest/jest-28/jest-screenshot.d.ts +0 -2
- package/testing/jest/jest-28/jest-serializer.d.ts +0 -4
- package/testing/jest/jest-28/jest-setup-test-framework.d.ts +0 -9
- package/testing/jest/jest-28/matchers/attributes.d.ts +0 -14
- package/testing/jest/jest-28/matchers/class-list.d.ts +0 -12
- package/testing/jest/jest-28/matchers/events.d.ts +0 -25
- package/testing/jest/jest-28/matchers/html.d.ts +0 -13
- package/testing/jest/jest-28/matchers/index.d.ts +0 -24
- package/testing/jest/jest-28/matchers/screenshot.d.ts +0 -5
- package/testing/jest/jest-28/matchers/text.d.ts +0 -4
- package/testing/jest/jest-28/test/jest-config.spec.d.ts +0 -1
- package/testing/jest/jest-28/test/jest-preprocessor.spec.d.ts +0 -1
- package/testing/jest/jest-28/test/jest-runner.spec.d.ts +0 -1
- package/testing/jest/jest-28/test/jest-serializer.spec.d.ts +0 -1
- package/testing/jest/jest-28/test/jest-setup-test-framework.spec.d.ts +0 -1
- package/testing/jest/jest-29/jest-config.d.ts +0 -16
- package/testing/jest/jest-29/jest-environment.d.ts +0 -2
- package/testing/jest/jest-29/jest-facade.d.ts +0 -136
- package/testing/jest/jest-29/jest-preprocessor.d.ts +0 -35
- package/testing/jest/jest-29/jest-preset.d.ts +0 -3
- package/testing/jest/jest-29/jest-runner.d.ts +0 -11
- package/testing/jest/jest-29/jest-screenshot.d.ts +0 -2
- package/testing/jest/jest-29/jest-serializer.d.ts +0 -4
- package/testing/jest/jest-29/jest-setup-test-framework.d.ts +0 -9
- package/testing/jest/jest-29/matchers/attributes.d.ts +0 -14
- package/testing/jest/jest-29/matchers/class-list.d.ts +0 -12
- package/testing/jest/jest-29/matchers/events.d.ts +0 -25
- package/testing/jest/jest-29/matchers/html.d.ts +0 -13
- package/testing/jest/jest-29/matchers/index.d.ts +0 -24
- package/testing/jest/jest-29/matchers/screenshot.d.ts +0 -5
- package/testing/jest/jest-29/matchers/text.d.ts +0 -4
- package/testing/jest/jest-29/test/jest-config.spec.d.ts +0 -1
- package/testing/jest/jest-29/test/jest-preprocessor.spec.d.ts +0 -1
- package/testing/jest/jest-29/test/jest-runner.spec.d.ts +0 -1
- package/testing/jest/jest-29/test/jest-serializer.spec.d.ts +0 -1
- package/testing/jest/jest-29/test/jest-setup-test-framework.spec.d.ts +0 -1
- package/testing/jest/jest-apis.d.ts +0 -86
- package/testing/jest/jest-facade.d.ts +0 -74
- package/testing/jest/jest-stencil-connector.d.ts +0 -65
- package/testing/jest/test/jest-stencil-connector.spec.d.ts +0 -1
- package/testing/jest-environment.js +0 -3
- package/testing/jest-preprocessor.js +0 -3
- package/testing/jest-preset.js +0 -2
- package/testing/jest-runner.js +0 -3
- package/testing/jest-setuptestframework.js +0 -3
- package/testing/mock-fetch.d.ts +0 -11
- package/testing/mocks.d.ts +0 -56
- package/testing/package.json +0 -8
- package/testing/puppeteer/index.d.ts +0 -2
- package/testing/puppeteer/puppeteer-browser.d.ts +0 -6
- package/testing/puppeteer/puppeteer-declarations.d.ts +0 -414
- package/testing/puppeteer/puppeteer-element.d.ts +0 -67
- package/testing/puppeteer/puppeteer-emulate.d.ts +0 -2
- package/testing/puppeteer/puppeteer-events.d.ts +0 -21
- package/testing/puppeteer/puppeteer-page.d.ts +0 -2
- package/testing/puppeteer/puppeteer-screenshot.d.ts +0 -27
- package/testing/puppeteer/test/puppeteer-screenshot.spec.d.ts +0 -1
- package/testing/reset-build-conditionals.d.ts +0 -12
- package/testing/spec-page.d.ts +0 -7
- package/testing/test/testing-utils.spec.d.ts +0 -1
- package/testing/test-transpile.d.ts +0 -2
- package/testing/testing-logger.d.ts +0 -26
- package/testing/testing-sys.d.ts +0 -6
- package/testing/testing-utils.d.ts +0 -80
- package/testing/testing.d.ts +0 -2
- /package/{internal → dist/declarations}/stencil-ext-modules.d.ts +0 -0
- /package/{internal → dist/declarations}/stencil-public-docs.d.ts +0 -0
- /package/{screenshot/compare/build/index.esm.js → dist/declarations/stencil-public-runtime.js} +0 -0
|
@@ -1,414 +0,0 @@
|
|
|
1
|
-
// src/utils/regular-expression.ts
|
|
2
|
-
var escapeRegExpSpecialCharacters = (text) => {
|
|
3
|
-
return text.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
// src/utils/shadow-css.ts
|
|
7
|
-
/**
|
|
8
|
-
* @license
|
|
9
|
-
* Copyright Google Inc. All Rights Reserved.
|
|
10
|
-
*
|
|
11
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
12
|
-
* found in the LICENSE file at https://angular.io/license
|
|
13
|
-
*
|
|
14
|
-
* This file is a port of shadowCSS from `webcomponents.js` to TypeScript.
|
|
15
|
-
* https://github.com/webcomponents/webcomponentsjs/blob/4efecd7e0e/src/ShadowCSS/ShadowCSS.js
|
|
16
|
-
* https://github.com/angular/angular/blob/master/packages/compiler/src/shadow_css.ts
|
|
17
|
-
*/
|
|
18
|
-
var safeSelector = (selector) => {
|
|
19
|
-
const placeholders = [];
|
|
20
|
-
let index = 0;
|
|
21
|
-
selector = selector.replace(/(\[\s*part~=\s*("[^"]*"|'[^']*')\s*\])/g, (_, keep) => {
|
|
22
|
-
const replaceBy = `__part-${index}__`;
|
|
23
|
-
placeholders.push(keep);
|
|
24
|
-
index++;
|
|
25
|
-
return replaceBy;
|
|
26
|
-
});
|
|
27
|
-
selector = selector.replace(/(\[[^\]]*\])/g, (_, keep) => {
|
|
28
|
-
const replaceBy = `__ph-${index}__`;
|
|
29
|
-
placeholders.push(keep);
|
|
30
|
-
index++;
|
|
31
|
-
return replaceBy;
|
|
32
|
-
});
|
|
33
|
-
const content = selector.replace(/(:nth-[-\w]+)(\([^)]+\))/g, (_, pseudo, exp) => {
|
|
34
|
-
const replaceBy = `__ph-${index}__`;
|
|
35
|
-
placeholders.push(exp);
|
|
36
|
-
index++;
|
|
37
|
-
return pseudo + replaceBy;
|
|
38
|
-
});
|
|
39
|
-
const ss = {
|
|
40
|
-
content,
|
|
41
|
-
placeholders
|
|
42
|
-
};
|
|
43
|
-
return ss;
|
|
44
|
-
};
|
|
45
|
-
var restoreSafeSelector = (placeholders, content) => {
|
|
46
|
-
content = content.replace(/__part-(\d+)__/g, (_, index) => placeholders[+index]);
|
|
47
|
-
return content.replace(/__ph-(\d+)__/g, (_, index) => placeholders[+index]);
|
|
48
|
-
};
|
|
49
|
-
var _polyfillHost = "-shadowcsshost";
|
|
50
|
-
var _polyfillSlotted = "-shadowcssslotted";
|
|
51
|
-
var _polyfillHostContext = "-shadowcsscontext";
|
|
52
|
-
var _parenSuffix = ")(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))?([^,{]*)";
|
|
53
|
-
var _cssColonHostRe = new RegExp("(" + _polyfillHost + _parenSuffix, "gim");
|
|
54
|
-
var _cssColonHostContextRe = new RegExp("(" + _polyfillHostContext + _parenSuffix, "gim");
|
|
55
|
-
var _cssColonSlottedRe = new RegExp("(" + _polyfillSlotted + _parenSuffix, "gim");
|
|
56
|
-
var _polyfillHostNoCombinator = _polyfillHost + "-no-combinator";
|
|
57
|
-
var _polyfillHostNoCombinatorRe = /-shadowcsshost-no-combinator([^\s]*)/;
|
|
58
|
-
var _shadowDOMSelectorsRe = [/::shadow/g, /::content/g];
|
|
59
|
-
var _safePartRe = /__part-(\d+)__/g;
|
|
60
|
-
var _selectorReSuffix = "([>\\s~+[.,{:][\\s\\S]*)?$";
|
|
61
|
-
var _polyfillHostRe = /-shadowcsshost/gim;
|
|
62
|
-
var createSupportsRuleRe = (selector) => {
|
|
63
|
-
const safeSelector2 = escapeRegExpSpecialCharacters(selector);
|
|
64
|
-
return new RegExp(
|
|
65
|
-
// First capture group: match any context before the selector that's not inside @supports selector()
|
|
66
|
-
// Using negative lookahead to avoid matching inside @supports selector(...) condition
|
|
67
|
-
`(^|[^@]|@(?!supports\\s+selector\\s*\\([^{]*?${safeSelector2}))(${safeSelector2}\\b)`,
|
|
68
|
-
"g"
|
|
69
|
-
);
|
|
70
|
-
};
|
|
71
|
-
var _commentRe = /\/\*\s*[\s\S]*?\*\//g;
|
|
72
|
-
var stripComments = (input) => {
|
|
73
|
-
return input.replace(_commentRe, "");
|
|
74
|
-
};
|
|
75
|
-
var _commentWithHashRe = /\/\*\s*#\s*source(Mapping)?URL=[\s\S]+?\*\//g;
|
|
76
|
-
var extractCommentsWithHash = (input) => {
|
|
77
|
-
return input.match(_commentWithHashRe) || [];
|
|
78
|
-
};
|
|
79
|
-
var _ruleRe = /(\s*)([^;\{\}]+?)(\s*)((?:{%BLOCK%}?\s*;?)|(?:\s*;))/g;
|
|
80
|
-
var _curlyRe = /([{}])/g;
|
|
81
|
-
var _selectorPartsRe = /(^.*?[^\\])??((:+)(.*)|$)/;
|
|
82
|
-
var OPEN_CURLY = "{";
|
|
83
|
-
var CLOSE_CURLY = "}";
|
|
84
|
-
var BLOCK_PLACEHOLDER = "%BLOCK%";
|
|
85
|
-
var processRules = (input, ruleCallback) => {
|
|
86
|
-
const inputWithEscapedBlocks = escapeBlocks(input);
|
|
87
|
-
let nextBlockIndex = 0;
|
|
88
|
-
return inputWithEscapedBlocks.escapedString.replace(_ruleRe, (...m) => {
|
|
89
|
-
const selector = m[2];
|
|
90
|
-
let content = "";
|
|
91
|
-
let suffix = m[4];
|
|
92
|
-
let contentPrefix = "";
|
|
93
|
-
if (suffix && suffix.startsWith("{" + BLOCK_PLACEHOLDER)) {
|
|
94
|
-
content = inputWithEscapedBlocks.blocks[nextBlockIndex++];
|
|
95
|
-
suffix = suffix.substring(BLOCK_PLACEHOLDER.length + 1);
|
|
96
|
-
contentPrefix = "{";
|
|
97
|
-
}
|
|
98
|
-
const cssRule = {
|
|
99
|
-
selector,
|
|
100
|
-
content
|
|
101
|
-
};
|
|
102
|
-
const rule = ruleCallback(cssRule);
|
|
103
|
-
return `${m[1]}${rule.selector}${m[3]}${contentPrefix}${rule.content}${suffix}`;
|
|
104
|
-
});
|
|
105
|
-
};
|
|
106
|
-
var escapeBlocks = (input) => {
|
|
107
|
-
const inputParts = input.split(_curlyRe);
|
|
108
|
-
const resultParts = [];
|
|
109
|
-
const escapedBlocks = [];
|
|
110
|
-
let bracketCount = 0;
|
|
111
|
-
let currentBlockParts = [];
|
|
112
|
-
for (let partIndex = 0; partIndex < inputParts.length; partIndex++) {
|
|
113
|
-
const part = inputParts[partIndex];
|
|
114
|
-
if (part === CLOSE_CURLY) {
|
|
115
|
-
bracketCount--;
|
|
116
|
-
}
|
|
117
|
-
if (bracketCount > 0) {
|
|
118
|
-
currentBlockParts.push(part);
|
|
119
|
-
} else {
|
|
120
|
-
if (currentBlockParts.length > 0) {
|
|
121
|
-
escapedBlocks.push(currentBlockParts.join(""));
|
|
122
|
-
resultParts.push(BLOCK_PLACEHOLDER);
|
|
123
|
-
currentBlockParts = [];
|
|
124
|
-
}
|
|
125
|
-
resultParts.push(part);
|
|
126
|
-
}
|
|
127
|
-
if (part === OPEN_CURLY) {
|
|
128
|
-
bracketCount++;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
if (currentBlockParts.length > 0) {
|
|
132
|
-
escapedBlocks.push(currentBlockParts.join(""));
|
|
133
|
-
resultParts.push(BLOCK_PLACEHOLDER);
|
|
134
|
-
}
|
|
135
|
-
const strEscapedBlocks = {
|
|
136
|
-
escapedString: resultParts.join(""),
|
|
137
|
-
blocks: escapedBlocks
|
|
138
|
-
};
|
|
139
|
-
return strEscapedBlocks;
|
|
140
|
-
};
|
|
141
|
-
var insertPolyfillHostInCssText = (cssText) => {
|
|
142
|
-
const supportsBlocks = [];
|
|
143
|
-
cssText = cssText.replace(/@supports\s+selector\s*\(\s*([^)]*)\s*\)/g, (_, selectorContent) => {
|
|
144
|
-
const placeholder = `__supports_${supportsBlocks.length}__`;
|
|
145
|
-
supportsBlocks.push(selectorContent);
|
|
146
|
-
return `@supports selector(${placeholder})`;
|
|
147
|
-
});
|
|
148
|
-
const _colonSlottedRe = createSupportsRuleRe("::slotted");
|
|
149
|
-
const _colonHostRe = createSupportsRuleRe(":host");
|
|
150
|
-
const _colonHostContextRe = createSupportsRuleRe(":host-context");
|
|
151
|
-
cssText = cssText.replace(_colonHostContextRe, `$1${_polyfillHostContext}`).replace(_colonHostRe, `$1${_polyfillHost}`).replace(_colonSlottedRe, `$1${_polyfillSlotted}`);
|
|
152
|
-
supportsBlocks.forEach((originalSelector, index) => {
|
|
153
|
-
cssText = cssText.replace(`__supports_${index}__`, originalSelector);
|
|
154
|
-
});
|
|
155
|
-
return cssText;
|
|
156
|
-
};
|
|
157
|
-
var convertColonRule = (cssText, regExp, partReplacer) => {
|
|
158
|
-
return cssText.replace(regExp, (...m) => {
|
|
159
|
-
if (m[2]) {
|
|
160
|
-
const parts = m[2].split(",");
|
|
161
|
-
const r = [];
|
|
162
|
-
for (let i = 0; i < parts.length; i++) {
|
|
163
|
-
const p = parts[i].trim();
|
|
164
|
-
if (!p) break;
|
|
165
|
-
r.push(partReplacer(_polyfillHostNoCombinator, p, m[3]));
|
|
166
|
-
}
|
|
167
|
-
return r.join(",");
|
|
168
|
-
} else {
|
|
169
|
-
return _polyfillHostNoCombinator + m[3];
|
|
170
|
-
}
|
|
171
|
-
});
|
|
172
|
-
};
|
|
173
|
-
var colonHostPartReplacer = (host, part, suffix) => {
|
|
174
|
-
return host + part.replace(_polyfillHost, "") + suffix;
|
|
175
|
-
};
|
|
176
|
-
var convertColonHost = (cssText) => {
|
|
177
|
-
return convertColonRule(cssText, _cssColonHostRe, colonHostPartReplacer);
|
|
178
|
-
};
|
|
179
|
-
var colonHostContextPartReplacer = (host, part, suffix) => {
|
|
180
|
-
if (part.indexOf(_polyfillHost) > -1) {
|
|
181
|
-
return colonHostPartReplacer(host, part, suffix);
|
|
182
|
-
} else {
|
|
183
|
-
return host + part + suffix + ", " + part + " " + host + suffix;
|
|
184
|
-
}
|
|
185
|
-
};
|
|
186
|
-
var convertColonSlotted = (cssText, slotScopeId) => {
|
|
187
|
-
const slotClass = "." + slotScopeId + " > ";
|
|
188
|
-
const selectors = [];
|
|
189
|
-
cssText = cssText.replace(_cssColonSlottedRe, (...m) => {
|
|
190
|
-
if (m[2]) {
|
|
191
|
-
const compound = m[2].trim();
|
|
192
|
-
const suffix = m[3];
|
|
193
|
-
const slottedSelector = slotClass + compound + suffix;
|
|
194
|
-
let prefixSelector = "";
|
|
195
|
-
for (let i = m[4] - 1; i >= 0; i--) {
|
|
196
|
-
const char = m[5][i];
|
|
197
|
-
if (char === "}" || char === ",") {
|
|
198
|
-
break;
|
|
199
|
-
}
|
|
200
|
-
prefixSelector = char + prefixSelector;
|
|
201
|
-
}
|
|
202
|
-
const orgSelector = (prefixSelector + slottedSelector).trim();
|
|
203
|
-
const addedSelector = `${prefixSelector.trimEnd()}${slottedSelector.trim()}`.trim();
|
|
204
|
-
if (orgSelector !== addedSelector) {
|
|
205
|
-
const updatedSelector = `${addedSelector}, ${orgSelector}`;
|
|
206
|
-
selectors.push({
|
|
207
|
-
orgSelector,
|
|
208
|
-
updatedSelector
|
|
209
|
-
});
|
|
210
|
-
}
|
|
211
|
-
return slottedSelector;
|
|
212
|
-
} else {
|
|
213
|
-
return _polyfillHostNoCombinator + m[3];
|
|
214
|
-
}
|
|
215
|
-
});
|
|
216
|
-
return {
|
|
217
|
-
selectors,
|
|
218
|
-
cssText
|
|
219
|
-
};
|
|
220
|
-
};
|
|
221
|
-
var convertColonHostContext = (cssText) => {
|
|
222
|
-
return convertColonRule(cssText, _cssColonHostContextRe, colonHostContextPartReplacer);
|
|
223
|
-
};
|
|
224
|
-
var convertShadowDOMSelectors = (cssText) => {
|
|
225
|
-
return _shadowDOMSelectorsRe.reduce((result, pattern) => result.replace(pattern, " "), cssText);
|
|
226
|
-
};
|
|
227
|
-
var makeScopeMatcher = (scopeSelector2) => {
|
|
228
|
-
const lre = /\[/g;
|
|
229
|
-
const rre = /\]/g;
|
|
230
|
-
scopeSelector2 = scopeSelector2.replace(lre, "\\[").replace(rre, "\\]");
|
|
231
|
-
return new RegExp("^(" + scopeSelector2 + ")" + _selectorReSuffix, "m");
|
|
232
|
-
};
|
|
233
|
-
var selectorNeedsScoping = (selector, scopeSelector2) => {
|
|
234
|
-
const re = makeScopeMatcher(scopeSelector2);
|
|
235
|
-
return !re.test(selector);
|
|
236
|
-
};
|
|
237
|
-
var injectScopingSelector = (selector, scopingSelector) => {
|
|
238
|
-
return selector.replace(_selectorPartsRe, (_, before = "", _colonGroup, colon = "", after = "") => {
|
|
239
|
-
return before + scopingSelector + colon + after;
|
|
240
|
-
});
|
|
241
|
-
};
|
|
242
|
-
var applySimpleSelectorScope = (selector, scopeSelector2, hostSelector) => {
|
|
243
|
-
_polyfillHostRe.lastIndex = 0;
|
|
244
|
-
if (_polyfillHostRe.test(selector)) {
|
|
245
|
-
const replaceBy = `.${hostSelector}`;
|
|
246
|
-
return selector.replace(_polyfillHostNoCombinatorRe, (_, selector2) => injectScopingSelector(selector2, replaceBy)).replace(_polyfillHostRe, replaceBy + " ");
|
|
247
|
-
}
|
|
248
|
-
return scopeSelector2 + " " + selector;
|
|
249
|
-
};
|
|
250
|
-
var applyStrictSelectorScope = (selector, scopeSelector2, hostSelector) => {
|
|
251
|
-
const isRe = /\[is=([^\]]*)\]/g;
|
|
252
|
-
scopeSelector2 = scopeSelector2.replace(isRe, (_, ...parts) => parts[0]);
|
|
253
|
-
const className = "." + scopeSelector2;
|
|
254
|
-
const _scopeSelectorPart = (p) => {
|
|
255
|
-
let scopedP = p.trim();
|
|
256
|
-
if (!scopedP) {
|
|
257
|
-
return "";
|
|
258
|
-
}
|
|
259
|
-
if (p.indexOf(_polyfillHostNoCombinator) > -1) {
|
|
260
|
-
scopedP = applySimpleSelectorScope(p, scopeSelector2, hostSelector);
|
|
261
|
-
} else {
|
|
262
|
-
const t = p.replace(_polyfillHostRe, "");
|
|
263
|
-
if (t.length > 0) {
|
|
264
|
-
scopedP = injectScopingSelector(t, className);
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
return scopedP;
|
|
268
|
-
};
|
|
269
|
-
const safeContent = safeSelector(selector);
|
|
270
|
-
selector = safeContent.content;
|
|
271
|
-
let scopedSelector = "";
|
|
272
|
-
let startIndex = 0;
|
|
273
|
-
let res;
|
|
274
|
-
const sep = /( |>|\+|~(?!=))(?=(?:[^()]*\([^()]*\))*[^()]*$)\s*/g;
|
|
275
|
-
const hasHost = selector.indexOf(_polyfillHostNoCombinator) > -1;
|
|
276
|
-
let shouldScope = !hasHost;
|
|
277
|
-
while ((res = sep.exec(selector)) !== null) {
|
|
278
|
-
const separator = res[1];
|
|
279
|
-
const part2 = selector.slice(startIndex, res.index).trim();
|
|
280
|
-
shouldScope = shouldScope || part2.indexOf(_polyfillHostNoCombinator) > -1;
|
|
281
|
-
const scopedPart = shouldScope ? _scopeSelectorPart(part2) : part2;
|
|
282
|
-
scopedSelector += `${scopedPart} ${separator} `;
|
|
283
|
-
startIndex = sep.lastIndex;
|
|
284
|
-
}
|
|
285
|
-
const part = selector.substring(startIndex);
|
|
286
|
-
shouldScope = !part.match(_safePartRe) && (shouldScope || part.indexOf(_polyfillHostNoCombinator) > -1);
|
|
287
|
-
scopedSelector += shouldScope ? _scopeSelectorPart(part) : part;
|
|
288
|
-
return restoreSafeSelector(safeContent.placeholders, scopedSelector);
|
|
289
|
-
};
|
|
290
|
-
var scopeSelector = (selector, scopeSelectorText, hostSelector, slotSelector) => {
|
|
291
|
-
return selector.split(",").map((shallowPart) => {
|
|
292
|
-
if (slotSelector && shallowPart.indexOf("." + slotSelector) > -1) {
|
|
293
|
-
return shallowPart.trim();
|
|
294
|
-
}
|
|
295
|
-
if (selectorNeedsScoping(shallowPart, scopeSelectorText)) {
|
|
296
|
-
return applyStrictSelectorScope(shallowPart, scopeSelectorText, hostSelector).trim();
|
|
297
|
-
} else {
|
|
298
|
-
return shallowPart.trim();
|
|
299
|
-
}
|
|
300
|
-
}).join(", ");
|
|
301
|
-
};
|
|
302
|
-
var scopeSelectors = (cssText, scopeSelectorText, hostSelector, slotSelector, commentOriginalSelector) => {
|
|
303
|
-
return processRules(cssText, (rule) => {
|
|
304
|
-
let selector = rule.selector;
|
|
305
|
-
let content = rule.content;
|
|
306
|
-
if (rule.selector[0] !== "@") {
|
|
307
|
-
selector = scopeSelector(rule.selector, scopeSelectorText, hostSelector, slotSelector);
|
|
308
|
-
} else if (rule.selector.startsWith("@media") || rule.selector.startsWith("@supports") || rule.selector.startsWith("@page") || rule.selector.startsWith("@document")) {
|
|
309
|
-
content = scopeSelectors(rule.content, scopeSelectorText, hostSelector, slotSelector, commentOriginalSelector);
|
|
310
|
-
}
|
|
311
|
-
const cssRule = {
|
|
312
|
-
selector: selector.replace(/\s{2,}/g, " ").trim(),
|
|
313
|
-
content
|
|
314
|
-
};
|
|
315
|
-
return cssRule;
|
|
316
|
-
});
|
|
317
|
-
};
|
|
318
|
-
var scopeCssText = (cssText, scopeId, hostScopeId, slotScopeId, commentOriginalSelector) => {
|
|
319
|
-
cssText = insertPolyfillHostInCssText(cssText);
|
|
320
|
-
cssText = convertColonHost(cssText);
|
|
321
|
-
cssText = convertColonHostContext(cssText);
|
|
322
|
-
const slotted = convertColonSlotted(cssText, slotScopeId);
|
|
323
|
-
cssText = slotted.cssText;
|
|
324
|
-
cssText = convertShadowDOMSelectors(cssText);
|
|
325
|
-
if (scopeId) {
|
|
326
|
-
cssText = scopeSelectors(cssText, scopeId, hostScopeId, slotScopeId, commentOriginalSelector);
|
|
327
|
-
}
|
|
328
|
-
cssText = replaceShadowCssHost(cssText, hostScopeId);
|
|
329
|
-
cssText = cssText.replace(/>\s*\*\s+([^{, ]+)/gm, " $1 ");
|
|
330
|
-
return {
|
|
331
|
-
cssText: cssText.trim(),
|
|
332
|
-
// We need to replace the shadow CSS host string in each of these selectors since we created
|
|
333
|
-
// them prior to the replacement happening in the components CSS text.
|
|
334
|
-
slottedSelectors: slotted.selectors.map((ref) => ({
|
|
335
|
-
orgSelector: replaceShadowCssHost(ref.orgSelector, hostScopeId),
|
|
336
|
-
updatedSelector: replaceShadowCssHost(ref.updatedSelector, hostScopeId)
|
|
337
|
-
}))
|
|
338
|
-
};
|
|
339
|
-
};
|
|
340
|
-
var replaceShadowCssHost = (cssText, hostScopeId) => {
|
|
341
|
-
return cssText.replace(/-shadowcsshost-no-combinator/g, `.${hostScopeId}`);
|
|
342
|
-
};
|
|
343
|
-
var expandPartSelectors = (cssText) => {
|
|
344
|
-
const partSelectorRe = /([^\s,{][^,{]*?)::part\(\s*([^)]+?)\s*\)((?:[:.][^,{]*)*)/g;
|
|
345
|
-
return processRules(cssText, (rule) => {
|
|
346
|
-
if (rule.selector[0] === "@") {
|
|
347
|
-
return rule;
|
|
348
|
-
}
|
|
349
|
-
const selectors = rule.selector.split(",").map((sel) => {
|
|
350
|
-
const out = [sel.trim()];
|
|
351
|
-
let m;
|
|
352
|
-
while ((m = partSelectorRe.exec(sel)) !== null) {
|
|
353
|
-
const before = m[1].trimEnd();
|
|
354
|
-
const partNames = m[2].trim().split(/\s+/);
|
|
355
|
-
const after = m[3] || "";
|
|
356
|
-
const partAttr = partNames.flatMap((p) => {
|
|
357
|
-
if (!rule.selector.includes(`[part~="${p}"]`)) {
|
|
358
|
-
return [`[part~="${p}"]`];
|
|
359
|
-
}
|
|
360
|
-
return [];
|
|
361
|
-
}).join("");
|
|
362
|
-
const expanded = `${before} ${partAttr}${after}`;
|
|
363
|
-
if (!!partAttr && expanded !== sel.trim()) {
|
|
364
|
-
out.push(expanded);
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
return out.join(", ");
|
|
368
|
-
});
|
|
369
|
-
rule.selector = selectors.join(", ");
|
|
370
|
-
return rule;
|
|
371
|
-
});
|
|
372
|
-
};
|
|
373
|
-
var scopeCss = (cssText, scopeId, commentOriginalSelector) => {
|
|
374
|
-
const hostScopeId = scopeId + "-h";
|
|
375
|
-
const slotScopeId = scopeId + "-s";
|
|
376
|
-
const commentsWithHash = extractCommentsWithHash(cssText);
|
|
377
|
-
cssText = stripComments(cssText);
|
|
378
|
-
const orgSelectors = [];
|
|
379
|
-
if (commentOriginalSelector) {
|
|
380
|
-
const processCommentedSelector = (rule) => {
|
|
381
|
-
const placeholder = `/*!@___${orgSelectors.length}___*/`;
|
|
382
|
-
const comment = `/*!@${rule.selector}*/`;
|
|
383
|
-
orgSelectors.push({ placeholder, comment });
|
|
384
|
-
rule.selector = placeholder + rule.selector;
|
|
385
|
-
return rule;
|
|
386
|
-
};
|
|
387
|
-
cssText = processRules(cssText, (rule) => {
|
|
388
|
-
if (rule.selector[0] !== "@") {
|
|
389
|
-
return processCommentedSelector(rule);
|
|
390
|
-
} else if (rule.selector.startsWith("@media") || rule.selector.startsWith("@supports") || rule.selector.startsWith("@page") || rule.selector.startsWith("@document")) {
|
|
391
|
-
rule.content = processRules(rule.content, processCommentedSelector);
|
|
392
|
-
return rule;
|
|
393
|
-
}
|
|
394
|
-
return rule;
|
|
395
|
-
});
|
|
396
|
-
}
|
|
397
|
-
const scoped = scopeCssText(cssText, scopeId, hostScopeId, slotScopeId, commentOriginalSelector);
|
|
398
|
-
cssText = [scoped.cssText, ...commentsWithHash].join("\n");
|
|
399
|
-
if (commentOriginalSelector) {
|
|
400
|
-
orgSelectors.forEach(({ placeholder, comment }) => {
|
|
401
|
-
cssText = cssText.replace(placeholder, comment);
|
|
402
|
-
});
|
|
403
|
-
}
|
|
404
|
-
scoped.slottedSelectors.forEach((slottedSelector) => {
|
|
405
|
-
const regex = new RegExp(escapeRegExpSpecialCharacters(slottedSelector.orgSelector) + "(?=\\s*[,{]|$)", "g");
|
|
406
|
-
cssText = cssText.replace(regex, slottedSelector.updatedSelector);
|
|
407
|
-
});
|
|
408
|
-
cssText = expandPartSelectors(cssText);
|
|
409
|
-
return cssText;
|
|
410
|
-
};
|
|
411
|
-
export {
|
|
412
|
-
expandPartSelectors,
|
|
413
|
-
scopeCss
|
|
414
|
-
};
|