From 26105034da4fcce7ac883c899d781f016559310d Mon Sep 17 00:00:00 2001 From: ruki Date: Thu, 8 Nov 2018 00:38:48 +0800 Subject: switch to vuepress --- .../vue-style-loader/lib/addStylesClient.js | 222 +++++++++++++++++++++ .../vue-style-loader/lib/addStylesServer.js | 80 ++++++++ .../vue-style-loader/lib/addStylesShadow.js | 70 +++++++ node_modules/vue-style-loader/lib/listToStyles.js | 27 +++ 4 files changed, 399 insertions(+) create mode 100644 node_modules/vue-style-loader/lib/addStylesClient.js create mode 100644 node_modules/vue-style-loader/lib/addStylesServer.js create mode 100644 node_modules/vue-style-loader/lib/addStylesShadow.js create mode 100644 node_modules/vue-style-loader/lib/listToStyles.js (limited to 'node_modules/vue-style-loader/lib') diff --git a/node_modules/vue-style-loader/lib/addStylesClient.js b/node_modules/vue-style-loader/lib/addStylesClient.js new file mode 100644 index 00000000..920b00bb --- /dev/null +++ b/node_modules/vue-style-loader/lib/addStylesClient.js @@ -0,0 +1,222 @@ +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra + Modified by Evan You @yyx990803 +*/ + +import listToStyles from './listToStyles' + +var hasDocument = typeof document !== 'undefined' + +if (typeof DEBUG !== 'undefined' && DEBUG) { + if (!hasDocument) { + throw new Error( + 'vue-style-loader cannot be used in a non-browser environment. ' + + "Use { target: 'node' } in your Webpack config to indicate a server-rendering environment." + ) } +} + +/* +type StyleObject = { + id: number; + parts: Array +} + +type StyleObjectPart = { + css: string; + media: string; + sourceMap: ?string +} +*/ + +var stylesInDom = {/* + [id: number]: { + id: number, + refs: number, + parts: Array<(obj?: StyleObjectPart) => void> + } +*/} + +var head = hasDocument && (document.head || document.getElementsByTagName('head')[0]) +var singletonElement = null +var singletonCounter = 0 +var isProduction = false +var noop = function () {} +var options = null +var ssrIdKey = 'data-vue-ssr-id' + +// Force single-tag solution on IE6-9, which has a hard limit on the # of ' + } + return css +} diff --git a/node_modules/vue-style-loader/lib/addStylesShadow.js b/node_modules/vue-style-loader/lib/addStylesShadow.js new file mode 100644 index 00000000..72947108 --- /dev/null +++ b/node_modules/vue-style-loader/lib/addStylesShadow.js @@ -0,0 +1,70 @@ +import listToStyles from './listToStyles' + +export default function addStylesToShadowDOM (parentId, list, shadowRoot) { + var styles = listToStyles(parentId, list) + addStyles(styles, shadowRoot) +} + +/* +type StyleObject = { + id: number; + parts: Array +} + +type StyleObjectPart = { + css: string; + media: string; + sourceMap: ?string +} +*/ + +function addStyles (styles /* Array */, shadowRoot) { + const injectedStyles = + shadowRoot._injectedStyles || + (shadowRoot._injectedStyles = {}) + for (var i = 0; i < styles.length; i++) { + var item = styles[i] + var style = injectedStyles[item.id] + if (!style) { + for (var j = 0; j < item.parts.length; j++) { + addStyle(item.parts[j], shadowRoot) + } + injectedStyles[item.id] = true + } + } +} + +function createStyleElement (shadowRoot) { + var styleElement = document.createElement('style') + styleElement.type = 'text/css' + shadowRoot.appendChild(styleElement) + return styleElement +} + +function addStyle (obj /* StyleObjectPart */, shadowRoot) { + var styleElement = createStyleElement(shadowRoot) + var css = obj.css + var media = obj.media + var sourceMap = obj.sourceMap + + if (media) { + styleElement.setAttribute('media', media) + } + + if (sourceMap) { + // https://developer.chrome.com/devtools/docs/javascript-debugging + // this makes source maps inside style tags work properly in Chrome + css += '\n/*# sourceURL=' + sourceMap.sources[0] + ' */' + // http://stackoverflow.com/a/26603875 + css += '\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */' + } + + if (styleElement.styleSheet) { + styleElement.styleSheet.cssText = css + } else { + while (styleElement.firstChild) { + styleElement.removeChild(styleElement.firstChild) + } + styleElement.appendChild(document.createTextNode(css)) + } +} diff --git a/node_modules/vue-style-loader/lib/listToStyles.js b/node_modules/vue-style-loader/lib/listToStyles.js new file mode 100644 index 00000000..bc86bb40 --- /dev/null +++ b/node_modules/vue-style-loader/lib/listToStyles.js @@ -0,0 +1,27 @@ +/** + * Translates the list format produced by css-loader into something + * easier to manipulate. + */ +export default function listToStyles (parentId, list) { + var styles = [] + var newStyles = {} + for (var i = 0; i < list.length; i++) { + var item = list[i] + var id = item[0] + var css = item[1] + var media = item[2] + var sourceMap = item[3] + var part = { + id: parentId + ':' + i, + css: css, + media: media, + sourceMap: sourceMap + } + if (!newStyles[id]) { + styles.push(newStyles[id] = { id: id, parts: [part] }) + } else { + newStyles[id].parts.push(part) + } + } + return styles +} -- cgit v1.2.3