@dcloudio/vue-cli-plugin-uni 2.0.0 → 2.0.1-32920211122002
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/commands/build.js +64 -33
- package/commands/serve.js +12 -17
- package/generator.js +6 -2
- package/index.js +5 -3
- package/lib/chain-webpack.js +8 -1
- package/lib/check-update.js +56 -0
- package/lib/commands/custom.js +7 -4
- package/lib/commands/invoke.js +5 -4
- package/lib/configure-webpack.js +35 -5
- package/lib/copy-webpack-options.js +60 -20
- package/lib/env.js +99 -51
- package/lib/error-reporting.js +9 -3
- package/lib/mp/index.js +31 -16
- package/lib/options.js +6 -3
- package/lib/util.js +5 -6
- package/package.json +3 -3
- package/packages/@vue/component-compiler-utils/MODIFY.md +5 -0
- package/packages/@vue/component-compiler-utils/dist/compileStyle.js +11 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/API.md +873 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/CHANGELOG.md +466 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/LICENSE-MIT +22 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/README.md +49 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/dist/index.js +26 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/dist/parser.js +1088 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/dist/processor.js +185 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/dist/selectors/attribute.js +468 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/dist/selectors/className.js +67 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/dist/selectors/combinator.js +35 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/dist/selectors/comment.js +35 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/dist/selectors/constructors.js +91 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/dist/selectors/container.js +392 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/dist/selectors/guards.js +54 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/dist/selectors/id.js +39 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/dist/selectors/index.js +39 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/dist/selectors/namespace.js +98 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/dist/selectors/nesting.js +36 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/dist/selectors/node.js +216 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/dist/selectors/pseudo.js +40 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/dist/selectors/root.js +60 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/dist/selectors/selector.js +35 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/dist/selectors/string.js +35 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/dist/selectors/tag.js +35 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/dist/selectors/types.js +15 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/dist/selectors/universal.js +36 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/dist/sortAscending.js +10 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/dist/tokenTypes.js +39 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/dist/tokenize.js +271 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/dist/util/ensureObject.js +20 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/dist/util/getProp.js +22 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/dist/util/index.js +41 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/dist/util/stripComments.js +21 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/dist/util/unesc.js +18 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/package.json +76 -0
- package/packages/@vue/component-compiler-utils/node_modules/postcss-selector-parser/postcss-selector-parser.d.ts +499 -0
- package/packages/@vue/devtools-api/lib/cjs/api/api.d.ts +90 -0
- package/packages/@vue/devtools-api/lib/cjs/api/api.js +2 -0
- package/packages/@vue/devtools-api/lib/cjs/api/app.d.ts +1 -0
- package/packages/@vue/devtools-api/lib/cjs/api/app.js +2 -0
- package/packages/@vue/devtools-api/lib/cjs/api/component.d.ts +76 -0
- package/packages/@vue/devtools-api/lib/cjs/api/component.js +2 -0
- package/packages/@vue/devtools-api/lib/cjs/api/context.d.ts +5 -0
- package/packages/@vue/devtools-api/lib/cjs/api/context.js +2 -0
- package/packages/@vue/devtools-api/lib/cjs/api/hooks.d.ts +169 -0
- package/packages/@vue/devtools-api/lib/cjs/api/hooks.js +2 -0
- package/packages/@vue/devtools-api/lib/cjs/api/index.d.ts +6 -0
- package/packages/@vue/devtools-api/lib/cjs/api/index.js +18 -0
- package/packages/@vue/devtools-api/lib/cjs/api/util.d.ts +4 -0
- package/packages/@vue/devtools-api/lib/cjs/api/util.js +2 -0
- package/packages/@vue/devtools-api/lib/cjs/const.d.ts +1 -0
- package/packages/@vue/devtools-api/lib/cjs/const.js +4 -0
- package/packages/@vue/devtools-api/lib/cjs/env.d.ts +10 -0
- package/packages/@vue/devtools-api/lib/cjs/env.js +16 -0
- package/packages/@vue/devtools-api/lib/cjs/index.d.ts +14 -0
- package/packages/@vue/devtools-api/lib/cjs/index.js +31 -0
- package/packages/@vue/devtools-api/lib/esm/api/api.js +0 -0
- package/packages/@vue/devtools-api/lib/esm/api/app.js +0 -0
- package/packages/@vue/devtools-api/lib/esm/api/component.js +0 -0
- package/packages/@vue/devtools-api/lib/esm/api/context.js +0 -0
- package/packages/@vue/devtools-api/lib/esm/api/hooks.js +0 -0
- package/packages/@vue/devtools-api/lib/esm/api/index.js +6 -0
- package/packages/@vue/devtools-api/lib/esm/api/util.js +0 -0
- package/packages/@vue/devtools-api/lib/esm/const.js +1 -0
- package/packages/@vue/devtools-api/lib/esm/env.js +11 -0
- package/packages/@vue/devtools-api/lib/esm/index.js +17 -0
- package/packages/@vue/devtools-api/package.json +38 -0
- package/packages/app-vue-style-loader/lib/addStylesClient.js +1 -1
- package/packages/h5-vue-style-loader/lib/addStylesClient.js +1 -1
- package/packages/mp-vue/dist/mp.runtime.esm.js +3 -2
- package/packages/mp-vue/package.json +1 -0
- package/packages/uni-app/LICENSE +202 -0
- package/packages/uni-app/dist/uni-app.cjs.js +165 -0
- package/packages/uni-app/dist/uni-app.d.ts +61 -0
- package/packages/uni-app/dist/uni-app.es.js +108 -0
- package/packages/uni-app/package.json +22 -0
- package/packages/uni-cloud/dist/index.js +1 -1
- package/packages/uni-stat/dist/uni-stat.cjs.js +961 -0
- package/packages/uni-stat/dist/uni-stat.es.js +959 -0
- package/packages/uni-stat/lib/uni.plugin.js +68 -0
- package/packages/uni-stat/package.json +25 -0
- package/packages/vue3/node_modules/.yarn-integrity +27 -0
- package/packages/vue3/node_modules/@intlify/core-base/LICENSE +20 -0
- package/packages/vue3/node_modules/@intlify/core-base/README.md +7 -0
- package/packages/vue3/node_modules/@intlify/core-base/dist/core-base.cjs.js +989 -0
- package/packages/vue3/node_modules/@intlify/core-base/dist/core-base.cjs.prod.js +735 -0
- package/packages/vue3/node_modules/@intlify/core-base/dist/core-base.d.ts +576 -0
- package/packages/vue3/node_modules/@intlify/core-base/dist/core-base.esm-browser.js +2771 -0
- package/packages/vue3/node_modules/@intlify/core-base/dist/core-base.esm-browser.prod.js +6 -0
- package/packages/vue3/node_modules/@intlify/core-base/dist/core-base.esm-bundler.js +965 -0
- package/packages/vue3/node_modules/@intlify/core-base/dist/core-base.global.js +2814 -0
- package/packages/vue3/node_modules/@intlify/core-base/dist/core-base.global.prod.js +6 -0
- package/packages/vue3/node_modules/@intlify/core-base/index.js +7 -0
- package/packages/vue3/node_modules/@intlify/core-base/package.json +59 -0
- package/packages/vue3/node_modules/@intlify/devtools-if/LICENSE +20 -0
- package/packages/vue3/node_modules/@intlify/devtools-if/README.md +13 -0
- package/packages/vue3/node_modules/@intlify/devtools-if/dist/devtools-if.cjs.js +15 -0
- package/packages/vue3/node_modules/@intlify/devtools-if/dist/devtools-if.cjs.prod.js +15 -0
- package/packages/vue3/node_modules/@intlify/devtools-if/dist/devtools-if.d.ts +43 -0
- package/packages/vue3/node_modules/@intlify/devtools-if/dist/devtools-if.esm-bundler.js +11 -0
- package/packages/vue3/node_modules/@intlify/devtools-if/index.js +7 -0
- package/packages/vue3/node_modules/@intlify/devtools-if/package.json +49 -0
- package/packages/vue3/node_modules/@intlify/message-compiler/LICENSE +20 -0
- package/packages/vue3/node_modules/@intlify/message-compiler/README.md +7 -0
- package/packages/vue3/node_modules/@intlify/message-compiler/dist/message-compiler.cjs.js +1400 -0
- package/packages/vue3/node_modules/@intlify/message-compiler/dist/message-compiler.cjs.prod.js +1395 -0
- package/packages/vue3/node_modules/@intlify/message-compiler/dist/message-compiler.d.ts +197 -0
- package/packages/vue3/node_modules/@intlify/message-compiler/dist/message-compiler.esm-browser.js +1348 -0
- package/packages/vue3/node_modules/@intlify/message-compiler/dist/message-compiler.esm-browser.prod.js +6 -0
- package/packages/vue3/node_modules/@intlify/message-compiler/dist/message-compiler.esm-bundler.js +1329 -0
- package/packages/vue3/node_modules/@intlify/message-compiler/dist/message-compiler.global.js +1365 -0
- package/packages/vue3/node_modules/@intlify/message-compiler/dist/message-compiler.global.prod.js +6 -0
- package/packages/vue3/node_modules/@intlify/message-compiler/index.js +7 -0
- package/packages/vue3/node_modules/@intlify/message-compiler/package.json +56 -0
- package/packages/vue3/node_modules/@intlify/message-resolver/LICENSE +20 -0
- package/packages/vue3/node_modules/@intlify/message-resolver/README.md +7 -0
- package/packages/vue3/node_modules/@intlify/message-resolver/dist/message-resolver.cjs.js +302 -0
- package/packages/vue3/node_modules/@intlify/message-resolver/dist/message-resolver.cjs.prod.js +302 -0
- package/packages/vue3/node_modules/@intlify/message-resolver/dist/message-resolver.d.ts +21 -0
- package/packages/vue3/node_modules/@intlify/message-resolver/dist/message-resolver.esm-bundler.js +297 -0
- package/packages/vue3/node_modules/@intlify/message-resolver/index.js +7 -0
- package/packages/vue3/node_modules/@intlify/message-resolver/package.json +46 -0
- package/packages/vue3/node_modules/@intlify/runtime/LICENSE +20 -0
- package/packages/vue3/node_modules/@intlify/runtime/README.md +7 -0
- package/packages/vue3/node_modules/@intlify/runtime/dist/runtime.cjs.js +116 -0
- package/packages/vue3/node_modules/@intlify/runtime/dist/runtime.cjs.prod.js +116 -0
- package/packages/vue3/node_modules/@intlify/runtime/dist/runtime.d.ts +95 -0
- package/packages/vue3/node_modules/@intlify/runtime/dist/runtime.esm-bundler.js +111 -0
- package/packages/vue3/node_modules/@intlify/runtime/index.js +7 -0
- package/packages/vue3/node_modules/@intlify/runtime/package.json +51 -0
- package/packages/vue3/node_modules/@intlify/shared/LICENSE +20 -0
- package/packages/vue3/node_modules/@intlify/shared/README.md +18 -0
- package/packages/vue3/node_modules/@intlify/shared/dist/shared.cjs.js +222 -0
- package/packages/vue3/node_modules/@intlify/shared/dist/shared.cjs.prod.js +209 -0
- package/packages/vue3/node_modules/@intlify/shared/dist/shared.d.ts +145 -0
- package/packages/vue3/node_modules/@intlify/shared/dist/shared.esm-bundler.js +192 -0
- package/packages/vue3/node_modules/@intlify/shared/index.js +7 -0
- package/packages/vue3/node_modules/@intlify/shared/package.json +46 -0
- package/packages/vue3/node_modules/@intlify/vue-devtools/LICENSE +20 -0
- package/packages/vue3/node_modules/@intlify/vue-devtools/README.md +7 -0
- package/packages/vue3/node_modules/@intlify/vue-devtools/dist/vue-devtools.cjs.js +24 -0
- package/packages/vue3/node_modules/@intlify/vue-devtools/dist/vue-devtools.cjs.prod.js +24 -0
- package/packages/vue3/node_modules/@intlify/vue-devtools/dist/vue-devtools.d.ts +81 -0
- package/packages/vue3/node_modules/@intlify/vue-devtools/dist/vue-devtools.esm-bundler.js +18 -0
- package/packages/vue3/node_modules/@intlify/vue-devtools/index.js +7 -0
- package/packages/vue3/node_modules/@intlify/vue-devtools/package.json +51 -0
- package/packages/vue3/node_modules/@vue/devtools-api/lib/cjs/api/api.d.ts +90 -0
- package/packages/vue3/node_modules/@vue/devtools-api/lib/cjs/api/api.js +2 -0
- package/packages/vue3/node_modules/@vue/devtools-api/lib/cjs/api/app.d.ts +1 -0
- package/packages/vue3/node_modules/@vue/devtools-api/lib/cjs/api/app.js +2 -0
- package/packages/vue3/node_modules/@vue/devtools-api/lib/cjs/api/component.d.ts +76 -0
- package/packages/vue3/node_modules/@vue/devtools-api/lib/cjs/api/component.js +2 -0
- package/packages/vue3/node_modules/@vue/devtools-api/lib/cjs/api/context.d.ts +5 -0
- package/packages/vue3/node_modules/@vue/devtools-api/lib/cjs/api/context.js +2 -0
- package/packages/vue3/node_modules/@vue/devtools-api/lib/cjs/api/hooks.d.ts +169 -0
- package/packages/vue3/node_modules/@vue/devtools-api/lib/cjs/api/hooks.js +2 -0
- package/packages/vue3/node_modules/@vue/devtools-api/lib/cjs/api/index.d.ts +6 -0
- package/packages/vue3/node_modules/@vue/devtools-api/lib/cjs/api/index.js +18 -0
- package/packages/vue3/node_modules/@vue/devtools-api/lib/cjs/api/util.d.ts +4 -0
- package/packages/vue3/node_modules/@vue/devtools-api/lib/cjs/api/util.js +2 -0
- package/packages/vue3/node_modules/@vue/devtools-api/lib/cjs/const.d.ts +1 -0
- package/packages/vue3/node_modules/@vue/devtools-api/lib/cjs/const.js +4 -0
- package/packages/vue3/node_modules/@vue/devtools-api/lib/cjs/env.d.ts +10 -0
- package/packages/vue3/node_modules/@vue/devtools-api/lib/cjs/env.js +16 -0
- package/packages/vue3/node_modules/@vue/devtools-api/lib/cjs/index.d.ts +14 -0
- package/packages/vue3/node_modules/@vue/devtools-api/lib/cjs/index.js +31 -0
- package/packages/vue3/node_modules/@vue/devtools-api/lib/esm/api/api.js +0 -0
- package/packages/vue3/node_modules/@vue/devtools-api/lib/esm/api/app.js +0 -0
- package/packages/vue3/node_modules/@vue/devtools-api/lib/esm/api/component.js +0 -0
- package/packages/vue3/node_modules/@vue/devtools-api/lib/esm/api/context.js +0 -0
- package/packages/vue3/node_modules/@vue/devtools-api/lib/esm/api/hooks.js +0 -0
- package/packages/vue3/node_modules/@vue/devtools-api/lib/esm/api/index.js +6 -0
- package/packages/vue3/node_modules/@vue/devtools-api/lib/esm/api/util.js +0 -0
- package/packages/vue3/node_modules/@vue/devtools-api/lib/esm/const.js +1 -0
- package/packages/vue3/node_modules/@vue/devtools-api/lib/esm/env.js +11 -0
- package/packages/vue3/node_modules/@vue/devtools-api/lib/esm/index.js +17 -0
- package/packages/vue3/node_modules/@vue/devtools-api/package.json +38 -0
- package/packages/vue3/node_modules/source-map/CHANGELOG.md +301 -0
- package/packages/vue3/node_modules/source-map/LICENSE +28 -0
- package/packages/vue3/node_modules/source-map/README.md +742 -0
- package/packages/vue3/node_modules/source-map/dist/source-map.debug.js +3234 -0
- package/packages/vue3/node_modules/source-map/dist/source-map.js +3233 -0
- package/packages/vue3/node_modules/source-map/dist/source-map.min.js +2 -0
- package/packages/vue3/node_modules/source-map/dist/source-map.min.js.map +1 -0
- package/packages/vue3/node_modules/source-map/lib/array-set.js +121 -0
- package/packages/vue3/node_modules/source-map/lib/base64-vlq.js +140 -0
- package/packages/vue3/node_modules/source-map/lib/base64.js +67 -0
- package/packages/vue3/node_modules/source-map/lib/binary-search.js +111 -0
- package/packages/vue3/node_modules/source-map/lib/mapping-list.js +79 -0
- package/packages/vue3/node_modules/source-map/lib/quick-sort.js +114 -0
- package/packages/vue3/node_modules/source-map/lib/source-map-consumer.js +1145 -0
- package/packages/vue3/node_modules/source-map/lib/source-map-generator.js +425 -0
- package/packages/vue3/node_modules/source-map/lib/source-node.js +413 -0
- package/packages/vue3/node_modules/source-map/lib/util.js +488 -0
- package/packages/vue3/node_modules/source-map/package.json +73 -0
- package/packages/vue3/node_modules/source-map/source-map.d.ts +98 -0
- package/packages/vue3/node_modules/source-map/source-map.js +8 -0
- package/packages/vue3/node_modules/vue-i18n/LICENSE +20 -0
- package/packages/vue3/node_modules/vue-i18n/README.md +74 -0
- package/packages/vue3/node_modules/vue-i18n/dist/vue-i18n.cjs.js +1801 -0
- package/packages/vue3/node_modules/vue-i18n/dist/vue-i18n.cjs.prod.js +1685 -0
- package/packages/vue3/node_modules/vue-i18n/dist/vue-i18n.d.ts +3302 -0
- package/packages/vue3/node_modules/vue-i18n/dist/vue-i18n.esm-browser.js +5052 -0
- package/packages/vue3/node_modules/vue-i18n/dist/vue-i18n.esm-browser.prod.js +6 -0
- package/packages/vue3/node_modules/vue-i18n/dist/vue-i18n.esm-bundler.js +2226 -0
- package/packages/vue3/node_modules/vue-i18n/dist/vue-i18n.global.js +5065 -0
- package/packages/vue3/node_modules/vue-i18n/dist/vue-i18n.global.prod.js +6 -0
- package/packages/vue3/node_modules/vue-i18n/dist/vue-i18n.runtime.esm-browser.js +3724 -0
- package/packages/vue3/node_modules/vue-i18n/dist/vue-i18n.runtime.esm-browser.prod.js +6 -0
- package/packages/vue3/node_modules/vue-i18n/dist/vue-i18n.runtime.esm-bundler.js +2224 -0
- package/packages/vue3/node_modules/vue-i18n/dist/vue-i18n.runtime.global.js +3737 -0
- package/packages/vue3/node_modules/vue-i18n/dist/vue-i18n.runtime.global.prod.js +6 -0
- package/packages/vue3/node_modules/vue-i18n/index.js +7 -0
- package/packages/vue3/node_modules/vue-i18n/package.json +69 -0
- package/packages/vue3/node_modules/vue-i18n/vetur/attributes.json +62 -0
- package/packages/vue3/node_modules/vue-i18n/vetur/tags.json +14 -0
- package/packages/vue3/package.json +15 -0
- package/packages/vue3/yarn.lock +79 -0
- package/packages/vuex/CHANGELOG.md +604 -0
- package/packages/vuex/LICENSE +21 -0
- package/packages/vuex/README.md +55 -0
- package/packages/vuex/dist/vuex.cjs.js +1474 -0
- package/packages/vuex/dist/vuex.esm-browser.js +1472 -0
- package/packages/vuex/dist/vuex.esm-browser.prod.js +1307 -0
- package/packages/vuex/dist/vuex.esm-bundler.js +1473 -0
- package/packages/vuex/dist/vuex.global.js +1499 -0
- package/packages/vuex/dist/vuex.global.prod.js +6 -0
- package/packages/vuex/dist/vuex.mjs +32 -0
- package/packages/vuex/package.json +99 -0
- package/packages/vuex/types/helpers.d.ts +86 -0
- package/packages/vuex/types/index.d.ts +167 -0
- package/packages/vuex/types/logger.d.ts +20 -0
- package/packages/vuex/types/vue.d.ts +12 -0
- package/packages/vuex3/CHANGELOG.md +356 -0
- package/packages/vuex3/LICENSE +21 -0
- package/packages/vuex3/README.md +59 -0
- package/packages/vuex3/dist/logger.js +155 -0
- package/packages/vuex3/dist/vuex.common.js +1244 -0
- package/packages/vuex3/dist/vuex.esm.browser.js +1200 -0
- package/packages/vuex3/dist/vuex.esm.browser.min.js +6 -0
- package/packages/vuex3/dist/vuex.esm.js +1243 -0
- package/packages/vuex3/dist/vuex.js +1250 -0
- package/packages/vuex3/dist/vuex.min.js +6 -0
- package/packages/vuex3/dist/vuex.mjs +26 -0
- package/packages/vuex3/package.json +96 -0
- package/packages/vuex3/types/helpers.d.ts +86 -0
- package/packages/vuex3/types/index.d.ts +164 -0
- package/packages/vuex3/types/logger.d.ts +20 -0
- package/packages/vuex3/types/vue.d.ts +18 -0
- package/packages/webpack-uni-app-loader/plugin/index.js +8 -2
- package/packages/webpack-uni-app-loader/view/main.js +12 -0
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
|
|
5
|
+
var _parser = require("./parser");
|
|
6
|
+
|
|
7
|
+
var _parser2 = _interopRequireDefault(_parser);
|
|
8
|
+
|
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
+
|
|
11
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
12
|
+
|
|
13
|
+
var Processor = function () {
|
|
14
|
+
function Processor(func, options) {
|
|
15
|
+
_classCallCheck(this, Processor);
|
|
16
|
+
|
|
17
|
+
this.func = func || function noop() {};
|
|
18
|
+
this.funcRes = null;
|
|
19
|
+
this.options = options;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
Processor.prototype._shouldUpdateSelector = function _shouldUpdateSelector(rule) {
|
|
23
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
24
|
+
|
|
25
|
+
var merged = Object.assign({}, this.options, options);
|
|
26
|
+
if (merged.updateSelector === false) {
|
|
27
|
+
return false;
|
|
28
|
+
} else {
|
|
29
|
+
return typeof rule !== "string";
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
Processor.prototype._isLossy = function _isLossy() {
|
|
34
|
+
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
35
|
+
|
|
36
|
+
var merged = Object.assign({}, this.options, options);
|
|
37
|
+
if (merged.lossless === false) {
|
|
38
|
+
return true;
|
|
39
|
+
} else {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
Processor.prototype._root = function _root(rule) {
|
|
45
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
46
|
+
|
|
47
|
+
var parser = new _parser2.default(rule, this._parseOptions(options));
|
|
48
|
+
return parser.root;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
Processor.prototype._parseOptions = function _parseOptions(options) {
|
|
52
|
+
return {
|
|
53
|
+
lossy: this._isLossy(options)
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
Processor.prototype._run = function _run(rule) {
|
|
58
|
+
var _this = this;
|
|
59
|
+
|
|
60
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
61
|
+
|
|
62
|
+
return new Promise(function (resolve, reject) {
|
|
63
|
+
try {
|
|
64
|
+
var root = _this._root(rule, options);
|
|
65
|
+
Promise.resolve(_this.func(root)).then(function (transform) {
|
|
66
|
+
var string = undefined;
|
|
67
|
+
if (_this._shouldUpdateSelector(rule, options)) {
|
|
68
|
+
string = root.toString();
|
|
69
|
+
rule.selector = string;
|
|
70
|
+
}
|
|
71
|
+
return { transform: transform, root: root, string: string };
|
|
72
|
+
}).then(resolve, reject);
|
|
73
|
+
} catch (e) {
|
|
74
|
+
reject(e);
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
Processor.prototype._runSync = function _runSync(rule) {
|
|
81
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
82
|
+
|
|
83
|
+
var root = this._root(rule, options);
|
|
84
|
+
var transform = this.func(root);
|
|
85
|
+
if (transform && typeof transform.then === "function") {
|
|
86
|
+
throw new Error("Selector processor returned a promise to a synchronous call.");
|
|
87
|
+
}
|
|
88
|
+
var string = undefined;
|
|
89
|
+
if (options.updateSelector && typeof rule !== "string") {
|
|
90
|
+
string = root.toString();
|
|
91
|
+
rule.selector = string;
|
|
92
|
+
}
|
|
93
|
+
return { transform: transform, root: root, string: string };
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Process rule into a selector AST.
|
|
98
|
+
*
|
|
99
|
+
* @param rule {postcss.Rule | string} The css selector to be processed
|
|
100
|
+
* @param options The options for processing
|
|
101
|
+
* @returns {Promise<parser.Root>} The AST of the selector after processing it.
|
|
102
|
+
*/
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
Processor.prototype.ast = function ast(rule, options) {
|
|
106
|
+
return this._run(rule, options).then(function (result) {
|
|
107
|
+
return result.root;
|
|
108
|
+
});
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Process rule into a selector AST synchronously.
|
|
113
|
+
*
|
|
114
|
+
* @param rule {postcss.Rule | string} The css selector to be processed
|
|
115
|
+
* @param options The options for processing
|
|
116
|
+
* @returns {parser.Root} The AST of the selector after processing it.
|
|
117
|
+
*/
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
Processor.prototype.astSync = function astSync(rule, options) {
|
|
121
|
+
return this._runSync(rule, options).root;
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Process a selector into a transformed value asynchronously
|
|
126
|
+
*
|
|
127
|
+
* @param rule {postcss.Rule | string} The css selector to be processed
|
|
128
|
+
* @param options The options for processing
|
|
129
|
+
* @returns {Promise<any>} The value returned by the processor.
|
|
130
|
+
*/
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
Processor.prototype.transform = function transform(rule, options) {
|
|
134
|
+
return this._run(rule, options).then(function (result) {
|
|
135
|
+
return result.transform;
|
|
136
|
+
});
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Process a selector into a transformed value synchronously.
|
|
141
|
+
*
|
|
142
|
+
* @param rule {postcss.Rule | string} The css selector to be processed
|
|
143
|
+
* @param options The options for processing
|
|
144
|
+
* @returns {any} The value returned by the processor.
|
|
145
|
+
*/
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
Processor.prototype.transformSync = function transformSync(rule, options) {
|
|
149
|
+
return this._runSync(rule, options).transform;
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Process a selector into a new selector string asynchronously.
|
|
154
|
+
*
|
|
155
|
+
* @param rule {postcss.Rule | string} The css selector to be processed
|
|
156
|
+
* @param options The options for processing
|
|
157
|
+
* @returns {string} the selector after processing.
|
|
158
|
+
*/
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
Processor.prototype.process = function process(rule, options) {
|
|
162
|
+
return this._run(rule, options).then(function (result) {
|
|
163
|
+
return result.string || result.root.toString();
|
|
164
|
+
});
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Process a selector into a new selector string synchronously.
|
|
169
|
+
*
|
|
170
|
+
* @param rule {postcss.Rule | string} The css selector to be processed
|
|
171
|
+
* @param options The options for processing
|
|
172
|
+
* @returns {string} the selector after processing.
|
|
173
|
+
*/
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
Processor.prototype.processSync = function processSync(rule, options) {
|
|
177
|
+
var result = this._runSync(rule, options);
|
|
178
|
+
return result.string || result.root.toString();
|
|
179
|
+
};
|
|
180
|
+
|
|
181
|
+
return Processor;
|
|
182
|
+
}();
|
|
183
|
+
|
|
184
|
+
exports.default = Processor;
|
|
185
|
+
module.exports = exports["default"];
|
|
@@ -0,0 +1,468 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
|
|
5
|
+
var _CSSESC_QUOTE_OPTIONS;
|
|
6
|
+
|
|
7
|
+
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
|
8
|
+
|
|
9
|
+
exports.unescapeValue = unescapeValue;
|
|
10
|
+
|
|
11
|
+
var _cssesc = require("cssesc");
|
|
12
|
+
|
|
13
|
+
var _cssesc2 = _interopRequireDefault(_cssesc);
|
|
14
|
+
|
|
15
|
+
var _unesc = require("../util/unesc");
|
|
16
|
+
|
|
17
|
+
var _unesc2 = _interopRequireDefault(_unesc);
|
|
18
|
+
|
|
19
|
+
var _namespace = require("./namespace");
|
|
20
|
+
|
|
21
|
+
var _namespace2 = _interopRequireDefault(_namespace);
|
|
22
|
+
|
|
23
|
+
var _types = require("./types");
|
|
24
|
+
|
|
25
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
26
|
+
|
|
27
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
28
|
+
|
|
29
|
+
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
|
|
30
|
+
|
|
31
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
|
|
32
|
+
|
|
33
|
+
var _require = require("util"),
|
|
34
|
+
deprecate = _require.deprecate;
|
|
35
|
+
|
|
36
|
+
var WRAPPED_IN_QUOTES = /^('|")(.*)\1$/;
|
|
37
|
+
|
|
38
|
+
var warnOfDeprecatedValueAssignment = deprecate(function () {}, "Assigning an attribute a value containing characters that might need to be escaped is deprecated. " + "Call attribute.setValue() instead.");
|
|
39
|
+
|
|
40
|
+
var warnOfDeprecatedQuotedAssignment = deprecate(function () {}, "Assigning attr.quoted is deprecated and has no effect. Assign to attr.quoteMark instead.");
|
|
41
|
+
|
|
42
|
+
var warnOfDeprecatedConstructor = deprecate(function () {}, "Constructing an Attribute selector with a value without specifying quoteMark is deprecated. Note: The value should be unescaped now.");
|
|
43
|
+
|
|
44
|
+
function unescapeValue(value) {
|
|
45
|
+
var deprecatedUsage = false;
|
|
46
|
+
var quoteMark = null;
|
|
47
|
+
var unescaped = value;
|
|
48
|
+
var m = unescaped.match(WRAPPED_IN_QUOTES);
|
|
49
|
+
if (m) {
|
|
50
|
+
quoteMark = m[1];
|
|
51
|
+
unescaped = m[2];
|
|
52
|
+
}
|
|
53
|
+
unescaped = (0, _unesc2.default)(unescaped);
|
|
54
|
+
if (unescaped !== value) {
|
|
55
|
+
deprecatedUsage = true;
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
deprecatedUsage: deprecatedUsage,
|
|
59
|
+
unescaped: unescaped,
|
|
60
|
+
quoteMark: quoteMark
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function handleDeprecatedContructorOpts(opts) {
|
|
65
|
+
if (opts.quoteMark !== undefined) {
|
|
66
|
+
return opts;
|
|
67
|
+
}
|
|
68
|
+
if (opts.value === undefined) {
|
|
69
|
+
return opts;
|
|
70
|
+
}
|
|
71
|
+
warnOfDeprecatedConstructor();
|
|
72
|
+
|
|
73
|
+
var _unescapeValue = unescapeValue(opts.value),
|
|
74
|
+
quoteMark = _unescapeValue.quoteMark,
|
|
75
|
+
unescaped = _unescapeValue.unescaped;
|
|
76
|
+
|
|
77
|
+
if (!opts.raws) {
|
|
78
|
+
opts.raws = {};
|
|
79
|
+
}
|
|
80
|
+
if (opts.raws.value === undefined) {
|
|
81
|
+
opts.raws.value = opts.value;
|
|
82
|
+
}
|
|
83
|
+
opts.value = unescaped;
|
|
84
|
+
opts.quoteMark = quoteMark;
|
|
85
|
+
return opts;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
var Attribute = function (_Namespace) {
|
|
89
|
+
_inherits(Attribute, _Namespace);
|
|
90
|
+
|
|
91
|
+
function Attribute() {
|
|
92
|
+
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
93
|
+
|
|
94
|
+
_classCallCheck(this, Attribute);
|
|
95
|
+
|
|
96
|
+
var _this = _possibleConstructorReturn(this, _Namespace.call(this, handleDeprecatedContructorOpts(opts)));
|
|
97
|
+
|
|
98
|
+
_this.type = _types.ATTRIBUTE;
|
|
99
|
+
_this.raws = _this.raws || {};
|
|
100
|
+
Object.defineProperty(_this.raws, 'unquoted', {
|
|
101
|
+
get: deprecate(function () {
|
|
102
|
+
return _this.value;
|
|
103
|
+
}, "attr.raws.unquoted is deprecated. Call attr.value instead."),
|
|
104
|
+
set: deprecate(function () {
|
|
105
|
+
return _this.value;
|
|
106
|
+
}, "Setting attr.raws.unquoted is deprecated and has no effect. attr.value is unescaped by default now.")
|
|
107
|
+
});
|
|
108
|
+
_this._constructed = true;
|
|
109
|
+
return _this;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Returns the Attribute's value quoted such that it would be legal to use
|
|
114
|
+
* in the value of a css file. The original value's quotation setting
|
|
115
|
+
* used for stringification is left unchanged. See `setValue(value, options)`
|
|
116
|
+
* if you want to control the quote settings of a new value for the attribute.
|
|
117
|
+
*
|
|
118
|
+
* You can also change the quotation used for the current value by setting quoteMark.
|
|
119
|
+
*
|
|
120
|
+
* Options:
|
|
121
|
+
* * quoteMark {'"' | "'" | null} - Use this value to quote the value. If this
|
|
122
|
+
* option is not set, the original value for quoteMark will be used. If
|
|
123
|
+
* indeterminate, a double quote is used. The legal values are:
|
|
124
|
+
* * `null` - the value will be unquoted and characters will be escaped as necessary.
|
|
125
|
+
* * `'` - the value will be quoted with a single quote and single quotes are escaped.
|
|
126
|
+
* * `"` - the value will be quoted with a double quote and double quotes are escaped.
|
|
127
|
+
* * preferCurrentQuoteMark {boolean} - if true, prefer the source quote mark
|
|
128
|
+
* over the quoteMark option value.
|
|
129
|
+
* * smart {boolean} - if true, will select a quote mark based on the value
|
|
130
|
+
* and the other options specified here. See the `smartQuoteMark()`
|
|
131
|
+
* method.
|
|
132
|
+
**/
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
Attribute.prototype.getQuotedValue = function getQuotedValue() {
|
|
136
|
+
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
137
|
+
|
|
138
|
+
var quoteMark = this._determineQuoteMark(options);
|
|
139
|
+
var cssescopts = CSSESC_QUOTE_OPTIONS[quoteMark];
|
|
140
|
+
var escaped = (0, _cssesc2.default)(this._value, cssescopts);
|
|
141
|
+
return escaped;
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
Attribute.prototype._determineQuoteMark = function _determineQuoteMark(options) {
|
|
145
|
+
return options.smart ? this.smartQuoteMark(options) : this.preferredQuoteMark(options);
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Set the unescaped value with the specified quotation options. The value
|
|
150
|
+
* provided must not include any wrapping quote marks -- those quotes will
|
|
151
|
+
* be interpreted as part of the value and escaped accordingly.
|
|
152
|
+
*/
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
Attribute.prototype.setValue = function setValue(value) {
|
|
156
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
157
|
+
|
|
158
|
+
this._value = value;
|
|
159
|
+
this._quoteMark = this._determineQuoteMark(options);
|
|
160
|
+
this._syncRawValue();
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Intelligently select a quoteMark value based on the value's contents. If
|
|
165
|
+
* the value is a legal CSS ident, it will not be quoted. Otherwise a quote
|
|
166
|
+
* mark will be picked that minimizes the number of escapes.
|
|
167
|
+
*
|
|
168
|
+
* If there's no clear winner, the quote mark from these options is used,
|
|
169
|
+
* then the source quote mark (this is inverted if `preferCurrentQuoteMark` is
|
|
170
|
+
* true). If the quoteMark is unspecified, a double quote is used.
|
|
171
|
+
*
|
|
172
|
+
* @param options This takes the quoteMark and preferCurrentQuoteMark options
|
|
173
|
+
* from the quoteValue method.
|
|
174
|
+
*/
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
Attribute.prototype.smartQuoteMark = function smartQuoteMark(options) {
|
|
178
|
+
var v = this.value;
|
|
179
|
+
var numSingleQuotes = v.replace(/[^']/g, '').length;
|
|
180
|
+
var numDoubleQuotes = v.replace(/[^"]/g, '').length;
|
|
181
|
+
if (numSingleQuotes + numDoubleQuotes === 0) {
|
|
182
|
+
var escaped = (0, _cssesc2.default)(v, { isIdentifier: true });
|
|
183
|
+
if (escaped === v) {
|
|
184
|
+
return Attribute.NO_QUOTE;
|
|
185
|
+
} else {
|
|
186
|
+
var pref = this.preferredQuoteMark(options);
|
|
187
|
+
if (pref === Attribute.NO_QUOTE) {
|
|
188
|
+
// pick a quote mark that isn't none and see if it's smaller
|
|
189
|
+
var quote = this.quoteMark || options.quoteMark || Attribute.DOUBLE_QUOTE;
|
|
190
|
+
var opts = CSSESC_QUOTE_OPTIONS[quote];
|
|
191
|
+
var quoteValue = (0, _cssesc2.default)(v, opts);
|
|
192
|
+
if (quoteValue.length < escaped.length) {
|
|
193
|
+
return quote;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
return pref;
|
|
197
|
+
}
|
|
198
|
+
} else if (numDoubleQuotes === numSingleQuotes) {
|
|
199
|
+
return this.preferredQuoteMark(options);
|
|
200
|
+
} else if (numDoubleQuotes < numSingleQuotes) {
|
|
201
|
+
return Attribute.DOUBLE_QUOTE;
|
|
202
|
+
} else {
|
|
203
|
+
return Attribute.SINGLE_QUOTE;
|
|
204
|
+
}
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Selects the preferred quote mark based on the options and the current quote mark value.
|
|
209
|
+
* If you want the quote mark to depend on the attribute value, call `smartQuoteMark(opts)`
|
|
210
|
+
* instead.
|
|
211
|
+
*/
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
Attribute.prototype.preferredQuoteMark = function preferredQuoteMark(options) {
|
|
215
|
+
var quoteMark = options.preferCurrentQuoteMark ? this.quoteMark : options.quoteMark;
|
|
216
|
+
|
|
217
|
+
if (quoteMark === undefined) {
|
|
218
|
+
quoteMark = options.preferCurrentQuoteMark ? options.quoteMark : this.quoteMark;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
if (quoteMark === undefined) {
|
|
222
|
+
quoteMark = Attribute.DOUBLE_QUOTE;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
return quoteMark;
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
Attribute.prototype._syncRawValue = function _syncRawValue() {
|
|
229
|
+
var rawValue = (0, _cssesc2.default)(this._value, CSSESC_QUOTE_OPTIONS[this.quoteMark]);
|
|
230
|
+
if (rawValue === this._value) {
|
|
231
|
+
if (this.raws) {
|
|
232
|
+
delete this.raws.value;
|
|
233
|
+
}
|
|
234
|
+
} else {
|
|
235
|
+
this.raws.value = rawValue;
|
|
236
|
+
}
|
|
237
|
+
};
|
|
238
|
+
|
|
239
|
+
Attribute.prototype._handleEscapes = function _handleEscapes(prop, value) {
|
|
240
|
+
if (this._constructed) {
|
|
241
|
+
var escaped = (0, _cssesc2.default)(value, { isIdentifier: true });
|
|
242
|
+
if (escaped !== value) {
|
|
243
|
+
this.raws[prop] = escaped;
|
|
244
|
+
} else {
|
|
245
|
+
delete this.raws[prop];
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
};
|
|
249
|
+
|
|
250
|
+
Attribute.prototype._spacesFor = function _spacesFor(name) {
|
|
251
|
+
var attrSpaces = { before: '', after: '' };
|
|
252
|
+
var spaces = this.spaces[name] || {};
|
|
253
|
+
var rawSpaces = this.raws.spaces && this.raws.spaces[name] || {};
|
|
254
|
+
return Object.assign(attrSpaces, spaces, rawSpaces);
|
|
255
|
+
};
|
|
256
|
+
|
|
257
|
+
Attribute.prototype._stringFor = function _stringFor(name) {
|
|
258
|
+
var spaceName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : name;
|
|
259
|
+
var concat = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultAttrConcat;
|
|
260
|
+
|
|
261
|
+
var attrSpaces = this._spacesFor(spaceName);
|
|
262
|
+
return concat(this.stringifyProperty(name), attrSpaces);
|
|
263
|
+
};
|
|
264
|
+
|
|
265
|
+
/**
|
|
266
|
+
* returns the offset of the attribute part specified relative to the
|
|
267
|
+
* start of the node of the output string.
|
|
268
|
+
*
|
|
269
|
+
* * "ns" - alias for "namespace"
|
|
270
|
+
* * "namespace" - the namespace if it exists.
|
|
271
|
+
* * "attribute" - the attribute name
|
|
272
|
+
* * "attributeNS" - the start of the attribute or its namespace
|
|
273
|
+
* * "operator" - the match operator of the attribute
|
|
274
|
+
* * "value" - The value (string or identifier)
|
|
275
|
+
* * "insensitive" - the case insensitivity flag;
|
|
276
|
+
* @param part One of the possible values inside an attribute.
|
|
277
|
+
* @returns -1 if the name is invalid or the value doesn't exist in this attribute.
|
|
278
|
+
*/
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
Attribute.prototype.offsetOf = function offsetOf(name) {
|
|
282
|
+
var count = 1;
|
|
283
|
+
var attributeSpaces = this._spacesFor("attribute");
|
|
284
|
+
count += attributeSpaces.before.length;
|
|
285
|
+
if (name === "namespace" || name === "ns") {
|
|
286
|
+
return this.namespace ? count : -1;
|
|
287
|
+
}
|
|
288
|
+
if (name === "attributeNS") {
|
|
289
|
+
return count;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
count += this.namespaceString.length;
|
|
293
|
+
if (this.namespace) {
|
|
294
|
+
count += 1;
|
|
295
|
+
}
|
|
296
|
+
if (name === "attribute") {
|
|
297
|
+
return count;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
count += this.stringifyProperty("attribute").length;
|
|
301
|
+
count += attributeSpaces.after.length;
|
|
302
|
+
var operatorSpaces = this._spacesFor("operator");
|
|
303
|
+
count += operatorSpaces.before.length;
|
|
304
|
+
var operator = this.stringifyProperty("operator");
|
|
305
|
+
if (name === "operator") {
|
|
306
|
+
return operator ? count : -1;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
count += operator.length;
|
|
310
|
+
count += operatorSpaces.after.length;
|
|
311
|
+
var valueSpaces = this._spacesFor("value");
|
|
312
|
+
count += valueSpaces.before.length;
|
|
313
|
+
var value = this.stringifyProperty("value");
|
|
314
|
+
if (name === "value") {
|
|
315
|
+
return value ? count : -1;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
count += value.length;
|
|
319
|
+
count += valueSpaces.after.length;
|
|
320
|
+
var insensitiveSpaces = this._spacesFor("insensitive");
|
|
321
|
+
count += insensitiveSpaces.before.length;
|
|
322
|
+
if (name === "insensitive") {
|
|
323
|
+
return this.insensitive ? count : -1;
|
|
324
|
+
}
|
|
325
|
+
return -1;
|
|
326
|
+
};
|
|
327
|
+
|
|
328
|
+
Attribute.prototype.toString = function toString() {
|
|
329
|
+
var _this2 = this;
|
|
330
|
+
|
|
331
|
+
var selector = [this.rawSpaceBefore, '['];
|
|
332
|
+
|
|
333
|
+
selector.push(this._stringFor('qualifiedAttribute', 'attribute'));
|
|
334
|
+
|
|
335
|
+
if (this.operator && this.value) {
|
|
336
|
+
selector.push(this._stringFor('operator'));
|
|
337
|
+
selector.push(this._stringFor('value'));
|
|
338
|
+
selector.push(this._stringFor('insensitiveFlag', 'insensitive', function (attrValue, attrSpaces) {
|
|
339
|
+
if (attrValue.length > 0 && !_this2.quoted && attrSpaces.before.length === 0 && !(_this2.spaces.value && _this2.spaces.value.after)) {
|
|
340
|
+
attrSpaces.before = " ";
|
|
341
|
+
}
|
|
342
|
+
return defaultAttrConcat(attrValue, attrSpaces);
|
|
343
|
+
}));
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
selector.push(']');
|
|
347
|
+
selector.push(this.rawSpaceAfter);
|
|
348
|
+
return selector.join('');
|
|
349
|
+
};
|
|
350
|
+
|
|
351
|
+
_createClass(Attribute, [{
|
|
352
|
+
key: "quoted",
|
|
353
|
+
get: function get() {
|
|
354
|
+
var qm = this.quoteMark;
|
|
355
|
+
return qm === "'" || qm === '"';
|
|
356
|
+
},
|
|
357
|
+
set: function set(value) {
|
|
358
|
+
warnOfDeprecatedQuotedAssignment();
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
/**
|
|
362
|
+
* returns a single (`'`) or double (`"`) quote character if the value is quoted.
|
|
363
|
+
* returns `null` if the value is not quoted.
|
|
364
|
+
* returns `undefined` if the quotation state is unknown (this can happen when
|
|
365
|
+
* the attribute is constructed without specifying a quote mark.)
|
|
366
|
+
*/
|
|
367
|
+
|
|
368
|
+
}, {
|
|
369
|
+
key: "quoteMark",
|
|
370
|
+
get: function get() {
|
|
371
|
+
return this._quoteMark;
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
/**
|
|
375
|
+
* Set the quote mark to be used by this attribute's value.
|
|
376
|
+
* If the quote mark changes, the raw (escaped) value at `attr.raws.value` of the attribute
|
|
377
|
+
* value is updated accordingly.
|
|
378
|
+
*
|
|
379
|
+
* @param {"'" | '"' | null} quoteMark The quote mark or `null` if the value should be unquoted.
|
|
380
|
+
*/
|
|
381
|
+
,
|
|
382
|
+
set: function set(quoteMark) {
|
|
383
|
+
if (!this._constructed) {
|
|
384
|
+
this._quoteMark = quoteMark;
|
|
385
|
+
return;
|
|
386
|
+
}
|
|
387
|
+
if (this._quoteMark !== quoteMark) {
|
|
388
|
+
this._quoteMark = quoteMark;
|
|
389
|
+
this._syncRawValue();
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
}, {
|
|
393
|
+
key: "qualifiedAttribute",
|
|
394
|
+
get: function get() {
|
|
395
|
+
return this.qualifiedName(this.raws.attribute || this.attribute);
|
|
396
|
+
}
|
|
397
|
+
}, {
|
|
398
|
+
key: "insensitiveFlag",
|
|
399
|
+
get: function get() {
|
|
400
|
+
return this.insensitive ? 'i' : '';
|
|
401
|
+
}
|
|
402
|
+
}, {
|
|
403
|
+
key: "value",
|
|
404
|
+
get: function get() {
|
|
405
|
+
return this._value;
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
/**
|
|
409
|
+
* Before 3.0, the value had to be set to an escaped value including any wrapped
|
|
410
|
+
* quote marks. In 3.0, the semantics of `Attribute.value` changed so that the value
|
|
411
|
+
* is unescaped during parsing and any quote marks are removed.
|
|
412
|
+
*
|
|
413
|
+
* Because the ambiguity of this semantic change, if you set `attr.value = newValue`,
|
|
414
|
+
* a deprecation warning is raised when the new value contains any characters that would
|
|
415
|
+
* require escaping (including if it contains wrapped quotes).
|
|
416
|
+
*
|
|
417
|
+
* Instead, you should call `attr.setValue(newValue, opts)` and pass options that describe
|
|
418
|
+
* how the new value is quoted.
|
|
419
|
+
*/
|
|
420
|
+
,
|
|
421
|
+
set: function set(v) {
|
|
422
|
+
if (this._constructed) {
|
|
423
|
+
var _unescapeValue2 = unescapeValue(v),
|
|
424
|
+
deprecatedUsage = _unescapeValue2.deprecatedUsage,
|
|
425
|
+
unescaped = _unescapeValue2.unescaped,
|
|
426
|
+
quoteMark = _unescapeValue2.quoteMark;
|
|
427
|
+
|
|
428
|
+
if (deprecatedUsage) {
|
|
429
|
+
warnOfDeprecatedValueAssignment();
|
|
430
|
+
}
|
|
431
|
+
if (unescaped === this._value && quoteMark === this._quoteMark) {
|
|
432
|
+
return;
|
|
433
|
+
}
|
|
434
|
+
this._value = unescaped;
|
|
435
|
+
this._quoteMark = quoteMark;
|
|
436
|
+
this._syncRawValue();
|
|
437
|
+
} else {
|
|
438
|
+
this._value = v;
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
}, {
|
|
442
|
+
key: "attribute",
|
|
443
|
+
get: function get() {
|
|
444
|
+
return this._attribute;
|
|
445
|
+
},
|
|
446
|
+
set: function set(name) {
|
|
447
|
+
this._handleEscapes("attribute", name);
|
|
448
|
+
this._attribute = name;
|
|
449
|
+
}
|
|
450
|
+
}]);
|
|
451
|
+
|
|
452
|
+
return Attribute;
|
|
453
|
+
}(_namespace2.default);
|
|
454
|
+
|
|
455
|
+
Attribute.NO_QUOTE = null;
|
|
456
|
+
Attribute.SINGLE_QUOTE = "'";
|
|
457
|
+
Attribute.DOUBLE_QUOTE = '"';
|
|
458
|
+
exports.default = Attribute;
|
|
459
|
+
|
|
460
|
+
|
|
461
|
+
var CSSESC_QUOTE_OPTIONS = (_CSSESC_QUOTE_OPTIONS = {
|
|
462
|
+
"'": { quotes: 'single', wrap: true },
|
|
463
|
+
'"': { quotes: 'double', wrap: true }
|
|
464
|
+
}, _CSSESC_QUOTE_OPTIONS[null] = { isIdentifier: true }, _CSSESC_QUOTE_OPTIONS);
|
|
465
|
+
|
|
466
|
+
function defaultAttrConcat(attrValue, attrSpaces) {
|
|
467
|
+
return "" + attrSpaces.before + attrValue + attrSpaces.after;
|
|
468
|
+
}
|