From 99facb08372f6036211cec9785269ca144228ada Mon Sep 17 00:00:00 2001 From: "Suwart, Jan" Date: Sun, 27 Jan 2019 17:37:42 +0100 Subject: [PATCH 1/2] Add option to set default sprite path via service, improve docs and specs, resolves #20 --- README.md | 58 +++++++++++----- docs/main.js | 67 ++++++++++++++++--- docs/main.js.map | 2 +- docs/styles.js | 2 +- docs/styles.js.map | 2 +- package.json | 2 +- projects/icon-sprite/README.md | 58 +++++++++++----- projects/icon-sprite/package.json | 2 +- .../src/lib/icon-sprite.component.html | 8 +-- .../src/lib/icon-sprite.component.spec.ts | 42 +++++++++++- .../src/lib/icon-sprite.component.ts | 16 ++++- .../src/lib/icon-sprite.service.spec.ts | 7 +- .../src/lib/icon-sprite.service.ts | 14 ++++ src/app/app.component.html | 43 +++++++++--- src/app/app.component.ts | 17 ++++- src/environments/environment.prod.ts | 3 +- src/environments/environment.ts | 3 +- src/styles.scss | 12 +++- 18 files changed, 288 insertions(+), 70 deletions(-) diff --git a/README.md b/README.md index c87d4ac..32b37cf 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # SVG icon sprite component for Angular 7 -This [library](https://www.npmjs.com/package/ng-svg-icon-sprite) in Angular package format provides both a solution for generating SVG sprites and a component for including them. +This library provides both a solution for generating SVG sprites and a [module](https://www.npmjs.com/package/ng-svg-icon-sprite) for including them. ## Demo @@ -39,10 +39,10 @@ export class AppModule { } ## Usage -To use your SVGs as a sprite you need to: +To use your SVGs from a sprite you need to: -1. Generate a SVG sprite using a script -2. Include the `svg-icon-sprite` component with the proper sprite path and SVG name +1. Convert your SVG icons into a sprite using a script +2. Include the `svg-icon-sprite` component with the sprite path and the icon name ### Step 1: Generate the sprite @@ -68,10 +68,11 @@ now execute the script: npm run create-icon-sprite ``` -__Note: the fill and stroke properties are removed from the icon so they can be filled via CSS__ +__Note: the fill and stroke properties are removed so the SVG can be filled via CSS. If don't need to apply color changes on your icons, +go for the multi-color pattern [described below](#user-content-dealing-with-multi-color-svgs-containing-inline-styles)__ -The script will take all SVG icons from `src/app/assets/icons` and create a sprite SVG into -`src/app/assets/sprites` using the [svg symbols technique](https://css-tricks.com/svg-symbol-good-choice-icons/). +Regardless of the method, the script will take all SVG icons from `src/app/assets/icons` and create a sprite SVG into +`src/app/assets/sprites` using the [svg symbols technique](https://css-tricks.com/svg-symbol-good-choice-icons/): ``` app @@ -164,11 +165,11 @@ You need to set the `viewBox` property manually to match the size of the exporte > ``` -See the viewBox [example section](https://jannicz.github.io/ng-svg-icon-sprite/#viewBox) for further details. +See the viewBox [example](https://jannicz.github.io/ng-svg-icon-sprite/#viewBox) for further details. Still having trouble with scaling or sizing? Read [this article](https://css-tricks.com/scale-svg/) about SVG scaling. -### Combining with SVG images containing inline styles +### Dealing with multi color SVGs containing inline styles If you wish to combine the single-color icon pattern with SVGs that contain inline styles (i.e. multi-color) that should not be overridden by CSS, you will have to provide a separate sprite file that keeps the stroke and fill attributes: @@ -179,24 +180,48 @@ you will have to provide a separate sprite file that keeps the stroke and fill a } ``` -The generated sprite will preserve it's original styles, but you won't be able to style it via CSS. +The generated sprite will preserve it's original styles, but you won't be able to style it via CSS, [see demo](https://jannicz.github.io/ng-svg-icon-sprite/#multicolor). -## Browser Support (tested) +### Setting a default sprite path for all icons + +If your app only uses one single sprite source, you can set it's path via the icon sprite service: + +```javascript +// In your app.component import the service +import { IconSpriteService } from 'ng-svg-icon-sprite'; + +// Inject it +constructor(private iconSpriteService: IconSpriteService) {} + +// And set the path +ngOnInit() { + this.iconSpriteService.setPath('assets/sprites/sprite.svg'); +} +``` + +[Like in the demo](https://jannicz.github.io/ng-svg-icon-sprite/#defaultpath), you can now leave out the path and just provide the icon name. + +```html + +``` + +If a path is set via the service and in addition to that another path is passed into the icon +component, the latter will override the default. + +## Browser Support - Chrome (63) - Firefox (57) - Safari 11 - Edge - IE 11 (with polyfill, see below) -Check the [demo](https://jannicz.github.io/ng-svg-icon-sprite/) if it meets your requirements before using it. - ### Polyfill for IE11 (and comparable) Older browsers do not support referencing to (external) SVG symbols. To make it work for IE11 and lower you can add [svg4everybody](https://github.com/jonathantneal/svg4everybody) to your `polyfills.ts` file: ```javascript -// Import and execute in polyfills.ts file +// Add the node module, import and execute it in polyfills.ts import * as svg4everybody from 'svg4everybody/dist/svg4everybody.js'; svg4everybody(); ``` @@ -223,9 +248,8 @@ Or use combinations of several methods to achieve better results, like described ## Compatibility -This library is optimized for Angular 7.x. You can use older package versions that are compatible with: -- Angular 6: [ng-svg-icon-sprite 1.2](https://www.npmjs.com/package/ng-svg-icon-sprite/v/1.2.1) -- Angular 4/5: [ng-svg-icon-sprite 0.8](https://www.npmjs.com/package/ng-svg-icon-sprite/v/0.8.0) +This library is optimized for Angular 7.x. For Angular 6 use [ng-svg-icon-sprite 1.2](https://www.npmjs.com/package/ng-svg-icon-sprite/v/1.2.1) +and for Angular 4/5 use [ng-svg-icon-sprite 0.8](https://www.npmjs.com/package/ng-svg-icon-sprite/v/0.8.0). ## Author & License - Jan Suwart | MIT License diff --git a/docs/main.js b/docs/main.js index 4ce4e8b..c1373ea 100644 --- a/docs/main.js +++ b/docs/main.js @@ -22,9 +22,33 @@ __webpack_require__.r(__webpack_exports__); * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ +/** + * To set the sprite path (filename) globally for the app, when including the sprite + * component, the path can be then omitted in the [src] attribute string + */ var IconSpriteService = /** @class */ (function () { function IconSpriteService() { } + /** + * @param {?} path + * @return {?} + */ + IconSpriteService.prototype.setPath = /** + * @param {?} path + * @return {?} + */ + function (path) { + this.spritePath = path; + }; + /** + * @return {?} + */ + IconSpriteService.prototype.getPath = /** + * @return {?} + */ + function () { + return this.spritePath; + }; IconSpriteService.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Injectable"], args: [{ providedIn: 'root' @@ -41,20 +65,35 @@ var IconSpriteService = /** @class */ (function () { * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ var IconSpriteComponent = /** @class */ (function () { - function IconSpriteComponent() { + function IconSpriteComponent(iconSpriteService) { + this.iconSpriteService = iconSpriteService; this.classes = 'icon'; this.width = '100%'; this.preserveAspectRatio = 'xMinYMax meet'; } + /** + * @return {?} + */ + IconSpriteComponent.prototype.ngOnInit = /** + * @return {?} + */ + function () { + // If the src does not contain a # and a spritePath is set, concatenate it + if (this.src && !this.src.includes('#') && this.iconSpriteService.spritePath) { + this.src = this.iconSpriteService.getPath() + "#" + this.src; + } + }; IconSpriteComponent.decorators = [ { type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"], args: [{ selector: 'svg-icon-sprite', - template: "\n \n {{title}}\n \n \n\n\n\n \n {{title}}\n \n \n\n\n\n \n {{title}}\n \n \n\n\n\n \n {{title}}\n \n \n\n", + template: "\n \n {{title}}\n \n \n\n\n\n \n {{title}}\n \n \n\n\n\n \n {{title}}\n \n \n\n\n\n \n {{title}}\n \n \n\n", styles: [":host svg,:host use{fill:currentColor}"] }] } ]; /** @nocollapse */ - IconSpriteComponent.ctorParameters = function () { return []; }; + IconSpriteComponent.ctorParameters = function () { return [ + { type: IconSpriteService } + ]; }; IconSpriteComponent.propDecorators = { src: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], classes: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"] }], @@ -185,7 +224,7 @@ webpackEmptyAsyncContext.id = "./src/$$_lazy_route_resource lazy recursive"; /*! no static exports found */ /***/ (function(module, exports) { -module.exports = "
\n

\n {{ title }}\n

\n\n

\n Angular package that provides both a solution for generating sprites and a component for including them.\n

\n\n\n

The Basics (reference, width and styling)

\n\n

To use if you want to display the icons in original size. Just match the [width] and [height] with the width/height of the equivalent SVG properties.

\n\n \n\n

\n\n

\n\n\n

Scaling (using CSS transform)

\n\n

Use this pattern if you want to change the size of the original SVG. Apply same rules as above, wrap the SVG into a div and size it using CSS transforms.

\n\n \n\n

Scaling (using viewBox)

\n\n This is an alternative to the CSS scaling method presented above. Scaling via viewBox is less consistent across browsers.\n The pattern depends on your SVG source file, whether it already contains a viewBox or not.\n The following example SVGs with an original size of 100x100px are scaled down by 50%.\n\n \n\n\n

Manipulation (using HTML properties)

\n\n \n \n \n \n \n\n \n\n

Adding Custom SVG Attributes

