Skip to content

Commit

Permalink
update polyfill and demo
Browse files Browse the repository at this point in the history
  • Loading branch information
Allenice committed Sep 15, 2018
1 parent 7d34461 commit 5405252
Show file tree
Hide file tree
Showing 9 changed files with 230 additions and 85 deletions.
2 changes: 1 addition & 1 deletion demo/index.html
@@ -1 +1 @@
<!DOCTYPE html><html><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=icon href=/vue-svgicon/favicon.ico><title>vue-svgicon</title><link href=/vue-svgicon/js/50d1.6b40a290.js rel=prefetch><link href=/vue-svgicon/css/chunk-vendors.8de836b6.css rel=preload as=style><link href=/vue-svgicon/css/style.5229cc21.css rel=preload as=style><link href=/vue-svgicon/js/app.fd7178a9.js rel=preload as=script><link href=/vue-svgicon/js/chunk-vendors.2d7fcd0c.js rel=preload as=script><link href=/vue-svgicon/js/style.d457e470.js rel=preload as=script><link href=/vue-svgicon/css/chunk-vendors.8de836b6.css rel=stylesheet><link href=/vue-svgicon/css/style.5229cc21.css rel=stylesheet></head><body><noscript><strong>We're sorry but vue-svgicon doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script src=/vue-svgicon/js/chunk-vendors.2d7fcd0c.js></script><script src=/vue-svgicon/js/app.fd7178a9.js></script><script src=/vue-svgicon/js/style.d457e470.js></script></body></html>
<!DOCTYPE html><html><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=icon href=/vue-svgicon/favicon.ico><title>vue-svgicon</title><link href=/vue-svgicon/js/50d1.6b40a290.js rel=prefetch><link href=/vue-svgicon/css/chunk-vendors.8de836b6.css rel=preload as=style><link href=/vue-svgicon/css/style.5229cc21.css rel=preload as=style><link href=/vue-svgicon/js/app.0e520ceb.js rel=preload as=script><link href=/vue-svgicon/js/chunk-vendors.2d7fcd0c.js rel=preload as=script><link href=/vue-svgicon/js/style.d457e470.js rel=preload as=script><link href=/vue-svgicon/css/chunk-vendors.8de836b6.css rel=stylesheet><link href=/vue-svgicon/css/style.5229cc21.css rel=stylesheet></head><body><noscript><strong>We're sorry but vue-svgicon doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script src=/vue-svgicon/js/chunk-vendors.2d7fcd0c.js></script><script src=/vue-svgicon/js/app.0e520ceb.js></script><script src=/vue-svgicon/js/style.d457e470.js></script></body></html>
12 changes: 12 additions & 0 deletions demo/js/app.0e520ceb.js

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions demo/js/app.0e520ceb.js.map

Large diffs are not rendered by default.

2 changes: 0 additions & 2 deletions demo/js/app.fd7178a9.js

This file was deleted.

1 change: 0 additions & 1 deletion demo/js/app.fd7178a9.js.map

This file was deleted.

125 changes: 124 additions & 1 deletion dist/polyfill.js
@@ -1 +1,124 @@
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.VueSvgIconPolyfill=t():e.VueSvgIconPolyfill=t()}(window,function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,t,r){"use strict";var n=r(1);"string"!=typeof window.document.createElementNS("http://www.w3.org/2000/svg","svg").innerHTML&&n()},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){var e=function e(t,r){var n=t.nodeType;if(3==n)r.push(t.textContent.replace(/&/,"&amp;").replace(/</,"&lt;").replace(">","&gt;"));else if(1==n){if(r.push("<",t.tagName),t.hasAttributes())for(var o=t.attributes,i=0,u=o.length;i<u;++i){var f=o.item(i);r.push(" ",f.name,"='",f.value,"'")}if(t.hasChildNodes()){r.push(">");for(var l=t.childNodes,i=0,u=l.length;i<u;++i)e(l.item(i),r);r.push("</",t.tagName,">")}else r.push("/>")}else{if(8!=n)throw"Error serializing XML. Unhandled node of type: "+n;r.push("\x3c!--",t.nodeValue,"--\x3e")}};Object.defineProperty(SVGElement.prototype,"innerHTML",{get:function(){for(var t=[],r=this.firstChild;r;)e(r,t),r=r.nextSibling;return t.join("")},set:function(e){for(;this.firstChild;)this.removeChild(this.firstChild);try{var t=new DOMParser;t.async=!1;for(var r="<svg xmlns='http://www.w3.org/2000/svg'>"+e+"</svg>",n=t.parseFromString(r,"text/xml").documentElement,o=n.firstChild;o;)this.appendChild(this.ownerDocument.importNode(o,!0)),o=o.nextSibling}catch(e){throw console.error(e),new Error("Error parsing XML string")}}}),Object.defineProperty(SVGElement.prototype,"innerSVG",{get:function(){return this.innerHTML},set:function(e){this.innerHTML=e}})}}])});
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define([], factory);
else if(typeof exports === 'object')
exports["VueSvgIconPolyfill"] = factory();
else
root["VueSvgIconPolyfill"] = factory();
})(window, function() {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = "./polyfill/index.js");
/******/ })
/************************************************************************/
/******/ ({

/***/ "./polyfill/index.js":
/*!***************************!*\
!*** ./polyfill/index.js ***!
\***************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\n/**\n * svg element InnerHTML polyfill\n * @author Allenice\n * @since 2017-07-15 04:37:27\n */\nvar polyfill = __webpack_require__(/*! ./innersvg-polyfill */ \"./polyfill/innersvg-polyfill.js\"); // check browser is suport SvgElement.innerHTML\n\n\nif (typeof window.document.createElementNS('http://www.w3.org/2000/svg', 'svg').innerHTML !== 'string') {\n polyfill();\n}\n\n//# sourceURL=webpack://VueSvgIconPolyfill/./polyfill/index.js?");

/***/ }),

