diff --git a/.config/main.config.js b/.config/main.config.js deleted file mode 100644 index 0c6e243..0000000 --- a/.config/main.config.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - input: 'src/wc-demo.js', - output: { - file: 'index.js', - format: 'esm' - } -}; diff --git a/.config/min.config.js b/.config/min.config.js deleted file mode 100644 index 1202985..0000000 --- a/.config/min.config.js +++ /dev/null @@ -1,10 +0,0 @@ -import { terser } from "rollup-plugin-terser"; - -export default { - input: 'src/wc-demo.js', - output: { - file: 'index.min.js', - format: 'esm' - }, - plugins: [terser()] -}; diff --git a/.npmignore b/.npmignore index 681e8f7..d81a148 100644 --- a/.npmignore +++ b/.npmignore @@ -1,4 +1,3 @@ -.config/ .github/ .vscode/ dev/ diff --git a/index.js b/index.js index f7f86cb..41cd9eb 100644 --- a/index.js +++ b/index.js @@ -1,805 +1,615 @@ -/* eslint-disable */ -/* ********************************************** - Begin prism-core.js -********************************************** */ - -let _self = {}; - -/** - * Prism: Lightweight, robust, elegant syntax highlighting - * MIT license http://www.opensource.org/licenses/mit-license.php/ - * @author Lea Verou http://lea.verou.me - */ - -let Prism = (function () { -// Private helper vars - let lang = /\blang(?:uage)?-([\w-]+)\b/i; - let uniqueId = 0; - - var _ = _self.Prism = { - manual: _self.Prism && _self.Prism.manual, - disableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler, - util: { - encode (tokens) { - if (tokens instanceof Token) { - return new Token(tokens.type, _.util.encode(tokens.content), tokens.alias); - } else if (_.util.type(tokens) === 'Array') { - return tokens.map(_.util.encode); - } else { - return tokens.replace(/&/g, '&').replace(/ text.length) { - // Something went terribly wrong, ABORT, ABORT! - return; - } - - if (str instanceof Token) { - continue; - } - - if (greedy && i != strarr.length - 1) { - pattern.lastIndex = pos; - var match = pattern.exec(text); - if (!match) { - break; - } - - var from = match.index + (lookbehind ? match[1].length : 0), - to = match.index + match[0].length, - k = i, - p = pos; - - for (var len = strarr.length; k < len && (p < to || (!strarr[k].type && !strarr[k - 1].greedy)); ++k) { - p += strarr[k].length; - // Move the index i to the element in strarr that is closest to from - if (from >= p) { - ++i; - pos = p; - } - } - - // If strarr[i] is a Token, then the match starts inside another Token, which is invalid - if (strarr[i] instanceof Token) { - continue; - } - - // Number of tokens to delete and replace with the new match - delNum = k - i; - str = text.slice(pos, p); - match.index -= pos; - } else { - pattern.lastIndex = 0; - - var match = pattern.exec(str), - delNum = 1; - } - - if (!match) { - if (oneshot) { - break; - } - - continue; - } - - if(lookbehind) { - lookbehindLength = match[1] ? match[1].length : 0; - } - - var from = match.index + lookbehindLength, - match = match[0].slice(lookbehindLength), - to = from + match.length, - before = str.slice(0, from), - after = str.slice(to); - - var args = [i, delNum]; - - if (before) { - ++i; - pos += before.length; - args.push(before); - } - - var wrapped = new Token(token, inside? _.tokenize(match, inside) : match, alias, match, greedy); - - args.push(wrapped); - - if (after) { - args.push(after); - } - - Array.prototype.splice.apply(strarr, args); - - if (delNum != 1) - _.matchGrammar(text, strarr, grammar, i, pos, true, token); - - if (oneshot) - break; - } - } - } - }, - - tokenize(text, grammar, language) { - var strarr = [text]; - - var rest = grammar.rest; - - if (rest) { - for (var token in rest) { - grammar[token] = rest[token]; - } - - delete grammar.rest; - } - - _.matchGrammar(text, strarr, grammar, 0, 0, false); - - return strarr; - }, - - hooks: { - all: {}, - - add (name, callback) { - var hooks = _.hooks.all; - - hooks[name] = hooks[name] || []; - - hooks[name].push(callback); - }, - - run (name, env) { - var callbacks = _.hooks.all[name]; - - if (!callbacks || !callbacks.length) { - return; - } - - for (var i=0, callback; callback = callbacks[i++];) { - callback(env); - } - }, - }, - }; - - var Token = _.Token = function (type, content, alias, matchedStr, greedy) { - this.type = type; - this.content = content; - this.alias = alias; - // Copy of the full string this token was created from - this.length = (matchedStr || '').length | 0; - this.greedy = !!greedy; - }; - - Token.stringify = function (o, language, parent) { - if (typeof o === 'string') { - return o; - } - - if (_.util.type(o) === 'Array') { - return o.map((element) => { - return Token.stringify(element, language, o); - }).join(''); - } - - let env = { - type: o.type, - content: Token.stringify(o.content, language, parent), - tag: 'span', - classes: ['token', o.type], - attributes: {}, - language, - parent, - }; - - if (o.alias) { - let aliases = _.util.type(o.alias) === 'Array' ? o.alias : [o.alias]; - Array.prototype.push.apply(env.classes, aliases); - } - - _.hooks.run('wrap', env); - - let attributes = Object.keys(env.attributes).map((name) => { - return name + '="' + (env.attributes[name] || '').replace(/"/g, '"') + '"'; - }).join(' '); - - return `<${ env.tag } class="${ env.classes.join(' ') }"${ attributes ? ' ' + attributes : '' }>${ env.content }`; - }; - - if (!_self.document) { - if (!_self.addEventListener) { - // in Node.js - return _self.Prism; - } - - if (!_.disableWorkerMessageHandler) { - // In worker - _self.addEventListener('message', (evt) => { - var message = JSON.parse(evt.data), - lang = message.language, - code = message.code, - immediateClose = message.immediateClose; - - _self.postMessage(_.highlight(code, _.languages[lang], lang)); - if (immediateClose) { - _self.close(); - } - }, false); - } - - return _self.Prism; +let __defineProperty = Object.defineProperty; +let __hasOwnProperty = Object.prototype.hasOwnProperty; +let __commonJS = (callback, module) => () => { + if (!module) { + module = {exports: {}}; + callback(module.exports, module); } + return module.exports; +}; +let __markAsModule = (target) => { + return __defineProperty(target, "__esModule", {value: true}); +}; +let __export = (target, all) => { + __markAsModule(target); + for (let name in all) + __defineProperty(target, name, {get: all[name], enumerable: true}); +}; +let __exportStar = (target, module) => { + __markAsModule(target); + if (typeof module === "object" || typeof module === "function") { + for (let key in module) + if (__hasOwnProperty.call(module, key) && !__hasOwnProperty.call(target, key) && key !== "default") + __defineProperty(target, key, {get: () => module[key], enumerable: true}); + } + return target; +}; +let __toModule = (module) => { + if (module && module.__esModule) + return module; + return __exportStar(__defineProperty({}, "default", {value: module, enumerable: true}), module); +}; - // Get current script and highlight - // let script = document.currentScript || [].slice.call(document.getElementsByTagName('script')).pop(); - - // if (script) { - // _.filename = script.src; - - // if (!_.manual && !script.hasAttribute('data-manual')) { - // if (document.readyState !== 'loading') { - // if (window.requestAnimationFrame) { - // window.requestAnimationFrame(_.highlightAll); - // } else { - // window.setTimeout(_.highlightAll, 16); - // } - // } else { - // document.addEventListener('DOMContentLoaded', _.highlightAll); - // } - // } - // } - - return _self.Prism; -}()); - -if (typeof module !== 'undefined' && module.exports) { - module.exports = Prism; -} - -// hack for components to work correctly in node.js -if (typeof global !== 'undefined') { - global.Prism = Prism; -} - - -/* ********************************************** - Begin prism-markup.js -********************************************** */ - -Prism.languages.markup = { - comment: //, - prolog: /<\?[\s\S]+?\?>/, - doctype: //i, - cdata: //i, - tag: { - pattern: /<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i, - greedy: true, - inside: { - tag: { - pattern: /^<\/?[^\s>\/]+/i, - inside: { - punctuation: /^<\/?/, - namespace: /^[^\s>\/:]+:/, +// node_modules/prism-es6/prism.js +var require_prism = __commonJS((exports, module) => { + __export(exports, { + default: () => prism_default + }); + let _self = {}; + let Prism2 = function() { + let lang = /\blang(?:uage)?-([\w-]+)\b/i; + let uniqueId = 0; + var _ = _self.Prism = { + manual: _self.Prism && _self.Prism.manual, + disableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler, + util: { + encode(tokens) { + if (tokens instanceof Token) { + return new Token(tokens.type, _.util.encode(tokens.content), tokens.alias); + } else if (_.util.type(tokens) === "Array") { + return tokens.map(_.util.encode); + } else { + return tokens.replace(/&/g, "&").replace(/=]+)/i, - inside: { - punctuation: [ - /^=/, - { - pattern: /(^|[^\\])["']/, - lookbehind: true, - }, - ], + type(o) { + return Object.prototype.toString.call(o).match(/\[object (\w+)\]/)[1]; + }, + objId(obj) { + if (!obj["__id"]) { + Object.defineProperty(obj, "__id", {value: ++uniqueId}); + } + return obj["__id"]; }, + clone(o, visited) { + var type = _.util.type(o); + visited = visited || {}; + switch (type) { + case "Object": + if (visited[_.util.objId(o)]) { + return visited[_.util.objId(o)]; + } + var clone = {}; + visited[_.util.objId(o)] = clone; + for (var key in o) { + if (o.hasOwnProperty(key)) { + clone[key] = _.util.clone(o[key], visited); + } + } + return clone; + case "Array": + if (visited[_.util.objId(o)]) { + return visited[_.util.objId(o)]; + } + var clone = []; + visited[_.util.objId(o)] = clone; + o.forEach(function(v, i) { + clone[i] = _.util.clone(v, visited); + }); + return clone; + } + return o; + } }, - punctuation: /\/?>/, - 'attr-name': { - pattern: /[^\s>\/]+/, - inside: { - namespace: /^[^\s>\/:]+:/, + languages: { + extend(id, redef) { + var lang2 = _.util.clone(_.languages[id]); + for (var key in redef) { + lang2[key] = redef[key]; + } + return lang2; + }, + insertBefore(inside, before, insert, root) { + root = root || _.languages; + var grammar = root[inside]; + if (arguments.length == 2) { + insert = arguments[1]; + for (var newToken in insert) { + if (insert.hasOwnProperty(newToken)) { + grammar[newToken] = insert[newToken]; + } + } + return grammar; + } + var ret = {}; + for (var token in grammar) { + if (grammar.hasOwnProperty(token)) { + if (token == before) { + for (var newToken in insert) { + if (insert.hasOwnProperty(newToken)) { + ret[newToken] = insert[newToken]; + } + } + } + ret[token] = grammar[token]; + } + } + _.languages.DFS(_.languages, function(key, value) { + if (value === root[inside] && key != inside) { + this[key] = ret; + } + }); + return root[inside] = ret; }, + DFS(o, callback, type, visited) { + visited = visited || {}; + for (var i in o) { + if (o.hasOwnProperty(i)) { + callback.call(o, i, o[i], type || i); + if (_.util.type(o[i]) === "Object" && !visited[_.util.objId(o[i])]) { + visited[_.util.objId(o[i])] = true; + _.languages.DFS(o[i], callback, null, visited); + } else if (_.util.type(o[i]) === "Array" && !visited[_.util.objId(o[i])]) { + visited[_.util.objId(o[i])] = true; + _.languages.DFS(o[i], callback, i, visited); + } + } + } + } }, - - }, - }, - entity: /&#?[\da-z]{1,8};/i, -}; - -Prism.languages.markup.tag.inside['attr-value'].inside.entity = Prism.languages.markup.entity; - -// Plugin to make entity title show the real entity, idea by Roman Komarov -Prism.hooks.add('wrap', (env) => { - - if (env.type === 'entity') { - env.attributes['title'] = env.content.replace(/&/, '&'); - } -}); - -Prism.languages.xml = Prism.languages.markup; -Prism.languages.html = Prism.languages.markup; -Prism.languages.mathml = Prism.languages.markup; -Prism.languages.svg = Prism.languages.markup; - - -/* ********************************************** - Begin prism-css.js -********************************************** */ - -Prism.languages.css = { - comment: /\/\*[\s\S]*?\*\//, - atrule: { - pattern: /@[\w-]+?.*?(?:;|(?=\s*\{))/i, - inside: { - rule: /@[\w-]+/, - // See rest below - }, - }, - url: /url\((?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|.*?)\)/i, - selector: /[^{}\s][^{};]*?(?=\s*\{)/, - string: { - pattern: /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, - greedy: true, - }, - property: /[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i, - important: /\B!important\b/i, - function: /[-a-z0-9]+(?=\()/i, - punctuation: /[(){};:]/, -}; - -Prism.languages.css.atrule.inside.rest = Prism.languages.css; - -if (Prism.languages.markup) { - Prism.languages.insertBefore('markup', 'tag', { - style: { - pattern: /()[\s\S]*?(?=<\/style>)/i, - lookbehind: true, - inside: Prism.languages.css, - alias: 'language-css', + plugins: {}, + highlightAll(async, callback) { + _.highlightAllUnder(document, async, callback); + }, + highlightAllUnder(container, async, callback) { + var env = { + callback, + selector: 'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code' + }; + _.hooks.run("before-highlightall", env); + var elements = env.elements || container.querySelectorAll(env.selector); + for (var i = 0, element; element = elements[i++]; ) { + _.highlightElement(element, async === true, env.callback); + } + }, + highlightElement(element, async, callback) { + var language, grammar, parent = element; + while (parent && !lang.test(parent.className)) { + parent = parent.parentNode; + } + if (parent) { + language = (parent.className.match(lang) || [, ""])[1].toLowerCase(); + grammar = _.languages[language]; + } + element.className = element.className.replace(lang, "").replace(/\s+/g, " ") + " language-" + language; + if (element.parentNode) { + parent = element.parentNode; + if (/pre/i.test(parent.nodeName)) { + parent.className = parent.className.replace(lang, "").replace(/\s+/g, " ") + " language-" + language; + } + } + var code = element.textContent; + var env = { + element, + language, + grammar, + code + }; + _.hooks.run("before-sanity-check", env); + if (!env.code || !env.grammar) { + if (env.code) { + _.hooks.run("before-highlight", env); + env.element.textContent = env.code; + _.hooks.run("after-highlight", env); + } + _.hooks.run("complete", env); + return; + } + _.hooks.run("before-highlight", env); + if (async && _self.Worker) { + var worker = new Worker(_.filename); + worker.onmessage = function(evt) { + env.highlightedCode = evt.data; + _.hooks.run("before-insert", env); + env.element.innerHTML = env.highlightedCode; + callback && callback.call(env.element); + _.hooks.run("after-highlight", env); + _.hooks.run("complete", env); + }; + worker.postMessage(JSON.stringify({ + language: env.language, + code: env.code, + immediateClose: true + })); + } else { + env.highlightedCode = _.highlight(env.code, env.grammar, env.language); + _.hooks.run("before-insert", env); + env.element.innerHTML = env.highlightedCode; + callback && callback.call(element); + _.hooks.run("after-highlight", env); + _.hooks.run("complete", env); + } + }, + highlight(text, grammar, language) { + var env = { + code: text, + grammar, + language + }; + _.hooks.run("before-tokenize", env); + env.tokens = _.tokenize(env.code, env.grammar); + _.hooks.run("after-tokenize", env); + return Token.stringify(_.util.encode(env.tokens), env.language); + }, + matchGrammar(text, strarr, grammar, index, startPos, oneshot, target) { + var Token2 = _.Token; + for (var token in grammar) { + if (!grammar.hasOwnProperty(token) || !grammar[token]) { + continue; + } + if (token == target) { + return; + } + var patterns = grammar[token]; + patterns = _.util.type(patterns) === "Array" ? patterns : [patterns]; + for (var j = 0; j < patterns.length; ++j) { + var pattern = patterns[j], inside = pattern.inside, lookbehind = !!pattern.lookbehind, greedy = !!pattern.greedy, lookbehindLength = 0, alias = pattern.alias; + if (greedy && !pattern.pattern.global) { + var flags = pattern.pattern.toString().match(/[imuy]*$/)[0]; + pattern.pattern = RegExp(pattern.pattern.source, flags + "g"); + } + pattern = pattern.pattern || pattern; + for (var i = index, pos = startPos; i < strarr.length; pos += strarr[i].length, ++i) { + var str = strarr[i]; + if (strarr.length > text.length) { + return; + } + if (str instanceof Token2) { + continue; + } + if (greedy && i != strarr.length - 1) { + pattern.lastIndex = pos; + var match = pattern.exec(text); + if (!match) { + break; + } + var from = match.index + (lookbehind ? match[1].length : 0), to = match.index + match[0].length, k = i, p = pos; + for (var len = strarr.length; k < len && (p < to || !strarr[k].type && !strarr[k - 1].greedy); ++k) { + p += strarr[k].length; + if (from >= p) { + ++i; + pos = p; + } + } + if (strarr[i] instanceof Token2) { + continue; + } + delNum = k - i; + str = text.slice(pos, p); + match.index -= pos; + } else { + pattern.lastIndex = 0; + var match = pattern.exec(str), delNum = 1; + } + if (!match) { + if (oneshot) { + break; + } + continue; + } + if (lookbehind) { + lookbehindLength = match[1] ? match[1].length : 0; + } + var from = match.index + lookbehindLength, match = match[0].slice(lookbehindLength), to = from + match.length, before = str.slice(0, from), after = str.slice(to); + var args = [i, delNum]; + if (before) { + ++i; + pos += before.length; + args.push(before); + } + var wrapped = new Token2(token, inside ? _.tokenize(match, inside) : match, alias, match, greedy); + args.push(wrapped); + if (after) { + args.push(after); + } + Array.prototype.splice.apply(strarr, args); + if (delNum != 1) + _.matchGrammar(text, strarr, grammar, i, pos, true, token); + if (oneshot) + break; + } + } + } + }, + tokenize(text, grammar, language) { + var strarr = [text]; + var rest = grammar.rest; + if (rest) { + for (var token in rest) { + grammar[token] = rest[token]; + } + delete grammar.rest; + } + _.matchGrammar(text, strarr, grammar, 0, 0, false); + return strarr; + }, + hooks: { + all: {}, + add(name, callback) { + var hooks = _.hooks.all; + hooks[name] = hooks[name] || []; + hooks[name].push(callback); + }, + run(name, env) { + var callbacks = _.hooks.all[name]; + if (!callbacks || !callbacks.length) { + return; + } + for (var i = 0, callback; callback = callbacks[i++]; ) { + callback(env); + } + } + } + }; + var Token = _.Token = function(type, content, alias, matchedStr, greedy) { + this.type = type; + this.content = content; + this.alias = alias; + this.length = (matchedStr || "").length | 0; + this.greedy = !!greedy; + }; + Token.stringify = function(o, language, parent) { + if (typeof o === "string") { + return o; + } + if (_.util.type(o) === "Array") { + return o.map((element) => { + return Token.stringify(element, language, o); + }).join(""); + } + let env = { + type: o.type, + content: Token.stringify(o.content, language, parent), + tag: "span", + classes: ["token", o.type], + attributes: {}, + language, + parent + }; + if (o.alias) { + let aliases = _.util.type(o.alias) === "Array" ? o.alias : [o.alias]; + Array.prototype.push.apply(env.classes, aliases); + } + _.hooks.run("wrap", env); + let attributes = Object.keys(env.attributes).map((name) => { + return name + '="' + (env.attributes[name] || "").replace(/"/g, """) + '"'; + }).join(" "); + return `<${env.tag} class="${env.classes.join(" ")}"${attributes ? " " + attributes : ""}>${env.content}`; + }; + if (!_self.document) { + if (!_self.addEventListener) { + return _self.Prism; + } + if (!_.disableWorkerMessageHandler) { + _self.addEventListener("message", (evt) => { + var message = JSON.parse(evt.data), lang2 = message.language, code = message.code, immediateClose = message.immediateClose; + _self.postMessage(_.highlight(code, _.languages[lang2], lang2)); + if (immediateClose) { + _self.close(); + } + }, false); + } + return _self.Prism; + } + return _self.Prism; + }(); + if (typeof module !== "undefined" && module.exports) { + module.exports = Prism2; + } + if (typeof global !== "undefined") { + global.Prism = Prism2; + } + Prism2.languages.markup = { + comment: //, + prolog: /<\?[\s\S]+?\?>/, + doctype: //i, + cdata: //i, + tag: { + pattern: /<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i, greedy: true, - }, - }); - - Prism.languages.insertBefore('inside', 'attr-value', { - 'style-attr': { - pattern: /\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i, inside: { - 'attr-name': { - pattern: /^\s*style/i, - inside: Prism.languages.markup.tag.inside, + tag: { + pattern: /^<\/?[^\s>\/]+/i, + inside: { + punctuation: /^<\/?/, + namespace: /^[^\s>\/:]+:/ + } }, - punctuation: /^\s*=\s*['"]|['"]\s*$/, - 'attr-value': { - pattern: /.+/i, - inside: Prism.languages.css, + "attr-value": { + pattern: /=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/i, + inside: { + punctuation: [ + /^=/, + { + pattern: /(^|[^\\])["']/, + lookbehind: true + } + ] + } }, - }, - alias: 'language-css', - }, - }, Prism.languages.markup.tag); -} - -/* ********************************************** - Begin prism-clike.js -********************************************** */ - -Prism.languages.clike = { - comment: [ - { - pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/, - lookbehind: true, + punctuation: /\/?>/, + "attr-name": { + pattern: /[^\s>\/]+/, + inside: { + namespace: /^[^\s>\/:]+:/ + } + } + } }, - { - pattern: /(^|[^\\:])\/\/.*/, - lookbehind: true, - greedy: true, + entity: /&#?[\da-z]{1,8};/i + }; + Prism2.languages.markup.tag.inside["attr-value"].inside.entity = Prism2.languages.markup.entity; + Prism2.hooks.add("wrap", (env) => { + if (env.type === "entity") { + env.attributes["title"] = env.content.replace(/&/, "&"); + } + }); + Prism2.languages.xml = Prism2.languages.markup; + Prism2.languages.html = Prism2.languages.markup; + Prism2.languages.mathml = Prism2.languages.markup; + Prism2.languages.svg = Prism2.languages.markup; + Prism2.languages.css = { + comment: /\/\*[\s\S]*?\*\//, + atrule: { + pattern: /@[\w-]+?.*?(?:;|(?=\s*\{))/i, + inside: { + rule: /@[\w-]+/ + } }, - ], - string: { - pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, - greedy: true, - }, - 'class-name': { - pattern: /((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i, - lookbehind: true, - inside: { - punctuation: /[.\\]/, + url: /url\((?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|.*?)\)/i, + selector: /[^{}\s][^{};]*?(?=\s*\{)/, + string: { + pattern: /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, + greedy: true }, - }, - keyword: /\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/, - boolean: /\b(?:true|false)\b/, - function: /[a-z0-9_]+(?=\()/i, - number: /\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i, - operator: /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/, - punctuation: /[{}[\];(),.:]/, -}; - - -/* ********************************************** - Begin prism-javascript.js -********************************************** */ - -Prism.languages.javascript = Prism.languages.extend('clike', { - keyword: /\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/, - number: /\b(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+|NaN|Infinity)\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/, - // Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444) - function: /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*\()/i, - operator: /-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/, -}); - -Prism.languages.insertBefore('javascript', 'keyword', { - regex: { - pattern: /((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[[^\]\r\n]+]|\\.|[^/\\\[\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})\]]))/, - lookbehind: true, - greedy: true, - }, - // This must be declared before keyword because we use "function" inside the look-forward - 'function-variable': { - pattern: /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=\s*(?:function\b|(?:\([^()]*\)|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i, - alias: 'function', - }, - constant: /\b[A-Z][A-Z\d_]*\b/, -}); - -Prism.languages.insertBefore('javascript', 'string', { - 'template-string': { - pattern: /`(?:\\[\s\S]|\${[^}]+}|[^\\`])*`/, - greedy: true, - inside: { - interpolation: { - pattern: /\${[^}]+}/, + property: /[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i, + important: /\B!important\b/i, + function: /[-a-z0-9]+(?=\()/i, + punctuation: /[(){};:]/ + }; + Prism2.languages.css.atrule.inside.rest = Prism2.languages.css; + if (Prism2.languages.markup) { + Prism2.languages.insertBefore("markup", "tag", { + style: { + pattern: /()[\s\S]*?(?=<\/style>)/i, + lookbehind: true, + inside: Prism2.languages.css, + alias: "language-css", + greedy: true + } + }); + Prism2.languages.insertBefore("inside", "attr-value", { + "style-attr": { + pattern: /\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i, inside: { - 'interpolation-punctuation': { - pattern: /^\${|}$/, - alias: 'punctuation', + "attr-name": { + pattern: /^\s*style/i, + inside: Prism2.languages.markup.tag.inside }, - rest: null, // See below + punctuation: /^\s*=\s*['"]|['"]\s*$/, + "attr-value": { + pattern: /.+/i, + inside: Prism2.languages.css + } }, + alias: "language-css" + } + }, Prism2.languages.markup.tag); + } + Prism2.languages.clike = { + comment: [ + { + pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/, + lookbehind: true }, - string: /[\s\S]+/, + { + pattern: /(^|[^\\:])\/\/.*/, + lookbehind: true, + greedy: true + } + ], + string: { + pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, + greedy: true }, - }, -}); -Prism.languages.javascript['template-string'].inside.interpolation.inside.rest = Prism.languages.javascript; - -if (Prism.languages.markup) { - Prism.languages.insertBefore('markup', 'tag', { - script: { - pattern: /()[\s\S]*?(?=<\/script>)/i, + "class-name": { + pattern: /((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i, lookbehind: true, - inside: Prism.languages.javascript, - alias: 'language-javascript', - greedy: true, + inside: { + punctuation: /[.\\]/ + } }, + keyword: /\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/, + boolean: /\b(?:true|false)\b/, + function: /[a-z0-9_]+(?=\()/i, + number: /\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i, + operator: /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/, + punctuation: /[{}[\];(),.:]/ + }; + Prism2.languages.javascript = Prism2.languages.extend("clike", { + keyword: /\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/, + number: /\b(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+|NaN|Infinity)\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/, + function: /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*\()/i, + operator: /-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/ }); -} - -Prism.languages.js = Prism.languages.javascript; - -/* eslint no-undef: 0 */ + Prism2.languages.insertBefore("javascript", "keyword", { + regex: { + pattern: /((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[[^\]\r\n]+]|\\.|[^/\\\[\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})\]]))/, + lookbehind: true, + greedy: true + }, + "function-variable": { + pattern: /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=\s*(?:function\b|(?:\([^()]*\)|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i, + alias: "function" + }, + constant: /\b[A-Z][A-Z\d_]*\b/ + }); + Prism2.languages.insertBefore("javascript", "string", { + "template-string": { + pattern: /`(?:\\[\s\S]|\${[^}]+}|[^\\`])*`/, + greedy: true, + inside: { + interpolation: { + pattern: /\${[^}]+}/, + inside: { + "interpolation-punctuation": { + pattern: /^\${|}$/, + alias: "punctuation" + }, + rest: null + } + }, + string: /[\s\S]+/ + } + } + }); + Prism2.languages.javascript["template-string"].inside.interpolation.inside.rest = Prism2.languages.javascript; + if (Prism2.languages.markup) { + Prism2.languages.insertBefore("markup", "tag", { + script: { + pattern: /()[\s\S]*?(?=<\/script>)/i, + lookbehind: true, + inside: Prism2.languages.javascript, + alias: "language-javascript", + greedy: true + } + }); + } + Prism2.languages.js = Prism2.languages.javascript; + const prism_default = Prism2; +}); +// src/source-element.js +const prism = __toModule(require_prism()); class SourceElement extends HTMLElement { - attributeChangedCallback (name, oldValue, newValue) { + attributeChangedCallback(name, oldValue, newValue) { if (oldValue !== newValue) { this[name] = newValue; } } - - get source () { return this._source } - set source (value) { + get source() { + return this._source; + } + set source(value) { this._source = value; this.setSource(); } - - constructor () { + constructor() { super(); - const template = document.createElement('template'); + const template = document.createElement("template"); template.innerHTML = SourceElement.default(); - this.attachShadow({ mode: 'open' }); + this.attachShadow({mode: "open"}); this.shadowRoot.appendChild(document.importNode(template.content, true)); - this.sourceElement = this.shadowRoot.getElementById('source'); + this.sourceElement = this.shadowRoot.getElementById("source"); } - - setSource () { + setSource() { let escapedSource = this._source; - escapedSource = escapedSource.replace(//g, '>'); + escapedSource = escapedSource.replace(//g, ">"); this.sourceElement.innerHTML = escapedSource; - Prism.highlightElement(this.sourceElement); + prism.default.highlightElement(this.sourceElement); } - - static default () { + static default() { return ` -
` +
`; } } +customElements.define("source-element", SourceElement); -customElements.define('source-element', SourceElement); - -/* eslint no-undef: 0 */ - +// src/wc-demo.js class WCDemo extends HTMLElement { - static get observedAttributes () { - return ['title', 'link', 'desc', 'src'] + static get observedAttributes() { + return ["title", "link", "desc", "src"]; } - - attributeChangedCallback (name, oldValue, newValue) { - if (!this.__initialized) { return } + attributeChangedCallback(name, oldValue, newValue) { + if (!this.__initialized) { + return; + } if (oldValue !== newValue) { this[name] = newValue; } } - - get title () { return this.getAttribute('title') } - set title (value) { - this.setAttribute('title', value); + get title() { + return this.getAttribute("title"); + } + set title(value) { + this.setAttribute("title", value); this.setTitle(); } - - get link () { return this.getAttribute('link') } - set link (value) { - this.setAttribute('link', value); + get link() { + return this.getAttribute("link"); + } + set link(value) { + this.setAttribute("link", value); this.setLink(); } - - get desc () { return this.getAttribute('desc') } - set desc (value) { - this.setAttribute('desc', value); + get desc() { + return this.getAttribute("desc"); + } + set desc(value) { + this.setAttribute("desc", value); this.setDescription(); } - - get src () { return this.getAttribute('src') } - set src (value) { - this.setAttribute('src', value); + get src() { + return this.getAttribute("src"); + } + set src(value) { + this.setAttribute("src", value); this.setSrc(); } - - constructor () { + constructor() { super(); - const template = document.createElement('template'); + const template = document.createElement("template"); template.innerHTML = WCDemo.template(); this.appendChild(template.content.cloneNode(true)); - this.__initialized = null; - this.titleElement = this.querySelector('#title'); - this.linkElement = this.querySelector('#link'); - this.descElement = this.querySelector('#description'); - this.sourceElement = this.querySelector('#source'); - this.outputElement = this.querySelector('#output'); + this.titleElement = this.querySelector("#title"); + this.linkElement = this.querySelector("#link"); + this.descElement = this.querySelector("#description"); + this.sourceElement = this.querySelector("#source"); + this.outputElement = this.querySelector("#output"); } - - async connectedCallback () { - if (this.hasAttribute('link')) { + async connectedCallback() { + if (this.hasAttribute("link")) { this.setLink(); } - - if (this.hasAttribute('desc')) { + if (this.hasAttribute("desc")) { this.setDescription(); } - - if (this.hasAttribute('title')) { + if (this.hasAttribute("title")) { this.setTitle(); } - - if (this.hasAttribute('src')) { + if (this.hasAttribute("src")) { this.setSrc(); } - this.__initialized = true; } - - setTitle () { - this.titleElement.innerText = this.getAttribute('title'); + setTitle() { + this.titleElement.innerText = this.getAttribute("title"); } - - setLink () { - this.linkElement.href = this.getAttribute('link'); + setLink() { + this.linkElement.href = this.getAttribute("link"); } - - setDescription () { - this.descElement.innerText = this.getAttribute('desc'); + setDescription() { + this.descElement.innerText = this.getAttribute("desc"); } - - async setSrc () { - const src = this.getAttribute('src'); + async setSrc() { + const src = this.getAttribute("src"); this.source = await this.fetchSrc(src); this.sourceElement.source = this.source; this.outputElement.innerHTML = this.source; } - - async fetchSrc (src) { + async fetchSrc(src) { const response = await fetch(src); - return response.text() + return response.text(); } - - static template () { + static template() { return ` \n
'}}customElements.define("source-element",n);class a extends HTMLElement{static get observedAttributes(){return["title","link","desc","src"]}attributeChangedCallback(e,t,n){this.__initialized&&t!==n&&(this[e]=n)}get title(){return this.getAttribute("title")}set title(e){this.setAttribute("title",e),this.setTitle()}get link(){return this.getAttribute("link")}set link(e){this.setAttribute("link",e),this.setLink()}get desc(){return this.getAttribute("desc")}set desc(e){this.setAttribute("desc",e),this.setDescription()}get src(){return this.getAttribute("src")}set src(e){this.setAttribute("src",e),this.setSrc()}constructor(){super();const e=document.createElement("template");e.innerHTML=a.template(),this.appendChild(e.content.cloneNode(!0)),this.__initialized=null,this.titleElement=this.querySelector("#title"),this.linkElement=this.querySelector("#link"),this.descElement=this.querySelector("#description"),this.sourceElement=this.querySelector("#source"),this.outputElement=this.querySelector("#output")}async connectedCallback(){this.hasAttribute("link")&&this.setLink(),this.hasAttribute("desc")&&this.setDescription(),this.hasAttribute("title")&&this.setTitle(),this.hasAttribute("src")&&this.setSrc(),this.__initialized=!0}setTitle(){this.titleElement.innerText=this.getAttribute("title")}setLink(){this.linkElement.href=this.getAttribute("link")}setDescription(){this.descElement.innerText=this.getAttribute("desc")}async setSrc(){const e=this.getAttribute("src");this.source=await this.fetchSrc(e),this.sourceElement.source=this.source,this.outputElement.innerHTML=this.source}async fetchSrc(e){return(await fetch(e)).text()}static template(){return'\n \n\n \n
\n
\n