\n\n \n\n Adding focusable=\"false\" will prevent browser focus on SVG element in IE11.\n\n

Accessible example (meaningful icon pattern)

\n\n \n\n Adding [title]=\"'Orange star'\" will render <title id=\"star_100x100-title\">Orange star</title> as the first child of the SVG node and serve as alternative text for screen readers.\n To improve support, you can additionally reference the title's node via 'aria-labelledby' using the title's generated id star_100x100-title and set the role to img.\n\n

Multicolor Icons

\n\n If you want to include an multicolor icon, you will have to provide it form a separate sprite file (where the fill and stroke attributes are not stripped).\n Remember that you will not be able to overwrite styles via CSS.\n\n \n\n

\n Report bugs or feature requests on Github Issues\n

\n\n \n\n

\n Copyright Jan Suwart, MIT license\n

\n
\n\n\n\n" +module.exports = "
\n

SVG-Icon-Sprite Demo

\n\n

\n Angular package that provides both a solution for generating sprites and a component for including them.\n

\n\n

The Basics (reference, width and styling)

\n\n

To display the icons in original size match the [width] and [height] with the width/height of the equivalent SVG.

\n\n \n\n

\n\n

\n\n\n

Scaling (using CSS transform)

\n\n

Use this pattern if you want to change the size of the original SVG. Apply same rules as above, wrap the SVG into a div and size it using CSS transforms.

\n\n \n\n

Scaling (using viewBox)

\n\n This is an alternative to the CSS scaling method presented above. Scaling via viewBox is less consistent across browsers.\n The pattern depends on your SVG source file, whether it already contains a viewBox or not.\n The following example SVGs with an original size of 100x100px are scaled down by 50%.\n\n \n\n

Default sprite path (using the icon sprite service)

\n\n Set the sprite path in your environment.ts, import and inject the IconSpriteService and set the default path. Now you\n can invoke the component and simply pass the icon name as [src].\n\n \n\n\n

Manipulation (using HTML properties)

\n\n \n \n \n \n \n\n \n\n

Adding Custom SVG Attributes

\n\n \n\n Adding focusable=\"false\" will prevent browser focus on SVG element in IE11.\n\n

Accessible example (meaningful icon pattern)

\n\n \n\n Adding [title]=\"'Orange star'\" will render <title id=\"star_100x100-title\">Orange star</title> as the first child of the SVG node and serve as alternative text for screen readers.\n To improve support, you can additionally reference the title's node via 'aria-labelledby' using the title's generated id star_100x100-title and set the role to img.\n\n

Multicolor Icons

\n\n If you want to include an multicolor icon, you will have to provide it form a separate sprite file (where the fill and stroke attributes are not stripped).\n Remember that you will not be able to overwrite styles via CSS.\n\n \n\n

\n Report bugs or feature requests on Github Issues\n

\n\n \n\n

\n Copyright Jan Suwart, MIT license\n