/***/ "./polyfill/innersvg-polyfill.js":
/*!***************************************!*\
!*** ./polyfill/innersvg-polyfill.js ***!
\***************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\n/**\n * innerHTML property for SVGElement\n * Copyright(c) 2010, Jeff Schiller\n *\n * Licensed under the Apache License, Version 2\n *\n * Works in a SVG document in Chrome 6+, Safari 5+, Firefox 4+ and IE9+.\n * Works in a HTML5 document in Chrome 7+, Firefox 4+ and IE9+.\n * Does not work in Opera since it doesn't support the SVGElement interface yet.\n *\n * I haven't decided on the best name for this property - thus the duplication.\n */\nmodule.exports = function () {\n var serializeXML = function serializeXML(node, output) {\n var nodeType = node.nodeType;\n\n if (nodeType == 3) {\n // TEXT nodes.\n // Replace special XML characters with their entities.\n output.push(node.textContent.replace(/&/, '&amp;').replace(/</, '&lt;').replace('>', '&gt;'));\n } else if (nodeType == 1) {\n // ELEMENT nodes.\n // Serialize Element nodes.\n output.push('<', node.tagName);\n\n if (node.hasAttributes()) {\n var attrMap = node.attributes;\n\n for (var i = 0, len = attrMap.length; i < len; ++i) {\n var attrNode = attrMap.item(i);\n output.push(' ', attrNode.name, \"='\", attrNode.value, \"'\");\n }\n }\n\n if (node.hasChildNodes()) {\n output.push('>');\n var childNodes = node.childNodes;\n\n for (var i = 0, len = childNodes.length; i < len; ++i) {\n serializeXML(childNodes.item(i), output);\n }\n\n output.push('</', node.tagName, '>');\n } else {\n output.push('/>');\n }\n } else if (nodeType == 8) {\n // TODO(codedread): Replace special characters with XML entities?\n output.push('<!--', node.nodeValue, '-->');\n } else {\n // TODO: Handle CDATA nodes.\n // TODO: Handle ENTITY nodes.\n // TODO: Handle DOCUMENT nodes.\n throw 'Error serializing XML. Unhandled node of type: ' + nodeType;\n }\n }; // The innerHTML DOM property for SVGElement.\n\n\n Object.defineProperty(SVGElement.prototype, 'innerHTML', {\n get: function get() {\n var output = [];\n var childNode = this.firstChild;\n\n while (childNode) {\n serializeXML(childNode, output);\n childNode = childNode.nextSibling;\n }\n\n return output.join('');\n },\n set: function set(markupText) {\n // Wipe out the current contents of the element.\n while (this.firstChild) {\n this.removeChild(this.firstChild);\n }\n\n try {\n // Parse the markup into valid nodes.\n var dXML = new DOMParser();\n dXML.async = false; // Wrap the markup into a SVG node to ensure parsing works.\n\n var sXML = \"<svg xmlns='http://www.w3.org/2000/svg'>\" + markupText + '</svg>';\n var svgDocElement = dXML.parseFromString(sXML, 'text/xml').documentElement; // Now take each node, import it and append to this element.\n\n var childNode = svgDocElement.firstChild;\n\n while (childNode) {\n this.appendChild(this.ownerDocument.importNode(childNode, true));\n childNode = childNode.nextSibling;\n }\n } catch (e) {\n console.error(e);\n throw new Error('Error parsing XML string');\n }\n }\n }); // The innerSVG DOM property for SVGElement.\n\n Object.defineProperty(SVGElement.prototype, 'innerSVG', {\n get: function get() {\n return this.innerHTML;\n },\n set: function set(markupText) {\n this.innerHTML = markupText;\n }\n });\n};\n\n//# sourceURL=webpack://VueSvgIconPolyfill/./polyfill/innersvg-polyfill.js?");

/***/ })

/******/ });
});
2 changes: 1 addition & 1 deletion package.json
Expand Up @@ -12,7 +12,7 @@
"serve:lib": "tsc -w -p ./lib/tsconfig.json",
"build": "APP_ENV=lib vue-cli-service build --target lib --name svgicon ./src/components/SvgIcon.vue",
"build:lib": "rm -rf dist/lib && tsc -p ./lib/tsconfig.json",
"build:polyfill": "webpack",
"build:polyfill": "webpack -w",
"build:demo": "vue-cli-service build",
"deploy:demo": "yarn build:demo && ./scripts/deploy.sh",
"test": "vue-cli-service test:unit",
Expand Down

0 comments on commit 5405252

Please sign in to comment.