[
  {
    "path": ".editorconfig",
    "content": "# Editor configuration, see http://editorconfig.org\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 2\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.md]\nmax_line_length = off\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": ".gitignore",
    "content": "# compiled output\n/dist\n/tmp\n/out-tsc\n/package-build\n\n# dependencies\n/node_modules\n\n# IDEs and editors\n/.idea\n.project\n.classpath\n.c9/\n*.launch\n.settings/\n*.sublime-workspace\n\n# IDE - VSCode\n.vscode/*\n!.vscode/settings.json\n!.vscode/tasks.json\n!.vscode/launch.json\n!.vscode/extensions.json\n\n# misc\n/.sass-cache\n/connect.lock\n/coverage\n/libpeerconnection.log\nnpm-debug.log\nyarn-error.log\ntestem.log\n/typings\n\n# e2e\n/e2e/*.js\n/e2e/*.map\n\n# System Files\n.DS_Store\nThumbs.db\ndebug.log\nlocal.log\n"
  },
  {
    "path": ".stylelintrc.json",
    "content": "{\n  \"rules\": {\n    \"color-hex-case\": \"lower\",\n    \"color-no-invalid-hex\": true,\n\n    \"function-calc-no-unspaced-operator\": true,\n    \"function-comma-space-after\": \"always-single-line\",\n    \"function-comma-space-before\": \"never\",\n    \"function-name-case\": \"lower\",\n    \"function-url-quotes\": \"always\",\n    \"function-whitespace-after\": \"always\",\n\n    \"number-leading-zero\": \"always\",\n    \"number-no-trailing-zeros\": true,\n    \"length-zero-no-unit\": true,\n\n    \"string-no-newline\": true,\n    \"string-quotes\": \"single\",\n\n    \"unit-case\": \"lower\",\n    \"unit-no-unknown\": true,\n    \"unit-whitelist\": [\"px\", \"%\", \"deg\", \"ms\", \"em\", \"vh\", \"vw\", \"s\", \"rem\"],\n\n    \"value-list-comma-space-after\": \"always-single-line\",\n    \"value-list-comma-space-before\": \"never\",\n\n    \"shorthand-property-no-redundant-values\": true,\n\n    \"property-case\": \"lower\",\n\n    \"declaration-block-no-duplicate-properties\": [ true, {\n      \"ignore\": [\"consecutive-duplicates-with-different-values\"]\n    }],\n    \"declaration-block-trailing-semicolon\": \"always\",\n    \"declaration-block-single-line-max-declarations\": 1,\n    \"declaration-block-semicolon-space-before\": \"never\",\n    \"declaration-block-semicolon-space-after\": \"always-single-line\",\n    \"declaration-block-semicolon-newline-before\": \"never-multi-line\",\n    \"declaration-block-semicolon-newline-after\": \"always-multi-line\",\n    \"declaration-property-value-blacklist\": [\n      { \"/.*/\": [\"initial\"] },\n      { \"message\": \"The `initial` value is not supported in IE.\"}\n    ],\n\n    \"block-closing-brace-newline-after\": [\n      \"always\",\n      {\n        \"ignoreAtRules\": [\"if\", \"else\"]\n      }\n    ],\n    \"block-closing-brace-newline-before\": \"always-multi-line\",\n    \"block-opening-brace-newline-after\": \"always-multi-line\",\n    \"block-opening-brace-space-before\": \"always-multi-line\",\n\n    \"selector-attribute-brackets-space-inside\": \"never\",\n    \"selector-attribute-operator-space-after\": \"never\",\n    \"selector-attribute-operator-space-before\": \"never\",\n    \"selector-combinator-space-after\": \"always\",\n    \"selector-combinator-space-before\": \"always\",\n    \"selector-pseudo-class-case\": \"lower\",\n    \"selector-pseudo-class-parentheses-space-inside\": \"never\",\n    \"selector-pseudo-element-case\": \"lower\",\n    \"selector-pseudo-element-colon-notation\": \"double\",\n    \"selector-pseudo-element-no-unknown\": [true, {\n      \"ignorePseudoElements\": [\"ng-deep\"]\n    }],\n    \"selector-type-case\": \"lower\",\n    \"selector-max-id\": 0,\n\n    \"no-missing-end-of-source-newline\": true,\n\n    \"max-line-length\": 120\n  }\n}\n"
  },
  {
    "path": "LICENSE.txt",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2018 Akveo.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n"
  },
  {
    "path": "README.md",
    "content": "<h1><img src=\"https://i.imgur.com/cXYo5bi.png\"> Eva Icons</h1>\n<img src=\"https://i.imgur.com/oDmqDkE.jpg\">\n\n**Eva Icons** is a pack of more than 480 beautifully crafted Open Source icons for common actions and items. Additionally, Eva Icons supports 4 animation types: `zoom`, `pulse`, `shake` and `flip`.  Download on desktop to use them in your digital products for Web, iOS and Android. Icons are provided in two visual types: `Fill` and `Outline` and in several formats, including `PNG`, `SVG`, `font`, `Sketch`, etc.\n\n## Download\n- [Complete Eva Icons Package](https://akveo.github.io/eva-icons/eva-icons.zip)\n- [NPM Package](https://www.npmjs.com/package/eva-icons)\n- you also can download icons one by one in `PNG` and `SVG` formats from [Eva Icons Website](https://akveo.github.io/eva-icons/?utm_campaign=eva_icons%20-%20home%20-%20eva_icons%20github%20readme&utm_source=eva_icons&utm_medium=referral&utm_content=github_readme_download_eva_icons).\n\n### CDN\n\nLoad from CDN in your project:\n```html\n<script src=\"https://unpkg.com/eva-icons\"></script>\n```\nAfter including the script, `eva` will be available as a global variable.\n\n### NPM\n\n- Install the package:\n```\nnpm i eva-icons\n``` \n\n- Include it to your page:\n```html\n<script src=\"path/to/dist/eva-icons.js\"></script>\n```\n\n- Or require the package (may vary depending on your build system):\n\n```js\nconst eva = require('eva-icons');\n```\n\n```js\nimport * as eva from 'eva-icons';\n```\n\n## How to use\n\n### JavaScript\n\n- Add the `data-eva` attribute with the icon name to an element:\n\n```html\n<i data-eva=\"github\"></i>\n```\n\n- Call `eva.replace();` to replace all elements with the `data-eva` data attribute with SVG elements. You can also pass some additional parameters to the `replace` method to modify the `replace` function behavior. \n\n```html\n<!DOCTYPE html>\n<html lang=\"en\">\n  <title></title>\n  <script src=\"https://unpkg.com/eva-icons\"></script>\n  <body>\n  \n    <i data-eva=\"github\"></i>\n\n    <script>\n      eva.replace()\n    </script>\n  </body>\n</html>\n```\n*Thanks to Feather Icons for the build process inspiration.*\n\n- Additional attributes: \n  * `data-eva-fill`: set icon color\n  * `data-eva-height`: set icon height\n  * `data-eva-width`: set icon width\n  * `data-eva-animation`: [set icon animation](#animation)\n  \n```html\n<i data-eva=\"github\" data-eva-fill=\"#ff0000\" data-eva-height=\"48\" data-eva-width=\"48\"></i>\n```\n\n### Fonts\n\nEva Icons are also available as a Web Font.\n\n- Include the font css into your page:\n\n```html\n<link href=\"path/to/style/eva-icons.css\">\n```\n- Add `eva` and `eva-icon` classes to an element:\n\n```html\n<i class=\"eva eva-github\"></i>\n```\n\nWe recommend using SVG icons due to better rendering and performance capabilities, [more details](https://css-tricks.com/icon-fonts-vs-svg/).\n\n## Documentation\n\n### `eva.replace(options)`\n\nReplaces all elements that have a `data-eva` attribute with SVG markup.\n\n`options` optional object.\n\n#### Available 'option' properties:\n| Name |  Type   |  Default value | Description |\n|------| ------  | -------------  |-------------|\n| fill | string | none           | Icon color  |\n| width | string or number | 24px    | Icon width  |\n| height | string or number | 24px    | Icon height  |\n| class | string | none | Custom css class  |\n| animation | object | none    | [Icon animation](#animation)  |\n\n### Animation \n- Add the `data-eva-animation` attribute with the animation type `(zoom, pulse, shake and flip)` to an element:\n\n```html\n<i data-eva=\"github\" data-eva-animation=\"zoom\"></i>\n```\n\n- Additional animation attributes:\n  * `data-eva-hover`: Makes the animation available on hover. Default value is `true`. Available true or false.\n  * `data-eva-infinite`: Makes the animation infinite. Default value is `false`. Available true or false.\n\n```html\n<i data-eva=\"github\" data-eva-animation=\"zoom\" data-eva-hover=\"false\" data-eva-infinite=\"true\"></i>\n```\n\n> **Note:** In the above example `github icon` will be always animated. This type of animation will be applied only to current icons.\n\n- Pass animation as property in a `eva.replace` method.\n\n```js\neva.replace({\n  animation: {\n    type: string, // zoom, pulse, shake, flip\n    hover: boolean, // default true\n    infinite: boolean, // default false\n  }\n});\n```\n> **Note:** The animation will be applied to all replaced elements.\n\n- Add `eva-parent-hover` class to the parent container in a case you want to activate the animation hovering on the parent element.\n\n```html\n<div class=\"eva-parent-hover\">\n  <i data-eva=\"github\" data-eva-animation=\"zoom\"></i>\n  Zoom animation\n</div>\n```\n\n## 3rd party implementations\n\n- [React Native](https://github.com/artyorsh/react-native-eva-icons)\n- [Flutter](https://github.com/piyushmaurya23/eva_icons_flutter)\n\n## License\n[MIT](LICENSE.txt) license.\n\n## More from Akveo\n\n- [Nebular](https://github.com/akveo/nebular) - Angular Components, Auth and Security\n- [ngx-admin](https://github.com/akveo/ngx-admin) - the best Angular admin template\n\n## How can I support the developers?\n- Star our GitHub repo :star:\n- Create pull requests, submit bugs, suggest new features or documentation updates :wrench:\n- Follow us on [Twitter](https://twitter.com/akveo_inc) :feet:\n- Like our page on [Facebook](https://www.facebook.com/akveo/) :thumbsup:\n\n## From Developers\nMade with :heart: by [Akveo team](https://www.akveo.com?utm_campaign=services%20-%20homepage%20-%20eva_icons%20github%20readme&utm_source=eva_icons&utm_medium=referral&utm_content=readme_made_with_heart). Follow us on [Twitter](https://twitter.com/akveo_inc) to get the latest news first!\nWe're always happy to receive your feedback!\n"
  },
  {
    "path": "angular.json",
    "content": "{\n  \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n  \"version\": 1,\n  \"newProjectRoot\": \"projects\",\n  \"projects\": {\n    \"eva-icons\": {\n      \"root\": \"\",\n      \"sourceRoot\": \"src\",\n      \"projectType\": \"application\",\n      \"architect\": {\n        \"build\": {\n          \"builder\": \"@angular-devkit/build-angular:browser\",\n          \"options\": {\n            \"preserveSymlinks\": true,\n            \"outputPath\": \"dist\",\n            \"index\": \"src/index.html\",\n            \"main\": \"src/main.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"src/tsconfig.app.json\",\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\",\n              { \"glob\": \"**/*\", \"input\": \"package-build/fill\", \"output\": \"./fill\" },\n              { \"glob\": \"**/*\", \"input\": \"package-build/outline\", \"output\": \"./outline\" },\n              { \"glob\": \"**/*.zip\", \"input\": \"package-build/\", \"output\": \"./\" }\n            ],\n            \"styles\": [\n              \"node_modules/bootstrap/dist/css/bootstrap.css\",\n              \"src/app/@theme/styles/styles.scss\"\n            ],\n            \"scripts\": []\n          },\n          \"configurations\": {\n            \"production\": {\n              \"fileReplacements\": [\n                {\n                  \"replace\": \"src/environments/environment.ts\",\n                  \"with\": \"src/environments/environment.prod.ts\"\n                }\n              ],\n              \"optimization\": true,\n              \"outputHashing\": \"all\",\n              \"sourceMap\": false,\n              \"extractCss\": true,\n              \"namedChunks\": false,\n              \"aot\": true,\n              \"extractLicenses\": true,\n              \"vendorChunk\": false,\n              \"buildOptimizer\": true\n            }\n          }\n        },\n        \"serve\": {\n          \"builder\": \"@angular-devkit/build-angular:dev-server\",\n          \"options\": {\n            \"browserTarget\": \"eva-icons:build\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"browserTarget\": \"eva-icons:build:production\"\n            }\n          }\n        },\n        \"extract-i18n\": {\n          \"builder\": \"@angular-devkit/build-angular:extract-i18n\",\n          \"options\": {\n            \"browserTarget\": \"eva-icons:build\"\n          }\n        },\n        \"test\": {\n          \"builder\": \"@angular-devkit/build-angular:karma\",\n          \"options\": {\n            \"main\": \"src/test.ts\",\n            \"polyfills\": \"src/polyfills.ts\",\n            \"tsConfig\": \"src/tsconfig.spec.json\",\n            \"karmaConfig\": \"src/karma.conf.js\",\n            \"styles\": [\n              \"node_modules/bootstrap/dist/css/bootstrap.css\",\n              \"src/app/@theme/styles/styles.scss\"\n            ],\n            \"scripts\": [],\n            \"assets\": [\n              \"src/favicon.ico\",\n              \"src/assets\"\n            ]\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": [\n              \"src/tsconfig.app.json\",\n              \"src/tsconfig.spec.json\"\n            ],\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        }\n      }\n    },\n    \"eva-icons-e2e\": {\n      \"root\": \"e2e/\",\n      \"projectType\": \"application\",\n      \"architect\": {\n        \"e2e\": {\n          \"builder\": \"@angular-devkit/build-angular:protractor\",\n          \"options\": {\n            \"protractorConfig\": \"e2e/protractor.conf.js\",\n            \"devServerTarget\": \"eva-icons:serve\"\n          },\n          \"configurations\": {\n            \"production\": {\n              \"devServerTarget\": \"eva-icons:serve:production\"\n            }\n          }\n        },\n        \"lint\": {\n          \"builder\": \"@angular-devkit/build-angular:tslint\",\n          \"options\": {\n            \"tsConfig\": \"e2e/tsconfig.e2e.json\",\n            \"exclude\": [\n              \"**/node_modules/**\"\n            ]\n          }\n        }\n      }\n    }\n  },\n  \"defaultProject\": \"eva-icons\",\n  \"schematics\": {\n    \"@schematics/angular:component\": {\n      \"prefix\": \"app\",\n      \"styleext\": \"scss\"\n    },\n    \"@schematics/angular:directive\": {\n      \"prefix\": \"app\"\n    }\n  }\n}\n"
  },
  {
    "path": "e2e/src/app.e2e-spec.ts",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nimport { browser, element, by } from 'protractor';\n\ndescribe('App common behavior', () => {\n  beforeEach((done) => {\n    browser.get('').then(() => done());\n  });\n\n  it('should be active outline', () => {\n    element(by.css('eva-type-switcher .nav-item.active span')).getText().then(value => {\n      expect(value).toEqual('Outline');\n    });\n  });\n\n  it('should contain list of icons', () => {\n    element.all(by.css('eva-icon-list nb-card')).count()\n      .then((count) => {\n        expect(count).toBeGreaterThan(10);\n      });\n  });\n\n  it('should search \"brush\" icon', () => {\n    element(by.css('.search-input')).sendKeys('brush')\n      .then(() => {\n        return browser.wait(() => {\n          return element\n            .all(by.css('eva-icon-list nb-card:not(.fake-card)'))\n            .count()\n            .then((count) => {\n              return count === 1;\n            });\n        }, 100);\n      });\n  });\n\n  it('should open download icon popup', () => {\n    element(by.css('eva-icon-list nb-card:nth-of-type(1)'))\n      .click()\n      .then(() => {\n        const downloadIconPopup = element(by.css('eva-download-icon')).isDisplayed();\n\n        expect(downloadIconPopup).toBeTruthy();\n      });\n  });\n});\n"
  },
  {
    "path": "e2e/src/rounting.e2e-spec.ts",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nimport { browser, element, by } from 'protractor';\n\ndescribe('Routing', () => {\n  it('should open outline page', (done) => {\n    browser.get('#/?type=outline')\n      .then(() => {\n        element(by.css('eva-type-switcher .nav-item.active span'))\n          .getText()\n          .then(value => {\n            expect(value).toEqual('Outline');\n\n            done();\n          });\n      });\n  });\n\n  it('should open fill page', (done) => {\n    browser.get('#/?type=fill')\n      .then(() => {\n        element(by.css('eva-type-switcher .nav-item.active span'))\n          .getText()\n          .then(value => {\n            expect(value).toEqual('Fill');\n\n            done();\n          });\n      });\n  });\n\n  it('should open fill page with github icon', (done) => {\n    browser.get('#/?type=fill&searchKey=github')\n      .then(() => {\n        element\n          .all(by.css('eva-icon-list nb-card:not(.fake-card)'))\n          .count()\n          .then(value => {\n            expect(value).toEqual(1);\n\n            done();\n          });\n      });\n  });\n});\n"
  },
  {
    "path": "e2e/tsconfig.e2e.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/app\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"jasminewd2\",\n      \"node\"\n    ]\n  }\n}"
  },
  {
    "path": "package/src/animation.scss",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\n.eva-animation {\n  animation-duration: 1s;\n  animation-fill-mode: both;\n}\n\n.eva-infinite {\n  animation-iteration-count: infinite;\n}\n\n.eva-icon-shake {\n  animation-name: eva-shake;\n}\n\n.eva-icon-zoom {\n  animation-name: eva-zoomIn;\n}\n\n.eva-icon-pulse {\n  animation-name: eva-pulse;\n}\n\n.eva-icon-flip {\n  animation-name: eva-flipInY;\n}\n\n.eva-hover {\n  display: inline-block;\n}\n\n.eva-hover, .eva-parent-hover {\n  &:hover {\n    .eva-icon-hover-shake {\n      animation-name: eva-shake;\n    }\n\n    .eva-icon-hover-zoom {\n      animation-name: eva-zoomIn;\n    }\n\n    .eva-icon-hover-pulse {\n      animation-name: eva-pulse;\n    }\n\n    .eva-icon-hover-flip {\n      animation-name: eva-flipInY;\n    }\n  }\n}\n\n@keyframes eva-flipInY {\n  from {\n    transform: perspective(400px) rotate3d(0, 1, 0, 90deg);\n    animation-timing-function: ease-in;\n    opacity: 0;\n  }\n\n  40% {\n    transform: perspective(400px) rotate3d(0, 1, 0, -20deg);\n    animation-timing-function: ease-in;\n  }\n\n  60% {\n    transform: perspective(400px) rotate3d(0, 1, 0, 10deg);\n    opacity: 1;\n  }\n\n  80% {\n    transform: perspective(400px) rotate3d(0, 1, 0, -5deg);\n  }\n\n  to {\n    transform: perspective(400px);\n  }\n}\n\n@keyframes eva-shake {\n  from,\n  to {\n    transform: translate3d(0, 0, 0);\n  }\n\n  10%,\n  30%,\n  50%,\n  70%,\n  90% {\n    transform: translate3d(-3px, 0, 0);\n  }\n\n  20%,\n  40%,\n  60%,\n  80% {\n    transform: translate3d(3px, 0, 0);\n  }\n}\n\n@keyframes eva-pulse {\n  from {\n    transform: scale3d(1, 1, 1);\n  }\n\n  50% {\n    transform: scale3d(1.2, 1.2, 1.2);\n  }\n\n  to {\n    transform: scale3d(1, 1, 1);\n  }\n}\n\n@keyframes eva-zoomIn {\n  from {\n    opacity: 1;\n    transform: scale3d(0.5, 0.5, 0.5);\n  }\n\n  50% {\n    opacity: 1;\n  }\n}\n"
  },
  {
    "path": "package/src/default-attrs.json",
    "content": "{\n  \"xmlns\": \"http://www.w3.org/2000/svg\",\n  \"width\": 24,\n  \"height\": 24,\n  \"viewBox\": \"0 0 24 24\"\n}\n"
  },
  {
    "path": "package/src/icon.js",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nimport classnames from 'classnames/dedupe';\n\nimport DEFAULT_ATTRS from './default-attrs.json';\nconst defaultAnimationOptions = {\n  hover: true,\n};\n\nconst isString = (value) => typeof value === 'string' || value instanceof String;\n\nclass Icon {\n  constructor(name, contents) {\n    this.name = name;\n    this.contents = contents;\n    this.attrs = {\n      ...DEFAULT_ATTRS,\n      ...{ class: `eva eva-${name}` },\n    };\n  }\n\n  toSvg(attrs = {}) {\n    const { animation, ...remAttrs } = attrs;\n    const animationOptions = getAnimationOptions(animation);\n    const animationClasses = animationOptions ? animationOptions.class : '';\n    const combinedAttrs = {\n      ...this.attrs,\n      ...remAttrs,\n      ...{ class: classnames(this.attrs.class, attrs.class, animationClasses) },\n    };\n    const svg = `<svg ${attrsToString(combinedAttrs)}>${this.contents}</svg>`;\n\n    return !!animationOptions ? animationOptions.hover ? `<i class=\"eva-hover\">${svg}</i>` : svg : svg;\n  }\n\n  toString() {\n    return this.contents;\n  }\n}\n\nfunction getAnimationOptions(animation) {\n  if (!animation) {\n    return null;\n  }\n\n  if (animation.hover) {\n    animation.hover = isString(animation.hover) ? JSON.parse(animation.hover) : animation.hover;\n  }\n\n  const mergedAnimationOptions = {\n    ...defaultAnimationOptions,\n    ...animation,\n  };\n  const animationType = mergedAnimationOptions.hover ?\n    `eva-icon-hover-${mergedAnimationOptions.type}` :\n    `eva-icon-${mergedAnimationOptions.type}`;\n  mergedAnimationOptions.class = classnames(\n    {\n      'eva-animation': true,\n      'eva-infinite': isString(animation.infinite) ? JSON.parse(animation.infinite) : animation.infinite,\n    },\n    animationType,\n  );\n\n  return mergedAnimationOptions;\n}\n\nfunction attrsToString(attrs) {\n  return Object.keys(attrs)\n    .map(key => `${key}=\"${attrs[key]}\"`)\n    .join(' ');\n}\n\nexport default Icon;\n"
  },
  {
    "path": "package/src/icons.js",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nimport Icon from './icon';\nimport icons from '../../package-build/eva-icons.json';\n\nexport default Object.keys(icons)\n  .map(key => new Icon(key, icons[key]))\n  .reduce((object, icon) => {\n    object[icon.name] = icon;\n\n    return object;\n  }, {});\n"
  },
  {
    "path": "package/src/index.js",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nimport icons from './icons';\nimport replace from './replace';\nimport style from './animation.scss';\n\nif (typeof window !== 'undefined') {\n  style._insertCss();\n}\n\nexport { icons, replace };\n"
  },
  {
    "path": "package/src/replace.js",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nimport classnames from 'classnames/dedupe';\n\nimport icons from './icons';\n\nconst animationKeys = {\n  'data-eva-animation': 'type',\n  'data-eva-hover': 'hover',\n  'data-eva-infinite': 'infinite',\n};\nconst dataAttributesKeys = {\n  'data-eva': 'name',\n  'data-eva-width': 'width',\n  'data-eva-height': 'height',\n  'data-eva-fill': 'fill',\n};\n\nfunction replace(options = {}) {\n  if (typeof document === 'undefined') {\n    throw new Error('`eva.replace()` only works in a browser environment.');\n  }\n\n  const elementsToReplace = document.querySelectorAll('[data-eva]');\n\n  Array.from(elementsToReplace).forEach(element =>\n    replaceElement(element, options),\n  );\n}\n\nfunction replaceElement(element, options = {}) {\n  const { name, ...elementAttrs } = getAttrs(element);\n\n  const svgString = icons[name].toSvg({\n    ...options,\n    ...elementAttrs,\n    animation: getAnimationObject(options.animation, elementAttrs.animation),\n    ...{ class: classnames(options.class, elementAttrs.class) },\n  });\n  const svgDocument = new DOMParser().parseFromString(\n    svgString,\n    'text/html',\n  );\n  const svgElement = svgDocument.querySelector('.eva-hover') || svgDocument.querySelector('svg');\n\n  element.parentNode.replaceChild(svgElement, element);\n}\n\nfunction getAttrs(element) {\n  return Array.from(element.attributes).reduce((attrs, attr) => {\n    if (!!animationKeys[attr.name]) {\n      attrs['animation'] = {\n        ...attrs['animation'],\n        [animationKeys[attr.name]]: attr.value,\n      };\n    } else {\n      attrs = {\n        ...attrs,\n        ...getAttr(attr),\n      };\n    }\n\n    return attrs;\n  }, {});\n}\n\nfunction getAttr(attr) {\n  if (!!dataAttributesKeys[attr.name]) {\n    return ({\n      [dataAttributesKeys[attr.name]]: attr.value,\n    });\n  }\n\n  return ({\n    [attr.name]: attr.value,\n  });\n}\n\nfunction getAnimationObject(optionsAnimation, elementAttrsAnimation) {\n  if (optionsAnimation || elementAttrsAnimation) {\n    return ({\n      ...optionsAnimation,\n      ...elementAttrsAnimation,\n    });\n  }\n\n  return null;\n}\n\nexport default replace;\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"eva-icons-landing\",\n  \"version\": \"1.1.3\",\n  \"browserslist\": [\n    \"> 1%\",\n    \"last 2 versions\",\n    \"IE 11\"\n  ],\n  \"scripts\": {\n    \"ng\": \"ng\",\n    \"ngh\": \"ngh\",\n    \"start\": \"ng serve --port 3333 --host 0.0.0.0\",\n    \"build\": \"ng build\",\n    \"build:prod\": \"npm run icons:prepare && npm run build -- --prod --aot  --base-href /eva-icons/\",\n    \"test\": \"ng test\",\n    \"lint\": \"ng lint\",\n    \"lint:fix\": \"ng lint eva-icons --fix\",\n    \"lint:styles\": \"stylelint ./src/**/*.scss\",\n    \"lint:ci\": \"npm run lint && npm run lint:styles\",\n    \"e2e\": \"ng e2e\",\n    \"prepush\": \"npm run lint:ci\",\n    \"build:icons\": \"node ./scripts/index.js\",\n    \"icons:prepare\": \"npm run build:icons && webpack\",\n    \"publish\": \"npm publish --access=public package-build\",\n    \"gh-pages\": \"npm run build:prod && npm run ngh -- --dir ./dist --no-silent\"\n  },\n  \"private\": true,\n  \"dependencies\": {\n    \"@angular/animations\": \"^6.1.0\",\n    \"@angular/common\": \"^6.1.0\",\n    \"@angular/compiler\": \"^6.1.0\",\n    \"@angular/core\": \"^6.1.0\",\n    \"@angular/forms\": \"^6.1.0\",\n    \"@angular/http\": \"^6.1.0\",\n    \"@angular/platform-browser\": \"^6.1.0\",\n    \"@angular/platform-browser-dynamic\": \"^6.1.0\",\n    \"@angular/router\": \"^6.1.0\",\n    \"@nebular/theme\": \"^2.0.2\",\n    \"bootstrap\": \"^4.1.3\",\n    \"core-js\": \"^2.5.4\",\n    \"file-saver\": \"^1.3.8\",\n    \"rxjs\": \"^6.0.0\",\n    \"zone.js\": \"~0.8.26\"\n  },\n  \"devDependencies\": {\n    \"@angular-devkit/build-angular\": \"~0.7.0\",\n    \"@angular/cdk\": \"^6.4.7\",\n    \"@angular/cli\": \"~6.1.4\",\n    \"@angular/compiler-cli\": \"^6.1.0\",\n    \"@angular/language-service\": \"^6.1.0\",\n    \"@babel/core\": \"^7.1.0\",\n    \"@babel/preset-env\": \"^7.1.0\",\n    \"@nebular/bootstrap\": \"^2.0.2\",\n    \"@types/file-saver\": \"^1.3.0\",\n    \"@types/jasmine\": \"~2.8.6\",\n    \"@types/jasminewd2\": \"~2.0.3\",\n    \"@types/node\": \"~8.9.4\",\n    \"angular-cli-ghpages\": \"^0.5.3\",\n    \"archiver\": \"^3.0.0\",\n    \"babel-cli\": \"^6.26.0\",\n    \"babel-loader\": \"^8.0.2\",\n    \"cheerio\": \"^1.0.0-rc.2\",\n    \"classnames\": \"^2.2.6\",\n    \"codelyzer\": \"~4.2.1\",\n    \"cross-env\": \"^5.2.0\",\n    \"css-loader\": \"^1.0.0\",\n    \"fs-extra\": \"^7.0.0\",\n    \"globby\": \"^8.0.1\",\n    \"gm\": \"^1.23.1\",\n    \"html-minifier\": \"^3.5.20\",\n    \"isomorphic-style-loader\": \"^5.1.0\",\n    \"jasmine-core\": \"~2.99.1\",\n    \"jasmine-spec-reporter\": \"~4.2.1\",\n    \"karma\": \"~1.7.1\",\n    \"karma-chrome-launcher\": \"~2.2.0\",\n    \"karma-coverage-istanbul-reporter\": \"~2.0.0\",\n    \"karma-jasmine\": \"~1.1.1\",\n    \"karma-jasmine-html-reporter\": \"^0.2.2\",\n    \"lazy-require\": \"^2.2.0\",\n    \"protractor\": \"~5.4.0\",\n    \"stylelint\": \"^9.5.0\",\n    \"svgo\": \"^1.1.1\",\n    \"ts-node\": \"~5.0.1\",\n    \"tslint\": \"~5.9.1\",\n    \"typescript\": \"~2.7.2\",\n    \"uglifyjs-webpack-plugin\": \"^2.0.1\",\n    \"webfont\": \"^8.1.4\",\n    \"webpack\": \"^4.20.2\",\n    \"webpack-cli\": \"^3.1.1\",\n    \"webpack-merge\": \"^4.1.4\"\n  }\n}\n"
  },
  {
    "path": "scripts/config.js",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nconst path = require('path');\n\nconst config = {\n  'convertOptions': {\n    'png': {\n      'sizes': ['128']\n    }\n  },\n  'copy': [\n    {\n      'format': 'svg'\n    },\n  ],\n  'srcPath': path.join(__dirname, `../package/icons`),\n  'desPath': path.join(__dirname, `../package-build`),\n  'defaultExtension': 'svg'\n};\n\nmodule.exports = config;\n"
  },
  {
    "path": "scripts/helpers/fs-helper.js",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nconst fs = require('fs-extra');\n\nconst fileSystemHelper = {\n  remove(srcPath) {\n    return fs.remove(srcPath);\n  },\n\n  getFilesByPath(srcPath) {\n    return new Promise((resolve, reject) => {\n      fs.readdir(srcPath, (err, files) => {\n        if (err) {\n          reject(err);\n        }\n\n\n        const output = {\n          files,\n          fileNames: files.map((file) => this.trimFileExtension(file))\n        };\n\n        resolve(output);\n      })\n    });\n  },\n\n  mkDirByPathSync(targetDir) {\n    if (fs.pathExistsSync(targetDir)) {\n      return;\n    }\n\n    return fs.mkdirsSync(targetDir);\n  },\n\n  copy(srcPath, desPath) {\n    if (fs.pathExistsSync(srcPath)) {\n      return fs.copy(srcPath, desPath);\n    }\n\n    return Promise.resolve();\n  },\n\n  isFolder(path) {\n    return fs.lstatSync(path).isDirectory();\n  },\n\n  getExtension(fileName) {\n    return fileName\n      .slice((Math.max(0, fileName.lastIndexOf('.')) || Infinity) + 1);\n  },\n\n  trimFileExtension(fileName) {\n    return fileName.replace(/\\.[^/.]+$/, '');\n  },\n};\n\nmodule.exports = fileSystemHelper;\n"
  },
  {
    "path": "scripts/helpers/gm-helper.js",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nconst gm = require('gm').subClass({imageMagick: true});\n\nconst graphicsMagickHelper = {\n  convertAndResize(size, format, srcPath) {\n    return gm(srcPath)\n      .resize(size, size)\n      .setFormat(format);\n  },\n\n  convert(format, srcPath) {\n    return gm(srcPath)\n      .setFormat(format);\n  },\n\n  resize(size, srcPath) {\n    return gm(srcPath)\n      .resize(size, size);\n  },\n\n  convertSvgToPng(size, format, srcPath) {\n    return gm(srcPath)\n      .in('-size', `${size}x${size}`)\n      .background('transparent')\n      .setFormat(format);\n  }\n};\n\nmodule.exports = graphicsMagickHelper;\n"
  },
  {
    "path": "scripts/index.js",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nconst path = require('path');\n\nconst config = require('./config');\nconst fileSystemHelper = require('./helpers/fs-helper');\nconst processSvgs = require('./services/process-svgs');\nconst processPngs = require('./services/process-pngs');\nconst buildIconsJSON = require('./services/build-icons-json');\nconst buildSprite = require('./services/build-sprite');\nconst renameIcons = require('./services/rename-icon');\nconst mergeIconsJSON = require('./services/merge-icons-json');\nconst zip = require('./services/zip');\nconst buildWebFont = require('./services/build-web-font');\n\nconst renameSrcIcons = (srcPath, srcIcons, postfix, extension) => {\n  if (postfix.toLowerCase() === 'outline') {\n    return renameIcons(srcPath, srcIcons, postfix, extension);\n  }\n\n  return Promise.resolve(srcIcons);\n};\nconst prepareSvgIcons = (icons, srcPath, desPath) => {\n  const desSvgPath = path.join(desPath, 'svg');\n\n  return processSvgs(icons, srcPath, desSvgPath);\n};\nconst preparePngIcons = (icons, srcPath, desPath) => {\n  const desPngPath = path.join(desPath, 'png');\n\n  return processPngs(icons, srcPath, desPngPath);\n};\nconst merge = () => {\n  return fileSystemHelper.getFilesByPath(config.desPath)\n    .then(sourceFiles => {\n      return mergeIconsJSON(sourceFiles.files)\n        .then(() => buildSprite('eva'));\n    });\n};\nconst copyPackageJson = () => {\n  const fileName = 'package.json';\n  const srcPath = path.join(__dirname, fileName);\n  const desPath = path.join(config.desPath, fileName);\n\n  return fileSystemHelper.copy(srcPath, desPath);\n};\nconst copyReadme = () => {\n  const fileName = 'README.md';\n  const srcPath = path.join(__dirname, '..', fileName);\n  const desPath = path.join(config.desPath, fileName);\n\n  return fileSystemHelper.copy(srcPath, desPath);\n};\n\nfileSystemHelper.remove(config.desPath)\n  .then(() => {\n    return fileSystemHelper.getFilesByPath(config.srcPath)\n      .then((srcDirectories) => {\n        const srcFolders = srcDirectories.files;\n\n        return Promise.all(srcFolders.map((folder) => {\n          const srcIconsPath = path.join(config.srcPath, folder, config.defaultExtension);\n          const desIconsPath = path.join(config.desPath, folder);\n\n          return fileSystemHelper.getFilesByPath(srcIconsPath)\n            .then((sourceIcons) => {\n              return renameSrcIcons(srcIconsPath, sourceIcons.files, folder, 'svg')\n                .then((renamedFiles) => Promise.all([\n                  prepareSvgIcons(renamedFiles, srcIconsPath, desIconsPath),\n                  preparePngIcons(renamedFiles, srcIconsPath, desIconsPath),\n                ])\n                  .then(() => buildIconsJSON(renamedFiles, path.join(desIconsPath, 'svg'), folder))\n                  .then(() => buildSprite(folder))\n                );\n            });\n          }))\n          .then(() => merge())\n          .then(() => {\n            const archivePath = path.join(config.srcPath, '../archive');\n\n            zip(srcDirectories.files, archivePath);\n          });\n      })\n  })\n  .then(() => buildWebFont())\n  .then(() => copyPackageJson())\n  .then(() => copyReadme())\n  .catch((error) => {\n    const errorMessage = error && error.message ? error.message : `${error}, Smth went wrong`;\n\n    console.error(errorMessage);\n  });\n"
  },
  {
    "path": "scripts/package.json",
    "content": "{\n  \"name\": \"eva-icons\",\n  \"version\": \"1.1.3\",\n  \"description\": \"Eva Icons - beautifully crafted Open Source UI icons for common actions and items.\",\n  \"main\": \"eva.js\",\n  \"unpkg\": \"eva.min.js\",\n  \"license\": \"MIT\",\n  \"author\": \"akveo\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/akveo/eva-icons.git\"\n  },\n  \"bugs\": {\n    \"url\": \"https://github.com/akveo/eva-icons/issues\"\n  },\n  \"homepage\": \"https://github.com/akveo/eva-icons#readme\",\n  \"keywords\": [\n    \"fonts\",\n    \"icon font\",\n    \"icons\",\n    \"nebular\",\n    \"akveo\",\n    \"web font\"\n  ]\n}\n"
  },
  {
    "path": "scripts/services/build-icons-json.js",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nconst fs = require('fs-extra');\nconst path = require('path');\n\nconst config = require('../config');\nconst buildIconsObject = require('./build-icons-object');\n\nconst getSvg = srcPath => svgFile => fs.readFileSync(path.join(srcPath, svgFile));\n\nconst buildIconsJSON = (srcIcons, srcPath, folder) => {\n  const prefix = folder.toLowerCase();\n  const outFileName = `${prefix}-icons.json`;\n  const outFile = path.resolve(config.desPath, outFileName);\n\n  return new Promise((resolve) => {\n    const icons = buildIconsObject(srcIcons, getSvg(srcPath));\n\n    console.log(`Building ${outFile}...`);\n\n    fs.writeFileSync(outFile, JSON.stringify(icons));\n\n    resolve();\n  });\n};\n\nmodule.exports = buildIconsJSON;\n"
  },
  {
    "path": "scripts/services/build-icons-object.js",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nconst path = require('path');\nconst cheerio = require('cheerio');\nconst htmlMinifier = require('html-minifier');\n\nconst getSvgContents = (svg) => {\n  const $ = cheerio.load(svg, { xmlMode: true });\n\n  return htmlMinifier.minify(\n    $('svg').html(),\n    {\n      collapseWhitespace: true,\n      keepClosingSlash : true,\n    });\n};\n\nconst buildIconsObject = (svgFiles, getSvg) => {\n  return svgFiles\n    .map(svgFile => {\n      const name = path.basename(svgFile, '.svg');\n      const svg = getSvg(svgFile);\n      const contents = getSvgContents(svg);\n\n      return { name, contents };\n    })\n    .reduce((icons, icon) => {\n      icons[icon.name] = icon.contents;\n\n      return icons;\n    }, {});\n};\n\nmodule.exports = buildIconsObject;\n"
  },
  {
    "path": "scripts/services/build-sprite-string.js",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nconst DEFAULT_ATTRS = require('../../package/src/default-attrs.json');\n\nconst toSvgSymbol = (name, contents) => {\n  return `<symbol id=\"${name}\" viewBox=\"${DEFAULT_ATTRS.viewBox}\">${\n    contents\n    }</symbol>`;\n};\n\nconst buildSpriteString = (icons) => {\n  const symbols = Object.keys(icons)\n    .map(icon => toSvgSymbol(icon, icons[icon]))\n    .join('');\n\n  return `<svg xmlns=\"${DEFAULT_ATTRS.xmlns}\"><defs>${symbols}</defs></svg>`;\n};\n\nmodule.exports = buildSpriteString;\n"
  },
  {
    "path": "scripts/services/build-sprite.js",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nconst fs = require('fs-extra');\nconst path = require('path');\nconst lazyRequire = require('lazy-require');\n\nconst config = require('../config');\nconst buildSpriteString = require('./build-sprite-string');\n\nconst buildSprite = (folder) => {\n  const prefix = folder.toLowerCase();\n  const inFileName = `${prefix}-icons.json`;\n  const outFileName = `${prefix}-sprite.svg`;\n  const inFile = path.join(config.desPath, inFileName);\n  const outFile = path.join(config.desPath, outFileName);\n\n  return new Promise((resolve) => {\n    lazyRequire.sync(inFile, (error, icons) => {\n      console.log(`Building ${outFile}...`);\n\n      fs.writeFileSync(outFile, buildSpriteString(icons));\n\n      resolve();\n    });\n  });\n};\n\nmodule.exports = buildSprite;\n"
  },
  {
    "path": "scripts/services/build-web-font.js",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nconst webfont = require('webfont').default;\nconst path = require('path');\nconst fs = require('fs-extra');\n\nconst processScss = require('./process-scss');\nconst prepareSVGsForFonts = require('./web-font-process-svgs');\nconst config = require('../config');\nconst fileSystemHelper = require('../helpers/fs-helper');\n\nconst webFontOptions = {\n  files: path.resolve(config.desPath, '**/icons/svg/*.svg'),\n  fontName: 'Eva-Icons',\n  template: 'css',\n  templateFontName: 'Eva-Icons',\n  templateClassName: 'eva',\n  templateFontPath: './fonts',\n  normalize: true,\n  fontHeight: 600,\n};\n\nconst buildFont = () => {\n  const dest = path.join(config.desPath, '/style/fonts');\n  const destTemplate = path.join(config.desPath, '/style');\n\n  fileSystemHelper.mkDirByPathSync(dest);\n\n  return prepareSVGsForFonts()\n    .then(() => {\n      return webfont(webFontOptions)\n        .then((result) => {\n          const { fontName, template } = result.config;\n\n          return Promise.all(\n            Object.keys(result).map(type => {\n              if (\n                type === 'config' ||\n                type === 'usedBuildInTemplate' ||\n                type === 'glyphsData'\n              ) {\n                return Promise.resolve();\n              }\n\n              const content = result[type];\n              let file = null;\n\n              if (type !== 'template') {\n                file = path.resolve(dest, `${fontName}.${type}`);\n              } else {\n                file = path.resolve(destTemplate, `${fontName.toLowerCase()}.${template}`);\n              }\n\n              return fs.outputFile(file, content);\n            }))\n            .then(() => processScss())\n            .then(() => fileSystemHelper.remove(path.join(config.desPath, '/style/icons')));\n        });\n  });\n};\n\nmodule.exports = buildFont;\n"
  },
  {
    "path": "scripts/services/merge-icons-json.js",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nconst fs = require('fs-extra');\nconst path = require('path');\n\nconst config = require('../config');\n\nconst mergeIconsJSON = (files) => {\n  const outFileName = 'eva-icons.json';\n  const outFile = path.join(config.desPath, outFileName);\n\n  return new Promise((resolve) => {\n    const fileContent = files\n      .filter(file => path.extname(file) === '.json')\n      .reduce((result, item) => {\n        const content = fs.readFileSync(path.join(config.desPath, item), 'utf-8');\n\n        return  {\n          ...result,\n          ...JSON.parse(content),\n        };\n      }, {});\n\n    console.log(`Building ${outFile}...`);\n\n    fs.writeFileSync(outFile, JSON.stringify(fileContent));\n\n    resolve();\n  });\n};\n\nmodule.exports = mergeIconsJSON;\n"
  },
  {
    "path": "scripts/services/oprimize-svg.js",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nconst Svgo = require('svgo');\n\nconst defaultOptions = [\n  { convertShapeToPath: false },\n  { mergePaths: false },\n  { inlineStyles: { onlyMatchedOnce: false } },\n  { removeAttrs: { attrs: '(fill|stroke.*)' } },\n  { removeTitle: true },\n];\n\nconst optimizeSvg = (svg, options = []) => {\n  const svgo = new Svgo({\n    plugins: defaultOptions.concat(options),\n  });\n\n  return svgo.optimize(svg)\n    .then(({ data }) => data );\n};\n\nmodule.exports = optimizeSvg;\n"
  },
  {
    "path": "scripts/services/process-pngs.js",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nconst path = require('path');\n\nconst config = require('../config');\nconst TransformPngIcons = require('./transform-png-icons');\n\nconst processPngs = (srcFiles, srcPath, desPath) => {\n  return Promise.all(srcFiles.map((srcFile) => {\n    const srcFilePath = path.join(srcPath, srcFile);\n    const fileTransformOptions = {\n      convertTo: 'png',\n      ...config.convertOptions.png,\n    };\n    const transformPng = new TransformPngIcons(srcFile, srcFilePath, desPath, fileTransformOptions);\n\n    transformPng.convertAndResizeSvgToPng();\n  }));\n};\n\nmodule.exports = processPngs;\n"
  },
  {
    "path": "scripts/services/process-scss.js",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nconst path = require('path');\nconst fs = require('fs-extra');\n\nconst config = require('../config');\nconst fileSystemHelper = require('../helpers/fs-helper');\n\nconst genScssRoot = (scssRoot) => {\n  const buildScss = './eva-icons.scss';\n  const rootFileContent = `\n@import 'eva-icons-variables';\n@import 'eva-icons-font';\n`;\n\n  return new Promise((resolve, reject) => {\n    fs.writeFile(\n      path.join(scssRoot, buildScss),\n      rootFileContent,\n      'utf8',\n      (error) => {\n        if (error) {\n          reject(error);\n        }\n\n        resolve();\n      },\n    );\n  });\n};\n\nconst genScssVariables = (scssRoot) => {\n  const buildScss = './_eva-icons-variables.scss';\n  const variablesContent = `\n$eva-icons-font-path: '../fonts' !default;\n$eva-icons-font-family: 'Eva-Icons' !default;\n`;\n\n  return new Promise((resolve, reject) => {\n    fs.writeFile(\n      path.join(scssRoot, buildScss),\n      variablesContent,\n      'utf8',\n      (error) => {\n        if (error) {\n          reject(error);\n        }\n\n        resolve();\n      },\n    );\n  });\n};\n\nconst genScssFont = (scssRoot) => {\n  const buildScss = './_eva-icons-font.scss';\n  const buildCss = path.join(config.desPath, 'style/eva-icons.css');\n  const file = fs.readFileSync(buildCss).toString();\n  const content = file\n    .replace(/\"/g, '\\'')\n    .replace(/\\.\\/fonts/g, '#{$eva-icons-font-path}')\n    .replace(/(font-family: )(.*)(;)/g, '$1#{$eva-icons-font-family}$3');\n\n  return new Promise((resolve, reject) => {\n    fs.writeFile(\n      path.join(scssRoot, buildScss),\n      content,\n      (error) => {\n        if (error) {\n          reject(error);\n        }\n\n        resolve();\n      },\n    );\n  });\n};\n\nconst processScss = () => {\n  const scssRoot = path.join(config.desPath, '/style/scss');\n\n  fileSystemHelper.mkDirByPathSync(scssRoot);\n\n  return Promise.all([\n    genScssRoot(scssRoot),\n    genScssVariables(scssRoot),\n    genScssFont(scssRoot),\n  ]);\n};\n\nmodule.exports = processScss;\n"
  },
  {
    "path": "scripts/services/process-svgs.js",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nconst fs = require('fs-extra');\nconst path = require('path');\n\nconst fileSystemHelper = require('../helpers/fs-helper');\nconst optimizeSvg = require('./oprimize-svg');\n\nconst processSvgs = (svgFiles, srcPath, desPath) => {\n  fileSystemHelper.mkDirByPathSync(desPath);\n\n  return Promise.all(svgFiles.map((svgFile) => {\n    const svgPath = path.join(srcPath, svgFile);\n    const desSvgPath = path.join(desPath, svgFile);\n    const svg = fs.readFileSync(svgPath);\n\n    return optimizeSvg(svg, [ { removeHiddenElems: false } ])\n      .then((processedSvg) => {\n        fs.writeFileSync(desSvgPath, processedSvg);\n      });\n  }));\n};\n\nmodule.exports = processSvgs;\n"
  },
  {
    "path": "scripts/services/rename-icon.js",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nconst fs = require('fs-extra');\nconst path = require('path');\n\nconst fileSystemHelper = require('../helpers/fs-helper');\n\nconst getNewFileName = (srcFile, extension, postfix) => `${path.basename(srcFile, `.${extension}`)}-${postfix}.${extension}`;\n\nconst renameIcons = (srcPath, srcIcons, postfix, commonExtension) => {\n  return Promise.all(srcIcons.map((srcFile) => {\n    if (srcFile.indexOf(postfix) !== -1) {\n      return srcFile;\n    }\n\n    let extension = commonExtension;\n\n    if (!extension) {\n      extension = fileSystemHelper.getExtension(srcFile);\n    }\n\n    const newFileName = getNewFileName(srcFile, extension, postfix);\n\n    fs.renameSync(path.resolve(srcPath, srcFile), path.resolve(srcPath, newFileName));\n\n    return newFileName;\n  }));\n};\n\nmodule.exports = renameIcons;\n"
  },
  {
    "path": "scripts/services/transform-icons.js",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nconst fs = require('fs-extra');\nconst path = require('path');\n\nconst graphicsMagickHelper = require('../helpers/gm-helper');\nconst fileSystemHelper = require('../helpers/fs-helper');\n\nclass TransformIcons {\n  constructor(srcFile, srcFilePath, desPath, options) {\n    this.srcFile = srcFile;\n    this.srcFilePath = srcFilePath;\n    this.readableStream = fs.createReadStream(srcFilePath);\n    this.desPath = desPath;\n    this.options = options;\n\n    fileSystemHelper.mkDirByPathSync(desPath);\n  }\n\n  getAndMakeDesFolder(...desPath) {\n    const desFolderPath = path.join(...desPath);\n\n    fileSystemHelper.mkDirByPathSync(desFolderPath);\n\n    return desFolderPath;\n  }\n\n  convert() {\n    const desFileName = `${fileSystemHelper.trimFileExtension(this.srcFile)}.${this.options.convertTo}`;\n    const desFilePath = path.join(this.desPath, desFileName);\n    const writeStream = fs.createWriteStream(desFilePath);\n\n    return graphicsMagickHelper.convert(\n      this.options.convertTo,\n      this.readableStream,\n    ).stream().pipe(writeStream);\n  }\n\n  resize() {\n    return this.options.sizes.map((size) => {\n      const desFolderPath = this.getAndMakeDesFolder(this.desPath, size);\n      const desFilePath = path.join(desFolderPath, this.srcFile);\n      const writeStream = fs.createWriteStream(desFilePath);\n\n      return graphicsMagickHelper.resize(\n        size,\n        this.readableStream\n      ).stream().pipe(writeStream);\n    });\n  }\n}\n\nmodule.exports = TransformIcons;\n"
  },
  {
    "path": "scripts/services/transform-png-icons.js",
    "content": "const fs = require('fs-extra');\nconst path = require('path');\n\nconst fileSystemHelper = require('../helpers/fs-helper');\nconst graphicsMagickHelper = require('../helpers/gm-helper');\nconst TransformIcons = require('./transform-icons');\n\nclass TransformPngIcons extends TransformIcons {\n  constructor(...args) {\n    super(...args);\n  }\n\n  convertAndResizeSvgToPng() {\n    const desFileName = `${fileSystemHelper.trimFileExtension(this.srcFile)}.${this.options.convertTo}`;\n    const maxSize = Math.max(...this.options.sizes).toString();\n    const desFolderPath = this.getAndMakeDesFolder(this.desPath, maxSize);\n    const desFilePath = path.join(desFolderPath, desFileName);\n    const writeStream = fs.createWriteStream(desFilePath);\n\n    const writableStream = graphicsMagickHelper.convertSvgToPng(\n      maxSize,\n      this.options.convertTo,\n      this.readableStream\n    ).stream().pipe(writeStream);\n\n    if (this.options.sizes === 1) {\n      return ;\n    }\n\n    writableStream.on('finish', () => {\n      // resize\n      this.options.sizes.forEach((itemSize) => {\n        if (itemSize === maxSize) {\n          return;\n        }\n\n        const desFolderPath = this.getAndMakeDesFolder(this.desPath, itemSize);\n        const desResizeFilePath = path.join(\n          desFolderPath,\n          desFileName,\n        );\n        const readableStream = fs.createReadStream(desFilePath);\n        const writeStream = fs.createWriteStream(desResizeFilePath);\n\n        graphicsMagickHelper.resize(\n          itemSize,\n          readableStream,\n        ).stream().pipe(writeStream);\n      });\n    });\n  }\n}\n\nmodule.exports = TransformPngIcons;\n"
  },
  {
    "path": "scripts/services/web-font-process-svgs.js",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nconst fs = require('fs-extra');\nconst globby = require('globby');\nconst path = require('path');\n\nconst config = require('../config');\nconst fileSystemHelper = require('../helpers/fs-helper');\nconst optimizeSvg = require('./oprimize-svg');\n\nconst prepareSVGsForFonts = () => {\n  const srcPath = path.resolve(config.desPath, '**/svg/*.svg');\n  const destPath = path.join(config.desPath, '/style/icons/svg');\n\n  fileSystemHelper.mkDirByPathSync(destPath);\n\n  return globby([srcPath])\n    .then(foundFiles => {\n      return Promise.all(foundFiles.map((svgFile) => {\n        const filesName = path.basename(svgFile);\n        const desSvgPath = path.join(destPath, filesName);\n        const svg = fs.readFileSync(svgFile);\n\n        return optimizeSvg(svg)\n          .then((processedSvg) => {\n            fs.writeFileSync(desSvgPath, processedSvg);\n          });\n      }));\n    });\n};\n\nmodule.exports = prepareSVGsForFonts;\n"
  },
  {
    "path": "scripts/services/zip.js",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nconst fs = require('fs-extra');\nconst path = require('path');\nconst archiver = require('archiver');\n\nconst config = require('../config');\n\nconst addToDirectory = (srcPath, subDir, zip) => {\n  zip.directory(srcPath, subDir);\n};\n\nconst zip = (iconsFolders, archivePath) => {\n  const zip = archiver('zip', { zlib: { level: 9 } });\n  const desFolderPath = path.join(config.desPath, `eva-icons.zip`);\n\n  zip.on('warning', function(err) {\n    if (err.code === 'ENOENT') {\n      console.info('zip warning');\n    } else {\n      throw err;\n    }\n  });\n\n  zip.on('error', function(err) {\n    throw err;\n  });\n\n  iconsFolders.forEach((folder) => {\n    const prefix  = folder.toLowerCase();\n    const srcPath = path.join(config.desPath, prefix);\n\n    addToDirectory(srcPath, prefix, zip);\n  });\n\n  addToDirectory(archivePath, false, zip);\n\n  zip.pipe(fs.createWriteStream(desFolderPath));\n\n  console.info(`Build ${desFolderPath}`);\n\n  zip.finalize();\n};\n\nmodule.exports = zip;\n"
  },
  {
    "path": "src/app/@core/core.module.ts",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nimport { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { throwIfAlreadyLoaded } from './module-import-guard';\nimport { DataModule } from './data/data.module';\n\nconst PIPES = [\n];\n\nconst NB_CORE_PROVIDERS = [\n  ...DataModule.forRoot().providers,\n];\n\n@NgModule({\n  imports: [\n    CommonModule,\n  ],\n  exports: [...PIPES],\n  declarations: [...PIPES],\n})\nexport class CoreModule {\n  constructor(@Optional() @SkipSelf() parentModule: CoreModule) {\n    throwIfAlreadyLoaded(parentModule, 'CoreModule');\n  }\n\n  static forRoot(): ModuleWithProviders {\n    return <ModuleWithProviders>{\n      ngModule: CoreModule,\n      providers: [\n        ...NB_CORE_PROVIDERS,\n      ],\n    };\n  }\n}\n"
  },
  {
    "path": "src/app/@core/data/data.module.ts",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nimport { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IconService } from './service/icons/icon.service';\nimport { UrlService } from './service/url.service';\n\nconst SERVICES = [\n  IconService,\n  UrlService,\n];\n\n@NgModule({\n  imports: [\n    CommonModule,\n  ],\n  providers: [\n    ...SERVICES,\n  ],\n})\nexport class DataModule {\n  static forRoot(): ModuleWithProviders {\n    return <ModuleWithProviders>{\n      ngModule: DataModule,\n      providers: [\n        ...SERVICES,\n      ],\n    };\n  }\n}\n"
  },
  {
    "path": "src/app/@core/data/service/icons/fill-icons-order.ts",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nexport const fillOrder = {\n  'activity': 0,\n  'alert-circle': 100,\n  'alert-triangle': 200,\n  'archive': 300,\n  'arrow-circle-down': 400,\n  'arrow-circle-up': 500,\n  'arrow-circle-left': 600,\n  'arrow-circle-right': 700,\n  'arrow-down': 800,\n  'arrow-up': 900,\n  'arrow-left': 1000,\n  'arrow-right': 1100,\n  'arrow-downward': 1200,\n  'arrow-upward': 1300,\n  'arrow-back': 1400,\n  'arrow-forward': 1500,\n  'arrow-ios-downward': 1600,\n  'arrow-ios-upward': 1700,\n  'arrow-ios-back': 1800,\n  'arrow-ios-forward': 1900,\n  'arrowhead-down': 2000,\n  'arrowhead-up': 2100,\n  'arrowhead-left': 2200,\n  'arrowhead-right': 2300,\n  'at': 2500,\n  'attach-2': 2600,\n  'attach': 2700,\n  'award': 2800,\n  'backspace': 2900,\n  'bar-chart-2': 3000,\n  'bar-chart': 3100,\n  'battery': 3200,\n  'behance': 3250,\n  'bell-off': 3300,\n  'bell': 3400,\n  'bluetooth': 3500,\n  'book-open': 3600,\n  'book': 3700,\n  'bookmark': 3800,\n  'briefcase': 3900,\n  'browser': 4000,\n  'brush': 4100,\n  'bulb': 4200,\n  'calendar': 4300,\n  'camera': 4400,\n  'car': 4500,\n  'cast': 4600,\n  'charging': 4700,\n  'checkmark-circle-2': 4800,\n  'checkmark-circle': 4900,\n  'checkmark-square-2': 5000,\n  'checkmark-square': 5100,\n  'checkmark': 5200,\n  'chevron-down': 5300,\n  'chevron-left': 5400,\n  'chevron-right': 5500,\n  'chevron-up': 5600,\n  'clipboard': 5700,\n  'clock': 5800,\n  'close-circle': 5900,\n  'close-square': 6000,\n  'close': 6100,\n  'cloud-download': 6200,\n  'cloud-upload': 6300,\n  'code-download': 6400,\n  'code': 6500,\n  'collapse': 6600,\n  'color-palette': 6700,\n  'color-picker': 6800,\n  'compass': 6900,\n  'copy': 7000,\n  'corner-down-left': 7100,\n  'corner-down-right': 7200,\n  'corner-left-down': 7300,\n  'corner-left-up': 7400,\n  'corner-right-down': 7500,\n  'corner-right-up': 7600,\n  'corner-up-left': 7700,\n  'corner-up-right': 7800,\n  'credit-card': 7900,\n  'crop': 8000,\n  'cube': 8100,\n  'diagonal-arrow-left-down': 8200,\n  'diagonal-arrow-left-up': 8300,\n  'diagonal-arrow-right-down': 8400,\n  'diagonal-arrow-right-up': 8500,\n  'done-all': 8600,\n  'download': 8700,\n  'droplet-off': 8800,\n  'droplet': 8900,\n  'edit-2': 9000,\n  'edit': 9100,\n  'email': 9200,\n  'expand': 9300,\n  'external-link': 9400,\n  'eye-off-2': 9500,\n  'eye-off': 9600,\n  'eye': 9700,\n  'facebook': 9800,\n  'file-add': 9900,\n  'file-remove': 10000,\n  'file-text': 10100,\n  'file': 10200,\n  'film': 10300,\n  'flag': 10400,\n  'flash-off': 10500,\n  'flash': 10600,\n  'flip': 10650,\n  'flip-2': 10675,\n  'folder-add': 10700,\n  'folder-remove': 10800,\n  'folder': 10900,\n  'funnel': 11000,\n  'gift': 11100,\n  'github': 11150,\n  'globe-2': 11200,\n  'globe-3': 11300,\n  'globe': 11400,\n  'google': 11500,\n  'grid': 11600,\n  'hard-drive': 11700,\n  'hash': 11800,\n  'headphones': 11900,\n  'heart': 12000,\n  'home': 12100,\n  'image-2': 12200,\n  'image': 12300,\n  'inbox': 12400,\n  'info': 12500,\n  'keypad': 12600,\n  'layers': 12700,\n  'layout': 12800,\n  'link-2': 12900,\n  'link': 13000,\n  'linkedin': 13100,\n  'list': 13200,\n  'lock': 13300,\n  'log-in': 13400,\n  'log-out': 13500,\n  'map': 13600,\n  'maximize': 13700,\n  'menu-2': 13800,\n  'menu-arrow': 13900,\n  'menu': 14000,\n  'message-circle': 14100,\n  'message-square': 14150,\n  'mic-off': 14200,\n  'mic': 14300,\n  'minimize': 14400,\n  'minus-circle': 14500,\n  'minus-square': 14600,\n  'minus': 14700,\n  'monitor': 14800,\n  'moon': 14900,\n  'more-horizontal': 15000,\n  'more-vertical': 15100,\n  'move': 15200,\n  'music': 15300,\n  'navigation-2': 15400,\n  'navigation': 15500,\n  'npm': 15550,\n  'options-2': 15600,\n  'options': 15700,\n  'pantone': 15800,\n  'paper-plane': 15900,\n  'pause-circle': 16000,\n  'people': 16100,\n  'percent': 16200,\n  'person-add': 16300,\n  'person-delete': 16400,\n  'person-done': 16500,\n  'person-remove': 16600,\n  'person': 16700,\n  'phone-call': 16800,\n  'phone-missed': 16900,\n  'phone-off': 17000,\n  'phone': 17100,\n  'pie-chart-2': 17200,\n  'pie-chart': 17300,\n  'pin': 17400,\n  'play-circle': 17500,\n  'plus-circle': 17600,\n  'plus-square': 17700,\n  'plus': 17800,\n  'power': 17900,\n  'pricetags': 18000,\n  'printer': 18100,\n  'question-mark-circle': 18200,\n  'question-mark': 18300,\n  'radio-button-off': 18400,\n  'radio-button-on': 18500,\n  'radio': 18600,\n  'recording': 18700,\n  'refresh': 18800,\n  'repeat': 18900,\n  'rewind-left': 19000,\n  'rewind-right': 19100,\n  'save': 19200,\n  'scissors': 19300,\n  'search': 19400,\n  'settings-2': 19500,\n  'settings': 19600,\n  'share': 19700,\n  'shield-off': 19800,\n  'shield': 19900,\n  'shopping-bag': 20000,\n  'shopping-cart': 20100,\n  'shuffle-2': 20200,\n  'shuffle': 20300,\n  'skip-back': 20400,\n  'skip-forward': 20500,\n  'slash': 20600,\n  'smartphone': 20700,\n  'smiling-face': 20750,\n  'speaker': 20800,\n  'square': 20900,\n  'star': 21000,\n  'stop-circle': 21100,\n  'sun': 21200,\n  'swap': 21300,\n  'sync': 21400,\n  'text': 21500,\n  'thermometer-minus': 21600,\n  'thermometer-plus': 21700,\n  'thermometer': 21800,\n  'toggle-left': 21900,\n  'toggle-right': 22000,\n  'trash-2': 22100,\n  'trash': 22200,\n  'trending-down': 22300,\n  'trending-up': 22400,\n  'tv': 22500,\n  'twitter': 22600,\n  'umbrella': 22700,\n  'undo': 22800,\n  'unlock': 22900,\n  'upload': 23000,\n  'video-off': 23100,\n  'video': 23200,\n  'volume-down': 23300,\n  'volume-mute': 23400,\n  'volume-off': 23500,\n  'volume-up': 23600,\n  'wifi-off': 23700,\n  'wifi': 23800,\n};\n"
  },
  {
    "path": "src/app/@core/data/service/icons/icon.service.ts",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nimport { of as observableOf,  Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\n\nimport { icons } from '../../../../../../package-build/eva';\nimport { fillOrder } from './fill-icons-order';\nimport { outlineOrder } from './outline-icons-order';\nimport { iconsTags } from './icons-tags';\n\nclass Icon {\n  name: string;\n  order: number;\n  tags: string[];\n}\n\nclass Icons {\n  fill: Icon[];\n  outline: Icon[];\n}\n\nexport class IconServiceData {\n  icons: string[];\n  message: string;\n}\n\n@Injectable()\nexport class IconService {\n\n  private icons: Icons;\n\n  data: IconServiceData = {\n    icons: [],\n    message: '',\n  };\n\n  private sortIcons = (first, second) => first.order - second.order;\n  private orders = {\n    fill: fillOrder,\n    outline: outlineOrder,\n  };\n\n  constructor() {\n    this.icons = Object.keys(icons)\n      .reduce((result, item, index, iconsArray): Icons => {\n        const itemType = item.indexOf('outline') === -1 ? 'fill' : 'outline';\n        const iconData = this.getIconData(item, itemType);\n\n        result[itemType] = result[itemType].concat(iconData);\n\n        // sort items in last iteration\n        if (index === iconsArray.length - 1) {\n          result['outline'].sort(this.sortIcons);\n          result['fill'].sort(this.sortIcons);\n        }\n\n        return result;\n      }, { fill: [], outline: [] });\n  }\n\n  getIconData(icoName: string, iconType: string): Icon {\n    const groupTagName = icoName.replace('-outline', '');\n    const tags = this.getIconsTags(groupTagName, icoName);\n\n    return {\n      name: icoName,\n      order: this.orders[iconType][icoName],\n      tags,\n    };\n  }\n\n  getIconsTags(groupName: string, icoName: string): string[] {\n    return iconsTags[groupName] && iconsTags[groupName].length > 0 ?\n      iconsTags[groupName].concat(icoName) :\n      [icoName];\n  }\n\n  getIconsData(type: string): Observable<IconServiceData> {\n    this.data.icons = this.icons[type];\n\n    return observableOf(this.data);\n  }\n\n  getFilteredIconsData(searchKey: string, type: string): Observable<IconServiceData> {\n    const foundIcons = this.icons[type].filter((item) => {\n      return item.tags.some((tag) => tag.indexOf(searchKey.toLowerCase()) !== -1);\n    });\n\n    this.data.icons = foundIcons;\n    this.data.message = foundIcons.length === 0 ? 'Oops… here are no results that match your search.' : '';\n\n    return observableOf(this.data);\n  }\n}\n"
  },
  {
    "path": "src/app/@core/data/service/icons/icons-tags.ts",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nexport const iconsTags = {\n  'activity': ['pulse', 'health', 'action', 'motion'],\n  'alert-circle': ['warning'],\n  'alert-triangle': ['warning'],\n  'archive': ['document', 'file'],\n  'arrow-circle-down': [],\n  'arrow-circle-up': [],\n  'arrow-circle-left': [],\n  'arrow-circle-right': [],\n  'arrow-down': [],\n  'arrow-up': [],\n  'arrow-left': [],\n  'arrow-right': [],\n  'arrow-downward': [],\n  'arrow-upward': [],\n  'arrow-back': [],\n  'arrow-forward': [],\n  'arrow-ios-downward': [],\n  'arrow-ios-upward': [],\n  'arrow-ios-back': [],\n  'arrow-ios-forward': [],\n  'arrowhead-down': [],\n  'arrowhead-up': [],\n  'arrowhead-left': [],\n  'arrowhead-right': [],\n  'at': ['mention'],\n  'attach-2': ['paperclip, attachment'],\n  'attach': ['paperclip, attachment'],\n  'award': ['achievement', 'badge'],\n  'backspace': ['cross'],\n  'bar-chart-2': [],\n  'bar-chart': [],\n  'battery': [],\n  'bell-off': ['alarm', 'notification', 'silent'],\n  'bell': ['alarm', 'notification'],\n  'bluetooth': ['wireless'],\n  'book-open': ['read'],\n  'book': ['read', 'dictionary', 'booklet', 'magazine'],\n  'bookmark': ['read', 'clip', 'marker', 'tag'],\n  'briefcase': ['work', 'bag', 'baggage', 'folder'],\n  'browser': ['web'],\n  'brush': ['art'],\n  'bulb': ['lamp', 'light'],\n  'calendar': [],\n  'camera': ['photo'],\n  'car': ['machine', 'truck', 'auto'],\n  'cast': [],\n  'charging': [],\n  'checkmark-circle-2': [],\n  'checkmark-circle': [],\n  'checkmark-square-2': [],\n  'checkmark-square': [],\n  'checkmark': [],\n  'chevron-down': ['arrow'],\n  'chevron-left': ['arrow'],\n  'chevron-right': ['arrow'],\n  'chevron-up': ['arrow'],\n  'clipboard': ['copy'],\n  'clock': ['time', 'watch', 'alarm'],\n  'close-circle': ['cross'],\n  'close-square': ['cross'],\n  'close': ['cross'],\n  'cloud-download': ['arrow'],\n  'cloud-upload': ['arrow'],\n  'code-download': ['chevron', 'arrow'],\n  'code': ['chevron', 'arrow'],\n  'collapse': ['arrow'],\n  'color-palette': ['art'],\n  'color-picker': ['art'],\n  'compass': ['navigation', 'safari', 'travel'],\n  'copy': ['clone', 'duplicate'],\n  'corner-down-left': ['arrow'],\n  'corner-down-right': ['arrow'],\n  'corner-left-down': ['arrow'],\n  'corner-left-up': ['arrow'],\n  'corner-right-down': ['arrow'],\n  'corner-right-up': ['arrow'],\n  'corner-up-left': ['arrow'],\n  'corner-up-right': ['arrow'],\n  'credit-card': ['purchase', 'payment', 'cc'],\n  'crop': ['photo', 'image'],\n  'cube': ['figure'],\n  'diagonal-arrow-left-down': [],\n  'diagonal-arrow-left-up': [],\n  'diagonal-arrow-right-down': [],\n  'diagonal-arrow-right-up': [],\n  'done-all': ['checkmark'],\n  'download': ['arrow'],\n  'droplet-off': ['water'],\n  'droplet': ['water'],\n  'edit-2': ['pencil', 'change'],\n  'edit': ['pencil', 'change'],\n  'email': ['letter'],\n  'expand': ['arrows'],\n  'external-link': ['arrow'],\n  'eye-off-2': ['view', 'watch'],\n  'eye-off': ['view', 'watch'],\n  'eye': ['view', 'watch'],\n  'facebook': ['logo'],\n  'file-add': [],\n  'file-remove': [],\n  'file-text': [],\n  'file': [],\n  'film': ['movie', 'video'],\n  'flag': [],\n  'flash-off': [],\n  'flash': ['electricity'],\n  'folder-add': ['directory'],\n  'folder-remove': ['directory'],\n  'folder': ['directory'],\n  'funnel': ['filter'],\n  'gift': ['present', 'box', 'birthday', 'party'],\n  'github': ['logo'],\n  'globe-2': ['world', 'browser', 'language', 'translate'],\n  'globe-3': ['world', 'browser', 'language', 'translate'],\n  'globe': ['world', 'browser', 'language', 'translate'],\n  'google': ['world', 'browser', 'language', 'translate', 'logo'],\n  'grid': [],\n  'hard-drive': ['computer', 'server'],\n  'hash': ['hashtag', 'number', 'pound'],\n  'headphones': ['music', 'audio'],\n  'heart': ['like', 'love'],\n  'home': ['house'],\n  'image-2': ['picture'],\n  'image': ['picture'],\n  'inbox': ['email', 'letter'],\n  'info': [],\n  'keypad': [],\n  'layers': [],\n  'layout': [],\n  'link-2': [],\n  'link': [],\n  'linkedin': ['logo', 'social'],\n  'list': [],\n  'lock': [],\n  'log-in': ['sign in', 'arrow'],\n  'log-out': ['sign out', 'arrow'],\n  'loader': [],\n  'map': ['location', 'navigation', 'travel'],\n  'maximize': ['fullscreen'],\n  'menu-2': ['bars', 'navigation', 'hamburger'],\n  'menu-arrow': ['bars', 'navigation', 'hamburger'],\n  'menu': ['bars', 'navigation', 'hamburger'],\n  'message-circle': ['comment', 'chat'],\n  'message-square': ['comment', 'chat'],\n  'mic-off': ['record'],\n  'mic': ['record'],\n  'minimize': ['exit fullscreen'],\n  'minus-circle': [],\n  'minus-square': [],\n  'minus': [],\n  'monitor': ['tv'],\n  'moon': ['dark', 'night'],\n  'more-horizontal': ['ellipsis'],\n  'more-vertical': ['ellipsis'],\n  'move': ['arrows'],\n  'music': ['melody', 'song'],\n  'navigation-2': ['location', 'travel'],\n  'navigation': ['location', 'travel'],\n  'npm': ['logo'],\n  'options-2': [],\n  'options': [],\n  'pantone': ['color'],\n  'paper-plane': ['flight'],\n  'pause-circle': ['music', 'stop'],\n  'people': ['person', 'user'],\n  'percent': [],\n  'person-add': ['user'],\n  'person-delete': ['user'],\n  'person-done': ['user'],\n  'person-remove': ['user'],\n  'person': ['user'],\n  'phone-call': [],\n  'phone-missed': [],\n  'phone-off': [],\n  'phone': [],\n  'pie-chart-2': [],\n  'pie-chart': [],\n  'pin': ['mark'],\n  'play-circle': ['music', 'start'],\n  'plus-circle': ['add', 'new'],\n  'plus-square': ['add', 'new'],\n  'plus': ['add', 'new'],\n  'power': ['on', 'off'],\n  'pricetags': ['commerce'],\n  'printer': [],\n  'question-mark-circle': ['help'],\n  'question-mark': ['help'],\n  'radio-button-off': ['signal'],\n  'radio-button-on': ['signal'],\n  'radio': ['signal'],\n  'recording': [],\n  'refresh': [],\n  'repeat': ['music'],\n  'rewind-left': ['music'],\n  'rewind-right': ['music'],\n  'save': ['floppy disk'],\n  'scissors': ['tool'],\n  'search': ['magnifier'],\n  'settings-2': ['cog', 'edit', 'gear', 'preferences'],\n  'settings': ['cog', 'edit', 'gear', 'preferences'],\n  'share': [],\n  'shield-off': ['security'],\n  'shield': ['security'],\n  'shopping-bag': ['ecommerce', 'cart', 'purchase', 'store'],\n  'shopping-cart': ['ecommerce', 'cart', 'purchase', 'store'],\n  'shuffle-2': ['music'],\n  'shuffle': ['music'],\n  'skip-back': ['music'],\n  'skip-forward': ['music'],\n  'slash': ['ban', 'no'],\n  'smartphone': ['mobile'],\n  'smiling-face': ['smiling', 'face', 'stickers', 'memes'],\n  'speaker': ['music'],\n  'square': ['figure'],\n  'star': ['bookmark', 'favorite', 'like'],\n  'stop-circle': [],\n  'sun': ['brightness', 'weather', 'light'],\n  'swap': ['arrow'],\n  'sync': ['arrow'],\n  'text': [],\n  'thermometer-minus': ['temperature'],\n  'thermometer-plus': ['temperature'],\n  'thermometer': ['temperature'],\n  'toggle-left': ['on', 'off', 'switch'],\n  'toggle-right': ['on', 'off', 'switch'],\n  'trash-2': ['garbage', 'delete', 'remove'],\n  'trash': ['garbage', 'delete', 'remove'],\n  'trending-down': ['arrow'],\n  'trending-up': ['arrow'],\n  'tv': ['monitor'],\n  'twitter': ['logo'],\n  'umbrella': ['rain', 'weather'],\n  'undo': ['arrow'],\n  'unlock': [],\n  'upload': ['arrow'],\n  'video-off': ['camera', 'movie', 'film'],\n  'video': ['camera', 'movie', 'film'],\n  'volume-down': ['music', 'sound', 'mute'],\n  'volume-mute': ['music', 'sound', 'mute'],\n  'volume-off': ['music', 'sound', 'mute'],\n  'volume-up': ['music', 'sound', 'mute'],\n  'wifi-off': ['internet', 'connection'],\n  'wifi': ['internet', 'connection'],\n};\n"
  },
  {
    "path": "src/app/@core/data/service/icons/outline-icons-order.ts",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nexport const outlineOrder = {\n  'activity-outline': 0,\n  'alert-circle-outline': 100,\n  'alert-triangle-outline': 200,\n  'archive-outline': 300,\n  'arrow-circle-down-outline': 400,\n  'arrow-circle-up-outline': 500,\n  'arrow-circle-left-outline': 600,\n  'arrow-circle-right-outline': 700,\n  'arrow-down-outline': 800,\n  'arrow-up-outline': 900,\n  'arrow-left-outline': 1000,\n  'arrow-right-outline': 1100,\n  'arrow-downward-outline': 1200,\n  'arrow-upward-outline': 1300,\n  'arrow-back-outline': 1400,\n  'arrow-forward-outline': 1500,\n  'arrow-ios-downward-outline': 1600,\n  'arrow-ios-upward-outline': 1700,\n  'arrow-ios-back-outline': 1800,\n  'arrow-ios-forward-outline': 1900,\n  'arrowhead-down-outline': 2000,\n  'arrowhead-up-outline': 2100,\n  'arrowhead-left-outline': 2200,\n  'arrowhead-right-outline': 2300,\n  'at-outline': 2400,\n  'attach-2-outline': 2500,\n  'attach-outline': 2600,\n  'award-outline': 2700,\n  'backspace-outline': 2800,\n  'bar-chart-2-outline': 2900,\n  'bar-chart-outline': 3000,\n  'battery-outline': 3100,\n  'behance-outline': 3150,\n  'bell-off-outline': 3200,\n  'bell-outline': 3300,\n  'bluetooth-outline': 3400,\n  'book-open-outline': 3500,\n  'book-outline': 3600,\n  'bookmark-outline': 3700,\n  'briefcase-outline': 3800,\n  'browser-outline': 3900,\n  'brush-outline': 4000,\n  'bulb-outline': 4100,\n  'calendar-outline': 4200,\n  'camera-outline': 4300,\n  'car-outline': 4400,\n  'cast-outline': 4500,\n  'charging-outline': 4600,\n  'checkmark-circle-2-outline': 4700,\n  'checkmark-circle-outline': 4800,\n  'checkmark-outline': 4900,\n  'checkmark-square-2-outline': 5000,\n  'checkmark-square-outline': 5100,\n  'chevron-down-outline': 5200,\n  'chevron-left-outline': 5300,\n  'chevron-right-outline': 5400,\n  'chevron-up-outline': 5500,\n  'clipboard-outline': 5600,\n  'clock-outline': 5700,\n  'close-circle-outline': 5800,\n  'close-outline': 5900,\n  'close-square-outline': 6000,\n  'cloud-download-outline': 6100,\n  'cloud-upload-outline': 6200,\n  'code-download-outline': 6300,\n  'code-outline': 6400,\n  'collapse-outline': 6500,\n  'color-palette-outline': 6600,\n  'color-picker-outline': 6700,\n  'compass-outline': 6800,\n  'copy-outline': 6900,\n  'corner-down-left-outline': 7000,\n  'corner-down-right-outline': 7100,\n  'corner-left-down-outline': 7200,\n  'corner-left-up-outline': 7300,\n  'corner-right-down-outline': 7400,\n  'corner-right-up-outline': 7500,\n  'corner-up-left-outline': 7600,\n  'corner-up-right-outline': 7700,\n  'credit-card-outline': 7800,\n  'crop-outline': 7900,\n  'cube-outline': 8000,\n  'diagonal-arrow-left-down-outline': 8100,\n  'diagonal-arrow-left-up-outline': 8200,\n  'diagonal-arrow-right-down-outline': 8300,\n  'diagonal-arrow-right-up-outline': 8400,\n  'done-all-outline': 8500,\n  'download-outline': 8600,\n  'droplet-off-outline': 8700,\n  'droplet-outline': 8800,\n  'edit-2-outline': 8900,\n  'edit-outline': 9000,\n  'email-outline': 9100,\n  'expand-outline': 9200,\n  'external-link-outline': 9300,\n  'eye-off-2-outline': 9400,\n  'eye-off-outline': 9500,\n  'eye-outline': 9600,\n  'facebook-outline': 9700,\n  'file-add-outline': 9800,\n  'file-outline': 9900,\n  'file-remove-outline': 10000,\n  'file-text-outline': 10100,\n  'film-outline': 10200,\n  'flag-outline': 10300,\n  'flash-off-outline': 10400,\n  'flash-outline': 10500,\n  'flip-outline': 10550,\n  'flip-2-outline': 10575,\n  'folder-add-outline': 10600,\n  'folder-outline': 10700,\n  'folder-remove-outline': 10800,\n  'funnel-outline': 10900,\n  'gift-outline': 11000,\n  'globe-2-outline': 11100,\n  'globe-outline': 11200,\n  'google-outline': 11300,\n  'grid-outline': 11400,\n  'hard-drive-outline': 11500,\n  'hash-outline': 11600,\n  'headphones-outline': 11700,\n  'heart-outline': 11800,\n  'home-outline': 11900,\n  'image-outline': 12000,\n  'inbox-outline': 12100,\n  'info-outline': 12200,\n  'keypad-outline': 12300,\n  'layers-outline': 12400,\n  'layout-outline': 12500,\n  'link-2-outline': 12600,\n  'link-outline': 12700,\n  'linkedin-outline': 12800,\n  'list-outline': 12900,\n  'loader-outline': 13000,\n  'lock-outline': 13100,\n  'log-in-outline': 13200,\n  'log-out-outline': 13300,\n  'map-outline': 13400,\n  'maximize-outline': 13500,\n  'menu-2-outline': 13600,\n  'menu-arrow-outline': 13700,\n  'menu-outline': 13800,\n  'message-circle-outline': 13900,\n  'message-square-outline': 14000,\n  'mic-off-outline': 14100,\n  'mic-outline': 14200,\n  'minimize-outline': 14300,\n  'minus-circle-outline': 14400,\n  'minus-outline': 14500,\n  'minus-square-outline': 14600,\n  'monitor-outline': 14700,\n  'moon-outline': 14800,\n  'more-horizontal-outline': 14900,\n  'more-vertical-outline': 15000,\n  'move-outline': 15100,\n  'music-outline': 15200,\n  'navigation-2-outline': 15300,\n  'navigation-outline': 15400,\n  'npm-outline': 15450,\n  'options-2-outline': 15500,\n  'options-outline': 15600,\n  'pantone-outline': 15700,\n  'paper-plane-outline': 15800,\n  'pause-circle-outline': 15900,\n  'people-outline': 16000,\n  'percent-outline': 16100,\n  'person-add-outline': 16200,\n  'person-delete-outline': 16300,\n  'person-done-outline': 16400,\n  'person-outline': 16500,\n  'person-remove-outline': 16600,\n  'phone-call-outline': 16700,\n  'phone-missed-outline': 16800,\n  'phone-off-outline': 16900,\n  'phone-outline': 17000,\n  'pie-chart-outline': 17100,\n  'pin-outline': 17200,\n  'play-circle-outline': 17300,\n  'plus-circle-outline': 17400,\n  'plus-outline': 17500,\n  'plus-square-outline': 17600,\n  'power-outline': 17700,\n  'pricetags-outline': 17800,\n  'printer-outline': 17900,\n  'question-mark-circle-outline': 18000,\n  'question-mark-outline': 18100,\n  'radio-button-off-outline': 18200,\n  'radio-button-on-outline': 18300,\n  'radio-outline': 18400,\n  'recording-outline': 18500,\n  'refresh-outline': 18600,\n  'repeat-outline': 18700,\n  'rewind-left-outline': 18800,\n  'rewind-right-outline': 18900,\n  'save-outline': 19000,\n  'scissors-outline': 19100,\n  'search-outline': 19200,\n  'settings-2-outline': 19300,\n  'settings-outline': 19400,\n  'share-outline': 19500,\n  'shake-outline': 19550,\n  'shield-off-outline': 19600,\n  'shield-outline': 19700,\n  'shopping-bag-outline': 19800,\n  'shopping-cart-outline': 19900,\n  'shuffle-2-outline': 20000,\n  'shuffle-outline': 20100,\n  'skip-back-outline': 20200,\n  'skip-forward-outline': 20300,\n  'slash-outline': 20400,\n  'smartphone-outline': 20500,\n  'smiling-face-outline': 20550,\n  'speaker-outline': 20600,\n  'square-outline': 20700,\n  'star-outline': 20800,\n  'stop-circle-outline': 20900,\n  'sun-outline': 21000,\n  'swap-outline': 21100,\n  'sync-outline': 21200,\n  'text-outline': 21300,\n  'thermometer-minus-outline': 21400,\n  'thermometer-outline': 21500,\n  'thermometer-plus-outline': 21600,\n  'toggle-left-outline': 21700,\n  'toggle-right-outline': 21800,\n  'trash-2-outline': 21900,\n  'trash-outline': 22000,\n  'trending-down-outline': 22100,\n  'trending-up-outline': 22200,\n  'tv-outline': 22300,\n  'twitter-outline': 22400,\n  'umbrella-outline': 22500,\n  'undo-outline': 22600,\n  'unlock-outline': 22700,\n  'upload-outline': 22800,\n  'video-off-outline': 22900,\n  'video-outline': 23000,\n  'volume-down-outline': 23100,\n  'volume-mute-outline': 23200,\n  'volume-off-outline': 23300,\n  'volume-up-outline': 23400,\n  'wifi-off-outline': 23500,\n  'wifi-outline': 23600,\n};\n"
  },
  {
    "path": "src/app/@core/data/service/url.service.ts",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nimport { Injectable } from '@angular/core';\n\nimport { environment } from '../../../../environments/environment';\n\n@Injectable()\nexport class UrlService {\n\n  private prefix_folder = 'package-build';\n\n  readonly DOWNLOAD_PROD_ZIP_URL = 'eva-icons.zip';\n  readonly DOWNLOAD_ZIP_URL = `${this.prefix_folder}/eva-icons.zip`;\n  readonly DOWNLOAD_URLS = {\n    svg: `${this.prefix_folder}/type/svg/name.svg`,\n    png: `${this.prefix_folder}/type/png/128/name.png`,\n  };\n  readonly DOWNLOAD_PROD_URLS = {\n    svg: 'type/svg/name.svg',\n    png: 'type/png/128/name.png',\n  };\n\n  protected downloadItemsData = [\n    {\n      format: 'svg',\n      title: 'SVG',\n      href: this.getDownloadItemUrl('svg'),\n    },\n    {\n      format: 'png',\n      title: 'PNG',\n      href: this.getDownloadItemUrl('png'),\n    },\n  ];\n\n  getDownloadItemUrl(format) {\n    return environment.production ?\n      this.DOWNLOAD_PROD_URLS[format] :\n      this.DOWNLOAD_URLS[format];\n  }\n\n  getZippedIconsUrl() {\n    return environment.production ?\n      this.DOWNLOAD_PROD_ZIP_URL :\n      this.DOWNLOAD_ZIP_URL;\n  }\n\n  getDownloadItemsDate(type, name) {\n    const matches = {\n      type,\n      name,\n    };\n\n    return this.downloadItemsData.map((item) => {\n      return {\n        ...item,\n        href: this.getIconHref(item.href, matches),\n      };\n    });\n  }\n\n\n  private getIconHref(href, matches) {\n    return href.replace(/type|name/gi, (matched) => {\n      return matches[matched];\n    });\n  }\n}\n"
  },
  {
    "path": "src/app/@core/module-import-guard.ts",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nexport function throwIfAlreadyLoaded(parentModule: any, moduleName: string) {\n  if (parentModule) {\n    throw new Error(`${moduleName} has already been loaded. Import Core modules in the AppModule only.`);\n  }\n}\n"
  },
  {
    "path": "src/app/@theme/components/animation-switcher/animation-switcher.component.html",
    "content": "<ul>\n  <li *ngFor=\"let item of animationItems\"\n      class=\"nav-item eva-parent-hover\"\n      [class.active]=\"item.animationType === animation\"\n      (click)=\"changeAnimationType(item.animationType)\">\n    <i class=\"nav-menu-icon\"\n       [innerHTML]=\"item.iconName | eva: { animationType: item.animationType }\">\n    </i>\n    <span class=\"title\">{{ item.title }}</span>\n  </li>\n</ul>\n"
  },
  {
    "path": "src/app/@theme/components/animation-switcher/animation-switcher.component.scss",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\n@import '../../../@theme/styles/themes';\n@import '~@nebular/theme/styles/global/breakpoints';\n\n@include nb-install-component() {\n  $primary: nb-theme(color-primary);\n  $item-color: #a7b4cc;\n\n  ul {\n    display: flex;\n    list-style: none;\n    margin: 0;\n    padding: 0;\n  }\n\n  li {\n    cursor: pointer;\n    align-items: baseline;\n    font-size: nb-theme(font-size-sm);\n    color: $item-color;\n\n    &:not(:first-child) {\n      margin-left: 1.75rem;\n    }\n\n    &:hover, &.active, &:focus {\n      color: $primary;\n      text-shadow: 0.5px 0 0 currentColor;\n      font-weight: normal;\n      outline: none!important;\n\n      .nav-menu-icon {\n        fill: $primary;\n      }\n    }\n\n    .nav-menu-icon {\n      margin-right: 0.5rem;\n      fill: $item-color;\n    }\n\n    span {\n      font-size: nb-theme(font-size-sm);\n    }\n  }\n\n  @include media-breakpoint-down(lg) {\n    a {\n      padding: 0.5rem 0.75rem;\n\n      &.active {\n        border-radius: nb-theme(menu-submenu-item-border-radius);\n        border: 1px solid $primary;\n      }\n\n      .nav-menu-icon {\n        margin: 0 0.25rem;\n      }\n\n      &::after {\n        display: none;\n      }\n\n      span {\n        display: none;\n      }\n    }\n\n    .nav-menu-icon {\n      margin: 0;\n    }\n  }\n\n  @include media-breakpoint-down(sm) {\n    .title {\n      display: none;\n    }\n  }\n}\n"
  },
  {
    "path": "src/app/@theme/components/animation-switcher/animation-switcher.component.ts",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n  selector: 'eva-animation-switcher',\n  templateUrl: './animation-switcher.component.html',\n  styleUrls: ['./animation-switcher.component.scss'],\n})\n\nexport class AnimationSwitcherComponent implements OnInit {\n\n  @Output() changeAnimation: EventEmitter<string> = new EventEmitter();\n\n  @Input() animation: string;\n  @Input() isMobileView: string;\n\n  selectedItem: string;\n\n  ngOnInit() {\n    this.selectedItem = this.animation;\n  }\n\n  animationItems = [\n    {\n      title: 'Zoom',\n      iconName: 'maximize-outline',\n      animationType: 'zoom',\n    },\n    {\n      title: 'Pulse',\n      iconName: 'activity-outline',\n      animationType: 'pulse',\n    },\n    {\n      title: 'Shake',\n      iconName: 'shake-outline',\n      animationType: 'shake',\n    },\n    {\n      title: 'Flip in Y',\n      iconName: 'flip-2-outline',\n      animationType: 'flip',\n    },\n  ];\n\n  changeAnimationType(value) {\n    this.changeAnimation.emit(value);\n    this.animation = value;\n  }\n}\n"
  },
  {
    "path": "src/app/@theme/components/footer/footer.component.html",
    "content": "<div class=\"logo\">\n  <a href=\"https://www.akveo.com?utm_campaign=services%20-%20homepage%20-%20eva_icons%20website&utm_source=eva_icons&utm_medium=banner&utm_content=footer_logo\" target=\"_blank\">\n    <img src=\"assets/img/akveo-logo.png\">\n  </a>\n</div>\n<div class=\"company-info\">\n  <ul>\n    <li class=\"title\">More from Akveo</li>\n    <li><a href=\"https://www.akveo.com?utm_campaign=services%20-%20homepage%20-%20eva_icons%20website&utm_source=eva_icons&utm_medium=referral&utm_content=home_footer_homepage\" target=\"_blank\">Homepage</a></li>\n    <li><a href=\"https://akveo.github.io/nebular?utm_campaign=nebular%20-%20home%20-%20eva_icons%20website&utm_source=eva_icons&utm_medium=referral&utm_content=footer_link_nebular\" target=\"_blank\">Nebular</a></li>\n    <li><a href=\"https://akveo.github.io/ngx-admin?utm_campaign=ngx_admin%20-%20home%20-%20eva_icons%20website&utm_source=eva_icons&utm_medium=referral&utm_content=footer_link_ngx_admin\" target=\"_blank\">ngx-admin</a></li>\n    <li>\n      <a href=\"https://eva.design?utm_campaign=eva_design%20-%20home%20-%20eva_icons%20website&utm_source=eva_icons&utm_medium=referral&utm_content=footer_link_eva\" target=\"_blank\">\n        Eva Design System\n      </a>\n    </li>\n  </ul>\n</div>\n<div class=\"social-container\">\n  <ul>\n    <li class=\"title\">Follow Us</li>\n    <li class=\"social\">\n      <a href=\"https://github.com/akveo/eva-icons\" target=\"_blank\">\n        <i [innerHTML]=\"'github-outline' | eva: { width: 30, height: 30, fill: '#f7f8fa' }\"></i>\n      </a>\n      <a href=\"https://twitter.com/akveo_inc\" target=\"_blank\">\n        <i [innerHTML]=\"'twitter' | eva: { width: 30, height: 30, fill: '#f7f8fa' }\"></i>\n      </a>\n      <a href=\"https://www.facebook.com/akveo\" target=\"_blank\">\n        <i [innerHTML]=\"'facebook' | eva: { width: 35, height: 35, fill: '#f7f8fa' }\"></i>\n      </a>\n      <a href=\"https://www.linkedin.com/company/akveo\" target=\"_blank\">\n        <i [innerHTML]=\"'linkedin' | eva: { width: 35, height: 35, fill: '#f7f8fa' }\"></i>\n      </a>\n    </li>\n    <li class=\"copy\">\n      &copy; 2015-2018 <a href=\"https://www.akveo.com?utm_campaign=services%20-%20homepage%20-%20eva_icons%20website&utm_source=eva_icons&utm_medium=referral&utm_content=footer_akveo_llc\" target=\"_blank\">Akveo LLC</a><br>\n      Documentation licensed under CC BY 4.0.\n    </li>\n  </ul>\n</div>\n<div class=\"contact\">\n  <ul>\n    <li class=\"title\">Contact Us</li>\n    <li><a href=\"mailto:contact@akveo.com\">contact@akveo.com</a></li>\n  </ul>\n</div>\n"
  },
  {
    "path": "src/app/@theme/components/footer/footer.component.scss",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\n@import '../../../@theme/styles/themes';\n@import '~@nebular/theme/styles/global/breakpoints';\n\n@include nb-install-component() {\n  $text-fg: nb-theme(footer-fg);\n  $social-fg: nb-theme(color-fg-icon);\n  $title-fg: nb-theme(color-fg);\n\n  font-weight: nb-theme(font-weight-bold);\n  display: flex;\n  flex: 1;\n  flex-wrap: wrap;\n  padding-top: 2.75rem;\n  justify-content: flex-start;\n\n  > div {\n    display: flex;\n    margin-right: 0;\n    margin-bottom: 2rem;\n    justify-content: center;\n    width: 100%;\n\n    &:last-child {\n      margin-right: 0;\n      margin-bottom: 0;\n    }\n\n    a {\n      font-size: nb-theme(font-size-sm);\n      color: $text-fg;\n    }\n\n    ul {\n      list-style: none;\n      padding-left: 0;\n    }\n\n    li {\n      display: flex;\n      margin-bottom: 1.5rem;\n      justify-content: center;\n      align-items: center;\n      text-align: center;\n\n      &:first-child {\n        margin-bottom: 1.75rem;\n      }\n    }\n\n    .title {\n      color: $title-fg;\n    }\n\n    .copy {\n      $copy-color: #535b6c;\n\n      color: $copy-color;\n      display: list-item;\n      font-size: 0.66rem;\n      line-height: 1.75;\n\n      a {\n        font-size: 0.65rem;\n        color: $copy-color;\n      }\n    }\n\n    .social {\n      display: flex;\n      flex-direction: row;\n\n      a {\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        width: 2.5rem;\n        height: 2.5rem;\n        background-color: $social-fg;\n        border-radius: 6px;\n        text-decoration: none;\n        margin-right: 1rem;\n        line-height: 0.5;\n\n        &:last-child {\n          margin-right: 0;\n        }\n      }\n    }\n  }\n\n  > div.logo {\n    margin-bottom: 3.125rem;\n\n     a {\n       width: 5.5rem;\n       height: 5.5rem;\n     }\n\n    img {\n      width: 100%;\n      height: 100%;\n    }\n  }\n\n  @include media-breakpoint-up(md) {\n    > div.logo {\n      display: none;\n    }\n\n    > div {\n      justify-content: flex-start;\n      margin-right: 1.5rem;\n      margin-bottom: 0;\n      width: auto;\n\n      li {\n        justify-content: flex-start;\n        align-items: flex-start;\n        text-align: left;\n      }\n    }\n\n    .company-info {\n      margin-right: 12.25rem;\n    }\n\n    .social-container {\n      margin-right: 8.375rem;\n    }\n  }\n\n  @include media-breakpoint-up(lg) {\n    > div.logo {\n      display: flex;\n      flex-direction: column;\n      margin-top: 0;\n      margin-bottom: 0;\n      text-align: center;\n    }\n  }\n\n  @include media-breakpoint-down(md) {\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n}\n"
  },
  {
    "path": "src/app/@theme/components/footer/footer.component.ts",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nimport { Component } from '@angular/core';\n\n@Component({\n  selector: 'eva-footer',\n  styleUrls: ['./footer.component.scss'],\n  templateUrl: './footer.component.html',\n})\nexport class FooterComponent {\n}\n"
  },
  {
    "path": "src/app/@theme/components/header/header.component.html",
    "content": "<div class=\"section left\">\n  <iframe class=\"stars mobile\"\n          src=\"https://ghbtns.com/github-btn.html?user=akveo&repo=eva-icons&type=star&count=true\"\n          frameborder=\"0\"\n          scrolling=\"0\">\n  </iframe>\n  <span class=\"desktop\">Support us on:</span>\n  <div class=\"social-group\">\n    <a href=\"https://twitter.com/akveo_inc\" target=\"_blank\" class=\"social twitter\">\n      <i [innerHTML]=\"'twitter-outline' | eva: { width: '100%', height: '100%' }\"></i>\n      <span>Twitter</span>\n    </a>\n    <a href=\"https://www.behance.net/gallery/72027793/Eva-Icons\" target=\"_blank\" class=\"social behance\">\n      <i [innerHTML]=\"'behance-outline' | eva: { width: '100%', height: '100%' }\"></i>\n      <span>Behance</span>\n    </a>\n    <a href=\"https://github.com/akveo/eva-icons\" target=\"_blank\" class=\"social github\">\n      <i [innerHTML]=\"'github-outline' | eva: { width: '100%', height: '100%' }\"></i>\n      <span>GitHub</span>\n    </a>\n  </div>\n</div>\n<div class=\"section right\">\n  <div class=\"social-group mobile\">\n    <a href=\"https://twitter.com/akveo_inc\" target=\"_blank\" class=\"social twitter\">\n      <i [innerHTML]=\"'twitter-outline' | eva: { width: '100%', height: '100%' }\"></i>\n      <span>Twitter</span>\n    </a>\n    <a href=\"https://www.behance.net/gallery/72027793/Eva-Icons\" target=\"_blank\" class=\"social behance\">\n      <i [innerHTML]=\"'behance-outline' | eva: { width: '100%', height: '100%' }\"></i>\n      <span>Behance</span>\n    </a>\n    <a href=\"https://github.com/akveo/eva-icons\" target=\"_blank\" class=\"social github\">\n      <i [innerHTML]=\"'github' | eva: { width: '100%', height: '100%' }\"></i>\n      <span>GitHub</span>\n    </a>\n  </div>\n  <iframe class=\"stars desktop\"\n          src=\"https://ghbtns.com/github-btn.html?user=akveo&repo=eva-icons&type=star&count=true\"\n          frameborder=\"0\"\n          scrolling=\"0\">\n  </iframe>\n  <div class=\"btn btn-primary btn-download btn-header\">\n    <i [innerHTML]=\"'download' | eva: { width: 24, height: 24 }\"></i>\n    <span>Download</span>\n    <div class=\"download-items-container\">\n      <ul>\n        <li (click)=\"clickOnDownloadPack()\">\n          <a href=\"{{ zipUrl }}\"\n             download>\n            <i [innerHTML]=\"'cube-outline' | eva: { width: 24, height: 24, fill: '#ffffff' }\"></i>\n            <span>Design Pack</span>\n          </a>\n        </li>\n        <li>\n          <a href=\"https://www.npmjs.com/package/eva-icons\" target=\"_blank\">\n            <i [innerHTML]=\"'npm' | eva: { width: 24, height: 24, fill: '#ffffff' }\"></i>\n            <span>NPM</span>\n          </a>\n        </li>\n      </ul>\n    </div>\n  </div>\n</div>\n"
  },
  {
    "path": "src/app/@theme/components/header/header.component.scss",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\n@import '../../../@theme/styles/themes';\n@import '~@nebular/theme/styles/global/breakpoints';\n\n@include nb-install-component() {\n  $right-section-width: nb-theme(settings-col-width);\n  $logo-fg: nb-theme(header-fg);\n  $version-fg: nb-theme(color-primary);\n  $primary: nb-theme(color-primary);\n  $social-color: #a7b4cc;\n  $social-hover: #eef3ff;\n  $social-active: #d4dbf9;\n\n  display: flex;\n  flex: 1 0 auto;\n  flex-direction: row;\n  align-items: center;\n  margin: 0;\n  justify-content: space-between;\n\n  .section {\n    display: flex;\n\n    &.left {\n      display: flex;\n      margin-top: 1.5rem;\n      color: $social-color;\n    }\n\n    &.right {\n      align-items: center;\n    }\n  }\n\n  .stars {\n    width: 95px;\n    height: 20px;\n    margin-right: 1.5rem;\n    margin-top: 1.625rem;\n  }\n\n  .social-group {\n    display: flex;\n    align-items: center;\n    margin-left: 2.25rem;\n\n    i {\n      width: 1.5rem;\n      height: 1.5rem;\n    }\n\n    a {\n      display: flex;\n      align-items: center;\n      color: $social-color;\n      text-transform: none;\n      text-decoration: none;\n      margin-left: 1.75rem;\n      margin-top: 0;\n\n      &:first-child {\n        margin-left: 0;\n\n        i {\n          line-height: inherit;\n        }\n      }\n\n      i {\n        fill: $social-color;\n        line-height: 0.5;\n      }\n\n      &:hover {\n        i {\n          fill: $primary;\n        }\n\n        color: $primary;\n      }\n    }\n\n    span {\n      margin-left: 0.5rem;\n    }\n  }\n\n  .btn-header {\n    display: flex;\n    align-items: center;\n    margin-top: 1.5rem;\n    color: $primary;\n    background-color: transparent;\n    font-weight: nb-theme(font-weight-bold);\n    padding: 0.875rem;\n    border: 1px solid nb-theme(color-gray-bg);\n    border-radius: 0.25rem;\n    cursor: pointer;\n  }\n\n  .btn-download {\n    position: relative;\n\n    .download-items-container {\n      display: none;\n    }\n\n    span {\n      padding: 0 0.75rem;\n    }\n\n    i {\n      fill: $primary;\n    }\n\n    &:hover {\n      color: nb-theme(color-white);\n      box-shadow: none;\n      background-color: $primary;\n\n      i {\n        fill: nb-theme(color-white);\n      }\n\n      .download-items-container {\n        display: block;\n        padding-top: 0.625rem;\n        position: absolute;\n        z-index: 1;\n        top: 100%;\n        left: 0;\n      }\n\n      ul {\n        margin: 0;\n        padding: 0.625rem 0;\n        background-color: $primary;\n        box-shadow: 0 6px 10px 0 rgba(51, 102, 255, 0.16);\n        border-radius: 0.25rem;\n\n        li {\n          list-style: none;\n\n\n          a {\n            display: flex;\n            align-items: center;\n            text-decoration: none;\n            text-transform: none;\n            padding: 1rem;\n            color: nb-theme(color-white);\n\n            &:hover {\n              background-color: #598bff;\n            }\n\n            &.active, &:active {\n              background-color: #284de0;\n            }\n          }\n        }\n      }\n    }\n  }\n\n  .desktop {\n    display: inherit;\n  }\n\n  .mobile {\n    display: none;\n  }\n\n  @include media-breakpoint-up(sm) {\n    .logo {\n      align-items: baseline;\n      flex: 1 0 auto;\n    }\n  }\n\n  @include media-breakpoint-down(xl) {\n    margin: 0 1rem;\n  }\n\n  @include media-breakpoint-down(md) {\n    .social-group {\n      span {\n        display: none;\n      }\n    }\n  }\n\n  @include media-breakpoint-down(sm) {\n    .desktop {\n      display: none;\n    }\n\n    .mobile {\n      display: inherit;\n    }\n\n    .stars {\n      margin-top: 0.875rem;\n      margin-right: 0;\n    }\n\n    .section {\n      margin-top: 1rem;\n\n      &.left {\n        margin-top: 0;\n\n        a {\n          display: none;\n        }\n      }\n\n      &.right {\n        .social-group {\n          margin-right: 0;\n          margin-left: 0;\n\n          a {\n            margin-left: 0;\n            padding: 0.625rem;\n          }\n\n          i {\n            width: 2rem;\n            height: 2rem;\n          }\n\n          span {\n            display: none;\n          }\n\n          .github, .behance {\n            i {\n              width: 1.75rem;\n              height: 1.75rem;\n            }\n          }\n        }\n      }\n    }\n\n    .btn-header {\n      margin-left: 0;\n    }\n\n    .btn-download {\n      display: none;\n    }\n  }\n\n  @media (min-width: 315px) and (max-width: 370px) {\n    .section {\n      &.right {\n        .social-group {\n          a {\n            margin-left: 0.5rem;\n            padding: 0.5rem;\n          }\n        }\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "src/app/@theme/components/header/header.component.ts",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nimport { Component } from '@angular/core';\nimport { UrlService } from '../../../@core/data/service/url.service';\nimport { EvaAnalytics } from '../../services/analytics.service';\nimport { EvaVersionService } from '../../services/version.service';\n\n@Component({\n  selector: 'eva-header',\n  styleUrls: ['./header.component.scss'],\n  templateUrl: './header.component.html',\n})\nexport class HeaderComponent {\n\n  zipUrl: string;\n\n  constructor(private urlService: UrlService,\n              private analytics: EvaAnalytics,\n              private versionService: EvaVersionService) {\n    this.zipUrl = this.urlService.getZippedIconsUrl();\n  }\n\n  clickOnDownloadPack() {\n    const version = this.versionService.getEvoVersion();\n\n    this.analytics.trackEvent('downloadPack', `download pack version: ${version}`);\n  }\n}\n"
  },
  {
    "path": "src/app/@theme/components/icon-list/icon-list.component.html",
    "content": "<nb-card *ngFor=\"let icon of icons; trackBy: trackByFn\"\n         (click)=\"clickIconHandler(icon.name)\">\n  <nb-card-body *ngIf=\"isMobileView; else desktop\"\n                class=\"eva-parent-hover\"\n                [nbPopover]=\"icon.name\">\n    <i [innerHTML]=\"icon.name | eva: { width: '100%', height: '100%', animationType: animationType }\"></i>\n  </nb-card-body>\n\n  <ng-template #desktop>\n    <nb-card-body class=\"eva-parent-hover\"\n                  [nbPopover]=\"icon.name\"\n                  [nbPopoverMode]=\"'hint'\">\n      <i [innerHTML]=\"icon.name | eva: { width: '100%', height: '100%', animationType: animationType }\"></i>\n    </nb-card-body>\n  </ng-template>\n</nb-card>\n\n<nb-card class=\"fake-card\"></nb-card>\n<nb-card class=\"fake-card\"></nb-card>\n\n"
  },
  {
    "path": "src/app/@theme/components/icon-list/icon-list.component.scss",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\n@import '../../../@theme/styles/themes';\n@import '~@nebular/theme/styles/global/breakpoints';\n\n@include nb-install-component() {\n  $body-size: 6rem;\n\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: flex-start;\n\n  nb-card {\n    cursor: pointer;\n    border: none;\n    margin-bottom: 3rem;\n    margin-right: calc((100% - 8 * #{$body-size}) / 7);\n\n    &:nth-child(8n) {\n      margin-right: 0;\n    }\n  }\n\n  nb-card-body {\n    width: $body-size;\n    height: $body-size;\n    line-height: 3.25;\n    text-align: center;\n    border: 1px solid #f6f7fa;\n    border-radius: 0.25rem;\n\n    i {\n      fill: #5670a1;\n      display: inline-block;\n      width: 1.625rem;\n      height: 1.625rem;\n    }\n\n    &:hover {\n      border: 1px solid transparent;\n      box-shadow: 0 8px 24px 0 rgba(237, 240, 245, 0.5);\n\n      i {\n        fill: nb-theme(color-primary);\n      }\n    }\n  }\n\n  .fake-card {\n    visibility: hidden;\n    margin: 0;\n    padding: 0;\n    height: 0;\n\n    nb-card-body {\n      display: none;\n    }\n  }\n\n  @include media-breakpoint-down(md) {\n    $body-size: 7rem;\n\n    nb-card {\n      margin-right: calc((100% - 4 * #{$body-size}) / 3);\n\n      &:nth-child(4n) {\n        margin-right: 0;\n      }\n    }\n\n    nb-card-body {\n      width: $body-size;\n      height: $body-size;\n      line-height: 4.25;\n    }\n  }\n\n  @include media-breakpoint-down(is) {\n    $body-size: 4.625rem;\n\n    nb-card {\n      margin-bottom: 2.5rem;\n      margin-right: calc((100% - 4 * #{$body-size}) / 3);\n    }\n\n    nb-card-body {\n      width: $body-size;\n      height: $body-size;\n      line-height: 2;\n\n      i {\n        width: 1.5rem;\n        height: 1.5rem;\n      }\n    }\n  }\n\n  @media (min-width: 315px) and (max-width: 370px) {\n    $body-size: 4rem;\n\n    nb-card {\n      margin-bottom: 2.5rem;\n      margin-right: calc((100% - 4 * #{$body-size}) / 3);\n    }\n\n    nb-card-body {\n      width: $body-size;\n      height: $body-size;\n      padding: 1rem;\n      line-height: 1.8;\n\n      i {\n        width: 1.5rem;\n        height: 1.5rem;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "src/app/@theme/components/icon-list/icon-list.component.ts",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  Output,\n  ViewChildren,\n} from '@angular/core';\nimport { takeWhile } from 'rxjs/operators';\nimport { NbLayoutScrollService, NbPopoverDirective } from '@nebular/theme';\n\n@Component({\n  selector: 'eva-icon-list',\n  templateUrl: './icon-list.component.html',\n  styleUrls: ['./icon-list.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconListComponent implements OnDestroy {\n\n  private alive = true;\n\n  @ViewChildren(NbPopoverDirective) popovers: NbPopoverDirective[];\n\n  @Input() icons: { name: string; order: number; }[];\n  @Input() isMobileView: boolean = false;\n  @Input() animationType: string;\n\n  @Output() clickIcon: EventEmitter<string> = new EventEmitter();\n\n  constructor(private scrollService: NbLayoutScrollService) {\n      this.scrollService.onScroll()\n        .pipe(takeWhile(() => this.alive && this.isMobileView))\n        .subscribe(() => {\n          this.popovers.forEach((popover) => {\n            popover.hide();\n          });\n        });\n  }\n\n  clickIconHandler(icon: string) {\n    this.clickIcon.emit(icon);\n  }\n\n  trackByFn = (_, item) => item.order;\n\n  ngOnDestroy() {\n    this.alive = false;\n  }\n}\n"
  },
  {
    "path": "src/app/@theme/components/modals/download-icon/download-icon.component.html",
    "content": "<div class=\"close-icon\"\n     (click)=\"closeDialog()\">\n  <i [innerHTML]=\"'close' | eva: { width: 36, height: 36, animationType: 'pulse' }\"></i>\n</div>\n\n<nb-card>\n  <nb-card-body>\n    <div class=\"icon-container\">\n      <i [innerHTML]=\"selectedIcon | eva: { width: 64, height: 64 }\"></i>\n      <div class=\"icon-name\">{{ selectedIcon }}</div>\n    </div>\n    <div class=\"download-controls\">\n      <div *ngFor=\"let item of downloadControls\"\n           (click)=\"clickOnDownloadIcon(item)\"\n           [class.active]=\"item.format === selectedFormat\"\n      >\n        <a href=\"{{ item.href }}\" download>\n          <div class=\"download-control\"\n               [ngClass]=\"item.format\">\n          </div>\n          <div class=\"name\">{{ item.title }}</div>\n        </a>\n      </div>\n    </div>\n  </nb-card-body>\n</nb-card>\n"
  },
  {
    "path": "src/app/@theme/components/modals/download-icon/download-icon.component.scss",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\n@import '../../../../@theme/styles/themes';\n@import '~@nebular/theme/styles/global/breakpoints';\n\n@include nb-install-component() {\n  $primary: nb-theme(color-primary);\n  $white: nb-theme(color-white);\n  $separator-bg: #dde1eb;\n\n  display: block;\n  position: relative;\n\n  .close-icon {\n    position: absolute;\n    cursor: pointer;\n    top: 0;\n    left: calc(100% + 2.25rem);\n  }\n\n  nb-card {\n    width: 400px;\n    max-height: 481px;\n    font-family: nb-theme(font-main), sans-serif;\n    background: $white;\n    border: none;\n    border-radius: 0.75rem;\n    box-shadow: 0 6px 40px 0 rgba(0, 35, 106, 0.15);;\n  }\n\n  nb-card-body {\n    padding: 5.625rem 0 0;\n    border-radius: 0.75rem;\n  }\n\n  .icon-container {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    color: nb-theme(color-fg);\n  }\n\n  .icon-name {\n    font-size: nb-theme(font-size-xlg);\n    margin-top: 3.75rem;\n  }\n\n  .download-controls {\n    display: flex;\n    justify-content: center;\n    background-color: nb-theme(color-gray-bg);\n    border-top: 1px solid $separator-bg;\n    margin-top: 4.5rem;\n    padding: 2rem 0 1.875rem;\n\n    > div {\n      margin-left: 1.5rem;\n      cursor: pointer;\n\n      &:first-child {\n        margin-left: 0;\n      }\n\n      a {\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n        width: 6.5rem;\n        height: 6.5rem;\n        padding-top: 1.25rem;\n        background-color: $white;\n        border-radius: 0.75rem;\n        text-decoration: none;\n\n        &:hover {\n          background-color: rgba(51, 102, 255, 0.1);\n        }\n\n        &.active, &:active {\n          background-color: rgba(40, 77, 224, 0.2);\n        }\n      }\n    }\n  }\n\n  .download-control {\n    width: 2.5rem;\n    height: 2.5rem;\n  }\n\n  .svg {\n    background: url('../../../../../assets/img/shape.svg') no-repeat;\n    background-position: 50% 50%;\n  }\n\n  .png {\n    background: url('../../../../../assets/img/png.svg') no-repeat;\n    background-position: 50% 50%;\n  }\n\n  .name {\n    font-size: nb-theme(font-size-sm);\n    font-weight: nb-theme(font-weight-ultra-bold);\n    color: nb-theme(color-primary);\n    text-align: center;\n    margin-top: 0.375rem;\n  }\n\n  .select-size-container {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n\n    .title {\n      color: nb-theme(color-fg);\n    }\n  }\n\n  ul {\n    padding: 0;\n  }\n\n  .available-sizes {\n    display: inline-flex;\n    margin-top: 1.5rem;\n    border: 1px solid $primary;\n    border-radius: nb-theme(radius);\n\n    li {\n      list-style: none;\n      color: $primary;\n      padding: 1rem 1.25rem;\n      border-left: 1px solid $primary;\n      font-weight: nb-theme(font-weight-bold);\n      cursor: pointer;\n\n      &:first-child {\n        border-left: none;\n      }\n\n      &:hover, &.active, &:active {\n        background-color: $primary;\n        color: $white;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "src/app/@theme/components/modals/download-icon/download-icon.component.ts",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nimport { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from '@angular/core';\nimport { UrlService } from '../../../../@core/data/service/url.service';\nimport { NbDialogRef } from '@nebular/theme';\nimport { EvaAnalytics } from '../../../services/analytics.service';\n\n@Component({\n  selector: 'eva-download-icon',\n  styleUrls: ['./download-icon.component.scss'],\n  templateUrl: './download-icon.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DownloadIconComponent implements AfterViewInit {\n\n  @Input() selectedIcon: string = '';\n  @Input() iconType: string = '';\n\n  selectedFormat: string;\n  downloadControls: { format: string; title: string }[] = [];\n\n  constructor(private changeDetectorRef: ChangeDetectorRef,\n              private urlService: UrlService,\n              protected dialogRef: NbDialogRef<DownloadIconComponent>,\n              private analytics: EvaAnalytics) {}\n\n  ngAfterViewInit() {\n    this.downloadControls =\n      this.urlService.getDownloadItemsDate(this.iconType, this.selectedIcon);\n\n    this.changeDetectorRef.detectChanges();\n  }\n\n  closeDialog() {\n    this.dialogRef.close();\n  }\n\n  clickOnDownloadIcon(icon: { format: string; title: string }) {\n    this.analytics.trackEvent('downloadIcon', `${this.selectedIcon}.${icon.format}`);\n  }\n}\n"
  },
  {
    "path": "src/app/@theme/components/page-container/page-container.component.html",
    "content": "<div class=\"title\">\n  <i class=\"heart\"></i>\n  <span class=\"version mobile\">v{{currentVersion}}</span>\n  <h1>\n    Eva icons\n    <span class=\"version desktop\">v{{currentVersion}}</span>\n  </h1>\n</div>\n<p class=\"description\">\n  Eva Icons is a pack of more than <span>480</span> beautifully crafted Open Source icons for common actions and items.<br/>\n  Download our set on the desktop to use them in your digital products for Web, iOS and Android.<br/>\n  Compatible with <a class=\"eva-ds-link\" href=\"https://eva.design?utm_campaign=eva_design%20-%20home%20-%20eva_icons%20website&utm_source=eva_icons&utm_medium=referral&utm_content=top_description_link\">Eva Design System</a>.\n</p>\n\n<div class=\"search\" [class.search-focus]=\"isInputFocus\">\n  <i [innerHTML]=\"'search-outline' | eva: { width: 24, height: 24 }\"></i>\n  <input class=\"search-input\"\n         (focus)=\"handleFocusInput()\"\n         (blur)=\"handleBlurInput()\"\n         [attr.placeholder]=\"placeholder\"\n         #searchInput\n         autocomplete=\"off\"\n         tabindex=\"-1\"/>\n</div>\n\n<div class=\"actions\">\n  <section class=\"left-actions\">\n    <eva-type-switcher (changeIconsType)=\"changeIconsType($event)\"\n                       [isMobileView]=\"isMobileMode\"\n                       [iconsType]=\"iconsType\">\n    </eva-type-switcher>\n  </section>\n  <section class=\"right-action\">\n    <span class=\"animation-title\">Animation:</span>\n    <eva-animation-switcher (changeAnimation)=\"changeAnimation($event)\"\n                            [isMobileView]=\"isMobileMode\"\n                            [animation]=\"animation\">\n    </eva-animation-switcher>\n  </section>\n</div>\n\n<div class=\"icons\" #iconsBlock>\n  <eva-icon-list *ngIf=\"!noSearchResults\"\n                 [icons]=\"icons\"\n                 [animationType]=\"animation\"\n                 [isMobileView]=\"isMobileMode\"\n                 (clickIcon)=\"clickIcon($event)\">\n  </eva-icon-list>\n\n  <div *ngIf=\"noSearchResults\"\n       class=\"info-message\">\n    {{ message }}\n  </div>\n\n  <div *ngIf=\"isLoading\"\n       class=\"spinner-container\"\n       [nbSpinner]=\"isLoading\"\n       nbSpinnerMessage=\"\"\n       nbSpinnerStatus=\"primary\"\n       nbSpinnerSize=\"xxlarge\">\n  </div>\n</div>\n\n"
  },
  {
    "path": "src/app/@theme/components/page-container/page-container.component.scss",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\n@import '../../styles/themes';\n@import '~@nebular/theme/styles/global/breakpoints';\n\n@include nb-install-component() {\n  $primary: nb-theme(color-primary);\n  $search-input-padding-sides: 1rem;\n  $search-input-padding-tops: 1rem;\n  $search-input-mobile-padding-sides: 0.5rem;\n  $search-input-mobile-padding-tops: 1rem;\n  $search-placeholder-color: #a6aebd;\n  $version-color: #0fba81;\n  $version-bg: #edfff3;\n  $description-color: #5670a1;\n  $search-icon-fill-color: #a6aebd;\n  $actions-color: #a7b4cc;\n\n  margin-top: 4.5rem;\n  margin-bottom: 3rem;\n  display: block;\n\n  .title {\n    position: relative;\n  }\n\n  .version {\n    font-family: nb-theme(font-main), sans-serif;\n    background-color: $version-bg;\n    position: relative;\n    bottom: 0.35rem;\n    font-size: nb-theme(font-size);\n    font-weight: nb-theme(font-weight-bold);\n    color: $version-color;\n    padding: 0.3125rem 0.6875rem 0.3125rem 0.8125rem;\n    border-radius: nb-theme(custiom-radius);\n    text-transform: none;\n  }\n\n  h1 {\n    font-family: 'Raleway Bold', Arial, Helvetica, Geneva, sans-serif;\n    color: $primary;\n    font-size: 5rem;\n    padding-left: 6.625rem;\n    text-transform: capitalize;\n    margin-bottom: 1rem;\n  }\n\n  .description {\n    color: $description-color;\n    font-size: nb-theme(font-size-lg);\n    line-height: 1.625;\n    margin-bottom: 2rem;\n\n    span {\n      font-weight: nb-theme(font-weight-ultra-bold);\n    }\n\n    .eva-ds-link {\n      color: nb-theme(color-primary);\n    }\n  }\n\n  // search\n  .search {\n    width: 100%;\n    position: relative;\n\n    i {\n      position: absolute;\n      left: $search-input-padding-sides;\n      top: 1rem;\n      fill: $search-icon-fill-color;\n    }\n\n    &.search-focus {\n      i {\n        fill: $primary;\n      }\n    }\n  }\n\n  .heart {\n    position: absolute;\n    top: 1.25rem;\n    left: 1.375rem;\n    width: 3.75rem;\n    height: 3.75rem;\n    background: url('../../../../assets/img/heart.svg') no-repeat;\n    background-position: 50% 50%;\n    background-size: contain;\n  }\n\n  .search-input {\n    width: 100%;\n    border: none;\n    background-color: nb-theme(color-gray-bg);\n    color: $primary;\n    padding: $search-input-padding-tops $search-input-padding-sides;\n    padding-left: 4rem;\n    line-height: 1.5;\n    border-radius: nb-theme(custiom-radius);\n\n    &::placeholder {\n      color: $search-icon-fill-color;\n    }\n\n    &::-ms-clear {\n      display: none;\n    }\n  }\n  // search\n\n  // actions\n  .actions {\n    display: flex;\n    justify-content: space-between;\n    margin-top: 2.875rem;\n  }\n\n  .right-action {\n    display: flex;\n    color: $actions-color;\n  }\n\n  .animation-title {\n    margin-right: 1.625rem;\n  }\n  // actions\n\n  // icons container\n  .icons {\n    position: relative;\n  }\n  // icons container\n\n  eva-icon-list {\n    margin-top: 3rem;\n  }\n\n  .spinner-container {\n    width: 100%;\n    height: 25vh;\n  }\n\n  .info-message {\n    display: flex;\n    flex-direction: row;\n    align-items: center;\n    justify-content: center;\n    height: 7rem;\n    width: 70%;\n    margin: 2.5rem auto;\n    text-align: center;\n    font-size: nb-theme(font-size-lg);\n    background-color: nb-theme(info-bg);\n    color: nb-theme(info-fg);\n    border-radius: 0.75rem;\n  }\n\n  @include media-breakpoint-up(sm) {\n    .mobile {\n      display: none;\n    }\n  }\n\n  @include media-breakpoint-down(lg) {\n    padding-left: 1rem;\n    padding-right: 1rem;\n  }\n\n  @include media-breakpoint-down(sm) {\n    margin-top: 0;\n\n    .desktop {\n      display: none;\n    }\n\n    .title {\n      display: flex;\n      flex-direction: column;\n      align-items: center;\n    }\n\n    .heart {\n      position: static;\n      display: block;\n      margin-bottom: 0.875rem;\n    }\n\n    .version {\n      position: static;\n    }\n\n    h1 {\n      margin-top: 0.75rem;\n      margin-bottom: 2rem;\n      padding-left: 0;\n      font-size: 4rem;\n    }\n\n    .description {\n      margin-bottom: 4rem;\n      font-size: nb-theme(font-size);\n\n      br {\n        display: none;\n      }\n    }\n\n    .actions {\n      flex-direction: column;\n      align-items: center;\n      margin-top: 4rem;\n\n      .right-action {\n        margin-top: 2.5rem;\n      }\n    }\n\n    .animation-title {\n      display: none;\n    }\n\n    .info-message {\n      width: 100%;\n      padding: 0 1rem;\n    }\n  }\n\n  @media (min-width: 315px) and (max-width: 370px) {\n    h1 {\n      font-size: 3.5rem;\n    }\n  }\n}\n"
  },
  {
    "path": "src/app/@theme/components/page-container/page-container.component.ts",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nimport {\n  AfterViewInit,\n  Component,\n  ElementRef,\n  OnDestroy,\n  ViewChild,\n} from '@angular/core';\nimport {\n  NbDialogService,\n  NbMediaBreakpoint,\n  NbMediaBreakpointsService,\n  NbThemeService,\n} from '@nebular/theme';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { fromEvent } from 'rxjs/internal/observable/fromEvent';\n\nimport { IconService, IconServiceData } from '../../../@core/data/service/icons/icon.service';\nimport { debounceTime, delay, mergeMap, takeWhile, tap } from 'rxjs/operators';\nimport { DownloadIconComponent } from '../modals/download-icon/download-icon.component';\nimport { DialogStateService } from '../../services/dialog-state.service';\nimport { EvaVersionService } from '../../services/version.service';\nimport { EvaAnalytics } from '../../services/analytics.service';\n\n@Component({\n  selector: 'eva-page-container',\n  templateUrl: 'page-container.component.html',\n  styleUrls: ['page-container.component.scss'],\n})\nexport class PageContainerComponent implements AfterViewInit, OnDestroy {\n\n  private alive = true;\n\n  @ViewChild('searchInput') searchInput: ElementRef;\n  @ViewChild('iconsBlock') iconsElement: ElementRef;\n\n  currentVersion: string;\n  iconsType: string = 'outline';\n  isInputFocus = false;\n  icons: string[] = [];\n  message: string = '';\n  breakpoint: NbMediaBreakpoint = { name: '', width: 0 };\n  breakpoints: any;\n  animation: string = 'zoom';\n\n  constructor(private iconService: IconService,\n              private router: Router,\n              private activatedRoute: ActivatedRoute,\n              private dialogService: NbDialogService,\n              private breakpointService: NbMediaBreakpointsService,\n              private themeService: NbThemeService,\n              private dialogStateService: DialogStateService,\n              private versionService: EvaVersionService,\n              private analytics: EvaAnalytics) {\n    this.currentVersion = this.versionService.getEvoVersion();\n    this.breakpoints = this.breakpointService.getBreakpointsMap();\n\n    this.themeService.onMediaQueryChange()\n      .pipe(takeWhile(() => this.alive))\n      .subscribe(([oldValue, newValue]) => {\n        this.breakpoint = newValue;\n      });\n  }\n\n  ngAfterViewInit() {\n    this.activatedRoute.queryParams\n      .pipe(\n        takeWhile(() => this.alive),\n        delay(0),\n        tap((params) => {\n          const inputValue = this.searchInput.nativeElement.value;\n\n          if (!inputValue && params.searchKey) {\n            this.searchInput.nativeElement.value = params.searchKey;\n          }\n\n          if (params.type && this.iconsType !== params.type) {\n            this.iconsType = params.type;\n          }\n        }),\n        mergeMap((params) => {\n          return params.searchKey && params.type ?\n            this.iconService.getFilteredIconsData(params.searchKey, params.type) :\n            this.iconService.getIconsData(this.iconsType);\n        }),\n      )\n      .subscribe((iconsData: IconServiceData) => {\n        this.icons = iconsData.icons;\n        this.message = iconsData.message;\n      });\n\n    fromEvent(this.searchInput.nativeElement, 'keyup')\n      .pipe(\n        takeWhile(() => this.alive),\n        debounceTime(500),\n      )\n      .subscribe((event: any) => {\n        const searchKeyValue = event.target.value;\n\n        if (searchKeyValue) {\n          this.updateQueryParams({ searchKey: searchKeyValue, type: this.iconsType });\n        } else {\n          const url = this.router.url.substring(0, this.router.url.indexOf('?'));\n\n          this.router.navigateByUrl(url);\n        }\n      });\n  }\n\n  get placeholder() {\n    return this.isLoading || this.noSearchResults ? '' : `Search ${this.icons.length} Icons`;\n  }\n\n  get noSearchResults() {\n    return (\n      this.message &&\n      this.icons.length === 0\n    );\n  }\n\n  get isLoading() {\n    return (\n      !this.message &&\n      this.icons.length === 0\n    );\n  }\n\n  get isMobileMode() {\n    return this.breakpoint.width <= this.breakpoints.sm;\n  }\n\n  clickIcon(icon) {\n    this.analytics.trackEvent('openIconDialog', icon);\n\n    if (this.isMobileMode) {\n      return;\n    }\n\n    const modalRef = this.dialogService.open(\n      DownloadIconComponent,\n      {\n        backdropClass: 'download-icon',\n      },\n    );\n    const componentInstance = modalRef.componentRef.instance;\n\n    componentInstance.selectedIcon = icon;\n    componentInstance.iconType = this.iconsType;\n\n    this.dialogStateService.changeDialogState('open');\n\n    modalRef.onClose\n      .subscribe(() => {\n        this.dialogStateService.changeDialogState('close');\n      });\n  }\n\n  handleFocusInput() {\n    this.isInputFocus = true;\n  }\n\n  handleBlurInput() {\n    this.isInputFocus = false;\n  }\n\n  changeAnimation(animationType) {\n    this.animation = animationType;\n  }\n\n  changeIconsType(iconsType) {\n    this.iconsType = iconsType;\n    this.icons = [];\n\n    this.updateQueryParams({ type: iconsType });\n  }\n\n  updateQueryParams(queryParams) {\n    this.router.navigate(\n      [],\n      {\n        relativeTo: this.activatedRoute,\n        queryParamsHandling: 'merge',\n        queryParams,\n      });\n  }\n\n  ngOnDestroy() {\n    this.alive = false;\n  }\n}\n"
  },
  {
    "path": "src/app/@theme/components/type-switcher/type-switcher.component.html",
    "content": "<ul>\n  <li *ngFor=\"let item of navItems\"\n      class=\"nav-item\"\n      [class.active]=\"item.type === iconsType\"\n      (click)=\"changeType(item.type)\">\n    <i class=\"nav-menu-icon\"\n       [innerHTML]=\"item.iconName | eva\">\n    </i>\n    <span class=\"title\">{{ item.title }}</span>\n  </li>\n</ul>\n"
  },
  {
    "path": "src/app/@theme/components/type-switcher/type-switcher.component.scss",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\n@import '../../../@theme/styles/themes';\n@import '~@nebular/theme/styles/global/breakpoints';\n\n@include nb-install-component() {\n  $primary: nb-theme(color-primary);\n  $item-color: #a7b4cc;\n\n  ul {\n    display: flex;\n    list-style: none;\n    margin: 0;\n    padding: 0;\n  }\n\n  li {\n    display: flex;\n    align-items: baseline;\n    position: relative;\n    text-decoration: none;\n    font-size: nb-theme(font-size-sm);\n    color: $item-color;\n    cursor: pointer;\n\n    &:not(:first-child) {\n      margin-left: 1.75rem;\n    }\n\n    &:hover, &.active, &:focus {\n      color: $primary;\n      text-shadow: 0.5px 0 0 currentColor;\n      font-weight: normal;\n      outline: none!important;\n\n      .nav-menu-icon {\n        fill: $primary;\n      }\n    }\n\n    .nav-menu-icon {\n      margin-right: 0.5rem;\n      fill: $item-color;\n    }\n\n    span {\n      font-size: nb-theme(font-size-sm);\n    }\n  }\n\n  @include media-breakpoint-down(lg) {\n\n  }\n\n  @include media-breakpoint-down(sm) {\n    a {\n      span {\n        display: none;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "src/app/@theme/components/type-switcher/type-switcher.component.ts",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n  selector: 'eva-type-switcher',\n  templateUrl: './type-switcher.component.html',\n  styleUrls: ['./type-switcher.component.scss'],\n})\n\nexport class TypeSwitcherComponent {\n\n  @Output() changeIconsType: EventEmitter<string> = new EventEmitter();\n\n  @Input() iconsType: string;\n  @Input() isMobileView: string;\n\n  navItems = [\n    {\n      title: 'Outline',\n      type: 'outline',\n      iconName: 'star-outline',\n    },\n    {\n      title: 'Fill',\n      type: 'fill',\n      iconName: 'star',\n    },\n  ];\n\n  changeType(value) {\n    this.changeIconsType.emit(value);\n    this.iconsType = value;\n  }\n}\n"
  },
  {
    "path": "src/app/@theme/pipes/eva-icons.pipe.ts",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { Pipe, PipeTransform } from '@angular/core';\n\nimport { icons } from '../../../../package-build/eva';\n\n@Pipe({ name: 'eva' })\nexport class EvaIconsPipe implements PipeTransform {\n\n  private defaultOptions = {\n    height: 24,\n    width: 24,\n    fill: 'inherit',\n    animationHover: true,\n    animationInfinity: false,\n  };\n\n  constructor(private sanitizer: DomSanitizer) {}\n\n  transform(icon: string,\n            options: {\n              height: number;\n              width: number;\n              fill: string;\n              animationType?: string;\n              animationHover?: boolean;\n              animationInfinity?: boolean;\n            },\n  ) {\n    const mergedOptions = {\n      ...this.defaultOptions,\n      ...options,\n    };\n    const { width, height, fill, animationType, animationHover, animationInfinity } = mergedOptions;\n    const animation = animationType ?\n      { type: animationType, hover: animationHover, infinite: animationInfinity } :\n      null;\n\n    return this.sanitizer.bypassSecurityTrustHtml(icons[icon].toSvg({\n      width,\n      height,\n      fill,\n      animation,\n    }));\n  }\n}\n"
  },
  {
    "path": "src/app/@theme/services/analytics.service.ts",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nimport { Injectable, Inject } from '@angular/core';\nimport { NB_WINDOW } from '@nebular/theme';\n\n@Injectable()\nexport class EvaAnalytics {\n  private enabled: boolean;\n\n  constructor(@Inject(NB_WINDOW) private window) {\n    this.enabled = this.window.location.href.indexOf('akveo.github.io') >= 0;\n  }\n\n  trackEvent(eventName: string, eventVal: string = '') {\n    if (this.enabled) {\n      this.gtmPushToDataLayer({ event: eventName, eventValue: eventVal });\n    }\n  }\n\n  // Push to 'dataLayer' Google Tag Manager array\n  private gtmPushToDataLayer(params) {\n    this.window.dataLayer.push(params);\n  }\n}\n"
  },
  {
    "path": "src/app/@theme/services/dialog-state.service.ts",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nimport { Injectable } from '@angular/core';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { share } from 'rxjs/operators';\n\n@Injectable()\nexport class DialogStateService {\n\n  protected dialogState$ = new ReplaySubject();\n\n  changeDialogState(state: string) {\n    this.dialogState$.next({state});\n  }\n\n  onChangeDialogState(): Observable<any> {\n    return this.dialogState$.pipe(share());\n  }\n}\n"
  },
  {
    "path": "src/app/@theme/services/index.ts",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nimport { EvaVersionService } from './version.service';\nimport { DialogStateService } from './dialog-state.service';\nimport { EvaAnalytics } from './analytics.service';\n\n\nexport const evaServices = [\n  EvaVersionService,\n  DialogStateService,\n  EvaAnalytics,\n];\n"
  },
  {
    "path": "src/app/@theme/services/version.service.ts",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class EvaVersionService {\n\n  getEvoVersion() {\n    return require('../../../../package.json').version;\n  }\n}\n"
  },
  {
    "path": "src/app/@theme/styles/_raleway.scss",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\n$raleway-font-path: 'assets/fonts/raleway' !default;\n\n@font-face {\n  font-family: 'Raleway Bold';\n  src: url('#{$raleway-font-path}/Raleway-Bold.eot');\n  src: local('Raleway Bold'), local('Raleway-Bold'),\n  url('#{$raleway-font-path}/Raleway-Bold.eot?#iefix') format('embedded-opentype'),\n  url('#{$raleway-font-path}/Raleway-Bold.woff') format('woff'),\n  url('#{$raleway-font-path}/Raleway-Bold.ttf') format('truetype');\n  font-weight: bold;\n  font-style: normal;\n}\n"
  },
  {
    "path": "src/app/@theme/styles/styles.scss",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\n@import 'raleway';\n@import 'themes';\n\n@import '~@nebular/theme/styles/globals';\n@import '~@nebular/bootstrap/styles/globals';\n\n@include nb-install() {\n  @include nb-theme-global();\n  @include nb-bootstrap-global();\n};\n"
  },
  {
    "path": "src/app/@theme/styles/themes.scss",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\n@import '~@nebular/theme/styles/theming';\n@import '~@nebular/theme/styles/themes/corporate';\n\n$nb-enabled-themes: (eva);\n\n/* stylelint-disable */\n$nb-themes: nb-register-theme((\n  content-width: 1120px,\n\n  color-primary: #3366ff,\n\n  separator: transparent,\n  color-bg: transparent,\n  color-fg: #0d1c2e,\n  color-fg-heading: #546d8d,\n  color-fg-text: #919fb1,\n  color-fg-icon: #c4c8d1,\n  color-gray-bg: #edf0f5,\n\n  shadow: none,\n\n  layout-bg: transparent,\n  layout-padding: 0,\n  layout-medium-padding: 0,\n  layout-small-padding: 0,\n\n  header-bg: color-bg,\n  header-padding: 0 0,\n  header-height: 4.25rem,\n  header-fg: color-fg,\n  header-section-border-color: #f5f5f5,\n\n  header-button-border: #dce4f2,\n\n  menu-bg: transparent,\n  menu-item-padding: 0.675rem 1rem,\n  menu-item-fg: #8992a3,\n  menu-active-fg: color-primary,\n  menu-font-size: 0.95rem,\n  menu-font-weight: font-weight-normal,\n\n  menu-active-bg: transparent,\n\n  footer-height: 18.75rem,\n  footer-padding: 1.25rem 0,\n  footer-fg: #8992a3,\n  footer-fg-highlight: footer-fg,\n  footer-separator: transparent,\n\n\n  list-icon-item-bg: #ebf1fa,\n  list-icon-item-fg: #0d1c2e,\n\n  switcher-view-bg: #d8e1f0,\n\n  checkbox-checked-bg: #00db92,\n  checkbox-checked-border-color: checkbox-checked-bg,\n  checkbox-checked-checkmark: color-white,\n\n  format-name-fg: #6a7385,\n\n  popover-bg: #0d1c2e,\n  popover-fg: #ffffff,\n  popover-border: #0d1c2e,\n  popover-border-radius: 0.75rem,\n  popover-arrow-size: 6px,\n\n  info-bg: #fff2f2,\n  info-fg: #ff3d71,\n\n  custiom-radius: 0.625rem,\n), eva, corporate);\n"
  },
  {
    "path": "src/app/@theme/theme.module.ts",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nimport { RouterModule } from '@angular/router';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n// components\nimport { FooterComponent } from './components/footer/footer.component';\nimport { HeaderComponent } from './components/header/header.component';\nimport { DownloadIconComponent } from './components/modals/download-icon/download-icon.component';\nimport { PageContainerComponent } from './components/page-container/page-container.component';\nimport { IconListComponent } from './components/icon-list/icon-list.component';\nimport { TypeSwitcherComponent } from './components/type-switcher/type-switcher.component';\nimport { AnimationSwitcherComponent } from './components/animation-switcher/animation-switcher.component';\n// components\n\n// services\nimport { evaServices } from './services';\n// services\n\n// pipes\nimport { EvaIconsPipe } from './pipes/eva-icons.pipe';\n// pipes\n\nimport {\n  NbMenuModule,\n  NbLayoutModule,\n  NbCardModule,\n  NbThemeModule,\n  NbOverlayModule,\n  NbDialogModule,\n  NbCheckboxModule,\n  NbSpinnerModule,\n  NbPopoverModule, NbSelectModule,\n} from '@nebular/theme';\n\nconst COMPONENTS = [\n  FooterComponent,\n  HeaderComponent,\n  DownloadIconComponent,\n  PageContainerComponent,\n  IconListComponent,\n  TypeSwitcherComponent,\n  AnimationSwitcherComponent,\n];\n\nconst PIPES = [\n  EvaIconsPipe,\n];\n\n@NgModule({\n  imports: [\n    RouterModule,\n    CommonModule,\n    NbMenuModule,\n    NbLayoutModule,\n    NbCardModule,\n    NbOverlayModule,\n    NbDialogModule,\n    NbCheckboxModule,\n    NbSpinnerModule,\n    NbPopoverModule,\n    NbSelectModule,\n  ],\n  declarations: [\n    ...COMPONENTS,\n\n    ...PIPES,\n  ],\n  exports: [\n    RouterModule,\n    CommonModule,\n    NbMenuModule,\n    NbLayoutModule,\n    NbCardModule,\n    NbDialogModule,\n    NbOverlayModule,\n    NbCheckboxModule,\n    NbSpinnerModule,\n    NbSelectModule,\n\n    FooterComponent,\n    HeaderComponent,\n    PageContainerComponent,\n    IconListComponent,\n\n    ...PIPES,\n  ],\n  entryComponents: [\n    DownloadIconComponent,\n  ],\n})\nexport class EvaThemeModule {\n  static forRoot(): ModuleWithProviders {\n    return <ModuleWithProviders>{\n      ngModule: EvaThemeModule,\n      providers: [\n        ...NbThemeModule.forRoot({ name: 'eva' }).providers,\n        ...evaServices,\n        ...NbMenuModule.forRoot().providers,\n        ...NbOverlayModule.forRoot().providers,\n        ...NbDialogModule.forRoot().providers,\n      ],\n    };\n  }\n}\n"
  },
  {
    "path": "src/app/app.component.html",
    "content": "<nb-layout [class.blur]=\"isOpenDialog\" [withScroll]=\"true\">\n  <nb-layout-header>\n    <eva-header></eva-header>\n  </nb-layout-header>\n\n  <nb-layout-column>\n    <eva-page-container></eva-page-container>\n  </nb-layout-column>\n\n  <nb-layout-footer fixed>\n    <eva-footer></eva-footer>\n  </nb-layout-footer>\n</nb-layout>\n"
  },
  {
    "path": "src/app/app.component.scss",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\n@import '@theme/styles/themes';\n@import '~@nebular/theme/styles/global/breakpoints';\n\n@include nb-install-component() {\n  $blur-background: #e9eaec;\n  $content-width: nb-theme(content-width);\n  $popover-border-width: calc(#{nb-theme(popover-arrow-size)} - 2px);\n\n  .content-center {\n    max-width: $content-width;\n    width: 100%;\n    margin-left: auto;\n    margin-right: auto;\n    display: flex;\n    flex-wrap: wrap;\n  }\n\n  .contact-us {\n    padding: 5rem 1rem;\n\n    h2 {\n      color: black;\n    }\n  }\n\n  /deep/ nb-popover {\n    font-family: nb-theme(font-main), sans-serif;\n\n    nb-overlay-container {\n      .primitive-overlay {\n        box-shadow: 0 6px 10px 0 rgba(51, 102, 255, 0.16);\n        padding: 0.4rem 1rem 0.5rem;\n        font-size: nb-theme(font-size-sm);\n      }\n    }\n\n    .arrow {\n      &::after {\n        border-left-width: $popover-border-width;\n        border-right-width: $popover-border-width;\n        border-bottom-width: $popover-border-width;\n      }\n    }\n  }\n\n  /deep/ nb-layout {\n    &.blur {\n      .layout {\n        filter: blur(5px);\n        background-color: $blur-background;\n      }\n    }\n  }\n\n  /deep/ nb-layout .main-container {\n    padding-top: 3rem;\n\n    .scrollable {\n      padding-top: 0;\n    }\n  }\n\n  /deep/ nb-layout .layout-container .columns {\n    max-width: $content-width;\n    margin: 0 auto;\n  }\n\n  /deep/ nb-layout-header {\n    nav {\n      max-width: $content-width;\n      margin: 0 auto;\n    }\n  }\n\n  /deep/ .content nb-layout-footer {\n    width: 100%;\n    background-color: #f7f8fa;\n\n    nav {\n      max-width: $content-width;\n      width: 100%;\n      margin: 0 auto;\n    }\n  }\n\n\n  @include media-breakpoint-down(xl) {\n    nb-layout-header /deep/ nav {\n      height: 8.25rem;\n      display: block;\n    }\n  }\n}\n"
  },
  {
    "path": "src/app/app.component.ts",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nimport { Component } from '@angular/core';\nimport { DialogStateService } from './@theme/services/dialog-state.service';\n\n@Component({\n  selector: 'eva-app',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.scss'],\n})\nexport class AppComponent {\n\n  isOpenDialog = false;\n\n  constructor(private dialogStateService: DialogStateService) {\n    this.dialogStateService.onChangeDialogState()\n      .subscribe(({state}) => {\n        this.isOpenDialog = state === 'open';\n      });\n  }\n}\n"
  },
  {
    "path": "src/app/app.module.ts",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\nimport { APP_BASE_HREF } from '@angular/common';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { NgModule } from '@angular/core';\nimport { HttpClientModule } from '@angular/common/http';\n\nimport { EvaThemeModule } from './@theme/theme.module';\nimport { CoreModule } from './@core/core.module';\nimport { AppComponent } from './app.component';\nimport { RouterModule } from '@angular/router';\n\n@NgModule({\n  declarations: [\n    AppComponent,\n  ],\n  imports: [\n    BrowserModule,\n    BrowserAnimationsModule,\n    HttpClientModule,\n    RouterModule.forRoot(\n      [\n        { path: '', component: AppComponent },\n        { path: '**', redirectTo: '' },\n      ],\n      {\n        useHash: true,\n      },\n    ),\n\n    EvaThemeModule.forRoot(),\n    CoreModule.forRoot(),\n  ],\n  bootstrap: [AppComponent],\n  providers: [\n    { provide: APP_BASE_HREF, useValue: '/' },\n  ],\n})\nexport class AppModule { }\n"
  },
  {
    "path": "src/assets/.gitkeep",
    "content": ""
  },
  {
    "path": "src/browserslist",
    "content": "# This file is currently used by autoprefixer to adjust CSS to support the below specified browsers\n# For additional information regarding the format and rule options, please see:\n# https://github.com/browserslist/browserslist#queries\n# For IE 9-11 support, please uncomment the last line of the file and adjust as needed\n> 0.5%\nlast 2 versions\nFirefox ESR\nnot dead\n# IE 9-11"
  },
  {
    "path": "src/environments/environment.prod.ts",
    "content": "export const environment = {\n  production: true,\n};\n"
  },
  {
    "path": "src/environments/environment.ts",
    "content": "// 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"
  },
  {
    "path": "src/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<head>\n  <script>\n    dataLayer = [];\n  </script>\n  <meta charset=\"utf-8\">\n  <title>Eva Icons - beautifully crafted Open Source UI icons for common actions and items.</title>\n\n  <meta name=\"description\" content=\"Eva Icons is a pack of 480 delightful icons available for free. Download Eva Icons to use them in your products for mobile and web apps. Available as SVG, PNG, Web Font and Sketch. Open Source, built by the Nebular team.\">\n  <meta name=\"keywords\" content=\"icons,icons pack,icons font,icons set,icons free,icons android,png a icons,icons copy and paste,icons css,icons collection,icons desktop,icons design,icons images, icons font\">\n\n  <meta name='apple-mobile-web-app-capable' content='yes' />\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <link rel=\"icon\" type=\"image/x-icon\" href=\"favicon.ico\">\n\n  <!-- Google Tag Manager -->\n  <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\n  new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\n  j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\n  'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\n  })(window,document,'script','dataLayer','GTM-K8MXX5F');</script>\n  <!-- End Google Tag Manager -->\n</head>\n<body>\n  <!-- Google Tag Manager (noscript) -->\n  <noscript><iframe src=\"https://www.googletagmanager.com/ns.html?id=GTM-K8MXX5F\"\n  height=\"0\" width=\"0\" style=\"display:none;visibility:hidden\"></iframe></noscript>\n  <!-- End Google Tag Manager (noscript) -->\n  <eva-app></eva-app>\n</body>\n</html>\n"
  },
  {
    "path": "src/karma.conf.js",
    "content": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-file.html\n\nmodule.exports = function (config) {\n  config.set({\n    basePath: '',\n    frameworks: ['jasmine', '@angular-devkit/build-angular'],\n    plugins: [\n      require('karma-jasmine'),\n      require('karma-chrome-launcher'),\n      require('karma-jasmine-html-reporter'),\n      require('karma-coverage-istanbul-reporter'),\n      require('@angular-devkit/build-angular/plugins/karma')\n    ],\n    client: {\n      clearContext: false // leave Jasmine Spec Runner output visible in browser\n    },\n    coverageIstanbulReporter: {\n      dir: require('path').join(__dirname, '../coverage'),\n      reports: ['html', 'lcovonly'],\n      fixWebpackSourcePaths: true\n    },\n    reporters: ['progress', 'kjhtml'],\n    port: 9876,\n    colors: true,\n    logLevel: config.LOG_INFO,\n    autoWatch: true,\n    browsers: ['Chrome'],\n    singleRun: false\n  });\n};"
  },
  {
    "path": "src/main.ts",
    "content": "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.error(err));\n"
  },
  {
    "path": "src/polyfills.ts",
    "content": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n *   2. Application imports. Files imported after ZoneJS that should be loaded before your main\n *      file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/** IE9, IE10 and IE11 requires all of the following polyfills. **/\n// import 'core-js/es6/symbol';\n// import 'core-js/es6/object';\n// import 'core-js/es6/function';\n// import 'core-js/es6/parse-int';\n// import 'core-js/es6/parse-float';\n// import 'core-js/es6/number';\n// import 'core-js/es6/math';\n// import 'core-js/es6/string';\n// import 'core-js/es6/date';\n// import 'core-js/es6/array';\n// import 'core-js/es6/regexp';\n// import 'core-js/es6/map';\n// import 'core-js/es6/weak-map';\n// import 'core-js/es6/set';\n\n/** IE10 and IE11 requires the following for NgClass support on SVG elements */\n// import 'classlist.js';  // Run `npm install --save classlist.js`.\n\n/** IE10 and IE11 requires the following for the Reflect API. */\n// import 'core-js/es6/reflect';\n\n\n/** Evergreen browsers require these. **/\n// Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators), you can remove.\nimport 'core-js/es7/reflect';\n\n\n/**\n * Web Animations `@angular/platform-browser/animations`\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\n **/\n// import 'web-animations-js';  // Run `npm install --save web-animations-js`.\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n */\n\n // (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n // (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n // (window as any).__zone_symbol__BLACK_LISTED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n\n /*\n * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n * with the following flag, it will bypass `zone.js` patch for IE/Edge\n */\n// (window as any).__Zone_enable_cross_context_check = true;\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js/dist/zone';  // Included with Angular CLI.\n\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n"
  },
  {
    "path": "src/test.ts",
    "content": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/zone-testing';\nimport { getTestBed } from '@angular/core/testing';\nimport {\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting,\n} from '@angular/platform-browser-dynamic/testing';\n\ndeclare const require: any;\n\n// First, initialize the Angular testing environment.\ngetTestBed().initTestEnvironment(\n  BrowserDynamicTestingModule,\n  platformBrowserDynamicTesting(),\n);\n// Then we find all the tests.\nconst context = require.context('./', true, /\\.spec\\.ts$/);\n// And load the modules.\ncontext.keys().map(context);\n"
  },
  {
    "path": "src/tsconfig.app.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/app\",\n    \"module\": \"es2015\",\n    \"baseUrl\": \"./\",\n    \"types\": [],\n    \"paths\": {\n      \"@angular/*\": [\n        \"../node_modules/@angular/*\"\n      ],\n      \"@nebular/*\": [\n        \"../node_modules/@nebular/*\"\n      ]\n    }\n  },\n  \"exclude\": [\n    \"test.ts\",\n    \"**/*.spec.ts\",\n    \"../node_modules/@nebular/**/*.spec.ts\"\n  ],\n  \"include\": [\n    \"../src/*.ts\",\n    \"../src/**/*.ts\",\n    \"../node_modules/@nebular/**/*.ts\"\n  ]\n}\n"
  },
  {
    "path": "src/tsconfig.spec.json",
    "content": "{\n  \"extends\": \"../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"../out-tsc/spec\",\n    \"baseUrl\": \"./\",\n    \"module\": \"commonjs\",\n    \"target\": \"es5\",\n    \"types\": [\n      \"jasmine\",\n      \"node\"\n    ]\n  },\n  \"files\": [\n    \"test.ts\",\n    \"polyfills.ts\"\n  ],\n  \"include\": [\n    \"**/*.spec.ts\",\n    \"**/*.d.ts\"\n  ]\n}\n"
  },
  {
    "path": "src/typings.d.ts",
    "content": "/**\n * @license\n * Copyright Akveo. All Rights Reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n */\n\n/* SystemJS module definition */\ndeclare var module: NodeModule;\ninterface NodeModule {\n  id: string;\n}\n\ndeclare var require: any;\n"
  },
  {
    "path": "test.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<title></title>\n<link rel=\"stylesheet\" href=\"package-build/style/eva-icons.css\">\n<script src=\"https://unpkg.com/eva-icons\"></script>\n<body>\n\n<i data-eva=\"github\"></i>\n<i data-eva=\"github\" data-eva-fill=\"blue\" data-eva-hover=\"true\"></i>\n\n<i class=\"eva eva-5x eva-github\"></i>\n<i class=\"eva eva-5x eva-github-outline\"></i>\n\n<script>\n  eva.replace({ animation: { type: 'pulse', infinite: true, hover: false }, fill: 'red', width: '100px', height: '100px' })\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "tsconfig.json",
    "content": "{\n  \"compileOnSave\": false,\n  \"compilerOptions\": {\n    \"outDir\": \"./dist/out-tsc\",\n    \"sourceMap\": true,\n    \"declaration\": false,\n    \"moduleResolution\": \"node\",\n    \"emitDecoratorMetadata\": true,\n    \"experimentalDecorators\": true,\n    \"target\": \"es5\",\n    \"typeRoots\": [\n      \"node_modules/@types\"\n    ],\n    \"lib\": [\n      \"es2017\",\n      \"dom\"\n    ],\n    \"plugins\": [\n      { \"name\": \"tslint-language-service\"}\n    ]\n  }\n}\n"
  },
  {
    "path": "tslint.json",
    "content": "{\n  \"rulesDirectory\": [\n    \"node_modules/codelyzer\"\n  ],\n  \"rules\": {\n    \"trailing-comma\": [\n      true,\n      {\n        \"multiline\": \"always\",\n        \"singleline\": \"never\"\n      }\n    ],\n    \"arrow-return-shorthand\": true,\n    \"callable-types\": true,\n    \"class-name\": true,\n    \"comment-format\": [\n      true,\n      \"check-space\"\n    ],\n    \"eofline\": true,\n    \"forin\": true,\n    \"import-blacklist\": [\n      true\n    ],\n    \"import-spacing\": true,\n    \"indent\": [\n      true,\n      \"spaces\"\n    ],\n    \"interface-over-type-literal\": true,\n    \"label-position\": true,\n    \"max-line-length\": [\n      true,\n      120\n    ],\n    \"member-access\": false,\n    \"no-arg\": true,\n    \"no-console\": [\n      true,\n      \"debug\",\n      \"log\",\n      \"time\",\n      \"timeEnd\",\n      \"trace\"\n    ],\n    \"no-construct\": true,\n    \"no-debugger\": true,\n    \"no-duplicate-super\": true,\n    \"no-empty\": false,\n    \"no-empty-interface\": true,\n    \"no-eval\": true,\n    \"no-misused-new\": true,\n    \"no-non-null-assertion\": true,\n    \"no-shadowed-variable\": true,\n    \"no-string-literal\": false,\n    \"no-string-throw\": true,\n    \"no-switch-case-fall-through\": true,\n    \"no-trailing-whitespace\": true,\n    \"no-unnecessary-initializer\": true,\n    \"no-use-before-declare\": true,\n    \"no-var-keyword\": true,\n    \"object-literal-sort-keys\": false,\n    \"one-line\": [\n      true,\n      \"check-open-brace\",\n      \"check-catch\",\n      \"check-else\",\n      \"check-whitespace\"\n    ],\n    \"prefer-const\": true,\n    \"quotemark\": [\n      true,\n      \"single\"\n    ],\n    \"radix\": true,\n    \"semicolon\": [\n      true,\n      \"always\"\n    ],\n    \"triple-equals\": [\n      true,\n      \"allow-null-check\"\n    ],\n    \"typedef-whitespace\": [\n      true,\n      {\n        \"call-signature\": \"nospace\",\n        \"index-signature\": \"nospace\",\n        \"parameter\": \"nospace\",\n        \"property-declaration\": \"nospace\",\n        \"variable-declaration\": \"nospace\"\n      }\n    ],\n    \"typeof-compare\": true,\n    \"unified-signatures\": true,\n    \"variable-name\": false,\n    \"whitespace\": [\n      true,\n      \"check-branch\",\n      \"check-decl\",\n      \"check-operator\",\n      \"check-separator\",\n      \"check-type\"\n    ],\n    \"directive-selector\": [\n      true,\n      \"attribute\",\n      \"eva\",\n      \"camelCase\"\n    ],\n    \"component-selector\": [\n      true,\n      \"element\",\n      \"eva\",\n      \"kebab-case\"\n    ],\n    \"ban\": [\n      true,\n      \"eval\",\n      \"fit\",\n      \"fdescribe\",\n      {\n        \"name\": \"$\",\n        \"message\": \"please don't\"\n      }\n    ],\n    \"use-input-property-decorator\": true,\n    \"use-output-property-decorator\": true,\n    \"no-output-rename\": true,\n    \"use-life-cycle-interface\": true,\n    \"use-pipe-transform-interface\": true,\n    \"component-class-suffix\": true,\n    \"directive-class-suffix\": true,\n    \"no-unused-variable\": true\n  }\n}\n"
  },
  {
    "path": "webpack.config.js",
    "content": "const path = require('path');\nconst UglifyJsPlugin = require('uglifyjs-webpack-plugin');\n\nconsole.log(path.join(__dirname, 'package/src/index.js'));\n\nmodule.exports = {\n  entry: {\n    eva: path.join(__dirname, 'package/src/index.js'),\n    'eva.min': path.join(__dirname, 'package/src/index.js'),\n  },\n  output: {\n    path: path.join(__dirname, 'package-build'),\n    library: 'eva',\n    libraryTarget: 'umd',\n    filename: '[name].js',\n    umdNamedDefine: true,\n    globalObject: 'typeof self !== \"undefined\" ? self : this',\n  },\n  optimization: {\n    minimize: true,\n    minimizer: [\n      new UglifyJsPlugin({\n        include: /\\.min\\.js$/,\n        parallel: true,\n        sourceMap: true\n      })\n    ]\n  },\n  mode: 'development',\n  devtool: 'source-map',\n  module: {\n    rules: [\n      {\n        test: /\\.js$/,\n        exclude: /(node_modules|bower_components)/,\n        use: {\n          loader: 'babel-loader',\n          options: {\n            presets: ['@babel/preset-env']\n          }\n        }\n      },\n      {\n        test: /\\.scss$/,\n        use: [\n          \"isomorphic-style-loader\",\n          \"css-loader\",\n          \"sass-loader\"\n        ]\n      }\n    ]\n  }\n};\n"
  }
]