\n
\n\n\n\n" /***/ }), @@ -212,15 +251,25 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AppComponent", function() { return AppComponent; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js"); /* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js"); +/* harmony import */ var ng_svg_icon_sprite__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ng-svg-icon-sprite */ "./dist/ng-svg-icon-sprite/fesm5/ng-svg-icon-sprite.js"); +/* harmony import */ var _environments_environment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../environments/environment */ "./src/environments/environment.ts"); + + var AppComponent = /** @class */ (function () { - function AppComponent() { - this.title = 'SVG-Icon-Sprite'; + function AppComponent( + // Optionally inject the icon sprite service to set the filename path globally + iconSpriteService) { + this.iconSpriteService = iconSpriteService; this.icon = 'star_100x100_viewbox'; this.width = '100px'; this.color = 'red'; + this.env = _environments_environment__WEBPACK_IMPORTED_MODULE_3__["environment"]; } + AppComponent.prototype.ngOnInit = function () { + this.iconSpriteService.setPath(this.env.spritePath); + }; AppComponent.prototype.changeIconPath = function (src) { this.icon = src.split('#')[1] === 'delete_70x70' ? 'star_100x100_viewbox' : 'delete_70x70'; }; @@ -238,7 +287,8 @@ var AppComponent = /** @class */ (function () { selector: 'app-root', template: __webpack_require__(/*! ./app.component.html */ "./src/app/app.component.html"), styles: [__webpack_require__(/*! ./app.component.scss */ "./src/app/app.component.scss")] - }) + }), + tslib__WEBPACK_IMPORTED_MODULE_0__["__metadata"]("design:paramtypes", [ng_svg_icon_sprite__WEBPACK_IMPORTED_MODULE_2__["IconSpriteService"]]) ], AppComponent); return AppComponent; }()); @@ -304,7 +354,8 @@ __webpack_require__.r(__webpack_exports__); // `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`. // The list of file replacements can be found in `angular.json`. var environment = { - production: false + production: false, + spritePath: 'assets/sprites/sprite.svg' }; /* * In development mode, for easier debugging, you can ignore zone related error diff --git a/docs/main.js.map b/docs/main.js.map index f27ee2a..ac0e3b7 100644 --- a/docs/main.js.map +++ b/docs/main.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./dist/ng-svg-icon-sprite/fesm5/ng-svg-icon-sprite.js","webpack:///./src/$_lazy_route_resource lazy namespace object","webpack:///./src/app/app.component.html","webpack:///./src/app/app.component.scss","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.module.ts","webpack:///./src/environments/environment.ts","webpack:///./src/main.ts"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Injectable, Directive, ElementRef, Renderer2, Input, Component, NgModule, defineInjectable } from '@angular/core';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IconSpriteService = /** @class */ (function () {\n function IconSpriteService() {\n }\n IconSpriteService.decorators = [\n { type: Injectable, args: [{\n providedIn: 'root'\n },] }\n ];\n /** @nocollapse */\n IconSpriteService.ctorParameters = function () { return []; };\n /** @nocollapse */ IconSpriteService.ngInjectableDef = defineInjectable({ factory: function IconSpriteService_Factory() { return new IconSpriteService(); }, token: IconSpriteService, providedIn: \"root\" });\n return IconSpriteService;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IconSpriteComponent = /** @class */ (function () {\n function IconSpriteComponent() {\n this.classes = 'icon';\n this.width = '100%';\n this.preserveAspectRatio = 'xMinYMax meet';\n }\n IconSpriteComponent.decorators = [\n { type: Component, args: [{\n selector: 'svg-icon-sprite',\n template: \"\\n \\n {{title}}\\n \\n \\n\\n\\n\\n \\n {{title}}\\n \\n \\n\\n\\n\\n \\n {{title}}\\n \\n \\n\\n\\n\\n \\n {{title}}\\n \\n \\n\\n\",\n styles: [\":host svg,:host use{fill:currentColor}\"]\n }] }\n ];\n /** @nocollapse */\n IconSpriteComponent.ctorParameters = function () { return []; };\n IconSpriteComponent.propDecorators = {\n src: [{ type: Input }],\n classes: [{ type: Input }],\n width: [{ type: Input }],\n height: [{ type: Input }],\n viewBox: [{ type: Input }],\n preserveAspectRatio: [{ type: Input }],\n attribute: [{ type: Input }],\n title: [{ type: Input }]\n };\n return IconSpriteComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Set your own attribute key/value pairs on the generated SVG element, i.e. focusable=\"false\"\n */\nvar IconSpriteDirective = /** @class */ (function () {\n function IconSpriteDirective(renderer, el) {\n this.renderer = renderer;\n this.el = el;\n }\n /**\n * @return {?}\n */\n IconSpriteDirective.prototype.ngOnInit = /**\n * @return {?}\n */\n function () {\n var _this = this;\n if (Array.isArray(this.attribute[0])) {\n /** @type {?} */\n var attributeArr = (/** @type {?} */ (this.attribute));\n attributeArr.forEach(function (obj) {\n _this.renderer.setAttribute(_this.el.nativeElement, obj[0], obj[1] ? obj[1] : '');\n });\n }\n else {\n /** @type {?} */\n var attribute = (/** @type {?} */ (this.attribute));\n if (attribute[0]) {\n this.renderer.setAttribute(this.el.nativeElement, attribute[0], attribute[1] ? attribute[1] : '');\n }\n }\n };\n IconSpriteDirective.decorators = [\n { type: Directive, args: [{\n selector: '[svgIconSpriteAttr]'\n },] }\n ];\n /** @nocollapse */\n IconSpriteDirective.ctorParameters = function () { return [\n { type: Renderer2 },\n { type: ElementRef }\n ]; };\n IconSpriteDirective.propDecorators = {\n attribute: [{ type: Input }]\n };\n return IconSpriteDirective;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IconSpriteModule = /** @class */ (function () {\n function IconSpriteModule() {\n }\n IconSpriteModule.decorators = [\n { type: NgModule, args: [{\n imports: [CommonModule],\n declarations: [\n IconSpriteComponent,\n IconSpriteDirective\n ],\n exports: [IconSpriteComponent]\n },] }\n ];\n return IconSpriteModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\nexport { IconSpriteService, IconSpriteComponent, IconSpriteModule, IconSpriteDirective as ɵa };\n\n//# sourceMappingURL=ng-svg-icon-sprite.js.map","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";","module.exports = \"
\\n

\\n {{ title }}\\n

\\n\\n

\\n Angular package that provides both a solution for generating sprites and a component for including them.\\n

\\n\\n\\n

The Basics (reference, width and styling)

\\n\\n

To use if you want to display the icons in original size. Just match the [width] and [height] with the width/height of the equivalent SVG properties.

\\n\\n \\n\\n

\\n\\n

\\n\\n\\n

Scaling (using CSS transform)

\\n\\n

Use this pattern if you want to change the size of the original SVG. Apply same rules as above, wrap the SVG into a div and size it using CSS transforms.

\\n\\n \\n\\n

Scaling (using viewBox)

\\n\\n This is an alternative to the CSS scaling method presented above. Scaling via viewBox is less consistent across browsers.\\n The pattern depends on your SVG source file, whether it already contains a viewBox or not.\\n The following example SVGs with an original size of 100x100px are scaled down by 50%.\\n\\n \\n\\n\\n

Manipulation (using HTML properties)

\\n\\n \\n \\n \\n \\n \\n\\n \\n\\n

Adding Custom SVG Attributes

\\n\\n \\n\\n Adding focusable=\\\"false\\\" will prevent browser focus on SVG element in IE11.\\n\\n

Accessible example (meaningful icon pattern)

\\n\\n \\n\\n Adding [title]=\\\"'Orange star'\\\" will render <title id=\\\"star_100x100-title\\\">Orange star</title> as the first child of the SVG node and serve as alternative text for screen readers.\\n To improve support, you can additionally reference the title's node via 'aria-labelledby' using the title's generated id star_100x100-title and set the role to img.\\n\\n

Multicolor Icons

\\n\\n If you want to include an multicolor icon, you will have to provide it form a separate sprite file (where the fill and stroke attributes are not stripped).\\n Remember that you will not be able to overwrite styles via CSS.\\n\\n \\n\\n

\\n Report bugs or feature requests on Github Issues\\n

\\n\\n \\n\\n

\\n Copyright Jan Suwart, MIT license\\n

\\n
\\n\\n\\n\\n\"","module.exports = \"@-webkit-keyframes mymove {\\n 0% {\\n -webkit-transform: translateX(0);\\n transform: translateX(0); }\\n 50% {\\n -webkit-transform: translateX(2px);\\n transform: translateX(2px); }\\n 75% {\\n -webkit-transform: translateX(0);\\n transform: translateX(0); }\\n 100% {\\n -webkit-transform: translateX(-2px);\\n transform: translateX(-2px); } }\\n\\n@keyframes mymove {\\n 0% {\\n -webkit-transform: translateX(0);\\n transform: translateX(0); }\\n 50% {\\n -webkit-transform: translateX(2px);\\n transform: translateX(2px); }\\n 75% {\\n -webkit-transform: translateX(0);\\n transform: translateX(0); }\\n 100% {\\n -webkit-transform: translateX(-2px);\\n transform: translateX(-2px); } }\\n\\n.icon-examples-1 {\\n color: darkred;\\n transition: -webkit-transform ease-in-out 0.2s;\\n transition: transform ease-in-out 0.2s;\\n transition: transform ease-in-out 0.2s, -webkit-transform ease-in-out 0.2s;\\n -webkit-transform-origin: center center;\\n -ms-transform-origin: center center;\\n transform-origin: center center; }\\n\\n.icon-examples-1:hover, .icon-examples-1:focus {\\n color: red;\\n -webkit-transform: rotate(12deg);\\n -ms-transform: rotate(12deg);\\n transform: rotate(12deg); }\\n\\n.icon-examples-2 {\\n color: darkgreen;\\n transition: color ease-in-out 0.4s; }\\n\\n.icon-examples-2:hover, .icon-examples-2:focus {\\n color: limegreen; }\\n\\n.icon-examples-3 {\\n transition: -webkit-transform ease-in-out 0.2s;\\n transition: transform ease-in-out 0.2s;\\n transition: transform ease-in-out 0.2s, -webkit-transform ease-in-out 0.2s;\\n -webkit-transform-origin: center center;\\n -ms-transform-origin: center center;\\n transform-origin: center center; }\\n\\n.icon-examples-3:hover, .icon-examples-3:focus {\\n -webkit-transform: scale(1.1);\\n -ms-transform: scale(1.1);\\n transform: scale(1.1); }\\n\\n.icon-examples-4 {\\n color: darkred; }\\n\\n.icon-examples-4:hover, .icon-examples-4:focus {\\n color: brown; }\\n\\n.icon-examples-5 {\\n color: darkorange;\\n transition: color ease-in-out 0.1s; }\\n\\n.icon-examples-5:hover, .icon-examples-5:focus {\\n color: darkgoldenrod; }\\n\\n.icon-scale-down {\\n -webkit-transform: scale(0.5);\\n -ms-transform: scale(0.5);\\n transform: scale(0.5); }\\n\\n.icon-scale-up {\\n -webkit-transform: scale(5);\\n -ms-transform: scale(5);\\n transform: scale(5); }\\n\\n.container ::ng-deep svg.css-styled-icon use {\\n fill: orange;\\n /* evergreen browser symbol styling */\\n stroke: black; }\\n\\n.icon-change-size ::ng-deep svg {\\n transition: all linear 0.2s;\\n -webkit-transform-origin: top center;\\n -ms-transform-origin: top center;\\n transform-origin: top center; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9qYW4uc3V3YXJ0L1Byb2plY3RzL25nLXN2Zy1pY29uLXNwcml0ZS9zcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFO0lBQU8saUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBO0VBQy9CO0lBQU8sbUNBQTBCO1lBQTFCLDJCQUEwQixFQUFBO0VBQ2pDO0lBQU8saUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBO0VBQy9CO0lBQU8sb0NBQTJCO1lBQTNCLDRCQUEyQixFQUFBLEVBQUE7O0FBSnBDO0VBQ0U7SUFBTyxpQ0FBd0I7WUFBeEIseUJBQXdCLEVBQUE7RUFDL0I7SUFBTyxtQ0FBMEI7WUFBMUIsMkJBQTBCLEVBQUE7RUFDakM7SUFBTyxpQ0FBd0I7WUFBeEIseUJBQXdCLEVBQUE7RUFDL0I7SUFBTyxvQ0FBMkI7WUFBM0IsNEJBQTJCLEVBQUEsRUFBQTs7QUFHcEM7RUFFRSxlQUFjO0VBQ2QsK0NBQXNDO0VBQXRDLHVDQUFzQztFQUF0QywyRUFBc0M7RUFDdEMsd0NBQStCO01BQS9CLG9DQUErQjtVQUEvQixnQ0FBK0IsRUFNaEM7O0FBVkQ7SUFPSSxXQUFVO0lBQ1YsaUNBQXdCO1FBQXhCLDZCQUF3QjtZQUF4Qix5QkFBd0IsRUFDekI7O0FBR0g7RUFDRSxpQkFBZ0I7RUFDaEIsbUNBQWtDLEVBS25DOztBQVBEO0lBS0ksaUJBQWdCLEVBQ2pCOztBQUdIO0VBQ0UsK0NBQXNDO0VBQXRDLHVDQUFzQztFQUF0QywyRUFBc0M7RUFDdEMsd0NBQStCO01BQS9CLG9DQUErQjtVQUEvQixnQ0FBK0IsRUFLaEM7O0FBUEQ7SUFLSSw4QkFBcUI7UUFBckIsMEJBQXFCO1lBQXJCLHNCQUFxQixFQUN0Qjs7QUFHSDtFQUNFLGVBQWMsRUFLZjs7QUFORDtJQUlJLGFBQVksRUFDYjs7QUFHSDtFQUNFLGtCQUFpQjtFQUNqQixtQ0FBa0MsRUFLbkM7O0FBUEQ7SUFLSSxxQkFBb0IsRUFDckI7O0FBR0g7RUFFRSw4QkFBcUI7TUFBckIsMEJBQXFCO1VBQXJCLHNCQUFxQixFQUN0Qjs7QUFFRDtFQUVFLDRCQUFtQjtNQUFuQix3QkFBbUI7VUFBbkIsb0JBQW1CLEVBQ3BCOztBQUdEO0VBSVEsYUFBWTtFQUFFLHNDQUFzQztFQUNwRCxjQUFhLEVBQ2Q7O0FBS1A7RUFHTSw0QkFBMkI7RUFDM0IscUNBQTRCO01BQTVCLGlDQUE0QjtVQUE1Qiw2QkFBNEIsRUFDN0IiLCJmaWxlIjoic3JjL2FwcC9hcHAuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAa2V5ZnJhbWVzIG15bW92ZSB7XG4gIDAlICAgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbiAgNTAlICB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpOyB9XG4gIDc1JSAgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbiAgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMnB4KTsgfVxufVxuXG4uaWNvbi1leGFtcGxlcy0xIHtcbiAgLy8gVXNlIGNvbG9yIHByb3BlcnR5IGZvciBvdmVycmlkaW5nIGRlZmF1bHQgY29sb3IgYW5kIGhvdmVyIGVmZmVjdFxuICBjb2xvcjogZGFya3JlZDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIGVhc2UtaW4tb3V0IDAuMnM7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgY29sb3I6IHJlZDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMmRlZyk7XG4gIH1cbn1cblxuLmljb24tZXhhbXBsZXMtMiB7XG4gIGNvbG9yOiBkYXJrZ3JlZW47XG4gIHRyYW5zaXRpb246IGNvbG9yIGVhc2UtaW4tb3V0IDAuNHM7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgY29sb3I6IGxpbWVncmVlbjtcbiAgfVxufVxuXG4uaWNvbi1leGFtcGxlcy0zIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIGVhc2UtaW4tb3V0IDAuMnM7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICB9XG59XG5cbi5pY29uLWV4YW1wbGVzLTQge1xuICBjb2xvcjogZGFya3JlZDtcblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBjb2xvcjogYnJvd247XG4gIH1cbn1cblxuLmljb24tZXhhbXBsZXMtNSB7XG4gIGNvbG9yOiBkYXJrb3JhbmdlO1xuICB0cmFuc2l0aW9uOiBjb2xvciBlYXNlLWluLW91dCAwLjFzO1xuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGNvbG9yOiBkYXJrZ29sZGVucm9kO1xuICB9XG59XG5cbi5pY29uLXNjYWxlLWRvd24ge1xuICAvLyBTY2FsZSBkb3duIGJ5IDUwJVxuICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG59XG5cbi5pY29uLXNjYWxlLXVwIHtcbiAgLy8gU2NhbGUgdXAgYnkgNTAwJVxuICB0cmFuc2Zvcm06IHNjYWxlKDUpO1xufVxuXG4vLyBBY2Nlc3MgdGhlIFNWRyB2aWEgOjpuZy1kZWVwIHNlbGVjdG9yLCBkb2VzIG5vdCB3b3JrIGluIEZpcmVmb3hcbi5jb250YWluZXIge1xuICA6Om5nLWRlZXAge1xuICAgIHN2Zy5jc3Mtc3R5bGVkLWljb24ge1xuICAgICAgdXNlIHtcbiAgICAgICAgZmlsbDogb3JhbmdlOyAvKiBldmVyZ3JlZW4gYnJvd3NlciBzeW1ib2wgc3R5bGluZyAqL1xuICAgICAgICBzdHJva2U6IGJsYWNrO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uaWNvbi1jaGFuZ2Utc2l6ZSB7XG4gIDo6bmctZGVlcCB7XG4gICAgc3ZnIHtcbiAgICAgIHRyYW5zaXRpb246IGFsbCBsaW5lYXIgMC4ycztcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7XG4gICAgfVxuICB9XG59XG4iXX0= */\"","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent {\n public title = 'SVG-Icon-Sprite';\n\n public icon = 'star_100x100_viewbox';\n public width = '100px';\n public color = 'red';\n\n changeIconPath(src) {\n this.icon = src.split('#')[1] === 'delete_70x70' ? 'star_100x100_viewbox' : 'delete_70x70';\n }\n\n changeIconSizePlus(width) {\n this.width = Number(width.replace('px', '')) + 15 + 'px';\n }\n\n changeIconSizeMinus(width) {\n this.width = Number(width.replace('px', '')) - 15 + 'px';\n }\n\n changeIconColor(color) {\n this.color = color;\n }\n}\n","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n\nimport { AppComponent } from './app.component';\nimport { IconSpriteModule } from 'ng-svg-icon-sprite';\n\n\n@NgModule({\n declarations: [\n AppComponent\n ],\n imports: [\n BrowserModule,\n IconSpriteModule\n ],\n providers: [],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * In development mode, for easier debugging, you can ignore zone related error\n * stack frames such as `zone.run`/`zoneDelegate.invokeTask` by importing the\n * below file. Don't forget to comment it out in production mode\n * because it will have a performance impact when errors are thrown\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.log(err));\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./dist/ng-svg-icon-sprite/fesm5/ng-svg-icon-sprite.js","webpack:///./src/$_lazy_route_resource lazy namespace object","webpack:///./src/app/app.component.html","webpack:///./src/app/app.component.scss","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.module.ts","webpack:///./src/environments/environment.ts","webpack:///./src/main.ts"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Injectable, Directive, ElementRef, Renderer2, Input, Component, NgModule, defineInjectable } from '@angular/core';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * To set the sprite path (filename) globally for the app, when including the sprite\n * component, the path can be then omitted in the [src] attribute string\n */\nvar IconSpriteService = /** @class */ (function () {\n function IconSpriteService() {\n }\n /**\n * @param {?} path\n * @return {?}\n */\n IconSpriteService.prototype.setPath = /**\n * @param {?} path\n * @return {?}\n */\n function (path) {\n this.spritePath = path;\n };\n /**\n * @return {?}\n */\n IconSpriteService.prototype.getPath = /**\n * @return {?}\n */\n function () {\n return this.spritePath;\n };\n IconSpriteService.decorators = [\n { type: Injectable, args: [{\n providedIn: 'root'\n },] }\n ];\n /** @nocollapse */\n IconSpriteService.ctorParameters = function () { return []; };\n /** @nocollapse */ IconSpriteService.ngInjectableDef = defineInjectable({ factory: function IconSpriteService_Factory() { return new IconSpriteService(); }, token: IconSpriteService, providedIn: \"root\" });\n return IconSpriteService;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IconSpriteComponent = /** @class */ (function () {\n function IconSpriteComponent(iconSpriteService) {\n this.iconSpriteService = iconSpriteService;\n this.classes = 'icon';\n this.width = '100%';\n this.preserveAspectRatio = 'xMinYMax meet';\n }\n /**\n * @return {?}\n */\n IconSpriteComponent.prototype.ngOnInit = /**\n * @return {?}\n */\n function () {\n // If the src does not contain a # and a spritePath is set, concatenate it\n if (this.src && !this.src.includes('#') && this.iconSpriteService.spritePath) {\n this.src = this.iconSpriteService.getPath() + \"#\" + this.src;\n }\n };\n IconSpriteComponent.decorators = [\n { type: Component, args: [{\n selector: 'svg-icon-sprite',\n template: \"\\n \\n {{title}}\\n \\n \\n\\n\\n\\n \\n {{title}}\\n \\n \\n\\n\\n\\n \\n {{title}}\\n \\n \\n\\n\\n\\n \\n {{title}}\\n \\n \\n\\n\",\n styles: [\":host svg,:host use{fill:currentColor}\"]\n }] }\n ];\n /** @nocollapse */\n IconSpriteComponent.ctorParameters = function () { return [\n { type: IconSpriteService }\n ]; };\n IconSpriteComponent.propDecorators = {\n src: [{ type: Input }],\n classes: [{ type: Input }],\n width: [{ type: Input }],\n height: [{ type: Input }],\n viewBox: [{ type: Input }],\n preserveAspectRatio: [{ type: Input }],\n attribute: [{ type: Input }],\n title: [{ type: Input }]\n };\n return IconSpriteComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Set your own attribute key/value pairs on the generated SVG element, i.e. focusable=\"false\"\n */\nvar IconSpriteDirective = /** @class */ (function () {\n function IconSpriteDirective(renderer, el) {\n this.renderer = renderer;\n this.el = el;\n }\n /**\n * @return {?}\n */\n IconSpriteDirective.prototype.ngOnInit = /**\n * @return {?}\n */\n function () {\n var _this = this;\n if (Array.isArray(this.attribute[0])) {\n /** @type {?} */\n var attributeArr = (/** @type {?} */ (this.attribute));\n attributeArr.forEach(function (obj) {\n _this.renderer.setAttribute(_this.el.nativeElement, obj[0], obj[1] ? obj[1] : '');\n });\n }\n else {\n /** @type {?} */\n var attribute = (/** @type {?} */ (this.attribute));\n if (attribute[0]) {\n this.renderer.setAttribute(this.el.nativeElement, attribute[0], attribute[1] ? attribute[1] : '');\n }\n }\n };\n IconSpriteDirective.decorators = [\n { type: Directive, args: [{\n selector: '[svgIconSpriteAttr]'\n },] }\n ];\n /** @nocollapse */\n IconSpriteDirective.ctorParameters = function () { return [\n { type: Renderer2 },\n { type: ElementRef }\n ]; };\n IconSpriteDirective.propDecorators = {\n attribute: [{ type: Input }]\n };\n return IconSpriteDirective;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IconSpriteModule = /** @class */ (function () {\n function IconSpriteModule() {\n }\n IconSpriteModule.decorators = [\n { type: NgModule, args: [{\n imports: [CommonModule],\n declarations: [\n IconSpriteComponent,\n IconSpriteDirective\n ],\n exports: [IconSpriteComponent]\n },] }\n ];\n return IconSpriteModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\nexport { IconSpriteService, IconSpriteComponent, IconSpriteModule, IconSpriteDirective as ɵa };\n\n//# sourceMappingURL=ng-svg-icon-sprite.js.map","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";","module.exports = \"
\\n

SVG-Icon-Sprite Demo

\\n\\n

\\n Angular package that provides both a solution for generating sprites and a component for including them.\\n

\\n\\n

The Basics (reference, width and styling)

\\n\\n

To display the icons in original size match the [width] and [height] with the width/height of the equivalent SVG.

\\n\\n \\n\\n

\\n\\n

\\n\\n\\n

Scaling (using CSS transform)

\\n\\n

Use this pattern if you want to change the size of the original SVG. Apply same rules as above, wrap the SVG into a div and size it using CSS transforms.

\\n\\n \\n\\n

Scaling (using viewBox)

\\n\\n This is an alternative to the CSS scaling method presented above. Scaling via viewBox is less consistent across browsers.\\n The pattern depends on your SVG source file, whether it already contains a viewBox or not.\\n The following example SVGs with an original size of 100x100px are scaled down by 50%.\\n\\n \\n\\n

Default sprite path (using the icon sprite service)

\\n\\n Set the sprite path in your environment.ts, import and inject the IconSpriteService and set the default path. Now you\\n can invoke the component and simply pass the icon name as [src].\\n\\n \\n\\n\\n

Manipulation (using HTML properties)

\\n\\n \\n \\n \\n \\n \\n\\n \\n\\n

Adding Custom SVG Attributes

\\n\\n \\n\\n Adding focusable=\\\"false\\\" will prevent browser focus on SVG element in IE11.\\n\\n

Accessible example (meaningful icon pattern)

\\n\\n \\n\\n Adding [title]=\\\"'Orange star'\\\" will render <title id=\\\"star_100x100-title\\\">Orange star</title> as the first child of the SVG node and serve as alternative text for screen readers.\\n To improve support, you can additionally reference the title's node via 'aria-labelledby' using the title's generated id star_100x100-title and set the role to img.\\n\\n

Multicolor Icons

\\n\\n If you want to include an multicolor icon, you will have to provide it form a separate sprite file (where the fill and stroke attributes are not stripped).\\n Remember that you will not be able to overwrite styles via CSS.\\n\\n \\n\\n

\\n Report bugs or feature requests on Github Issues\\n

\\n\\n \\n\\n

\\n Copyright Jan Suwart, MIT license\\n

\\n
\\n\\n\\n\\n\"","module.exports = \"@-webkit-keyframes mymove {\\n 0% {\\n -webkit-transform: translateX(0);\\n transform: translateX(0); }\\n 50% {\\n -webkit-transform: translateX(2px);\\n transform: translateX(2px); }\\n 75% {\\n -webkit-transform: translateX(0);\\n transform: translateX(0); }\\n 100% {\\n -webkit-transform: translateX(-2px);\\n transform: translateX(-2px); } }\\n\\n@keyframes mymove {\\n 0% {\\n -webkit-transform: translateX(0);\\n transform: translateX(0); }\\n 50% {\\n -webkit-transform: translateX(2px);\\n transform: translateX(2px); }\\n 75% {\\n -webkit-transform: translateX(0);\\n transform: translateX(0); }\\n 100% {\\n -webkit-transform: translateX(-2px);\\n transform: translateX(-2px); } }\\n\\n.icon-examples-1 {\\n color: darkred;\\n transition: -webkit-transform ease-in-out 0.2s;\\n transition: transform ease-in-out 0.2s;\\n transition: transform ease-in-out 0.2s, -webkit-transform ease-in-out 0.2s;\\n -webkit-transform-origin: center center;\\n -ms-transform-origin: center center;\\n transform-origin: center center; }\\n\\n.icon-examples-1:hover, .icon-examples-1:focus {\\n color: red;\\n -webkit-transform: rotate(12deg);\\n -ms-transform: rotate(12deg);\\n transform: rotate(12deg); }\\n\\n.icon-examples-2 {\\n color: darkgreen;\\n transition: color ease-in-out 0.4s; }\\n\\n.icon-examples-2:hover, .icon-examples-2:focus {\\n color: limegreen; }\\n\\n.icon-examples-3 {\\n transition: -webkit-transform ease-in-out 0.2s;\\n transition: transform ease-in-out 0.2s;\\n transition: transform ease-in-out 0.2s, -webkit-transform ease-in-out 0.2s;\\n -webkit-transform-origin: center center;\\n -ms-transform-origin: center center;\\n transform-origin: center center; }\\n\\n.icon-examples-3:hover, .icon-examples-3:focus {\\n -webkit-transform: scale(1.1);\\n -ms-transform: scale(1.1);\\n transform: scale(1.1); }\\n\\n.icon-examples-4 {\\n color: darkred; }\\n\\n.icon-examples-4:hover, .icon-examples-4:focus {\\n color: brown; }\\n\\n.icon-examples-5 {\\n color: darkorange;\\n transition: color ease-in-out 0.1s; }\\n\\n.icon-examples-5:hover, .icon-examples-5:focus {\\n color: darkgoldenrod; }\\n\\n.icon-scale-down {\\n -webkit-transform: scale(0.5);\\n -ms-transform: scale(0.5);\\n transform: scale(0.5); }\\n\\n.icon-scale-up {\\n -webkit-transform: scale(5);\\n -ms-transform: scale(5);\\n transform: scale(5); }\\n\\n.container ::ng-deep svg.css-styled-icon use {\\n fill: orange;\\n /* evergreen browser symbol styling */\\n stroke: black; }\\n\\n.icon-change-size ::ng-deep svg {\\n transition: all linear 0.2s;\\n -webkit-transform-origin: top center;\\n -ms-transform-origin: top center;\\n transform-origin: top center; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9qYW4uc3V3YXJ0L1Byb2plY3RzL25nLXN2Zy1pY29uLXNwcml0ZS9zcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFO0lBQU8saUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBO0VBQy9CO0lBQU8sbUNBQTBCO1lBQTFCLDJCQUEwQixFQUFBO0VBQ2pDO0lBQU8saUNBQXdCO1lBQXhCLHlCQUF3QixFQUFBO0VBQy9CO0lBQU8sb0NBQTJCO1lBQTNCLDRCQUEyQixFQUFBLEVBQUE7O0FBSnBDO0VBQ0U7SUFBTyxpQ0FBd0I7WUFBeEIseUJBQXdCLEVBQUE7RUFDL0I7SUFBTyxtQ0FBMEI7WUFBMUIsMkJBQTBCLEVBQUE7RUFDakM7SUFBTyxpQ0FBd0I7WUFBeEIseUJBQXdCLEVBQUE7RUFDL0I7SUFBTyxvQ0FBMkI7WUFBM0IsNEJBQTJCLEVBQUEsRUFBQTs7QUFHcEM7RUFFRSxlQUFjO0VBQ2QsK0NBQXNDO0VBQXRDLHVDQUFzQztFQUF0QywyRUFBc0M7RUFDdEMsd0NBQStCO01BQS9CLG9DQUErQjtVQUEvQixnQ0FBK0IsRUFNaEM7O0FBVkQ7SUFPSSxXQUFVO0lBQ1YsaUNBQXdCO1FBQXhCLDZCQUF3QjtZQUF4Qix5QkFBd0IsRUFDekI7O0FBR0g7RUFDRSxpQkFBZ0I7RUFDaEIsbUNBQWtDLEVBS25DOztBQVBEO0lBS0ksaUJBQWdCLEVBQ2pCOztBQUdIO0VBQ0UsK0NBQXNDO0VBQXRDLHVDQUFzQztFQUF0QywyRUFBc0M7RUFDdEMsd0NBQStCO01BQS9CLG9DQUErQjtVQUEvQixnQ0FBK0IsRUFLaEM7O0FBUEQ7SUFLSSw4QkFBcUI7UUFBckIsMEJBQXFCO1lBQXJCLHNCQUFxQixFQUN0Qjs7QUFHSDtFQUNFLGVBQWMsRUFLZjs7QUFORDtJQUlJLGFBQVksRUFDYjs7QUFHSDtFQUNFLGtCQUFpQjtFQUNqQixtQ0FBa0MsRUFLbkM7O0FBUEQ7SUFLSSxxQkFBb0IsRUFDckI7O0FBR0g7RUFFRSw4QkFBcUI7TUFBckIsMEJBQXFCO1VBQXJCLHNCQUFxQixFQUN0Qjs7QUFFRDtFQUVFLDRCQUFtQjtNQUFuQix3QkFBbUI7VUFBbkIsb0JBQW1CLEVBQ3BCOztBQUdEO0VBSVEsYUFBWTtFQUFFLHNDQUFzQztFQUNwRCxjQUFhLEVBQ2Q7O0FBS1A7RUFHTSw0QkFBMkI7RUFDM0IscUNBQTRCO01BQTVCLGlDQUE0QjtVQUE1Qiw2QkFBNEIsRUFDN0IiLCJmaWxlIjoic3JjL2FwcC9hcHAuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAa2V5ZnJhbWVzIG15bW92ZSB7XG4gIDAlICAgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbiAgNTAlICB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpOyB9XG4gIDc1JSAgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbiAgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMnB4KTsgfVxufVxuXG4uaWNvbi1leGFtcGxlcy0xIHtcbiAgLy8gVXNlIGNvbG9yIHByb3BlcnR5IGZvciBvdmVycmlkaW5nIGRlZmF1bHQgY29sb3IgYW5kIGhvdmVyIGVmZmVjdFxuICBjb2xvcjogZGFya3JlZDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIGVhc2UtaW4tb3V0IDAuMnM7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgY29sb3I6IHJlZDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMmRlZyk7XG4gIH1cbn1cblxuLmljb24tZXhhbXBsZXMtMiB7XG4gIGNvbG9yOiBkYXJrZ3JlZW47XG4gIHRyYW5zaXRpb246IGNvbG9yIGVhc2UtaW4tb3V0IDAuNHM7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgY29sb3I6IGxpbWVncmVlbjtcbiAgfVxufVxuXG4uaWNvbi1leGFtcGxlcy0zIHtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIGVhc2UtaW4tb3V0IDAuMnM7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG5cbiAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICB9XG59XG5cbi5pY29uLWV4YW1wbGVzLTQge1xuICBjb2xvcjogZGFya3JlZDtcblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBjb2xvcjogYnJvd247XG4gIH1cbn1cblxuLmljb24tZXhhbXBsZXMtNSB7XG4gIGNvbG9yOiBkYXJrb3JhbmdlO1xuICB0cmFuc2l0aW9uOiBjb2xvciBlYXNlLWluLW91dCAwLjFzO1xuXG4gICY6aG92ZXIsICY6Zm9jdXMge1xuICAgIGNvbG9yOiBkYXJrZ29sZGVucm9kO1xuICB9XG59XG5cbi5pY29uLXNjYWxlLWRvd24ge1xuICAvLyBTY2FsZSBkb3duIGJ5IDUwJVxuICB0cmFuc2Zvcm06IHNjYWxlKDAuNSk7XG59XG5cbi5pY29uLXNjYWxlLXVwIHtcbiAgLy8gU2NhbGUgdXAgYnkgNTAwJVxuICB0cmFuc2Zvcm06IHNjYWxlKDUpO1xufVxuXG4vLyBBY2Nlc3MgdGhlIFNWRyB2aWEgOjpuZy1kZWVwIHNlbGVjdG9yLCBkb2VzIG5vdCB3b3JrIGluIEZpcmVmb3hcbi5jb250YWluZXIge1xuICA6Om5nLWRlZXAge1xuICAgIHN2Zy5jc3Mtc3R5bGVkLWljb24ge1xuICAgICAgdXNlIHtcbiAgICAgICAgZmlsbDogb3JhbmdlOyAvKiBldmVyZ3JlZW4gYnJvd3NlciBzeW1ib2wgc3R5bGluZyAqL1xuICAgICAgICBzdHJva2U6IGJsYWNrO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uaWNvbi1jaGFuZ2Utc2l6ZSB7XG4gIDo6bmctZGVlcCB7XG4gICAgc3ZnIHtcbiAgICAgIHRyYW5zaXRpb246IGFsbCBsaW5lYXIgMC4ycztcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHRvcCBjZW50ZXI7XG4gICAgfVxuICB9XG59XG4iXX0= */\"","import { Component, OnInit } from '@angular/core';\nimport { IconSpriteService } from 'ng-svg-icon-sprite';\nimport { environment } from '../environments/environment';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss']\n})\nexport class AppComponent implements OnInit {\n\n public icon = 'star_100x100_viewbox';\n public width = '100px';\n public color = 'red';\n private env = environment;\n\n constructor(\n // Optionally inject the icon sprite service to set the filename path globally\n private iconSpriteService: IconSpriteService\n ) {}\n\n ngOnInit() {\n this.iconSpriteService.setPath(this.env.spritePath);\n }\n\n changeIconPath(src) {\n this.icon = src.split('#')[1] === 'delete_70x70' ? 'star_100x100_viewbox' : 'delete_70x70';\n }\n\n changeIconSizePlus(width) {\n this.width = Number(width.replace('px', '')) + 15 + 'px';\n }\n\n changeIconSizeMinus(width) {\n this.width = Number(width.replace('px', '')) - 15 + 'px';\n }\n\n changeIconColor(color) {\n this.color = color;\n }\n}\n","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\n\nimport { AppComponent } from './app.component';\nimport { IconSpriteModule } from 'ng-svg-icon-sprite';\n\n\n@NgModule({\n declarations: [\n AppComponent\n ],\n imports: [\n BrowserModule,\n IconSpriteModule\n ],\n providers: [],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false,\n spritePath: 'assets/sprites/sprite.svg'\n};\n\n/*\n * In development mode, for easier debugging, you can ignore zone related error\n * stack frames such as `zone.run`/`zoneDelegate.invokeTask` by importing the\n * below file. Don't forget to comment it out in production mode\n * because it will have a performance impact when errors are thrown\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.log(err));\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/styles.js b/docs/styles.js index e347738..9956ab9 100644 --- a/docs/styles.js +++ b/docs/styles.js @@ -7,7 +7,7 @@ /*! no static exports found */ /***/ (function(module, exports) { -module.exports = [[module.i, "html {\n margin: 0;\n padding: 0;\n box-sizing: border-box; }\n\nbody {\n font-family: Helvetica, Arial, sans-serif;\n font-size: 16px;\n line-height: 1.5;\n margin: 0;\n color: #24292e; }\n\n.container {\n max-width: 1200px;\n padding: 0 8% 0 8%;\n border-radius: 3px;\n margin-left: auto;\n margin-right: auto; }\n\nh1, h2, h3 {\n padding-bottom: 0.3em;\n border-bottom: 1px solid #ddd;\n font-weight: 600; }\n\nh1 {\n font-size: 2em; }\n\nh2 {\n font-size: 1.5em; }\n\nh3 {\n font-size: 1.25em; }\n\np {\n margin-top: 5px;\n margin-bottom: 15px; }\n\na {\n color: steelblue;\n text-decoration: none; }\n\nbutton, input, select {\n font-size: 14px;\n line-height: 1.5; }\n\nlabel {\n font-size: 85%;\n font-weight: 600; }\n\npre {\n padding: 10px;\n margin: 0;\n border: 1px solid #999;\n border-radius: 3px;\n font-size: 85%;\n line-height: 1.45;\n background-color: lightgoldenrodyellow;\n color: darkslategrey;\n font-family: Courier, monospace;\n overflow: auto; }\n\ncode {\n line-height: 1.45;\n background-color: lavender;\n font-family: Courier, monospace; }\n\nsmall {\n font-size: 80%;\n color: #555; }\n\nul.vertical {\n list-style: none;\n padding: 0; }\n\nul.vertical li {\n margin: 10px;\n display: -ms-flexbox;\n display: flex; }\n\nul.vertical li .icon-row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n width: 25%; }\n\nul.vertical li pre {\n width: 75%; }\n\nul.inline {\n list-style: none;\n padding: 0; }\n\nul.inline li {\n display: inline-block;\n padding: 30px; }\n\nul.inline li span {\n display: block; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9qYW4uc3V3YXJ0L1Byb2plY3RzL25nLXN2Zy1pY29uLXNwcml0ZS9zcmMvc3R5bGVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxVQUFTO0VBQ1QsV0FBVTtFQUNWLHVCQUFzQixFQUN2Qjs7QUFDRDtFQUNFLDBDQUF5QztFQUN6QyxnQkFBZTtFQUNmLGlCQUFnQjtFQUNoQixVQUFTO0VBQ1QsZUFBYyxFQUNmOztBQUNEO0VBQ0Usa0JBQWlCO0VBQ2pCLG1CQUFrQjtFQUNsQixtQkFBa0I7RUFDbEIsa0JBQWlCO0VBQ2pCLG1CQUFrQixFQUNuQjs7QUFDRDtFQUNFLHNCQUFxQjtFQUNyQiw4QkFBNkI7RUFDN0IsaUJBQWdCLEVBQ2pCOztBQUNEO0VBQ0UsZUFBYyxFQUNmOztBQUNEO0VBQ0UsaUJBQWdCLEVBQ2pCOztBQUNEO0VBQ0Usa0JBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsZ0JBQWU7RUFDZixvQkFBbUIsRUFDcEI7O0FBQ0Q7RUFDRSxpQkFBZ0I7RUFDaEIsc0JBQXFCLEVBQ3RCOztBQUNEO0VBQ0UsZ0JBQWU7RUFDZixpQkFBZ0IsRUFDakI7O0FBQ0Q7RUFDRSxlQUFjO0VBQ2QsaUJBQWdCLEVBQ2pCOztBQUNEO0VBQ0UsY0FBYTtFQUNiLFVBQVM7RUFDVCx1QkFBc0I7RUFDdEIsbUJBQWtCO0VBQ2xCLGVBQWM7RUFDZCxrQkFBaUI7RUFDakIsdUNBQXNDO0VBQ3RDLHFCQUFvQjtFQUNwQixnQ0FBK0I7RUFDL0IsZUFBYyxFQUNmOztBQUNEO0VBQ0Usa0JBQWlCO0VBQ2pCLDJCQUEwQjtFQUMxQixnQ0FBK0IsRUFDaEM7O0FBQ0Q7RUFDRSxlQUFjO0VBQ2QsWUFBVyxFQUNaOztBQUVEO0VBRUksaUJBQWdCO0VBQ2hCLFdBQVUsRUFpQlg7O0FBcEJIO0lBTU0sYUFBWTtJQUNaLHFCQUFhO0lBQWIsY0FBYSxFQVlkOztBQW5CTDtNQVVRLHFCQUFhO01BQWIsY0FBYTtNQUNiLHNCQUF1QjtVQUF2Qix3QkFBdUI7TUFDdkIsV0FBVSxFQUNYOztBQWJQO01BZ0JRLFdBQVUsRUFFWDs7QUFLUDtFQUNFLGlCQUFnQjtFQUNoQixXQUFVLEVBQ1g7O0FBRUQ7RUFDRSxzQkFBcUI7RUFDckIsY0FBYSxFQUNkOztBQUVEO0VBQ0UsZUFBYyxFQUNmIiwiZmlsZSI6InNyYy9zdHlsZXMuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbImh0bWwge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgbWFyZ2luOiAwO1xuICBjb2xvcjogIzI0MjkyZTtcbn1cbi5jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgcGFkZGluZzogMCA4JSAwIDglO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5oMSwgaDIsIGgzIHtcbiAgcGFkZGluZy1ib3R0b206IDAuM2VtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG59XG5oMiB7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG59XG5oMyB7XG4gIGZvbnQtc2l6ZTogMS4yNWVtO1xufVxucCB7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cbmEge1xuICBjb2xvcjogc3RlZWxibHVlO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5idXR0b24sIGlucHV0LCBzZWxlY3Qge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5sYWJlbCB7XG4gIGZvbnQtc2l6ZTogODUlO1xuICBmb250LXdlaWdodDogNjAwO1xufVxucHJlIHtcbiAgcGFkZGluZzogMTBweDtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGZvbnQtc2l6ZTogODUlO1xuICBsaW5lLWhlaWdodDogMS40NTtcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRnb2xkZW5yb2R5ZWxsb3c7XG4gIGNvbG9yOiBkYXJrc2xhdGVncmV5O1xuICBmb250LWZhbWlseTogQ291cmllciwgbW9ub3NwYWNlO1xuICBvdmVyZmxvdzogYXV0bztcbn1cbmNvZGUge1xuICBsaW5lLWhlaWdodDogMS40NTtcbiAgYmFja2dyb3VuZC1jb2xvcjogbGF2ZW5kZXI7XG4gIGZvbnQtZmFtaWx5OiBDb3VyaWVyLCBtb25vc3BhY2U7XG59XG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xuICBjb2xvcjogIzU1NTtcbn1cblxudWwge1xuICAmLnZlcnRpY2FsIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBsaSB7XG4gICAgICBtYXJnaW46IDEwcHg7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAuaWNvbi1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDI1JTtcbiAgICAgIH1cblxuICAgICAgcHJlIHtcbiAgICAgICAgd2lkdGg6IDc1JTtcbiAgICAgICAgLy9tYXgtaGVpZ2h0OiA0MHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG51bC5pbmxpbmUge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG51bC5pbmxpbmUgbGkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDMwcHg7XG59XG5cbnVsLmlubGluZSBsaSBzcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4iXX0= */", '', '']] +module.exports = [[module.i, "html {\n margin: 0;\n padding: 0;\n box-sizing: border-box; }\n\nbody {\n font-family: Helvetica, Arial, sans-serif;\n font-size: 16px;\n line-height: 1.5;\n margin: 0;\n color: #24292e; }\n\n.container {\n max-width: 1200px;\n padding: 0 8% 0 8%;\n border-radius: 3px;\n margin-left: auto;\n margin-right: auto; }\n\nh1, h2, h3 {\n padding-bottom: 0.3em;\n border-bottom: 1px solid #ddd;\n font-weight: 600; }\n\nh1 {\n font-size: 2em; }\n\nh2 {\n font-size: 1.5em; }\n\nh3 {\n font-size: 1.25em; }\n\np {\n margin-top: 5px;\n margin-bottom: 15px; }\n\na {\n color: steelblue;\n text-decoration: none; }\n\nbutton, input, select {\n font-size: 14px;\n line-height: 1.5; }\n\nlabel {\n font-size: 85%;\n font-weight: 600; }\n\npre {\n padding: 10px;\n margin: 0;\n border: 1px solid #999;\n border-radius: 3px;\n font-size: 85%;\n line-height: 1.45;\n background-color: lightgoldenrodyellow;\n color: darkslategrey;\n font-family: Courier, monospace;\n overflow: auto; }\n\ncode {\n line-height: 1.45;\n background-color: lavender;\n font-family: Courier, monospace; }\n\nsmall {\n font-size: 80%;\n color: #555; }\n\nul.vertical {\n list-style: none;\n padding: 0; }\n\nul.vertical li {\n margin: 10px;\n display: -ms-flexbox;\n display: flex; }\n\nul.vertical li .icon-row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n width: 25%; }\n\nul.vertical li pre {\n width: 75%; }\n\nul.vertical li .pre-vertical {\n width: 75%;\n -ms-flex-direction: column;\n flex-direction: column; }\n\nul.vertical li .pre-vertical pre {\n width: auto;\n margin-bottom: 5px; }\n\nul.inline {\n list-style: none;\n padding: 0; }\n\nul.inline li {\n display: inline-block;\n padding: 30px; }\n\nul.inline li span {\n display: block; }\n\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9qYW4uc3V3YXJ0L1Byb2plY3RzL25nLXN2Zy1pY29uLXNwcml0ZS9zcmMvc3R5bGVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxVQUFTO0VBQ1QsV0FBVTtFQUNWLHVCQUFzQixFQUN2Qjs7QUFDRDtFQUNFLDBDQUF5QztFQUN6QyxnQkFBZTtFQUNmLGlCQUFnQjtFQUNoQixVQUFTO0VBQ1QsZUFBYyxFQUNmOztBQUNEO0VBQ0Usa0JBQWlCO0VBQ2pCLG1CQUFrQjtFQUNsQixtQkFBa0I7RUFDbEIsa0JBQWlCO0VBQ2pCLG1CQUFrQixFQUNuQjs7QUFDRDtFQUNFLHNCQUFxQjtFQUNyQiw4QkFBNkI7RUFDN0IsaUJBQWdCLEVBQ2pCOztBQUNEO0VBQ0UsZUFBYyxFQUNmOztBQUNEO0VBQ0UsaUJBQWdCLEVBQ2pCOztBQUNEO0VBQ0Usa0JBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsZ0JBQWU7RUFDZixvQkFBbUIsRUFDcEI7O0FBQ0Q7RUFDRSxpQkFBZ0I7RUFDaEIsc0JBQXFCLEVBQ3RCOztBQUNEO0VBQ0UsZ0JBQWU7RUFDZixpQkFBZ0IsRUFDakI7O0FBQ0Q7RUFDRSxlQUFjO0VBQ2QsaUJBQWdCLEVBQ2pCOztBQUNEO0VBQ0UsY0FBYTtFQUNiLFVBQVM7RUFDVCx1QkFBc0I7RUFDdEIsbUJBQWtCO0VBQ2xCLGVBQWM7RUFDZCxrQkFBaUI7RUFDakIsdUNBQXNDO0VBQ3RDLHFCQUFvQjtFQUNwQixnQ0FBK0I7RUFDL0IsZUFBYyxFQUNmOztBQUNEO0VBQ0Usa0JBQWlCO0VBQ2pCLDJCQUEwQjtFQUMxQixnQ0FBK0IsRUFDaEM7O0FBQ0Q7RUFDRSxlQUFjO0VBQ2QsWUFBVyxFQUNaOztBQUVEO0VBRUksaUJBQWdCO0VBQ2hCLFdBQVUsRUEwQlg7O0FBN0JIO0lBTU0sYUFBWTtJQUNaLHFCQUFhO0lBQWIsY0FBYSxFQXFCZDs7QUE1Qkw7TUFVUSxxQkFBYTtNQUFiLGNBQWE7TUFDYixzQkFBdUI7VUFBdkIsd0JBQXVCO01BQ3ZCLFdBQVUsRUFDWDs7QUFiUDtNQWdCUSxXQUFVLEVBQ1g7O0FBakJQO01Bb0JRLFdBQVU7TUFDViwyQkFBc0I7VUFBdEIsdUJBQXNCLEVBTXZCOztBQTNCUDtRQXdCVSxZQUFXO1FBQ1gsbUJBQWtCLEVBQ25COztBQU9UO0VBQ0UsaUJBQWdCO0VBQ2hCLFdBQVUsRUFDWDs7QUFFRDtFQUNFLHNCQUFxQjtFQUNyQixjQUFhLEVBQ2Q7O0FBRUQ7RUFDRSxlQUFjLEVBQ2YiLCJmaWxlIjoic3JjL3N0eWxlcy5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiaHRtbCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cbmJvZHkge1xuICBmb250LWZhbWlseTogSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBsaW5lLWhlaWdodDogMS41O1xuICBtYXJnaW46IDA7XG4gIGNvbG9yOiAjMjQyOTJlO1xufVxuLmNvbnRhaW5lciB7XG4gIG1heC13aWR0aDogMTIwMHB4O1xuICBwYWRkaW5nOiAwIDglIDAgOCU7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbn1cbmgxLCBoMiwgaDMge1xuICBwYWRkaW5nLWJvdHRvbTogMC4zZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGRkO1xuICBmb250LXdlaWdodDogNjAwO1xufVxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbn1cbmgyIHtcbiAgZm9udC1zaXplOiAxLjVlbTtcbn1cbmgzIHtcbiAgZm9udC1zaXplOiAxLjI1ZW07XG59XG5wIHtcbiAgbWFyZ2luLXRvcDogNXB4O1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xufVxuYSB7XG4gIGNvbG9yOiBzdGVlbGJsdWU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbmJ1dHRvbiwgaW5wdXQsIHNlbGVjdCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cbmxhYmVsIHtcbiAgZm9udC1zaXplOiA4NSU7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5wcmUge1xuICBwYWRkaW5nOiAxMHB4O1xuICBtYXJnaW46IDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgZm9udC1zaXplOiA4NSU7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdvbGRlbnJvZHllbGxvdztcbiAgY29sb3I6IGRhcmtzbGF0ZWdyZXk7XG4gIGZvbnQtZmFtaWx5OiBDb3VyaWVyLCBtb25vc3BhY2U7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuY29kZSB7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBsYXZlbmRlcjtcbiAgZm9udC1mYW1pbHk6IENvdXJpZXIsIG1vbm9zcGFjZTtcbn1cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG4gIGNvbG9yOiAjNTU1O1xufVxuXG51bCB7XG4gICYudmVydGljYWwge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcblxuICAgIGxpIHtcbiAgICAgIG1hcmdpbjogMTBweDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgIC5pY29uLXJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB3aWR0aDogMjUlO1xuICAgICAgfVxuXG4gICAgICBwcmUge1xuICAgICAgICB3aWR0aDogNzUlO1xuICAgICAgfVxuXG4gICAgICAucHJlLXZlcnRpY2FsIHtcbiAgICAgICAgd2lkdGg6IDc1JTtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICBwcmUge1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbnVsLmlubGluZSB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbnVsLmlubGluZSBsaSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcGFkZGluZzogMzBweDtcbn1cblxudWwuaW5saW5lIGxpIHNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbn1cbiJdfQ== */", '', '']] /***/ }), diff --git a/docs/styles.js.map b/docs/styles.js.map index f4f1c56..45f11c3 100644 --- a/docs/styles.js.map +++ b/docs/styles.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./src/styles.scss","webpack:///./node_modules/style-loader/lib/addStyles.js","webpack:///./node_modules/style-loader/lib/urls.js","webpack:///./src/styles.scss?4266"],"names":[],"mappings":";;;;;;;;;AAAA,mBAAmB,QAAS,SAAS,cAAc,eAAe,2BAA2B,EAAE,UAAU,8CAA8C,oBAAoB,qBAAqB,cAAc,mBAAmB,EAAE,gBAAgB,sBAAsB,uBAAuB,uBAAuB,sBAAsB,uBAAuB,EAAE,gBAAgB,0BAA0B,kCAAkC,qBAAqB,EAAE,QAAQ,mBAAmB,EAAE,QAAQ,qBAAqB,EAAE,QAAQ,sBAAsB,EAAE,OAAO,oBAAoB,wBAAwB,EAAE,OAAO,qBAAqB,0BAA0B,EAAE,2BAA2B,oBAAoB,qBAAqB,EAAE,WAAW,mBAAmB,qBAAqB,EAAE,SAAS,kBAAkB,cAAc,2BAA2B,uBAAuB,mBAAmB,sBAAsB,2CAA2C,yBAAyB,oCAAoC,mBAAmB,EAAE,UAAU,sBAAsB,+BAA+B,oCAAoC,EAAE,WAAW,mBAAmB,gBAAgB,EAAE,iBAAiB,qBAAqB,eAAe,EAAE,oBAAoB,mBAAmB,2BAA2B,oBAAoB,EAAE,8BAA8B,6BAA6B,sBAAsB,8BAA8B,oCAAoC,mBAAmB,EAAE,wBAAwB,mBAAmB,EAAE,eAAe,qBAAqB,eAAe,EAAE,kBAAkB,0BAA0B,kBAAkB,EAAE,uBAAuB,mBAAmB,EAAE,+CAA+C,yiH;;;;;;;;;;;ACAvtD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA,cAAc,mBAAO,CAAC,uDAAQ;;AAE9B;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,iBAAiB,mBAAmB;AACpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA,mBAAmB,2BAA2B;;AAE9C;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,mBAAmB;AACnC;AACA;;AAEA;AACA;;AAEA,iBAAiB,2BAA2B;AAC5C;AACA;;AAEA,QAAQ,uBAAuB;AAC/B;AACA;AACA,GAAG;AACH;;AAEA,iBAAiB,uBAAuB;AACxC;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd,kDAAkD,sBAAsB;AACxE;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA,KAAK,KAAwC,EAAE,EAE7C;;AAEF,QAAQ,sBAAiB;AACzB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD;AACvD;;AAEA,6BAA6B,mBAAmB;;AAEhD;;AAEA;;AAEA;AACA;;;;;;;;;;;;;AC9YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,WAAW,EAAE;AACrD,wCAAwC,WAAW,EAAE;;AAErD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,sCAAsC;AACtC,GAAG;AACH;AACA,8DAA8D;AAC9D;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;;;;;;;;;;;;ACvFA,cAAc,mBAAO,CAAC,4ZAA0N;;AAEhP,4CAA4C,QAAS;;AAErD;AACA;;;;AAIA,eAAe;;AAEf;AACA;;AAEA,aAAa,mBAAO,CAAC,mGAAgD;;AAErE;;AAEA,GAAG,KAAU,EAAE,E","file":"styles.js","sourcesContent":["module.exports = [[module.id, \"html {\\n margin: 0;\\n padding: 0;\\n box-sizing: border-box; }\\n\\nbody {\\n font-family: Helvetica, Arial, sans-serif;\\n font-size: 16px;\\n line-height: 1.5;\\n margin: 0;\\n color: #24292e; }\\n\\n.container {\\n max-width: 1200px;\\n padding: 0 8% 0 8%;\\n border-radius: 3px;\\n margin-left: auto;\\n margin-right: auto; }\\n\\nh1, h2, h3 {\\n padding-bottom: 0.3em;\\n border-bottom: 1px solid #ddd;\\n font-weight: 600; }\\n\\nh1 {\\n font-size: 2em; }\\n\\nh2 {\\n font-size: 1.5em; }\\n\\nh3 {\\n font-size: 1.25em; }\\n\\np {\\n margin-top: 5px;\\n margin-bottom: 15px; }\\n\\na {\\n color: steelblue;\\n text-decoration: none; }\\n\\nbutton, input, select {\\n font-size: 14px;\\n line-height: 1.5; }\\n\\nlabel {\\n font-size: 85%;\\n font-weight: 600; }\\n\\npre {\\n padding: 10px;\\n margin: 0;\\n border: 1px solid #999;\\n border-radius: 3px;\\n font-size: 85%;\\n line-height: 1.45;\\n background-color: lightgoldenrodyellow;\\n color: darkslategrey;\\n font-family: Courier, monospace;\\n overflow: auto; }\\n\\ncode {\\n line-height: 1.45;\\n background-color: lavender;\\n font-family: Courier, monospace; }\\n\\nsmall {\\n font-size: 80%;\\n color: #555; }\\n\\nul.vertical {\\n list-style: none;\\n padding: 0; }\\n\\nul.vertical li {\\n margin: 10px;\\n display: -ms-flexbox;\\n display: flex; }\\n\\nul.vertical li .icon-row {\\n display: -ms-flexbox;\\n display: flex;\\n -ms-flex-pack: center;\\n justify-content: center;\\n width: 25%; }\\n\\nul.vertical li pre {\\n width: 75%; }\\n\\nul.inline {\\n list-style: none;\\n padding: 0; }\\n\\nul.inline li {\\n display: inline-block;\\n padding: 30px; }\\n\\nul.inline li span {\\n display: block; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9qYW4uc3V3YXJ0L1Byb2plY3RzL25nLXN2Zy1pY29uLXNwcml0ZS9zcmMvc3R5bGVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxVQUFTO0VBQ1QsV0FBVTtFQUNWLHVCQUFzQixFQUN2Qjs7QUFDRDtFQUNFLDBDQUF5QztFQUN6QyxnQkFBZTtFQUNmLGlCQUFnQjtFQUNoQixVQUFTO0VBQ1QsZUFBYyxFQUNmOztBQUNEO0VBQ0Usa0JBQWlCO0VBQ2pCLG1CQUFrQjtFQUNsQixtQkFBa0I7RUFDbEIsa0JBQWlCO0VBQ2pCLG1CQUFrQixFQUNuQjs7QUFDRDtFQUNFLHNCQUFxQjtFQUNyQiw4QkFBNkI7RUFDN0IsaUJBQWdCLEVBQ2pCOztBQUNEO0VBQ0UsZUFBYyxFQUNmOztBQUNEO0VBQ0UsaUJBQWdCLEVBQ2pCOztBQUNEO0VBQ0Usa0JBQWlCLEVBQ2xCOztBQUNEO0VBQ0UsZ0JBQWU7RUFDZixvQkFBbUIsRUFDcEI7O0FBQ0Q7RUFDRSxpQkFBZ0I7RUFDaEIsc0JBQXFCLEVBQ3RCOztBQUNEO0VBQ0UsZ0JBQWU7RUFDZixpQkFBZ0IsRUFDakI7O0FBQ0Q7RUFDRSxlQUFjO0VBQ2QsaUJBQWdCLEVBQ2pCOztBQUNEO0VBQ0UsY0FBYTtFQUNiLFVBQVM7RUFDVCx1QkFBc0I7RUFDdEIsbUJBQWtCO0VBQ2xCLGVBQWM7RUFDZCxrQkFBaUI7RUFDakIsdUNBQXNDO0VBQ3RDLHFCQUFvQjtFQUNwQixnQ0FBK0I7RUFDL0IsZUFBYyxFQUNmOztBQUNEO0VBQ0Usa0JBQWlCO0VBQ2pCLDJCQUEwQjtFQUMxQixnQ0FBK0IsRUFDaEM7O0FBQ0Q7RUFDRSxlQUFjO0VBQ2QsWUFBVyxFQUNaOztBQUVEO0VBRUksaUJBQWdCO0VBQ2hCLFdBQVUsRUFpQlg7O0FBcEJIO0lBTU0sYUFBWTtJQUNaLHFCQUFhO0lBQWIsY0FBYSxFQVlkOztBQW5CTDtNQVVRLHFCQUFhO01BQWIsY0FBYTtNQUNiLHNCQUF1QjtVQUF2Qix3QkFBdUI7TUFDdkIsV0FBVSxFQUNYOztBQWJQO01BZ0JRLFdBQVUsRUFFWDs7QUFLUDtFQUNFLGlCQUFnQjtFQUNoQixXQUFVLEVBQ1g7O0FBRUQ7RUFDRSxzQkFBcUI7RUFDckIsY0FBYSxFQUNkOztBQUVEO0VBQ0UsZUFBYyxFQUNmIiwiZmlsZSI6InNyYy9zdHlsZXMuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbImh0bWwge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgbWFyZ2luOiAwO1xuICBjb2xvcjogIzI0MjkyZTtcbn1cbi5jb250YWluZXIge1xuICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgcGFkZGluZzogMCA4JSAwIDglO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG59XG5oMSwgaDIsIGgzIHtcbiAgcGFkZGluZy1ib3R0b206IDAuM2VtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RkZDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG59XG5oMiB7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG59XG5oMyB7XG4gIGZvbnQtc2l6ZTogMS4yNWVtO1xufVxucCB7XG4gIG1hcmdpbi10b3A6IDVweDtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cbmEge1xuICBjb2xvcjogc3RlZWxibHVlO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5idXR0b24sIGlucHV0LCBzZWxlY3Qge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5sYWJlbCB7XG4gIGZvbnQtc2l6ZTogODUlO1xuICBmb250LXdlaWdodDogNjAwO1xufVxucHJlIHtcbiAgcGFkZGluZzogMTBweDtcbiAgbWFyZ2luOiAwO1xuICBib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGZvbnQtc2l6ZTogODUlO1xuICBsaW5lLWhlaWdodDogMS40NTtcbiAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRnb2xkZW5yb2R5ZWxsb3c7XG4gIGNvbG9yOiBkYXJrc2xhdGVncmV5O1xuICBmb250LWZhbWlseTogQ291cmllciwgbW9ub3NwYWNlO1xuICBvdmVyZmxvdzogYXV0bztcbn1cbmNvZGUge1xuICBsaW5lLWhlaWdodDogMS40NTtcbiAgYmFja2dyb3VuZC1jb2xvcjogbGF2ZW5kZXI7XG4gIGZvbnQtZmFtaWx5OiBDb3VyaWVyLCBtb25vc3BhY2U7XG59XG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xuICBjb2xvcjogIzU1NTtcbn1cblxudWwge1xuICAmLnZlcnRpY2FsIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICBsaSB7XG4gICAgICBtYXJnaW46IDEwcHg7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAuaWNvbi1yb3cge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDI1JTtcbiAgICAgIH1cblxuICAgICAgcHJlIHtcbiAgICAgICAgd2lkdGg6IDc1JTtcbiAgICAgICAgLy9tYXgtaGVpZ2h0OiA0MHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG51bC5pbmxpbmUge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG51bC5pbmxpbmUgbGkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDMwcHg7XG59XG5cbnVsLmlubGluZSBsaSBzcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4iXX0= */\", '', '']]","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target, parent) {\n if (parent){\n return parent.querySelector(target);\n }\n return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target, parent) {\n // If passing function in options, then use it for resolve \"head\" element.\n // Useful for Shadow Root style i.e\n // {\n // insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n // }\n if (typeof target === 'function') {\n return target();\n }\n if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target, parent);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = require(\"./urls\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of