Description

\n

\n
\n

Usage

\n \n
\n

Output

\n
\n
\n
\n '}}customElements.define("wc-demo",a);export{a as WCDemo}; +let x=Object.defineProperty,K=Object.prototype.hasOwnProperty,Q=(c,f)=>()=>(f||(f={exports:{}},c(f.exports,f)),f.exports),L=c=>x(c,"__esModule",{value:!0}),R=(c,f)=>{L(c);for(let l in f)x(c,l,{get:f[l],enumerable:!0})},S=(c,f)=>{L(c);if(typeof f==="object"||typeof f==="function")for(let l in f)K.call(f,l)&&!K.call(c,l)&&l!=="default"&&x(c,l,{get:()=>f[l],enumerable:!0});return c},T=c=>c&&c.__esModule?c:S(x({},"default",{value:c,enumerable:!0}),c);var I=Q((U,y)=>{R(U,{default:()=>l});let c={},f=function(){let r=/\blang(?:uage)?-([\w-]+)\b/i,V=0;var d=c.Prism={manual:c.Prism&&c.Prism.manual,disableWorkerMessageHandler:c.Prism&&c.Prism.disableWorkerMessageHandler,util:{encode(a){return a instanceof t?new t(a.type,d.util.encode(a.content),a.alias):d.util.type(a)==="Array"?a.map(d.util.encode):a.replace(/&/g,"&").replace(/a.length)return;if(v instanceof i)continue;if(D&&p!=e.length-1){m.lastIndex=s;var k=m.exec(a);if(!k)break;for(var z=k.index+(N?k[1].length:0),F=k.index+k[0].length,u=p,w=s,Y=e.length;u=w&&(++p,s=w);if(e[p]instanceof i)continue;G=u-p,v=a.slice(s,w),k.index-=s}else{m.lastIndex=0;var k=m.exec(v),G=1}if(!k){if(j)break;continue}N&&(E=k[1]?k[1].length:0);var z=k.index+E,k=k[0].slice(E),F=z+k.length,H=v.slice(0,z),O=v.slice(F),A=[p,G];H&&(++p,s+=H.length,A.push(H));var Z=new i(o,M?d.tokenize(k,M):k,W,k,D);A.push(Z),O&&A.push(O),Array.prototype.splice.apply(e,A),G!=1&&d.matchGrammar(a,e,g,p,s,!0,o);if(j)break}}}},tokenize(a,e,g){var b=[a],h=e.rest;if(h){for(var j in h)e[j]=h[j];delete e.rest}return d.matchGrammar(a,b,e,0,0,!1),b},hooks:{all:{},add(a,e){var g=d.hooks.all;g[a]=g[a]||[],g[a].push(e)},run(a,e){var g=d.hooks.all[a];if(!g||!g.length)return;for(var b=0,h;h=g[b++];)h(e)}}},t=d.Token=function(a,e,g,b,h){this.type=a,this.content=e,this.alias=g,this.length=(b||"").length|0,this.greedy=!!h};return t.stringify=function(a,e,g){if(typeof a==="string")return a;if(d.util.type(a)==="Array")return a.map(j=>t.stringify(j,e,a)).join("");let b={type:a.type,content:t.stringify(a.content,e,g),tag:"span",classes:["token",a.type],attributes:{},language:e,parent:g};if(a.alias){let j=d.util.type(a.alias)==="Array"?a.alias:[a.alias];Array.prototype.push.apply(b.classes,j)}d.hooks.run("wrap",b);let h=Object.keys(b.attributes).map(j=>j+'="'+(b.attributes[j]||"").replace(/"/g,""")+'"').join(" ");return`<${b.tag} class="${b.classes.join(" ")}"${h?" "+h:""}>${b.content}`},c.document?c.Prism:c.addEventListener?(d.disableWorkerMessageHandler||c.addEventListener("message",a=>{var e=JSON.parse(a.data),g=e.language,b=e.code,h=e.immediateClose;c.postMessage(d.highlight(b,d.languages[g],g)),h&&c.close()},!1),c.Prism):c.Prism}();typeof y!=="undefined"&&y.exports&&(y.exports=f);typeof global!=="undefined"&&(global.Prism=f);f.languages.markup={comment://,prolog:/<\?[\s\S]+?\?>/,doctype://i,cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/i,inside:{punctuation:[/^=/,{pattern:/(^|[^\\])["']/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i};f.languages.markup.tag.inside["attr-value"].inside.entity=f.languages.markup.entity;f.hooks.add("wrap",r=>{r.type==="entity"&&(r.attributes.title=r.content.replace(/&/,"&"))});f.languages.xml=f.languages.markup;f.languages.html=f.languages.markup;f.languages.mathml=f.languages.markup;f.languages.svg=f.languages.markup;f.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-]+?.*?(?:;|(?=\s*\{))/i,inside:{rule:/@[\w-]+/}},url:/url\((?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,selector:/[^{}\s][^{};]*?(?=\s*\{)/,string:{pattern:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},property:/[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i,important:/\B!important\b/i,function:/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:]/};f.languages.css.atrule.inside.rest=f.languages.css;f.languages.markup&&(f.languages.insertBefore("markup","tag",{style:{pattern:/()[\s\S]*?(?=<\/style>)/i,lookbehind:!0,inside:f.languages.css,alias:"language-css",greedy:!0}}),f.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:f.languages.markup.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:f.languages.css}},alias:"language-css"}},f.languages.markup.tag));f.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/[a-z0-9_]+(?=\()/i,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/};f.languages.javascript=f.languages.extend("clike",{keyword:/\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/,number:/\b(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+|NaN|Infinity)\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/,function:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*\()/i,operator:/-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/});f.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[[^\]\r\n]+]|\\.|[^/\\\[\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})\]]))/,lookbehind:!0,greedy:!0},"function-variable":{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=\s*(?:function\b|(?:\([^()]*\)|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i,alias:"function"},constant:/\b[A-Z][A-Z\d_]*\b/});f.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\[\s\S]|\${[^}]+}|[^\\`])*`/,greedy:!0,inside:{interpolation:{pattern:/\${[^}]+}/,inside:{"interpolation-punctuation":{pattern:/^\${|}$/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}}});f.languages.javascript["template-string"].inside.interpolation.inside.rest=f.languages.javascript;f.languages.markup&&f.languages.insertBefore("markup","tag",{script:{pattern:/()[\s\S]*?(?=<\/script>)/i,lookbehind:!0,inside:f.languages.javascript,alias:"language-javascript",greedy:!0}});f.languages.js=f.languages.javascript;const l=f});const _=T(I());class J extends HTMLElement{attributeChangedCallback(c,f,l){f!==l&&(this[c]=l)}get source(){return this._source}set source(c){this._source=c,this.setSource()}constructor(){super();const c=document.createElement("template");c.innerHTML=J.default(),this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(document.importNode(c.content,!0)),this.sourceElement=this.shadowRoot.getElementById("source")}setSource(){let c=this._source;c=c.replace(//g,">"),this.sourceElement.innerHTML=c,_.default.highlightElement(this.sourceElement)}static default(){return` + +
`}}customElements.define("source-element",J);class B extends HTMLElement{static get observedAttributes(){return["title","link","desc","src"]}attributeChangedCallback(c,f,l){if(!this.__initialized)return;f!==l&&(this[c]=l)}get title(){return this.getAttribute("title")}set title(c){this.setAttribute("title",c),this.setTitle()}get link(){return this.getAttribute("link")}set link(c){this.setAttribute("link",c),this.setLink()}get desc(){return this.getAttribute("desc")}set desc(c){this.setAttribute("desc",c),this.setDescription()}get src(){return this.getAttribute("src")}set src(c){this.setAttribute("src",c),this.setSrc()}constructor(){super();const c=document.createElement("template");c.innerHTML=B.template(),this.appendChild(c.content.cloneNode(!0)),this.__initialized=null,this.titleElement=this.querySelector("#title"),this.linkElement=this.querySelector("#link"),this.descElement=this.querySelector("#description"),this.sourceElement=this.querySelector("#source"),this.outputElement=this.querySelector("#output")}async connectedCallback(){this.hasAttribute("link")&&this.setLink(),this.hasAttribute("desc")&&this.setDescription(),this.hasAttribute("title")&&this.setTitle(),this.hasAttribute("src")&&this.setSrc(),this.__initialized=!0}setTitle(){this.titleElement.innerText=this.getAttribute("title")}setLink(){this.linkElement.href=this.getAttribute("link")}setDescription(){this.descElement.innerText=this.getAttribute("desc")}async setSrc(){const c=this.getAttribute("src");this.source=await this.fetchSrc(c),this.sourceElement.source=this.source,this.outputElement.innerHTML=this.source}async fetchSrc(c){const f=await fetch(c);return f.text()}static template(){return` + + + +
+
+

Description

+

+
+

Usage

+ +
+

Output

+
+
+
+ `}}customElements.define("wc-demo",B);export{B as WCDemo}; diff --git a/package.json b/package.json index 29dbde8..36a2b2e 100644 --- a/package.json +++ b/package.json @@ -14,17 +14,16 @@ "scripts": { "start": "npx live-server --no-browser --port=5500 --open=dev", "lint": "esmtk lint", - "build": "npm run build:main && npm run build:min", - "build:main": "npx rollup --config .config/main.config.js", - "build:min": "npx rollup --config .config/min.config.js", + "build": "npm run bundle && npm run minify", + "bundle": "esmtk bundle src/wc-demo.js index.js", + "minify": "esmtk minify src/wc-demo.js index.min.js", "package": "npx rimraf package && npm pack | tail -n 1 | xargs tar -xf", "preversion": "npm run lint", "postversion": "git push --follow-tags" }, "devDependencies": { - "esmtk": "^0.1.1", - "prism-es6": "^1.2.0", - "rollup-plugin-terser": "^5.2.0" + "esmtk": "^0.4.0", + "prism-es6": "^1.2.0" }, "standard": { "ignore": [