Copy disabled (too large)
Download .txt
Showing preview only (16,011K chars total). Download the full file to get everything.
Repository: alexolivero/Obscurify
Branch: master
Commit: 865241b09119
Files: 132
Total size: 15.2 MB
Directory structure:
gitextract_orr04cxp/
├── .gitignore
├── README.md
├── frontend/
│ ├── README.md
│ ├── angular.json
│ ├── browserslist
│ ├── dist/
│ │ └── obscurify3/
│ │ ├── index.html
│ │ ├── main-es2015.js
│ │ ├── main-es5.js
│ │ ├── polyfills-es2015.js
│ │ ├── polyfills-es5.js
│ │ ├── runtime-es2015.js
│ │ ├── runtime-es5.js
│ │ ├── styles-es2015.js
│ │ ├── styles-es5.js
│ │ ├── vendor-es2015.js
│ │ └── vendor-es5.js
│ ├── e2e/
│ │ ├── protractor.conf.js
│ │ ├── src/
│ │ │ ├── app.e2e-spec.ts
│ │ │ └── app.po.ts
│ │ └── tsconfig.json
│ ├── karma.conf.js
│ ├── ngsw-config.json
│ ├── package.json
│ ├── src/
│ │ ├── app/
│ │ │ ├── app-routing.module.ts
│ │ │ ├── app.component.html
│ │ │ ├── app.component.scss
│ │ │ ├── app.component.spec.ts
│ │ │ ├── app.component.ts
│ │ │ ├── app.module.ts
│ │ │ ├── components/
│ │ │ │ ├── about/
│ │ │ │ │ ├── about.component.html
│ │ │ │ │ ├── about.component.scss
│ │ │ │ │ ├── about.component.spec.ts
│ │ │ │ │ └── about.component.ts
│ │ │ │ ├── artist/
│ │ │ │ │ ├── artist-card/
│ │ │ │ │ │ ├── artist-card.component.html
│ │ │ │ │ │ ├── artist-card.component.scss
│ │ │ │ │ │ ├── artist-card.component.spec.ts
│ │ │ │ │ │ └── artist-card.component.ts
│ │ │ │ │ ├── artist-list/
│ │ │ │ │ │ ├── artist-list.component.html
│ │ │ │ │ │ ├── artist-list.component.scss
│ │ │ │ │ │ ├── artist-list.component.spec.ts
│ │ │ │ │ │ └── artist-list.component.ts
│ │ │ │ │ ├── artist-nav/
│ │ │ │ │ │ ├── artist-nav.component.html
│ │ │ │ │ │ ├── artist-nav.component.scss
│ │ │ │ │ │ ├── artist-nav.component.spec.ts
│ │ │ │ │ │ └── artist-nav.component.ts
│ │ │ │ │ └── track-card/
│ │ │ │ │ ├── track-card.component.html
│ │ │ │ │ ├── track-card.component.scss
│ │ │ │ │ ├── track-card.component.spec.ts
│ │ │ │ │ └── track-card.component.ts
│ │ │ │ ├── footer/
│ │ │ │ │ ├── footer.component.html
│ │ │ │ │ ├── footer.component.scss
│ │ │ │ │ ├── footer.component.spec.ts
│ │ │ │ │ └── footer.component.ts
│ │ │ │ ├── home/
│ │ │ │ │ ├── home.component.html
│ │ │ │ │ ├── home.component.scss
│ │ │ │ │ ├── home.component.spec.ts
│ │ │ │ │ └── home.component.ts
│ │ │ │ ├── intro/
│ │ │ │ │ ├── intro.component.html
│ │ │ │ │ ├── intro.component.scss
│ │ │ │ │ ├── intro.component.spec.ts
│ │ │ │ │ └── intro.component.ts
│ │ │ │ ├── login/
│ │ │ │ │ ├── login.component.html
│ │ │ │ │ ├── login.component.scss
│ │ │ │ │ ├── login.component.spec.ts
│ │ │ │ │ └── login.component.ts
│ │ │ │ ├── moods-graph/
│ │ │ │ │ ├── moods-graph.component.html
│ │ │ │ │ ├── moods-graph.component.scss
│ │ │ │ │ ├── moods-graph.component.spec.ts
│ │ │ │ │ └── moods-graph.component.ts
│ │ │ │ ├── obscurity-graph/
│ │ │ │ │ ├── obscurity-graph.component.html
│ │ │ │ │ ├── obscurity-graph.component.scss
│ │ │ │ │ ├── obscurity-graph.component.spec.ts
│ │ │ │ │ └── obscurity-graph.component.ts
│ │ │ │ ├── obscurity-rating/
│ │ │ │ │ ├── obscurity-rating.component.html
│ │ │ │ │ ├── obscurity-rating.component.scss
│ │ │ │ │ ├── obscurity-rating.component.spec.ts
│ │ │ │ │ └── obscurity-rating.component.ts
│ │ │ │ ├── privacy/
│ │ │ │ │ ├── privacy.component.html
│ │ │ │ │ ├── privacy.component.scss
│ │ │ │ │ ├── privacy.component.spec.ts
│ │ │ │ │ └── privacy.component.ts
│ │ │ │ ├── recommendations/
│ │ │ │ │ ├── recommendations.component.html
│ │ │ │ │ ├── recommendations.component.scss
│ │ │ │ │ ├── recommendations.component.spec.ts
│ │ │ │ │ └── recommendations.component.ts
│ │ │ │ ├── spotify-auth/
│ │ │ │ │ ├── spotify-auth.component.html
│ │ │ │ │ ├── spotify-auth.component.scss
│ │ │ │ │ ├── spotify-auth.component.spec.ts
│ │ │ │ │ └── spotify-auth.component.ts
│ │ │ │ └── top-genres/
│ │ │ │ ├── top-genres.component.html
│ │ │ │ ├── top-genres.component.scss
│ │ │ │ ├── top-genres.component.spec.ts
│ │ │ │ └── top-genres.component.ts
│ │ │ ├── scss/
│ │ │ │ ├── _mixins.scss
│ │ │ │ ├── _variables.scss
│ │ │ │ └── components/
│ │ │ │ ├── _header.scss
│ │ │ │ └── _slate.scss
│ │ │ ├── services/
│ │ │ │ ├── browserCheck.ts
│ │ │ │ ├── infoService.ts
│ │ │ │ ├── intersectionObserver.ts
│ │ │ │ ├── obscurifyService.ts
│ │ │ │ ├── spotifyAuth/
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── service/
│ │ │ │ │ │ ├── auth.guard.ts
│ │ │ │ │ │ ├── auth.service.ts
│ │ │ │ │ │ ├── spotify-auth.interceptor.ts
│ │ │ │ │ │ └── token.service.ts
│ │ │ │ │ └── shared/
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── scopes-builder.ts
│ │ │ │ │ ├── spotify-auth-config.i.ts
│ │ │ │ │ ├── spotify-auth-response.i.ts
│ │ │ │ │ └── spotify-scope.ts
│ │ │ │ └── spotifyService.ts
│ │ │ └── utilities/
│ │ │ └── obscurityFuncs.ts
│ │ ├── assets/
│ │ │ └── .gitkeep
│ │ ├── environments/
│ │ │ ├── environment.dev.ts
│ │ │ ├── environment.prod.ts
│ │ │ └── environment.ts
│ │ ├── index.html
│ │ ├── main.ts
│ │ ├── manifest.webmanifest
│ │ ├── polyfills.ts
│ │ ├── styles.scss
│ │ └── test.ts
│ ├── tsconfig.app.json
│ ├── tsconfig.json
│ ├── tsconfig.spec.json
│ └── tslint.json
├── generate_countries.js
└── lambda/
├── getObscurifyData.js
├── getUserHistory.js
├── saveUserHistory.js
└── spotifyCallback.js
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
.DS_Store
*/node_modules
================================================
FILE: README.md
================================================
## What's up ya'll, welcome to Obscurify
The goal here is to show you as many interesting things about
your Spotify listening history as possible, and to quantify
how unique your taste is compared to everyone else.
Obscurify is designed with a serverless architecture hosted in AWS. It uses API Gateway with Lambda to host the backend, while the frontend is deployed with Amplify.
This project contains two elements: on the backend are some Lambda functions in the `/lambda` directory, and in `/frontend` an Angular 9 app.
================================================
FILE: frontend/README.md
================================================
# Obscurify3
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.3.21.
## Development server
Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
## Code scaffolding
Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.
## Build
Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build.
## Running unit tests
Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
## Running end-to-end tests
Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).
## Further help
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
================================================
FILE: frontend/angular.json
================================================
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"obscurify3": {
"projectType": "application",
"schematics": {
"@schematics/angular:component": {
"style": "scss"
}
},
"root": "",
"sourceRoot": "src",
"prefix": "app",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "dist/obscurify3",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.app.json",
"aot": true,
"assets": [
"src/favicon.ico",
"src/assets",
"src/manifest.webmanifest"
],
"styles": [
"src/styles.scss"
],
"stylePreprocessorOptions": {
"includePaths": [
"src/app/scss"
]
},
"scripts": []
},
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": false,
"budgets": [
{
"type": "initial",
"maximumWarning": "2mb",
"maximumError": "5mb"
},
{
"type": "anyComponentStyle",
"maximumWarning": "6kb",
"maximumError": "100kb"
}
],
"serviceWorker": true,
"ngswConfigPath": "ngsw-config.json"
},
"develop": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.dev.ts"
}
],
"outputHashing": "all",
"sourceMap": true,
"extractCss": true,
"namedChunks": false,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": false,
"serviceWorker": true,
"ngswConfigPath": "ngsw-config.json"
}
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"port": 3000,
"browserTarget": "obscurify3:build"
},
"configurations": {
"production": {
"browserTarget": "obscurify3:build:production"
}
}
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
"browserTarget": "obscurify3:build"
}
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "src/test.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.spec.json",
"karmaConfig": "karma.conf.js",
"assets": [
"src/favicon.ico",
"src/assets",
"src/manifest.webmanifest"
],
"styles": [
"src/styles.scss"
],
"scripts": []
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [
"tsconfig.app.json",
"tsconfig.spec.json",
"e2e/tsconfig.json"
],
"exclude": [
"**/node_modules/**"
]
}
},
"e2e": {
"builder": "@angular-devkit/build-angular:protractor",
"options": {
"protractorConfig": "e2e/protractor.conf.js",
"devServerTarget": "obscurify3:serve"
},
"configurations": {
"production": {
"devServerTarget": "obscurify3:serve:production"
}
}
}
}
}},
"defaultProject": "obscurify3"
}
================================================
FILE: frontend/browserslist
================================================
# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
# For additional information regarding the format and rule options, please see:
# https://github.com/browserslist/browserslist#queries
# You can see what browsers were selected by your queries by running:
# npx browserslist
> 0.5%
last 2 versions
Firefox ESR
not dead
not IE 9-11 # For IE 9-11 support, remove 'not'.
================================================
FILE: frontend/dist/obscurify3/index.html
================================================
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Obscurify3</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico">
<script src="https://kit.fontawesome.com/432e11ca7a.js" crossorigin="anonymous"></script>
</head>
<body>
<app-root></app-root>
<script src="runtime-es2015.js" type="module"></script><script src="runtime-es5.js" nomodule defer></script><script src="polyfills-es5.js" nomodule defer></script><script src="polyfills-es2015.js" type="module"></script><script src="styles-es2015.js" type="module"></script><script src="styles-es5.js" nomodule defer></script><script src="vendor-es2015.js" type="module"></script><script src="vendor-es5.js" nomodule defer></script><script src="main-es2015.js" type="module"></script><script src="main-es5.js" nomodule defer></script></body>
</html>
================================================
FILE: frontend/dist/obscurify3/main-es2015.js
================================================
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["main"],{
/***/ "./$$_lazy_route_resource lazy recursive":
/*!******************************************************!*\
!*** ./$$_lazy_route_resource lazy namespace object ***!
\******************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
function webpackEmptyAsyncContext(req) {
// Here Promise.resolve().then() is used instead of new Promise() to prevent
// uncaught exception popping up in devtools
return Promise.resolve().then(function() {
var e = new Error("Cannot find module '" + req + "'");
e.code = 'MODULE_NOT_FOUND';
throw e;
});
}
webpackEmptyAsyncContext.keys = function() { return []; };
webpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;
module.exports = webpackEmptyAsyncContext;
webpackEmptyAsyncContext.id = "./$$_lazy_route_resource lazy recursive";
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/app.component.html":
/*!**************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/app.component.html ***!
\**************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * * * * * * * * * * -->\n<!-- * * * * * * * * * * is only a placeholder * * * * * * * * * * -->\n<!-- * * * * * * * * * * and can be replaced. * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * Delete the template below * * * * * * * * * * -->\n<!-- * * * * * * * to get started with your project! * * * * * * * * -->\n<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n\n<!-- <style>\n :host {\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 14px;\n color: #333;\n box-sizing: border-box;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n }\n\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin: 8px 0;\n }\n\n p {\n margin: 0;\n }\n\n .spacer {\n flex: 1;\n }\n\n .toolbar {\n height: 60px;\n margin: -8px;\n display: flex;\n align-items: center;\n background-color: #1976d2;\n color: white;\n font-weight: 600;\n }\n\n .toolbar img {\n margin: 0 16px;\n }\n\n .toolbar #twitter-logo {\n height: 40px;\n margin: 0 16px;\n }\n\n .toolbar #twitter-logo:hover {\n opacity: 0.8;\n }\n\n .content {\n display: flex;\n margin: 32px auto;\n padding: 0 16px;\n max-width: 960px;\n flex-direction: column;\n align-items: center;\n }\n\n svg.material-icons {\n height: 24px;\n width: auto;\n }\n\n svg.material-icons:not(:last-child) {\n margin-right: 8px;\n }\n\n .card svg.material-icons path {\n fill: #888;\n }\n\n .card-container {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n margin-top: 16px;\n }\n\n .card {\n border-radius: 4px;\n border: 1px solid #eee;\n background-color: #fafafa;\n height: 40px;\n width: 200px;\n margin: 0 8px 16px;\n padding: 16px;\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n transition: all 0.2s ease-in-out;\n line-height: 24px;\n }\n\n .card-container .card:not(:last-child) {\n margin-right: 0;\n }\n\n .card.card-small {\n height: 16px;\n width: 168px;\n }\n\n .card-container .card:not(.highlight-card) {\n cursor: pointer;\n }\n\n .card-container .card:not(.highlight-card):hover {\n transform: translateY(-3px);\n box-shadow: 0 4px 17px rgba(black, 0.35);\n }\n\n .card-container .card:not(.highlight-card):hover .material-icons path {\n fill: rgb(105, 103, 103);\n }\n\n .card.highlight-card {\n background-color: #1976d2;\n color: white;\n font-weight: 600;\n border: none;\n width: auto;\n min-width: 30%;\n position: relative;\n }\n\n .card.card.highlight-card span {\n margin-left: 60px;\n }\n\n svg#rocket {\n width: 80px;\n position: absolute;\n left: -10px;\n top: -24px;\n }\n\n svg#rocket-smoke {\n height: 100vh;\n position: absolute;\n top: 10px;\n right: 180px;\n z-index: -10;\n }\n\n a,\n a:visited,\n a:hover {\n color: #1976d2;\n text-decoration: none;\n }\n\n a:hover {\n color: #125699;\n }\n\n .terminal {\n position: relative;\n width: 80%;\n max-width: 600px;\n border-radius: 6px;\n padding-top: 45px;\n margin-top: 8px;\n overflow: hidden;\n background-color: rgb(15, 15, 16);\n }\n\n .terminal::before {\n content: \"\\2022 \\2022 \\2022\";\n position: absolute;\n top: 0;\n left: 0;\n height: 4px;\n background: rgb(58, 58, 58);\n color: #c2c3c4;\n width: 100%;\n font-size: 2rem;\n line-height: 0;\n padding: 14px 0;\n text-indent: 4px;\n }\n\n .terminal pre {\n font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;\n color: white;\n padding: 0 1rem 1rem;\n margin: 0;\n }\n\n .circle-link {\n height: 40px;\n width: 40px;\n border-radius: 40px;\n margin: 8px;\n background-color: white;\n border: 1px solid #eeeeee;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);\n transition: 1s ease-out;\n }\n\n .circle-link:hover {\n transform: translateY(-0.25rem);\n box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.2);\n }\n\n footer {\n margin-top: 8px;\n display: flex;\n align-items: center;\n line-height: 20px;\n }\n\n footer a {\n display: flex;\n align-items: center;\n }\n\n .github-star-badge {\n color: #24292e;\n display: flex;\n align-items: center;\n font-size: 12px;\n padding: 3px 10px;\n border: 1px solid rgba(27,31,35,.2);\n border-radius: 3px;\n background-image: linear-gradient(-180deg,#fafbfc,#eff3f6 90%);\n margin-left: 4px;\n font-weight: 600;\n font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;\n }\n\n .github-star-badge:hover {\n background-image: linear-gradient(-180deg,#f0f3f6,#e6ebf1 90%);\n border-color: rgba(27,31,35,.35);\n background-position: -.5em;\n }\n\n .github-star-badge .material-icons {\n height: 16px;\n width: 16px;\n margin-right: 4px;\n }\n\n svg#clouds {\n position: fixed;\n bottom: -160px;\n left: -230px;\n z-index: -10;\n width: 1920px;\n }\n\n\n /* Responsive Styles */\n @media screen and (max-width: 767px) {\n\n .card-container > *:not(.circle-link) ,\n .terminal {\n width: 100%;\n }\n\n .card:not(.highlight-card) {\n height: 16px;\n margin: 8px 0;\n }\n\n .card.highlight-card span {\n margin-left: 72px;\n }\n\n svg#rocket-smoke {\n right: 120px;\n transform: rotate(-5deg);\n }\n }\n\n @media screen and (max-width: 575px) {\n svg#rocket-smoke {\n display: none;\n visibility: hidden;\n }\n }\n</style> -->\n\n\n<router-outlet></router-outlet>\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/components/about/about.component.html":
/*!*********************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/components/about/about.component.html ***!
\*********************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<main fxLayout=\"column\">\n <section fxFlex=\"1 1 100%\">\n <a class=\"back__btn\" routerLink=\"/login\"> <i class=\"fas fa-arrow-left\"></i> Go back </a>\n </section>\n <section>\n <h2>\n About\n </h2>\n <p>\n The goal of Obscurify is to help you better understand your own music taste. It uses\n Spotify's <a href=\"https://developer.spotify.com/web-api/\">Web API</a> to display your listening history, define\n your top genres, and to recommend under-the-radar songs you might like.\n </p>\n <p>\n The global popularity ratings of the artists in your lists are aggregated to result in an Obscurity score\n which is compared to the Obscurify users in your country to show how unique (or energetic, danceable, and happy) a music taste you have.\n </p>\n <p>\n Obscurify can also make playlists of the music in your track lists and place them in your Spotify library - including the historical snapshots\n that are saved when you view your Obscurify profile each month.\n </p>\n\n <p>\n Background Photo on login page by Photo by MARK S. on Unsplash. \n </p>\n </section>\n \n <section>\n <h2>F.A.Q.</h2>\n \n <h3>How is my data used?</h3>\n <p>\n To use Obscurify, you'll need to allow the app to have access to some of your account information -\n that being your username, the country your account is registered to, and the artists/tracks\n that appear on your lists.\n </p>\n \n <h3>Where does the artist and track ranking come from?</h3>\n <p>\n The content and order of your lists come directly from <a href=\"https://developer.spotify.com/web-api/\">Spotify's API</a>.\n Popularity, genres, and musical traits are all determined by Spotify.\n </p>\n \n <h3>Why are there no (or few) results showing up in my All-Time and Current lists?</h3>\n <p>\n If you listen in Private Mode, those songs will not be recorded and won't be reflected in either list.\n If your account is fairly new, it is normal for your All-Time list to be short, as it takes some time for Spotify to update their information.\n </p>\n \n <h3>Some of the genres seem a little off...</h3>\n <p>\n Spotify can attribute some artists with a few dozen genres. These range from very general (like \"rock\") to a little\n more interesting (like \"escape room\").\n </p>\n \n <h3>My lists aren't updating</h3>\n <p>\n There is no defined schedule for when Spotify updates the data in your lists - it's normal for delays, but expect an average of one to two weeks.\n </p>\n \n <h3>I have some other issue (or concern, compliment, maybe a suggestion)</h3>\n <p>\n I'd like to know about it! <a href=\"mailto:oliveroalex@gmail.com\">Send me an email!</a>\n </p> \n </section>\n \n</main>\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/components/artist/artist-card/artist-card.component.html":
/*!****************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/components/artist/artist-card/artist-card.component.html ***!
\****************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<div class=\"artist__card\" [ngClass]=\"{'active': activeView}\">\n <img [src]=\"artist.images[1].url\" />\n <div class=\"artist__card__info\">\n <div fxLayout=\"row\" fxLayoutAlign=\"flex-start start\">\n <span fxFlex=\"0 0 auto\"> {{ i + 1 }} /</span> \n\n <div fxLayout=\"column\" fxFlex=\"1 1 auto\" fxLayoutAlign=\"center start\">\n <p class=\"artist__card__info--primary\">\n {{(artist.name.length < 20) ? (artist.name):(artist.name | slice:0:20)+'...' }}\n </p>\n <p *ngIf=\"activeView\" class=\"artist__card__info--secondary\">\n {{ artist.genres[0] }}, {{ artist.genres[1] }}\n </p>\n </div>\n <a class=\"artist__card__external\" [href]=\"this.sanitizer.bypassSecurityTrustResourceUrl(artist.uri)\" *ngIf=\"activeView\" fxFlex=\"0 1 auto\"><i class=\"fas fa-external-link-alt\"></i></a>\n </div>\n\n <div *ngIf=\"activeView\">\n <button >More Like This</button>\n </div>\n\n\n </div>\n</div>");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/components/artist/artist-list/artist-list.component.html":
/*!****************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/components/artist/artist-list/artist-list.component.html ***!
\****************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<div class=\"artist\">\n <div class=\"header\">\n <h2 class=\"header__title\">\n {{ this.navState.selectedHistory.name }} Top {{ navState.listType}}\n </h2>\n </div>\n\n <div class=\"artist__container\" fxlayout=\"column\" fxLayout.gt-sm=\"row\">\n <div fxLayout=\"column\"> \n <div *ngIf=\"this.navState.selectedHistory.value == 'allTime' && this.navState.listType === 'artists'\" \n class=\"artist__container__grid\" \n fxFLex=\"100%\" \n fxLayout.gt-xs=\"row wrap\" \n fxLayout=\"column nowrap\" \n fxLayoutGap=\"16px\">\n\n <app-artist-card [artist]=\"artist\" [i]=\"i\" *ngFor=\"let artist of allTimeArtists | slice:0:sliceLimit; let i = index\"></app-artist-card>\n\n </div>\n <div *ngIf=\"this.navState.selectedHistory.value == 'current' && this.navState.listType === 'artists'\"\n class=\"artist__container__grid\" \n fxFLex=\"100%\" \n fxLayout.gt-xs=\"row wrap\" \n fxLayout=\"column nowrap\" \n fxLayoutGap=\"16px\"> \n\n <app-artist-card [artist]=\"artist\" [i]=\"i\" *ngFor=\"let artist of currentArtists | slice:0:sliceLimit; let i = index\"></app-artist-card>\n\n </div>\n\n <div *ngIf=\"this.navState.selectedHistory.value == 'allTime' && this.navState.listType === 'songs'\" \n class=\"artist__container__grid\" \n fxFLex=\"100%\" \n fxLayout.gt-xs=\"row wrap\" \n fxLayout=\"column nowrap\" \n fxLayoutGap=\"16px\">\n\n <app-track-card [track]=\"track\" [i]=\"i\" *ngFor=\"let track of allTimeTracks | slice:0:sliceLimit; let i = index\"></app-track-card>\n\n </div>\n <div *ngIf=\"this.navState.selectedHistory.value == 'current' && this.navState.listType === 'songs'\"\n class=\"artist__container__grid\" \n fxFLex=\"100%\" \n fxLayout.gt-xs=\"row wrap\" \n fxLayout=\"column nowrap\" \n fxLayoutGap=\"16px\"> \n\n <app-track-card [track]=\"track\" [i]=\"i\" *ngFor=\"let track of currentTracks | slice:0:sliceLimit; let i = index\"></app-track-card>\n\n </div>\n\n <div fxLayoutAlign=\"center center\">\n <button *ngIf=\"this.sliceLimit === 10\" class=\"artist__button artist__button--primary\" (click)=\"showMore()\">Show More</button>\n <button *ngIf=\"this.sliceLimit === 50\" class=\"artist__button artist__button--primary\" (click)=\"showLess()\">Show Less</button>\n\n </div>\n </div>\n\n\n <div fxFlex.gt-sm=\"30%\">\n <app-artist-nav *ngIf=\"showNav\" [navState]=\"navState\" (createPlaylist)=\"createPlaylist($event)\" (updateHistory)=\"getHistory($event)\"></app-artist-nav>\n </div>\n </div>\n</div>");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/components/artist/artist-nav/artist-nav.component.html":
/*!**************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/components/artist/artist-nav/artist-nav.component.html ***!
\**************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<div class=\"artist__nav\" [ngClass]=\"{'active': navOpen}\">\n <div class=\"artist__nav__container\">\n\n <div class=\"artist__nav__mobile\">\n <button (click)=\"navOpen = !navOpen\">\n <span>Options</span> <i class=\"fas fa-chevron-up\"></i>\n </button>\n </div>\n <div class=\"artist__nav__content\">\n <h2>Select</h2>\n <div class=\"artist__nav__main\" fxLayout=\"row\" fxLayoutAlign=\"flex-start start\">\n <button class=\"artist__nav__button\" [ngClass]=\"{'active': navState.listType === 'artists'}\" (click)=\"updateArtistTrack('artists')\">Artists</button>\n <button class=\"artist__nav__button\" [ngClass]=\"{'active': navState.listType === 'songs'}\" (click)=\"updateArtistTrack('songs')\">Songs</button>\n </div>\n <div class=\"artist__nav__history\">\n <h3> View History </h3>\n \n <mat-radio-group\n aria-labelledby=\"select history date\"\n class=\"artist__nav__history--select\"\n [(ngModel)]=\"selectedHistory\"\n fxLayout=\"column\"\n (change)=\"getRadioValue($event)\"\n [required]=\"true\">\n <mat-radio-button class=\"select__item\" \n *ngFor=\"let date of historyList\" \n [value]=\"date\"\n >\n {{ date.name }}\n </mat-radio-button>\n </mat-radio-group>\n </div>\n \n <div class=\"artist__nav__playlist\" fxLayout=\"row\" fxLayoutAlign=\"center\">\n <button \n class=\"artist__nav__button\" \n (click)=\"emitCreatePlaylist()\">\n <i class=\"fas fa-plus-circle\"></i>Create Playlist\n </button>\n </div>\n </div>\n \n </div>\n</div>");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/components/artist/track-card/track-card.component.html":
/*!**************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/components/artist/track-card/track-card.component.html ***!
\**************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<div class=\"artist__card\" [ngClass]=\"{'active': activeView}\">\n\n <img [src]=\"track.album.images[1].url\" />\n \n <div class=\"artist__card__info\">\n <div fxLayout=\"row\" fxLayoutAlign=\"flex-start start\">\n <span fxFlex=\"0 1 auto\"> {{ i + 1 }} </span> /\n\n <div fxLayout=\"column\" fxFlex=\"1 1 auto\" fxLayoutAlign=\"center start\">\n <p class=\"artist__card__info--primary\">\n {{(track.name.length < 20) ? (track.name):(track.name | slice:0:20)+'...' }}\n </p>\n <p *ngIf=\"activeView\" class=\"artist__card__info--secondary\">\n {{ track.artists[0].name }}\n </p>\n </div>\n <a class=\"artist__card__external\" [href]=\"this.sanitizer.bypassSecurityTrustResourceUrl(track.uri)\" *ngIf=\"activeView\" fxFlex=\"0 1 auto\"><i class=\"fas fa-external-link-alt\"></i></a>\n </div>\n\n <div *ngIf=\"activeView\">\n <button >More Like This</button>\n </div>\n\n\n </div>\n</div>");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/components/footer/footer.component.html":
/*!***********************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/components/footer/footer.component.html ***!
\***********************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<footer fxflex=\"\">\n <div class=\"footer__links\" fxLayout=\"column nowrap\">\n <a routerLink=\"/about\"> About</a>\n <a (click)=\"login()\" *ngIf=\"login\">Login</a>\n <a (click)=\"login()\" *ngIf=\"!login\"> Log Out</a>\n </div>\n\n <div class=\"social__links\">\n\n\n </div>\n</footer>");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/components/home/home.component.html":
/*!*******************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/components/home/home.component.html ***!
\*******************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("\n<div class=\"app\" [ngStyle]=\"{'background-color': this.bgColor}\">\n <app-intro (appColor)=\"setColor($event)\"></app-intro>\n <app-top-genres (appColor)=\"setColor($event)\"></app-top-genres>\n <app-obscurity-rating (appColor)=\"setColor($event)\"></app-obscurity-rating> \n <app-artist-list (appColor)=\"setColor($event)\"></app-artist-list>\n <app-moods-graph (appColor)=\"setColor($event)\"></app-moods-graph>\n <app-recommendations (appColor)=\"setColor($event)\"></app-recommendations> \n</div>\n\n<app-footer [login]=\"false\"></app-footer>\n\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/components/intro/intro.component.html":
/*!*********************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/components/intro/intro.component.html ***!
\*********************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<nav>\n <div fxLayout=\"row\" fxLayoutAlign=\"end start\">\n <button [matMenuTriggerFor]=\"appMenu\"> Settings <i class=\"fas fa-cog\"> </i> </button>\n </div>\n\n <mat-menu #appMenu=\"matMenu\">\n <button mat-menu-item>Logout</button>\n <button mat-menu-item>About</button>\n <a mat-menu-item href=\"https://www.spotify.com/us/account/apps/\">Remove Obscurify Account</a>\n </mat-menu>\n</nav>\n\n<div class=\"welcome\" fxLayout=\"column\" fxLayoutAlign=\"center center\">\n <h1>Welcome to <br /> Obscurify<span>.</span></h1>\n</div>\n\n<div class=\"profile\" fxLayout=\"column\" fxLayoutAlign=\"center center\">\n <div class=\"profile__image\">\n <img [src]=\"this.userImage ? this.userImage : 'assets/images/app/profile-placeholder.png'\"/>\n </div>\n <h1 class=\"profile__header\">Hello, <span>{{ userName }}</span>. Let's see how obscure your taste is...</h1>\n</div>\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/components/login/login.component.html":
/*!*********************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/components/login/login.component.html ***!
\*********************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<main>\n <div class=\"login__container\">\n <h1>Obscurify<span>.</span></h1>\n\n <p>Learn more about your music taste and compare it to others' with Obscurify.</p>\n\n <div class=\"login\">\n <a (click)=\"login($event)\" class=\"login__btn\">\n Log in with Spotify\n </a>\n </div>\n\n </div>\n</main>\n\n<app-footer [login]=\"true\"></app-footer>\n");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/components/moods-graph/moods-graph.component.html":
/*!*********************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/components/moods-graph/moods-graph.component.html ***!
\*********************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<div class=\"slate\" >\n <div class=\"moods-graph\" [ngClass]=\"{'show': this.show}\">\n <div class=\"header\">\n <h2 class=\"header__title\">\n Your Moods\n </h2>\n </div>\n \n <div class=\"moods-graph__container\">\n <div class=\"moods-graph__content\">\n <h3>Happiness</h3>\n\n <div class=\"moods-graph__card\">\n <div class=\"moods-graph__card__container\">\n <p class=\"moods-graph__card__header\">All Time</p>\n <p class=\"moods-graph__card__paragraph\">2.4% Lower than U.S Average</p>\n </div>\n\n <div class=\"moods-graph__card__container\">\n <div class=\"equalizer-container level-one\">\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n </div>\n </div>\n \n </div>\n\n <div class=\"moods-graph__card moods-graph__card--reverse\">\n <div class=\"moods-graph__card__container\">\n <p class=\"moods-graph__card__header\">All Time</p>\n <p class=\"moods-graph__card__paragraph\">2.4% Lower than U.S Average</p>\n </div>\n\n <div class=\"moods-graph__card__container\">\n <div class=\"equalizer-container level-one\">\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n </div>\n </div>\n \n </div>\n </div>\n </div>\n\n <div class=\"moods-graph__container moods-graph__container--right\">\n <div class=\"moods-graph__content\">\n <h3>Danceability</h3>\n\n <div class=\"moods-graph__card\">\n <div class=\"moods-graph__card__container\">\n <p class=\"moods-graph__card__header\">All Time</p>\n <p class=\"moods-graph__card__paragraph\">2.4% Lower than U.S Average</p>\n </div>\n\n <div class=\"moods-graph__card__container\">\n <div class=\"equalizer-container level-one\">\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n </div>\n </div>\n \n </div>\n\n <div class=\"moods-graph__card moods-graph__card--reverse\">\n <div class=\"moods-graph__card__container\">\n <p class=\"moods-graph__card__header\">All Time</p>\n <p class=\"moods-graph__card__paragraph\">2.4% Lower than U.S Average</p>\n </div>\n\n <div class=\"moods-graph__card__container\">\n <div class=\"equalizer-container level-one\">\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n <div class=\"bar\"></div>\n </div>\n </div>\n \n </div>\n </div>\n </div>\n\n \n </div>\n</div>");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/components/obscurity-graph/obscurity-graph.component.html":
/*!*****************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/components/obscurity-graph/obscurity-graph.component.html ***!
\*****************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<div fxLayout=\"row\" fxLayoutAlign=\"end center\">\n <div class=\"obscurity__graph\" fxLayout=\"column\" fxLayoutAlign=\"center center\" fxFlexAlign=\"end\">\n <div class=\"obscurity__graph__container\" fxFlexOffset=\"5%\">\n <div class=\"obscurity__avg-bar\" style=\"height: 20px;\" #globalAvgBar [ngClass]=\"{'active': barActive}\">\n <p class=\"bar-value\">100</p>\n <p class=\"bar-title\">Global Avg</p>\n </div>\n <div class=\"obscurity__avg-bar\" style=\"height: 20px;\" #countryAvgBar [ngClass]=\"{'active': barActive}\">\n <p class=\"bar-value\">100</p>\n <!-- <p class=\"bar-title\">{{data.label}} Avg</p> -->\n <p class=\"bar-title\">Avg</p> \n </div>\n <div class=\"obscurity__avg-bar\" style=\"height: 20px;\" #allTimeBar [ngClass]=\"{'active': barActive}\">\n <p class=\"bar-value\">100</p>\n <p class=\"bar-title\">My All-Time</p>\n </div>\n \n <div class=\"obscurity__avg-bar\" style=\"height: 20px;\" #recentBar [ngClass]=\"{'active': barActive}\">\n <p class=\"bar-value\">100</p>\n <p class=\"bar-title\">My Recent</p>\n </div>\n </div>\n <div class=\"obscurity__graph__info\">\n <p>The lower your score, the more obscure your music taste is. The higher, the more relatable.</p>\n <!-- <p class=\"graph-info\">Global Average is based on {{ data.userCount | number }} Obscurify users.</p> -->\n </div>\n </div>\n</div>\n\n ");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/components/obscurity-rating/obscurity-rating.component.html":
/*!*******************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/components/obscurity-rating/obscurity-rating.component.html ***!
\*******************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("\n<div class=\"slate\">\n <div class=\"obscurity\" [ngClass]=\"{'show': this.show}\">\n\n <div class=\"header\">\n <h2 class=\"header__title\">\n Obscurity Rating\n </h2>\n </div>\n\n <div class=\"percentile\">\n <div class=\"percentile__card\">\n <!-- <h2>{{this.data.percentileByCountry}}%</h2> -->\n <h2>80%</h2>\n\n <p>Your music is more obscure than\n <strong>80%</strong>\n of 300000 US users on Obscurify.\n </p>\n\n <!-- <p>Your music is more obscure than\n <strong>{{this.data.percentileByCountry}}%</strong>\n of {{this.data.userCountByCountry | number}} {{this.data.label}} users on Obscurify.\n </p> -->\n </div>\n \n </div>\n\n <app-obscurity-graph>\n \n </app-obscurity-graph>\n \n\n \n </div>\n</div>");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/components/recommendations/recommendations.component.html":
/*!*****************************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/components/recommendations/recommendations.component.html ***!
\*****************************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<div class=\"slate\">\n <div class=\"recommendations\" [ngClass]=\"{'show': this.show}\">\n <div class=\"header\">\n <h2 class=\"header__title\">\n Recommendations\n </h2>\n </div>\n <div class=\"recommendations__content\">\n <div class=\"recommendations__container\">\n <!-- <button id=\"filter-btn\" class=\"filter-btn\" (click)=\"toggleFilter()\">\n <i class=\"fas fa-sliders-h\"></i>\n </button> -->\n\n <button class=\"refresh-btn\" (click)=\"refreshTracks()\">\n <span>Refresh</span>\n <i class=\"fas fa-sync\"></i>\n </button>\n \n <button class=\"add-playlist-btn\" (click)=\"makePlaylist()\">\n <span>Create Playlist</span>\n <i class=\"fas fa-plus-circle\"></i>\n </button>\n <div class=\"track-container\">\n <div class=\"card-track\">\n <div class=\"card\" *ngFor=\"let track of recommendedTracks\">\n <div class=\"card-content\">\n <img item-start [src]=\"track.album.images[1].url\">\n </div>\n <div class=\"card-info\">\n <a [href]=\"this.sanitizer.bypassSecurityTrustResourceUrl(track.uri)\">\n <h3>\n {{ (track.name.length < 30) ? (track.name):(track.name | slice:0:25)+'...' }}\n </h3>\n <p>\n {{ track.artists[0].name }}\n </p>\n </a>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n\n </div>\n</div>");
/***/ }),
/***/ "./node_modules/raw-loader/dist/cjs.js!./src/app/components/top-genres/top-genres.component.html":
/*!*******************************************************************************************************!*\
!*** ./node_modules/raw-loader/dist/cjs.js!./src/app/components/top-genres/top-genres.component.html ***!
\*******************************************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("<div class=\"slate\" *ngIf=\"genres\">\n <div class=\"genre\" [ngClass]=\"{'show': show}\">\n <div class=\"header\">\n <h2 class=\"header__title\">\n Top Genres\n </h2>\n </div>\n\n <div class=\"genre__list\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\" fxLayoutGap=\"1em\">\n <div class=\"genre__card genre__card--{{i}}\" fxFlex=\"1 1 100%\" *ngFor=\"let item of genres; let i = index\">\n <h3>{{ i + 1 }} / {{ item[0] }}</h3>\n </div>\n\n \n </div>\n </div>\n</div>");
/***/ }),
/***/ "./node_modules/tslib/tslib.es6.js":
/*!*****************************************!*\
!*** ./node_modules/tslib/tslib.es6.js ***!
\*****************************************/
/*! exports provided: __extends, __assign, __rest, __decorate, __param, __metadata, __awaiter, __generator, __exportStar, __values, __read, __spread, __spreadArrays, __await, __asyncGenerator, __asyncDelegator, __asyncValues, __makeTemplateObject, __importStar, __importDefault */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__extends", function() { return __extends; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__assign", function() { return __assign; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__rest", function() { return __rest; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__decorate", function() { return __decorate; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__param", function() { return __param; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__metadata", function() { return __metadata; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__awaiter", function() { return __awaiter; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__generator", function() { return __generator; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__exportStar", function() { return __exportStar; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__values", function() { return __values; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__read", function() { return __read; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__spread", function() { return __spread; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__spreadArrays", function() { return __spreadArrays; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__await", function() { return __await; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncGenerator", function() { return __asyncGenerator; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncDelegator", function() { return __asyncDelegator; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__asyncValues", function() { return __asyncValues; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__makeTemplateObject", function() { return __makeTemplateObject; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importStar", function() { return __importStar; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "__importDefault", function() { return __importDefault; });
/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.
See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */
/* global Reflect, Promise */
var extendStatics = function(d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
function __extends(d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
}
var __assign = function() {
__assign = Object.assign || function __assign(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
}
return t;
}
return __assign.apply(this, arguments);
}
function __rest(s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
}
function __decorate(decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
}
function __param(paramIndex, decorator) {
return function (target, key) { decorator(target, key, paramIndex); }
}
function __metadata(metadataKey, metadataValue) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
}
function __awaiter(thisArg, _arguments, P, generator) {
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
}
function __generator(thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
}
function __exportStar(m, exports) {
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
function __values(o) {
var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
if (m) return m.call(o);
return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
}
function __read(o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
}
function __spread() {
for (var ar = [], i = 0; i < arguments.length; i++)
ar = ar.concat(__read(arguments[i]));
return ar;
}
function __spreadArrays() {
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
for (var r = Array(s), k = 0, i = 0; i < il; i++)
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
r[k] = a[j];
return r;
};
function __await(v) {
return this instanceof __await ? (this.v = v, this) : new __await(v);
}
function __asyncGenerator(thisArg, _arguments, generator) {
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
var g = generator.apply(thisArg, _arguments || []), i, q = [];
return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
function fulfill(value) { resume("next", value); }
function reject(value) { resume("throw", value); }
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
}
function __asyncDelegator(o) {
var i, p;
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
}
function __asyncValues(o) {
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
var m = o[Symbol.asyncIterator], i;
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
}
function __makeTemplateObject(cooked, raw) {
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
return cooked;
};
function __importStar(mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result.default = mod;
return result;
}
function __importDefault(mod) {
return (mod && mod.__esModule) ? mod : { default: mod };
}
/***/ }),
/***/ "./src/app/app-routing.module.ts":
/*!***************************************!*\
!*** ./src/app/app-routing.module.ts ***!
\***************************************/
/*! exports provided: AppRoutingModule */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AppRoutingModule", function() { return AppRoutingModule; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */ var _components_login_login_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components/login/login.component */ "./src/app/components/login/login.component.ts");
/* harmony import */ var _components_home_home_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/home/home.component */ "./src/app/components/home/home.component.ts");
/* harmony import */ var _services_spotifyAuth__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./services/spotifyAuth */ "./src/app/services/spotifyAuth/index.ts");
/* harmony import */ var _components_spotify_auth_spotify_auth_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./components/spotify-auth/spotify-auth.component */ "./src/app/components/spotify-auth/spotify-auth.component.ts");
/* harmony import */ var _components_about_about_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./components/about/about.component */ "./src/app/components/about/about.component.ts");
const routes = [
{
path: 'about',
component: _components_about_about_component__WEBPACK_IMPORTED_MODULE_7__["AboutComponent"]
},
{
path: 'login',
component: _components_login_login_component__WEBPACK_IMPORTED_MODULE_3__["LoginComponent"]
},
{
path: 'home',
component: _components_home_home_component__WEBPACK_IMPORTED_MODULE_4__["HomeComponent"]
},
{
path: '',
redirectTo: 'login',
pathMatch: 'full'
},
{
path: 'authorized',
canActivate: [_services_spotifyAuth__WEBPACK_IMPORTED_MODULE_5__["AuthGuard"]],
component: _components_spotify_auth_spotify_auth_component__WEBPACK_IMPORTED_MODULE_6__["SpotifyAuthComponent"]
}
];
let AppRoutingModule = class AppRoutingModule {
};
AppRoutingModule = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({
imports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"].forRoot(routes)],
exports: [_angular_router__WEBPACK_IMPORTED_MODULE_2__["RouterModule"]]
})
], AppRoutingModule);
/***/ }),
/***/ "./src/app/app.component.scss":
/*!************************************!*\
!*** ./src/app/app.component.scss ***!
\************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = (".app {\n transition: 0.3s cubic-bezier(0.25, 0.1, 0.25, 1);\n padding: 0 1em;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4L0Rlc2t0b3Avb2JzY3VyaWZ5My9zcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvYXBwLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBO0VBQ0ksaURBQUE7RUFDQSxjQUFBO0FDRkoiLCJmaWxlIjoic3JjL2FwcC9hcHAuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0ICdtaXhpbnMnO1xuXG5cbi5hcHAge1xuICAgIHRyYW5zaXRpb246IC4zcyBjdWJpYy1iZXppZXIoLjI1LC4xLC4yNSwxKTtcbiAgICBwYWRkaW5nOiAwIDFlbTtcbn0iLCIuYXBwIHtcbiAgdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC4xLCAwLjI1LCAxKTtcbiAgcGFkZGluZzogMCAxZW07XG59Il19 */");
/***/ }),
/***/ "./src/app/app.component.ts":
/*!**********************************!*\
!*** ./src/app/app.component.ts ***!
\**********************************/
/*! exports provided: AppComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AppComponent", function() { return AppComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _services_spotifyAuth__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./services/spotifyAuth */ "./src/app/services/spotifyAuth/index.ts");
/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm2015/router.js");
let AppComponent = class AppComponent {
constructor(tokenSvc, authService, router) {
this.tokenSvc = tokenSvc;
this.authService = authService;
this.router = router;
this.title = 'obscurify3';
}
ngOnInit() {
this.authService.authorizedStream.subscribe((x) => {
if (x) {
this.router.navigate(['home']);
}
});
}
getUserInfo() {
}
logout() {
this.tokenSvc.clearToken();
this.router.navigate(['login']);
}
};
AppComponent.ctorParameters = () => [
{ type: _services_spotifyAuth__WEBPACK_IMPORTED_MODULE_2__["TokenService"] },
{ type: _services_spotifyAuth__WEBPACK_IMPORTED_MODULE_2__["AuthService"] },
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_3__["Router"] }
];
AppComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-root',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./app.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/app.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./app.component.scss */ "./src/app/app.component.scss")).default]
})
], AppComponent);
/***/ }),
/***/ "./src/app/app.module.ts":
/*!*******************************!*\
!*** ./src/app/app.module.ts ***!
\*******************************/
/*! exports provided: AppModule */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AppModule", function() { return AppModule; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/platform-browser */ "./node_modules/@angular/platform-browser/fesm2015/platform-browser.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/platform-browser/animations */ "./node_modules/@angular/platform-browser/fesm2015/animations.js");
/* harmony import */ var _angular_cdk_platform__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/cdk/platform */ "./node_modules/@angular/cdk/esm2015/platform.js");
/* harmony import */ var _angular_material_radio__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/material/radio */ "./node_modules/@angular/material/esm2015/radio.js");
/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/forms */ "./node_modules/@angular/forms/fesm2015/forms.js");
/* harmony import */ var _angular_flex_layout__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/flex-layout */ "./node_modules/@angular/flex-layout/esm2015/flex-layout.js");
/* harmony import */ var _angular_common_http__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/common/http */ "./node_modules/@angular/common/fesm2015/http.js");
/* harmony import */ var _angular_material_snack_bar__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/material/snack-bar */ "./node_modules/@angular/material/esm2015/snack-bar.js");
/* harmony import */ var _angular_material_menu__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/material/menu */ "./node_modules/@angular/material/esm2015/menu.js");
/* harmony import */ var ngx_cookie_service__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ngx-cookie-service */ "./node_modules/ngx-cookie-service/fesm2015/ngx-cookie-service.js");
/* harmony import */ var _app_routing_module__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./app-routing.module */ "./src/app/app-routing.module.ts");
/* harmony import */ var _app_component__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./app.component */ "./src/app/app.component.ts");
/* harmony import */ var _components_home_home_component__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./components/home/home.component */ "./src/app/components/home/home.component.ts");
/* harmony import */ var _components_intro_intro_component__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./components/intro/intro.component */ "./src/app/components/intro/intro.component.ts");
/* harmony import */ var _components_top_genres_top_genres_component__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./components/top-genres/top-genres.component */ "./src/app/components/top-genres/top-genres.component.ts");
/* harmony import */ var _components_obscurity_rating_obscurity_rating_component__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./components/obscurity-rating/obscurity-rating.component */ "./src/app/components/obscurity-rating/obscurity-rating.component.ts");
/* harmony import */ var _components_obscurity_graph_obscurity_graph_component__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./components/obscurity-graph/obscurity-graph.component */ "./src/app/components/obscurity-graph/obscurity-graph.component.ts");
/* harmony import */ var _components_artist_artist_list_artist_list_component__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./components/artist/artist-list/artist-list.component */ "./src/app/components/artist/artist-list/artist-list.component.ts");
/* harmony import */ var _components_artist_artist_card_artist_card_component__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./components/artist/artist-card/artist-card.component */ "./src/app/components/artist/artist-card/artist-card.component.ts");
/* harmony import */ var _components_artist_artist_nav_artist_nav_component__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./components/artist/artist-nav/artist-nav.component */ "./src/app/components/artist/artist-nav/artist-nav.component.ts");
/* harmony import */ var _components_moods_graph_moods_graph_component__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./components/moods-graph/moods-graph.component */ "./src/app/components/moods-graph/moods-graph.component.ts");
/* harmony import */ var _components_recommendations_recommendations_component__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./components/recommendations/recommendations.component */ "./src/app/components/recommendations/recommendations.component.ts");
/* harmony import */ var _components_login_login_component__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./components/login/login.component */ "./src/app/components/login/login.component.ts");
/* harmony import */ var _services_spotifyAuth__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./services/spotifyAuth */ "./src/app/services/spotifyAuth/index.ts");
/* harmony import */ var _components_spotify_auth_spotify_auth_component__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./components/spotify-auth/spotify-auth.component */ "./src/app/components/spotify-auth/spotify-auth.component.ts");
/* harmony import */ var _services_infoService__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./services/infoService */ "./src/app/services/infoService.ts");
/* harmony import */ var _utilities_obscurityFuncs__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./utilities/obscurityFuncs */ "./src/app/utilities/obscurityFuncs.ts");
/* harmony import */ var _components_artist_track_card_track_card_component__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./components/artist/track-card/track-card.component */ "./src/app/components/artist/track-card/track-card.component.ts");
/* harmony import */ var _services_spotifyService__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./services/spotifyService */ "./src/app/services/spotifyService.ts");
/* harmony import */ var _components_about_about_component__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./components/about/about.component */ "./src/app/components/about/about.component.ts");
/* harmony import */ var _components_footer_footer_component__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./components/footer/footer.component */ "./src/app/components/footer/footer.component.ts");
/* harmony import */ var _services_obscurifyService__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./services/obscurifyService */ "./src/app/services/obscurifyService.ts");
let AppModule = class AppModule {
};
AppModule = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_2__["NgModule"])({
declarations: [
_app_component__WEBPACK_IMPORTED_MODULE_13__["AppComponent"],
_components_home_home_component__WEBPACK_IMPORTED_MODULE_14__["HomeComponent"],
_components_intro_intro_component__WEBPACK_IMPORTED_MODULE_15__["IntroComponent"],
_components_top_genres_top_genres_component__WEBPACK_IMPORTED_MODULE_16__["TopGenresComponent"],
_components_obscurity_rating_obscurity_rating_component__WEBPACK_IMPORTED_MODULE_17__["ObscurityRatingComponent"],
_components_obscurity_graph_obscurity_graph_component__WEBPACK_IMPORTED_MODULE_18__["ObscurityGraphComponent"],
_components_artist_artist_list_artist_list_component__WEBPACK_IMPORTED_MODULE_19__["ArtistListComponent"],
_components_artist_artist_card_artist_card_component__WEBPACK_IMPORTED_MODULE_20__["ArtistCardComponent"],
_components_artist_artist_nav_artist_nav_component__WEBPACK_IMPORTED_MODULE_21__["ArtistNavComponent"],
_components_moods_graph_moods_graph_component__WEBPACK_IMPORTED_MODULE_22__["MoodsGraphComponent"],
_components_recommendations_recommendations_component__WEBPACK_IMPORTED_MODULE_23__["RecommendationsComponent"],
_components_login_login_component__WEBPACK_IMPORTED_MODULE_24__["LoginComponent"],
_components_spotify_auth_spotify_auth_component__WEBPACK_IMPORTED_MODULE_26__["SpotifyAuthComponent"],
_components_artist_track_card_track_card_component__WEBPACK_IMPORTED_MODULE_29__["TrackCardComponent"],
_components_about_about_component__WEBPACK_IMPORTED_MODULE_31__["AboutComponent"],
_components_footer_footer_component__WEBPACK_IMPORTED_MODULE_32__["FooterComponent"],
],
imports: [
_angular_flex_layout__WEBPACK_IMPORTED_MODULE_7__["FlexLayoutModule"],
_angular_platform_browser__WEBPACK_IMPORTED_MODULE_1__["BrowserModule"],
_app_routing_module__WEBPACK_IMPORTED_MODULE_12__["AppRoutingModule"],
_angular_platform_browser_animations__WEBPACK_IMPORTED_MODULE_3__["BrowserAnimationsModule"],
_angular_cdk_platform__WEBPACK_IMPORTED_MODULE_4__["PlatformModule"],
_angular_material_radio__WEBPACK_IMPORTED_MODULE_5__["MatRadioModule"],
_angular_material_snack_bar__WEBPACK_IMPORTED_MODULE_9__["MatSnackBarModule"],
_angular_forms__WEBPACK_IMPORTED_MODULE_6__["FormsModule"],
_app_routing_module__WEBPACK_IMPORTED_MODULE_12__["AppRoutingModule"],
_angular_common_http__WEBPACK_IMPORTED_MODULE_8__["HttpClientModule"],
_angular_material_menu__WEBPACK_IMPORTED_MODULE_10__["MatMenuModule"]
],
providers: [
_utilities_obscurityFuncs__WEBPACK_IMPORTED_MODULE_28__["default"],
_services_spotifyAuth__WEBPACK_IMPORTED_MODULE_25__["AuthService"],
_services_spotifyAuth__WEBPACK_IMPORTED_MODULE_25__["TokenService"],
_services_spotifyAuth__WEBPACK_IMPORTED_MODULE_25__["AuthGuard"],
ngx_cookie_service__WEBPACK_IMPORTED_MODULE_11__["CookieService"],
_services_infoService__WEBPACK_IMPORTED_MODULE_27__["InfoService"],
_services_obscurifyService__WEBPACK_IMPORTED_MODULE_33__["default"],
_services_spotifyService__WEBPACK_IMPORTED_MODULE_30__["SpotifyService"],
[{
provide: _angular_common_http__WEBPACK_IMPORTED_MODULE_8__["HTTP_INTERCEPTORS"],
// Force interception to use your new shiny headers!
useClass: _services_spotifyAuth__WEBPACK_IMPORTED_MODULE_25__["SpotifyAuthInterceptor"],
multi: true
}]
],
bootstrap: [_app_component__WEBPACK_IMPORTED_MODULE_13__["AppComponent"]]
})
], AppModule);
/***/ }),
/***/ "./src/app/components/about/about.component.scss":
/*!*******************************************************!*\
!*** ./src/app/components/about/about.component.scss ***!
\*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("main {\n width: 100%;\n background-color: #A9E5AC;\n}\n\nsection {\n margin: 2em 0;\n max-width: 772px;\n padding: 0 2em;\n}\n\nsection p {\n margin-bottom: 1em;\n}\n\nsection h2, section h3 {\n margin-bottom: 1em;\n}\n\n.back__btn {\n padding: 1em 1em;\n color: black;\n width: 200px;\n background-color: white;\n text-decoration: none;\n border-radius: 5px;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4L0Rlc2t0b3Avb2JzY3VyaWZ5My9zcmMvYXBwL2NvbXBvbmVudHMvYWJvdXQvYWJvdXQuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvYWJvdXQvYWJvdXQuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxXQUFBO0VBQ0EseUJBQUE7QUNDSjs7QURFQTtFQUNJLGFBQUE7RUFDQSxnQkFBQTtFQUNBLGNBQUE7QUNDSjs7QURDSTtFQUNJLGtCQUFBO0FDQ1I7O0FERUk7RUFDSSxrQkFBQTtBQ0FSOztBRElBO0VBQ0ksZ0JBQUE7RUFDQSxZQUFBO0VBQ0EsWUFBQTtFQUNBLHVCQUFBO0VBQ0EscUJBQUE7RUFDQSxrQkFBQTtBQ0RKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9hYm91dC9hYm91dC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIm1haW4ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNBOUU1QUM7XG59XG5cbnNlY3Rpb24ge1xuICAgIG1hcmdpbjogMmVtIDA7XG4gICAgbWF4LXdpZHRoOiA3NzJweDtcbiAgICBwYWRkaW5nOiAwIDJlbTtcblxuICAgIHAge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gICAgfVxuXG4gICAgaDIsIGgzIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgIH1cbn1cblxuLmJhY2tfX2J0biB7XG4gICAgcGFkZGluZzogMWVtIDFlbTtcbiAgICBjb2xvcjogYmxhY2s7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG59IiwibWFpbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTlFNUFDO1xufVxuXG5zZWN0aW9uIHtcbiAgbWFyZ2luOiAyZW0gMDtcbiAgbWF4LXdpZHRoOiA3NzJweDtcbiAgcGFkZGluZzogMCAyZW07XG59XG5zZWN0aW9uIHAge1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG59XG5zZWN0aW9uIGgyLCBzZWN0aW9uIGgzIHtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xufVxuXG4uYmFja19fYnRuIHtcbiAgcGFkZGluZzogMWVtIDFlbTtcbiAgY29sb3I6IGJsYWNrO1xuICB3aWR0aDogMjAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn0iXX0= */");
/***/ }),
/***/ "./src/app/components/about/about.component.ts":
/*!*****************************************************!*\
!*** ./src/app/components/about/about.component.ts ***!
\*****************************************************/
/*! exports provided: AboutComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AboutComponent", function() { return AboutComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
let AboutComponent = class AboutComponent {
constructor() { }
ngOnInit() {
}
};
AboutComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-about',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./about.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/components/about/about.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./about.component.scss */ "./src/app/components/about/about.component.scss")).default]
})
], AboutComponent);
/***/ }),
/***/ "./src/app/components/artist/artist-card/artist-card.component.scss":
/*!**************************************************************************!*\
!*** ./src/app/components/artist/artist-card/artist-card.component.scss ***!
\**************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = (".artist__card {\n width: 100%;\n min-width: 200px;\n height: 75px;\n position: relative;\n overflow: hidden;\n border-radius: 5px;\n box-shadow: 5px 5px 4px 4px rgba(0, 0, 0, 0.5);\n color: white;\n transition: 0.3s cubic-bezier(0.25, 0.1, 0.25, 1);\n}\n.artist__card img {\n position: absolute;\n -o-object-fit: cover;\n object-fit: cover;\n width: 100%;\n}\n.artist__card.active {\n height: 200px;\n}\n.artist__card.active .artist__card__info {\n height: 100%;\n}\n.artist__card span {\n margin-top: 2px;\n}\n.artist__card__info {\n height: 60px;\n transition: 0.3s cubic-bezier(0.25, 0.1, 0.25, 1);\n position: absolute;\n width: 100%;\n background: rgba(0, 0, 0, 0.55);\n border-radius: 5px;\n bottom: 0;\n box-sizing: border-box;\n padding: 1rem 0.5rem;\n font-size: 1.2rem;\n}\n.artist__card__info--secondary, .artist__card__info--primary {\n transition: 0.3s cubic-bezier(0.25, 0.1, 0.25, 1);\n margin-left: 1rem;\n}\n.artist__card__info--primary {\n font-size: 1.2em;\n margin-bottom: 0.5rem;\n}\n.artist__card__external {\n color: white;\n cursor: pointer;\n}\n.artist__card button {\n margin-top: 1em;\n background: transparent;\n width: 125px;\n text-align: center;\n font-size: 12px;\n color: #fff;\n display: block;\n border-radius: 25px;\n font-weight: 700;\n margin: 1em auto 0;\n border: 2px solid #A9E5AC;\n padding: 1em;\n cursor: pointer;\n}\n@media (min-width: 768px) and (max-width: 1023px) {\n .artist__card {\n height: 150px;\n width: 200px;\n margin-bottom: 1em;\n }\n .artist__card.active {\n height: 150px;\n }\n}\n@media (min-width: 1024px) {\n .artist__card {\n height: 170px;\n width: 220px;\n margin-bottom: 1em;\n }\n .artist__card__info {\n font-size: 1rem;\n }\n .artist__card.active {\n height: 170px;\n }\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4L0Rlc2t0b3Avb2JzY3VyaWZ5My9zcmMvYXBwL2NvbXBvbmVudHMvYXJ0aXN0L2FydGlzdC1jYXJkL2FydGlzdC1jYXJkLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL2FydGlzdC9hcnRpc3QtY2FyZC9hcnRpc3QtY2FyZC5jb21wb25lbnQuc2NzcyIsIi9Vc2Vycy9hbGV4L0Rlc2t0b3Avb2JzY3VyaWZ5My9zcmMvYXBwL3Njc3MvX21peGlucy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBO0VBQ0ksV0FBQTtFQUNBLGdCQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLDhDQUFBO0VBQ0EsWUFBQTtFQUNBLGlEQUFBO0FDRko7QURJSTtFQUNJLGtCQUFBO0VBQ0Esb0JBQUE7S0FBQSxpQkFBQTtFQUNBLFdBQUE7QUNGUjtBREtJO0VBQ0ksYUFBQTtBQ0hSO0FES1E7RUFDSSxZQUFBO0FDSFo7QURPSTtFQUNJLGVBQUE7QUNMUjtBRFFJO0VBQ0ksWUFBQTtFQUNBLGlEQUFBO0VBQ0Esa0JBQUE7RUFDQSxXQUFBO0VBQ0EsK0JBQUE7RUFDQSxrQkFBQTtFQUNBLFNBQUE7RUFDQSxzQkFBQTtFQUNBLG9CQUFBO0VBQ0EsaUJBQUE7QUNOUjtBRFFRO0VBQ0ksaURBQUE7RUFDQSxpQkFBQTtBQ05aO0FEU1E7RUFDSSxnQkFBQTtFQUNBLHFCQUFBO0FDUFo7QURZSTtFQUNJLFlBQUE7RUFDQSxlQUFBO0FDVlI7QURhSTtFQUNJLGVBQUE7RUFDQSx1QkFBQTtFQUNBLFlBQUE7RUFDQSxrQkFBQTtFQUNBLGVBQUE7RUFDQSxXQUFBO0VBQ0EsY0FBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLHlCQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7QUNYUjtBQzNERTtFRjJFRTtJQUNJLGFBQUE7SUFDQSxZQUFBO0lBQ0Esa0JBQUE7RUNaTjtFRGFNO0lBQ0ksYUFBQTtFQ1hWO0FBQ0Y7QUNoRUU7RUZpRkU7SUFDSSxhQUFBO0lBQ0EsWUFBQTtJQUNBLGtCQUFBO0VDZE47RURnQk07SUFDSSxlQUFBO0VDZFY7RURpQk07SUFDSSxhQUFBO0VDZlY7QUFDRiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvYXJ0aXN0L2FydGlzdC1jYXJkL2FydGlzdC1jYXJkLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAndmFyaWFibGVzJztcbkBpbXBvcnQgJ21peGlucyc7XG5cbi5hcnRpc3RfX2NhcmQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogMjAwcHg7XG4gICAgaGVpZ2h0OiA3NXB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBib3gtc2hhZG93OiA1cHggNXB4IDRweCA0cHggcmdiYSgwLCAwLCAwLCAwLjUpO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICB0cmFuc2l0aW9uOiAuM3MgY3ViaWMtYmV6aWVyKC4yNSwuMSwuMjUsMSk7XG5cbiAgICBpbWcge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGhlaWdodDogMjAwcHg7XG4gICAgICAgIFxuICAgICAgICAuYXJ0aXN0X19jYXJkX19pbmZvIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNwYW4ge1xuICAgICAgICBtYXJnaW4tdG9wOiAycHg7XG4gICAgfVxuICAgIFxuICAgICZfX2luZm8ge1xuICAgICAgICBoZWlnaHQ6IDYwcHg7XG4gICAgICAgIHRyYW5zaXRpb246IC4zcyBjdWJpYy1iZXppZXIoLjI1LC4xLC4yNSwxKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwuNTUpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgICAgIGJvdHRvbTogMDsgIFxuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAgXG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcblxuICAgICAgICAmLS1zZWNvbmRhcnksICYtLXByaW1hcnkge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogLjNzIGN1YmljLWJlemllciguMjUsLjEsLjI1LDEpO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wcmltYXJ5IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2V4dGVybmFsIHtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgYnV0dG9uIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMWVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgd2lkdGg6IDEyNXB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyNXB4O1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBtYXJnaW46IDFlbSBhdXRvIDA7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRwcmltYXJ5LWNvbG9yO1xuICAgICAgICBwYWRkaW5nOiAxZW07XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG59XG5cbkBpbmNsdWRlIHRhYmxldCB7XG4gICAgLmFydGlzdF9fY2FyZCB7XG4gICAgICAgIGhlaWdodDogMTUwcHg7XG4gICAgICAgIHdpZHRoOiAyMDBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDE1MHB4O1xuICAgICAgICB9XG5cbiAgICB9XG59XG5cbkBpbmNsdWRlIGRlc2t0b3Age1xuICAgIC5hcnRpc3RfX2NhcmQge1xuICAgICAgICBoZWlnaHQ6IDE3MHB4O1xuICAgICAgICB3aWR0aDogMjIwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcblxuICAgICAgICAmX19pbmZvIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgIGhlaWdodDogMTcwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbn0iLCIuYXJ0aXN0X19jYXJkIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi13aWR0aDogMjAwcHg7XG4gIGhlaWdodDogNzVweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJveC1zaGFkb3c6IDVweCA1cHggNHB4IDRweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC4xLCAwLjI1LCAxKTtcbn1cbi5hcnRpc3RfX2NhcmQgaW1nIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgd2lkdGg6IDEwMCU7XG59XG4uYXJ0aXN0X19jYXJkLmFjdGl2ZSB7XG4gIGhlaWdodDogMjAwcHg7XG59XG4uYXJ0aXN0X19jYXJkLmFjdGl2ZSAuYXJ0aXN0X19jYXJkX19pbmZvIHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuLmFydGlzdF9fY2FyZCBzcGFuIHtcbiAgbWFyZ2luLXRvcDogMnB4O1xufVxuLmFydGlzdF9fY2FyZF9faW5mbyB7XG4gIGhlaWdodDogNjBweDtcbiAgdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC4xLCAwLjI1LCAxKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjU1KTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3R0b206IDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDFyZW0gMC41cmVtO1xuICBmb250LXNpemU6IDEuMnJlbTtcbn1cbi5hcnRpc3RfX2NhcmRfX2luZm8tLXNlY29uZGFyeSwgLmFydGlzdF9fY2FyZF9faW5mby0tcHJpbWFyeSB7XG4gIHRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuMSwgMC4yNSwgMSk7XG4gIG1hcmdpbi1sZWZ0OiAxcmVtO1xufVxuLmFydGlzdF9fY2FyZF9faW5mby0tcHJpbWFyeSB7XG4gIGZvbnQtc2l6ZTogMS4yZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbn1cbi5hcnRpc3RfX2NhcmRfX2V4dGVybmFsIHtcbiAgY29sb3I6IHdoaXRlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uYXJ0aXN0X19jYXJkIGJ1dHRvbiB7XG4gIG1hcmdpbi10b3A6IDFlbTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIHdpZHRoOiAxMjVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAjZmZmO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgbWFyZ2luOiAxZW0gYXV0byAwO1xuICBib3JkZXI6IDJweCBzb2xpZCAjQTlFNUFDO1xuICBwYWRkaW5nOiAxZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5hcnRpc3RfX2NhcmQge1xuICAgIGhlaWdodDogMTUwcHg7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgfVxuICAuYXJ0aXN0X19jYXJkLmFjdGl2ZSB7XG4gICAgaGVpZ2h0OiAxNTBweDtcbiAgfVxufVxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAuYXJ0aXN0X19jYXJkIHtcbiAgICBoZWlnaHQ6IDE3MHB4O1xuICAgIHdpZHRoOiAyMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gIH1cbiAgLmFydGlzdF9fY2FyZF9faW5mbyB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICB9XG4gIC5hcnRpc3RfX2NhcmQuYWN0aXZlIHtcbiAgICBoZWlnaHQ6IDE3MHB4O1xuICB9XG59IiwiJHRhYmxldC13aWR0aDogNzY4cHg7XG4kZGVza3RvcC13aWR0aDogMTAyNHB4O1xuXG5AbWl4aW4gdGFibGV0IHtcbiAgQG1lZGlhIChtaW4td2lkdGg6ICN7JHRhYmxldC13aWR0aH0pIGFuZCAobWF4LXdpZHRoOiAjeyRkZXNrdG9wLXdpZHRoIC0gMXB4fSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBkZXNrdG9wIHtcbiAgQG1lZGlhIChtaW4td2lkdGg6ICN7JGRlc2t0b3Atd2lkdGh9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGx0LW1kIHtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTU5cHgpIHtcbiAgICBAY29udGVudFxuICB9XG59XG5cbkBtaXhpbiBndC1tZCB7XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk2MHB4KSB7XG4gICAgQGNvbnRlbnRcbiAgfVxufVxuXG5AbWl4aW4gZ3QteHMge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAgIEBjb250ZW50XG4gIH1cbn0iXX0= */");
/***/ }),
/***/ "./src/app/components/artist/artist-card/artist-card.component.ts":
/*!************************************************************************!*\
!*** ./src/app/components/artist/artist-card/artist-card.component.ts ***!
\************************************************************************/
/*! exports provided: ArtistCardComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ArtistCardComponent", function() { return ArtistCardComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var src_app_services_browserCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! src/app/services/browserCheck */ "./src/app/services/browserCheck.ts");
/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/platform-browser */ "./node_modules/@angular/platform-browser/fesm2015/platform-browser.js");
let ArtistCardComponent = class ArtistCardComponent {
constructor(browserCheck, sanitizer) {
this.browserCheck = browserCheck;
this.sanitizer = sanitizer;
this.activeView = false;
}
onClick(btn) {
if (this.browserCheck.isDevice) {
this.activeView = !this.activeView;
}
}
onMouseEnter(btn) {
if (this.browserCheck.checkIfBrowser && !this.browserCheck.isDevice) {
this.activeView = true;
}
}
onMouseLeave(btn) {
if (this.browserCheck.checkIfBrowser && !this.browserCheck.isDevice) {
this.activeView = false;
}
}
ngOnInit() {
}
};
ArtistCardComponent.ctorParameters = () => [
{ type: src_app_services_browserCheck__WEBPACK_IMPORTED_MODULE_2__["default"] },
{ type: _angular_platform_browser__WEBPACK_IMPORTED_MODULE_3__["DomSanitizer"] }
];
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], ArtistCardComponent.prototype, "artist", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], ArtistCardComponent.prototype, "i", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["HostListener"])('touchend', ['$event.target'])
], ArtistCardComponent.prototype, "onClick", null);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["HostListener"])('mouseenter', ['$event.target'])
], ArtistCardComponent.prototype, "onMouseEnter", null);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["HostListener"])('mouseleave', ['$event.target'])
], ArtistCardComponent.prototype, "onMouseLeave", null);
ArtistCardComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-artist-card',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./artist-card.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/components/artist/artist-card/artist-card.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./artist-card.component.scss */ "./src/app/components/artist/artist-card/artist-card.component.scss")).default]
})
], ArtistCardComponent);
/***/ }),
/***/ "./src/app/components/artist/artist-list/artist-list.component.scss":
/*!**************************************************************************!*\
!*** ./src/app/components/artist/artist-list/artist-list.component.scss ***!
\**************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = (".header__title {\n font-size: 3em;\n border-bottom: 8px black solid;\n width: -webkit-fit-content;\n width: -moz-fit-content;\n width: fit-content;\n padding-bottom: 0.2em;\n margin: 0;\n}\n\n.artist {\n max-width: 1024px;\n margin: 0 auto;\n padding: 2rem 0px;\n}\n\n.artist .header__title {\n text-transform: capitalize;\n}\n\n.artist__container {\n margin-top: 2em;\n}\n\n.artist__container__grid::after {\n content: \"\";\n flex: auto;\n}\n\n.artist__button {\n margin-top: 2em;\n background: #D8D8D8;\n border-radius: 23.5px;\n font-size: 16px;\n color: #090909;\n text-align: center;\n padding: 1em 2em;\n border: none;\n font-weight: bold;\n}\n\n.artist__button:hover {\n border: none;\n cursor: pointer;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4L0Rlc2t0b3Avb2JzY3VyaWZ5My9zcmMvYXBwL3Njc3MvY29tcG9uZW50cy9faGVhZGVyLnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvYXJ0aXN0L2FydGlzdC1saXN0L2FydGlzdC1saXN0LmNvbXBvbmVudC5zY3NzIiwiL1VzZXJzL2FsZXgvRGVza3RvcC9vYnNjdXJpZnkzL3NyYy9hcHAvY29tcG9uZW50cy9hcnRpc3QvYXJ0aXN0LWxpc3QvYXJ0aXN0LWxpc3QuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUk7RUFDSSxjQUFBO0VBQ0EsOEJBQUE7RUFDQSwwQkFBQTtFQUFBLHVCQUFBO0VBQUEsa0JBQUE7RUFDQSxxQkFBQTtFQUNBLFNBQUE7QUNEUjs7QUNGQTtFQUNJLGlCQUFBO0VBQ0EsY0FBQTtFQUNBLGlCQUFBO0FES0o7O0FDSEk7RUFDSSwwQkFBQTtBREtSOztBQ0ZJO0VBQ0ksZUFBQTtBRElSOztBQ0FRO0VBQ0ksV0FBQTtFQUNBLFVBQUE7QURFWjs7QUNFSTtFQUNJLGVBQUE7RUFDQSxtQkFBQTtFQUNBLHFCQUFBO0VBQ0EsZUFBQTtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLGdCQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBO0FEQVI7O0FDQ1E7RUFDSSxZQUFBO0VBQ0EsZUFBQTtBRENaIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9hcnRpc3QvYXJ0aXN0LWxpc3QvYXJ0aXN0LWxpc3QuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuaGVhZGVyIHtcblxuICAgICZfX3RpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAzZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDhweCBibGFjayBzb2xpZDtcbiAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogLjJlbTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn0iLCIuaGVhZGVyX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogM2VtO1xuICBib3JkZXItYm90dG9tOiA4cHggYmxhY2sgc29saWQ7XG4gIHdpZHRoOiBmaXQtY29udGVudDtcbiAgcGFkZGluZy1ib3R0b206IDAuMmVtO1xuICBtYXJnaW46IDA7XG59XG5cbi5hcnRpc3Qge1xuICBtYXgtd2lkdGg6IDEwMjRweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHBhZGRpbmc6IDJyZW0gMHB4O1xufVxuLmFydGlzdCAuaGVhZGVyX190aXRsZSB7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xufVxuLmFydGlzdF9fY29udGFpbmVyIHtcbiAgbWFyZ2luLXRvcDogMmVtO1xufVxuLmFydGlzdF9fY29udGFpbmVyX19ncmlkOjphZnRlciB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGZsZXg6IGF1dG87XG59XG4uYXJ0aXN0X19idXR0b24ge1xuICBtYXJnaW4tdG9wOiAyZW07XG4gIGJhY2tncm91bmQ6ICNEOEQ4RDg7XG4gIGJvcmRlci1yYWRpdXM6IDIzLjVweDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBjb2xvcjogIzA5MDkwOTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAxZW0gMmVtO1xuICBib3JkZXI6IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmFydGlzdF9fYnV0dG9uOmhvdmVyIHtcbiAgYm9yZGVyOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59IiwiQGltcG9ydCAnbWl4aW5zJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvaGVhZGVyJztcbkBpbXBvcnQgJ3ZhcmlhYmxlcyc7XG5cbi5hcnRpc3Qge1xuICAgIG1heC13aWR0aDogMTAyNHB4O1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBhZGRpbmc6IDJyZW0gMHB4O1xuXG4gICAgLmhlYWRlcl9fdGl0bGUge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICB9XG5cbiAgICAmX19jb250YWluZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiAyZW07XG4gICAgfVxuXG4gICAgJl9fY29udGFpbmVyX19ncmlkIHtcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGZsZXg6IGF1dG87XG4gICAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogI0Q4RDhEODtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjMuNXB4O1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGNvbG9yOiAjMDkwOTA5O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDFlbSAyZW07XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG4gICAgfVxufSJdfQ== */");
/***/ }),
/***/ "./src/app/components/artist/artist-list/artist-list.component.ts":
/*!************************************************************************!*\
!*** ./src/app/components/artist/artist-list/artist-list.component.ts ***!
\************************************************************************/
/*! exports provided: ArtistListComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ArtistListComponent", function() { return ArtistListComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _angular_material_snack_bar__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/material/snack-bar */ "./node_modules/@angular/material/esm2015/snack-bar.js");
/* harmony import */ var src_app_services_intersectionObserver__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! src/app/services/intersectionObserver */ "./src/app/services/intersectionObserver.ts");
/* harmony import */ var src_app_services_infoService__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! src/app/services/infoService */ "./src/app/services/infoService.ts");
/* harmony import */ var src_app_services_spotifyAuth__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! src/app/services/spotifyAuth */ "./src/app/services/spotifyAuth/index.ts");
/* harmony import */ var src_app_services_spotifyService__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! src/app/services/spotifyService */ "./src/app/services/spotifyService.ts");
let ArtistListComponent = class ArtistListComponent {
constructor(element, intersectionObserverService, infoSvc, tokenSvc, spotifyService, snackBar) {
this.element = element;
this.intersectionObserverService = intersectionObserverService;
this.infoSvc = infoSvc;
this.tokenSvc = tokenSvc;
this.spotifyService = spotifyService;
this.snackBar = snackBar;
this.appColor = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
this.navState = {
listType: 'artists',
historyList: [
{ name: 'Current', value: 'current' },
{ name: 'All Time', value: 'allTime' },
],
selectedHistory: { name: 'Current', value: 'current' }
};
this.allTimeArtists = [];
this.currentArtists = [];
this.allTimeTracks = [];
this.currentTracks = [];
this.sliceLimit = 10;
this.showNav = false;
}
updateAppBackgroundColor() {
this.appColor.emit(4);
}
ngOnInit() {
this.infoSvc.fetchAllTimeArtists().subscribe((x) => {
if (x.items) {
this.allTimeArtists = [...x.items];
}
});
this.infoSvc.fetchAllTimeTracks().subscribe((x) => {
if (x.items) {
this.allTimeTracks = [...x.items];
}
});
this.infoSvc.fetchCurrentTracks().subscribe((x) => {
if (x.items) {
this.currentTracks = [...x.items];
}
});
this.infoSvc.fetchCurrentArtists().subscribe((x) => {
if (x.items) {
this.currentArtists = [...x.items];
}
});
this.infoSvc.getUserStream().subscribe((user) => {
this.userInfo = Object.assign({}, user.userInfo);
});
}
ngAfterViewInit() {
this.intersectionObserverService.init(this.element.nativeElement, {
threshold: 0.20
});
this.intersectionObserverSubs = this.intersectionObserverService
.getSubject()
.subscribe(el => {
if (el.isIntersecting) {
console.log('is intersecting artists');
this.updateAppBackgroundColor();
this.showNav = true;
}
else {
this.showNav = false;
}
});
}
getHistory(data) {
this.navState = Object.assign({}, data);
console.log(this.navState);
}
createPlaylist() {
let playlistName = '';
if (this.navState.selectedHistory.name === 'Current') {
playlistName = 'Current';
}
else {
playlistName = 'All-Time Top Tracks // Obscurify';
}
if (playlistName === 'Current') {
const monthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'
];
const dateObj = new Date();
const month = monthNames[dateObj.getMonth()]; // months from 1-12
const day = dateObj.getDate();
const year = dateObj.getFullYear() % 100;
const newdate = month + ' ' + day + ' \'' + year;
playlistName = newdate + ' // Obscurify';
}
const config = {
userID: this.userInfo.id,
token: this.tokenSvc.oAuthToken,
playlistName: (playlistName),
tracks: null
};
if (this.navState.selectedHistory.value === 'current') {
config.tracks = this.currentTracks;
}
else {
config.tracks = this.allTimeTracks;
}
this.spotifyService.makePlaylist(config).then((results) => {
console.log('playlist', results);
this.snackBar.open('Playlist Created in Spotify!', '', { duration: 5000, panelClass: 'panel-success' });
}).catch((err) => {
console.log('playlist error', err);
this.snackBar.open('Server Error. Please Try Again Later.', '', { duration: 5000, panelClass: 'panel-error' });
});
}
showMore() {
this.sliceLimit = 50;
}
showLess() {
this.sliceLimit = 10;
}
};
ArtistListComponent.ctorParameters = () => [
{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ElementRef"] },
{ type: src_app_services_intersectionObserver__WEBPACK_IMPORTED_MODULE_3__["default"] },
{ type: src_app_services_infoService__WEBPACK_IMPORTED_MODULE_4__["InfoService"] },
{ type: src_app_services_spotifyAuth__WEBPACK_IMPORTED_MODULE_5__["TokenService"] },
{ type: src_app_services_spotifyService__WEBPACK_IMPORTED_MODULE_6__["SpotifyService"] },
{ type: _angular_material_snack_bar__WEBPACK_IMPORTED_MODULE_2__["MatSnackBar"] }
];
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"])()
], ArtistListComponent.prototype, "appColor", void 0);
ArtistListComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-artist-list',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./artist-list.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/components/artist/artist-list/artist-list.component.html")).default,
providers: [src_app_services_intersectionObserver__WEBPACK_IMPORTED_MODULE_3__["default"]],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./artist-list.component.scss */ "./src/app/components/artist/artist-list/artist-list.component.scss")).default]
})
], ArtistListComponent);
/***/ }),
/***/ "./src/app/components/artist/artist-nav/artist-nav.component.scss":
/*!************************************************************************!*\
!*** ./src/app/components/artist/artist-nav/artist-nav.component.scss ***!
\************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = (".artist__nav {\n padding: 0em 2em 1em;\n height: 4em;\n width: 100%;\n box-sizing: border-box;\n position: fixed;\n bottom: 0;\n background: white;\n margin-left: -1em;\n border: 1px solid #E4E4E4;\n}\n.artist__nav.active {\n height: 70vh;\n}\n.artist__nav__mobile {\n margin-bottom: 2em;\n display: flex;\n justify-content: stretch;\n}\n.artist__nav__mobile button {\n font-size: 1em;\n border: none;\n background: none;\n width: 100%;\n text-align: right;\n margin-top: 1em;\n}\n.artist__nav__mobile button span {\n float: left;\n font-size: 24px;\n font-weight: bold;\n}\n.artist__nav__mobile button i {\n margin-left: 1em;\n}\n.artist__nav__content h2 {\n margin-bottom: 0.5em;\n}\n.artist__nav__main {\n margin-bottom: 2em;\n}\n.artist__nav__main .artist__nav__button {\n margin-right: 1em;\n font-size: 1em;\n}\n.artist__nav__history {\n margin-bottom: 2em;\n}\n.artist__nav__history h3 {\n margin-bottom: 1em;\n}\n.artist__nav__playlist button {\n background: #D8D8D8;\n padding: 8px 1em;\n font-size: 1em;\n border: none;\n font-weight: bold;\n}\n.artist__nav__playlist button i {\n margin-right: 5px;\n}\n.artist__nav__button {\n background: transparent;\n border: none;\n border-radius: 5px;\n font-size: 1.5em;\n padding: 8px 1em;\n border: 2px solid #e4e4e4;\n font-weight: bold;\n}\n.artist__nav__button.active {\n background: #A9E5AC;\n border: 2px solid #A9E5AC;\n}\n.artist__nav .select__item {\n margin-bottom: 1em;\n}\n@media screen and (min-width: 600px) {\n .artist__nav__content {\n width: 60%;\n max-width: 310px;\n }\n}\n@media screen and (max-width: 959px) {\n .artist__nav {\n box-shadow: 3px 14px 16px 8px #000;\n }\n .artist__nav__container {\n margin: 0em 0 0;\n }\n\n .artist__nav__content {\n margin: 0 auto;\n }\n}\n@media screen and (min-width: 960px) {\n .artist__nav {\n padding: 1em 1em;\n border-radius: 5px;\n height: auto;\n box-sizing: border-box;\n position: static;\n background: white;\n margin-left: 0em;\n }\n .artist__nav__container {\n margin: 0em 0 0;\n }\n .artist__nav__content {\n width: 100%;\n }\n .artist__nav__mobile {\n display: none;\n }\n .artist__nav.active {\n height: auto;\n }\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4L0Rlc2t0b3Avb2JzY3VyaWZ5My9zcmMvYXBwL2NvbXBvbmVudHMvYXJ0aXN0L2FydGlzdC1uYXYvYXJ0aXN0LW5hdi5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9hcnRpc3QvYXJ0aXN0LW5hdi9hcnRpc3QtbmF2LmNvbXBvbmVudC5zY3NzIiwiL1VzZXJzL2FsZXgvRGVza3RvcC9vYnNjdXJpZnkzL3NyYy9hcHAvc2Nzcy9fdmFyaWFibGVzLnNjc3MiLCIvVXNlcnMvYWxleC9EZXNrdG9wL29ic2N1cmlmeTMvc3JjL2FwcC9zY3NzL19taXhpbnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQTtFQUNJLG9CQUFBO0VBRUEsV0FBQTtFQUNBLFdBQUE7RUFDQSxzQkFBQTtFQUNBLGVBQUE7RUFDQSxTQUFBO0VBQ0EsaUJBQUE7RUFDQSxpQkFBQTtFQUNBLHlCQUFBO0FDSEo7QURLSTtFQUNJLFlBQUE7QUNIUjtBRE1JO0VBQ0ksa0JBQUE7RUFDQSxhQUFBO0VBQ0Esd0JBQUE7QUNKUjtBRE1RO0VBQ0ksY0FBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7QUNKWjtBRE1ZO0VBQ0ksV0FBQTtFQUNBLGVBQUE7RUFDQSxpQkFBQTtBQ0poQjtBRE9ZO0VBQ0ksZ0JBQUE7QUNMaEI7QURXUTtFQUNJLG9CQUFBO0FDVFo7QURjSTtFQUNJLGtCQUFBO0FDWlI7QURjUTtFQUNJLGlCQUFBO0VBQ0EsY0FBQTtBQ1paO0FEZ0JJO0VBSUksa0JBQUE7QUNqQlI7QURjUTtFQUNJLGtCQUFBO0FDWlo7QURrQlE7RUFDSSxtQkFBQTtFQUNBLGdCQUFBO0VBQ0EsY0FBQTtFQUNBLFlBQUE7RUFDQSxpQkFBQTtBQ2hCWjtBRGlCWTtFQUNJLGlCQUFBO0FDZmhCO0FEb0JJO0VBQ0ksdUJBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0VBQ0EseUJBQUE7RUFDQSxpQkFBQTtBQ2xCUjtBRG1CUTtFQUNJLG1CRW5GSTtFRm9GSix5QkFBQTtBQ2pCWjtBRHFCSTtFQUNJLGtCQUFBO0FDbkJSO0FFaERFO0VId0VFO0lBQ0ksVUFBQTtJQUNBLGdCQUFBO0VDcEJOO0FBQ0Y7QUVuRUU7RUg0RkU7SUFDSSxrQ0FBQTtFQ3RCTjtFRHdCTTtJQUNJLGVBQUE7RUN0QlY7O0VEMEJFO0lBQ0ksY0FBQTtFQ3ZCTjtBQUNGO0FFekVFO0VIcUdFO0lBQ0ksZ0JBQUE7SUFDQSxrQkFBQTtJQUVBLFlBQUE7SUFDQSxzQkFBQTtJQUNBLGdCQUFBO0lBQ0EsaUJBQUE7SUFDQSxnQkFBQTtFQzFCTjtFRDZCTTtJQUNJLGVBQUE7RUMzQlY7RUQ4Qk07SUFDSSxXQUFBO0VDNUJWO0VEK0JNO0lBQ0ksYUFBQTtFQzdCVjtFRGdDTTtJQUNJLFlBQUE7RUM5QlY7QUFDRiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvYXJ0aXN0L2FydGlzdC1uYXYvYXJ0aXN0LW5hdi5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgJ3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdtaXhpbnMnO1xuXG4uYXJ0aXN0X19uYXYge1xuICAgIHBhZGRpbmc6IDBlbSAyZW0gMWVtO1xuXG4gICAgaGVpZ2h0OiA0ZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIG1hcmdpbi1sZWZ0OiAtMWVtO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNFNEU0RTQ7XG5cbiAgICAmLmFjdGl2ZSB7XG4gICAgICAgIGhlaWdodDogNzB2aDtcbiAgICB9XG5cbiAgICAmX19tb2JpbGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyZW07XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3RyZXRjaDtcbiAgICAgICAgXG4gICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICBmb250LXNpemU6IDFlbTtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMWVtO1xuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDI0cHg7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgaDIge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLjVlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIFxuICAgICZfX21haW4ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyZW07XG5cbiAgICAgICAgLmFydGlzdF9fbmF2X19idXR0b24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gICAgICAgICAgICBmb250LXNpemU6IDFlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2hpc3Rvcnkge1xuICAgICAgICBoMyB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gICAgICAgIH1cbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMmVtO1xuICAgIH1cblxuICAgICZfX3BsYXlsaXN0IHtcbiAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNEOEQ4RDg7XG4gICAgICAgICAgICBwYWRkaW5nOiA4cHggMWVtO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxZW07XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIGkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICBmb250LXNpemU6IDEuNWVtO1xuICAgICAgICBwYWRkaW5nOiA4cHggMWVtO1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjZTRlNGU0O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHByaW1hcnktY29sb3I7XG4gICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zZWxlY3RfX2l0ZW0ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gICAgfSAgIFxufVxuXG5AaW5jbHVkZSBndC14cyB7XG4gICAgLmFydGlzdF9fbmF2X19jb250ZW50IHtcbiAgICAgICAgd2lkdGg6IDYwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAzMTBweDtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGx0LW1kIHtcblxuICAgIC5hcnRpc3RfX25hdiB7XG4gICAgICAgIGJveC1zaGFkb3c6IDNweCAxNHB4IDE2cHggOHB4ICMwMDA7XG5cbiAgICAgICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgICAgIG1hcmdpbjogMGVtIDAgMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hcnRpc3RfX25hdl9fY29udGVudCB7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cbn1cblxuQGluY2x1ZGUgZ3QtbWQge1xuXG4gICAgLmFydGlzdF9fbmF2IHtcbiAgICAgICAgcGFkZGluZzogMWVtIDFlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuXG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwZW07XG5cblxuICAgICAgICAmX19jb250YWluZXIge1xuICAgICAgICAgICAgbWFyZ2luOiAwZW0gMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fY29udGVudCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX21vYmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB9XG4gICAgXG4gICAgfVxuXG59IiwiLmFydGlzdF9fbmF2IHtcbiAgcGFkZGluZzogMGVtIDJlbSAxZW07XG4gIGhlaWdodDogNGVtO1xuICB3aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBib3R0b206IDA7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBtYXJnaW4tbGVmdDogLTFlbTtcbiAgYm9yZGVyOiAxcHggc29saWQgI0U0RTRFNDtcbn1cbi5hcnRpc3RfX25hdi5hY3RpdmUge1xuICBoZWlnaHQ6IDcwdmg7XG59XG4uYXJ0aXN0X19uYXZfX21vYmlsZSB7XG4gIG1hcmdpbi1ib3R0b206IDJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzdHJldGNoO1xufVxuLmFydGlzdF9fbmF2X19tb2JpbGUgYnV0dG9uIHtcbiAgZm9udC1zaXplOiAxZW07XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBtYXJnaW4tdG9wOiAxZW07XG59XG4uYXJ0aXN0X19uYXZfX21vYmlsZSBidXR0b24gc3BhbiB7XG4gIGZsb2F0OiBsZWZ0O1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmFydGlzdF9fbmF2X19tb2JpbGUgYnV0dG9uIGkge1xuICBtYXJnaW4tbGVmdDogMWVtO1xufVxuLmFydGlzdF9fbmF2X19jb250ZW50IGgyIHtcbiAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG59XG4uYXJ0aXN0X19uYXZfX21haW4ge1xuICBtYXJnaW4tYm90dG9tOiAyZW07XG59XG4uYXJ0aXN0X19uYXZfX21haW4gLmFydGlzdF9fbmF2X19idXR0b24ge1xuICBtYXJnaW4tcmlnaHQ6IDFlbTtcbiAgZm9udC1zaXplOiAxZW07XG59XG4uYXJ0aXN0X19uYXZfX2hpc3Rvcnkge1xuICBtYXJnaW4tYm90dG9tOiAyZW07XG59XG4uYXJ0aXN0X19uYXZfX2hpc3RvcnkgaDMge1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG59XG4uYXJ0aXN0X19uYXZfX3BsYXlsaXN0IGJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6ICNEOEQ4RDg7XG4gIHBhZGRpbmc6IDhweCAxZW07XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBib3JkZXI6IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmFydGlzdF9fbmF2X19wbGF5bGlzdCBidXR0b24gaSB7XG4gIG1hcmdpbi1yaWdodDogNXB4O1xufVxuLmFydGlzdF9fbmF2X19idXR0b24ge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGZvbnQtc2l6ZTogMS41ZW07XG4gIHBhZGRpbmc6IDhweCAxZW07XG4gIGJvcmRlcjogMnB4IHNvbGlkICNlNGU0ZTQ7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLmFydGlzdF9fbmF2X19idXR0b24uYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogI0E5RTVBQztcbiAgYm9yZGVyOiAycHggc29saWQgI0E5RTVBQztcbn1cbi5hcnRpc3RfX25hdiAuc2VsZWN0X19pdGVtIHtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xufVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2MDBweCkge1xuICAuYXJ0aXN0X19uYXZfX2NvbnRlbnQge1xuICAgIHdpZHRoOiA2MCU7XG4gICAgbWF4LXdpZHRoOiAzMTBweDtcbiAgfVxufVxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOTU5cHgpIHtcbiAgLmFydGlzdF9fbmF2IHtcbiAgICBib3gtc2hhZG93OiAzcHggMTRweCAxNnB4IDhweCAjMDAwO1xuICB9XG4gIC5hcnRpc3RfX25hdl9fY29udGFpbmVyIHtcbiAgICBtYXJnaW46IDBlbSAwIDA7XG4gIH1cblxuICAuYXJ0aXN0X19uYXZfX2NvbnRlbnQge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5NjBweCkge1xuICAuYXJ0aXN0X19uYXYge1xuICAgIHBhZGRpbmc6IDFlbSAxZW07XG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgIGhlaWdodDogYXV0bztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgbWFyZ2luLWxlZnQ6IDBlbTtcbiAgfVxuICAuYXJ0aXN0X19uYXZfX2NvbnRhaW5lciB7XG4gICAgbWFyZ2luOiAwZW0gMCAwO1xuICB9XG4gIC5hcnRpc3RfX25hdl9fY29udGVudCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbiAgLmFydGlzdF9fbmF2X19tb2JpbGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLmFydGlzdF9fbmF2LmFjdGl2ZSB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG59IiwiXG4kcHJpbWFyeS1mb250OiAnSGVsdmV0aWNhIE5ldWUnLCBzYW5zLXNlcmlmO1xuJHNlY29uZGFyeS1mb250OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSSc7XG5cbi8vIENvbG9yc1xuXG4kcHJpbWFyeS1jb2xvcjogI0E5RTVBQzsiLCIkdGFibGV0LXdpZHRoOiA3NjhweDtcbiRkZXNrdG9wLXdpZHRoOiAxMDI0cHg7XG5cbkBtaXhpbiB0YWJsZXQge1xuICBAbWVkaWEgKG1pbi13aWR0aDogI3skdGFibGV0LXdpZHRofSkgYW5kIChtYXgtd2lkdGg6ICN7JGRlc2t0b3Atd2lkdGggLSAxcHh9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGRlc2t0b3Age1xuICBAbWVkaWEgKG1pbi13aWR0aDogI3skZGVza3RvcC13aWR0aH0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gbHQtbWQge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NTlweCkge1xuICAgIEBjb250ZW50XG4gIH1cbn1cblxuQG1peGluIGd0LW1kIHtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICBAY29udGVudFxuICB9XG59XG5cbkBtaXhpbiBndC14cyB7XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgQGNvbnRlbnRcbiAgfVxufSJdfQ== */");
/***/ }),
/***/ "./src/app/components/artist/artist-nav/artist-nav.component.ts":
/*!**********************************************************************!*\
!*** ./src/app/components/artist/artist-nav/artist-nav.component.ts ***!
\**********************************************************************/
/*! exports provided: ArtistNavComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ArtistNavComponent", function() { return ArtistNavComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
let ArtistNavComponent = class ArtistNavComponent {
constructor() {
this.updateHistory = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
this.createPlaylist = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
this.historyList = [];
this.selectedHistory = { name: 'Current', value: 'songs' };
}
ngOnInit() {
console.log(this.navState);
this.historyList = [...this.navState.historyList];
this.selectedHistory = this.historyList[0];
}
getRadioValue(data) {
const navState = {
listType: this.navState.listType,
selectedHistory: this.selectedHistory,
historyList: this.navState.historyList
};
this.updateHistory.next(navState);
}
updateArtistTrack(type) {
const navState = {
listType: type,
selectedHistory: this.selectedHistory,
historyList: this.navState.historyList
};
this.updateHistory.next(navState);
}
emitCreatePlaylist() {
this.createPlaylist.next(true);
}
};
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], ArtistNavComponent.prototype, "navState", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"])()
], ArtistNavComponent.prototype, "updateHistory", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"])()
], ArtistNavComponent.prototype, "createPlaylist", void 0);
ArtistNavComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-artist-nav',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./artist-nav.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/components/artist/artist-nav/artist-nav.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./artist-nav.component.scss */ "./src/app/components/artist/artist-nav/artist-nav.component.scss")).default]
})
], ArtistNavComponent);
/***/ }),
/***/ "./src/app/components/artist/track-card/track-card.component.scss":
/*!************************************************************************!*\
!*** ./src/app/components/artist/track-card/track-card.component.scss ***!
\************************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = (".artist__card {\n width: 100%;\n min-width: 200px;\n height: 150px;\n position: relative;\n overflow: hidden;\n border-radius: 5px;\n box-shadow: 5px 5px 4px 4px rgba(0, 0, 0, 0.5);\n color: white;\n transition: 0.3s cubic-bezier(0.25, 0.1, 0.25, 1);\n}\n.artist__card img {\n position: absolute;\n -o-object-fit: cover;\n object-fit: cover;\n width: 100%;\n}\n.artist__card.active {\n height: 200px;\n}\n.artist__card.active .artist__card__info {\n height: 100%;\n}\n.artist__card span {\n margin-top: 2px;\n}\n.artist__card__info {\n height: 60px;\n transition: 0.3s cubic-bezier(0.25, 0.1, 0.25, 1);\n position: absolute;\n width: 100%;\n background: rgba(0, 0, 0, 0.55);\n border-radius: 5px;\n bottom: 0;\n box-sizing: border-box;\n padding: 1rem 0.5rem;\n font-size: 1.2rem;\n}\n.artist__card__info--secondary, .artist__card__info--primary {\n transition: 0.3s cubic-bezier(0.25, 0.1, 0.25, 1);\n margin-left: 1rem;\n}\n.artist__card__info--primary {\n font-size: 1.2em;\n margin-bottom: 0.5rem;\n}\n.artist__card__external {\n color: white;\n cursor: pointer;\n}\n.artist__card button {\n margin-top: 1em;\n background: transparent;\n width: 125px;\n text-align: center;\n font-size: 12px;\n color: #fff;\n display: block;\n border-radius: 25px;\n font-weight: 700;\n margin: 1em auto 0;\n border: 2px solid #A9E5AC;\n padding: 1em;\n cursor: pointer;\n}\n@media (min-width: 768px) and (max-width: 1023px) {\n .artist__card {\n height: 150px;\n width: 200px;\n margin-bottom: 1em;\n }\n .artist__card.active {\n height: 150px;\n }\n}\n@media (min-width: 1024px) {\n .artist__card {\n height: 170px;\n width: 220px;\n margin-bottom: 1em;\n }\n .artist__card__info {\n font-size: 1rem;\n }\n .artist__card.active {\n height: 170px;\n }\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4L0Rlc2t0b3Avb2JzY3VyaWZ5My9zcmMvYXBwL2NvbXBvbmVudHMvYXJ0aXN0L3RyYWNrLWNhcmQvdHJhY2stY2FyZC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9hcnRpc3QvdHJhY2stY2FyZC90cmFjay1jYXJkLmNvbXBvbmVudC5zY3NzIiwiL1VzZXJzL2FsZXgvRGVza3RvcC9vYnNjdXJpZnkzL3NyYy9hcHAvc2Nzcy9fbWl4aW5zLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7RUFDSSxXQUFBO0VBQ0EsZ0JBQUE7RUFDQSxhQUFBO0VBQ0Esa0JBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsOENBQUE7RUFDQSxZQUFBO0VBQ0EsaURBQUE7QUNGSjtBRElJO0VBQ0ksa0JBQUE7RUFDQSxvQkFBQTtLQUFBLGlCQUFBO0VBQ0EsV0FBQTtBQ0ZSO0FES0k7RUFDSSxhQUFBO0FDSFI7QURLUTtFQUNJLFlBQUE7QUNIWjtBRE9JO0VBQ0ksZUFBQTtBQ0xSO0FEUUk7RUFDSSxZQUFBO0VBQ0EsaURBQUE7RUFDQSxrQkFBQTtFQUNBLFdBQUE7RUFDQSwrQkFBQTtFQUNBLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLHNCQUFBO0VBQ0Esb0JBQUE7RUFDQSxpQkFBQTtBQ05SO0FEUVE7RUFDSSxpREFBQTtFQUNBLGlCQUFBO0FDTlo7QURTUTtFQUNJLGdCQUFBO0VBQ0EscUJBQUE7QUNQWjtBRFlJO0VBQ0ksWUFBQTtFQUNBLGVBQUE7QUNWUjtBRGFJO0VBQ0ksZUFBQTtFQUNBLHVCQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLFdBQUE7RUFDQSxjQUFBO0VBQ0EsbUJBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EseUJBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtBQ1hSO0FDM0RFO0VGMkVFO0lBQ0ksYUFBQTtJQUNBLFlBQUE7SUFDQSxrQkFBQTtFQ1pOO0VEYU07SUFDSSxhQUFBO0VDWFY7QUFDRjtBQ2hFRTtFRmlGRTtJQUNJLGFBQUE7SUFDQSxZQUFBO0lBQ0Esa0JBQUE7RUNkTjtFRGdCTTtJQUNJLGVBQUE7RUNkVjtFRGlCTTtJQUNJLGFBQUE7RUNmVjtBQUNGIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9hcnRpc3QvdHJhY2stY2FyZC90cmFjay1jYXJkLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAndmFyaWFibGVzJztcbkBpbXBvcnQgJ21peGlucyc7XG5cbi5hcnRpc3RfX2NhcmQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogMjAwcHg7XG4gICAgaGVpZ2h0OiAxNTBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XG4gICAgYm94LXNoYWRvdzogNXB4IDVweCA0cHggNHB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgdHJhbnNpdGlvbjogLjNzIGN1YmljLWJlemllciguMjUsLjEsLjI1LDEpO1xuXG4gICAgaW1nIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJi5hY3RpdmUge1xuICAgICAgICBoZWlnaHQ6IDIwMHB4O1xuICAgICAgICBcbiAgICAgICAgLmFydGlzdF9fY2FyZF9faW5mbyB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzcGFuIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMnB4O1xuICAgIH1cbiAgICBcbiAgICAmX19pbmZvIHtcbiAgICAgICAgaGVpZ2h0OiA2MHB4O1xuICAgICAgICB0cmFuc2l0aW9uOiAuM3MgY3ViaWMtYmV6aWVyKC4yNSwuMSwuMjUsMSk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsLjU1KTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4O1xuICAgICAgICBib3R0b206IDA7ICBcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgIFxuICAgICAgICBwYWRkaW5nOiAxcmVtIDAuNXJlbTtcbiAgICAgICAgZm9udC1zaXplOiAxLjJyZW07XG5cbiAgICAgICAgJi0tc2Vjb25kYXJ5LCAmLS1wcmltYXJ5IHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IC4zcyBjdWJpYy1iZXppZXIoLjI1LC4xLC4yNSwxKTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcHJpbWFyeSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuMmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19leHRlcm5hbCB7XG4gICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIGJ1dHRvbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHdpZHRoOiAxMjVweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgbWFyZ2luOiAxZW0gYXV0byAwO1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgcGFkZGluZzogMWVtO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxufVxuXG5AaW5jbHVkZSB0YWJsZXQge1xuICAgIC5hcnRpc3RfX2NhcmQge1xuICAgICAgICBoZWlnaHQ6IDE1MHB4O1xuICAgICAgICB3aWR0aDogMjAwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgaGVpZ2h0OiAxNTBweDtcbiAgICAgICAgfVxuXG4gICAgfVxufVxuXG5AaW5jbHVkZSBkZXNrdG9wIHtcbiAgICAuYXJ0aXN0X19jYXJkIHtcbiAgICAgICAgaGVpZ2h0OiAxNzBweDtcbiAgICAgICAgd2lkdGg6IDIyMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxZW07XG5cbiAgICAgICAgJl9faW5mbyB7XG4gICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDE3MHB4O1xuICAgICAgICB9XG4gICAgfVxuXG59IiwiLmFydGlzdF9fY2FyZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDIwMHB4O1xuICBoZWlnaHQ6IDE1MHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm94LXNoYWRvdzogNXB4IDVweCA0cHggNHB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgY29sb3I6IHdoaXRlO1xuICB0cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjEsIDAuMjUsIDEpO1xufVxuLmFydGlzdF9fY2FyZCBpbWcge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG9iamVjdC1maXQ6IGNvdmVyO1xuICB3aWR0aDogMTAwJTtcbn1cbi5hcnRpc3RfX2NhcmQuYWN0aXZlIHtcbiAgaGVpZ2h0OiAyMDBweDtcbn1cbi5hcnRpc3RfX2NhcmQuYWN0aXZlIC5hcnRpc3RfX2NhcmRfX2luZm8ge1xuICBoZWlnaHQ6IDEwMCU7XG59XG4uYXJ0aXN0X19jYXJkIHNwYW4ge1xuICBtYXJnaW4tdG9wOiAycHg7XG59XG4uYXJ0aXN0X19jYXJkX19pbmZvIHtcbiAgaGVpZ2h0OiA2MHB4O1xuICB0cmFuc2l0aW9uOiAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjEsIDAuMjUsIDEpO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNTUpO1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJvdHRvbTogMDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMXJlbSAwLjVyZW07XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xufVxuLmFydGlzdF9fY2FyZF9faW5mby0tc2Vjb25kYXJ5LCAuYXJ0aXN0X19jYXJkX19pbmZvLS1wcmltYXJ5IHtcbiAgdHJhbnNpdGlvbjogMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC4xLCAwLjI1LCAxKTtcbiAgbWFyZ2luLWxlZnQ6IDFyZW07XG59XG4uYXJ0aXN0X19jYXJkX19pbmZvLS1wcmltYXJ5IHtcbiAgZm9udC1zaXplOiAxLjJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xufVxuLmFydGlzdF9fY2FyZF9fZXh0ZXJuYWwge1xuICBjb2xvcjogd2hpdGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5hcnRpc3RfX2NhcmQgYnV0dG9uIHtcbiAgbWFyZ2luLXRvcDogMWVtO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgd2lkdGg6IDEyNXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6ICNmZmY7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXItcmFkaXVzOiAyNXB4O1xuICBmb250LXdlaWdodDogNzAwO1xuICBtYXJnaW46IDFlbSBhdXRvIDA7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNBOUU1QUM7XG4gIHBhZGRpbmc6IDFlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiAxMDIzcHgpIHtcbiAgLmFydGlzdF9fY2FyZCB7XG4gICAgaGVpZ2h0OiAxNTBweDtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICB9XG4gIC5hcnRpc3RfX2NhcmQuYWN0aXZlIHtcbiAgICBoZWlnaHQ6IDE1MHB4O1xuICB9XG59XG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5hcnRpc3RfX2NhcmQge1xuICAgIGhlaWdodDogMTcwcHg7XG4gICAgd2lkdGg6IDIyMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgfVxuICAuYXJ0aXN0X19jYXJkX19pbmZvIHtcbiAgICBmb250LXNpemU6IDFyZW07XG4gIH1cbiAgLmFydGlzdF9fY2FyZC5hY3RpdmUge1xuICAgIGhlaWdodDogMTcwcHg7XG4gIH1cbn0iLCIkdGFibGV0LXdpZHRoOiA3NjhweDtcbiRkZXNrdG9wLXdpZHRoOiAxMDI0cHg7XG5cbkBtaXhpbiB0YWJsZXQge1xuICBAbWVkaWEgKG1pbi13aWR0aDogI3skdGFibGV0LXdpZHRofSkgYW5kIChtYXgtd2lkdGg6ICN7JGRlc2t0b3Atd2lkdGggLSAxcHh9KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGRlc2t0b3Age1xuICBAbWVkaWEgKG1pbi13aWR0aDogI3skZGVza3RvcC13aWR0aH0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gbHQtbWQge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA5NTlweCkge1xuICAgIEBjb250ZW50XG4gIH1cbn1cblxuQG1peGluIGd0LW1kIHtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTYwcHgpIHtcbiAgICBAY29udGVudFxuICB9XG59XG5cbkBtaXhpbiBndC14cyB7XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDYwMHB4KSB7XG4gICAgQGNvbnRlbnRcbiAgfVxufSJdfQ== */");
/***/ }),
/***/ "./src/app/components/artist/track-card/track-card.component.ts":
/*!**********************************************************************!*\
!*** ./src/app/components/artist/track-card/track-card.component.ts ***!
\**********************************************************************/
/*! exports provided: TrackCardComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TrackCardComponent", function() { return TrackCardComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var src_app_services_browserCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! src/app/services/browserCheck */ "./src/app/services/browserCheck.ts");
/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/platform-browser */ "./node_modules/@angular/platform-browser/fesm2015/platform-browser.js");
let TrackCardComponent = class TrackCardComponent {
constructor(browserCheck, sanitizer) {
this.browserCheck = browserCheck;
this.sanitizer = sanitizer;
this.activeView = false;
}
onClick(btn) {
if (this.browserCheck.isDevice) {
this.activeView = !this.activeView;
}
}
onMouseEnter(btn) {
if (this.browserCheck.checkIfBrowser && !this.browserCheck.isDevice) {
this.activeView = true;
}
}
onMouseLeave(btn) {
if (this.browserCheck.checkIfBrowser && !this.browserCheck.isDevice) {
this.activeView = false;
}
}
ngOnInit() {
}
};
TrackCardComponent.ctorParameters = () => [
{ type: src_app_services_browserCheck__WEBPACK_IMPORTED_MODULE_2__["default"] },
{ type: _angular_platform_browser__WEBPACK_IMPORTED_MODULE_3__["DomSanitizer"] }
];
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], TrackCardComponent.prototype, "track", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], TrackCardComponent.prototype, "i", void 0);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["HostListener"])('touchend', ['$event.target'])
], TrackCardComponent.prototype, "onClick", null);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["HostListener"])('mouseenter', ['$event.target'])
], TrackCardComponent.prototype, "onMouseEnter", null);
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["HostListener"])('mouseleave', ['$event.target'])
], TrackCardComponent.prototype, "onMouseLeave", null);
TrackCardComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-track-card',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./track-card.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/components/artist/track-card/track-card.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./track-card.component.scss */ "./src/app/components/artist/track-card/track-card.component.scss")).default]
})
], TrackCardComponent);
/***/ }),
/***/ "./src/app/components/footer/footer.component.scss":
/*!*********************************************************!*\
!*** ./src/app/components/footer/footer.component.scss ***!
\*********************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("footer {\n min-height: 100px;\n padding: 3em;\n background-color: rgba(0, 0, 0, 0.8);\n color: white;\n bottom: 0;\n}\nfooter a {\n color: white;\n text-decoration: none;\n margin-bottom: 1em;\n}\nfooter a:hover, footer a:focus {\n text-decoration: underline;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4L0Rlc2t0b3Avb2JzY3VyaWZ5My9zcmMvYXBwL2NvbXBvbmVudHMvZm9vdGVyL2Zvb3Rlci5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9mb290ZXIvZm9vdGVyLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksaUJBQUE7RUFDQSxZQUFBO0VBQ0Esb0NBQUE7RUFDQSxZQUFBO0VBQ0EsU0FBQTtBQ0NKO0FEQ0k7RUFDSSxZQUFBO0VBQ0EscUJBQUE7RUFDQSxrQkFBQTtBQ0NSO0FEQ1E7RUFDSSwwQkFBQTtBQ0NaIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9mb290ZXIvZm9vdGVyLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiZm9vdGVyIHtcbiAgICBtaW4taGVpZ2h0OiAxMDBweDtcbiAgICBwYWRkaW5nOiAzZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLDAsMCwwLjgpO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBib3R0b206IDA7XG5cbiAgICBhIHtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFlbTtcblxuICAgICAgICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICB9XG4gICAgfVxufSIsImZvb3RlciB7XG4gIG1pbi1oZWlnaHQ6IDEwMHB4O1xuICBwYWRkaW5nOiAzZW07XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC44KTtcbiAgY29sb3I6IHdoaXRlO1xuICBib3R0b206IDA7XG59XG5mb290ZXIgYSB7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG59XG5mb290ZXIgYTpob3ZlciwgZm9vdGVyIGE6Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn0iXX0= */");
/***/ }),
/***/ "./src/app/components/footer/footer.component.ts":
/*!*******************************************************!*\
!*** ./src/app/components/footer/footer.component.ts ***!
\*******************************************************/
/*! exports provided: FooterComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FooterComponent", function() { return FooterComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm2015/router.js");
let FooterComponent = class FooterComponent {
constructor(router) {
this.router = router;
}
ngOnInit() {
}
};
FooterComponent.ctorParameters = () => [
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_2__["Router"] }
];
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Input"])()
], FooterComponent.prototype, "login", void 0);
FooterComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-footer',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./footer.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/components/footer/footer.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./footer.component.scss */ "./src/app/components/footer/footer.component.scss")).default]
})
], FooterComponent);
/***/ }),
/***/ "./src/app/components/home/home.component.scss":
/*!*****************************************************!*\
!*** ./src/app/components/home/home.component.scss ***!
\*****************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = (".app {\n transition: 0.3s cubic-bezier(0.25, 0.1, 0.25, 1);\n padding: 0 1em;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4L0Rlc2t0b3Avb2JzY3VyaWZ5My9zcmMvYXBwL2NvbXBvbmVudHMvaG9tZS9ob21lLmNvbXBvbmVudC5zY3NzIiwic3JjL2FwcC9jb21wb25lbnRzL2hvbWUvaG9tZS5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJLGlEQUFBO0VBQ0EsY0FBQTtBQ0NKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9ob21lL2hvbWUuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuYXBwIHtcbiAgICB0cmFuc2l0aW9uOiAuM3MgY3ViaWMtYmV6aWVyKC4yNSwuMSwuMjUsMSk7XG4gICAgcGFkZGluZzogMCAxZW07XG59IiwiLmFwcCB7XG4gIHRyYW5zaXRpb246IDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuMSwgMC4yNSwgMSk7XG4gIHBhZGRpbmc6IDAgMWVtO1xufSJdfQ== */");
/***/ }),
/***/ "./src/app/components/home/home.component.ts":
/*!***************************************************!*\
!*** ./src/app/components/home/home.component.ts ***!
\***************************************************/
/*! exports provided: HomeComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HomeComponent", function() { return HomeComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _services_spotifyAuth__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../services/spotifyAuth */ "./src/app/services/spotifyAuth/index.ts");
/* harmony import */ var ngx_cookie_service__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ngx-cookie-service */ "./node_modules/ngx-cookie-service/fesm2015/ngx-cookie-service.js");
/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */ var _services_infoService__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../services/infoService */ "./src/app/services/infoService.ts");
/* harmony import */ var src_app_services_obscurifyService__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! src/app/services/obscurifyService */ "./src/app/services/obscurifyService.ts");
let HomeComponent = class HomeComponent {
constructor(tokenSvc, cookieService, router, infoSvc, authService, obscurifyService) {
this.tokenSvc = tokenSvc;
this.cookieService = cookieService;
this.router = router;
this.infoSvc = infoSvc;
this.authService = authService;
this.obscurifyService = obscurifyService;
this.stream = null;
this.bgColor = '#A9E5AC';
}
setColor(val) {
switch (val) {
case 1:
this.bgColor = '#A9E5AC';
break;
case 2:
this.bgColor = '#FFA69E';
break;
case 3:
this.bgColor = 'rgba(0,0,0,0.9)';
break;
case 4:
this.bgColor = '#FFF';
break;
case 5:
this.bgColor = '#759398';
break;
}
}
ngOnInit() {
const cookie = this.cookieService.get('spotifyResponse');
if (cookie || this.tokenSvc.oAuthToken.spotifyToken) {
this.tokenSvc.setAuthTokenCache(cookie);
this.authService.authorized();
}
else {
this.tokenSvc.clearToken();
this.router.navigate(['login']);
}
const stream = this.tokenSvc.authTokens.pipe((x) => {
return this.infoSvc.fetchUserInfo();
});
stream.subscribe((user) => {
});
this.infoSvc.getUserStream().subscribe((user) => {
if (user.userInfo && user.allTimeObscurifyScore) {
this.obscurifyService.getObscurifyData(user.userInfo.country, user.allTimeObscurifyScore, user.recentObscurifyScore).subscribe((data) => {
console.log('obscurify data', data);
});
}
});
}
};
HomeComponent.ctorParameters = () => [
{ type: _services_spotifyAuth__WEBPACK_IMPORTED_MODULE_2__["TokenService"] },
{ type: ngx_cookie_service__WEBPACK_IMPORTED_MODULE_3__["CookieService"] },
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_4__["Router"] },
{ type: _services_infoService__WEBPACK_IMPORTED_MODULE_5__["InfoService"] },
{ type: _services_spotifyAuth__WEBPACK_IMPORTED_MODULE_2__["AuthService"] },
{ type: src_app_services_obscurifyService__WEBPACK_IMPORTED_MODULE_6__["default"] }
];
HomeComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-home',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./home.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/components/home/home.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./home.component.scss */ "./src/app/components/home/home.component.scss")).default]
})
], HomeComponent);
/***/ }),
/***/ "./src/app/components/intro/intro.component.scss":
/*!*******************************************************!*\
!*** ./src/app/components/intro/intro.component.scss ***!
\*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("nav {\n max-width: 1024px;\n padding: 1em 1em;\n margin: 0 auto;\n color: rgba(0, 0, 0, 0.5);\n}\nnav i {\n font-size: 2em;\n cursor: pointer;\n}\nnav button {\n background: none;\n border: none;\n display: flex;\n flex-direction: row;\n align-items: center;\n font-size: 1em;\n font-weight: bold;\n}\nnav button i {\n margin-left: 5px;\n}\n.welcome {\n width: 100%;\n font-size: 2em;\n padding-top: 140px;\n text-align: center;\n}\n.welcome span {\n color: #A9E5AC;\n}\n.profile {\n width: 100%;\n padding: 140px 0;\n text-align: center;\n}\n.profile__image {\n width: 100px;\n height: 100px;\n margin: 0 auto 2em;\n background: #e5e5e5;\n border-radius: 50%;\n}\n.profile__image img {\n width: 100%;\n height: auto;\n border-radius: 50%;\n}\n.profile__header {\n max-width: 600px;\n text-align: center;\n font-size: 2em;\n}\n@media (min-width: 1024px) {\n .profile__image {\n width: 200px;\n height: 200px;\n }\n .profile__header {\n font-size: 3em;\n }\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4L0Rlc2t0b3Avb2JzY3VyaWZ5My9zcmMvYXBwL2NvbXBvbmVudHMvaW50cm8vaW50cm8uY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvaW50cm8vaW50cm8uY29tcG9uZW50LnNjc3MiLCIvVXNlcnMvYWxleC9EZXNrdG9wL29ic2N1cmlmeTMvc3JjL2FwcC9zY3NzL192YXJpYWJsZXMuc2NzcyIsIi9Vc2Vycy9hbGV4L0Rlc2t0b3Avb2JzY3VyaWZ5My9zcmMvYXBwL3Njc3MvX21peGlucy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBO0VBQ0ksaUJBQUE7RUFDQSxnQkFBQTtFQUNBLGNBQUE7RUFFQSx5QkFBQTtBQ0hKO0FES0k7RUFDSSxjQUFBO0VBQ0EsZUFBQTtBQ0hSO0FETUk7RUFDSSxnQkFBQTtFQUNBLFlBQUE7RUFDQSxhQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLGNBQUE7RUFDQSxpQkFBQTtBQ0pSO0FES1E7RUFDSSxnQkFBQTtBQ0haO0FEUUE7RUFDSSxXQUFBO0VBQ0EsY0FBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7QUNMSjtBRE1JO0VBQ0ksY0U3QlE7QUR5QmhCO0FEUUE7RUFDSSxXQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtBQ0xKO0FET0k7RUFDSSxZQUFBO0VBQ0EsYUFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTtBQ0xSO0FET1E7RUFDSSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGtCQUFBO0FDTFo7QURTSTtFQUNJLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxjQUFBO0FDUFI7QUU1Q0U7RUgyRE07SUFDSSxZQUFBO0lBQ0EsYUFBQTtFQ1hWO0VEY007SUFDSSxjQUFBO0VDWlY7QUFDRiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvaW50cm8vaW50cm8uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0ICd2YXJpYWJsZXMnO1xuQGltcG9ydCAnbWl4aW5zJztcblxubmF2IHtcbiAgICBtYXgtd2lkdGg6IDEwMjRweDtcbiAgICBwYWRkaW5nOiAxZW0gMWVtO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuXG4gICAgY29sb3I6IHJnYmEoMCwwLDAsMC41KTtcblxuICAgIGkge1xuICAgICAgICBmb250LXNpemU6IDJlbTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIGJ1dHRvbiB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAxZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi53ZWxjb21lIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBwYWRkaW5nLXRvcDogMTQwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHNwYW4ge1xuICAgICAgICBjb2xvcjogJHByaW1hcnktY29sb3I7XG4gICAgfVxufVxuXG4ucHJvZmlsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMTQwcHggMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAmX19pbWFnZSB7XG4gICAgICAgIHdpZHRoOiAxMDBweDtcbiAgICAgICAgaGVpZ2h0OiAxMDBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG8gMmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZTVlNWU1O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faGVhZGVyIHtcbiAgICAgICAgbWF4LXdpZHRoOiA2MDBweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDJlbTtcbiAgICB9XG59XG5cblxuQGluY2x1ZGUgZGVza3RvcCB7XG5cbiAgICAucHJvZmlsZSB7XG4gICAgICAgICZfX2ltYWdlIHtcbiAgICAgICAgICAgIHdpZHRoOiAyMDBweDtcbiAgICAgICAgICAgIGhlaWdodDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmX19oZWFkZXIge1xuICAgICAgICAgICAgZm9udC1zaXplOiAzZW07XG4gICAgICAgIH1cbiAgICB9XG59IiwibmF2IHtcbiAgbWF4LXdpZHRoOiAxMDI0cHg7XG4gIHBhZGRpbmc6IDFlbSAxZW07XG4gIG1hcmdpbjogMCBhdXRvO1xuICBjb2xvcjogcmdiYSgwLCAwLCAwLCAwLjUpO1xufVxubmF2IGkge1xuICBmb250LXNpemU6IDJlbTtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxubmF2IGJ1dHRvbiB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZm9udC1zaXplOiAxZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxubmF2IGJ1dHRvbiBpIHtcbiAgbWFyZ2luLWxlZnQ6IDVweDtcbn1cblxuLndlbGNvbWUge1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAyZW07XG4gIHBhZGRpbmctdG9wOiAxNDBweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuLndlbGNvbWUgc3BhbiB7XG4gIGNvbG9yOiAjQTlFNUFDO1xufVxuXG4ucHJvZmlsZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxNDBweCAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4ucHJvZmlsZV9faW1hZ2Uge1xuICB3aWR0aDogMTAwcHg7XG4gIGhlaWdodDogMTAwcHg7XG4gIG1hcmdpbjogMCBhdXRvIDJlbTtcbiAgYmFja2dyb3VuZDogI2U1ZTVlNTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuLnByb2ZpbGVfX2ltYWdlIGltZyB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cbi5wcm9maWxlX19oZWFkZXIge1xuICBtYXgtd2lkdGg6IDYwMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMmVtO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5wcm9maWxlX19pbWFnZSB7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIGhlaWdodDogMjAwcHg7XG4gIH1cbiAgLnByb2ZpbGVfX2hlYWRlciB7XG4gICAgZm9udC1zaXplOiAzZW07XG4gIH1cbn0iLCJcbiRwcmltYXJ5LWZvbnQ6ICdIZWx2ZXRpY2EgTmV1ZScsIHNhbnMtc2VyaWY7XG4kc2Vjb25kYXJ5LWZvbnQ6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJztcblxuLy8gQ29sb3JzXG5cbiRwcmltYXJ5LWNvbG9yOiAjQTlFNUFDOyIsIiR0YWJsZXQtd2lkdGg6IDc2OHB4O1xuJGRlc2t0b3Atd2lkdGg6IDEwMjRweDtcblxuQG1peGluIHRhYmxldCB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiAjeyR0YWJsZXQtd2lkdGh9KSBhbmQgKG1heC13aWR0aDogI3skZGVza3RvcC13aWR0aCAtIDFweH0pIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gZGVza3RvcCB7XG4gIEBtZWRpYSAobWluLXdpZHRoOiAjeyRkZXNrdG9wLXdpZHRofSkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBsdC1tZCB7XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDk1OXB4KSB7XG4gICAgQGNvbnRlbnRcbiAgfVxufVxuXG5AbWl4aW4gZ3QtbWQge1xuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5NjBweCkge1xuICAgIEBjb250ZW50XG4gIH1cbn1cblxuQG1peGluIGd0LXhzIHtcbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjAwcHgpIHtcbiAgICBAY29udGVudFxuICB9XG59Il19 */");
/***/ }),
/***/ "./src/app/components/intro/intro.component.ts":
/*!*****************************************************!*\
!*** ./src/app/components/intro/intro.component.ts ***!
\*****************************************************/
/*! exports provided: IntroComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IntroComponent", function() { return IntroComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var src_app_services_intersectionObserver__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! src/app/services/intersectionObserver */ "./src/app/services/intersectionObserver.ts");
/* harmony import */ var src_app_services_infoService__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! src/app/services/infoService */ "./src/app/services/infoService.ts");
let IntroComponent = class IntroComponent {
constructor(element, intersectionObserverService, infoSvc) {
this.element = element;
this.intersectionObserverService = intersectionObserverService;
this.infoSvc = infoSvc;
this.appColor = new _angular_core__WEBPACK_IMPORTED_MODULE_1__["EventEmitter"]();
}
updateAppBackgroundColor() {
this.appColor.emit(4);
}
ngOnInit() {
this.infoSvc.getUserStream().subscribe((user) => {
console.log('user', user);
if (user.userInfo) {
this.userImage = user.userInfo.images[0].url;
this.userName = user.userInfo.display_name;
}
});
}
ngAfterViewInit() {
this.intersectionObserverService.init(this.element.nativeElement, {
threshold: 0.70
});
this.intersectionObserverSubs = this.intersectionObserverService
.getSubject()
.subscribe(el => {
if (el.isIntersecting) {
this.updateAppBackgroundColor();
}
});
}
};
IntroComponent.ctorParameters = () => [
{ type: _angular_core__WEBPACK_IMPORTED_MODULE_1__["ElementRef"] },
{ type: src_app_services_intersectionObserver__WEBPACK_IMPORTED_MODULE_2__["default"] },
{ type: src_app_services_infoService__WEBPACK_IMPORTED_MODULE_3__["InfoService"] }
];
tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Output"])()
], IntroComponent.prototype, "appColor", void 0);
IntroComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-intro',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./intro.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/components/intro/intro.component.html")).default,
providers: [src_app_services_intersectionObserver__WEBPACK_IMPORTED_MODULE_2__["default"]],
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./intro.component.scss */ "./src/app/components/intro/intro.component.scss")).default]
})
], IntroComponent);
/***/ }),
/***/ "./src/app/components/login/login.component.scss":
/*!*******************************************************!*\
!*** ./src/app/components/login/login.component.scss ***!
\*******************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = ("main {\n background: linear-gradient(rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.8)), url('login-background.jpg');\n background-size: cover;\n background-position: center;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n color: white;\n}\nmain .login__container {\n width: 320px;\n}\nmain h1 {\n color: #fff;\n font-size: 48px;\n color: #FFFFFF;\n letter-spacing: 1.92px;\n text-align: center;\n top: 118px;\n font-weight: bold;\n margin-bottom: 1rem;\n}\nmain h1 span {\n color: #65D26E;\n font-size: inherit;\n letter-spacing: 1.92px;\n text-align: center;\n font-weight: bold;\n}\nmain p {\n margin-bottom: 3rem;\n}\nmain .login {\n width: 258px;\n height: 70px;\n margin: 0 auto;\n border-radius: 2px;\n background: #65d26e;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n}\nmain .login:hover .login__btn, main .login :focus .login__btn {\n opacity: 0.7;\n}\nmain .login__btn {\n font-size: 16px;\n color: #FFFFFF;\n letter-spacing: 1.49px;\n text-align: center;\n text-decoration: none;\n font-weight: bold;\n background: transparent;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4L0Rlc2t0b3Avb2JzY3VyaWZ5My9zcmMvYXBwL2NvbXBvbmVudHMvbG9naW4vbG9naW4uY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2NvbXBvbmVudHMvbG9naW4vbG9naW4uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxnR0FBQTtFQUNBLHNCQUFBO0VBQ0EsMkJBQUE7RUFDQSxXQUFBO0VBQ0EsWUFBQTtFQUNBLGFBQUE7RUFDQSxzQkFBQTtFQUNBLHVCQUFBO0VBQ0EsbUJBQUE7RUFFQSxZQUFBO0FDQUo7QURFSTtFQUNJLFlBQUE7QUNBUjtBREdJO0VBQ0ksV0FBQTtFQUNBLGVBQUE7RUFDQSxjQUFBO0VBQ0Esc0JBQUE7RUFDQSxrQkFBQTtFQUNBLFVBQUE7RUFDQSxpQkFBQTtFQUNBLG1CQUFBO0FDRFI7QURFUTtFQUNFLGNBQUE7RUFDQSxrQkFBQTtFQUNBLHNCQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtBQ0FWO0FESU07RUFDSSxtQkFBQTtBQ0ZWO0FES0k7RUFDSSxZQUFBO0VBQ0EsWUFBQTtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0EsYUFBQTtFQUNBLHVCQUFBO0VBQ0EsbUJBQUE7RUFDQSxlQUFBO0FDSFI7QURNWTtFQUNJLFlBQUE7QUNKaEI7QURTSTtFQUNJLGVBQUE7RUFDQSxjQUFBO0VBQ0Esc0JBQUE7RUFDQSxrQkFBQTtFQUNBLHFCQUFBO0VBQ0EsaUJBQUE7RUFDQSx1QkFBQTtBQ1BSIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9sb2dpbi9sb2dpbi5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIm1haW4ge1xuICAgIGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHJnYmEoMCwgMCwgMCwgMC44KSwgcmdiYSgwLCAwLCAwLCAwLjgpKSwgdXJsKC4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvYXBwL2xvZ2luLWJhY2tncm91bmQuanBnKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBjb2xvcjogd2hpdGU7XG5cbiAgICAubG9naW5fX2NvbnRhaW5lciB7XG4gICAgICAgIHdpZHRoOiAzMjBweDtcbiAgICB9XG5cbiAgICBoMSB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmb250LXNpemU6IDQ4cHg7XG4gICAgICAgIGNvbG9yOiAjRkZGRkZGO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMS45MnB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRvcDogMTE4cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBjb2xvcjogIzY1RDI2RTtcbiAgICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDEuOTJweDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHAge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07XG4gICAgICB9XG5cbiAgICAubG9naW4ge1xuICAgICAgICB3aWR0aDogMjU4cHg7XG4gICAgICAgIGhlaWdodDogNzBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICAgICAgYmFja2dyb3VuZDogIzY1ZDI2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgXG4gICAgICAgICY6aG92ZXIsOmZvY3VzIHtcbiAgICAgICAgICAgIC5sb2dpbl9fYnRuIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAuNztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5sb2dpbl9fYnRuIHtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBjb2xvcjogI0ZGRkZGRjtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDEuNDlweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cbiIsIm1haW4ge1xuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQocmdiYSgwLCAwLCAwLCAwLjgpLCByZ2JhKDAsIDAsIDAsIDAuOCkpLCB1cmwoLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy9hcHAvbG9naW4tYmFja2dyb3VuZC5qcGcpO1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjb2xvcjogd2hpdGU7XG59XG5tYWluIC5sb2dpbl9fY29udGFpbmVyIHtcbiAgd2lkdGg6IDMyMHB4O1xufVxubWFpbiBoMSB7XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IDQ4cHg7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICBsZXR0ZXItc3BhY2luZzogMS45MnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRvcDogMTE4cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xufVxubWFpbiBoMSBzcGFuIHtcbiAgY29sb3I6ICM2NUQyNkU7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGV0dGVyLXNwYWNpbmc6IDEuOTJweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbm1haW4gcCB7XG4gIG1hcmdpbi1ib3R0b206IDNyZW07XG59XG5tYWluIC5sb2dpbiB7XG4gIHdpZHRoOiAyNThweDtcbiAgaGVpZ2h0OiA3MHB4O1xuICBtYXJnaW46IDAgYXV0bztcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBiYWNrZ3JvdW5kOiAjNjVkMjZlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxubWFpbiAubG9naW46aG92ZXIgLmxvZ2luX19idG4sIG1haW4gLmxvZ2luIDpmb2N1cyAubG9naW5fX2J0biB7XG4gIG9wYWNpdHk6IDAuNztcbn1cbm1haW4gLmxvZ2luX19idG4ge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGNvbG9yOiAjRkZGRkZGO1xuICBsZXR0ZXItc3BhY2luZzogMS40OXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xufSJdfQ== */");
/***/ }),
/***/ "./src/app/components/login/login.component.ts":
/*!*****************************************************!*\
!*** ./src/app/components/login/login.component.ts ***!
\*****************************************************/
/*! exports provided: LoginComponent */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LoginComponent", function() { return LoginComponent; });
/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ "./node_modules/tslib/tslib.es6.js");
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm2015/core.js");
/* harmony import */ var _services_spotifyAuth_index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../services/spotifyAuth/index */ "./src/app/services/spotifyAuth/index.ts");
/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/router */ "./node_modules/@angular/router/fesm2015/router.js");
/* harmony import */ var ngx_cookie_service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ngx-cookie-service */ "./node_modules/ngx-cookie-service/fesm2015/ngx-cookie-service.js");
let LoginComponent = class LoginComponent {
constructor(authService, tokenSvc, router, cookieService) {
this.authService = authService;
this.tokenSvc = tokenSvc;
this.router = router;
this.cookieService = cookieService;
}
ngOnInit() {
if (!!this.tokenSvc.oAuthToken.spotifyToken) {
this.router.navigate(['home']);
}
}
login() {
const cookie = this.cookieService.get('spotifyResponse');
if (cookie) {
// this.tokenSvc.setAuthTokenCache(cookie);
this.authService.authorized();
}
else {
this.authService.authorize();
}
}
};
LoginComponent.ctorParameters = () => [
{ type: _services_spotifyAuth_index__WEBPACK_IMPORTED_MODULE_2__["AuthService"] },
{ type: _services_spotifyAuth_index__WEBPACK_IMPORTED_MODULE_2__["TokenService"] },
{ type: _angular_router__WEBPACK_IMPORTED_MODULE_3__["Router"] },
{ type: ngx_cookie_service__WEBPACK_IMPORTED_MODULE_4__["CookieService"] }
];
LoginComponent = tslib__WEBPACK_IMPORTED_MODULE_0__["__decorate"]([
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["Component"])({
selector: 'app-login',
template: tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! raw-loader!./login.component.html */ "./node_modules/raw-loader/dist/cjs.js!./src/app/components/login/login.component.html")).default,
styles: [tslib__WEBPACK_IMPORTED_MODULE_0__["__importDefault"](__webpack_require__(/*! ./login.component.scss */ "./src/app/components/login/login.component.scss")).default]
})
], LoginComponent);
/***/ }),
/***/ "./src/app/components/moods-graph/moods-graph.component.scss":
/*!*******************************************************************!*\
!*** ./src/app/components/moods-graph/moods-graph.component.scss ***!
\*******************************************************************/
/*! exports provided: default */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony default export */ __webpack_exports__["default"] = (".header__title {\n font-size: 3em;\n border-bottom: 8px black solid;\n width: -webkit-fit-content;\n width: -moz-fit-content;\n width: fit-content;\n padding-bottom: 0.2em;\n margin: 0;\n}\n\n.moods-graph {\n max-width: 620px;\n margin: 0 auto;\n display: flex;\n flex-direction: column;\n padding: 5rem 0;\n opacity: 0;\n transform: translateY(100px);\n transition: 0.3s cubic-bezier(0.25, 0.1, 0.25, 1);\n align-items: flex-start;\n}\n\n.moods-graph.show {\n opacity: 1;\n transform: translateY(0px);\n}\n\n.moods-graph__container {\n margin-top: 1em;\n}\n\n.moods-graph__container--right {\n align-self: flex-end;\n}\n\n.moods-graph__container--right h3 {\n text-align: right;\n}\n\n.moods-graph__content {\n margin-top: 2em;\n}\n\n.moods-graph__content h3 {\n font-size: 36px;\n}\n\n.moods-graph__card {\n padding: 1em;\n background-color: white;\n margin-top: 1em;\n display: flex;\n border-radius: 5px;\n}\n\n.moods-graph__card--reverse {\n flex-direction: row-reverse;\n}\n\n.moods-graph__card__header {\n font-size: 24px;\n margin-bottom: 0.5em;\n}\n\n.moods-graph__card__paragraph {\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\";\n font-weight: normal;\n}\n\n.moods-graph__card__container {\n width: 50%;\n}\n\n.equalizer-container {\n height: 100px;\n display: flex;\n align-items: center;\n position: relative;\n justify-content: center;\n}\n\n.equalizer-container .bar {\n width: 8px;\n min-height: 10px;\n margin-right: 2px;\n transition: all 0.5s cubic-bezier(0.645, 0.045, 0.355, 1);\n will-change: transform;\n transform: scaleY(1);\n position: relative;\n}\n\n.equalizer-container.level-one .bar:nth-child(0) {\n background-color: #81D6E3;\n -webkit-animation: grow-one0 2134ms alternate infinite;\n animation: grow-one0 2134ms alternate infinite;\n}\n\n@-webkit-keyframes grow-one0 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n@keyframes grow-one0 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n.equalizer-container.level-one .bar:nth-child(1) {\n background-color: #81D6E3;\n -webkit-animation: grow-one1 2198ms alternate infinite;\n animation: grow-one1 2198ms alternate infinite;\n}\n\n@-webkit-keyframes grow-one1 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n@keyframes grow-one1 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n.equalizer-container.level-one .bar:nth-child(2) {\n background-color: #81D6E3;\n -webkit-animation: grow-one2 1651ms alternate infinite;\n animation: grow-one2 1651ms alternate infinite;\n}\n\n@-webkit-keyframes grow-one2 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n@keyframes grow-one2 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n.equalizer-container.level-one .bar:nth-child(3) {\n background-color: #81D6E3;\n -webkit-animation: grow-one3 1676ms alternate infinite;\n animation: grow-one3 1676ms alternate infinite;\n}\n\n@-webkit-keyframes grow-one3 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n@keyframes grow-one3 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n.equalizer-container.level-one .bar:nth-child(4) {\n background-color: #81D6E3;\n -webkit-animation: grow-one4 1690ms alternate infinite;\n animation: grow-one4 1690ms alternate infinite;\n}\n\n@-webkit-keyframes grow-one4 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n@keyframes grow-one4 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n.equalizer-container.level-one .bar:nth-child(5) {\n background-color: #81D6E3;\n -webkit-animation: grow-one5 2043ms alternate infinite;\n animation: grow-one5 2043ms alternate infinite;\n}\n\n@-webkit-keyframes grow-one5 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n@keyframes grow-one5 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n.equalizer-container.level-one .bar:nth-child(6) {\n background-color: #81D6E3;\n -webkit-animation: grow-one6 1642ms alternate infinite;\n animation: grow-one6 1642ms alternate infinite;\n}\n\n@-webkit-keyframes grow-one6 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n@keyframes grow-one6 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n.equalizer-container.level-one .bar:nth-child(7) {\n background-color: #81D6E3;\n -webkit-animation: grow-one7 1833ms alternate infinite;\n animation: grow-one7 1833ms alternate infinite;\n}\n\n@-webkit-keyframes grow-one7 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n@keyframes grow-one7 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n.equalizer-container.level-one .bar:nth-child(8) {\n background-color: #81D6E3;\n -webkit-animation: grow-one8 1861ms alternate infinite;\n animation: grow-one8 1861ms alternate infinite;\n}\n\n@-webkit-keyframes grow-one8 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n@keyframes grow-one8 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n.equalizer-container.level-one .bar:nth-child(9) {\n background-color: #81D6E3;\n -webkit-animation: grow-one9 1945ms alternate infinite;\n animation: grow-one9 1945ms alternate infinite;\n}\n\n@-webkit-keyframes grow-one9 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n@keyframes grow-one9 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n.equalizer-container.level-one .bar:nth-child(10) {\n background-color: #81D6E3;\n -webkit-animation: grow-one10 1960ms alternate infinite;\n animation: grow-one10 1960ms alternate infinite;\n}\n\n@-webkit-keyframes grow-one10 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n@keyframes grow-one10 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n.equalizer-container.level-one .bar:nth-child(11) {\n background-color: #81D6E3;\n -webkit-animation: grow-one11 2068ms alternate infinite;\n animation: grow-one11 2068ms alternate infinite;\n}\n\n@-webkit-keyframes grow-one11 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n@keyframes grow-one11 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n.equalizer-container.level-one .bar:nth-child(12) {\n background-color: #81D6E3;\n -webkit-animation: grow-one12 1708ms alternate infinite;\n animation: grow-one12 1708ms alternate infinite;\n}\n\n@-webkit-keyframes grow-one12 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n@keyframes grow-one12 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n.equalizer-container.level-two .bar:nth-child(0) {\n background-color: #1db951;\n -webkit-animation: grow-two0 1611ms alternate infinite;\n animation: grow-two0 1611ms alternate infinite;\n}\n\n@-webkit-keyframes grow-two0 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(2);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(2);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n@keyframes grow-two0 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(2);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(2);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n.equalizer-container.level-two .bar:nth-child(1) {\n background-color: #1db951;\n -webkit-animation: grow-two1 1844ms alternate infinite;\n animation: grow-two1 1844ms alternate infinite;\n}\n\n@-webkit-keyframes grow-two1 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(2);\n }\n 20% {\n transform: scaleY(2);\n }\n 30% {\n transform: scaleY(2);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(2);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(2);\n }\n 80% {\n transform: scaleY(2);\n }\n 90% {\n transform: scaleY(2);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n@keyframes grow-two1 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(2);\n }\n 20% {\n transform: scaleY(2);\n }\n 30% {\n transform: scaleY(2);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(2);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(2);\n }\n 80% {\n transform: scaleY(2);\n }\n 90% {\n transform: scaleY(2);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n.equalizer-container.level-two .bar:nth-child(2) {\n background-color: #1db951;\n -webkit-animation: grow-two2 1744ms alternate infinite;\n animation: grow-two2 1744ms alternate infinite;\n}\n\n@-webkit-keyframes grow-two2 {\n 0% {\n transform: scaleY(2);\n }\n 10% {\n transform: scaleY(2);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(2);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(2);\n }\n 70% {\n transform: scaleY(2);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(2);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n@keyframes grow-two2 {\n 0% {\n transform: scaleY(2);\n }\n 10% {\n transform: scaleY(2);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(2);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(2);\n }\n 70% {\n transform: scaleY(2);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(2);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n.equalizer-container.level-two .bar:nth-child(3) {\n background-color: #1db951;\n -webkit-animation: grow-two3 2052ms alternate infinite;\n animation: grow-two3 2052ms alternate infinite;\n}\n\n@-webkit-keyframes grow-two3 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(2);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(2);\n }\n 50% {\n transform: scaleY(2);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(2);\n }\n 80% {\n transform: scaleY(2);\n }\n 90% {\n transform: scaleY(2);\n }\n 100% {\n transform: scaleY(2);\n }\n}\n\n@keyframes grow-two3 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(2);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(2);\n }\n 50% {\n transform: scaleY(2);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(2);\n }\n 80% {\n transform: scaleY(2);\n }\n 90% {\n transform: scaleY(2);\n }\n 100% {\n transform: scaleY(2);\n }\n}\n\n.equalizer-container.level-two .bar:nth-child(4) {\n background-color: #1db951;\n -webkit-animation: grow-two4 2139ms alternate infinite;\n animation: grow-two4 2139ms alternate infinite;\n}\n\n@-webkit-keyframes grow-two4 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(2);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(2);\n }\n 40% {\n transform: scaleY(2);\n }\n 50% {\n transform: scaleY(2);\n }\n 60% {\n transform: scaleY(2);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(2);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n@keyframes grow-two4 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(2);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(2);\n }\n 40% {\n transform: scaleY(2);\n }\n 50% {\n transform: scaleY(2);\n }\n 60% {\n transform: scaleY(2);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(2);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n.equalizer-container.level-two .bar:nth-child(5) {\n background-color: #1db951;\n -webkit-animation: grow-two5 1506ms alternate infinite;\n animation: grow-two5 1506ms alternate infinite;\n}\n\n@-webkit-keyframes grow-two5 {\n 0% {\n transform: scaleY(2);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(2);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(2);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(2);\n }\n 90% {\n transform: scaleY(2);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n@keyframes grow-two5 {\n 0% {\n transform: scaleY(2);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(2);\n }\n 30% {\n transform: scaleY(1);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(2);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(2);\n }\n 90% {\n transform: scaleY(2);\n }\n 100% {\n transform: scaleY(1);\n }\n}\n\n.equalizer-container.level-two .bar:nth-child(6) {\n background-color: #1db951;\n -webkit-animation: grow-two6 2051ms alternate infinite;\n animation: grow-two6 2051ms alternate infinite;\n}\n\n@-webkit-keyframes grow-two6 {\n 0% {\n transform: scaleY(2);\n }\n 10% {\n transform: scaleY(2);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(2);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(2);\n }\n 80% {\n transform: scaleY(2);\n }\n 90% {\n transform: scaleY(2);\n }\n 100% {\n transform: scaleY(2);\n }\n}\n\n@keyframes grow-two6 {\n 0% {\n transform: scaleY(2);\n }\n 10% {\n transform: scaleY(2);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(2);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(2);\n }\n 80% {\n transform: scaleY(2);\n }\n 90% {\n transform: scaleY(2);\n }\n 100% {\n transform: scaleY(2);\n }\n}\n\n.equalizer-container.level-two .bar:nth-child(7) {\n background-color: #1db951;\n -webkit-animation: grow-two7 2113ms alternate infinite;\n animation: grow-two7 2113ms alternate infinite;\n}\n\n@-webkit-keyframes grow-two7 {\n 0% {\n transform: scaleY(2);\n }\n 10% {\n transform: scaleY(2);\n }\n 20% {\n transform: scaleY(2);\n }\n 30% {\n transform: scaleY(2);\n }\n 40% {\n transform: scaleY(2);\n }\n 50% {\n transform: scaleY(2);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(2);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(2);\n }\n}\n\n@keyframes grow-two7 {\n 0% {\n transform: scaleY(2);\n }\n 10% {\n transform: scaleY(2);\n }\n 20% {\n transform: scaleY(2);\n }\n 30% {\n transform: scaleY(2);\n }\n 40% {\n transform: scaleY(2);\n }\n 50% {\n transform: scaleY(2);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(2);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(2);\n }\n}\n\n.equalizer-container.level-two .bar:nth-child(8) {\n background-color: #1db951;\n -webkit-animation: grow-two8 1621ms alternate infinite;\n animation: grow-two8 1621ms alternate infinite;\n}\n\n@-webkit-keyframes grow-two8 {\n 0% {\n transform: scaleY(2);\n }\n 10% {\n transform: scaleY(2);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(2);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(2);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(2);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(2);\n }\n}\n\n@keyframes grow-two8 {\n 0% {\n transform: scaleY(2);\n }\n 10% {\n transform: scaleY(2);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(2);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(2);\n }\n 70% {\n transform: scaleY(1);\n }\n 80% {\n transform: scaleY(2);\n }\n 90% {\n transform: scaleY(1);\n }\n 100% {\n transform: scaleY(2);\n }\n}\n\n.equalizer-container.level-two .bar:nth-child(9) {\n background-color: #1db951;\n -webkit-animation: grow-two9 1681ms alternate infinite;\n animation: grow-two9 1681ms alternate infinite;\n}\n\n@-webkit-keyframes grow-two9 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(2);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(2);\n }\n 40% {\n transform: scaleY(2);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(2);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(2);\n }\n 100% {\n transform: scaleY(2);\n }\n}\n\n@keyframes grow-two9 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(2);\n }\n 20% {\n transform: scaleY(1);\n }\n 30% {\n transform: scaleY(2);\n }\n 40% {\n transform: scaleY(2);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(2);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(2);\n }\n 100% {\n transform: scaleY(2);\n }\n}\n\n.equalizer-container.level-two .bar:nth-child(10) {\n background-color: #1db951;\n -webkit-animation: grow-two10 1964ms alternate infinite;\n animation: grow-two10 1964ms alternate infinite;\n}\n\n@-webkit-keyframes grow-two10 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(2);\n }\n 30% {\n transform: scaleY(2);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(2);\n }\n 60% {\n transform: scaleY(2);\n }\n 70% {\n transform: scaleY(2);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(2);\n }\n 100% {\n transform: scaleY(2);\n }\n}\n\n@keyframes grow-two10 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n 20% {\n transform: scaleY(2);\n }\n 30% {\n transform: scaleY(2);\n }\n 40% {\n transform: scaleY(1);\n }\n 50% {\n transform: scaleY(2);\n }\n 60% {\n transform: scaleY(2);\n }\n 70% {\n transform: scaleY(2);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(2);\n }\n 100% {\n transform: scaleY(2);\n }\n}\n\n.equalizer-container.level-two .bar:nth-child(11) {\n background-color: #1db951;\n -webkit-animation: grow-two11 1671ms alternate infinite;\n animation: grow-two11 1671ms alternate infinite;\n}\n\n@-webkit-keyframes grow-two11 {\n 0% {\n transform: scaleY(2);\n }\n 10% {\n transform: scaleY(2);\n }\n 20% {\n transform: scaleY(2);\n }\n 30% {\n transform: scaleY(2);\n }\n 40% {\n transform: scaleY(2);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(2);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(2);\n }\n 100% {\n transform: scaleY(2);\n }\n}\n\n@keyframes grow-two11 {\n 0% {\n transform: scaleY(2);\n }\n 10% {\n transform: scaleY(2);\n }\n 20% {\n transform: scaleY(2);\n }\n 30% {\n transform: scaleY(2);\n }\n 40% {\n transform: scaleY(2);\n }\n 50% {\n transform: scaleY(1);\n }\n 60% {\n transform: scaleY(1);\n }\n 70% {\n transform: scaleY(2);\n }\n 80% {\n transform: scaleY(1);\n }\n 90% {\n transform: scaleY(2);\n }\n 100% {\n transform: scaleY(2);\n }\n}\n\n.equalizer-container.level-two .bar:nth-child(12) {\n background-color: #1db951;\n -webkit-animation: grow-two12 1830ms alternate infinite;\n animation: grow-two12 1830ms alternate infinite;\n}\n\n@-webkit-keyframes grow-two12 {\n 0% {\n transform: scaleY(1);\n }\n 10% {\n transform: scaleY(1);\n }\n
gitextract_orr04cxp/
├── .gitignore
├── README.md
├── frontend/
│ ├── README.md
│ ├── angular.json
│ ├── browserslist
│ ├── dist/
│ │ └── obscurify3/
│ │ ├── index.html
│ │ ├── main-es2015.js
│ │ ├── main-es5.js
│ │ ├── polyfills-es2015.js
│ │ ├── polyfills-es5.js
│ │ ├── runtime-es2015.js
│ │ ├── runtime-es5.js
│ │ ├── styles-es2015.js
│ │ ├── styles-es5.js
│ │ ├── vendor-es2015.js
│ │ └── vendor-es5.js
│ ├── e2e/
│ │ ├── protractor.conf.js
│ │ ├── src/
│ │ │ ├── app.e2e-spec.ts
│ │ │ └── app.po.ts
│ │ └── tsconfig.json
│ ├── karma.conf.js
│ ├── ngsw-config.json
│ ├── package.json
│ ├── src/
│ │ ├── app/
│ │ │ ├── app-routing.module.ts
│ │ │ ├── app.component.html
│ │ │ ├── app.component.scss
│ │ │ ├── app.component.spec.ts
│ │ │ ├── app.component.ts
│ │ │ ├── app.module.ts
│ │ │ ├── components/
│ │ │ │ ├── about/
│ │ │ │ │ ├── about.component.html
│ │ │ │ │ ├── about.component.scss
│ │ │ │ │ ├── about.component.spec.ts
│ │ │ │ │ └── about.component.ts
│ │ │ │ ├── artist/
│ │ │ │ │ ├── artist-card/
│ │ │ │ │ │ ├── artist-card.component.html
│ │ │ │ │ │ ├── artist-card.component.scss
│ │ │ │ │ │ ├── artist-card.component.spec.ts
│ │ │ │ │ │ └── artist-card.component.ts
│ │ │ │ │ ├── artist-list/
│ │ │ │ │ │ ├── artist-list.component.html
│ │ │ │ │ │ ├── artist-list.component.scss
│ │ │ │ │ │ ├── artist-list.component.spec.ts
│ │ │ │ │ │ └── artist-list.component.ts
│ │ │ │ │ ├── artist-nav/
│ │ │ │ │ │ ├── artist-nav.component.html
│ │ │ │ │ │ ├── artist-nav.component.scss
│ │ │ │ │ │ ├── artist-nav.component.spec.ts
│ │ │ │ │ │ └── artist-nav.component.ts
│ │ │ │ │ └── track-card/
│ │ │ │ │ ├── track-card.component.html
│ │ │ │ │ ├── track-card.component.scss
│ │ │ │ │ ├── track-card.component.spec.ts
│ │ │ │ │ └── track-card.component.ts
│ │ │ │ ├── footer/
│ │ │ │ │ ├── footer.component.html
│ │ │ │ │ ├── footer.component.scss
│ │ │ │ │ ├── footer.component.spec.ts
│ │ │ │ │ └── footer.component.ts
│ │ │ │ ├── home/
│ │ │ │ │ ├── home.component.html
│ │ │ │ │ ├── home.component.scss
│ │ │ │ │ ├── home.component.spec.ts
│ │ │ │ │ └── home.component.ts
│ │ │ │ ├── intro/
│ │ │ │ │ ├── intro.component.html
│ │ │ │ │ ├── intro.component.scss
│ │ │ │ │ ├── intro.component.spec.ts
│ │ │ │ │ └── intro.component.ts
│ │ │ │ ├── login/
│ │ │ │ │ ├── login.component.html
│ │ │ │ │ ├── login.component.scss
│ │ │ │ │ ├── login.component.spec.ts
│ │ │ │ │ └── login.component.ts
│ │ │ │ ├── moods-graph/
│ │ │ │ │ ├── moods-graph.component.html
│ │ │ │ │ ├── moods-graph.component.scss
│ │ │ │ │ ├── moods-graph.component.spec.ts
│ │ │ │ │ └── moods-graph.component.ts
│ │ │ │ ├── obscurity-graph/
│ │ │ │ │ ├── obscurity-graph.component.html
│ │ │ │ │ ├── obscurity-graph.component.scss
│ │ │ │ │ ├── obscurity-graph.component.spec.ts
│ │ │ │ │ └── obscurity-graph.component.ts
│ │ │ │ ├── obscurity-rating/
│ │ │ │ │ ├── obscurity-rating.component.html
│ │ │ │ │ ├── obscurity-rating.component.scss
│ │ │ │ │ ├── obscurity-rating.component.spec.ts
│ │ │ │ │ └── obscurity-rating.component.ts
│ │ │ │ ├── privacy/
│ │ │ │ │ ├── privacy.component.html
│ │ │ │ │ ├── privacy.component.scss
│ │ │ │ │ ├── privacy.component.spec.ts
│ │ │ │ │ └── privacy.component.ts
│ │ │ │ ├── recommendations/
│ │ │ │ │ ├── recommendations.component.html
│ │ │ │ │ ├── recommendations.component.scss
│ │ │ │ │ ├── recommendations.component.spec.ts
│ │ │ │ │ └── recommendations.component.ts
│ │ │ │ ├── spotify-auth/
│ │ │ │ │ ├── spotify-auth.component.html
│ │ │ │ │ ├── spotify-auth.component.scss
│ │ │ │ │ ├── spotify-auth.component.spec.ts
│ │ │ │ │ └── spotify-auth.component.ts
│ │ │ │ └── top-genres/
│ │ │ │ ├── top-genres.component.html
│ │ │ │ ├── top-genres.component.scss
│ │ │ │ ├── top-genres.component.spec.ts
│ │ │ │ └── top-genres.component.ts
│ │ │ ├── scss/
│ │ │ │ ├── _mixins.scss
│ │ │ │ ├── _variables.scss
│ │ │ │ └── components/
│ │ │ │ ├── _header.scss
│ │ │ │ └── _slate.scss
│ │ │ ├── services/
│ │ │ │ ├── browserCheck.ts
│ │ │ │ ├── infoService.ts
│ │ │ │ ├── intersectionObserver.ts
│ │ │ │ ├── obscurifyService.ts
│ │ │ │ ├── spotifyAuth/
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── service/
│ │ │ │ │ │ ├── auth.guard.ts
│ │ │ │ │ │ ├── auth.service.ts
│ │ │ │ │ │ ├── spotify-auth.interceptor.ts
│ │ │ │ │ │ └── token.service.ts
│ │ │ │ │ └── shared/
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── scopes-builder.ts
│ │ │ │ │ ├── spotify-auth-config.i.ts
│ │ │ │ │ ├── spotify-auth-response.i.ts
│ │ │ │ │ └── spotify-scope.ts
│ │ │ │ └── spotifyService.ts
│ │ │ └── utilities/
│ │ │ └── obscurityFuncs.ts
│ │ ├── assets/
│ │ │ └── .gitkeep
│ │ ├── environments/
│ │ │ ├── environment.dev.ts
│ │ │ ├── environment.prod.ts
│ │ │ └── environment.ts
│ │ ├── index.html
│ │ ├── main.ts
│ │ ├── manifest.webmanifest
│ │ ├── polyfills.ts
│ │ ├── styles.scss
│ │ └── test.ts
│ ├── tsconfig.app.json
│ ├── tsconfig.json
│ ├── tsconfig.spec.json
│ └── tslint.json
├── generate_countries.js
└── lambda/
├── getObscurifyData.js
├── getUserHistory.js
├── saveUserHistory.js
└── spotifyCallback.js
Showing preview only (1,090K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (13272 symbols across 47 files)
FILE: frontend/dist/obscurify3/main-es2015.js
function webpackEmptyAsyncContext (line 10) | function webpackEmptyAsyncContext(req) {
function __extends (line 273) | function __extends(d, b) {
function __rest (line 290) | function __rest(s, e) {
function __decorate (line 302) | function __decorate(decorators, target, key, desc) {
function __param (line 309) | function __param(paramIndex, decorator) {
function __metadata (line 313) | function __metadata(metadataKey, metadataValue) {
function __awaiter (line 317) | function __awaiter(thisArg, _arguments, P, generator) {
function __generator (line 326) | function __generator(thisArg, body) {
function __exportStar (line 354) | function __exportStar(m, exports) {
function __values (line 358) | function __values(o) {
function __read (line 369) | function __read(o, n) {
function __spread (line 386) | function __spread() {
function __spreadArrays (line 392) | function __spreadArrays() {
function __await (line 400) | function __await(v) {
function __asyncGenerator (line 404) | function __asyncGenerator(thisArg, _arguments, generator) {
function __asyncDelegator (line 416) | function __asyncDelegator(o) {
function __asyncValues (line 422) | function __asyncValues(o) {
function __makeTemplateObject (line 430) | function __makeTemplateObject(cooked, raw) {
function __importStar (line 435) | function __importStar(mod) {
function __importDefault (line 443) | function __importDefault(mod) {
method constructor (line 545) | constructor(tokenSvc, authService, router) {
method ngOnInit (line 551) | ngOnInit() {
method getUserInfo (line 558) | getUserInfo() {
method logout (line 560) | logout() {
method constructor (line 747) | constructor() { }
method ngOnInit (line 748) | ngOnInit() {
method constructor (line 795) | constructor(browserCheck, sanitizer) {
method onClick (line 800) | onClick(btn) {
method onMouseEnter (line 805) | onMouseEnter(btn) {
method onMouseLeave (line 810) | onMouseLeave(btn) {
method ngOnInit (line 815) | ngOnInit() {
method constructor (line 887) | constructor(element, intersectionObserverService, infoSvc, tokenSvc, spo...
method updateAppBackgroundColor (line 910) | updateAppBackgroundColor() {
method ngOnInit (line 913) | ngOnInit() {
method ngAfterViewInit (line 938) | ngAfterViewInit() {
method getHistory (line 955) | getHistory(data) {
method createPlaylist (line 959) | createPlaylist() {
method showMore (line 998) | showMore() {
method showLess (line 1001) | showLess() {
method constructor (line 1058) | constructor() {
method ngOnInit (line 1064) | ngOnInit() {
method getRadioValue (line 1069) | getRadioValue(data) {
method updateArtistTrack (line 1077) | updateArtistTrack(type) {
method emitCreatePlaylist (line 1085) | emitCreatePlaylist() {
method constructor (line 1142) | constructor(browserCheck, sanitizer) {
method onClick (line 1147) | onClick(btn) {
method onMouseEnter (line 1152) | onMouseEnter(btn) {
method onMouseLeave (line 1157) | onMouseLeave(btn) {
method ngOnInit (line 1162) | ngOnInit() {
method constructor (line 1226) | constructor(router) {
method ngOnInit (line 1229) | ngOnInit() {
method constructor (line 1288) | constructor(tokenSvc, cookieService, router, infoSvc, authService, obscu...
method setColor (line 1298) | setColor(val) {
method ngOnInit (line 1317) | ngOnInit() {
method constructor (line 1393) | constructor(element, intersectionObserverService, infoSvc) {
method updateAppBackgroundColor (line 1399) | updateAppBackgroundColor() {
method ngOnInit (line 1402) | ngOnInit() {
method ngAfterViewInit (line 1411) | ngAfterViewInit() {
method constructor (line 1479) | constructor(authService, tokenSvc, router, cookieService) {
method ngOnInit (line 1485) | ngOnInit() {
method login (line 1490) | login() {
method constructor (line 1549) | constructor(element, intersectionObserverService) {
method updateAppBackgroundColor (line 1555) | updateAppBackgroundColor() {
method ngOnInit (line 1558) | ngOnInit() { }
method ngAfterViewInit (line 1559) | ngAfterViewInit() {
method constructor (line 1626) | constructor(renderer, el, sanitizer) {
method constructor (line 1701) | constructor(element, intersectionObserverService) {
method updateAppBackgroundColor (line 1707) | updateAppBackgroundColor(val) {
method ngOnInit (line 1715) | ngOnInit() { }
method ngAfterViewInit (line 1716) | ngAfterViewInit() {
method constructor (line 1794) | constructor(element, intersectionObserverService, infoSvc, spotifyServic...
method updateAppBackgroundColor (line 1805) | updateAppBackgroundColor() {
method ngOnInit (line 1808) | ngOnInit() {
method ngAfterViewInit (line 1814) | ngAfterViewInit() {
method refreshTracks (line 1847) | refreshTracks() {
method makePlaylist (line 1862) | makePlaylist() {
method constructor (line 1920) | constructor(authService, cookieService, tknService) {
method ngOnInit (line 1925) | ngOnInit() {
method constructor (line 1979) | constructor(element, intersectionObserverService, infoSvc) {
method updateAppBackgroundColor (line 1988) | updateAppBackgroundColor() {
method ngOnInit (line 1991) | ngOnInit() {
method ngAfterViewInit (line 2002) | ngAfterViewInit() {
method constructor (line 2056) | constructor(platform) {
method checkIfBrowser (line 2065) | checkIfBrowser() {
method constructor (line 2108) | constructor(http, router, obscurifyFuncs) {
method fetchUserInfo (line 2120) | fetchUserInfo() {
method fetchAllTimeTracks (line 2127) | fetchAllTimeTracks() {
method fetchCurrentTracks (line 2138) | fetchCurrentTracks() {
method fetchAllTimeArtists (line 2148) | fetchAllTimeArtists() {
method fetchCurrentArtists (line 2180) | fetchCurrentArtists() {
method fetchRecommendations (line 2194) | fetchRecommendations() {
method getUserStream (line 2200) | getUserStream() {
method handleError (line 2203) | handleError(operation = 'operation', result) {
class IntersectionObserverService (line 2236) | class IntersectionObserverService {
method constructor (line 2237) | constructor() {
method getSubject (line 2240) | getSubject() {
method init (line 2243) | init(el, options) {
method constructor (line 2276) | constructor(http) {
method getObscurifyData (line 2282) | getObscurifyData(countryID, obscurifyScore, recentObscurifyScore) {
method handleError (line 2293) | handleError(operation = 'operation', result) {
method constructor (line 2366) | constructor(authService, tokenSvc) {
method canActivate (line 2370) | canActivate(next, state) {
method canActivateChild (line 2373) | canActivateChild(next, state) {
method constructor (line 2414) | constructor(cookieService) {
method generateRandomString (line 2428) | generateRandomString() {
method authorize (line 2437) | authorize() {
method authorized (line 2444) | authorized() {
method authorizedStream (line 2448) | get authorizedStream() {
method configure (line 2451) | configure(config) {
method buildAuthUrl (line 2456) | buildAuthUrl() {
method constructor (line 2499) | constructor(tokenSvc) {
method intercept (line 2502) | intercept(req, next) {
method constructor (line 2537) | constructor(cookieService) {
method oAuthToken (line 2545) | get oAuthToken() {
method clearToken (line 2548) | clearToken() {
method authHeader (line 2555) | get authHeader() {
method authTokens (line 2558) | get authTokens() {
method setAuthTokenCache (line 2561) | setAuthTokenCache(tokenCookie) {
method setAuthToken (line 2571) | setAuthToken(spotifyResponse) {
class ScopesBuilder (line 2614) | class ScopesBuilder {
method constructor (line 2615) | constructor() {
method withScopes (line 2630) | withScopes(...args) {
method build (line 2634) | build() {
method constructor (line 2701) | constructor(http, platform) {
method getRecommendations (line 2705) | getRecommendations(config) {
method makePlaylist (line 2729) | makePlaylist(config) {
method fillPlaylistWithTracks (line 2750) | fillPlaylistWithTracks(config, uriArray, playlistID) {
class ObscurityFuncs (line 2787) | class ObscurityFuncs {
method findRandomGenres (line 2788) | findRandomGenres(artist) {
method findStarRating (line 2812) | findStarRating(popularity) {
method comparator (line 2828) | comparator(a, b) {
FILE: frontend/dist/obscurify3/main-es5.js
function _slicedToArray (line 1) | function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterab...
function _nonIterableRest (line 3) | function _nonIterableRest() { throw new TypeError("Invalid attempt to de...
function _iterableToArrayLimit (line 5) | function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object...
function _arrayWithHoles (line 7) | function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
function _toConsumableArray (line 9) | function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _it...
function _nonIterableSpread (line 11) | function _nonIterableSpread() { throw new TypeError("Invalid attempt to ...
function _iterableToArray (line 13) | function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) ||...
function _arrayWithoutHoles (line 15) | function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i ...
function _defineProperties (line 17) | function _defineProperties(target, props) { for (var i = 0; i < props.le...
function _createClass (line 19) | function _createClass(Constructor, protoProps, staticProps) { if (protoP...
function _classCallCheck (line 21) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
function webpackEmptyAsyncContext (line 34) | function webpackEmptyAsyncContext(req) {
function __extends (line 519) | function __extends(d, b) {
function __rest (line 545) | function __rest(s, e) {
function __decorate (line 558) | function __decorate(decorators, target, key, desc) {
function __param (line 568) | function __param(paramIndex, decorator) {
function __metadata (line 574) | function __metadata(metadataKey, metadataValue) {
function __awaiter (line 578) | function __awaiter(thisArg, _arguments, P, generator) {
function __generator (line 606) | function __generator(thisArg, body) {
function __exportStar (line 717) | function __exportStar(m, exports) {
function __values (line 723) | function __values(o) {
function __read (line 738) | function __read(o, n) {
function __spread (line 765) | function __spread() {
function __spreadArrays (line 773) | function __spreadArrays() {
function __await (line 789) | function __await(v) {
function __asyncGenerator (line 793) | function __asyncGenerator(thisArg, _arguments, generator) {
function __asyncDelegator (line 835) | function __asyncDelegator(o) {
function __asyncValues (line 853) | function __asyncValues(o) {
function __makeTemplateObject (line 879) | function __makeTemplateObject(cooked, raw) {
function __importStar (line 893) | function __importStar(mod) {
function __importDefault (line 903) | function __importDefault(mod) {
function AppComponent (line 1077) | function AppComponent(tokenSvc, authService, router) {
function AboutComponent (line 1430) | function AboutComponent() {
function ArtistCardComponent (line 1521) | function ArtistCardComponent(browserCheck, sanitizer) {
function ArtistListComponent (line 1668) | function ArtistListComponent(element, intersectionObserverService, infoS...
function ArtistNavComponent (line 1913) | function ArtistNavComponent() {
function TrackCardComponent (line 2044) | function TrackCardComponent(browserCheck, sanitizer) {
function FooterComponent (line 2167) | function FooterComponent(router) {
function HomeComponent (line 2285) | function HomeComponent(tokenSvc, cookieService, router, infoSvc, authSer...
function IntroComponent (line 2450) | function IntroComponent(element, intersectionObserverService, infoSvc) {
function LoginComponent (line 2594) | function LoginComponent(authService, tokenSvc, router, cookieService) {
function MoodsGraphComponent (line 2712) | function MoodsGraphComponent(element, intersectionObserverService) {
function ObscurityRatingComponent (line 2942) | function ObscurityRatingComponent(element, intersectionObserverService) {
function RecommendationsComponent (line 3097) | function RecommendationsComponent(element, intersectionObserverService, ...
function SpotifyAuthComponent (line 3291) | function SpotifyAuthComponent(authService, cookieService, tknService) {
function TopGenresComponent (line 3395) | function TopGenresComponent(element, intersectionObserverService, infoSv...
function BrowserCheck (line 3510) | function BrowserCheck(platform) {
function InfoService (line 3612) | function InfoService(http, router, obscurifyFuncs) {
function IntersectionObserverService (line 3863) | function IntersectionObserverService() {
function ObscurifyService (line 3948) | function ObscurifyService(http) {
function AuthGuard (line 4129) | function AuthGuard(authService, tokenSvc) {
function AuthService (line 4222) | function AuthService(cookieService) {
function SpotifyAuthInterceptor (line 4359) | function SpotifyAuthInterceptor(tokenSvc) {
function TokenService (line 4435) | function TokenService(cookieService) {
function ScopesBuilder (line 4549) | function ScopesBuilder() {
function SpotifyService (line 4671) | function SpotifyService(http, platform) {
function ObscurityFuncs (line 4809) | function ObscurityFuncs() {
FILE: frontend/dist/obscurify3/polyfills-es2015.js
function F (line 879) | function F() { /* empty */ }
function __extends (line 3052) | function __extends(d, b) {
function __rest (line 3069) | function __rest(s, e) {
function __decorate (line 3081) | function __decorate(decorators, target, key, desc) {
function __param (line 3088) | function __param(paramIndex, decorator) {
function __metadata (line 3092) | function __metadata(metadataKey, metadataValue) {
function __awaiter (line 3096) | function __awaiter(thisArg, _arguments, P, generator) {
function __generator (line 3105) | function __generator(thisArg, body) {
function __exportStar (line 3133) | function __exportStar(m, exports) {
function __values (line 3137) | function __values(o) {
function __read (line 3148) | function __read(o, n) {
function __spread (line 3165) | function __spread() {
function __spreadArrays (line 3171) | function __spreadArrays() {
function __await (line 3179) | function __await(v) {
function __asyncGenerator (line 3183) | function __asyncGenerator(thisArg, _arguments, generator) {
function __asyncDelegator (line 3195) | function __asyncDelegator(o) {
function __asyncValues (line 3201) | function __asyncValues(o) {
function __makeTemplateObject (line 3209) | function __makeTemplateObject(cooked, raw) {
function __importStar (line 3214) | function __importStar(mod) {
function __importDefault (line 3222) | function __importDefault(mod) {
function mark (line 3252) | function mark(name) {
function performanceMeasure (line 3255) | function performanceMeasure(name, label) {
class Zone (line 3277) | class Zone {
method constructor (line 3278) | constructor(parent, zoneSpec) {
method assertZonePatched (line 3285) | static assertZonePatched() {
method root (line 3294) | static get root() {
method current (line 3301) | static get current() {
method currentTask (line 3304) | static get currentTask() {
method __load_patch (line 3307) | static __load_patch(name, fn) {
method parent (line 3320) | get parent() {
method name (line 3323) | get name() {
method get (line 3326) | get(key) {
method getZoneWith (line 3331) | getZoneWith(key) {
method fork (line 3341) | fork(zoneSpec) {
method wrap (line 3346) | wrap(callback, source) {
method run (line 3356) | run(callback, applyThis, applyArgs, source) {
method runGuarded (line 3365) | runGuarded(callback, applyThis = null, applyArgs, source) {
method runTask (line 3381) | runTask(task, applyThis, applyArgs) {
method scheduleTask (line 3429) | scheduleTask(task) {
method scheduleMicroTask (line 3465) | scheduleMicroTask(source, callback, data, customSchedule) {
method scheduleMacroTask (line 3468) | scheduleMacroTask(source, callback, data, customSchedule, customCancel) {
method scheduleEventTask (line 3471) | scheduleEventTask(source, callback, data, customSchedule, customCancel) {
method cancelTask (line 3474) | cancelTask(task) {
method _updateTaskCount (line 3493) | _updateTaskCount(task, count) {
class ZoneDelegate (line 3511) | class ZoneDelegate {
method constructor (line 3512) | constructor(zone, parentDelegate, zoneSpec) {
method fork (line 3583) | fork(targetZone, zoneSpec) {
method intercept (line 3587) | intercept(targetZone, callback, source) {
method invoke (line 3592) | invoke(targetZone, callback, applyThis, applyArgs, source) {
method handleError (line 3596) | handleError(targetZone, error) {
method scheduleTask (line 3601) | scheduleTask(targetZone, task) {
method invokeTask (line 3624) | invokeTask(targetZone, task, applyThis, applyArgs) {
method cancelTask (line 3628) | cancelTask(targetZone, task) {
method hasTask (line 3641) | hasTask(targetZone, isEmpty) {
method _updateTaskCount (line 3652) | _updateTaskCount(type, count) {
class ZoneTask (line 3670) | class ZoneTask {
method constructor (line 3671) | constructor(type, source, callback, options, scheduleFn, cancelFn) {
method invokeTask (line 3693) | static invokeTask(task, target, args) {
method zone (line 3709) | get zone() {
method state (line 3712) | get state() {
method cancelScheduleRequest (line 3715) | cancelScheduleRequest() {
method _transitionTo (line 3718) | _transitionTo(toState, fromState1, fromState2) {
method toString (line 3729) | toString() {
method toJSON (line 3739) | toJSON() {
function scheduleMicroTask (line 3760) | function scheduleMicroTask(task) {
function drainMicroTaskQueue (line 3785) | function drainMicroTaskQueue() {
function noop (line 3852) | function noop() { }
function __symbol__ (line 3853) | function __symbol__(name) {
function readableObjectToString (line 3870) | function readableObjectToString(obj) {
function handleUnhandledRejection (line 3909) | function handleUnhandledRejection(e) {
function isThenable (line 3920) | function isThenable(value) {
function forwardResolution (line 3923) | function forwardResolution(value) {
function forwardRejection (line 3926) | function forwardRejection(rejection) {
function makeResolver (line 3939) | function makeResolver(promise, state) {
function resolvePromise (line 3965) | function resolvePromise(promise, state, value) {
function clearRejectedNoCatch (line 4051) | function clearRejectedNoCatch(promise) {
function scheduleResolveOrReject (line 4074) | function scheduleResolveOrReject(promise, zone, chainPromise, onFulfille...
class ZoneAwarePromise (line 4102) | class ZoneAwarePromise {
method constructor (line 4103) | constructor(executor) {
method toString (line 4117) | static toString() {
method resolve (line 4120) | static resolve(value) {
method reject (line 4123) | static reject(error) {
method race (line 4126) | static race(values) {
method all (line 4147) | static all(values) {
method then (line 4183) | then(onFulfilled, onRejected) {
method catch (line 4194) | catch(onRejected) {
method finally (line 4197) | finally(onFinally) {
method [Symbol.toStringTag] (line 4180) | get [Symbol.toStringTag]() {
function patchThen (line 4255) | function patchThen(Ctor) {
function zoneify (line 4275) | function zoneify(fn) {
function wrapWithCurrentZone (line 4338) | function wrapWithCurrentZone(callback, source) {
function scheduleMacroTaskWithCurrentZone (line 4341) | function scheduleMacroTaskWithCurrentZone(source, callback, data, custom...
function bindArguments (line 4350) | function bindArguments(args, source) {
function patchPrototype (line 4358) | function patchPrototype(prototype, fnNames) {
function isPropertyWritable (line 4378) | function isPropertyWritable(propertyDesc) {
function patchProperty (line 4433) | function patchProperty(obj, prop, prototype) {
function patchOnProperties (line 4530) | function patchOnProperties(obj, properties, prototype) {
function patchClass (line 4550) | function patchClass(className) {
function copySymbolProperties (line 4619) | function copySymbolProperties(src, dest) {
function patchMethod (line 4644) | function patchMethod(target, name, patchFn) {
function patchMacroTask (line 4674) | function patchMacroTask(obj, funcName, metaCreator) {
function attachOriginToPatched (line 4696) | function attachOriginToPatched(patched, original) {
function isIE (line 4701) | function isIE() {
function isIEOrEdge (line 4712) | function isIEOrEdge() {
function patchEventTarget (line 4816) | function patchEventTarget(_global, apis, patchOptions) {
function findEventTasks (line 5322) | function findEventTasks(target, eventName) {
function patchEventPrototype (line 5338) | function patchEventPrototype(global, api) {
function patchCallbacks (line 5358) | function patchCallbacks(api, target, targetName, method, callbacks) {
function propertyPatch (line 5406) | function propertyPatch() {
function _redefineProperty (line 5439) | function _redefineProperty(obj, prop, desc) {
function isUnconfigurable (line 5444) | function isUnconfigurable(obj, prop) {
function rewriteDescriptor (line 5447) | function rewriteDescriptor(obj, prop, desc) {
function _tryDefineProperty (line 5463) | function _tryDefineProperty(obj, prop, desc, originalConfigurableFlag) {
function filterProperties (line 5721) | function filterProperties(target, onProperties, ignoreProperties) {
function patchFilteredProperties (line 5732) | function patchFilteredProperties(target, onProperties, ignoreProperties,...
function propertyDescriptorPatch (line 5741) | function propertyDescriptorPatch(api, _global) {
function patchTimer (line 5875) | function patchTimer(window, setName, cancelName, nameSuffix) {
function patchCustomElements (line 5997) | function patchCustomElements(_global, api) {
function eventTargetPatch (line 6013) | function eventTargetPatch(_global, api) {
function patchEvent (line 6037) | function patchEvent(global, api) {
function patchXHR (line 6110) | function patchXHR(window) {
function findPromiseRejectionHandler (line 6260) | function findPromiseRejectionHandler(evtName) {
FILE: frontend/dist/obscurify3/polyfills-es5.js
function _classCallCheck (line 1) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
function _defineProperties (line 3) | function _defineProperties(target, props) { for (var i = 0; i < props.le...
function _createClass (line 5) | function _createClass(Constructor, protoProps, staticProps) { if (protoP...
function F (line 3105) | function F() {
function F (line 7940) | function F() {
function asinh (line 8765) | function asinh(x) {
function F (line 11245) | function F() {
function get (line 11527) | function get(target, propertyKey
function set (line 11774) | function set(target, propertyKey, V
function getSubstitution (line 12921) | function getSubstitution(matched, str, position, captures, namedCaptures...
function wrap (line 14949) | function wrap(innerFn, outerFn, self, tryLocsList) {
function tryCatch (line 14971) | function tryCatch(fn, obj, arg) {
function Generator (line 14996) | function Generator() {}
function GeneratorFunction (line 14998) | function GeneratorFunction() {}
function GeneratorFunctionPrototype (line 15000) | function GeneratorFunctionPrototype() {} // This is a polyfill for %Iter...
function defineIteratorMethods (line 15025) | function defineIteratorMethods(prototype) {
function AsyncIterator (line 15065) | function AsyncIterator(generator) {
function makeInvokeMethod (line 15146) | function makeInvokeMethod(innerFn, self, context) {
function maybeInvokeDelegate (line 15224) | function maybeInvokeDelegate(delegate, context) {
function pushTryEntry (line 15317) | function pushTryEntry(locs) {
function resetTryEntry (line 15334) | function resetTryEntry(entry) {
function Context (line 15341) | function Context(tryLocsList) {
function values (line 15381) | function values(iterable) {
function doneResult (line 15421) | function doneResult() {
function handle (line 15469) | function handle(loc, caught) {
function __extends (line 15805) | function __extends(d, b) {
function __rest (line 15831) | function __rest(s, e) {
function __decorate (line 15844) | function __decorate(decorators, target, key, desc) {
function __param (line 15854) | function __param(paramIndex, decorator) {
function __metadata (line 15860) | function __metadata(metadataKey, metadataValue) {
function __awaiter (line 15864) | function __awaiter(thisArg, _arguments, P, generator) {
function __generator (line 15892) | function __generator(thisArg, body) {
function __exportStar (line 16003) | function __exportStar(m, exports) {
function __values (line 16009) | function __values(o) {
function __read (line 16024) | function __read(o, n) {
function __spread (line 16051) | function __spread() {
function __spreadArrays (line 16059) | function __spreadArrays() {
function __await (line 16075) | function __await(v) {
function __asyncGenerator (line 16079) | function __asyncGenerator(thisArg, _arguments, generator) {
function __asyncDelegator (line 16121) | function __asyncDelegator(o) {
function __asyncValues (line 16139) | function __asyncValues(o) {
function __makeTemplateObject (line 16165) | function __makeTemplateObject(cooked, raw) {
function __importStar (line 16179) | function __importStar(mod) {
function __importDefault (line 16189) | function __importDefault(mod) {
function mark (line 16226) | function mark(name) {
function performanceMeasure (line 16230) | function performanceMeasure(name, label) {
function Zone (line 16257) | function Zone(parent, zoneSpec) {
function ZoneDelegate (line 16576) | function ZoneDelegate(zone, parentDelegate, zoneSpec) {
function ZoneTask (line 16748) | function ZoneTask(type, source, callback, options, scheduleFn, cancelFn) {
function scheduleMicroTask (line 16862) | function scheduleMicroTask(task) {
function drainMicroTaskQueue (line 16891) | function drainMicroTaskQueue() {
function noop (line 17016) | function noop() {}
function __symbol__ (line 17018) | function __symbol__(name) {
function readableObjectToString (line 17038) | function readableObjectToString(obj) {
function handleUnhandledRejection (line 17090) | function handleUnhandledRejection(e) {
function isThenable (line 17102) | function isThenable(value) {
function forwardResolution (line 17106) | function forwardResolution(value) {
function forwardRejection (line 17110) | function forwardRejection(rejection) {
function makeResolver (line 17130) | function makeResolver(promise, state) {
function resolvePromise (line 17160) | function resolvePromise(promise, state, value) {
function clearRejectedNoCatch (line 17257) | function clearRejectedNoCatch(promise) {
function scheduleResolveOrReject (line 17285) | function scheduleResolveOrReject(promise, zone, chainPromise, onFulfille...
function ZoneAwarePromise (line 17315) | function ZoneAwarePromise(executor) {
function onResolve (line 17398) | function onResolve(value) {
function onReject (line 17402) | function onReject(error) {
function patchThen (line 17568) | function patchThen(Ctor) {
function zoneify (line 17596) | function zoneify(fn) {
function wrapWithCurrentZone (line 17683) | function wrapWithCurrentZone(callback, source) {
function scheduleMacroTaskWithCurrentZone (line 17687) | function scheduleMacroTaskWithCurrentZone(source, callback, data, custom...
function bindArguments (line 17700) | function bindArguments(args, source) {
function patchPrototype (line 17710) | function patchPrototype(prototype, fnNames) {
function isPropertyWritable (line 17742) | function isPropertyWritable(propertyDesc) {
function patchProperty (line 17805) | function patchProperty(obj, prop, prototype) {
function patchOnProperties (line 17928) | function patchOnProperties(obj, properties, prototype) {
function patchClass (line 17950) | function patchClass(className) {
function copySymbolProperties (line 18027) | function copySymbolProperties(src, dest) {
function patchMethod (line 18055) | function patchMethod(target, name, patchFn) {
function patchMacroTask (line 18095) | function patchMacroTask(obj, funcName, metaCreator) {
function attachOriginToPatched (line 18123) | function attachOriginToPatched(patched, original) {
function isIE (line 18130) | function isIE() {
function isIEOrEdge (line 18142) | function isIEOrEdge() {
function patchEventTarget (line 18262) | function patchEventTarget(_global, apis, patchOptions) {
function findEventTasks (line 18873) | function findEventTasks(target, eventName) {
function patchEventPrototype (line 18894) | function patchEventPrototype(global, api) {
function patchCallbacks (line 18918) | function patchCallbacks(api, target, targetName, method, callbacks) {
function propertyPatch (line 18977) | function propertyPatch() {
function _redefineProperty (line 19020) | function _redefineProperty(obj, prop, desc) {
function isUnconfigurable (line 19026) | function isUnconfigurable(obj, prop) {
function rewriteDescriptor (line 19030) | function rewriteDescriptor(obj, prop, desc) {
function _tryDefineProperty (line 19053) | function _tryDefineProperty(obj, prop, desc, originalConfigurableFlag) {
function filterProperties (line 19116) | function filterProperties(target, onProperties, ignoreProperties) {
function patchFilteredProperties (line 19135) | function patchFilteredProperties(target, onProperties, ignoreProperties,...
function propertyDescriptorPatch (line 19146) | function propertyDescriptorPatch(api, _global) {
function patchTimer (line 19306) | function patchTimer(window, setName, cancelName, nameSuffix) {
function patchCustomElements (line 19435) | function patchCustomElements(_global, api) {
function eventTargetPatch (line 19456) | function eventTargetPatch(_global, api) {
function patchEvent (line 19491) | function patchEvent(global, api) {
function patchXHR (line 19578) | function patchXHR(window) {
function findPromiseRejectionHandler (line 19763) | function findPromiseRejectionHandler(evtName) {
function eventTargetLegacyPatch (line 19828) | function eventTargetLegacyPatch(_global, api) {
function apply (line 19945) | function apply(api, _global) {
function propertyDescriptorLegacyPatch (line 20016) | function propertyDescriptorLegacyPatch(api, _global) {
function canPatchViaPropertyDescriptor (line 20039) | function canPatchViaPropertyDescriptor(api, _global) {
function patchViaCapturingAllTheEvents (line 20121) | function patchViaCapturingAllTheEvents(api) {
function registerElementPatch (line 20164) | function registerElementPatch(_global, api) {
FILE: frontend/dist/obscurify3/runtime-es2015.js
function webpackJsonpCallback (line 3) | function webpackJsonpCallback(data) {
function checkDeferredModules (line 35) | function checkDeferredModules() {
function __webpack_require__ (line 66) | function __webpack_require__(moduleId) {
FILE: frontend/dist/obscurify3/runtime-es5.js
function webpackJsonpCallback (line 3) | function webpackJsonpCallback(data) {
function checkDeferredModules (line 35) | function checkDeferredModules() {
function __webpack_require__ (line 66) | function __webpack_require__(moduleId) {
FILE: frontend/dist/obscurify3/styles-es2015.js
function listToStyles (line 66) | function listToStyles(list, options) {
function addStylesToDom (line 95) | function addStylesToDom(styles, options) {
function insertStyleElement (line 127) | function insertStyleElement(options) {
function removeStyleElement (line 157) | function removeStyleElement(style) {
function applyToSingletonTag (line 176) | function applyToSingletonTag(style, index, remove, obj) {
function applyToTag (line 199) | function applyToTag(style, options, obj) {
function addStyle (line 229) | function addStyle(obj, options) {
FILE: frontend/dist/obscurify3/styles-es5.js
function listToStyles (line 70) | function listToStyles(list, options) {
function addStylesToDom (line 99) | function addStylesToDom(styles, options) {
function insertStyleElement (line 131) | function insertStyleElement(options) {
function removeStyleElement (line 161) | function removeStyleElement(style) {
function applyToSingletonTag (line 180) | function applyToSingletonTag(style, index, remove, obj) {
function applyToTag (line 203) | function applyToTag(style, options, obj) {
function addStyle (line 233) | function addStyle(obj, options) {
FILE: frontend/dist/obscurify3/vendor-es2015.js
class AnimationBuilder (line 88) | class AnimationBuilder {
class AnimationFactory (line 97) | class AnimationFactory {
function ɵStyleData (line 116) | function ɵStyleData() { }
function AnimationMetadata (line 198) | function AnimationMetadata() { }
function AnimationTriggerMetadata (line 207) | function AnimationTriggerMetadata() { }
function AnimationStateMetadata (line 216) | function AnimationStateMetadata() { }
function AnimationTransitionMetadata (line 225) | function AnimationTransitionMetadata() { }
function AnimationReferenceMetadata (line 235) | function AnimationReferenceMetadata() { }
function AnimationQueryMetadata (line 244) | function AnimationQueryMetadata() { }
function AnimationKeyframesSequenceMetadata (line 253) | function AnimationKeyframesSequenceMetadata() { }
function AnimationStyleMetadata (line 262) | function AnimationStyleMetadata() { }
function AnimationAnimateMetadata (line 271) | function AnimationAnimateMetadata() { }
function AnimationAnimateChildMetadata (line 280) | function AnimationAnimateChildMetadata() { }
function AnimationAnimateRefMetadata (line 289) | function AnimationAnimateRefMetadata() { }
function AnimationSequenceMetadata (line 298) | function AnimationSequenceMetadata() { }
function AnimationGroupMetadata (line 307) | function AnimationGroupMetadata() { }
function AnimationStaggerMetadata (line 317) | function AnimationStaggerMetadata() { }
function trigger (line 464) | function trigger(name, definitions) {
function animate (line 525) | function animate(timings, styles = null) {
function group (line 561) | function group(steps, options = null) {
function sequence (line 597) | function sequence(steps, options = null) {
function style (line 640) | function style(tokens) {
function state (line 673) | function state(name, styles, options) {
function keyframes (line 720) | function keyframes(steps) {
function transition (line 892) | function transition(stateChangeExpr, steps, options = null) {
function animation (line 940) | function animation(steps, options = null) {
function animateChild (line 962) | function animateChild(options = null) {
function useAnimation (line 975) | function useAnimation(animation, options = null) {
function query (line 1065) | function query(selector, animation, options = null) {
function stagger (line 1148) | function stagger(timings, animation) {
function scheduleMicroTask (line 1165) | function scheduleMicroTask(cb) {
function AnimationPlayer (line 1185) | function AnimationPlayer() { }
class NoopAnimationPlayer (line 1198) | class NoopAnimationPlayer {
method constructor (line 1203) | constructor(duration = 0, delay = 0) {
method _onFinish (line 1217) | _onFinish() {
method onStart (line 1232) | onStart(fn) { this._onStartFns.push(fn); }
method onDone (line 1237) | onDone(fn) { this._onDoneFns.push(fn); }
method onDestroy (line 1242) | onDestroy(fn) { this._onDestroyFns.push(fn); }
method hasStarted (line 1246) | hasStarted() { return this._started; }
method init (line 1250) | init() { }
method play (line 1254) | play() {
method triggerMicrotask (line 1265) | triggerMicrotask() { scheduleMicroTask((/**
method _onStart (line 1273) | _onStart() {
method pause (line 1284) | pause() { }
method restart (line 1288) | restart() { }
method finish (line 1292) | finish() { this._onFinish(); }
method destroy (line 1296) | destroy() {
method reset (line 1314) | reset() { }
method setPosition (line 1319) | setPosition(position) { }
method getPosition (line 1323) | getPosition() { return 0; }
method triggerCallback (line 1329) | triggerCallback(phaseName) {
class AnimationGroupPlayer (line 1354) | class AnimationGroupPlayer {
method constructor (line 1358) | constructor(_players) {
method _onFinish (line 1425) | _onFinish() {
method init (line 1439) | init() { this.players.forEach((/**
method onStart (line 1448) | onStart(fn) { this._onStartFns.push(fn); }
method _onStart (line 1453) | _onStart() {
method onDone (line 1468) | onDone(fn) { this._onDoneFns.push(fn); }
method onDestroy (line 1473) | onDestroy(fn) { this._onDestroyFns.push(fn); }
method hasStarted (line 1477) | hasStarted() { return this._started; }
method play (line 1481) | play() {
method pause (line 1495) | pause() { this.players.forEach((/**
method restart (line 1503) | restart() { this.players.forEach((/**
method finish (line 1511) | finish() {
method destroy (line 1522) | destroy() { this._onDestroy(); }
method _onDestroy (line 1527) | _onDestroy() {
method reset (line 1547) | reset() {
method setPosition (line 1561) | setPosition(p) {
method getPosition (line 1577) | getPosition() {
method beforeDestroy (line 1594) | beforeDestroy() {
method triggerCallback (line 1610) | triggerCallback(phaseName) {
function isBrowser (line 1701) | function isBrowser() {
function isNode (line 1707) | function isNode() {
function optimizeGroupPlayer (line 1714) | function optimizeGroupPlayer(players) {
function normalizeKeyframes (line 1733) | function normalizeKeyframes(driver, normalizer, element, keyframes, preS...
function listenOnPlayer (line 1799) | function listenOnPlayer(player, eventName, event, callback) {
function copyAnimationEvent (line 1827) | function copyAnimationEvent(e, phaseName, player) {
function makeAnimationEvent (line 1851) | function makeAnimationEvent(element, triggerName, fromState, toState, ph...
function getOrSetAsInMap (line 1860) | function getOrSetAsInMap(map, key, defaultValue) {
function parseTimelineCommand (line 1881) | function parseTimelineCommand(command) {
function containsVendorPrefix (line 1986) | function containsVendorPrefix(prop) {
function validateStyleProperty (line 1999) | function validateStyleProperty(prop) {
function getBodyNode (line 2019) | function getBodyNode() {
function hypenatePropsObject (line 2035) | function hypenatePropsObject(object) {
class NoopAnimationDriver (line 2057) | class NoopAnimationDriver {
method validateStyleProperty (line 2062) | validateStyleProperty(prop) { return validateStyleProperty(prop); }
method matchesElement (line 2068) | matchesElement(element, selector) {
method containsElement (line 2076) | containsElement(elm1, elm2) { return containsElement(elm1, elm2); }
method query (line 2083) | query(element, selector, multi) {
method computeStyle (line 2092) | computeStyle(element, prop, defaultValue) {
method animate (line 2105) | animate(element, keyframes, duration, delay, easing, previousPlayers =...
class AnimationDriver (line 2116) | class AnimationDriver {
function resolveTimingValue (line 2151) | function resolveTimingValue(value) {
function _convertTimeValueToMS (line 2165) | function _convertTimeValueToMS(value, unit) {
function resolveTiming (line 2179) | function resolveTiming(timings, errors, allowNegativeValues) {
function parseTimeExpression (line 2190) | function parseTimeExpression(exp, errors, allowNegativeValues) {
function copyObj (line 2245) | function copyObj(obj, destination = {}) {
function normalizeStyles (line 2257) | function normalizeStyles(styles) {
function copyStyles (line 2278) | function copyStyles(styles, readPrototype, destination = {}) {
function getStyleAttributeString (line 2298) | function getStyleAttributeString(element, key, value) {
function writeStyleAttribute (line 2312) | function writeStyleAttribute(element) {
function setStyles (line 2341) | function setStyles(element, styles, formerStyles) {
function eraseStyles (line 2366) | function eraseStyles(element, styles) {
function normalizeAnimationEntry (line 2387) | function normalizeAnimationEntry(steps) {
function validateStyleParams (line 2401) | function validateStyleParams(value, options, errors) {
function extractStyleParams (line 2424) | function extractStyleParams(value) {
function interpolateParams (line 2445) | function interpolateParams(value, params, errors) {
function iteratorToArray (line 2471) | function iteratorToArray(iterator) {
function mergeAnimationOptions (line 2487) | function mergeAnimationOptions(source, destination) {
function dashCaseToCamelCase (line 2514) | function dashCaseToCamelCase(input) {
function camelCaseToDashCase (line 2525) | function camelCaseToDashCase(input) {
function allowPreviousPlayerStylesMerge (line 2533) | function allowPreviousPlayerStylesMerge(duration, delay) {
function balancePreviousStylesIntoKeyframes (line 2542) | function balancePreviousStylesIntoKeyframes(element, keyframes, previous...
function visitDslNode (line 2581) | function visitDslNode(visitor, node, context) {
function computeStyle (line 2618) | function computeStyle(element, prop) {
function parseTransitionExpr (line 2640) | function parseTransitionExpr(transitionValue, errors) {
function parseInnerTransitionStr (line 2663) | function parseInnerTransitionStr(eventStr, expressions, errors) {
function parseAnimationAlias (line 2697) | function parseAnimationAlias(alias, errors) {
function makeLambdaFromStates (line 2735) | function makeLambdaFromStates(lhs, rhs) {
function buildAnimationAst (line 2810) | function buildAnimationAst(driver, metadata, errors) {
class AnimationAstBuilderVisitor (line 2815) | class AnimationAstBuilderVisitor {
method constructor (line 2819) | constructor(_driver) {
method build (line 2827) | build(metadata, errors) {
method _resetContextStyleTimingState (line 2838) | _resetContextStyleTimingState(context) {
method visitTrigger (line 2849) | visitTrigger(metadata, context) {
method visitState (line 2904) | visitState(metadata, context) {
method visitTransition (line 2957) | visitTransition(metadata, context) {
method visitSequence (line 2978) | visitSequence(metadata, context) {
method visitGroup (line 2994) | visitGroup(metadata, context) {
method visitAnimate (line 3023) | visitAnimate(metadata, context) {
method visitStyle (line 3067) | visitStyle(metadata, context) {
method _makeStyleAst (line 3079) | _makeStyleAst(metadata, context) {
method _validateStyleAst (line 3148) | _validateStyleAst(ast, context) {
method visitKeyframes (line 3205) | visitKeyframes(metadata, context) {
method visitReference (line 3293) | visitReference(metadata, context) {
method visitAnimateChild (line 3305) | visitAnimateChild(metadata, context) {
method visitAnimateRef (line 3317) | visitAnimateRef(metadata, context) {
method visitQuery (line 3329) | visitQuery(metadata, context) {
method visitStagger (line 3358) | visitStagger(metadata, context) {
function normalizeSelector (line 3378) | function normalizeSelector(selector) {
function normalizeParams (line 3402) | function normalizeParams(obj) {
class AnimationAstBuilderContext (line 3405) | class AnimationAstBuilderContext {
method constructor (line 3409) | constructor(errors) {
function consumeOffset (line 3427) | function consumeOffset(styles) {
function isObject (line 3458) | function isObject(value) {
function constructTimingAst (line 3466) | function constructTimingAst(value, errors) {
function normalizeAnimationOptions (line 3499) | function normalizeAnimationOptions(options) {
function makeTimingAst (line 3517) | function makeTimingAst(duration, delay, easing) {
function AnimationTimelineInstruction (line 3528) | function AnimationTimelineInstruction() { }
function createTimelineInstruction (line 3541) | function createTimelineInstruction(element, keyframes, preStyleProps, po...
class ElementInstructionMap (line 3558) | class ElementInstructionMap {
method constructor (line 3559) | constructor() {
method consume (line 3566) | consume(element) {
method append (line 3582) | append(element, instructions) {
method has (line 3594) | has(element) { return this._map.has(element); }
method clear (line 3598) | clear() { this._map.clear(); }
function buildAnimationTimelines (line 3713) | function buildAnimationTimelines(driver, rootElement, ast, enterClassNam...
class AnimationTimelineBuilderVisitor (line 3716) | class AnimationTimelineBuilderVisitor {
method buildKeyframes (line 3730) | buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassNam...
method visitTrigger (line 3763) | visitTrigger(ast, context) {
method visitState (line 3771) | visitState(ast, context) {
method visitTransition (line 3779) | visitTransition(ast, context) {
method visitAnimateChild (line 3787) | visitAnimateChild(ast, context) {
method visitAnimateRef (line 3810) | visitAnimateRef(ast, context) {
method _visitSubInstructions (line 3825) | _visitSubInstructions(instructions, context, options) {
method visitReference (line 3855) | visitReference(ast, context) {
method visitSequence (line 3865) | visitSequence(ast, context) {
method visitGroup (line 3907) | visitGroup(ast, context) {
method _visitTiming (line 3945) | _visitTiming(ast, context) {
method visitAnimate (line 3962) | visitAnimate(ast, context) {
method visitStyle (line 3989) | visitStyle(ast, context) {
method visitKeyframes (line 4014) | visitKeyframes(ast, context) {
method visitQuery (line 4050) | visitQuery(ast, context) {
method visitStagger (line 4109) | visitStagger(ast, context) {
class AnimationTimelineContext (line 4151) | class AnimationTimelineContext {
method constructor (line 4162) | constructor(_driver, element, subInstructions, _enterClassName, _leave...
method params (line 4184) | get params() { return this.options.params; }
method updateOptions (line 4190) | updateOptions(options, skipIfExists) {
method _copyOptions (line 4227) | _copyOptions() {
method createSubContext (line 4251) | createSubContext(options = null, element, newTime) {
method transformIntoNewTimeline (line 4270) | transformIntoNewTimeline(newTime) {
method appendInstructionToTimeline (line 4282) | appendInstructionToTimeline(instruction, duration, delay) {
method incrementTime (line 4298) | incrementTime(time) {
method delayNextStep (line 4305) | delayNextStep(delay) {
method invokeQuery (line 4320) | invokeQuery(selector, originalSelector, limit, includeSelf, optional, ...
class TimelineBuilder (line 4346) | class TimelineBuilder {
method constructor (line 4353) | constructor(_driver, element, startTime, _elementTimelineStylesLookup) {
method containsAnimation (line 4380) | containsAnimation() {
method getCurrentStyleProperties (line 4393) | getCurrentStyleProperties() { return Object.keys(this._currentKeyframe...
method currentTime (line 4397) | get currentTime() { return this.startTime + this.duration; }
method delayNextStep (line 4402) | delayNextStep(delay) {
method fork (line 4424) | fork(element, currentTime) {
method _loadKeyframe (line 4432) | _loadKeyframe() {
method forwardFrame (line 4445) | forwardFrame() {
method forwardTime (line 4453) | forwardTime(time) {
method _updateStyle (line 4464) | _updateStyle(prop, value) {
method allowOnlyTimelineStyles (line 4472) | allowOnlyTimelineStyles() { return this._currentEmptyStepKeyframe !== ...
method applyEmptyStep (line 4477) | applyEmptyStep(easing) {
method setStyles (line 4504) | setStyles(input, easing, errors, options) {
method applyStylesToKeyframe (line 4531) | applyStylesToKeyframe() {
method snapshotCurrentStyles (line 4561) | snapshotCurrentStyles() {
method getFinalKeyframe (line 4576) | getFinalKeyframe() { return this._keyframes.get(this.duration); }
method properties (line 4580) | get properties() {
method mergeTimelineCollectedStyles (line 4592) | mergeTimelineCollectedStyles(timeline) {
method buildKeyframes (line 4610) | buildKeyframes() {
class SubTimelineBuilder (line 4665) | class SubTimelineBuilder extends TimelineBuilder {
method constructor (line 4675) | constructor(driver, element, keyframes, preStyleProps, postStyleProps,...
method containsAnimation (line 4687) | containsAnimation() { return this.keyframes.length > 1; }
method buildKeyframes (line 4691) | buildKeyframes() {
function roundOffset (line 4753) | function roundOffset(offset, decimalPoints = 3) {
function flattenStyles (line 4763) | function flattenStyles(input, allStyles) {
class Animation (line 4792) | class Animation {
method constructor (line 4797) | constructor(_driver, input) {
method buildTimelines (line 4818) | buildTimelines(element, startingStyles, destinationStyles, options, su...
class AnimationStyleNormalizer (line 4855) | class AnimationStyleNormalizer {
class NoopAnimationStyleNormalizer (line 4861) | class NoopAnimationStyleNormalizer {
method normalizePropertyName (line 4867) | normalizePropertyName(propertyName, errors) { return propertyName; }
method normalizeStyleValue (line 4875) | normalizeStyleValue(userProvidedProperty, normalizedProperty, value, e...
class WebAnimationsStyleNormalizer (line 4884) | class WebAnimationsStyleNormalizer extends AnimationStyleNormalizer {
method normalizePropertyName (line 4890) | normalizePropertyName(propertyName, errors) {
method normalizeStyleValue (line 4900) | normalizeStyleValue(userProvidedProperty, normalizedProperty, value, e...
function makeBooleanMap (line 4931) | function makeBooleanMap(keys) {
function AnimationTransitionInstruction (line 4949) | function AnimationTransitionInstruction() { }
function createTransitionInstruction (line 4967) | function createTransitionInstruction(element, triggerName, fromState, to...
class AnimationTransitionFactory (line 4992) | class AnimationTransitionFactory {
method constructor (line 4998) | constructor(_triggerName, ast, _stateStyles) {
method match (line 5010) | match(currentState, nextState, element, params) {
method buildStyles (line 5019) | buildStyles(stateName, params, errors) {
method build (line 5041) | build(driver, element, currentState, nextState, enterClassName, leaveC...
function oneOrMoreTransitionsMatch (line 5115) | function oneOrMoreTransitionsMatch(matchFns, currentState, nextState, el...
class AnimationStateStyles (line 5122) | class AnimationStateStyles {
method constructor (line 5127) | constructor(styles, defaultParams) {
method buildStyles (line 5136) | buildStyles(params, errors) {
function buildTrigger (line 5189) | function buildTrigger(name, ast) {
class AnimationTrigger (line 5195) | class AnimationTrigger {
method constructor (line 5200) | constructor(name, ast) {
method containsQueries (line 5228) | get containsQueries() { return this.ast.queryCount > 0; }
method matchTransition (line 5236) | matchTransition(currentState, nextState, element, params) {
method matchStyles (line 5251) | matchStyles(currentState, params, errors) {
function createFallbackTransition (line 5261) | function createFallbackTransition(triggerName, states) {
function balanceProperties (line 5288) | function balanceProperties(obj, key1, key2) {
class TimelineAnimationEngine (line 5305) | class TimelineAnimationEngine {
method constructor (line 5311) | constructor(bodyNode, _driver, _normalizer) {
method register (line 5324) | register(id, metadata) {
method _buildPlayer (line 5343) | _buildPlayer(i, preStyles, postStyles) {
method create (line 5356) | create(id, element, options = {}) {
method destroy (line 5424) | destroy(id) {
method _getPlayer (line 5440) | _getPlayer(id) {
method listen (line 5455) | listen(id, element, eventName, callback) {
method command (line 5472) | command(id, element, command, args) {
function TriggerListener (line 5552) | function TriggerListener() { }
function QueueInstruction (line 5557) | function QueueInstruction() { }
function ElementAnimationState (line 5564) | function ElementAnimationState() { }
class StateValue (line 5566) | class StateValue {
method constructor (line 5571) | constructor(input, namespaceId = '') {
method params (line 5594) | get params() { return (/** @type {?} */ (this.options.params)); }
method absorbOptions (line 5599) | absorbOptions(options) {
class AnimationTransitionNamespace (line 5622) | class AnimationTransitionNamespace {
method constructor (line 5628) | constructor(id, hostElement, _engine) {
method listen (line 5646) | listen(element, name, phase, callback) {
method register (line 5695) | register(name, ast) {
method _getTrigger (line 5710) | _getTrigger(name) {
method trigger (line 5725) | trigger(element, triggerName, value, defaultToFallback = true) {
method deregister (line 5844) | deregister(name) {
method clearElementCache (line 5869) | clearElementCache(element) {
method _signalRemovalForInnerTriggers (line 5890) | _signalRemovalForInnerTriggers(rootElement, context, animate = false) {
method triggerLeaveAnimation (line 5924) | triggerLeaveAnimation(element, context, destroyAfterComplete, defaultT...
method prepareLeaveAnimationListeners (line 5962) | prepareLeaveAnimationListeners(element) {
method removeNode (line 6008) | removeNode(element, context) {
method insertNode (line 6070) | insertNode(element, parent) { addClass(element, this._hostClassName); }
method drainQueuedTransitions (line 6075) | drainQueuedTransitions(microtaskId) {
method destroy (line 6142) | destroy(context) {
method elementContainsData (line 6154) | elementContainsData(element) {
function QueuedTransition (line 6172) | function QueuedTransition() { }
class TransitionAnimationEngine (line 6174) | class TransitionAnimationEngine {
method constructor (line 6180) | constructor(bodyNode, driver, _normalizer) {
method _onRemovalComplete (line 6213) | _onRemovalComplete(element, context) { this.onRemovalComplete(element,...
method queuedPlayers (line 6217) | get queuedPlayers() {
method createNamespace (line 6242) | createNamespace(namespaceId, hostElement) {
method _balanceNamespaceList (line 6268) | _balanceNamespaceList(ns, hostElement) {
method register (line 6298) | register(namespaceId, hostElement) {
method registerTrigger (line 6312) | registerTrigger(namespaceId, name, trigger) {
method destroy (line 6324) | destroy(namespaceId, context) {
method _fetchNamespace (line 6351) | _fetchNamespace(id) { return this._namespaceLookup[id]; }
method fetchNamespacesByElement (line 6356) | fetchNamespacesByElement(element) {
method trigger (line 6390) | trigger(namespaceId, element, name, value) {
method insertNode (line 6408) | insertNode(namespaceId, element, parent, insertBefore) {
method collectEnterElement (line 6449) | collectEnterElement(element) { this.collectedEnterElements.push(elemen...
method markElementAsDisabled (line 6455) | markElementAsDisabled(element, value) {
method removeNode (line 6474) | removeNode(namespaceId, element, isHostElement, context) {
method markElementAsRemoved (line 6503) | markElementAsRemoved(namespaceId, element, hasAnimation, context) {
method listen (line 6519) | listen(namespaceId, element, name, phase, callback) {
method _buildInstruction (line 6537) | _buildInstruction(entry, subTimelines, enterClassName, leaveClassName,...
method destroyInnerAnimations (line 6544) | destroyInnerAnimations(containerElement) {
method destroyActiveAnimationsForElement (line 6565) | destroyActiveAnimationsForElement(element) {
method finishActiveQueriedAnimationOnElement (line 6590) | finishActiveQueriedAnimationOnElement(element) {
method whenRenderingDone (line 6604) | whenRenderingDone() {
method processLeaveNode (line 6625) | processLeaveNode(element) {
method flush (line 6656) | flush(microtaskId = -1) {
method reportError (line 6734) | reportError(errors) {
method _flushAnimations (line 6743) | _flushAnimations(cleanupFns, microtaskId) {
method elementContainsData (line 7311) | elementContainsData(namespaceId, element) {
method afterFlush (line 7330) | afterFlush(callback) { this._flushFns.push(callback); }
method afterFlushAnimationsDone (line 7335) | afterFlushAnimationsDone(callback) { this._whenQuietFns.push(callback); }
method _getPreviousPlayers (line 7345) | _getPreviousPlayers(element, isQueriedElement, namespaceId, triggerNam...
method _beforeAnimationBuild (line 7396) | _beforeAnimationBuild(namespaceId, instruction, allPreviousPlayersMap) {
method _buildAnimation (line 7444) | _buildAnimation(namespaceId, instruction, allPreviousPlayersMap, skipp...
method _buildPlayer (line 7559) | _buildPlayer(instruction, keyframes, previousPlayers) {
class TransitionAnimationPlayer (line 7569) | class TransitionAnimationPlayer {
method constructor (line 7575) | constructor(namespaceId, triggerName, element) {
method setRealPlayer (line 7592) | setRealPlayer(player) {
method getRealPlayer (line 7615) | getRealPlayer() { return this._player; }
method overrideTotalTime (line 7620) | overrideTotalTime(totalTime) { ((/** @type {?} */ (this))).totalTime =...
method syncPlayerEvents (line 7625) | syncPlayerEvents(player) {
method _queueEvent (line 7649) | _queueEvent(name, callback) {
method onDone (line 7656) | onDone(fn) {
method onStart (line 7666) | onStart(fn) {
method onDestroy (line 7676) | onDestroy(fn) {
method init (line 7685) | init() { this._player.init(); }
method hasStarted (line 7689) | hasStarted() { return this.queued ? false : this._player.hasStarted(); }
method play (line 7693) | play() { !this.queued && this._player.play(); }
method pause (line 7697) | pause() { !this.queued && this._player.pause(); }
method restart (line 7701) | restart() { !this.queued && this._player.restart(); }
method finish (line 7705) | finish() { this._player.finish(); }
method destroy (line 7709) | destroy() {
method reset (line 7716) | reset() { !this.queued && this._player.reset(); }
method setPosition (line 7721) | setPosition(p) {
method getPosition (line 7729) | getPosition() { return this.queued ? 0 : this._player.getPosition(); }
method triggerCallback (line 7735) | triggerCallback(phaseName) {
function deleteOrUnsetInMap (line 7750) | function deleteOrUnsetInMap(map, key, value) {
function normalizeTriggerValue (line 7785) | function normalizeTriggerValue(value) {
function isElementNode (line 7795) | function isElementNode(node) {
function isTriggerEventValid (line 7802) | function isTriggerEventValid(eventName) {
function cloakElement (line 7810) | function cloakElement(element, value) {
function cloakAndComputeStyles (line 7824) | function cloakAndComputeStyles(valuesMap, driver, elements, elementProps...
function buildRootMap (line 7884) | function buildRootMap(roots, nodes) {
function containsClass (line 7945) | function containsClass(element, className) {
function addClass (line 7960) | function addClass(element, className) {
function removeClass (line 7978) | function removeClass(element, className) {
function removeNodesAfterAnimationDone (line 7996) | function removeNodesAfterAnimationDone(engine, element, players) {
function flattenGroupPlayers (line 8006) | function flattenGroupPlayers(players) {
function _flattenGroupPlayersRecur (line 8017) | function _flattenGroupPlayersRecur(players, finalPlayers) {
function objEquals (line 8034) | function objEquals(a, b) {
function replacePostStylesAsPre (line 8055) | function replacePostStylesAsPre(element, allPreStyleElements, allPostSty...
class AnimationEngine (line 8080) | class AnimationEngine {
method constructor (line 8086) | constructor(bodyNode, _driver, normalizer) {
method registerTrigger (line 8114) | registerTrigger(componentId, namespaceId, hostElement, name, metadata) {
method register (line 8137) | register(namespaceId, hostElement) {
method destroy (line 8145) | destroy(namespaceId, context) {
method onInsert (line 8155) | onInsert(namespaceId, element, parent, insertBefore) {
method onRemove (line 8165) | onRemove(namespaceId, element, context, isHostElement) {
method disableAnimations (line 8173) | disableAnimations(element, disable) {
method process (line 8183) | process(namespaceId, element, property, value) {
method listen (line 8202) | listen(namespaceId, element, eventName, eventPhase, callback) {
method flush (line 8214) | flush(microtaskId = -1) { this._transitionEngine.flush(microtaskId); }
method players (line 8218) | get players() {
method whenRenderingDone (line 8225) | whenRenderingDone() { return this._transitionEngine.whenRenderingDone(...
function packageNonAnimatableStyles (line 8246) | function packageNonAnimatableStyles(element, styles) {
class SpecialCasedStyles (line 8271) | class SpecialCasedStyles {
method constructor (line 8277) | constructor(_element, _startStyles, _endStyles) {
method start (line 8292) | start() {
method finish (line 8303) | finish() {
method destroy (line 8317) | destroy() {
function filterNonAnimatableStyles (line 8347) | function filterNonAnimatableStyles(styles) {
function isNonAnimatableStyle (line 8366) | function isNonAnimatableStyle(prop) {
class ElementAnimationStyleHandler (line 8389) | class ElementAnimationStyleHandler {
method constructor (line 8399) | constructor(_element, _name, _duration, _delay, _easing, _fillMode, _o...
method apply (line 8420) | apply() {
method pause (line 8428) | pause() { playPauseAnimation(this._element, this._name, 'paused'); }
method resume (line 8432) | resume() { playPauseAnimation(this._element, this._name, 'running'); }
method setPosition (line 8437) | setPosition(position) {
method getPosition (line 8446) | getPosition() { return this._position; }
method _handleCallback (line 8452) | _handleCallback(event) {
method finish (line 8465) | finish() {
method destroy (line 8475) | destroy() {
function playPauseAnimation (line 8490) | function playPauseAnimation(element, name, status) {
function applyKeyframeAnimation (line 8500) | function applyKeyframeAnimation(element, value) {
function removeKeyframeAnimation (line 8517) | function removeKeyframeAnimation(element, name) {
function findIndexForAnimation (line 8536) | function findIndexForAnimation(element, value) {
function findMatchingTokenIndex (line 8551) | function findMatchingTokenIndex(tokens, searchToken) {
function addRemoveAnimationEvent (line 8565) | function addRemoveAnimationEvent(element, fn, doRemove) {
function setAnimationStyle (line 8576) | function setAnimationStyle(element, name, value, index) {
function getAnimationStyle (line 8596) | function getAnimationStyle(element, name) {
function countChars (line 8604) | function countChars(value, char) {
class CssKeyframesPlayer (line 8628) | class CssKeyframesPlayer {
method constructor (line 8639) | constructor(element, keyframes, animationName, _duration, _delay, easi...
method onStart (line 8661) | onStart(fn) { this._onStartFns.push(fn); }
method onDone (line 8666) | onDone(fn) { this._onDoneFns.push(fn); }
method onDestroy (line 8671) | onDestroy(fn) { this._onDestroyFns.push(fn); }
method destroy (line 8675) | destroy() {
method _flushDoneFns (line 8697) | _flushDoneFns() {
method _flushStartFns (line 8709) | _flushStartFns() {
method finish (line 8720) | finish() {
method setPosition (line 8736) | setPosition(value) { this._styler.setPosition(value); }
method getPosition (line 8740) | getPosition() { return this._styler.getPosition(); }
method hasStarted (line 8744) | hasStarted() { return this._state >= 2 /* STARTED */; }
method init (line 8748) | init() {
method play (line 8762) | play() {
method pause (line 8776) | pause() {
method restart (line 8783) | restart() {
method reset (line 8790) | reset() {
method _buildStyler (line 8799) | _buildStyler() {
method triggerCallback (line 8810) | triggerCallback(phaseName) {
method beforeDestroy (line 8823) | beforeDestroy() {
class DirectStylePlayer (line 8849) | class DirectStylePlayer extends _angular_animations__WEBPACK_IMPORTED_MO...
method constructor (line 8854) | constructor(element, styles) {
method init (line 8864) | init() {
method play (line 8880) | play() {
method destroy (line 8895) | destroy() {
class CssKeyframesDriver (line 8926) | class CssKeyframesDriver {
method constructor (line 8927) | constructor() {
method validateStyleProperty (line 8936) | validateStyleProperty(prop) { return validateStyleProperty(prop); }
method matchesElement (line 8942) | matchesElement(element, selector) {
method containsElement (line 8950) | containsElement(elm1, elm2) { return containsElement(elm1, elm2); }
method query (line 8957) | query(element, selector, multi) {
method computeStyle (line 8966) | computeStyle(element, prop, defaultValue) {
method buildKeyframeElement (line 8975) | buildKeyframeElement(element, name, keyframes) {
method animate (line 9033) | animate(element, keyframes, duration, delay, easing, previousPlayers =...
method _notifyFaultyScrubber (line 9089) | _notifyFaultyScrubber() {
function flattenKeyframesIntoStyles (line 9101) | function flattenKeyframesIntoStyles(keyframes) {
function removeElement (line 9129) | function removeElement(node) {
class WebAnimationsPlayer (line 9137) | class WebAnimationsPlayer {
method constructor (line 9144) | constructor(element, keyframes, options, _specialStyles) {
method _onFinish (line 9167) | _onFinish() {
method init (line 9181) | init() {
method _buildPlayer (line 9189) | _buildPlayer() {
method _preparePlayerBeforeStart (line 9207) | _preparePlayerBeforeStart() {
method _triggerWebAnimation (line 9223) | _triggerWebAnimation(element, keyframes, options) {
method onStart (line 9232) | onStart(fn) { this._onStartFns.push(fn); }
method onDone (line 9237) | onDone(fn) { this._onDoneFns.push(fn); }
method onDestroy (line 9242) | onDestroy(fn) { this._onDestroyFns.push(fn); }
method play (line 9246) | play() {
method pause (line 9265) | pause() {
method finish (line 9272) | finish() {
method reset (line 9283) | reset() {
method _resetDomPlayerState (line 9293) | _resetDomPlayerState() {
method restart (line 9301) | restart() {
method hasStarted (line 9308) | hasStarted() { return this._started; }
method destroy (line 9312) | destroy() {
method setPosition (line 9332) | setPosition(p) { this.domPlayer.currentTime = p * this.time; }
method getPosition (line 9336) | getPosition() { return this.domPlayer.currentTime / this.time; }
method totalTime (line 9340) | get totalTime() { return this._delay + this._duration; }
method beforeDestroy (line 9344) | beforeDestroy() {
method triggerCallback (line 9366) | triggerCallback(phaseName) {
class WebAnimationsDriver (line 9383) | class WebAnimationsDriver {
method constructor (line 9384) | constructor() {
method validateStyleProperty (line 9392) | validateStyleProperty(prop) { return validateStyleProperty(prop); }
method matchesElement (line 9398) | matchesElement(element, selector) {
method containsElement (line 9406) | containsElement(elm1, elm2) { return containsElement(elm1, elm2); }
method query (line 9413) | query(element, selector, multi) {
method computeStyle (line 9422) | computeStyle(element, prop, defaultValue) {
method overrideWebAnimationsSupport (line 9429) | overrideWebAnimationsSupport(supported) { this._isNativeImpl = support...
method animate (line 9440) | animate(element, keyframes, duration, delay, easing, previousPlayers =...
function supportsWebAnimations (line 9493) | function supportsWebAnimations() {
function getElementAnimateFn (line 9499) | function getElementAnimateFn() {
function addAriaReferencedId (line 9611) | function addAriaReferencedId(el, attr, id) {
function removeAriaReferencedId (line 9632) | function removeAriaReferencedId(el, attr, id) {
function getAriaReferenceIds (line 9655) | function getAriaReferenceIds(el, attr) {
class AriaDescriber (line 9699) | class AriaDescriber {
method constructor (line 9703) | constructor(_document) {
method describe (line 9714) | describe(hostElement, message) {
method removeDescription (line 9736) | removeDescription(hostElement, message) {
method ngOnDestroy (line 9760) | ngOnDestroy() {
method _createMessageElement (line 9779) | _createMessageElement(message) {
method _setMessageId (line 9794) | _setMessageId(element) {
method _deleteMessageElement (line 9805) | _deleteMessageElement(message) {
method _createMessagesContainer (line 9820) | _createMessagesContainer() {
method _deleteMessagesContainer (line 9843) | _deleteMessagesContainer() {
method _removeCdkDescribedByReferenceIds (line 9855) | _removeCdkDescribedByReferenceIds(element) {
method _addMessageReference (line 9874) | _addMessageReference(element, message) {
method _removeMessageReference (line 9891) | _removeMessageReference(element, message) {
method _isElementDescribedByMessage (line 9905) | _isElementDescribedByMessage(element, message) {
method _canBeDescribed (line 9921) | _canBeDescribed(element, message) {
method _isElementNode (line 9945) | _isElementNode(element) {
function ARIA_DESCRIBER_PROVIDER_FACTORY (line 9963) | function ARIA_DESCRIBER_PROVIDER_FACTORY(parentDispatcher, _document) {
class ListKeyManager (line 9989) | class ListKeyManager {
method constructor (line 9993) | constructor(_items) {
method skipPredicate (line 10051) | skipPredicate(predicate) {
method withWrap (line 10063) | withWrap(shouldWrap = true) {
method withVerticalOrientation (line 10074) | withVerticalOrientation(enabled = true) {
method withHorizontalOrientation (line 10086) | withHorizontalOrientation(direction) {
method withAllowedModifierKeys (line 10098) | withAllowedModifierKeys(keys) {
method withTypeAhead (line 10109) | withTypeAhead(debounceInterval = 200) {
method setActiveItem (line 10159) | setActiveItem(item) {
method onKeydown (line 10172) | onKeydown(event) {
method activeItemIndex (line 10243) | get activeItemIndex() {
method activeItem (line 10250) | get activeItem() {
method setFirstItemActive (line 10257) | setFirstItemActive() {
method setLastItemActive (line 10264) | setLastItemActive() {
method setNextItemActive (line 10271) | setNextItemActive() {
method setPreviousItemActive (line 10278) | setPreviousItemActive() {
method updateActiveItem (line 10286) | updateActiveItem(item) {
method updateActiveItemIndex (line 10304) | updateActiveItemIndex(index) {
method _setActiveItemByDelta (line 10315) | _setActiveItemByDelta(delta) {
method _setActiveInWrapMode (line 10326) | _setActiveInWrapMode(delta) {
method _setActiveInDefaultMode (line 10348) | _setActiveInDefaultMode(delta) {
method _setActiveItemByIndex (line 10360) | _setActiveItemByIndex(index, fallbackDelta) {
method _getItemsArray (line 10379) | _getItemsArray() {
class ActiveDescendantKeyManager (line 10391) | class ActiveDescendantKeyManager extends ListKeyManager {
method setActiveItem (line 10396) | setActiveItem(index) {
class FocusKeyManager (line 10414) | class FocusKeyManager extends ListKeyManager {
method constructor (line 10415) | constructor() {
method setFocusOrigin (line 10426) | setFocusOrigin(origin) {
method setActiveItem (line 10434) | setActiveItem(item) {
class InteractivityChecker (line 10453) | class InteractivityChecker {
method constructor (line 10457) | constructor(_platform) {
method isDisabled (line 10466) | isDisabled(element) {
method isVisible (line 10480) | isVisible(element) {
method isTabbable (line 10490) | isTabbable(element) {
method isFocusable (line 10561) | isFocusable(element) {
function getFrameElement (line 10582) | function getFrameElement(window) {
function hasGeometry (line 10595) | function hasGeometry(element) {
function isNativeFormElement (line 10606) | function isNativeFormElement(element) {
function isHiddenInput (line 10619) | function isHiddenInput(element) {
function isAnchorWithHref (line 10627) | function isAnchorWithHref(element) {
function isInputElement (line 10635) | function isInputElement(element) {
function isAnchorElement (line 10643) | function isAnchorElement(element) {
function hasValidTabIndex (line 10651) | function hasValidTabIndex(element) {
function getTabIndexValue (line 10669) | function getTabIndexValue(element) {
function isPotentiallyTabbableIOS (line 10683) | function isPotentiallyTabbableIOS(element) {
function isPotentiallyFocusable (line 10699) | function isPotentiallyFocusable(element) {
function getWindow (line 10714) | function getWindow(node) {
class FocusTrap (line 10730) | class FocusTrap {
method constructor (line 10738) | constructor(_element, _checker, _ngZone, _document, deferAnchors = fal...
method enabled (line 10762) | get enabled() { return this._enabled; }
method enabled (line 10767) | set enabled(value) {
method destroy (line 10778) | destroy() {
method attachAnchors (line 10803) | attachAnchors() {
method focusInitialElementWhenReady (line 10834) | focusInitialElementWhenReady() {
method focusFirstTabbableElementWhenReady (line 10852) | focusFirstTabbableElementWhenReady() {
method focusLastTabbableElementWhenReady (line 10870) | focusLastTabbableElementWhenReady() {
method _getRegionBoundary (line 10888) | _getRegionBoundary(bound) {
method focusInitialElement (line 10917) | focusInitialElement() {
method focusFirstTabbableElement (line 10943) | focusFirstTabbableElement() {
method focusLastTabbableElement (line 10955) | focusLastTabbableElement() {
method hasAttached (line 10967) | hasAttached() {
method _getFirstTabbableElement (line 10976) | _getFirstTabbableElement(root) {
method _getLastTabbableElement (line 11001) | _getLastTabbableElement(root) {
method _createAnchor (line 11024) | _createAnchor() {
method _toggleAnchorTabIndex (line 11040) | _toggleAnchorTabIndex(isEnabled, anchor) {
method _executeOnStable (line 11051) | _executeOnStable(fn) {
class FocusTrapFactory (line 11063) | class FocusTrapFactory {
method constructor (line 11069) | constructor(_checker, _ngZone, _document) {
method create (line 11081) | create(element, deferCaptureElements = false) {
class CdkTrapFocus (line 11098) | class CdkTrapFocus {
method constructor (line 11104) | constructor(_elementRef, _focusTrapFactory, _document) {
method enabled (line 11118) | get enabled() { return this.focusTrap.enabled; }
method enabled (line 11123) | set enabled(value) { this.focusTrap.enabled = Object(_angular_cdk_coer...
method autoCapture (line 11129) | get autoCapture() { return this._autoCapture; }
method autoCapture (line 11134) | set autoCapture(value) { this._autoCapture = Object(_angular_cdk_coerc...
method ngOnDestroy (line 11138) | ngOnDestroy() {
method ngAfterContentInit (line 11150) | ngAfterContentInit() {
method ngDoCheck (line 11160) | ngDoCheck() {
function LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY (line 11196) | function LIVE_ANNOUNCER_ELEMENT_TOKEN_FACTORY() {
class LiveAnnouncer (line 11209) | class LiveAnnouncer {
method constructor (line 11216) | constructor(elementToken, _ngZone, _document, _defaultOptions) {
method announce (line 11230) | announce(message, ...args) {
method clear (line 11291) | clear() {
method ngOnDestroy (line 11299) | ngOnDestroy() {
method _createLiveElement (line 11310) | _createLiveElement() {
class CdkAriaLive (line 11344) | class CdkAriaLive {
method constructor (line 11351) | constructor(_elementRef, _liveAnnouncer, _contentObserver, _ngZone) {
method politeness (line 11362) | get politeness() { return this._politeness; }
method politeness (line 11367) | set politeness(value) {
method ngOnDestroy (line 11402) | ngOnDestroy() {
function LIVE_ANNOUNCER_PROVIDER_FACTORY (line 11432) | function LIVE_ANNOUNCER_PROVIDER_FACTORY(parentAnnouncer, liveElement, _...
class FocusMonitor (line 11471) | class FocusMonitor {
method constructor (line 11476) | constructor(_ngZone, _platform) {
method monitor (line 11567) | monitor(element, checkChildren = false) {
method stopMonitoring (line 11627) | stopMonitoring(element) {
method focusVia (line 11646) | focusVia(element, origin, options) {
method ngOnDestroy (line 11659) | ngOnDestroy() {
method _toggleClass (line 11674) | _toggleClass(element, className, shouldSet) {
method _setClasses (line 11689) | _setClasses(element, origin) {
method _setOriginForCurrentEventQueue (line 11706) | _setOriginForCurrentEventQueue(origin) {
method _wasCausedByTouch (line 11727) | _wasCausedByTouch(event) {
method _onFocus (line 11757) | _onFocus(event, element) {
method _onBlur (line 11802) | _onBlur(event, element) {
method _emitOrigin (line 11820) | _emitOrigin(subject, origin) {
method _incrementMonitoredElementCount (line 11830) | _incrementMonitoredElementCount() {
method _decrementMonitoredElementCount (line 11850) | _decrementMonitoredElementCount() {
class CdkMonitorFocus (line 11882) | class CdkMonitorFocus {
method constructor (line 11887) | constructor(_elementRef, _focusMonitor) {
method ngOnDestroy (line 11901) | ngOnDestroy() {
function FOCUS_MONITOR_PROVIDER_FACTORY (line 11926) | function FOCUS_MONITOR_PROVIDER_FACTORY(parentDispatcher, ngZone, platfo...
function isFakeMousedownFromScreenReader (line 11954) | function isFakeMousedownFromScreenReader(event) {
class A11yModule (line 11962) | class A11yModule {
function DIR_DOCUMENT_FACTORY (line 12042) | function DIR_DOCUMENT_FACTORY() {
class Directionality (line 12054) | class Directionality {
method constructor (line 12058) | constructor(_document) {
method ngOnDestroy (line 12084) | ngOnDestroy() {
class Dir (line 12107) | class Dir {
method constructor (line 12108) | constructor() {
method dir (line 12126) | get dir() { return this._dir; }
method dir (line 12131) | set dir(value) {
method value (line 12146) | get value() { return this.dir; }
method ngAfterContentInit (line 12151) | ngAfterContentInit() {
method ngOnDestroy (line 12157) | ngOnDestroy() {
class BidiModule (line 12178) | class BidiModule {
function coerceBooleanProperty (line 12284) | function coerceBooleanProperty(value) {
function coerceNumberProperty (line 12298) | function coerceNumberProperty(value, fallbackValue = 0) {
function _isNumberValue (line 12307) | function _isNumberValue(value) {
function coerceArray (line 12325) | function coerceArray(value) {
function coerceCssPixelValue (line 12339) | function coerceCssPixelValue(value) {
function coerceElement (line 12357) | function coerceElement(elementOrRef) {
class DataSource (line 12413) | class DataSource {
function isDataSource (line 12420) | function isDataSource(value) {
class ArrayDataSource (line 12435) | class ArrayDataSource extends DataSource {
method constructor (line 12439) | constructor(_data) {
method connect (line 12446) | connect() {
method disconnect (line 12452) | disconnect() { }
class SelectionModel (line 12468) | class SelectionModel {
method constructor (line 12474) | constructor(_multiple = false, initiallySelectedValues, _emitChanges =...
method selected (line 12518) | get selected() {
method select (line 12529) | select(...values) {
method deselect (line 12543) | deselect(...values) {
method toggle (line 12557) | toggle(value) {
method clear (line 12564) | clear() {
method isSelected (line 12573) | isSelected(value) {
method isEmpty (line 12580) | isEmpty() {
method hasValue (line 12587) | hasValue() {
method sort (line 12595) | sort(predicate) {
method isMultipleSelection (line 12604) | isMultipleSelection() {
method _emitChangeEvent (line 12612) | _emitChangeEvent() {
method _markSelected (line 12631) | _markSelected(value) {
method _unmarkSelected (line 12648) | _unmarkSelected(value) {
method _unmarkAll (line 12661) | _unmarkAll() {
method _verifyValueAssignment (line 12677) | _verifyValueAssignment(values) {
function getMultipleValuesInSingleSelectionError (line 12689) | function getMultipleValuesInSingleSelectionError() {
class UniqueSelectionDispatcher (line 12706) | class UniqueSelectionDispatcher {
method constructor (line 12707) | constructor() {
method notify (line 12716) | notify(id, name) {
method listen (line 12726) | listen(listener) {
method ngOnDestroy (line 12744) | ngOnDestroy() {
function hasModifierKey (line 13171) | function hasModifierKey(event, ...modifiers) {
class LayoutModule (line 13233) | class LayoutModule {
class MediaMatcher (line 13256) | class MediaMatcher {
method constructor (line 13260) | constructor(_platform) {
method matchMedia (line 13276) | matchMedia(query) {
function createEmptyStyleRule (line 13297) | function createEmptyStyleRule(query) {
function noopMatchMedia (line 13322) | function noopMatchMedia(query) {
class BreakpointObserver (line 13346) | class BreakpointObserver {
method constructor (line 13351) | constructor(_mediaMatcher, _zone) {
method ngOnDestroy (line 13367) | ngOnDestroy() {
method isMatched (line 13376) | isMatched(value) {
method observe (line 13391) | observe(value) {
method _registerQuery (line 13431) | _registerQuery(query) {
function splitQueries (line 13493) | function splitQueries(queries) {
class MutationObserverFactory (line 13599) | class MutationObserverFactory {
method create (line 13604) | create(callback) {
class ContentObserver (line 13615) | class ContentObserver {
method constructor (line 13619) | constructor(_mutationObserverFactory) {
method ngOnDestroy (line 13629) | ngOnDestroy() {
method observe (line 13641) | observe(elementOrRef) {
method _observeElement (line 13669) | _observeElement(element) {
method _unobserveElement (line 13700) | _unobserveElement(element) {
method _cleanupObserver (line 13714) | _cleanupObserver(element) {
class CdkObserveContent (line 13737) | class CdkObserveContent {
method constructor (line 13743) | constructor(_contentObserver, _elementRef, _ngZone) {
method disabled (line 13759) | get disabled() { return this._disabled; }
method disabled (line 13764) | set disabled(value) {
method debounce (line 13772) | get debounce() { return this._debounce; }
method debounce (line 13777) | set debounce(value) {
method ngAfterContentInit (line 13784) | ngAfterContentInit() {
method ngOnDestroy (line 13792) | ngOnDestroy() {
method _subscribe (line 13799) | _subscribe() {
method _unsubscribe (line 13819) | _unsubscribe() {
class ObserversModule (line 13842) | class ObserversModule {
class BlockScrollStrategy (line 13952) | class BlockScrollStrategy {
method constructor (line 13957) | constructor(_viewportRuler, document) {
method attach (line 13967) | attach() { }
method enable (line 13972) | enable() {
method disable (line 13992) | disable() {
method _canBeEnabled (line 14022) | _canBeEnabled() {
function getMatScrollStrategyAlreadyAttachedError (line 14047) | function getMatScrollStrategyAlreadyAttachedError() {
class CloseScrollStrategy (line 14058) | class CloseScrollStrategy {
method constructor (line 14065) | constructor(_scrollDispatcher, _ngZone, _viewportRuler, _config) {
method attach (line 14092) | attach(overlayRef) {
method enable (line 14102) | enable() {
method disable (line 14132) | disable() {
method detach (line 14141) | detach() {
class NoopScrollStrategy (line 14155) | class NoopScrollStrategy {
method enable (line 14160) | enable() { }
method disable (line 14165) | disable() { }
method attach (line 14170) | attach() { }
function isElementScrolledOutsideView (line 14187) | function isElementScrolledOutsideView(element, scrollContainers) {
function isElementClippedByScrolling (line 14211) | function isElementClippedByScrolling(element, scrollContainers) {
class RepositionScrollStrategy (line 14236) | class RepositionScrollStrategy {
method constructor (line 14243) | constructor(_scrollDispatcher, _viewportRuler, _ngZone, _config) {
method attach (line 14255) | attach(overlayRef) {
method enable (line 14265) | enable() {
method disable (line 14298) | disable() {
method detach (line 14307) | detach() {
class ScrollStrategyOptions (line 14323) | class ScrollStrategyOptions {
method constructor (line 14330) | constructor(_scrollDispatcher, _viewportRuler, _ngZone, document) {
class OverlayConfig (line 14394) | class OverlayConfig {
method constructor (line 14398) | constructor(config) {
class ConnectionPositionPair (line 14446) | class ConnectionPositionPair {
method constructor (line 14454) | constructor(origin, overlay, offsetX, offsetY, panelClass) {
class ScrollingVisibility (line 14489) | class ScrollingVisibility {
class ConnectedOverlayPositionChange (line 14494) | class ConnectedOverlayPositionChange {
method constructor (line 14499) | constructor(connectionPair, scrollableViewProperties) {
function validateVerticalPosition (line 14516) | function validateVerticalPosition(property, value) {
function validateHorizontalPosition (line 14529) | function validateHorizontalPosition(property, value) {
class OverlayKeyboardDispatcher (line 14545) | class OverlayKeyboardDispatcher {
method constructor (line 14549) | constructor(document) {
method ngOnDestroy (line 14582) | ngOnDestroy() {
method add (line 14590) | add(overlayRef) {
method remove (line 14605) | remove(overlayRef) {
method _detach (line 14621) | _detach() {
function OVERLAY_KEYBOARD_DISPATCHER_PROVIDER_FACTORY (line 14642) | function OVERLAY_KEYBOARD_DISPATCHER_PROVIDER_FACTORY(dispatcher, _docum...
class OverlayContainer (line 14670) | class OverlayContainer {
method constructor (line 14674) | constructor(document) {
method ngOnDestroy (line 14680) | ngOnDestroy() {
method getContainerElement (line 14691) | getContainerElement() {
method _createContainer (line 14703) | _createContainer() {
function OVERLAY_CONTAINER_PROVIDER_FACTORY (line 14733) | function OVERLAY_CONTAINER_PROVIDER_FACTORY(parentContainer, _document) {
class OverlayRef (line 14758) | class OverlayRef {
method constructor (line 14769) | constructor(_portalOutlet, _host, _pane, _config, _ngZone, _keyboardDi...
method overlayElement (line 14822) | get overlayElement() {
method backdropElement (line 14829) | get backdropElement() {
method hostElement (line 14838) | get hostElement() {
method attach (line 14848) | attach(portal) {
method detach (line 14905) | detach() {
method dispose (line 14937) | dispose() {
method hasAttached (line 14965) | hasAttached() {
method backdropClick (line 14972) | backdropClick() {
method attachments (line 14979) | attachments() {
method detachments (line 14986) | detachments() {
method keydownEvents (line 14993) | keydownEvents() {
method getConfig (line 15000) | getConfig() {
method updatePosition (line 15007) | updatePosition() {
method updatePositionStrategy (line 15017) | updatePositionStrategy(strategy) {
method updateSize (line 15035) | updateSize(sizeConfig) {
method setDirection (line 15044) | setDirection(dir) {
method addPanelClass (line 15053) | addPanelClass(classes) {
method removePanelClass (line 15063) | removePanelClass(classes) {
method getDirection (line 15072) | getDirection() {
method updateScrollStrategy (line 15085) | updateScrollStrategy(strategy) {
method _updateElementDirection (line 15101) | _updateElementDirection() {
method _updateElementSize (line 15109) | _updateElementSize() {
method _togglePointerEvents (line 15128) | _togglePointerEvents(enablePointer) {
method _attachBackdrop (line 15136) | _attachBackdrop() {
method _updateStackingOrder (line 15179) | _updateStackingOrder() {
method detachBackdrop (line 15188) | detachBackdrop() {
method _toggleClasses (line 15246) | _toggleClasses(element, cssClasses, isAdd) {
method _detachContentWhenStable (line 15266) | _detachContentWhenStable() {
method _disposeScrollStrategy (line 15305) | _disposeScrollStrategy() {
class FlexibleConnectedPositionStrategy (line 15335) | class FlexibleConnectedPositionStrategy {
method constructor (line 15343) | constructor(connectedTo, _viewportRuler, _document, _platform, _overla...
method positions (line 15414) | get positions() {
method attach (line 15422) | attach(overlayRef) {
method apply (line 15461) | apply() {
method detach (line 15568) | detach() {
method dispose (line 15578) | dispose() {
method reapplyLastPosition (line 15613) | reapplyLastPosition() {
method withScrollableContainers (line 15634) | withScrollableContainers(scrollables) {
method withPositions (line 15645) | withPositions(positions) {
method withViewportMargin (line 15662) | withViewportMargin(margin) {
method withFlexibleDimensions (line 15673) | withFlexibleDimensions(flexibleDimensions = true) {
method withGrowAfterOpen (line 15684) | withGrowAfterOpen(growAfterOpen = true) {
method withPush (line 15695) | withPush(canPush = true) {
method withLockedPosition (line 15708) | withLockedPosition(isLocked = true) {
method setOrigin (line 15722) | setOrigin(origin) {
method withDefaultOffsetX (line 15733) | withDefaultOffsetX(offset) {
method withDefaultOffsetY (line 15744) | withDefaultOffsetY(offset) {
method withTransformOriginOn (line 15759) | withTransformOriginOn(selector) {
method _getOriginPoint (line 15770) | _getOriginPoint(originRect, pos) {
method _getOverlayPoint (line 15804) | _getOverlayPoint(originPoint, overlayRect, pos) {
method _getOverlayFit (line 15841) | _getOverlayFit(point, overlay, viewport, position) {
method _canFitWithFlexibleDimensions (line 15885) | _canFitWithFlexibleDimensions(fit, point, viewport) {
method _pushOverlayOnScreen (line 15917) | _pushOverlayOnScreen(start, overlay, scrollPosition) {
method _applyPosition (line 15972) | _applyPosition(position, originPoint) {
method _setTransformOrigin (line 15999) | _setTransformOrigin(position) {
method _calculateBoundingBoxRect (line 16032) | _calculateBoundingBoxRect(origin, position) {
method _setBoundingBoxStyles (line 16118) | _setBoundingBoxStyles(origin, position) {
method _resetBoundingBoxStyles (line 16173) | _resetBoundingBoxStyles() {
method _resetOverlayElementStyles (line 16190) | _resetOverlayElementStyles() {
method _setOverlayElementStyles (line 16207) | _setOverlayElementStyles(originPoint, position) {
method _getExactOverlayY (line 16256) | _getExactOverlayY(position, originPoint, scrollPosition) {
method _getExactOverlayX (line 16295) | _getExactOverlayX(position, originPoint, scrollPosition) {
method _getScrollVisibility (line 16335) | _getScrollVisibility() {
method _subtractOverflows (line 16366) | _subtractOverflows(length, ...overflows) {
method _getNarrowedViewportRect (line 16381) | _getNarrowedViewportRect() {
method _isRtl (line 16407) | _isRtl() {
method _hasExactPosition (line 16415) | _hasExactPosition() {
method _getOffset (line 16425) | _getOffset(position, axis) {
method _validatePositions (line 16438) | _validatePositions() {
method _addPanelClasses (line 16461) | _addPanelClasses(cssClasses) {
method _clearPanelClasses (line 16480) | _clearPanelClasses() {
method _getOriginRect (line 16497) | _getOriginRect() {
function extendStyles (line 16527) | function extendStyles(dest, source) {
class ConnectedPositionStrategy (line 16549) | class ConnectedPositionStrategy {
method constructor (line 16559) | constructor(originPos, overlayPos, connectedTo, viewportRuler, documen...
method _isRtl (line 16578) | get _isRtl() {
method onPositionChange (line 16585) | get onPositionChange() {
method positions (line 16592) | get positions() {
method attach (line 16600) | attach(overlayRef) {
method dispose (line 16612) | dispose() {
method detach (line 16619) | detach() {
method apply (line 16628) | apply() {
method recalculateLastPosition (line 16637) | recalculateLastPosition() {
method withScrollableContainers (line 16647) | withScrollableContainers(scrollables) {
method withFallbackPosition (line 16660) | withFallbackPosition(originPos, overlayPos, offsetX, offsetY) {
method withDirection (line 16674) | withDirection(dir) {
method withOffsetX (line 16693) | withOffsetX(offset) {
method withOffsetY (line 16704) | withOffsetY(offset) {
method withLockedPosition (line 16717) | withLockedPosition(isLocked) {
method withPositions (line 16728) | withPositions(positions) {
method setOrigin (line 16740) | setOrigin(origin) {
class GlobalPositionStrategy (line 16762) | class GlobalPositionStrategy {
method constructor (line 16763) | constructor() {
method attach (line 16778) | attach(overlayRef) {
method top (line 16798) | top(value = '') {
method left (line 16811) | left(value = '') {
method bottom (line 16824) | bottom(value = '') {
method right (line 16837) | right(value = '') {
method width (line 16852) | width(value = '') {
method height (line 16870) | height(value = '') {
method centerHorizontally (line 16888) | centerHorizontally(offset = '') {
method centerVertically (line 16902) | centerVertically(offset = '') {
method apply (line 16912) | apply() {
method dispose (line 16958) | dispose() {
class OverlayPositionBuilder (line 16983) | class OverlayPositionBuilder {
method constructor (line 16990) | constructor(_viewportRuler, _document, _platform, _overlayContainer) {
method global (line 17000) | global() {
method connectedTo (line 17012) | connectedTo(elementRef, originPos, overlayPos) {
method flexibleConnectedTo (line 17020) | flexibleConnectedTo(origin) {
class Overlay (line 17055) | class Overlay {
method constructor (line 17068) | constructor(scrollStrategies, _overlayContainer, _componentFactoryReso...
method create (line 17085) | create(config) {
method position (line 17102) | position() {
method _createPaneElement (line 17111) | _createPaneElement(host) {
method _createHostElement (line 17125) | _createHostElement() {
method _createPortalOutlet (line 17137) | _createPortalOutlet(pane) {
class CdkOverlayOrigin (line 17206) | class CdkOverlayOrigin {
method constructor (line 17210) | constructor(elementRef) {
class CdkConnectedOverlay (line 17228) | class CdkConnectedOverlay {
method constructor (line 17237) | constructor(_overlay, templateRef, viewContainerRef, scrollStrategyFac...
method offsetX (line 17282) | get offsetX() { return this._offsetX; }
method offsetX (line 17287) | set offsetX(offsetX) {
method offsetY (line 17297) | get offsetY() { return this._offsetY; }
method offsetY (line 17302) | set offsetY(offsetY) {
method hasBackdrop (line 17312) | get hasBackdrop() { return this._hasBackdrop; }
method hasBackdrop (line 17317) | set hasBackdrop(value) { this._hasBackdrop = Object(_angular_cdk_coerc...
method lockPosition (line 17322) | get lockPosition() { return this._lockPosition; }
method lockPosition (line 17327) | set lockPosition(value) { this._lockPosition = Object(_angular_cdk_coe...
method flexibleDimensions (line 17332) | get flexibleDimensions() { return this._flexibleDimensions; }
method flexibleDimensions (line 17337) | set flexibleDimensions(value) {
method growAfterOpen (line 17344) | get growAfterOpen() { return this._growAfterOpen; }
method growAfterOpen (line 17349) | set growAfterOpen(value) { this._growAfterOpen = Object(_angular_cdk_c...
method push (line 17354) | get push() { return this._push; }
method push (line 17359) | set push(value) { this._push = Object(_angular_cdk_coercion__WEBPACK_I...
method overlayRef (line 17364) | get overlayRef() {
method dir (line 17371) | get dir() {
method ngOnDestroy (line 17377) | ngOnDestroy() {
method ngOnChanges (line 17387) | ngOnChanges(changes) {
method _createOverlay (line 17409) | _createOverlay() {
method _buildConfig (line 17431) | _buildConfig() {
method _updatePositionStrategy (line 17467) | _updatePositionStrategy(positionStrategy) {
method _createPositionStrategy (line 17496) | _createPositionStrategy() {
method _attachOverlay (line 17512) | _attachOverlay() {
method _detachOverlay (line 17542) | _detachOverlay() {
function CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY (line 17594) | function CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay) {
class OverlayModule (line 17614) | class OverlayModule {
class FullscreenOverlayContainer (line 17653) | class FullscreenOverlayContainer extends OverlayContainer {
method constructor (line 17657) | constructor(_document) {
method ngOnDestroy (line 17663) | ngOnDestroy() {
method _createContainer (line 17673) | _createContainer() {
method _adjustParentForFullscreenChange (line 17685) | _adjustParentForFullscreenChange() {
method _addFullscreenChangeListener (line 17700) | _addFullscreenChangeListener(fn) {
method _getEventName (line 17715) | _getEventName() {
method getFullscreenElement (line 17739) | getFullscreenElement() {
class Platform (line 17827) | class Platform {
method constructor (line 17832) | constructor(_platformId) {
class PlatformModule (line 17903) | class PlatformModule {
function getSupportedInputTypes (line 17954) | function getSupportedInputTypes() {
function supportsPassiveEventListeners (line 17994) | function supportsPassiveEventListeners() {
function normalizePassiveListenerOptions (line 18017) | function normalizePassiveListenerOptions(options) {
function supportsScrollBehavior (line 18056) | function supportsScrollBehavior() {
function getRtlScrollAxisType (line 18064) | function getRtlScrollAxisType() {
function _supportsShadowDom (line 18119) | function _supportsShadowDom() {
function throwNullPortalError (line 18186) | function throwNullPortalError() {
function throwPortalAlreadyAttachedError (line 18194) | function throwPortalAlreadyAttachedError() {
function throwPortalOutletAlreadyDisposedError (line 18202) | function throwPortalOutletAlreadyDisposedError() {
function throwUnknownPortalTypeError (line 18210) | function throwUnknownPortalTypeError() {
function throwNullPortalOutletError (line 18219) | function throwNullPortalOutletError() {
function throwNoPortalAttachedError (line 18227) | function throwNoPortalAttachedError() {
class Portal (line 18241) | class Portal {
method attach (line 18247) | attach(host) {
method detach (line 18261) | detach() {
method isAttached (line 18276) | get isAttached() {
method setAttachedHost (line 18285) | setAttachedHost(host) {
class ComponentPortal (line 18293) | class ComponentPortal extends Portal {
method constructor (line 18300) | constructor(component, viewContainerRef, injector, componentFactoryRes...
class TemplatePortal (line 18312) | class TemplatePortal extends Portal {
method constructor (line 18318) | constructor(template, viewContainerRef, context) {
method origin (line 18327) | get origin() {
method attach (line 18338) | attach(host, context = this.context) {
method detach (line 18345) | detach() {
class BasePortalOutlet (line 18355) | class BasePortalOutlet {
method constructor (line 18356) | constructor() {
method hasAttached (line 18366) | hasAttached() {
method attach (line 18374) | attach(portal) {
method detach (line 18398) | detach() {
method dispose (line 18409) | dispose() {
method setDisposeFn (line 18421) | setDisposeFn(fn) {
method _invokeDisposeFn (line 18428) | _invokeDisposeFn() {
class BasePortalHost (line 18440) | class BasePortalHost extends BasePortalOutlet {
class DomPortalOutlet (line 18451) | class DomPortalOutlet extends BasePortalOutlet {
method constructor (line 18458) | constructor(outletElement, _componentFactoryResolver, _appRef, _defaul...
method attachComponentPortal (line 18471) | attachComponentPortal(portal) {
method attachTemplatePortal (line 18511) | attachTemplatePortal(portal) {
method dispose (line 18543) | dispose() {
method _getComponentRootNode (line 18555) | _getComponentRootNode(componentRef) {
class DomPortalHost (line 18563) | class DomPortalHost extends DomPortalOutlet {
class CdkPortal (line 18574) | class CdkPortal extends TemplatePortal {
method constructor (line 18579) | constructor(templateRef, viewContainerRef) {
class TemplatePortalDirective (line 18598) | class TemplatePortalDirective extends CdkPortal {
class CdkPortalOutlet (line 18617) | class CdkPortalOutlet extends BasePortalOutlet {
method constructor (line 18622) | constructor(_componentFactoryResolver, _viewContainerRef) {
method portal (line 18639) | get portal() {
method portal (line 18646) | set portal(portal) {
method attachedRef (line 18666) | get attachedRef() {
method ngOnInit (line 18672) | ngOnInit() {
method ngOnDestroy (line 18678) | ngOnDestroy() {
method attachComponentPortal (line 18690) | attachComponentPortal(portal) {
method attachTemplatePortal (line 18719) | attachTemplatePortal(portal) {
class PortalHostDirective (line 18752) | class PortalHostDirective extends CdkPortalOutlet {
class PortalModule (line 18765) | class PortalModule {
class PortalInjector (line 18784) | class PortalInjector {
method constructor (line 18789) | constructor(_parentInjector, _customTokens) {
method get (line 18798) | get(token, notFoundValue) {
class FixedSizeVirtualScrollStrategy (line 18889) | class FixedSizeVirtualScrollStrategy {
method constructor (line 18895) | constructor(itemSize, minBufferPx, maxBufferPx) {
method attach (line 18914) | attach(viewport) {
method detach (line 18923) | detach() {
method updateItemAndBufferSize (line 18934) | updateItemAndBufferSize(itemSize, minBufferPx, maxBufferPx) {
method onContentScrolled (line 18948) | onContentScrolled() {
method onDataLengthChanged (line 18955) | onDataLengthChanged() {
method onContentRendered (line 18963) | onContentRendered() { }
method onRenderedOffsetChanged (line 18968) | onRenderedOffsetChanged() { }
method scrollToIndex (line 18975) | scrollToIndex(index, behavior) {
method _updateTotalContentSize (line 18985) | _updateTotalContentSize() {
method _updateRenderedRange (line 18996) | _updateRenderedRange() {
function _fixedSizeVirtualScrollStrategyFactory (line 19044) | function _fixedSizeVirtualScrollStrategyFactory(fixedSizeDir) {
class CdkFixedSizeVirtualScroll (line 19050) | class CdkFixedSizeVirtualScroll {
method constructor (line 19051) | constructor() {
method itemSize (line 19064) | get itemSize() { return this._itemSize; }
method itemSize (line 19069) | set itemSize(value) { this._itemSize = Object(_angular_cdk_coercion__W...
method minBufferPx (line 19075) | get minBufferPx() { return this._minBufferPx; }
method minBufferPx (line 19080) | set minBufferPx(value) { this._minBufferPx = Object(_angular_cdk_coerc...
method maxBufferPx (line 19085) | get maxBufferPx() { return this._maxBufferPx; }
method maxBufferPx (line 19090) | set maxBufferPx(value) { this._maxBufferPx = Object(_angular_cdk_coerc...
method ngOnChanges (line 19094) | ngOnChanges() {
class ScrollDispatcher (line 19130) | class ScrollDispatcher {
method constructor (line 19135) | constructor(_ngZone, _platform) {
method register (line 19162) | register(scrollable) {
method deregister (line 19176) | deregister(scrollable) {
method scrolled (line 19196) | scrolled(auditTimeInMs = DEFAULT_SCROLL_TIME) {
method ngOnDestroy (line 19230) | ngOnDestroy() {
method ancestorScrolled (line 19247) | ancestorScrolled(elementRef, auditTimeInMs) {
method getAncestorScrollContainers (line 19263) | getAncestorScrollContainers(elementRef) {
method _scrollableContainsElement (line 19285) | _scrollableContainsElement(scrollable, elementRef) {
method _addGlobalListener (line 19304) | _addGlobalListener() {
method _removeGlobalListener (line 19320) | _removeGlobalListener() {
function SCROLL_DISPATCHER_PROVIDER_FACTORY (line 19343) | function SCROLL_DISPATCHER_PROVIDER_FACTORY(parentDispatcher, ngZone, pl...
class CdkScrollable (line 19366) | class CdkScrollable {
method constructor (line 19373) | constructor(elementRef, scrollDispatcher, ngZone, dir) {
method ngOnInit (line 19392) | ngOnInit() {
method ngOnDestroy (line 19398) | ngOnDestroy() {
method elementScrolled (line 19407) | elementScrolled() {
method getElementRef (line 19414) | getElementRef() {
method scrollTo (line 19426) | scrollTo(options) {
method _applyScrollToOptions (line 19465) | _applyScrollToOptions(options) {
method measureScrollOffset (line 19490) | measureScrollOffset(from) {
function rangesEqual (line 19567) | function rangesEqual(r1, r2) {
class CdkVirtualScrollViewport (line 19580) | class CdkVirtualScrollViewport extends CdkScrollable {
method constructor (line 19589) | constructor(elementRef, _changeDetectorRef, ngZone, _scrollStrategy, d...
method orientation (line 19678) | get orientation() {
method orientation (line 19685) | set orientation(orientation) {
method ngOnInit (line 19694) | ngOnInit() {
method ngOnDestroy (line 19727) | ngOnDestroy() {
method attach (line 19740) | attach(forOf) {
method detach (line 19771) | detach() {
method getDataLength (line 19779) | getDataLength() {
method getViewportSize (line 19786) | getViewportSize() {
method getRenderedRange (line 19797) | getRenderedRange() {
method setTotalContentSize (line 19806) | setTotalContentSize(size) {
method setRenderedRange (line 19818) | setRenderedRange(range) {
method getOffsetToRenderedContentStart (line 19831) | getOffsetToRenderedContentStart() {
method setRenderedContentOffset (line 19841) | setRenderedContentOffset(offset, to = 'to-start') {
method scrollToOffset (line 19889) | scrollToOffset(offset, behavior = 'auto') {
method scrollToIndex (line 19906) | scrollToIndex(index, behavior = 'auto') {
method measureScrollOffset (line 19915) | measureScrollOffset(from) {
method measureRenderedContentSize (line 19922) | measureRenderedContentSize() {
method measureRangeSize (line 19933) | measureRangeSize(range) {
method checkViewportSize (line 19943) | checkViewportSize() {
method _measureViewportSize (line 19953) | _measureViewportSize() {
method _markChangeDetectionNeeded (line 19965) | _markChangeDetectionNeeded(runAfter) {
method _doChangeDetection (line 19989) | _doChangeDetection() {
method _calculateSpacerSize (line 20015) | _calculateSpacerSize() {
function getSize (line 20064) | function getSize(orientation, node) {
class CdkVirtualForOf (line 20079) | class CdkVirtualForOf {
method constructor (line 20087) | constructor(_viewContainerRef, _template, _differs, _viewport, ngZone) {
method cdkVirtualForOf (line 20165) | get cdkVirtualForOf() {
method cdkVirtualForOf (line 20172) | set cdkVirtualForOf(value) {
method cdkVirtualForTrackBy (line 20185) | get cdkVirtualForTrackBy() {
method cdkVirtualForTrackBy (line 20192) | set cdkVirtualForTrackBy(fn) {
method cdkVirtualForTemplate (line 20208) | set cdkVirtualForTemplate(value) {
method measureRangeSize (line 20222) | measureRangeSize(range, orientation) {
method ngDoCheck (line 20254) | ngDoCheck() {
method ngOnDestroy (line 20273) | ngOnDestroy() {
method _onRenderedDataChange (line 20289) | _onRenderedDataChange() {
method _changeDataSource (line 20306) | _changeDataSource(oldDs, newDs) {
method _updateContext (line 20318) | _updateContext() {
method _applyChanges (line 20338) | _applyChanges(changes) {
method _cacheView (line 20393) | _cacheView(view) {
method _insertViewForNewItem (line 20417) | _insertViewForNewItem(index) {
method _updateComputedContextProperties (line 20426) | _updateComputedContextProperties(context) {
method _createEmbeddedViewAt (line 20438) | _createEmbeddedViewAt(index) {
method _insertViewFromCache (line 20460) | _insertViewFromCache(index) {
method _detachView (line 20474) | _detachView(index) {
class ScrollingModule (line 20502) | class ScrollingModule {
class ScrollDispatchModule (line 20526) | class ScrollDispatchModule {
class ViewportRuler (line 20548) | class ViewportRuler {
method constructor (line 20553) | constructor(_platform, ngZone) {
method ngOnDestroy (line 20573) | ngOnDestroy() {
method getViewportSize (line 20580) | getViewportSize() {
method getViewportRect (line 20596) | getViewportRect() {
method getViewportScrollPosition (line 20622) | getViewportScrollPosition() {
method change (line 20651) | change(throttleTime = DEFAULT_RESIZE_TIME) {
method _updateViewportSize (line 20659) | _updateViewportSize() {
function VIEWPORT_RULER_PROVIDER_FACTORY (line 20681) | function VIEWPORT_RULER_PROVIDER_FACTORY(parentRuler, platform, ngZone) {
class PlatformLocation (line 20863) | class PlatformLocation {
function LocationChangeEvent (line 20881) | function LocationChangeEvent() { }
function LocationChangeListener (line 20887) | function LocationChangeListener() { }
class LocationStrategy (line 20911) | class LocationStrategy {
function PopStateEvent (line 20948) | function PopStateEvent() { }
class Location (line 20978) | class Location {
method constructor (line 20983) | constructor(platformStrategy, platformLocation) {
method path (line 21019) | path(includeHash = false) {
method getState (line 21026) | getState() { return this._platformLocation.getState(); }
method isCurrentPathEqualTo (line 21036) | isCurrentPathEqualTo(path, query = '') {
method normalize (line 21046) | normalize(url) {
method prepareExternalUrl (line 21059) | prepareExternalUrl(url) {
method go (line 21076) | go(path, query = '', state = null) {
method replaceState (line 21089) | replaceState(path, query = '', state = null) {
method forward (line 21097) | forward() { this._platformStrategy.forward(); }
method back (line 21102) | back() { this._platformStrategy.back(); }
method onUrlChange (line 21110) | onUrlChange(fn) {
method _notifyUrlChangeListeners (line 21124) | _notifyUrlChangeListeners(url = '', state) {
method subscribe (line 21139) | subscribe(onNext, onThrow, onReturn) {
method normalizeQueryParams (line 21149) | static normalizeQueryParams(params) {
method joinWithSlash (line 21161) | static joinWithSlash(start, end) {
method stripTrailingSlash (line 21193) | static stripTrailingSlash(url) {
function _stripBaseHref (line 21217) | function _stripBaseHref(baseHref, url) {
function _stripIndexHtml (line 21224) | function _stripIndexHtml(url) {
class HashLocationStrategy (line 21250) | class HashLocationStrategy extends LocationStrategy {
method constructor (line 21255) | constructor(_platformLocation, _baseHref) {
method onPopState (line 21267) | onPopState(fn) {
method getBaseHref (line 21274) | getBaseHref() { return this._baseHref; }
method path (line 21279) | path(includeHash = false) {
method prepareExternalUrl (line 21292) | prepareExternalUrl(internal) {
method pushState (line 21304) | pushState(state, title, path, queryParams) {
method replaceState (line 21319) | replaceState(state, title, path, queryParams) {
method forward (line 21330) | forward() { this._platformLocation.forward(); }
method back (line 21334) | back() { this._platformLocation.back(); }
class PathLocationStrategy (line 21377) | class PathLocationStrategy extends LocationStrategy {
method constructor (line 21382) | constructor(_platformLocation, href) {
method onPopState (line 21397) | onPopState(fn) {
method getBaseHref (line 21404) | getBaseHref() { return this._baseHref; }
method prepareExternalUrl (line 21409) | prepareExternalUrl(internal) {
method path (line 21416) | path(includeHash = false) {
method pushState (line 21431) | pushState(state, title, url, queryParams) {
method replaceState (line 21443) | replaceState(state, title, url, queryParams) {
method forward (line 21451) | forward() { this._platformLocation.forward(); }
method back (line 21455) | back() { this._platformLocation.back(); }
function getLocaleId (line 21822) | function getLocaleId(locale) {
function getLocaleDayPeriods (line 21836) | function getLocaleDayPeriods(locale, formStyle, width) {
function getLocaleDayNames (line 21857) | function getLocaleDayNames(locale, formStyle, width) {
function getLocaleMonthNames (line 21878) | function getLocaleMonthNames(locale, formStyle, width) {
function getLocaleEraNames (line 21897) | function getLocaleEraNames(locale, width) {
function getLocaleFirstDayOfWeek (line 21915) | function getLocaleFirstDayOfWeek(locale) {
function getLocaleWeekEndRange (line 21929) | function getLocaleWeekEndRange(locale) {
function getLocaleDateFormat (line 21944) | function getLocaleDateFormat(locale, width) {
function getLocaleTimeFormat (line 21958) | function getLocaleTimeFormat(locale, width) {
function getLocaleDateTimeFormat (line 21973) | function getLocaleDateTimeFormat(locale, width) {
function getLocaleNumberSymbol (line 21989) | function getLocaleNumberSymbol(locale, symbol) {
function getLocaleNumberFormat (line 22037) | function getLocaleNumberFormat(locale, type) {
function getLocaleCurrencySymbol (line 22053) | function getLocaleCurrencySymbol(locale) {
function getLocaleCurrencyName (line 22068) | function getLocaleCurrencyName(locale) {
function getLocaleCurrencies (line 22079) | function getLocaleCurrencies(locale) {
function checkFullData (line 22094) | function checkFullData(data) {
function getLocaleExtraDayPeriodRules (line 22120) | function getLocaleExtraDayPeriodRules(locale) {
function getLocaleExtraDayPeriods (line 22153) | function getLocaleExtraDayPeriods(locale, formStyle, width) {
function getLastDefinedValue (line 22180) | function getLastDefinedValue(data, index) {
function extractTime (line 22193) | function extractTime(time) {
function getCurrencySymbol (line 22212) | function getCurrencySymbol(code, format, locale = 'en') {
function getNumberOfCurrencyDigits (line 22235) | function getNumberOfCurrencyDigits(code) {
function formatDate (line 22318) | function formatDate(value, format, locale, timezone) {
function getNamedFormat (line 22370) | function getNamedFormat(locale, format) {
function formatDateTime (line 22445) | function formatDateTime(str, opt_values) {
function padNumber (line 22466) | function padNumber(num, digits, minusSign = '-', trim, negWrap) {
function formatFractionalSeconds (line 22493) | function formatFractionalSeconds(milliseconds, digits) {
function dateGetter (line 22507) | function dateGetter(name, size, offset = 0, trim = false, negWrap = fals...
function getDatePart (line 22537) | function getDatePart(part, date) {
function dateStrGetter (line 22567) | function dateStrGetter(name, width, form = FormStyle.Format, extended = ...
function getDateTranslation (line 22587) | function getDateTranslation(date, locale, name, width, form, extended) {
function timeZoneGetter (line 22654) | function timeZoneGetter(width) {
function getFirstThursdayOfYear (line 22698) | function getFirstThursdayOfYear(year) {
function getThursdayThisWeek (line 22707) | function getThursdayThisWeek(datetime) {
function weekGetter (line 22715) | function weekGetter(size, monthBased = false) {
function getDateFormatter (line 22753) | function getDateFormatter(format) {
function timezoneToOffset (line 22967) | function timezoneToOffset(timezone, fallback) {
function addDateMinutes (line 22980) | function addDateMinutes(date, minutes) {
function convertTimezoneToLocal (line 22991) | function convertTimezoneToLocal(date, timezone, reverse) {
function toDate (line 23014) | function toDate(value) {
function isoStringToDate (line 23063) | function isoStringToDate(match) {
function isDate (line 23096) | function isDate(value) {
function formatNumberToLocaleString (line 23133) | function formatNumberToLocaleString(value, pattern, locale, groupSymbol,...
function formatCurrency (line 23258) | function formatCurrency(value, locale, currency, currencyCode, digitsInf...
function formatPercent (line 23287) | function formatPercent(value, locale, digitsInfo) {
function formatNumber (line 23311) | function formatNumber(value, locale, digitsInfo) {
function ParsedNumberFormat (line 23321) | function ParsedNumberFormat() { }
function parseNumberFormat (line 23328) | function parseNumberFormat(format, minusSign = '-') {
function ParsedNumber (line 23393) | function ParsedNumber() { }
function toPercent (line 23400) | function toPercent(parsedNumber) {
function parseNumber (line 23428) | function parseNumber(num) {
function roundNumber (line 23496) | function roundNumber(parsedNumber, minFrac, maxFrac) {
function parseIntAutoRadix (line 23582) | function parseIntAutoRadix(text) {
class NgLocalization (line 23604) | class NgLocalization {
function getPluralCategory (line 23617) | function getPluralCategory(value, cases, ngLocalization, locale) {
class NgLocaleLocalization (line 23637) | class NgLocaleLocalization extends NgLocalization {
method constructor (line 23642) | constructor(locale, deprecatedPluralFn) {
method getPluralCategory (line 23652) | getPluralCategory(value, locale) {
function getPluralCase (line 23690) | function getPluralCase(locale, nLike) {
function registerLocaleData (line 24080) | function registerLocaleData(data, localeId, extraData) {
function parseCookieValue (line 24118) | function parseCookieValue(cookieStr, name) {
class StylingDiffer (line 24194) | class StylingDiffer {
method constructor (line 24199) | constructor(_name, _options) {
method setValue (line 24216) | setValue(value) {
method hasValueChanged (line 24245) | hasValueChanged() {
function bulidMapFromValues (line 24362) | function bulidMapFromValues(errorPrefix, trim, parseOutUnits, allowSubKe...
function assertValidValue (line 24393) | function assertValidValue(errorPrefix, value) {
function setMapValues (line 24406) | function setMapValues(map, key, value, parseOutUnits, allowSubKeys) {
function setIndividualMapValue (line 24425) | function setIndividualMapValue(map, key, value, parseOutUnits) {
function normalizeStyleKeyAndValue (line 24439) | function normalizeStyleKeyAndValue(key, value) {
function mapHasChanged (line 24458) | function mapHasChanged(keys, a, b) {
function arrayEqualsArray (line 24481) | function arrayEqualsArray(a, b) {
class NgClassImpl (line 24508) | class NgClassImpl {
class NgClassR2Impl (line 24511) | class NgClassR2Impl {
method constructor (line 24518) | constructor(_iterableDiffers, _keyValueDiffers, _ngEl, _renderer) {
method getValue (line 24528) | getValue() { return null; }
method setClass (line 24533) | setClass(value) {
method setNgClass (line 24543) | setNgClass(value) {
method applyChanges (line 24561) | applyChanges() {
method _applyKeyValueChanges (line 24582) | _applyKeyValueChanges(changes) {
method _applyIterableChanges (line 24608) | _applyIterableChanges(changes) {
method _applyClasses (line 24638) | _applyClasses(rawClassVal) {
method _removeClasses (line 24663) | _removeClasses(rawClassVal) {
method _toggleClass (line 24687) | _toggleClass(klass, enabled) {
class NgClassR3Impl (line 24716) | class NgClassR3Impl {
method constructor (line 24717) | constructor() {
method getValue (line 24727) | getValue() { return this._value; }
method setClass (line 24732) | setClass(value) {
method setNgClass (line 24745) | setNgClass(value) {
method applyChanges (line 24751) | applyChanges() {
class NgClassBase (line 24856) | class NgClassBase {
method constructor (line 24860) | constructor(_delegate) {
method getValue (line 24866) | getValue() { return this._delegate.getValue(); }
class NgClass (line 24898) | class NgClass extends NgClassBase {
method constructor (line 24902) | constructor(delegate) { super(delegate); }
method klass (line 24907) | set klass(value) { this._delegate.setClass(value); }
method ngClass (line 24912) | set ngClass(value) {
method ngDoCheck (line 24918) | ngDoCheck() { this._delegate.applyChanges(); }
class NgComponentOutlet (line 24991) | class NgComponentOutlet {
method constructor (line 24995) | constructor(_viewContainerRef) {
method ngOnChanges (line 25004) | ngOnChanges(changes) {
method ngOnDestroy (line 25033) | ngOnDestroy() {
class NgForOfContext (line 25061) | class NgForOfContext {
method constructor (line 25068) | constructor($implicit, ngForOf, index, count) {
method first (line 25077) | get first() { return this.index === 0; }
method last (line 25081) | get last() { return this.index === this.count - 1; }
method even (line 25085) | get even() { return this.index % 2 === 0; }
method odd (line 25089) | get odd() { return !this.even; }
class NgForOf (line 25190) | class NgForOf {
method constructor (line 25196) | constructor(_viewContainer, _template, _differs) {
method ngForOf (line 25209) | set ngForOf(ngForOf) {
method ngForTrackBy (line 25232) | set ngForTrackBy(fn) {
method ngForTrackBy (line 25245) | get ngForTrackBy() { return this._trackByFn; }
method ngForTemplate (line 25252) | set ngForTemplate(value) {
method ngDoCheck (line 25264) | ngDoCheck() {
method _applyChanges (line 25291) | _applyChanges(changes) {
method _perViewChange (line 25346) | _perViewChange(view, record) {
method ngTemplateContextGuard (line 25359) | static ngTemplateContextGuard(dir, ctx) {
class RecordViewTuple (line 25381) | class RecordViewTuple {
method constructor (line 25386) | constructor(record, view) {
function getTypeName (line 25396) | function getTypeName(type) {
class NgIf (line 25543) | class NgIf {
method constructor (line 25548) | constructor(_viewContainer, templateRef) {
method ngIf (line 25562) | set ngIf(condition) {
method ngIfThen (line 25571) | set ngIfThen(templateRef) {
method ngIfElse (line 25582) | set ngIfElse(templateRef) {
method _updateView (line 25592) | _updateView() {
class NgIfContext (line 25632) | class NgIfContext {
method constructor (line 25633) | constructor() {
function assertTemplate (line 25644) | function assertTemplate(property, templateRef) {
class SwitchView (line 25656) | class SwitchView {
method constructor (line 25661) | constructor(_viewContainerRef, _templateRef) {
method create (line 25669) | create() {
method destroy (line 25676) | destroy() {
method enforceState (line 25684) | enforceState(created) {
class NgSwitch (line 25762) | class NgSwitch {
method constructor (line 25763) | constructor() {
method ngSwitch (line 25773) | set ngSwitch(newValue) {
method _addCase (line 25783) | _addCase() { return this._caseCount++; }
method _addDefault (line 25789) | _addDefault(view) {
method _matchCase (line 25800) | _matchCase(value) {
method _updateDefaultCases (line 25817) | _updateDefaultCases(useDefault) {
class NgSwitchCase (line 25868) | class NgSwitchCase {
method constructor (line 25874) | constructor(viewContainer, templateRef, ngSwitch) {
method ngDoCheck (line 25883) | ngDoCheck() { this._view.enforceState(this.ngSwitch._matchCase(this.ng...
class NgSwitchDefault (line 25912) | class NgSwitchDefault {
method constructor (line 25918) | constructor(viewContainer, templateRef, ngSwitch) {
class NgPlural (line 25967) | class NgPlural {
method constructor (line 25971) | constructor(_localization) {
method ngPlural (line 25979) | set ngPlural(value) {
method addCase (line 25988) | addCase(value, switchView) { this._caseViews[value] = switchView; }
method _updateView (line 25993) | _updateView() {
method _clearViews (line 26005) | _clearViews() {
method _activateView (line 26014) | _activateView(view) {
class NgPluralCase (line 26052) | class NgPluralCase {
method constructor (line 26059) | constructor(value, template, viewContainer, ngPlural) {
class NgStyleImpl (line 26092) | class NgStyleImpl {
class NgStyleR2Impl (line 26095) | class NgStyleR2Impl {
method constructor (line 26101) | constructor(_ngEl, _differs, _renderer) {
method getValue (line 26109) | getValue() { return null; }
method setNgStyle (line 26119) | setNgStyle(values) {
method applyChanges (line 26129) | applyChanges() {
method _applyChanges (line 26143) | _applyChanges(changes) {
method _setStyle (line 26166) | _setStyle(nameAndUnit, value) {
class NgStyleR3Impl (line 26187) | class NgStyleR3Impl {
method constructor (line 26188) | constructor() {
method getValue (line 26195) | getValue() { return this._value; }
method setNgStyle (line 26200) | setNgStyle(value) { this._differ.setValue(value); }
method applyChanges (line 26204) | applyChanges() {
class NgStyleBase (line 26295) | class NgStyleBase {
method constructor (line 26299) | constructor(_delegate) {
method getValue (line 26305) | getValue() { return this._delegate.getValue(); }
class NgStyle (line 26345) | class NgStyle extends NgStyleBase {
method constructor (line 26349) | constructor(delegate) { super(delegate); }
method ngStyle (line 26354) | set ngStyle(value) { this._delegate.setNgStyle(value); }
method ngDoCheck (line 26358) | ngDoCheck() { this._delegate.applyChanges(); }
class NgTemplateOutlet (line 26399) | class NgTemplateOutlet {
method constructor (line 26403) | constructor(_viewContainerRef) {
method ngOnChanges (line 26422) | ngOnChanges(changes) {
method _shouldRecreateView (line 26452) | _shouldRecreateView(changes) {
method _hasContextShapeChanged (line 26462) | _hasContextShapeChanged(ctxChange) {
method _updateExistingContext (line 26484) | _updateExistingContext(ctx) {
function invalidPipeArgumentError (line 26535) | function invalidPipeArgumentError(type, value) {
class NumberFormatter (line 26543) | class NumberFormatter {
method format (line 26551) | static format(num, locale, style, opts = {}) {
function digitModifier (line 26644) | function digitModifier(inner) {
function hourClockExtractor (line 26660) | function hourClockExtractor(inner) {
function hourExtractor (line 26672) | function hourExtractor(inner) {
function intlDateFormat (line 26686) | function intlDateFormat(date, locale, options) {
function timeZoneGetter$1 (line 26693) | function timeZoneGetter$1(timezone) {
function hour12Modify (line 26714) | function hour12Modify(options, value) {
function digitCondition (line 26723) | function digitCondition(prop, len) {
function nameCondition (line 26734) | function nameCondition(prop, len) {
function combine (line 26749) | function combine(options) {
function datePartGetterFactory (line 26761) | function datePartGetterFactory(ret) {
function dateFormatter (line 26777) | function dateFormatter(format, date, locale) {
function partToTime (line 26821) | function partToTime(part) {
class DateFormatter (line 26824) | class DateFormatter {
method format (line 26831) | static format(date, locale, pattern) {
class DeprecatedDatePipe (line 26904) | class DeprecatedDatePipe {
method constructor (line 26908) | constructor(_locale) {
method transform (line 26916) | transform(value, pattern = 'mediumDate') {
function isDate$1 (line 26989) | function isDate$1(value) {
function formatNumber$1 (line 27007) | function formatNumber$1(pipe, locale, value, style, digits, currency = n...
class DeprecatedDecimalPipe (line 27077) | class DeprecatedDecimalPipe {
method constructor (line 27081) | constructor(_locale) {
method transform (line 27089) | transform(value, digits) {
class DeprecatedPercentPipe (line 27121) | class DeprecatedPercentPipe {
method constructor (line 27125) | constructor(_locale) {
method transform (line 27133) | transform(value, digits) {
class DeprecatedCurrencyPipe (line 27171) | class DeprecatedCurrencyPipe {
method constructor (line 27175) | constructor(_locale) {
method transform (line 27185) | transform(value, currencyCode = 'USD', symbolDisplay = false, digits) {
function SubscriptionStrategy (line 27217) | function SubscriptionStrategy() { }
class ObservableStrategy (line 27219) | class ObservableStrategy {
method createSubscription (line 27225) | createSubscription(async, updateLatestValue) {
method dispose (line 27236) | dispose(subscription) { subscription.unsubscribe(); }
method onDestroy (line 27241) | onDestroy(subscription) { subscription.unsubscribe(); }
class PromiseStrategy (line 27243) | class PromiseStrategy {
method createSubscription (line 27249) | createSubscription(async, updateLatestValue) {
method dispose (line 27260) | dispose(subscription) { }
method onDestroy (line 27265) | onDestroy(subscription) { }
class AsyncPipe (line 27298) | class AsyncPipe {
method constructor (line 27302) | constructor(_ref) {
method ngOnDestroy (line 27313) | ngOnDestroy() {
method transform (line 27322) | transform(obj) {
method _subscribe (line 27345) | _subscribe(obj) {
method _selectStrategy (line 27359) | _selectStrategy(obj) {
method _dispose (line 27372) | _dispose() {
method _updateLatestValue (line 27385) | _updateLatestValue(async, value) {
class LowerCasePipe (line 27421) | class LowerCasePipe {
method transform (line 27426) | transform(value) {
class TitleCasePipe (line 27466) | class TitleCasePipe {
method transform (line 27471) | transform(value) {
class UpperCasePipe (line 27496) | class UpperCasePipe {
method transform (line 27501) | transform(value) {
class DatePipe (line 27659) | class DatePipe {
method constructor (line 27663) | constructor(locale) {
method transform (line 27679) | transform(value, format = 'mediumDate', timezone, locale) {
class I18nPluralPipe (line 27720) | class I18nPluralPipe {
method constructor (line 27724) | constructor(_localization) {
method transform (line 27735) | transform(value, pluralMap, locale) {
class I18nSelectPipe (line 27777) | class I18nSelectPipe {
method transform (line 27784) | transform(value, mapping) {
class JsonPipe (line 27823) | class JsonPipe {
method transform (line 27828) | transform(value) { return JSON.stringify(value, null, 2); }
function makeKeyValuePair (line 27845) | function makeKeyValuePair(key, value) {
function KeyValue (line 27856) | function KeyValue() { }
class KeyValuePipe (line 27878) | class KeyValuePipe {
method constructor (line 27882) | constructor(differs) {
method transform (line 27892) | transform(input, compareFn = defaultComparator) {
function defaultComparator (line 27931) | function defaultComparator(keyValueA, keyValueB) {
class DecimalPipe (line 28005) | class DecimalPipe {
method constructor (line 28009) | constructor(_locale) {
method transform (line 28028) | transform(value, digitsInfo, locale) {
class PercentPipe (line 28071) | class PercentPipe {
method constructor (line 28075) | constructor(_locale) {
method transform (line 28095) | transform(value, digitsInfo, locale) {
class CurrencyPipe (line 28138) | class CurrencyPipe {
method constructor (line 28142) | constructor(_locale) {
method transform (line 28178) | transform(value, currencyCode, display = 'symbol', digitsInfo, locale) {
function isEmpty (line 28221) | function isEmpty(value) {
function strToNumber (line 28229) | function strToNumber(value) {
class SlicePipe (line 28279) | class SlicePipe {
method transform (line 28286) | transform(value, start, end) {
method supports (line 28299) | supports(obj) { return typeof obj === 'string' || Array.isArray(obj); }
class CommonModule (line 28349) | class CommonModule {
class DeprecatedI18NPipesModule (line 28367) | class DeprecatedI18NPipesModule {
function isPlatformBrowser (line 28417) | function isPlatformBrowser(platformId) {
function isPlatformServer (line 28426) | function isPlatformServer(platformId) {
function isPlatformWorkerApp (line 28435) | function isPlatformWorkerApp(platformId) {
function isPlatformWorkerUi (line 28444) | function isPlatformWorkerUi(platformId) {
class ViewportScroller (line 28468) | class ViewportScroller {
class BrowserViewportScroller (line 28485) | class BrowserViewportScroller {
method constructor (line 28491) | constructor(document, window, errorHandler) {
method setOffset (line 28507) | setOffset(offset) {
method getScrollPosition (line 28522) | getScrollPosition() {
method scrollToPosition (line 28535) | scrollToPosition(position) {
method scrollToAnchor (line 28545) | scrollToAnchor(anchor) {
method setHistoryScrollRestoration (line 28579) | setHistoryScrollRestoration(scrollRestoration) {
method scrollToElement (line 28593) | scrollToElement(el) {
method supportScrollRestoration (line 28614) | supportScrollRestoration() {
class NullViewportScroller (line 28628) | class NullViewportScroller {
method setOffset (line 28634) | setOffset(offset) { }
method getScrollPosition (line 28639) | getScrollPosition() { return [0, 0]; }
method scrollToPosition (line 28645) | scrollToPosition(position) { }
method scrollToAnchor (line 28651) | scrollToAnchor(anchor) { }
method setHistoryScrollRestoration (line 28657) | setHistoryScrollRestoration(scrollRestoration) { }
class HttpHandler (line 28763) | class HttpHandler {
class HttpBackend (line 28777) | class HttpBackend {
function Update (line 28795) | function Update() { }
class HttpHeaders (line 28804) | class HttpHeaders {
method constructor (line 28809) | constructor(headers) {
method has (line 28886) | has(name) {
method get (line 28897) | get(name) {
method keys (line 28908) | keys() {
method getAll (line 28919) | getAll(name) {
method append (line 28932) | append(name, value) {
method set (line 28945) | set(name, value) {
method delete (line 28956) | delete(name, value) {
method maybeSetNormalizedName (line 28965) | maybeSetNormalizedName(name, lcName) {
method init (line 28974) | init() {
method copyFrom (line 28998) | copyFrom(other) {
method clone (line 29014) | clone(update) {
method applyUpdate (line 29027) | applyUpdate(update) {
method forEach (line 29081) | forEach(fn) {
function HttpParameterCodec (line 29113) | function HttpParameterCodec() { }
class HttpUrlEncodingCodec (line 29125) | class HttpUrlEncodingCodec {
method encodeKey (line 29131) | encodeKey(key) { return standardEncoding(key); }
method encodeValue (line 29137) | encodeValue(value) { return standardEncoding(value); }
method decodeKey (line 29143) | decodeKey(key) { return decodeURIComponent(key); }
method decodeValue (line 29149) | decodeValue(value) { return decodeURIComponent(value); }
function paramParser (line 29156) | function paramParser(rawParams, codec) {
function standardEncoding (line 29184) | function standardEncoding(v) {
function Update$1 (line 29199) | function Update$1() { }
function HttpParamsOptions (line 29207) | function HttpParamsOptions() { }
class HttpParams (line 29217) | class HttpParams {
method constructor (line 29221) | constructor(options = (/** @type {?} */ ({}))) {
method has (line 29253) | has(param) {
method get (line 29263) | get(param) {
method getAll (line 29275) | getAll(param) {
method keys (line 29283) | keys() {
method append (line 29293) | append(param, value) { return this.clone({ param, value, op: 'a' }); }
method set (line 29300) | set(param, value) { return this.clone({ param, value, op: 's' }); }
method delete (line 29308) | delete(param, value) { return this.clone({ param, value, op: 'd' }); }
method toString (line 29314) | toString() {
method clone (line 29338) | clone(update) {
method init (line 29349) | init() {
function HttpRequestInit (line 29411) | function HttpRequestInit() { }
function mightHaveBody (line 29418) | function mightHaveBody(method) {
function isArrayBuffer (line 29437) | function isArrayBuffer(value) {
function isBlob (line 29447) | function isBlob(value) {
function isFormData (line 29457) | function isFormData(value) {
class HttpRequest (line 29471) | class HttpRequest {
method constructor (line 29478) | constructor(method, url, third, fourth) {
method serializeBody (line 29578) | serializeBody() {
method detectContentTypeHeader (line 29608) | detectContentTypeHeader() {
method clone (line 29647) | clone(update = {}) {
function HttpProgressEvent (line 29748) | function HttpProgressEvent() { }
function HttpDownloadProgressEvent (line 29756) | function HttpDownloadProgressEvent() { }
function HttpUploadProgressEvent (line 29764) | function HttpUploadProgressEvent() { }
function HttpSentEvent (line 29774) | function HttpSentEvent() { }
function HttpUserEvent (line 29786) | function HttpUserEvent() { }
function HttpJsonParseError (line 29797) | function HttpJsonParseError() { }
class HttpResponseBase (line 29805) | class HttpResponseBase {
method constructor (line 29815) | constructor(init, defaultStatus = 200, defaultStatusText = 'OK') {
class HttpHeaderResponse (line 29836) | class HttpHeaderResponse extends HttpResponseBase {
method constructor (line 29841) | constructor(init = {}) {
method clone (line 29851) | clone(update = {}) {
class HttpResponse (line 29873) | class HttpResponse extends HttpResponseBase {
method constructor (line 29878) | constructor(init = {}) {
method clone (line 29887) | clone(update = {}) {
class HttpErrorResponse (line 29911) | class HttpErrorResponse extends HttpResponseBase {
method constructor (line 29915) | constructor(init) {
function addBody (line 29956) | function addBody(options, body) {
class HttpClient (line 30012) | class HttpClient {
method constructor (line 30016) | constructor(handler) {
method request (line 30049) | request(first, url, options = {}) {
method delete (line 30189) | delete(url, options = {}) {
method get (line 30200) | get(url, options = {}) {
method head (line 30213) | head(url, options = {}) {
method jsonp (line 30236) | jsonp(url, callbackParam) {
method options (line 30253) | options(url, options = {}) {
method patch (line 30265) | patch(url, body, options = {}) {
method post (line 30278) | post(url, body, options = {}) {
method put (line 30291) | put(url, body, options = {}) {
function HttpInterceptor (line 30338) | function HttpInterceptor() { }
class HttpInterceptorHandler (line 30345) | class HttpInterceptorHandler {
method constructor (line 30350) | constructor(next, interceptor) {
method handle (line 30358) | handle(req) {
class NoopInterceptor (line 30371) | class NoopInterceptor {
method intercept (line 30377) | intercept(req, next) {
class JsonpCallbackContext (line 30413) | class JsonpCallbackContext {
class JsonpClientBackend (line 30423) | class JsonpClientBackend {
method constructor (line 30428) | constructor(callbackMap, document) {
method nextCallback (line 30437) | nextCallback() { return `ng_jsonp_callback_${nextRequestId++}`; }
method handle (line 30444) | handle(req) {
class JsonpInterceptor (line 30615) | class JsonpInterceptor {
method constructor (line 30619) | constructor(jsonp) {
method intercept (line 30629) | intercept(req, next) {
function getResponseUrl (line 30658) | function getResponseUrl(xhr) {
class XhrFactory (line 30673) | class XhrFactory {
class BrowserXhr (line 30680) | class BrowserXhr {
method constructor (line 30681) | constructor() { }
method build (line 30685) | build() { return (/** @type {?} */ ((new XMLHttpRequest()))); }
function PartialResponse (line 30696) | function PartialResponse() { }
class HttpXhrBackend (line 30705) | class HttpXhrBackend {
method constructor (line 30709) | constructor(xhrFactory) {
method handle (line 30717) | handle(req) {
class HttpXsrfTokenExtractor (line 31022) | class HttpXsrfTokenExtractor {
class HttpXsrfCookieExtractor (line 31028) | class HttpXsrfCookieExtractor {
method constructor (line 31034) | constructor(doc, platform, cookieName) {
method getToken (line 31048) | getToken() {
class HttpXsrfInterceptor (line 31075) | class HttpXsrfInterceptor {
method constructor (line 31080) | constructor(tokenService, headerName) {
method intercept (line 31089) | intercept(req, next) {
class HttpInterceptingHandler (line 31132) | class HttpInterceptingHandler {
method constructor (line 31137) | constructor(backend, injector) {
method handle (line 31146) | handle(req) {
function interceptingHandler (line 31180) | function interceptingHandler(backend, interceptors = []) {
function jsonpCallbackContext (line 31200) | function jsonpCallbackContext() {
class HttpClientXsrfModule (line 31218) | class HttpClientXsrfModule {
method disable (line 31223) | static disable() {
method withOptions (line 31240) | static withOptions(options = {}) {
class HttpClientModule (line 31270) | class HttpClientModule {
class HttpClientJsonpModule (line 31308) | class HttpClientJsonpModule {
function splitNsName (line 31649) | function splitNsName(elementName) {
function isNgContainer (line 31660) | function isNgContainer(tagName) {
function isNgContent (line 31664) | function isNgContent(tagName) {
function isNgTemplate (line 31668) | function isNgTemplate(tagName) {
function getNsPrefix (line 31671) | function getNsPrefix(fullName) {
function mergeNsAndName (line 31674) | function mergeNsAndName(prefix, localName) {
class HtmlTagDefinition (line 31948) | class HtmlTagDefinition {
method constructor (line 31949) | constructor({ closedByChildren, implicitNamespacePrefix, contentType =...
method isClosedByChild (line 31962) | isClosedByChild(name) {
function getHtmlTagDefinition (line 31970) | function getHtmlTagDefinition(tagName) {
class CssSelector (line 32047) | class CssSelector {
method constructor (line 32048) | constructor() {
method parse (line 32065) | static parse(selector) {
method isElementSelector (line 32112) | isElementSelector() {
method hasElementSelector (line 32116) | hasElementSelector() { return !!this.element; }
method setElement (line 32117) | setElement(element = null) { this.element = element; }
method getMatchingElementTemplate (line 32119) | getMatchingElementTemplate() {
method getAttrs (line 32131) | getAttrs() {
method addAttribute (line 32138) | addAttribute(name, value = '') {
method addClassName (line 32141) | addClassName(name) { this.classNames.push(name.toLowerCase()); }
method toString (line 32142) | toString() {
class SelectorMatcher (line 32162) | class SelectorMatcher {
method constructor (line 32163) | constructor() {
method createNotMatcher (line 32172) | static createNotMatcher(notSelectors) {
method addSelectables (line 32177) | addSelectables(cssSelectors, callbackCtxt) {
method _addSelectable (line 32192) | _addSelectable(cssSelector, callbackCtxt, listContext) {
method _addTerminal (line 32245) | _addTerminal(map, name, selectable) {
method _addPartial (line 32253) | _addPartial(map, name) {
method match (line 32268) | match(cssSelector, matchedCallback) {
method _matchTerminal (line 32311) | _matchTerminal(map, name, cssSelector, matchedCallback) {
method _matchPartial (line 32332) | _matchPartial(map, name, cssSelector, matchedCallback) {
class SelectorListContext (line 32346) | class SelectorListContext {
method constructor (line 32347) | constructor(selectors) {
class SelectorContext (line 32353) | class SelectorContext {
method constructor (line 32354) | constructor(selector, cbContext, listContext) {
method finalize (line 32360) | finalize(cssSelector, callback) {
function makeMetadataFactory (line 32437) | function makeMetadataFactory(name, props) {
function parserSelectorToSimpleSelector (line 32450) | function parserSelectorToSimpleSelector(selector) {
function parserSelectorToNegativeSelector (line 32457) | function parserSelectorToNegativeSelector(selector) {
function parserSelectorToR3Selector (line 32475) | function parserSelectorToR3Selector(selector) {
function parseSelectorToR3Selector (line 32482) | function parseSelectorToR3Selector(selector) {
method ViewEncapsulation (line 32495) | get ViewEncapsulation () { return ViewEncapsulation; }
method ChangeDetectionStrategy (line 32496) | get ChangeDetectionStrategy () { return ChangeDetectionStrategy; }
method SecurityContext (line 32512) | get SecurityContext () { return SecurityContext; }
method MissingTranslationStrategy (line 32513) | get MissingTranslationStrategy () { return MissingTranslationStrategy; }
class Type$1 (line 32529) | class Type$1 {
method constructor (line 32530) | constructor(modifiers = null) {
method hasModifier (line 32536) | hasModifier(modifier) { return this.modifiers.indexOf(modifier) !== -1; }
class BuiltinType (line 32549) | class BuiltinType extends Type$1 {
method constructor (line 32550) | constructor(name, modifiers = null) {
method visitType (line 32554) | visitType(visitor, context) {
class ExpressionType (line 32558) | class ExpressionType extends Type$1 {
method constructor (line 32559) | constructor(value, modifiers = null, typeParams = null) {
method visitType (line 32564) | visitType(visitor, context) {
class ArrayType (line 32568) | class ArrayType extends Type$1 {
method constructor (line 32569) | constructor(of, modifiers = null) {
method visitType (line 32573) | visitType(visitor, context) {
class MapType (line 32577) | class MapType extends Type$1 {
method constructor (line 32578) | constructor(valueType, modifiers = null) {
method visitType (line 32582) | visitType(visitor, context) { return visitor.visitMapType(this, contex...
function nullSafeIsEquivalent (line 32612) | function nullSafeIsEquivalent(base, other) {
function areAllEquivalent (line 32618) | function areAllEquivalent(base, other) {
class Expression (line 32630) | class Expression {
method constructor (line 32631) | constructor(type, sourceSpan) {
method prop (line 32635) | prop(name, sourceSpan) {
method key (line 32638) | key(index, type, sourceSpan) {
method callMethod (line 32641) | callMethod(name, params, sourceSpan) {
method callFn (line 32644) | callFn(params, sourceSpan) {
method instantiate (line 32647) | instantiate(params, type, sourceSpan) {
method conditional (line 32650) | conditional(trueCase, falseCase = null, sourceSpan) {
method equals (line 32653) | equals(rhs, sourceSpan) {
method notEquals (line 32656) | notEquals(rhs, sourceSpan) {
method identical (line 32659) | identical(rhs, sourceSpan) {
method notIdentical (line 32662) | notIdentical(rhs, sourceSpan) {
method minus (line 32665) | minus(rhs, sourceSpan) {
method plus (line 32668) | plus(rhs, sourceSpan) {
method divide (line 32671) | divide(rhs, sourceSpan) {
method multiply (line 32674) | multiply(rhs, sourceSpan) {
method modulo (line 32677) | modulo(rhs, sourceSpan) {
method and (line 32680) | and(rhs, sourceSpan) {
method bitwiseAnd (line 32683) | bitwiseAnd(rhs, sourceSpan, parens = true) {
method or (line 32686) | or(rhs, sourceSpan) {
method lower (line 32689) | lower(rhs, sourceSpan) {
method lowerEquals (line 32692) | lowerEquals(rhs, sourceSpan) {
method bigger (line 32695) | bigger(rhs, sourceSpan) {
method biggerEquals (line 32698) | biggerEquals(rhs, sourceSpan) {
method isBlank (line 32701) | isBlank(sourceSpan) {
method cast (line 32706) | cast(type, sourceSpan) {
method toStmt (line 32709) | toStmt() { return new ExpressionStatement(this, null); }
class ReadVarExpr (line 32718) | class ReadVarExpr extends Expression {
method constructor (line 32719) | constructor(name, type, sourceSpan) {
method isEquivalent (line 32730) | isEquivalent(e) {
method isConstant (line 32733) | isConstant() { return false; }
method visitExpression (line 32734) | visitExpression(visitor, context) {
method set (line 32737) | set(value) {
class TypeofExpr (line 32744) | class TypeofExpr extends Expression {
method constructor (line 32745) | constructor(expr, type, sourceSpan) {
method visitExpression (line 32749) | visitExpression(visitor, context) {
method isEquivalent (line 32752) | isEquivalent(e) {
method isConstant (line 32755) | isConstant() { return this.expr.isConstant(); }
class WrappedNodeExpr (line 32757) | class WrappedNodeExpr extends Expression {
method constructor (line 32758) | constructor(node, type, sourceSpan) {
method isEquivalent (line 32762) | isEquivalent(e) {
method isConstant (line 32765) | isConstant() { return false; }
method visitExpression (line 32766) | visitExpression(visitor, context) {
class WriteVarExpr (line 32770) | class WriteVarExpr extends Expression {
method constructor (line 32771) | constructor(name, value, type, sourceSpan) {
method isEquivalent (line 32776) | isEquivalent(e) {
method isConstant (line 32779) | isConstant() { return false; }
method visitExpression (line 32780) | visitExpression(visitor, context) {
method toDeclStmt (line 32783) | toDeclStmt(type, modifiers) {
method toConstDecl (line 32786) | toConstDecl() { return this.toDeclStmt(INFERRED_TYPE, [StmtModifier.Fi...
class WriteKeyExpr (line 32788) | class WriteKeyExpr extends Expression {
method constructor (line 32789) | constructor(receiver, index, value, type, sourceSpan) {
method isEquivalent (line 32795) | isEquivalent(e) {
method isConstant (line 32799) | isConstant() { return false; }
method visitExpression (line 32800) | visitExpression(visitor, context) {
class WritePropExpr (line 32804) | class WritePropExpr extends Expression {
method constructor (line 32805) | constructor(receiver, name, value, type, sourceSpan) {
method isEquivalent (line 32811) | isEquivalent(e) {
method isConstant (line 32815) | isConstant() { return false; }
method visitExpression (line 32816) | visitExpression(visitor, context) {
class InvokeMethodExpr (line 32826) | class InvokeMethodExpr extends Expression {
method constructor (line 32827) | constructor(receiver, method, args, type, sourceSpan) {
method isEquivalent (line 32840) | isEquivalent(e) {
method isConstant (line 32844) | isConstant() { return false; }
method visitExpression (line 32845) | visitExpression(visitor, context) {
class InvokeFunctionExpr (line 32849) | class InvokeFunctionExpr extends Expression {
method constructor (line 32850) | constructor(fn, args, type, sourceSpan, pure = false) {
method isEquivalent (line 32856) | isEquivalent(e) {
method isConstant (line 32860) | isConstant() { return false; }
method visitExpression (line 32861) | visitExpression(visitor, context) {
class InstantiateExpr (line 32865) | class InstantiateExpr extends Expression {
method constructor (line 32866) | constructor(classExpr, args, type, sourceSpan) {
method isEquivalent (line 32871) | isEquivalent(e) {
method isConstant (line 32875) | isConstant() { return false; }
method visitExpression (line 32876) | visitExpression(visitor, context) {
class LiteralExpr (line 32880) | class LiteralExpr extends Expression {
method constructor (line 32881) | constructor(value, type, sourceSpan) {
method isEquivalent (line 32885) | isEquivalent(e) {
method isConstant (line 32888) | isConstant() { return true; }
method visitExpression (line 32889) | visitExpression(visitor, context) {
class ExternalExpr (line 32893) | class ExternalExpr extends Expression {
method constructor (line 32894) | constructor(value, type, typeParams = null, sourceSpan) {
method isEquivalent (line 32899) | isEquivalent(e) {
method isConstant (line 32903) | isConstant() { return false; }
method visitExpression (line 32904) | visitExpression(visitor, context) {
class ExternalReference (line 32908) | class ExternalReference {
method constructor (line 32909) | constructor(moduleName, name, runtime) {
class ConditionalExpr (line 32915) | class ConditionalExpr extends Expression {
method constructor (line 32916) | constructor(condition, trueCase, falseCase = null, type, sourceSpan) {
method isEquivalent (line 32922) | isEquivalent(e) {
method isConstant (line 32926) | isConstant() { return false; }
method visitExpression (line 32927) | visitExpression(visitor, context) {
class NotExpr (line 32931) | class NotExpr extends Expression {
method constructor (line 32932) | constructor(condition, sourceSpan) {
method isEquivalent (line 32936) | isEquivalent(e) {
method isConstant (line 32939) | isConstant() { return false; }
method visitExpression (line 32940) | visitExpression(visitor, context) {
class AssertNotNull (line 32944) | class AssertNotNull extends Expression {
method constructor (line 32945) | constructor(condition, sourceSpan) {
method isEquivalent (line 32949) | isEquivalent(e) {
method isConstant (line 32952) | isConstant() { return false; }
method visitExpression (line 32953) | visitExpression(visitor, context) {
class CastExpr (line 32957) | class CastExpr extends Expression {
method constructor (line 32958) | constructor(value, type, sourceSpan) {
method isEquivalent (line 32962) | isEquivalent(e) {
method isConstant (line 32965) | isConstant() { return false; }
method visitExpression (line 32966) | visitExpression(visitor, context) {
class FnParam (line 32970) | class FnParam {
method constructor (line 32971) | constructor(name, type = null) {
method isEquivalent (line 32975) | isEquivalent(param) { return this.name === param.name; }
class FunctionExpr (line 32977) | class FunctionExpr extends Expression {
method constructor (line 32978) | constructor(params, statements, type, sourceSpan, name) {
method isEquivalent (line 32984) | isEquivalent(e) {
method isConstant (line 32988) | isConstant() { return false; }
method visitExpression (line 32989) | visitExpression(visitor, context) {
method toDeclStmt (line 32992) | toDeclStmt(name, modifiers = null) {
class BinaryOperatorExpr (line 32996) | class BinaryOperatorExpr extends Expression {
method constructor (line 32997) | constructor(operator, lhs, rhs, type, sourceSpan, parens = true) {
method isEquivalent (line 33004) | isEquivalent(e) {
method isConstant (line 33008) | isConstant() { return false; }
method visitExpression (line 33009) | visitExpression(visitor, context) {
class ReadPropExpr (line 33013) | class ReadPropExpr extends Expression {
method constructor (line 33014) | constructor(receiver, name, type, sourceSpan) {
method isEquivalent (line 33019) | isEquivalent(e) {
method isConstant (line 33023) | isConstant() { return false; }
method visitExpression (line 33024) | visitExpression(visitor, context) {
method set (line 33027) | set(value) {
class ReadKeyExpr (line 33031) | class ReadKeyExpr extends Expression {
method constructor (line 33032) | constructor(receiver, index, type, sourceSpan) {
method isEquivalent (line 33037) | isEquivalent(e) {
method isConstant (line 33041) | isConstant() { return false; }
method visitExpression (line 33042) | visitExpression(visitor, context) {
method set (line 33045) | set(value) {
class LiteralArrayExpr (line 33049) | class LiteralArrayExpr extends Expression {
method constructor (line 33050) | constructor(entries, type, sourceSpan) {
method isConstant (line 33054) | isConstant() { return this.entries.every(e => e.isConstant()); }
method isEquivalent (line 33055) | isEquivalent(e) {
method visitExpression (line 33058) | visitExpression(visitor, context) {
class LiteralMapEntry (line 33062) | class LiteralMapEntry {
method constructor (line 33063) | constructor(key, value, quoted) {
method isEquivalent (line 33068) | isEquivalent(e) {
class LiteralMapExpr (line 33072) | class LiteralMapExpr extends Expression {
method constructor (line 33073) | constructor(entries, type, sourceSpan) {
method isEquivalent (line 33081) | isEquivalent(e) {
method isConstant (line 33084) | isConstant() { return this.entries.every(e => e.value.isConstant()); }
method visitExpression (line 33085) | visitExpression(visitor, context) {
class CommaExpr (line 33089) | class CommaExpr extends Expression {
method constructor (line 33090) | constructor(parts, sourceSpan) {
method isEquivalent (line 33094) | isEquivalent(e) {
method isConstant (line 33097) | isConstant() { return false; }
method visitExpression (line 33098) | visitExpression(visitor, context) {
class Statement (line 33116) | class Statement {
method constructor (line 33117) | constructor(modifiers, sourceSpan) {
method hasModifier (line 33121) | hasModifier(modifier) { return this.modifiers.indexOf(modifier) !== -1; }
class DeclareVarStmt (line 33123) | class DeclareVarStmt extends Statement {
method constructor (line 33124) | constructor(name, value, type, modifiers = null, sourceSpan) {
method isEquivalent (line 33130) | isEquivalent(stmt) {
method visitStatement (line 33134) | visitStatement(visitor, context) {
class DeclareFunctionStmt (line 33138) | class DeclareFunctionStmt extends Statement {
method constructor (line 33139) | constructor(name, params, statements, type, modifiers = null, sourceSp...
method isEquivalent (line 33146) | isEquivalent(stmt) {
method visitStatement (line 33150) | visitStatement(visitor, context) {
class ExpressionStatement (line 33154) | class ExpressionStatement extends Statement {
method constructor (line 33155) | constructor(expr, sourceSpan) {
method isEquivalent (line 33159) | isEquivalent(stmt) {
method visitStatement (line 33162) | visitStatement(visitor, context) {
class ReturnStatement (line 33166) | class ReturnStatement extends Statement {
method constructor (line 33167) | constructor(value, sourceSpan) {
method isEquivalent (line 33171) | isEquivalent(stmt) {
method visitStatement (line 33174) | visitStatement(visitor, context) {
class AbstractClassPart (line 33178) | class AbstractClassPart {
method constructor (line 33179) | constructor(type, modifiers) {
method hasModifier (line 33186) | hasModifier(modifier) { return this.modifiers.indexOf(modifier) !== -1; }
class ClassField (line 33188) | class ClassField extends AbstractClassPart {
method constructor (line 33189) | constructor(name, type, modifiers = null, initializer) {
method isEquivalent (line 33194) | isEquivalent(f) { return this.name === f.name; }
class ClassMethod (line 33196) | class ClassMethod extends AbstractClassPart {
method constructor (line 33197) | constructor(name, params, body, type, modifiers = null) {
method isEquivalent (line 33203) | isEquivalent(m) {
class ClassGetter (line 33207) | class ClassGetter extends AbstractClassPart {
method constructor (line 33208) | constructor(name, body, type, modifiers = null) {
method isEquivalent (line 33213) | isEquivalent(m) {
class ClassStmt (line 33217) | class ClassStmt extends Statement {
method constructor (line 33218) | constructor(name, parent, fields, getters, constructorMethod, methods,...
method isEquivalent (line 33227) | isEquivalent(stmt) {
method visitStatement (line 33235) | visitStatement(visitor, context) {
class IfStmt (line 33239) | class IfStmt extends Statement {
method constructor (line 33240) | constructor(condition, trueCase, falseCase = [], sourceSpan) {
method isEquivalent (line 33246) | isEquivalent(stmt) {
method visitStatement (line 33251) | visitStatement(visitor, context) {
class CommentStmt (line 33255) | class CommentStmt extends Statement {
method constructor (line 33256) | constructor(comment, multiline = false, sourceSpan) {
method isEquivalent (line 33261) | isEquivalent(stmt) { return stmt instanceof CommentStmt; }
method visitStatement (line 33262) | visitStatement(visitor, context) {
class JSDocCommentStmt (line 33266) | class JSDocCommentStmt extends Statement {
method constructor (line 33267) | constructor(tags = [], sourceSpan) {
method isEquivalent (line 33271) | isEquivalent(stmt) {
method visitStatement (line 33274) | visitStatement(visitor, context) {
method toString (line 33277) | toString() { return serializeTags(this.tags); }
class TryCatchStmt (line 33279) | class TryCatchStmt extends Statement {
method constructor (line 33280) | constructor(bodyStmts, catchStmts, sourceSpan) {
method isEquivalent (line 33285) | isEquivalent(stmt) {
method visitStatement (line 33289) | visitStatement(visitor, context) {
class ThrowStmt (line 33293) | class ThrowStmt extends Statement {
method constructor (line 33294) | constructor(error, sourceSpan) {
method isEquivalent (line 33298) | isEquivalent(stmt) {
method visitStatement (line 33301) | visitStatement(visitor, context) {
class AstTransformer (line 33305) | class AstTransformer {
method transformExpr (line 33306) | transformExpr(expr, context) { return expr; }
method transformStmt (line 33307) | transformStmt(stmt, context) { return stmt; }
method visitReadVarExpr (line 33308) | visitReadVarExpr(ast, context) { return this.transformExpr(ast, contex...
method visitWrappedNodeExpr (line 33309) | visitWrappedNodeExpr(ast, context) {
method visitTypeofExpr (line 33312) | visitTypeofExpr(expr, context) {
method visitWriteVarExpr (line 33315) | visitWriteVarExpr(expr, context) {
method visitWriteKeyExpr (line 33318) | visitWriteKeyExpr(expr, context) {
method visitWritePropExpr (line 33321) | visitWritePropExpr(expr, context) {
method visitInvokeMethodExpr (line 33324) | visitInvokeMethodExpr(ast, context) {
method visitInvokeFunctionExpr (line 33328) | visitInvokeFunctionExpr(ast, context) {
method visitInstantiateExpr (line 33331) | visitInstantiateExpr(ast, context) {
method visitLiteralExpr (line 33334) | visitLiteralExpr(ast, context) { return this.transformExpr(ast, contex...
method visitExternalExpr (line 33335) | visitExternalExpr(ast, context) {
method visitConditionalExpr (line 33338) | visitConditionalExpr(ast, context) {
method visitNotExpr (line 33341) | visitNotExpr(ast, context) {
method visitAssertNotNullExpr (line 33344) | visitAssertNotNullExpr(ast, context) {
method visitCastExpr (line 33347) | visitCastExpr(ast, context) {
method visitFunctionExpr (line 33350) | visitFunctionExpr(ast, context) {
method visitBinaryOperatorExpr (line 33353) | visitBinaryOperatorExpr(ast, context) {
method visitReadPropExpr (line 33356) | visitReadPropExpr(ast, context) {
method visitReadKeyExpr (line 33359) | visitReadKeyExpr(ast, context) {
method visitLiteralArrayExpr (line 33362) | visitLiteralArrayExpr(ast, context) {
method visitLiteralMapExpr (line 33365) | visitLiteralMapExpr(ast, context) {
method visitCommaExpr (line 33370) | visitCommaExpr(ast, context) {
method visitAllExpressions (line 33373) | visitAllExpressions(exprs, context) {
method visitDeclareVarStmt (line 33376) | visitDeclareVarStmt(stmt, context) {
method visitDeclareFunctionStmt (line 33380) | visitDeclareFunctionStmt(stmt, context) {
method visitExpressionStmt (line 33383) | visitExpressionStmt(stmt, context) {
method visitReturnStmt (line 33386) | visitReturnStmt(stmt, context) {
method visitDeclareClassStmt (line 33389) | visitDeclareClassStmt(stmt, context) {
method visitIfStmt (line 33397) | visitIfStmt(stmt, context) {
method visitTryCatchStmt (line 33400) | visitTryCatchStmt(stmt, context) {
method visitThrowStmt (line 33403) | visitThrowStmt(stmt, context) {
method visitCommentStmt (line 33406) | visitCommentStmt(stmt, context) {
method visitJSDocCommentStmt (line 33409) | visitJSDocCommentStmt(stmt, context) {
method visitAllStatements (line 33412) | visitAllStatements(stmts, context) {
class RecursiveAstVisitor (line 33416) | class RecursiveAstVisitor {
method visitType (line 33417) | visitType(ast, context) { return ast; }
method visitExpression (line 33418) | visitExpression(ast, context) {
method visitBuiltinType (line 33424) | visitBuiltinType(type, context) { return this.visitType(type, context); }
method visitExpressionType (line 33425) | visitExpressionType(type, context) {
method visitArrayType (line 33432) | visitArrayType(type, context) { return this.visitType(type, context); }
method visitMapType (line 33433) | visitMapType(type, context) { return this.visitType(type, context); }
method visitWrappedNodeExpr (line 33434) | visitWrappedNodeExpr(ast, context) { return ast; }
method visitTypeofExpr (line 33435) | visitTypeofExpr(ast, context) { return this.visitExpression(ast, conte...
method visitReadVarExpr (line 33436) | visitReadVarExpr(ast, context) {
method visitWriteVarExpr (line 33439) | visitWriteVarExpr(ast, context) {
method visitWriteKeyExpr (line 33443) | visitWriteKeyExpr(ast, context) {
method visitWritePropExpr (line 33449) | visitWritePropExpr(ast, context) {
method visitInvokeMethodExpr (line 33454) | visitInvokeMethodExpr(ast, context) {
method visitInvokeFunctionExpr (line 33459) | visitInvokeFunctionExpr(ast, context) {
method visitInstantiateExpr (line 33464) | visitInstantiateExpr(ast, context) {
method visitLiteralExpr (line 33469) | visitLiteralExpr(ast, context) {
method visitExternalExpr (line 33472) | visitExternalExpr(ast, context) {
method visitConditionalExpr (line 33478) | visitConditionalExpr(ast, context) {
method visitNotExpr (line 33484) | visitNotExpr(ast, context) {
method visitAssertNotNullExpr (line 33488) | visitAssertNotNullExpr(ast, context) {
method visitCastExpr (line 33492) | visitCastExpr(ast, context) {
method visitFunctionExpr (line 33496) | visitFunctionExpr(ast, context) {
method visitBinaryOperatorExpr (line 33500) | visitBinaryOperatorExpr(ast, context) {
method visitReadPropExpr (line 33505) | visitReadPropExpr(ast, context) {
method visitReadKeyExpr (line 33509) | visitReadKeyExpr(ast, context) {
method visitLiteralArrayExpr (line 33514) | visitLiteralArrayExpr(ast, context) {
method visitLiteralMapExpr (line 33518) | visitLiteralMapExpr(ast, context) {
method visitCommaExpr (line 33522) | visitCommaExpr(ast, context) {
method visitAllExpressions (line 33526) | visitAllExpressions(exprs, context) {
method visitDeclareVarStmt (line 33529) | visitDeclareVarStmt(stmt, context) {
method visitDeclareFunctionStmt (line 33538) | visitDeclareFunctionStmt(stmt, context) {
method visitExpressionStmt (line 33545) | visitExpressionStmt(stmt, context) {
method visitReturnStmt (line 33549) | visitReturnStmt(stmt, context) {
method visitDeclareClassStmt (line 33553) | visitDeclareClassStmt(stmt, context) {
method visitIfStmt (line 33562) | visitIfStmt(stmt, context) {
method visitTryCatchStmt (line 33568) | visitTryCatchStmt(stmt, context) {
method visitThrowStmt (line 33573) | visitThrowStmt(stmt, context) {
method visitCommentStmt (line 33577) | visitCommentStmt(stmt, context) { return stmt; }
method visitJSDocCommentStmt (line 33578) | visitJSDocCommentStmt(stmt, context) { return stmt; }
method visitAllStatements (line 33579) | visitAllStatements(stmts, context) {
function findReadVarNames (line 33583) | function findReadVarNames(stmts) {
class _ReadVarVisitor (line 33588) | class _ReadVarVisitor extends RecursiveAstVisitor {
method constructor (line 33589) | constructor() {
method visitDeclareFunctionStmt (line 33593) | visitDeclareFunctionStmt(stmt, context) {
method visitDeclareClassStmt (line 33597) | visitDeclareClassStmt(stmt, context) {
method visitReadVarExpr (line 33601) | visitReadVarExpr(ast, context) {
function collectExternalReferences (line 33608) | function collectExternalReferences(stmts) {
class _FindExternalReferencesVisitor (line 33613) | class _FindExternalReferencesVisitor extends RecursiveAstVisitor {
method constructor (line 33614) | constructor() {
method visitExternalExpr (line 33618) | visitExternalExpr(e, context) {
function applySourceSpanToStatementIfNeeded (line 33623) | function applySourceSpanToStatementIfNeeded(stmt, sourceSpan) {
function applySourceSpanToExpressionIfNeeded (line 33630) | function applySourceSpanToExpressionIfNeeded(expr, sourceSpan) {
class _ApplySourceSpanTransformer (line 33637) | class _ApplySourceSpanTransformer extends AstTransformer {
method constructor (line 33638) | constructor(sourceSpan) {
method _clone (line 33642) | _clone(obj) {
method transformExpr (line 33649) | transformExpr(expr, context) {
method transformStmt (line 33656) | transformStmt(stmt, context) {
function variable (line 33664) | function variable(name, type, sourceSpan) {
function importExpr (line 33667) | function importExpr(id, typeParams = null, sourceSpan) {
function importType (line 33670) | function importType(id, typeParams = null, typeModifiers = null) {
function expressionType (line 33673) | function expressionType(expr, typeModifiers = null, typeParams = null) {
function typeofExpr (line 33676) | function typeofExpr(expr) {
function literalArr (line 33679) | function literalArr(values, type, sourceSpan) {
function literalMap (line 33682) | function literalMap(values, type = null) {
function not (line 33685) | function not(expr, sourceSpan) {
function assertNotNull (line 33688) | function assertNotNull(expr, sourceSpan) {
function fn (line 33691) | function fn(params, body, type, sourceSpan, name) {
function ifStmt (line 33694) | function ifStmt(condition, thenClause, elseClause) {
function literal (line 33697) | function literal(value, type, sourceSpan) {
function isNull (line 33700) | function isNull(exp) {
function tagToString (line 33707) | function tagToString(tag) {
function serializeTags (line 33720) | function serializeTags(tags) {
function dashCaseToCamelCase (line 33742) | function dashCaseToCamelCase(input) {
function splitAtColon (line 33745) | function splitAtColon(input, defaultValues) {
function splitAtPeriod (line 33748) | function splitAtPeriod(input, defaultValues) {
function _splitAt (line 33751) | function _splitAt(input, character, defaultValues) {
function visitValue (line 33757) | function visitValue(value, visitor, context) {
function isDefined (line 33770) | function isDefined(val) {
function noUndefined (line 33773) | function noUndefined(val) {
class ValueTransformer (line 33776) | class ValueTransformer {
method visitArray (line 33777) | visitArray(arr, context) {
method visitStringMap (line 33780) | visitStringMap(map, context) {
method visitPrimitive (line 33785) | visitPrimitive(value, context) { return value; }
method visitOther (line 33786) | visitOther(value, context) { return value; }
function error (line 33800) | function error(msg) {
function syntaxError (line 33803) | function syntaxError(msg, parseErrors) {
function isSyntaxError (line 33812) | function isSyntaxError(error) {
function getParseErrors (line 33815) | function getParseErrors(error) {
function escapeRegExp (line 33819) | function escapeRegExp(s) {
function isStrictStringMap (line 33823) | function isStrictStringMap(obj) {
function utf8Encode (line 33826) | function utf8Encode(str) {
function stringify (line 33854) | function stringify(token) {
function resolveForwardRef (line 33885) | function resolveForwardRef(type) {
function isPromise (line 33896) | function isPromise(obj) {
class Version (line 33901) | class Version {
method constructor (line 33902) | constructor(full) {
method constructor (line 82702) | constructor(full) {
class FixupExpression (line 33941) | class FixupExpression extends Expression {
method constructor (line 33942) | constructor(resolved) {
method visitExpression (line 33947) | visitExpression(visitor, context) {
method isEquivalent (line 33957) | isEquivalent(e) {
method isConstant (line 33960) | isConstant() { return true; }
method fixup (line 33961) | fixup(expression) {
class ConstantPool (line 33971) | class ConstantPool {
method constructor (line 33972) | constructor() {
method getConstLiteral (line 33982) | getConstLiteral(literal, forceShared) {
method getDefinition (line 34004) | getDefinition(type, kind, ctx, forceShared = false) {
method getLiteralFactory (line 34021) | getLiteralFactory(literal$1) {
method _getLiteralFactory (line 34042) | _getLiteralFactory(key, values, resultMap) {
method uniqueName (line 34065) | uniqueName(prefix) { return `${prefix}${this.nextNameIndex++}`; }
method definitionsOf (line 34066) | definitionsOf(kind) {
method propertyNameOf (line 34080) | propertyNameOf(kind) {
method freshName (line 34094) | freshName() { return this.uniqueName(CONSTANT_PREFIX); }
method keyOf (line 34095) | keyOf(expression) {
class KeyVisitor (line 34105) | class KeyVisitor {
method constructor (line 34106) | constructor() {
method visitLiteralExpr (line 34124) | visitLiteralExpr(ast) {
method visitLiteralArrayExpr (line 34127) | visitLiteralArrayExpr(ast, context) {
method visitLiteralMapExpr (line 34130) | visitLiteralMapExpr(ast, context) {
method visitExternalExpr (line 34138) | visitExternalExpr(ast) {
method visitReadVarExpr (line 34142) | visitReadVarExpr(node) { return `VAR:${node.name}`; }
method visitTypeofExpr (line 34143) | visitTypeofExpr(node, context) {
function invalid (line 34147) | function invalid(arg) {
function isVariable (line 34150) | function isVariable(e) {
class Identifiers (line 34162) | class Identifiers {
function createTokenForReference (line 34262) | function createTokenForReference(reference) {
function createTokenForExternalReference (line 34265) | function createTokenForExternalReference(reflector, reference) {
class StaticSymbol (line 34281) | class StaticSymbol {
method constructor (line 34282) | constructor(filePath, name, members) {
method assertNoMembers (line 34287) | assertNoMembers() {
class StaticSymbolCache (line 34297) | class StaticSymbolCache {
method constructor (line 34298) | constructor() {
method get (line 34301) | get(declarationFile, name, members) {
function sanitizeIdentifier (line 34326) | function sanitizeIdentifier(name) {
function identifierName (line 34330) | function identifierName(compileIdentifier) {
function identifierModuleUrl (line 34352) | function identifierModuleUrl(compileIdentifier) {
function viewClassName (line 34360) | function viewClassName(compType, embeddedTemplateIndex) {
function rendererTypeName (line 34363) | function rendererTypeName(compType) {
function hostViewClassName (line 34366) | function hostViewClassName(compType) {
function componentFactoryName (line 34369) | function componentFactoryName(compType) {
function tokenName (line 34379) | function tokenName(token) {
function tokenReference (line 34382) | function tokenReference(token) {
class CompileStylesheetMetadata (line 34393) | class CompileStylesheetMetadata {
method constructor (line 34394) | constructor({ moduleUrl, styles, styleUrls } = {}) {
class CompileTemplateMetadata (line 34403) | class CompileTemplateMetadata {
method constructor (line 34404) | constructor({ encapsulation, template, templateUrl, htmlAst, styles, s...
method toSummary (line 34421) | toSummary() {
class CompileDirectiveMetadata (line 34433) | class CompileDirectiveMetadata {
method create (line 34434) | static create({ isHost, type, isComponent, selector, exportAs, changeD...
method constructor (line 34492) | constructor({ isHost, type, isComponent, selector, exportAs, changeDet...
method toSummary (line 34515) | toSummary() {
class CompilePipeMetadata (line 34541) | class CompilePipeMetadata {
method constructor (line 34542) | constructor({ type, name, pure }) {
method toSummary (line 34547) | toSummary() {
class CompileShallowModuleMetadata (line 34556) | class CompileShallowModuleMetadata {
class CompileNgModuleMetadata (line 34561) | class CompileNgModuleMetadata {
method constructor (line 34562) | constructor({ type, providers, declaredDirectives, exportedDirectives,...
method toSummary (line 34577) | toSummary() {
class TransitiveCompileNgModuleMetadata (line 34590) | class TransitiveCompileNgModuleMetadata {
method constructor (line 34591) | constructor() {
method addProvider (line 34606) | addProvider(provider, module) {
method addDirective (line 34609) | addDirective(id) {
method addExportedDirective (line 34615) | addExportedDirective(id) {
method addPipe (line 34621) | addPipe(id) {
method addExportedPipe (line 34627) | addExportedPipe(id) {
method addModule (line 34633) | addModule(id) {
method addEntryComponent (line 34639) | addEntryComponent(ec) {
function _normalizeArray (line 34646) | function _normalizeArray(obj) {
class ProviderMeta (line 34649) | class ProviderMeta {
method constructor (line 34650) | constructor(token, { useClass, useValue, useExisting, useFactory, deps...
function flatten (line 34660) | function flatten(list) {
function jitSourceUrl (line 34666) | function jitSourceUrl(url) {
function templateSourceUrl (line 34671) | function templateSourceUrl(ngModuleType, compMeta, templateMeta) {
function sharedStylesheetJitUrl (line 34688) | function sharedStylesheetJitUrl(meta, id) {
function ngModuleJitUrl (line 34693) | function ngModuleJitUrl(moduleMeta) {
function templateJitUrl (line 34696) | function templateJitUrl(ngModuleType, compMeta) {
class Identifiers$1 (line 34708) | class Identifiers$1 {
function isWhitespace (line 34962) | function isWhitespace(code) {
function isDigit (line 34965) | function isDigit(code) {
function isAsciiLetter (line 34968) | function isAsciiLetter(code) {
function isAsciiHexDigit (line 34971) | function isAsciiHexDigit(code) {
function isNewLine (line 34974) | function isNewLine(code) {
function isOctalDigit (line 34977) | function isOctalDigit(code) {
class ParseLocation (line 34988) | class ParseLocation {
method constructor (line 34989) | constructor(file, offset, line, col) {
method toString (line 34995) | toString() {
method moveBy (line 34998) | moveBy(delta) {
method getContext (line 35033) | getContext(maxChars, maxLines) {
class ParseSourceFile (line 35071) | class ParseSourceFile {
method constructor (line 35072) | constructor(content, url) {
class ParseSourceSpan (line 35077) | class ParseSourceSpan {
method constructor (line 35078) | constructor(start, end, details = null) {
method toString (line 35083) | toString() {
class ParseError (line 35094) | class ParseError {
method constructor (line 35095) | constructor(span, msg, level = ParseErrorLevel.ERROR) {
method contextualMessage (line 35100) | contextualMessage() {
method toString (line 35105) | toString() {
function typeSourceSpan (line 35110) | function typeSourceSpan(kind, type) {
function r3JitTypeSourceSpan (line 35125) | function r3JitTypeSourceSpan(kind, typeName, sourceUrl) {
class Text (line 35138) | class Text {
method constructor (line 35139) | constructor(value, sourceSpan) {
method visit (line 35143) | visit(visitor) { return visitor.visitText(this); }
class BoundText (line 35145) | class BoundText {
method constructor (line 35146) | constructor(value, sourceSpan, i18n) {
method visit (line 35151) | visit(visitor) { return visitor.visitBoundText(this); }
class TextAttribute (line 35153) | class TextAttribute {
method constructor (line 35154) | constructor(name, value, sourceSpan, valueSpan, i18n) {
method visit (line 35161) | visit(visitor) { return visitor.visitTextAttribute(this); }
class BoundAttribute (line 35163) | class BoundAttribute {
method constructor (line 35164) | constructor(name, type, securityContext, value, unit, sourceSpan, valu...
method fromBoundElementProperty (line 35174) | static fromBoundElementProperty(prop, i18n) {
method visit (line 35177) | visit(visitor) { return visitor.visitBoundAttribute(this); }
class BoundEvent (line 35179) | class BoundEvent {
method constructor (line 35180) | constructor(name, type, handler, target, phase, sourceSpan, handlerSpa...
method fromParsedEvent (line 35189) | static fromParsedEvent(event) {
method visit (line 35194) | visit(visitor) { return visitor.visitBoundEvent(this); }
class Element (line 35196) | class Element {
method constructor (line 35197) | constructor(name, attributes, inputs, outputs, children, references, s...
method visit (line 35213) | visit(visitor) { return visitor.visitElement(this); }
class Template (line 35215) | class Template {
method constructor (line 35216) | constructor(tagName, attributes, inputs, outputs, templateAttrs, child...
method visit (line 35230) | visit(visitor) { return visitor.visitTemplate(this); }
class Content (line 35232) | class Content {
method constructor (line 35233) | constructor(selector, attributes, sourceSpan, i18n) {
method visit (line 35239) | visit(visitor) { return visitor.visitContent(this); }
class Variable (line 35241) | class Variable {
method constructor (line 35242) | constructor(name, value, sourceSpan, valueSpan) {
method visit (line 35248) | visit(visitor) { return visitor.visitVariable(this); }
class Reference (line 35250) | class Reference {
method constructor (line 35251) | constructor(name, value, sourceSpan, valueSpan) {
method visit (line 35257) | visit(visitor) { return visitor.visitReference(this); }
class Icu (line 35259) | class Icu {
method constructor (line 35260) | constructor(vars, placeholders, sourceSpan, i18n) {
method visit (line 35266) | visit(visitor) { return visitor.visitIcu(this); }
class NullVisitor (line 35268) | class NullVisitor {
method visitElement (line 35269) | visitElement(element) { }
method visitTemplate (line 35270) | visitTemplate(template) { }
method visitContent (line 35271) | visitContent(content) { }
method visitVariable (line 35272) | visitVariable(variable) { }
method visitReference (line 35273) | visitReference(reference) { }
method visitTextAttribute (line 35274) | visitTextAttribute(attribute) { }
method visitBoundAttribute (line 35275) | visitBoundAttribute(attribute) { }
method visitBoundEvent (line 35276) | visitBoundEvent(attribute) { }
method visitText (line 35277) | visitText(text) { }
method visitBoundText (line 35278) | visitBoundText(text) { }
method visitIcu (line 35279) | visitIcu(icu) { }
class RecursiveVisitor (line 35281) | class RecursiveVisitor {
method visitElement (line 35282) | visitElement(element) {
method visitTemplate (line 35287) | visitTemplate(template) {
method visitContent (line 35293) | visitContent(content) { }
method visitVariable (line 35294) | visitVariable(variable) { }
method visitReference (line 35295) | visitReference(reference) { }
method visitTextAttribute (line 35296) | visitTextAttribute(attribute) { }
method visitBoundAttribute (line 35297) | visitBoundAttribute(attribute) { }
method visitBoundEvent (line 35298) | visitBoundEvent(attribute) { }
method visitText (line 35299) | visitText(text) { }
method visitBoundText (line 35300) | visitBoundText(text) { }
method visitIcu (line 35301) | visitIcu(icu) { }
class TransformVisitor (line 35303) | class TransformVisitor {
method visitElement (line 35304) | visitElement(element) {
method visitTemplate (line 35317) | visitTemplate(template) {
method visitContent (line 35333) | visitContent(content) { return content; }
method visitVariable (line 35334) | visitVariable(variable) { return variable; }
method visitReference (line 35335) | visitReference(reference) { return reference; }
method visitTextAttribute (line 35336) | visitTextAttribute(attribute) { return attribute; }
method visitBoundAttribute (line 35337) | visitBoundAttribute(attribute) { return attribute; }
method visitBoundEvent (line 35338) | visitBoundEvent(attribute) { return attribute; }
method visitText (line 35339) | visitText(text) { return text; }
method visitBoundText (line 35340) | visitBoundText(text) { return text; }
method visitIcu (line 35341) | visitIcu(icu) { return icu; }
function visitAll (line 35343) | function visitAll(visitor, nodes) {
function transformAll (line 35360) | function transformAll(visitor, nodes) {
class Message (line 35380) | class Message {
method constructor (line 35389) | constructor(nodes, placeholders, placeholderToMessage, meaning, descri...
class Text$1 (line 35410) | class Text$1 {
method constructor (line 35411) | constructor(value, sourceSpan) {
method visit (line 35415) | visit(visitor, context) { return visitor.visitText(this, context); }
class Container (line 35418) | class Container {
method constructor (line 35419) | constructor(children, sourceSpan) {
method visit (line 35423) | visit(visitor, context) { return visitor.visitContainer(this, context); }
class Icu$1 (line 35425) | class Icu$1 {
method constructor (line 35426) | constructor(expression, type, cases, sourceSpan) {
method visit (line 35432) | visit(visitor, context) { return visitor.visitIcu(this, context); }
class TagPlaceholder (line 35434) | class TagPlaceholder {
method constructor (line 35435) | constructor(tag, attrs, startName, closeName, children, isVoid, source...
method visit (line 35444) | visit(visitor, context) { return visitor.visitTagPlaceholder(this, con...
class Placeholder (line 35446) | class Placeholder {
method constructor (line 35447) | constructor(value, name, sourceSpan) {
method visit (line 35452) | visit(visitor, context) { return visitor.visitPlaceholder(this, contex...
class IcuPlaceholder (line 35454) | class IcuPlaceholder {
method constructor (line 35455) | constructor(value, name, sourceSpan) {
method visit (line 35460) | visit(visitor, context) { return visitor.visitIcuPlaceholder(this, con...
class CloneVisitor (line 35463) | class CloneVisitor {
method visitText (line 35464) | visitText(text, context) { return new Text$1(text.value, text.sourceSp...
method visitContainer (line 35465) | visitContainer(container, context) {
method visitIcu (line 35469) | visitIcu(icu, context) {
method visitTagPlaceholder (line 35476) | visitTagPlaceholder(ph, context) {
method visitPlaceholder (line 35480) | visitPlaceholder(ph, context) {
method visitIcuPlaceholder (line 35483) | visitIcuPlaceholder(ph, context) {
class RecurseVisitor (line 35488) | class RecurseVisitor {
method visitText (line 35489) | visitText(text, context) { }
method visitContainer (line 35490) | visitContainer(container, context) {
method visitIcu (line 35493) | visitIcu(icu, context) {
method visitTagPlaceholder (line 35496) | visitTagPlaceholder(ph, context) {
method visitPlaceholder (line 35499) | visitPlaceholder(ph, context) { }
method visitIcuPlaceholder (line 35500) | visitIcuPlaceholder(ph, context) { }
function digest (line 35510) | function digest(message) {
function decimalDigest (line 35513) | function decimalDigest(message) {
class _SerializerVisitor (line 35528) | class _SerializerVisitor {
method visitText (line 35529) | visitText(text, context) { return text.value; }
method visitContainer (line 35530) | visitContainer(container, context) {
method visitIcu (line 35533) | visitIcu(icu, context) {
method visitTagPlaceholder (line 35537) | visitTagPlaceholder(ph, context) {
method visitPlaceholder (line 35542) | visitPlaceholder(ph, context) {
method visitIcuPlaceholder (line 35545) | visitIcuPlaceholder(ph, context) {
function serializeNodes (line 35550) | function serializeNodes(nodes) {
class _SerializerIgnoreIcuExpVisitor (line 35560) | class _SerializerIgnoreIcuExpVisitor extends _SerializerVisitor {
method visitIcu (line 35561) | visitIcu(icu, context) {
function sha1 (line 35575) | function sha1(str) {
function fk (line 35600) | function fk(index, b, c, d) {
function fingerprint (line 35620) | function fingerprint(str) {
function computeMsgId (line 35629) | function computeMsgId(msg, meaning) {
function hash32 (line 35637) | function hash32(str, c) {
function mix (line 35655) | function mix([a, b, c]) {
function add32 (line 35692) | function add32(a, b) {
function add32to64 (line 35695) | function add32to64(a, b) {
function add64 (line 35700) | function add64([ah, al], [bh, bl]) {
function sub32 (line 35705) | function sub32(a, b) {
function rol32 (line 35711) | function rol32(a, count) {
function rol64 (line 35715) | function rol64([hi, lo], count) {
function stringToWords32 (line 35720) | function stringToWords32(str, endian) {
function byteAt (line 35727) | function byteAt(str, index) {
function wordAt (line 35730) | function wordAt(str, index, endian) {
function words32ToByteString (line 35744) | function words32ToByteString(words32) {
function word32ToByteString (line 35747) | function word32ToByteString(word) {
function byteStringToHexString (line 35754) | function byteStringToHexString(str) {
function byteStringToDecString (line 35763) | function byteStringToDecString(str) {
function addBigInt (line 35773) | function addBigInt(x, y) {
function numberTimesBigInt (line 35789) | function numberTimesBigInt(num, b) {
class Serializer (line 35807) | class Serializer {
method createNameMapper (line 35810) | createNameMapper(message) { return null; }
class SimplePlaceholderMapper (line 35815) | class SimplePlaceholderMapper extends RecurseVisitor {
method constructor (line 35817) | constructor(message, mapName) {
method toPublicName (line 35825) | toPublicName(internalName) {
method toInternalName (line 35830) | toInternalName(publicName) {
method visitText (line 35834) | visitText(text, context) { return null; }
method visitTagPlaceholder (line 35835) | visitTagPlaceholder(ph, context) {
method visitPlaceholder (line 35840) | visitPlaceholder(ph, context) { this.visitPlaceholderName(ph.name); }
method visitIcuPlaceholder (line 35841) | visitIcuPlaceholder(ph, context) {
method visitPlaceholderName (line 35845) | visitPlaceholderName(internalName) {
class _Visitor (line 35871) | class _Visitor {
method visitTag (line 35872) | visitTag(tag) {
method visitText (line 35880) | visitText(text) { return text.value; }
method visitDeclaration (line 35881) | visitDeclaration(decl) {
method _serializeAttributes (line 35884) | _serializeAttributes(attrs) {
method visitDoctype (line 35888) | visitDoctype(doctype) {
function serialize (line 35893) | function serialize(nodes) {
class Declaration (line 35896) | class Declaration {
method constructor (line 35897) | constructor(unescapedAttrs) {
method visit (line 35903) | visit(visitor) { return visitor.visitDeclaration(this); }
class Doctype (line 35905) | class Doctype {
method constructor (line 35906) | constructor(rootTag, dtd) {
method visit (line 35910) | visit(visitor) { return visitor.visitDoctype(this); }
class Tag (line 35912) | class Tag {
method constructor (line 35913) | constructor(name, unescapedAttrs = {}, children = []) {
method visit (line 35921) | visit(visitor) { return visitor.visitTag(this); }
class Text$2 (line 35923) | class Text$2 {
method constructor (line 35924) | constructor(unescapedValue) { this.value = escapeXml(unescapedValue); }
method visit (line 35925) | visit(visitor) { return visitor.visitText(this); }
class CR (line 35927) | class CR extends Text$2 {
method constructor (line 35928) | constructor(ws = 0) { super(`\n${new Array(ws + 1).join(' ')}`); }
function escapeXml (line 35938) | function escapeXml(text) {
class Xmb (line 35973) | class Xmb extends Serializer {
method write (line 35974) | write(messages, locale) {
method load (line 36004) | load(content, url) {
method digest (line 36007) | digest(message) { return digest$1(message); }
method createNameMapper (line 36008) | createNameMapper(message) {
class _Visitor$1 (line 36012) | class _Visitor$1 {
method visitText (line 36013) | visitText(text, context) { return [new Text$2(text.value)]; }
method visitContainer (line 36014) | visitContainer(container, context) {
method visitIcu (line 36019) | visitIcu(icu, context) {
method visitTagPlaceholder (line 36027) | visitTagPlaceholder(ph, context) {
method visitPlaceholder (line 36042) | visitPlaceholder(ph, context) {
method visitIcuPlaceholder (line 36051) | visitIcuPlaceholder(ph, context) {
method serialize (line 36062) | serialize(nodes) {
function digest$1 (line 36066) | function digest$1(message) {
class ExampleVisitor (line 36070) | class ExampleVisitor {
method addDefaultExamples (line 36071) | addDefaultExamples(node) {
method visitTag (line 36075) | visitTag(tag) {
method visitText (line 36086) | visitText(text) { }
method visitDeclaration (line 36087) | visitDeclaration(decl) { }
method visitDoctype (line 36088) | visitDoctype(doctype) { }
function toPublicName (line 36091) | function toPublicName(internalName) {
function mapEntry (line 36102) | function mapEntry(key, value) {
function mapLiteral (line 36105) | function mapLiteral(obj, quoted = false) {
function i18nTranslationToDeclStmt (line 36140) | function i18nTranslationToDeclStmt(variable$1, closureVar, message, meta...
function i18nMetaToDocStmt (line 36165) | function i18nMetaToDocStmt(meta) {
function isI18nAttribute (line 36175) | function isI18nAttribute(name) {
function isI18nRootNode (line 36178) | function isI18nRootNode(meta) {
function isSingleI18nIcu (line 36181) | function isSingleI18nIcu(meta) {
function hasI18nAttrs (line 36184) | function hasI18nAttrs(element) {
function metaFromI18nMessage (line 36187) | function metaFromI18nMessage(message, id = null) {
function icuFromI18nMessage (line 36194) | function icuFromI18nMessage(message) {
function wrapI18nPlaceholder (line 36197) | function wrapI18nPlaceholder(content, contextId = 0) {
function assembleI18nBoundString (line 36201) | function assembleI18nBoundString(strings, bindingStartIndex = 0, context...
function getSeqNumberGenerator (line 36212) | function getSeqNumberGenerator(startsAt = 0) {
function placeholdersToParams (line 36216) | function placeholdersToParams(placeholders) {
function updatePlaceholderMap (line 36223) | function updatePlaceholderMap(map, name, ...values) {
function assembleBoundTextPlaceholders (line 36228) | function assembleBoundTextPlaceholders(meta, bindingStartIndex = 0, cont...
function findIndex (line 36243) | function findIndex(items, callback) {
function parseI18nMeta (line 36261) | function parseI18nMeta(meta) {
function formatI18nPlaceholderName (line 36285) | function formatI18nPlaceholderName(name, useCamelCase = true) {
function getTranslationConstPrefix (line 36312) | function getTranslationConstPrefix(extra) {
function getTranslationDeclStmts (line 36326) | function getTranslationDeclStmts(variable, closureVar, message, meta, pa...
function temporaryAllocator (line 36368) | function temporaryAllocator(statements, name) {
function unsupported (line 36378) | function unsupported(feature) {
function invalid$1 (line 36384) | function invalid$1(arg) {
function asLiteral (line 36387) | function asLiteral(value) {
function conditionallyCreateMapObjectLiteral (line 36393) | function conditionallyCreateMapObjectLiteral(keys, keepDeclared) {
function mapToExpression (line 36399) | function mapToExpression(map, keepDeclared) {
function trimTrailingNulls (line 36427) | function trimTrailingNulls(parameters) {
function getQueryPredicate (line 36433) | function getQueryPredicate(query, constantPool) {
function noop (line 36449) | function noop() { }
class DefinitionMap (line 36450) | class DefinitionMap {
method constructor (line 36451) | constructor() {
method set (line 36454) | set(key, value) {
method toLiteralMap (line 36459) | toLiteralMap() { return literalMap(this.values); }
function getAttrsForDirectiveMatching (line 36470) | function getAttrsForDirectiveMatching(elOrTpl) {
function chainedInstruction (line 36487) | function chainedInstruction(reference, calls, span) {
function getInterpolationArgsLength (line 36505) | funct
Copy disabled (too large)
Download .json
Condensed preview — 132 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (16,503K chars).
[
{
"path": ".gitignore",
"chars": 25,
"preview": ".DS_Store\n*/node_modules\n"
},
{
"path": "README.md",
"chars": 535,
"preview": "## What's up ya'll, welcome to Obscurify\r\n\r\nThe goal here is to show you as many interesting things about\r\nyour Spotify "
},
{
"path": "frontend/README.md",
"chars": 1028,
"preview": "# Obscurify3\n\nThis project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.3.21.\n\n## "
},
{
"path": "frontend/angular.json",
"chars": 4623,
"preview": "{\n \"$schema\": \"./node_modules/@angular/cli/lib/config/schema.json\",\n \"version\": 1,\n \"newProjectRoot\": \"projects\",\n \""
},
{
"path": "frontend/browserslist",
"chars": 429,
"preview": "# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.\n# For addit"
},
{
"path": "frontend/dist/obscurify3/index.html",
"chars": 924,
"preview": "<!doctype html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <title>Obscurify3</title>\n <base href=\"/\">\n <meta n"
},
{
"path": "frontend/dist/obscurify3/main-es2015.js",
"chars": 634381,
"preview": "(window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || []).push([[\"main\"],{\n\n/***/ \"./$$_lazy_route_resource lazy recursive"
},
{
"path": "frontend/dist/obscurify3/main-es5.js",
"chars": 663508,
"preview": "function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n"
},
{
"path": "frontend/dist/obscurify3/polyfills-es2015.js",
"chars": 269840,
"preview": "(window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || []).push([[\"polyfills\"],{\n\n/***/ \"./node_modules/@angular-devkit/bui"
},
{
"path": "frontend/dist/obscurify3/polyfills-es5.js",
"chars": 699749,
"preview": "function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot "
},
{
"path": "frontend/dist/obscurify3/runtime-es2015.js",
"chars": 6263,
"preview": "/******/ (function(modules) { // webpackBootstrap\n/******/ \t// install a JSONP callback for chunk loading\n/******/ \tfunc"
},
{
"path": "frontend/dist/obscurify3/runtime-es5.js",
"chars": 6303,
"preview": "/******/ (function(modules) { // webpackBootstrap\n/******/ \t// install a JSONP callback for chunk loading\n/******/ \tfunc"
},
{
"path": "frontend/dist/obscurify3/styles-es2015.js",
"chars": 409717,
"preview": "(window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || []).push([[\"styles\"],{\n\n/***/ \"./node_modules/@angular-devkit/build-"
},
{
"path": "frontend/dist/obscurify3/styles-es5.js",
"chars": 411055,
"preview": "(window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || []).push([[\"styles\"], {\n /***/\n \"./node_modules/@angular-devkit/bu"
},
{
"path": "frontend/dist/obscurify3/vendor-es2015.js",
"chars": 5731311,
"preview": "(window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || []).push([[\"vendor\"],{\n\n/***/ \"./node_modules/@angular/animations/fe"
},
{
"path": "frontend/dist/obscurify3/vendor-es5.js",
"chars": 6924463,
"preview": "function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable"
},
{
"path": "frontend/e2e/protractor.conf.js",
"chars": 808,
"preview": "// @ts-check\n// Protractor configuration file, see link for more information\n// https://github.com/angular/protractor/bl"
},
{
"path": "frontend/e2e/src/app.e2e-spec.ts",
"chars": 643,
"preview": "import { AppPage } from './app.po';\nimport { browser, logging } from 'protractor';\n\ndescribe('workspace-project App', ()"
},
{
"path": "frontend/e2e/src/app.po.ts",
"chars": 262,
"preview": "import { browser, by, element } from 'protractor';\n\nexport class AppPage {\n navigateTo() {\n return browser.get(brows"
},
{
"path": "frontend/e2e/tsconfig.json",
"chars": 214,
"preview": "{\n \"extends\": \"../tsconfig.json\",\n \"compilerOptions\": {\n \"outDir\": \"../out-tsc/e2e\",\n \"module\": \"commonjs\",\n "
},
{
"path": "frontend/karma.conf.js",
"chars": 1022,
"preview": "// Karma configuration file, see link for more information\n// https://karma-runner.github.io/1.0/config/configuration-fi"
},
{
"path": "frontend/ngsw-config.json",
"chars": 620,
"preview": "{\n \"$schema\": \"./node_modules/@angular/service-worker/config/schema.json\",\n \"index\": \"/index.html\",\n \"assetGroups\": ["
},
{
"path": "frontend/package.json",
"chars": 1674,
"preview": "{\n \"name\": \"obscurify3\",\n \"version\": \"0.0.0\",\n \"scripts\": {\n \"ng\": \"ng\",\n \"start\": \"ng serve\",\n \"build\": \"ng"
},
{
"path": "frontend/src/app/app-routing.module.ts",
"chars": 1109,
"preview": "import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { LoginComponen"
},
{
"path": "frontend/src/app/app.component.html",
"chars": 5887,
"preview": "<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * -->\n<!-- * * * * * * * * * * * The content below * * "
},
{
"path": "frontend/src/app/app.component.scss",
"chars": 46,
"preview": "@import 'mixins';\n\n#app {\n height: 100%;\n}\n"
},
{
"path": "frontend/src/app/app.component.spec.ts",
"chars": 1110,
"preview": "import { TestBed, async } from '@angular/core/testing';\nimport { RouterTestingModule } from '@angular/router/testing';\ni"
},
{
"path": "frontend/src/app/app.component.ts",
"chars": 1413,
"preview": "import { Inject } from '@angular/core';\nimport { PLATFORM_ID } from '@angular/core';\nimport { DOCUMENT } from '@angular/"
},
{
"path": "frontend/src/app/app.module.ts",
"chars": 4203,
"preview": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { BrowserAni"
},
{
"path": "frontend/src/app/components/about/about.component.html",
"chars": 3077,
"preview": "\n<div fxLayout.gt-sm=\"row\" fxLayout=\"column\">\n\n <aside fxFlex=\"0 0 40%\" fxLayoutAlign=\"start center\" fxLayout=\"column n"
},
{
"path": "frontend/src/app/components/about/about.component.scss",
"chars": 842,
"preview": "@import 'variables';\n@import 'mixins';\n\nmain {\n width: 100%;\n}\n\nsection {\n margin: 2em 0;\n max-width: 772px;\n "
},
{
"path": "frontend/src/app/components/about/about.component.spec.ts",
"chars": 621,
"preview": "import { async, ComponentFixture, TestBed } from '@angular/core/testing';\n\nimport { AboutComponent } from './about.compo"
},
{
"path": "frontend/src/app/components/about/about.component.ts",
"chars": 266,
"preview": "import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-about',\n templateUrl: './about.compon"
},
{
"path": "frontend/src/app/components/artist/artist-card/artist-card.component.html",
"chars": 1427,
"preview": "<div class=\"artist__card\" [ngClass]=\"{'active': activeView}\">\n <img *ngIf=\"artist.images.length > 1\" [src]=\"artist.im"
},
{
"path": "frontend/src/app/components/artist/artist-card/artist-card.component.scss",
"chars": 2176,
"preview": "@import 'variables';\n@import 'mixins';\n\n.artist__card__stars {\n margin-top: 1em;\n}\n\n.artist__card {\n width: 100%;\n"
},
{
"path": "frontend/src/app/components/artist/artist-card/artist-card.component.spec.ts",
"chars": 657,
"preview": "import { async, ComponentFixture, TestBed } from '@angular/core/testing';\n\nimport { ArtistCardComponent } from './artist"
},
{
"path": "frontend/src/app/components/artist/artist-card/artist-card.component.ts",
"chars": 1307,
"preview": "import { Component, OnInit, HostListener, Input } from '@angular/core';\nimport { BrowserCheck } from 'src/app/services/b"
},
{
"path": "frontend/src/app/components/artist/artist-list/artist-list.component.html",
"chars": 4553,
"preview": "<div #slate class=\"slate\">\n <div class=\"artist\">\n <div class=\"header\" [ngClass]=\"{'sticky': stickHeader}\">\n "
},
{
"path": "frontend/src/app/components/artist/artist-list/artist-list.component.scss",
"chars": 1634,
"preview": "@import 'mixins';\n@import 'components/header';\n@import 'variables';\n\n:host {\n display: block;\n}\n\n.bottomsheet__btn {\n "
},
{
"path": "frontend/src/app/components/artist/artist-list/artist-list.component.spec.ts",
"chars": 657,
"preview": "import { async, ComponentFixture, TestBed } from '@angular/core/testing';\n\nimport { ArtistListComponent } from './artist"
},
{
"path": "frontend/src/app/components/artist/artist-list/artist-list.component.ts",
"chars": 7588,
"preview": "import { Component, OnInit, Output, EventEmitter, ElementRef, AfterViewInit, Input, ViewChild, OnChanges, SimpleChanges "
},
{
"path": "frontend/src/app/components/artist/artist-nav/artist-nav.component.html",
"chars": 2016,
"preview": "<div class=\"artist__nav\" [ngClass]=\"{'active': navOpen}\">\n <div class=\"artist__nav__container\">\n\n <div class=\""
},
{
"path": "frontend/src/app/components/artist/artist-nav/artist-nav.component.scss",
"chars": 2599,
"preview": "@import 'variables';\n@import 'mixins';\n\n.artist__nav {\n padding: 0em 2em 2em;\n\n height: 20em;\n width: 100%;\n "
},
{
"path": "frontend/src/app/components/artist/artist-nav/artist-nav.component.spec.ts",
"chars": 650,
"preview": "import { async, ComponentFixture, TestBed } from '@angular/core/testing';\n\nimport { ArtistNavComponent } from './artist-"
},
{
"path": "frontend/src/app/components/artist/artist-nav/artist-nav.component.ts",
"chars": 2034,
"preview": "import { Component, OnInit, Input, Output, Inject, Optional, OnChanges, SimpleChanges } from '@angular/core';\nimport { E"
},
{
"path": "frontend/src/app/components/artist/track-card/track-card.component.html",
"chars": 1222,
"preview": "<div class=\"artist__card\" [ngClass]=\"{'active': activeView}\">\n\n <img *ngIf=\"track.album.images.length > 1\" [src]=\"tra"
},
{
"path": "frontend/src/app/components/artist/track-card/track-card.component.scss",
"chars": 2176,
"preview": "@import 'variables';\n@import 'mixins';\n\n.artist__card__stars {\n margin-top: 1em;\n}\n\n.artist__card {\n width: 100%;\n"
},
{
"path": "frontend/src/app/components/artist/track-card/track-card.component.spec.ts",
"chars": 650,
"preview": "import { async, ComponentFixture, TestBed } from '@angular/core/testing';\n\nimport { TrackCardComponent } from './track-c"
},
{
"path": "frontend/src/app/components/artist/track-card/track-card.component.ts",
"chars": 1313,
"preview": "import { Component, OnInit, Input, HostListener } from '@angular/core';\nimport { BrowserCheck } from 'src/app/services/b"
},
{
"path": "frontend/src/app/components/footer/footer.component.html",
"chars": 786,
"preview": "<footer >\n <div class=\"footer\" fxflex=\"row nowrap\" fxLayoutAlign=\"space-between center\">\n <div class=\"footer__links\""
},
{
"path": "frontend/src/app/components/footer/footer.component.scss",
"chars": 464,
"preview": "footer {\n min-height: 100px;\n padding: 3em;\n background-color: rgba(0,0,0,0.8);\n color: white;\n bottom: 0"
},
{
"path": "frontend/src/app/components/footer/footer.component.spec.ts",
"chars": 628,
"preview": "import { async, ComponentFixture, TestBed } from '@angular/core/testing';\n\nimport { FooterComponent } from './footer.com"
},
{
"path": "frontend/src/app/components/footer/footer.component.ts",
"chars": 614,
"preview": "import { Component, OnInit, Input } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TokenServic"
},
{
"path": "frontend/src/app/components/home/home.component.html",
"chars": 2237,
"preview": "<main class=\"app\" spyOn (loaded)=\"loadEvent($event)\">\n\n <app-intro [data]=\"user\" [error]=\"allTimeTracks?.allTimeTrack"
},
{
"path": "frontend/src/app/components/home/home.component.scss",
"chars": 570,
"preview": "@import 'variables';\n\n.app {\n transition: .3s cubic-bezier(.25,.1,.25,1);\n}\n\n.app__loading {\n height: 100vh;\n w"
},
{
"path": "frontend/src/app/components/home/home.component.spec.ts",
"chars": 614,
"preview": "import { async, ComponentFixture, TestBed } from '@angular/core/testing';\n\nimport { HomeComponent } from './home.compone"
},
{
"path": "frontend/src/app/components/home/home.component.ts",
"chars": 6068,
"preview": "import { Component, OnInit, Directive } from '@angular/core';\nimport { TokenService, AuthService } from '../../services/"
},
{
"path": "frontend/src/app/components/intro/intro.component.html",
"chars": 1492,
"preview": "<nav *ngIf=\"data\">\n <div fxLayout=\"row\" fxLayoutAlign=\"end start\">\n <button [matMenuTriggerFor]=\"appMenu\">\n "
},
{
"path": "frontend/src/app/components/intro/intro.component.scss",
"chars": 2181,
"preview": "@import 'variables';\n@import 'mixins';\n\nnav {\n max-width: 1024px;\n padding: 1em 1em;\n margin: 0 auto 1em;\n p"
},
{
"path": "frontend/src/app/components/intro/intro.component.spec.ts",
"chars": 621,
"preview": "import { async, ComponentFixture, TestBed } from '@angular/core/testing';\n\nimport { IntroComponent } from './intro.compo"
},
{
"path": "frontend/src/app/components/intro/intro.component.ts",
"chars": 2568,
"preview": "import { Component, OnInit, Output, EventEmitter, ElementRef, Input, OnChanges } from '@angular/core';\nimport { Intersec"
},
{
"path": "frontend/src/app/components/login/login.component.html",
"chars": 542,
"preview": "<main>\n <div class=\"banner-container\" >\n <!-- ObscurifyMusic_S2S_Leaderboard_ROS_ATF -->\n <div id=\"bsa-zone_15971"
},
{
"path": "frontend/src/app/components/login/login.component.scss",
"chars": 1839,
"preview": "@import 'mixins';\n\nmain {\n background:linear-gradient(rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.8)), url(../../../assets/im"
},
{
"path": "frontend/src/app/components/login/login.component.spec.ts",
"chars": 621,
"preview": "import { async, ComponentFixture, TestBed } from '@angular/core/testing';\n\nimport { LoginComponent } from './login.compo"
},
{
"path": "frontend/src/app/components/login/login.component.ts",
"chars": 1101,
"preview": "import { Component, OnInit } from '@angular/core';\nimport { AuthService, AuthConfig, TokenService } from '../../services"
},
{
"path": "frontend/src/app/components/moods-graph/moods-graph.component.html",
"chars": 5557,
"preview": "<div class=\"slate\" >\n <div class=\"moods-graph\" [ngClass]=\"{'show': this.show}\">\n <div class=\"header\">\n "
},
{
"path": "frontend/src/app/components/moods-graph/moods-graph.component.scss",
"chars": 1906,
"preview": "@import 'components/header';\n@import 'mixins';\n@import 'variables';\n\n:host {\n display: block;\n}\n\n.slate {\n backgroun"
},
{
"path": "frontend/src/app/components/moods-graph/moods-graph.component.spec.ts",
"chars": 657,
"preview": "import { async, ComponentFixture, TestBed } from '@angular/core/testing';\n\nimport { MoodsGraphComponent } from './moods-"
},
{
"path": "frontend/src/app/components/moods-graph/moods-graph.component.ts",
"chars": 11587,
"preview": "import { Component, OnInit, Output, EventEmitter, ElementRef, AfterViewInit, Input, OnChanges, SimpleChanges, ViewChild "
},
{
"path": "frontend/src/app/components/obscurity-graph/obscurity-graph.component.html",
"chars": 612,
"preview": "\n<div fxLayout=\"row\" fxLayoutAlign=\"end center\">\n <div class=\"obscurity__graph\" fxLayout=\"column\" fxLayoutAlign=\"cent"
},
{
"path": "frontend/src/app/components/obscurity-graph/obscurity-graph.component.scss",
"chars": 1046,
"preview": "@import 'variables';\n@import 'mixins';\n\n\n.obscurity__graph {\n margin-top: 2em;\n border-radius: 5px;\n width: 100"
},
{
"path": "frontend/src/app/components/obscurity-graph/obscurity-graph.component.spec.ts",
"chars": 685,
"preview": "import { async, ComponentFixture, TestBed } from '@angular/core/testing';\n\nimport { ObscurityGraphComponent } from './ob"
},
{
"path": "frontend/src/app/components/obscurity-graph/obscurity-graph.component.ts",
"chars": 5451,
"preview": "import { Component, OnInit, Input, ElementRef, SimpleChanges, OnChanges } from '@angular/core';\nimport { DomSanitizer } "
},
{
"path": "frontend/src/app/components/obscurity-rating/obscurity-rating.component.html",
"chars": 2018,
"preview": "\n<div class=\"slate\">\n <div class=\"obscurity\" [ngClass]=\"{'show': this.show}\">\n\n <div class=\"header\">\n "
},
{
"path": "frontend/src/app/components/obscurity-rating/obscurity-rating.component.scss",
"chars": 1647,
"preview": "@import 'components/header';\n@import 'variables';\n@import 'mixins';\n@import '~@angular/material/theming';\n\n\n:host {\n di"
},
{
"path": "frontend/src/app/components/obscurity-rating/obscurity-rating.component.spec.ts",
"chars": 692,
"preview": "import { async, ComponentFixture, TestBed } from '@angular/core/testing';\n\nimport { ObscurityRatingComponent } from './o"
},
{
"path": "frontend/src/app/components/obscurity-rating/obscurity-rating.component.ts",
"chars": 2751,
"preview": "import { Component, OnInit, Output, EventEmitter, ElementRef, AfterViewInit, Input } from '@angular/core';\nimport { Inte"
},
{
"path": "frontend/src/app/components/privacy/privacy.component.html",
"chars": 2361,
"preview": "<main fxLayout=\"column\">\n <section fxFlex=\"1 1 100%\">\n <a class=\"back__btn\" routerLink=\"/login\"> <i class=\"fas"
},
{
"path": "frontend/src/app/components/privacy/privacy.component.scss",
"chars": 375,
"preview": "main {\n width: 100%;\n background-color: #A9E5AC;\n}\n\nsection {\n margin: 2em 0;\n max-width: 772px;\n padding"
},
{
"path": "frontend/src/app/components/privacy/privacy.component.spec.ts",
"chars": 635,
"preview": "import { async, ComponentFixture, TestBed } from '@angular/core/testing';\n\nimport { PrivacyComponent } from './privacy.c"
},
{
"path": "frontend/src/app/components/privacy/privacy.component.ts",
"chars": 274,
"preview": "import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-privacy',\n templateUrl: './privacy.co"
},
{
"path": "frontend/src/app/components/recommendations/recommendations.component.html",
"chars": 1954,
"preview": "<div class=\"slate\">\n <div class=\"recommendations\" [ngClass]=\"{'show': this.show}\">\n <div class=\"header\">\n "
},
{
"path": "frontend/src/app/components/recommendations/recommendations.component.scss",
"chars": 4222,
"preview": "@import \"components/header\";\n@import \"mixins\";\n@import \"variables\";\n\n:host {\n display: block;\n}\n\n.slate {\n background-"
},
{
"path": "frontend/src/app/components/recommendations/recommendations.component.spec.ts",
"chars": 691,
"preview": "import { async, ComponentFixture, TestBed } from '@angular/core/testing';\n\nimport { RecommendationsComponent } from './r"
},
{
"path": "frontend/src/app/components/recommendations/recommendations.component.ts",
"chars": 3620,
"preview": "import { Component, OnInit, Output, EventEmitter, ElementRef, AfterViewInit, Input, OnChanges, SimpleChanges } from '@an"
},
{
"path": "frontend/src/app/components/spotify-auth/spotify-auth.component.html",
"chars": 37,
"preview": "<p>spotify-auth-component works!</p>\n"
},
{
"path": "frontend/src/app/components/spotify-auth/spotify-auth.component.scss",
"chars": 0,
"preview": ""
},
{
"path": "frontend/src/app/components/spotify-auth/spotify-auth.component.spec.ts",
"chars": 728,
"preview": "import { async, ComponentFixture, TestBed } from '@angular/core/testing';\n\nimport { SpotifyAuthComponentComponent } from"
},
{
"path": "frontend/src/app/components/spotify-auth/spotify-auth.component.ts",
"chars": 567,
"preview": "import { Component, OnInit, AfterViewInit } from '@angular/core';\nimport { AuthService, TokenService } from 'src/app/ser"
},
{
"path": "frontend/src/app/components/top-genres/top-genres.component.html",
"chars": 568,
"preview": "<div class=\"slate\" *ngIf=\"topGenres.length > 0\">\n <div class=\"genre\" [ngClass]=\"{'show': show}\">\n <div class=\""
},
{
"path": "frontend/src/app/components/top-genres/top-genres.component.scss",
"chars": 1126,
"preview": "@import 'components/header';\n@import 'mixins';\n\n:host {\n display: block;\n}\n\n.slate {\n background: #FFA69E;\n\n}\n\n.genr"
},
{
"path": "frontend/src/app/components/top-genres/top-genres.component.spec.ts",
"chars": 650,
"preview": "import { async, ComponentFixture, TestBed } from '@angular/core/testing';\n\nimport { TopGenresComponent } from './top-gen"
},
{
"path": "frontend/src/app/components/top-genres/top-genres.component.ts",
"chars": 2114,
"preview": "import { Component, OnInit, ElementRef, AfterViewInit, Input } from '@angular/core';\nimport { IntersectionObserverServic"
},
{
"path": "frontend/src/app/scss/_mixins.scss",
"chars": 472,
"preview": "$tablet-width: 768px;\n$desktop-width: 1024px;\n\n@mixin tablet {\n @media (min-width: #{$tablet-width}) and (max-width: #{"
},
{
"path": "frontend/src/app/scss/_variables.scss",
"chars": 191,
"preview": "\n$primary-font: 'Helvetica Neue', sans-serif;\n$secondary-font: -apple-system, BlinkMacSystemFont, 'Segoe UI';\n\n// Colors"
},
{
"path": "frontend/src/app/scss/components/_header.scss",
"chars": 174,
"preview": ".header {\n\n &__title {\n font-size: 3em;\n border-bottom: 8px black solid;\n width: fit-content;\n "
},
{
"path": "frontend/src/app/scss/components/_slate.scss",
"chars": 0,
"preview": ""
},
{
"path": "frontend/src/app/services/browserCheck.ts",
"chars": 495,
"preview": "import { Injectable } from '@angular/core';\nimport { Platform } from '@angular/cdk/platform';\n\n@Injectable()\nexport clas"
},
{
"path": "frontend/src/app/services/infoService.ts",
"chars": 4040,
"preview": "import { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\n\n\nimport { tap, catchError, map } fro"
},
{
"path": "frontend/src/app/services/intersectionObserver.ts",
"chars": 798,
"preview": "import { Subject } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { Platform } from '@angular/cdk/platf"
},
{
"path": "frontend/src/app/services/obscurifyService.ts",
"chars": 1781,
"preview": "import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Obs"
},
{
"path": "frontend/src/app/services/spotifyAuth/index.ts",
"chars": 428,
"preview": "export { AuthConfig } from './shared/spotify-auth-config.i';\nexport { ScopesBuilder } from './shared/scopes-builder';\nex"
},
{
"path": "frontend/src/app/services/spotifyAuth/service/auth.guard.ts",
"chars": 909,
"preview": "import { Injectable } from '@angular/core';\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, CanActiva"
},
{
"path": "frontend/src/app/services/spotifyAuth/service/auth.service.ts",
"chars": 2157,
"preview": "import { Injectable, PLATFORM_ID, Inject } from '@angular/core';\n\nimport { AuthConfig } from '../shared/spotify-auth-con"
},
{
"path": "frontend/src/app/services/spotifyAuth/service/spotify-auth.interceptor.ts",
"chars": 745,
"preview": "import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HttpErrorResp"
},
{
"path": "frontend/src/app/services/spotifyAuth/service/token.service.ts",
"chars": 1238,
"preview": "import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BehaviorSubject } from 'rxjs';\n\n"
},
{
"path": "frontend/src/app/services/spotifyAuth/shared/index.ts",
"chars": 217,
"preview": "export { SpotifyScope } from './spotify-scope';\nexport { AuthConfig } from './spotify-auth-config.i';\nexport { SpotifyAu"
},
{
"path": "frontend/src/app/services/spotifyAuth/shared/scopes-builder.ts",
"chars": 2060,
"preview": "import { SpotifyScope } from './spotify-scope';\n\nexport class ScopesBuilder {\n\n public static USERS: {[name: string]: S"
},
{
"path": "frontend/src/app/services/spotifyAuth/shared/spotify-auth-config.i.ts",
"chars": 247,
"preview": "import { SpotifyScope } from './spotify-scope';\n\nexport interface AuthConfig {\n client_id: string;\n response_type:"
},
{
"path": "frontend/src/app/services/spotifyAuth/shared/spotify-auth-response.i.ts",
"chars": 134,
"preview": "export interface SpotifyAuthResponse {\n access_token: string;\n expires_in: number;\n state: string;\n token_ty"
},
{
"path": "frontend/src/app/services/spotifyAuth/shared/spotify-scope.ts",
"chars": 471,
"preview": "export type SpotifyScope =\n'user-read-email' |\n'user-read-birthdate' |\n'user-read-private' |\n'user-library-read' |\n'play"
},
{
"path": "frontend/src/app/services/spotifyService.ts",
"chars": 4885,
"preview": "import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Pla"
},
{
"path": "frontend/src/app/utilities/obscurityFuncs.ts",
"chars": 1796,
"preview": "import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class ObscurityFuncs {\n findRandomGenres(artist) {\n"
},
{
"path": "frontend/src/assets/.gitkeep",
"chars": 0,
"preview": ""
},
{
"path": "frontend/src/environments/environment.dev.ts",
"chars": 288,
"preview": "export const environment = {\n production: true,\n redirect_uri: 'https://ktp0b5os1g.execute-api.us-east-2.amazonaws.com"
},
{
"path": "frontend/src/environments/environment.prod.ts",
"chars": 286,
"preview": "export const environment = {\n production: true,\n redirect_uri: 'https://ktp0b5os1g.execute-api.us-east-2.amazonaws.com"
},
{
"path": "frontend/src/environments/environment.ts",
"chars": 901,
"preview": "// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environm"
},
{
"path": "frontend/src/index.html",
"chars": 1684,
"preview": "<!doctype html>\n<html lang=\"en\" dir=\"ltr\">\n<head>\n <!-- Global site tag (gtag.js) - Google Analytics -->\n <script asyn"
},
{
"path": "frontend/src/main.ts",
"chars": 433,
"preview": "\nimport { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynam"
},
{
"path": "frontend/src/manifest.webmanifest",
"chars": 1090,
"preview": "{\n \"name\": \"Obscurify Music\",\n \"short_name\": \"Obscurify\",\n \"start_url\": \"https://obscurifymusic.com/\",\n \"display\": \""
},
{
"path": "frontend/src/polyfills.ts",
"chars": 2869,
"preview": "/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfi"
},
{
"path": "frontend/src/styles.scss",
"chars": 5142,
"preview": "\n// Custom Theming for Angular Material\n// For more information: https://material.angular.io/guide/theming\n@import '~@an"
},
{
"path": "frontend/src/test.ts",
"chars": 642,
"preview": "// This file is required by karma.conf.js and loads recursively all the .spec and framework files\n\nimport 'zone.js/dist/"
},
{
"path": "frontend/tsconfig.app.json",
"chars": 272,
"preview": "{\n \"extends\": \"./tsconfig.json\",\n \"compilerOptions\": {\n \"outDir\": \"./out-tsc/app\",\n \"types\": []\n },\n \"files\": "
},
{
"path": "frontend/tsconfig.json",
"chars": 543,
"preview": "{\n \"compileOnSave\": false,\n \"compilerOptions\": {\n \"baseUrl\": \"./\",\n \"outDir\": \"./dist/out-tsc\",\n \"sourceMap\":"
},
{
"path": "frontend/tsconfig.spec.json",
"chars": 270,
"preview": "{\n \"extends\": \"./tsconfig.json\",\n \"compilerOptions\": {\n \"outDir\": \"./out-tsc/spec\",\n \"types\": [\n \"jasmine\","
},
{
"path": "frontend/tslint.json",
"chars": 1953,
"preview": "{\n \"extends\": \"tslint:recommended\",\n \"rules\": {\n \"array-type\": false,\n \"arrow-parens\": false,\n \"deprecation\":"
},
{
"path": "generate_countries.js",
"chars": 7332,
"preview": "////////////////////////////////////////////////////////////////////////////////\n// "
},
{
"path": "lambda/getObscurifyData.js",
"chars": 4382,
"preview": "// dependencies\nvar AWS = require('aws-sdk');\n\n// Set the region\nAWS.config.update({ region: 'us-east-2' });\n\n// Create "
},
{
"path": "lambda/getUserHistory.js",
"chars": 3115,
"preview": "// dependencies\nvar AWS = require('aws-sdk');\n\n// Set the region\nAWS.config.update({ region: 'us-east-2' });\n\n// Create "
},
{
"path": "lambda/saveUserHistory.js",
"chars": 16380,
"preview": "// dependencies\nvar AWS = require('aws-sdk');\nvar moment = require('moment');\n\n// Set the region\nAWS.config.update({ reg"
},
{
"path": "lambda/spotifyCallback.js",
"chars": 3624,
"preview": "const axios = require(\"axios\");\nconst querystring = require('querystring');\nvar crypto = require('crypto');\nvar AWS = re"
}
]
About this extraction
This page contains the full source code of the alexolivero/Obscurify GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 132 files (15.2 MB), approximately 4.0M tokens, and a symbol index with 13272 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.