├── .editorconfig ├── .eslintignore ├── .eslintrc.json ├── .github └── FUNDING.yml ├── .gitignore ├── .husky ├── commit-msg └── pre-commit ├── .lintstagedrc ├── .nvmrc ├── .prettierignore ├── .prettierrc ├── .vscode └── extensions.json ├── LICENSE ├── README.md ├── apps ├── .gitkeep └── angular-spotify │ ├── .eslintrc.json │ ├── jest.config.ts │ ├── ngsw-config.json │ ├── project.json │ ├── src │ ├── _redirects │ ├── app │ │ ├── app.component.scss │ │ ├── app.component.spec.ts │ │ ├── app.component.ts │ │ └── app.module.ts │ ├── assets │ │ └── .gitkeep │ ├── custom │ │ ├── ant │ │ │ ├── _base.scss │ │ │ ├── _button.scss │ │ │ ├── _slider.scss │ │ │ ├── _switch.scss │ │ │ └── index.scss │ │ └── tailwind │ │ │ ├── _base.scss │ │ │ ├── _components.scss │ │ │ ├── _utilities.scss │ │ │ └── index.scss │ ├── environments │ │ ├── environment.prod.ts │ │ └── environment.ts │ ├── index.html │ ├── index.prod.html │ ├── main.ts │ ├── manifest.webmanifest │ ├── polyfills.ts │ ├── styles.scss │ └── test-setup.ts │ ├── tsconfig.app.json │ ├── tsconfig.editor.json │ ├── tsconfig.json │ └── tsconfig.spec.json ├── commitlint.config.js ├── decorate-angular-cli.js ├── jest.config.ts ├── jest.preset.js ├── libs ├── .gitkeep └── web │ ├── album │ ├── data-access │ │ ├── .babelrc │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ │ ├── index.ts │ │ │ └── lib │ │ │ │ └── store │ │ │ │ ├── album │ │ │ │ ├── album.store.ts │ │ │ │ └── index.ts │ │ │ │ ├── albums │ │ │ │ ├── albums.action.ts │ │ │ │ ├── albums.effect.ts │ │ │ │ ├── albums.reducer.ts │ │ │ │ ├── albums.selector.ts │ │ │ │ └── index.ts │ │ │ │ └── index.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ ├── feature │ │ ├── detail │ │ │ ├── .eslintrc.json │ │ │ ├── README.md │ │ │ ├── jest.config.ts │ │ │ ├── project.json │ │ │ ├── src │ │ │ │ ├── index.ts │ │ │ │ ├── lib │ │ │ │ │ ├── album.component.html │ │ │ │ │ ├── album.component.ts │ │ │ │ │ └── album.module.ts │ │ │ │ └── test-setup.ts │ │ │ ├── tsconfig.json │ │ │ ├── tsconfig.lib.json │ │ │ └── tsconfig.spec.json │ │ ├── list │ │ │ ├── .eslintrc.json │ │ │ ├── README.md │ │ │ ├── jest.config.ts │ │ │ ├── project.json │ │ │ ├── src │ │ │ │ ├── index.ts │ │ │ │ ├── lib │ │ │ │ │ ├── albums.component.html │ │ │ │ │ ├── albums.component.scss │ │ │ │ │ ├── albums.component.ts │ │ │ │ │ └── albums.module.ts │ │ │ │ └── test-setup.ts │ │ │ ├── tsconfig.json │ │ │ ├── tsconfig.lib.json │ │ │ └── tsconfig.spec.json │ │ └── shell │ │ │ ├── .eslintrc.json │ │ │ ├── README.md │ │ │ ├── jest.config.ts │ │ │ ├── project.json │ │ │ ├── src │ │ │ ├── index.ts │ │ │ ├── lib │ │ │ │ └── album-shell.module.ts │ │ │ └── test-setup.ts │ │ │ ├── tsconfig.json │ │ │ ├── tsconfig.lib.json │ │ │ └── tsconfig.spec.json │ └── ui │ │ └── album-track │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── album-track.component.html │ │ │ ├── album-track.component.scss │ │ │ ├── album-track.component.ts │ │ │ └── album-track.module.ts │ │ └── test-setup.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ ├── artist │ ├── data-access │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ │ ├── index.ts │ │ │ ├── lib │ │ │ │ └── store │ │ │ │ │ ├── artist-top-tracks.store.ts │ │ │ │ │ ├── artist.store.ts │ │ │ │ │ └── index.ts │ │ │ └── test-setup.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ ├── feature │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ │ ├── index.ts │ │ │ ├── lib │ │ │ │ ├── artist.component.html │ │ │ │ ├── artist.component.scss │ │ │ │ ├── artist.component.ts │ │ │ │ └── artist.module.ts │ │ │ └── test-setup.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ └── ui │ │ ├── artist-top-track │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ │ ├── index.ts │ │ │ ├── lib │ │ │ │ ├── artist-top-track.component.html │ │ │ │ ├── artist-top-track.component.scss │ │ │ │ ├── artist-top-track.component.spec.ts │ │ │ │ ├── artist-top-track.component.ts │ │ │ │ └── artist-top-track.module.ts │ │ │ └── test-setup.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ │ └── artist-top-tracks │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── artist-top-tracks.component.ts │ │ │ └── artist-top-tracks.module.ts │ │ └── test-setup.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ ├── auth │ ├── data-access │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ │ ├── index.ts │ │ │ └── lib │ │ │ │ ├── models │ │ │ │ └── spotify-authorize.ts │ │ │ │ └── store │ │ │ │ └── auth.store.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ ├── ui │ │ └── unauthorized-modal │ │ │ ├── .eslintrc.json │ │ │ ├── README.md │ │ │ ├── jest.config.ts │ │ │ ├── project.json │ │ │ ├── src │ │ │ ├── index.ts │ │ │ ├── lib │ │ │ │ ├── unauthorized-modal.component.html │ │ │ │ ├── unauthorized-modal.component.scss │ │ │ │ ├── unauthorized-modal.component.ts │ │ │ │ └── unauthorized-modal.module.ts │ │ │ └── test-setup.ts │ │ │ ├── tsconfig.json │ │ │ ├── tsconfig.lib.json │ │ │ └── tsconfig.spec.json │ └── util │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ ├── index.ts │ │ └── lib │ │ │ └── interceptors │ │ │ ├── auth.interceptor.ts │ │ │ ├── index.ts │ │ │ └── unauthorized.interceptor.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ ├── browse │ ├── data-access │ │ ├── .babelrc │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ │ ├── index.ts │ │ │ └── lib │ │ │ │ └── store │ │ │ │ ├── categories │ │ │ │ ├── categories.action.ts │ │ │ │ ├── categories.effect.ts │ │ │ │ ├── categories.reducer.ts │ │ │ │ ├── categories.selector.ts │ │ │ │ └── index.ts │ │ │ │ ├── category-playlists │ │ │ │ ├── category-playlists.action.ts │ │ │ │ ├── category-playlists.effect.ts │ │ │ │ ├── category-playlists.reducer.ts │ │ │ │ ├── category-playlists.selector.ts │ │ │ │ └── index.ts │ │ │ │ └── index.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ ├── feature │ │ ├── categories │ │ │ ├── .eslintrc.json │ │ │ ├── README.md │ │ │ ├── jest.config.ts │ │ │ ├── project.json │ │ │ ├── src │ │ │ │ ├── index.ts │ │ │ │ ├── lib │ │ │ │ │ ├── categories.component.html │ │ │ │ │ ├── categories.component.scss │ │ │ │ │ ├── categories.component.ts │ │ │ │ │ └── categories.module.ts │ │ │ │ └── test-setup.ts │ │ │ ├── tsconfig.json │ │ │ ├── tsconfig.lib.json │ │ │ └── tsconfig.spec.json │ │ ├── category │ │ │ ├── .eslintrc.json │ │ │ ├── README.md │ │ │ ├── jest.config.ts │ │ │ ├── project.json │ │ │ ├── src │ │ │ │ ├── index.ts │ │ │ │ ├── lib │ │ │ │ │ ├── category.component.html │ │ │ │ │ ├── category.component.scss │ │ │ │ │ ├── category.component.ts │ │ │ │ │ └── category.module.ts │ │ │ │ └── test-setup.ts │ │ │ ├── tsconfig.json │ │ │ ├── tsconfig.lib.json │ │ │ └── tsconfig.spec.json │ │ └── shell │ │ │ ├── .eslintrc.json │ │ │ ├── README.md │ │ │ ├── jest.config.ts │ │ │ ├── project.json │ │ │ ├── src │ │ │ ├── index.ts │ │ │ ├── lib │ │ │ │ └── browse-shell.module.ts │ │ │ └── test-setup.ts │ │ │ ├── tsconfig.json │ │ │ ├── tsconfig.lib.json │ │ │ └── tsconfig.spec.json │ └── ui │ │ └── category-cover │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── category-cover.component.html │ │ │ ├── category-cover.component.scss │ │ │ ├── category-cover.component.ts │ │ │ └── category-cover.module.ts │ │ └── test-setup.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ ├── container-queries │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.ts │ ├── project.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── albums.mock.json │ │ │ ├── container-queries.component.ts │ │ │ └── container-queries.routes.ts │ │ └── test-setup.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json │ ├── future-responsive │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.ts │ ├── project.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── albums.mock.json │ │ │ ├── content │ │ │ │ ├── flex-form.component.ts │ │ │ │ └── responsive-content.component.ts │ │ │ ├── future-responsive.component.ts │ │ │ ├── future-responsive.routes.ts │ │ │ └── responsive-container.component.ts │ │ └── test-setup.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json │ ├── home │ ├── data-access │ │ ├── .babelrc │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ │ ├── index.ts │ │ │ └── lib │ │ │ │ └── store │ │ │ │ ├── feature-playlists │ │ │ │ ├── feature-playlists.action.ts │ │ │ │ ├── feature-playlists.effect.ts │ │ │ │ ├── feature-playlists.reducer.ts │ │ │ │ ├── feature-playlists.selector.ts │ │ │ │ └── index.ts │ │ │ │ └── recent-played-tracks │ │ │ │ ├── index.ts │ │ │ │ ├── recent-played-tracks.action.ts │ │ │ │ ├── recent-played-tracks.effect.ts │ │ │ │ ├── recent-played-tracks.reducer.ts │ │ │ │ └── recent-played-tracks.selector.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ ├── feature │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ │ ├── index.ts │ │ │ ├── lib │ │ │ │ ├── home.component.html │ │ │ │ ├── home.component.scss │ │ │ │ ├── home.component.ts │ │ │ │ └── home.module.ts │ │ │ └── test-setup.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ └── ui │ │ ├── featured-playlists │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ │ ├── index.ts │ │ │ ├── lib │ │ │ │ ├── featured-playlists.component.html │ │ │ │ ├── featured-playlists.component.scss │ │ │ │ ├── featured-playlists.component.spec.ts │ │ │ │ ├── featured-playlists.component.ts │ │ │ │ └── featured-playlists.module.ts │ │ │ └── test-setup.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ │ ├── greeting │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ │ ├── index.ts │ │ │ ├── lib │ │ │ │ ├── greeting.component.html │ │ │ │ ├── greeting.component.scss │ │ │ │ ├── greeting.component.ts │ │ │ │ └── greeting.module.ts │ │ │ └── test-setup.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ │ └── recent-played │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── recent-played.component.html │ │ │ ├── recent-played.component.scss │ │ │ ├── recent-played.component.ts │ │ │ └── recent-played.module.ts │ │ └── test-setup.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ ├── playlist │ ├── data-access │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ │ ├── index.ts │ │ │ └── lib │ │ │ │ └── store │ │ │ │ ├── index.ts │ │ │ │ ├── playlist-tracks │ │ │ │ ├── index.ts │ │ │ │ ├── playlist-tracks.action.ts │ │ │ │ ├── playlist-tracks.effect.ts │ │ │ │ ├── playlist-tracks.reducer.ts │ │ │ │ └── playlist-tracks.selector.ts │ │ │ │ ├── playlist │ │ │ │ ├── index.ts │ │ │ │ └── playlist.store.ts │ │ │ │ └── playlists │ │ │ │ ├── index.ts │ │ │ │ ├── playlists.action.ts │ │ │ │ ├── playlists.effect.ts │ │ │ │ ├── playlists.reducer.ts │ │ │ │ └── playlists.selector.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ ├── feature │ │ ├── detail │ │ │ ├── .eslintrc.json │ │ │ ├── README.md │ │ │ ├── project.json │ │ │ ├── src │ │ │ │ ├── index.ts │ │ │ │ └── lib │ │ │ │ │ ├── playlist.component.html │ │ │ │ │ ├── playlist.component.scss │ │ │ │ │ ├── playlist.component.ts │ │ │ │ │ └── playlist.module.ts │ │ │ ├── tsconfig.json │ │ │ └── tsconfig.lib.json │ │ └── list │ │ │ ├── .eslintrc.json │ │ │ ├── README.md │ │ │ ├── project.json │ │ │ ├── src │ │ │ ├── index.ts │ │ │ └── lib │ │ │ │ ├── playlists.component.html │ │ │ │ ├── playlists.component.scss │ │ │ │ ├── playlists.component.ts │ │ │ │ └── playlists.module.ts │ │ │ ├── tsconfig.json │ │ │ └── tsconfig.lib.json │ └── ui │ │ └── playlist-track │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── package.json │ │ ├── project.json │ │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── playlist-track.component.html │ │ │ ├── playlist-track.component.scss │ │ │ ├── playlist-track.component.ts │ │ │ └── playlist-track.module.ts │ │ └── test-setup.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ ├── tsconfig.lib.prod.json │ │ └── tsconfig.spec.json │ ├── search │ ├── data-access │ │ ├── .babelrc │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ │ ├── index.ts │ │ │ └── lib │ │ │ │ └── store │ │ │ │ ├── index.ts │ │ │ │ └── search.store.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ └── feature │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── search.component.html │ │ │ ├── search.component.scss │ │ │ ├── search.component.ts │ │ │ └── search.module.ts │ │ └── test-setup.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ ├── settings │ ├── data-access │ │ ├── .babelrc │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ │ ├── index.ts │ │ │ └── lib │ │ │ │ ├── services │ │ │ │ ├── index.ts │ │ │ │ └── local-storage.service.ts │ │ │ │ └── store │ │ │ │ ├── index.ts │ │ │ │ ├── settings.actions.ts │ │ │ │ ├── settings.effects.ts │ │ │ │ ├── settings.facade.ts │ │ │ │ ├── settings.reducer.ts │ │ │ │ └── settings.selectors.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ └── feature │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ └── settings.module.ts │ │ └── test-setup.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ ├── shared │ ├── app-config │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ │ ├── index.ts │ │ │ └── lib │ │ │ │ ├── app-config.token.ts │ │ │ │ └── app.config.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ ├── app-init │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ │ ├── index.ts │ │ │ ├── lib │ │ │ │ ├── app-init.action.ts │ │ │ │ ├── application.effects.ts │ │ │ │ ├── google-analytics.service.ts │ │ │ │ ├── index.ts │ │ │ │ └── promp-update.service.ts │ │ │ └── test-setup.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ ├── assets │ │ ├── README.md │ │ ├── project.json │ │ └── src │ │ │ └── assets │ │ │ ├── favicon.png │ │ │ ├── icons │ │ │ ├── icon-128x128.png │ │ │ ├── icon-144x144.png │ │ │ ├── icon-152x152.png │ │ │ ├── icon-192x192.png │ │ │ ├── icon-384x384.png │ │ │ ├── icon-512x512.png │ │ │ ├── icon-72x72.png │ │ │ └── icon-96x96.png │ │ │ ├── images │ │ │ ├── equaliser-animated-green.gif │ │ │ └── noise.png │ │ │ └── readme │ │ │ ├── angular-spotify-album-art.gif │ │ │ ├── angular-spotify-browse.gif │ │ │ ├── angular-spotify-demo-short.gif │ │ │ ├── angular-spotify-pwa.gif │ │ │ ├── angular-spotify-tech-stack.png │ │ │ ├── angular-spotify-visualization.gif │ │ │ ├── angular-spotify-web-player.png │ │ │ ├── dep-graph.png │ │ │ ├── nx-cloud.png │ │ │ ├── sdk-flow.png │ │ │ └── time-spending.png │ ├── data-access │ │ ├── models │ │ │ ├── .eslintrc.json │ │ │ ├── README.md │ │ │ ├── project.json │ │ │ ├── src │ │ │ │ ├── index.ts │ │ │ │ └── lib │ │ │ │ │ ├── api │ │ │ │ │ ├── audio-analysis-response.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── play-request.ts │ │ │ │ │ ├── playlists-with-route.ts │ │ │ │ │ ├── spotify-api-params.ts │ │ │ │ │ ├── track-extended.ts │ │ │ │ │ └── user-recent-played-track.ts │ │ │ │ │ ├── nav-item.ts │ │ │ │ │ ├── store │ │ │ │ │ ├── generic-state.ts │ │ │ │ │ └── index.ts │ │ │ │ │ └── volume-icon.ts │ │ │ ├── tsconfig.json │ │ │ └── tsconfig.lib.json │ │ ├── spotify-api │ │ │ ├── .eslintrc.json │ │ │ ├── README.md │ │ │ ├── jest.config.ts │ │ │ ├── project.json │ │ │ ├── src │ │ │ │ ├── index.ts │ │ │ │ └── lib │ │ │ │ │ ├── album-api.ts │ │ │ │ │ ├── artist-api.ts │ │ │ │ │ ├── browse-api.ts │ │ │ │ │ ├── player-api.ts │ │ │ │ │ ├── playlist-api.ts │ │ │ │ │ ├── search-api.ts │ │ │ │ │ ├── spotify-api.ts │ │ │ │ │ └── track-api.ts │ │ │ ├── tsconfig.json │ │ │ ├── tsconfig.lib.json │ │ │ └── tsconfig.spec.json │ │ └── store │ │ │ ├── .eslintrc.json │ │ │ ├── README.md │ │ │ ├── jest.config.ts │ │ │ ├── project.json │ │ │ ├── src │ │ │ ├── index.ts │ │ │ └── lib │ │ │ │ ├── playback │ │ │ │ ├── index.ts │ │ │ │ ├── playback.service.ts │ │ │ │ └── playback.store.ts │ │ │ │ └── ui │ │ │ │ ├── index.ts │ │ │ │ └── ui-store.ts │ │ │ ├── tsconfig.json │ │ │ ├── tsconfig.lib.json │ │ │ └── tsconfig.spec.json │ ├── directives │ │ ├── click-stop-propagation │ │ │ ├── .eslintrc.json │ │ │ ├── README.md │ │ │ ├── project.json │ │ │ ├── src │ │ │ │ ├── index.ts │ │ │ │ └── lib │ │ │ │ │ ├── click-stop-propagation.directive.ts │ │ │ │ │ └── click-stop-propagation.module.ts │ │ │ ├── tsconfig.json │ │ │ └── tsconfig.lib.json │ │ └── data-size-observer │ │ │ ├── .eslintrc.json │ │ │ ├── README.md │ │ │ ├── jest.config.ts │ │ │ ├── project.json │ │ │ ├── src │ │ │ ├── index.ts │ │ │ ├── lib │ │ │ │ ├── data-size-observer.directive.ts │ │ │ │ └── resizeable.directive.ts │ │ │ └── test-setup.ts │ │ │ ├── tsconfig.json │ │ │ ├── tsconfig.lib.json │ │ │ └── tsconfig.spec.json │ ├── pipes │ │ └── duration-pipe │ │ │ ├── .eslintrc.json │ │ │ ├── README.md │ │ │ ├── jest.config.ts │ │ │ ├── project.json │ │ │ ├── src │ │ │ ├── index.ts │ │ │ ├── lib │ │ │ │ ├── duration-pipe.module.ts │ │ │ │ └── duration.pipe.ts │ │ │ └── test-setup.ts │ │ │ ├── tsconfig.json │ │ │ ├── tsconfig.lib.json │ │ │ └── tsconfig.spec.json │ ├── ui │ │ ├── icon │ │ │ ├── .eslintrc.json │ │ │ ├── README.md │ │ │ ├── jest.config.ts │ │ │ ├── project.json │ │ │ ├── src │ │ │ │ ├── index.ts │ │ │ │ ├── lib │ │ │ │ │ ├── assets │ │ │ │ │ │ ├── audio-animated.svg │ │ │ │ │ │ ├── caret-down-fill.svg │ │ │ │ │ │ ├── clock.svg │ │ │ │ │ │ ├── compass-fill.svg │ │ │ │ │ │ ├── compass.svg │ │ │ │ │ │ ├── cup-fill.svg │ │ │ │ │ │ ├── cup-straw.svg │ │ │ │ │ │ ├── cup.svg │ │ │ │ │ │ ├── emoji-heart-eyes.svg │ │ │ │ │ │ ├── expand.svg │ │ │ │ │ │ ├── github.svg │ │ │ │ │ │ ├── heart-fill.svg │ │ │ │ │ │ ├── heart.svg │ │ │ │ │ │ ├── home.svg │ │ │ │ │ │ ├── house-door-fill.svg │ │ │ │ │ │ ├── house-door.svg │ │ │ │ │ │ ├── journal.svg │ │ │ │ │ │ ├── music-note-beamed.svg │ │ │ │ │ │ ├── music-note-list.svg │ │ │ │ │ │ ├── pause.svg │ │ │ │ │ │ ├── play.svg │ │ │ │ │ │ ├── question-circle.svg │ │ │ │ │ │ ├── search-heart.svg │ │ │ │ │ │ ├── search.svg │ │ │ │ │ │ ├── shrink.svg │ │ │ │ │ │ ├── step-backward.svg │ │ │ │ │ │ ├── step-forward.svg │ │ │ │ │ │ ├── times.svg │ │ │ │ │ │ ├── twitter.svg │ │ │ │ │ │ ├── volume-high.svg │ │ │ │ │ │ ├── volume-medium.svg │ │ │ │ │ │ └── volume-mute.svg │ │ │ │ │ ├── icon.module.ts │ │ │ │ │ └── svg │ │ │ │ │ │ ├── audio-animated.ts │ │ │ │ │ │ ├── caret-down-fill.ts │ │ │ │ │ │ ├── clock.ts │ │ │ │ │ │ ├── compass-fill.ts │ │ │ │ │ │ ├── compass.ts │ │ │ │ │ │ ├── cup-fill.ts │ │ │ │ │ │ ├── cup-straw.ts │ │ │ │ │ │ ├── cup.ts │ │ │ │ │ │ ├── emoji-heart-eyes.ts │ │ │ │ │ │ ├── expand.ts │ │ │ │ │ │ ├── github.ts │ │ │ │ │ │ ├── heart-fill.ts │ │ │ │ │ │ ├── heart.ts │ │ │ │ │ │ ├── home.ts │ │ │ │ │ │ ├── house-door-fill.ts │ │ │ │ │ │ ├── house-door.ts │ │ │ │ │ │ ├── journal.ts │ │ │ │ │ │ ├── music-note-beamed.ts │ │ │ │ │ │ ├── music-note-list.ts │ │ │ │ │ │ ├── pause.ts │ │ │ │ │ │ ├── play.ts │ │ │ │ │ │ ├── question-circle.ts │ │ │ │ │ │ ├── search-heart.ts │ │ │ │ │ │ ├── search.ts │ │ │ │ │ │ ├── shrink.ts │ │ │ │ │ │ ├── step-backward.ts │ │ │ │ │ │ ├── step-forward.ts │ │ │ │ │ │ ├── times.ts │ │ │ │ │ │ ├── twitter.ts │ │ │ │ │ │ ├── volume-high.ts │ │ │ │ │ │ ├── volume-medium.ts │ │ │ │ │ │ └── volume-mute.ts │ │ │ │ └── test-setup.ts │ │ │ ├── tsconfig.json │ │ │ ├── tsconfig.lib.json │ │ │ └── tsconfig.spec.json │ │ ├── input │ │ │ ├── .eslintrc.json │ │ │ ├── README.md │ │ │ ├── jest.config.ts │ │ │ ├── project.json │ │ │ ├── src │ │ │ │ ├── index.ts │ │ │ │ ├── lib │ │ │ │ │ ├── input.component.html │ │ │ │ │ ├── input.component.scss │ │ │ │ │ ├── input.component.ts │ │ │ │ │ └── input.module.ts │ │ │ │ └── test-setup.ts │ │ │ ├── tsconfig.json │ │ │ ├── tsconfig.lib.json │ │ │ └── tsconfig.spec.json │ │ ├── media-cover │ │ │ ├── .eslintrc.json │ │ │ ├── README.md │ │ │ ├── project.json │ │ │ ├── src │ │ │ │ ├── index.ts │ │ │ │ └── lib │ │ │ │ │ ├── media-cover.component.scss │ │ │ │ │ ├── media-cover.component.ts │ │ │ │ │ └── media-cover.module.ts │ │ │ ├── tsconfig.json │ │ │ └── tsconfig.lib.json │ │ ├── media-order │ │ │ ├── .eslintrc.json │ │ │ ├── README.md │ │ │ ├── jest.config.ts │ │ │ ├── project.json │ │ │ ├── src │ │ │ │ ├── index.ts │ │ │ │ ├── lib │ │ │ │ │ ├── media-order.component.html │ │ │ │ │ ├── media-order.component.scss │ │ │ │ │ ├── media-order.component.ts │ │ │ │ │ └── media-order.module.ts │ │ │ │ └── test-setup.ts │ │ │ ├── tsconfig.json │ │ │ ├── tsconfig.lib.json │ │ │ └── tsconfig.spec.json │ │ ├── media-summary │ │ │ ├── .eslintrc.json │ │ │ ├── README.md │ │ │ ├── project.json │ │ │ ├── src │ │ │ │ ├── index.ts │ │ │ │ └── lib │ │ │ │ │ ├── media-summary.component.html │ │ │ │ │ ├── media-summary.component.scss │ │ │ │ │ ├── media-summary.component.ts │ │ │ │ │ └── media-summary.module.ts │ │ │ ├── tsconfig.json │ │ │ └── tsconfig.lib.json │ │ ├── media-table │ │ │ ├── .eslintrc.json │ │ │ ├── README.md │ │ │ ├── jest.config.ts │ │ │ ├── project.json │ │ │ ├── src │ │ │ │ ├── index.ts │ │ │ │ ├── lib │ │ │ │ │ ├── media-table-header │ │ │ │ │ │ ├── media-table-header.component.html │ │ │ │ │ │ ├── media-table-header.component.scss │ │ │ │ │ │ └── media-table-header.component.ts │ │ │ │ │ ├── media-table-row │ │ │ │ │ │ ├── media-table-row.component.html │ │ │ │ │ │ ├── media-table-row.component.scss │ │ │ │ │ │ └── media-table-row.component.ts │ │ │ │ │ └── media-table.module.ts │ │ │ │ └── test-setup.ts │ │ │ ├── tsconfig.json │ │ │ ├── tsconfig.lib.json │ │ │ └── tsconfig.spec.json │ │ ├── media │ │ │ ├── .eslintrc.json │ │ │ ├── README.md │ │ │ ├── project.json │ │ │ ├── src │ │ │ │ ├── index.ts │ │ │ │ └── lib │ │ │ │ │ ├── card.component.html │ │ │ │ │ ├── card.component.scss │ │ │ │ │ └── card.component.ts │ │ │ ├── tsconfig.json │ │ │ └── tsconfig.lib.json │ │ ├── play-button │ │ │ ├── .eslintrc.json │ │ │ ├── README.md │ │ │ ├── project.json │ │ │ ├── src │ │ │ │ ├── index.ts │ │ │ │ └── lib │ │ │ │ │ ├── play-button.component.html │ │ │ │ │ ├── play-button.component.scss │ │ │ │ │ ├── play-button.component.ts │ │ │ │ │ └── play-button.module.ts │ │ │ ├── tsconfig.json │ │ │ └── tsconfig.lib.json │ │ ├── playlist-list │ │ │ ├── .eslintrc.json │ │ │ ├── README.md │ │ │ ├── jest.config.ts │ │ │ ├── project.json │ │ │ ├── src │ │ │ │ ├── index.ts │ │ │ │ ├── lib │ │ │ │ │ ├── playlist-list.component.html │ │ │ │ │ ├── playlist-list.component.scss │ │ │ │ │ ├── playlist-list.component.ts │ │ │ │ │ └── playlist-list.module.ts │ │ │ │ └── test-setup.ts │ │ │ ├── tsconfig.json │ │ │ ├── tsconfig.lib.json │ │ │ └── tsconfig.spec.json │ │ ├── spinner │ │ │ ├── .eslintrc.json │ │ │ ├── README.md │ │ │ ├── jest.config.ts │ │ │ ├── project.json │ │ │ ├── src │ │ │ │ ├── index.ts │ │ │ │ ├── lib │ │ │ │ │ ├── spinner.component.html │ │ │ │ │ ├── spinner.component.scss │ │ │ │ │ ├── spinner.component.ts │ │ │ │ │ └── spinner.module.ts │ │ │ │ └── test-setup.ts │ │ │ ├── tsconfig.json │ │ │ ├── tsconfig.lib.json │ │ │ └── tsconfig.spec.json │ │ ├── track-current-info │ │ │ ├── .eslintrc.json │ │ │ ├── README.md │ │ │ ├── project.json │ │ │ ├── src │ │ │ │ ├── index.ts │ │ │ │ └── lib │ │ │ │ │ ├── track-current-info.component.css │ │ │ │ │ ├── track-current-info.component.html │ │ │ │ │ ├── track-current-info.component.ts │ │ │ │ │ └── track-current-info.module.ts │ │ │ ├── tsconfig.json │ │ │ └── tsconfig.lib.json │ │ ├── track-main-info │ │ │ ├── .eslintrc.json │ │ │ ├── README.md │ │ │ ├── project.json │ │ │ ├── src │ │ │ │ ├── index.ts │ │ │ │ └── lib │ │ │ │ │ ├── track-main-info.component.html │ │ │ │ │ ├── track-main-info.component.scss │ │ │ │ │ ├── track-main-info.component.ts │ │ │ │ │ └── track-main-info.module.ts │ │ │ ├── tsconfig.json │ │ │ └── tsconfig.lib.json │ │ ├── tracks-loading │ │ │ ├── .eslintrc.json │ │ │ ├── README.md │ │ │ ├── jest.config.ts │ │ │ ├── project.json │ │ │ ├── src │ │ │ │ ├── index.ts │ │ │ │ ├── lib │ │ │ │ │ ├── skeleton.component.ts │ │ │ │ │ ├── tracks-loading.component.html │ │ │ │ │ └── tracks-loading.component.ts │ │ │ │ └── test-setup.ts │ │ │ ├── tsconfig.json │ │ │ ├── tsconfig.lib.json │ │ │ └── tsconfig.spec.json │ │ └── work-in-progress │ │ │ ├── .eslintrc.json │ │ │ ├── README.md │ │ │ ├── jest.config.ts │ │ │ ├── project.json │ │ │ ├── src │ │ │ ├── index.ts │ │ │ ├── lib │ │ │ │ ├── work-in-progress.component.html │ │ │ │ ├── work-in-progress.component.scss │ │ │ │ ├── work-in-progress.component.ts │ │ │ │ └── work-in-progress.module.ts │ │ │ └── test-setup.ts │ │ │ ├── tsconfig.json │ │ │ ├── tsconfig.lib.json │ │ │ └── tsconfig.spec.json │ └── utils │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ ├── index.ts │ │ └── lib │ │ │ ├── guards.ts │ │ │ ├── route-util.ts │ │ │ ├── router-util.ts │ │ │ ├── selector-util.ts │ │ │ ├── string-util.ts │ │ │ └── time-util.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ ├── shell │ ├── feature │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ │ ├── index.ts │ │ │ ├── lib │ │ │ │ ├── build-specifics │ │ │ │ │ ├── index.prod.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── web-shell.module.ts │ │ │ │ └── web-shell.routes.ts │ │ │ └── test-setup.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ └── ui │ │ ├── album-art-overlay │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ │ ├── index.ts │ │ │ ├── lib │ │ │ │ ├── album-art-overlay.component.html │ │ │ │ ├── album-art-overlay.component.scss │ │ │ │ ├── album-art-overlay.component.ts │ │ │ │ └── album-art-overlay.module.ts │ │ │ └── test-setup.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ │ ├── layout │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ │ ├── index.ts │ │ │ ├── lib │ │ │ │ ├── layout.component.html │ │ │ │ ├── layout.component.scss │ │ │ │ ├── layout.component.spec.ts │ │ │ │ ├── layout.component.ts │ │ │ │ └── web-layout.module.ts │ │ │ └── test-setup.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ │ ├── main-view │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ │ ├── index.ts │ │ │ ├── lib │ │ │ │ ├── main-view.component.html │ │ │ │ ├── main-view.component.scss │ │ │ │ ├── main-view.component.ts │ │ │ │ └── main-view.module.ts │ │ │ └── test-setup.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ │ ├── nav-bar │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ │ ├── index.ts │ │ │ ├── lib │ │ │ │ ├── nav-bar.component.html │ │ │ │ ├── nav-bar.component.scss │ │ │ │ ├── nav-bar.component.ts │ │ │ │ └── nav-bar.module.ts │ │ │ └── test-setup.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ │ ├── nav-links │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ │ ├── index.ts │ │ │ ├── lib │ │ │ │ ├── nav-link │ │ │ │ │ ├── nav-link.component.html │ │ │ │ │ ├── nav-link.component.scss │ │ │ │ │ └── nav-link.component.ts │ │ │ │ ├── nav-links.component.html │ │ │ │ ├── nav-links.component.scss │ │ │ │ ├── nav-links.component.ts │ │ │ │ └── nav-links.module.ts │ │ │ └── test-setup.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ │ ├── now-playing-bar │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── project.json │ │ ├── src │ │ │ ├── index.ts │ │ │ └── lib │ │ │ │ ├── now-playing-bar.component.html │ │ │ │ ├── now-playing-bar.component.scss │ │ │ │ ├── now-playing-bar.component.ts │ │ │ │ └── now-playing-bar.module.ts │ │ ├── tsconfig.json │ │ └── tsconfig.lib.json │ │ ├── player-controls │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── project.json │ │ ├── src │ │ │ ├── index.ts │ │ │ └── lib │ │ │ │ ├── player-controls.component.html │ │ │ │ ├── player-controls.component.scss │ │ │ │ ├── player-controls.component.ts │ │ │ │ └── player-controls.module.ts │ │ ├── tsconfig.json │ │ └── tsconfig.lib.json │ │ ├── player-playback │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── project.json │ │ ├── src │ │ │ ├── index.ts │ │ │ └── lib │ │ │ │ ├── player-playback.component.html │ │ │ │ ├── player-playback.component.scss │ │ │ │ ├── player-playback.component.ts │ │ │ │ └── player-playback.module.ts │ │ ├── tsconfig.json │ │ └── tsconfig.lib.json │ │ ├── player-volume │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── project.json │ │ ├── src │ │ │ ├── index.ts │ │ │ └── lib │ │ │ │ ├── player-volume.component.html │ │ │ │ ├── player-volume.component.scss │ │ │ │ ├── player-volume.component.ts │ │ │ │ └── player-volume.module.ts │ │ ├── tsconfig.json │ │ └── tsconfig.lib.json │ │ ├── social-share │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ │ ├── index.ts │ │ │ ├── lib │ │ │ │ ├── social-share.component.scss │ │ │ │ ├── social-share.component.ts │ │ │ │ └── social-share.module.ts │ │ │ └── test-setup.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ │ ├── top-bar │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ │ ├── index.ts │ │ │ ├── lib │ │ │ │ ├── top-bar.component.html │ │ │ │ ├── top-bar.component.scss │ │ │ │ ├── top-bar.component.spec.ts │ │ │ │ ├── top-bar.component.ts │ │ │ │ └── top-bar.module.ts │ │ │ └── test-setup.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ │ ├── user-dropdown │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ │ ├── index.ts │ │ │ ├── lib │ │ │ │ ├── user-dropdown.component.html │ │ │ │ ├── user-dropdown.component.scss │ │ │ │ ├── user-dropdown.component.ts │ │ │ │ └── user-dropdown.module.ts │ │ │ └── test-setup.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ │ └── visualization-toggle │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── visualization-toggle.component.html │ │ │ ├── visualization-toggle.component.scss │ │ │ ├── visualization-toggle.component.ts │ │ │ └── visualization-toggle.module.ts │ │ └── test-setup.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ ├── tracks │ ├── data-access │ │ ├── .babelrc │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ │ ├── index.ts │ │ │ └── lib │ │ │ │ ├── index.ts │ │ │ │ └── store │ │ │ │ ├── index.ts │ │ │ │ └── tracks.store.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ └── feature │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── tracks.component.html │ │ │ ├── tracks.component.scss │ │ │ ├── tracks.component.ts │ │ │ └── tracks.module.ts │ │ └── test-setup.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ └── visualizer │ ├── data-access │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.ts │ ├── project.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── audio-context.ts │ │ │ ├── const.ts │ │ │ ├── particle.ts │ │ │ └── store │ │ │ │ └── visualizer.store.ts │ │ └── typings │ │ │ └── sketch-js.d.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json │ ├── feature │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.ts │ ├── project.json │ ├── src │ │ ├── index.ts │ │ ├── lib │ │ │ ├── visualizer.component.html │ │ │ ├── visualizer.component.scss │ │ │ ├── visualizer.component.ts │ │ │ └── visualizer.module.ts │ │ └── test-setup.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json │ └── ui │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.ts │ ├── project.json │ ├── src │ ├── index.ts │ ├── lib │ │ ├── web-visualizer-ui.component.html │ │ ├── web-visualizer-ui.component.scss │ │ ├── web-visualizer-ui.component.ts │ │ └── web-visualizer-ui.module.ts │ └── test-setup.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── nx.json ├── package.json ├── tailwind.config.js ├── tools ├── generators │ └── .gitkeep └── tsconfig.tools.json ├── tsconfig.base.json └── yarn.lock /.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | max_line_length = off 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /.husky/commit-msg: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | . "$(dirname "$0")/_/husky.sh" 3 | 4 | npx --no-install commitlint --edit $1 5 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | . "$(dirname "$0")/_/husky.sh" 3 | 4 | npx --no-install lint-staged 5 | -------------------------------------------------------------------------------- /.lintstagedrc: -------------------------------------------------------------------------------- 1 | { 2 | "*.{ts,html}": [ 3 | "eslint --cache" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | 18 2 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | # Add files here to ignore them from prettier formatting 2 | 3 | /dist 4 | /coverage 5 | 6 | .angular 7 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "printWidth": 100, 4 | "tabWidth": 2, 5 | "useTabs": false, 6 | "trailingComma": "none", 7 | "bracketSpacing": true, 8 | "semi": true 9 | } 10 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "nrwl.angular-console", 4 | "angular.ng-template", 5 | "ms-vscode.vscode-typescript-tslint-plugin", 6 | "esbenp.prettier-vscode", 7 | "firsttris.vscode-jest-runner" 8 | ] 9 | } 10 | -------------------------------------------------------------------------------- /apps/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/apps/.gitkeep -------------------------------------------------------------------------------- /apps/angular-spotify/src/_redirects: -------------------------------------------------------------------------------- 1 | /* /index.html 200 -------------------------------------------------------------------------------- /apps/angular-spotify/src/app/app.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | @apply w-full h-full; 3 | z-index: 0; 4 | position: relative; 5 | isolation: isolate; 6 | } 7 | -------------------------------------------------------------------------------- /apps/angular-spotify/src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'angular-spotify-root', 5 | template: ` `, 6 | styleUrls: ['./app.component.scss'] 7 | }) 8 | export class AppComponent {} 9 | -------------------------------------------------------------------------------- /apps/angular-spotify/src/assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/apps/angular-spotify/src/assets/.gitkeep -------------------------------------------------------------------------------- /apps/angular-spotify/src/custom/ant/_base.scss: -------------------------------------------------------------------------------- 1 | a:hover { 2 | color: inherit; 3 | } 4 | -------------------------------------------------------------------------------- /apps/angular-spotify/src/custom/ant/_button.scss: -------------------------------------------------------------------------------- 1 | .ant-btn { 2 | &.btn-with-icon { 3 | @apply text-white text-opacity-70 bg-highlight bg-opacity-70 hover:text-white hover:bg-opacity-100 focus-visible:text-white focus-visible:bg-opacity-100; 4 | padding: 4px 15px !important; 5 | border: none; 6 | display: flex; 7 | align-items: center; 8 | } 9 | } 10 | 11 | .ant-btn-primary { 12 | @apply bg-primary border-primary border-opacity-80 hover:bg-opacity-90 hover:border-opacity-90; 13 | } 14 | -------------------------------------------------------------------------------- /apps/angular-spotify/src/custom/ant/_switch.scss: -------------------------------------------------------------------------------- 1 | .ant-switch { 2 | @apply bg-sliderRail; 3 | } 4 | 5 | .ant-switch-checked { 6 | @apply bg-primary; 7 | } 8 | -------------------------------------------------------------------------------- /apps/angular-spotify/src/custom/ant/index.scss: -------------------------------------------------------------------------------- 1 | @import './base'; 2 | @import './slider'; 3 | @import './switch'; 4 | @import './button'; 5 | -------------------------------------------------------------------------------- /apps/angular-spotify/src/custom/tailwind/_base.scss: -------------------------------------------------------------------------------- 1 | @layer base { 2 | a { 3 | @apply text-white; 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /apps/angular-spotify/src/custom/tailwind/_utilities.scss: -------------------------------------------------------------------------------- 1 | @layer utilities { 2 | .link-subtle { 3 | @apply text-white text-opacity-70 hover:text-white focus-visible:text-white; 4 | } 5 | 6 | .no-select { 7 | user-select: none; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /apps/angular-spotify/src/custom/tailwind/index.scss: -------------------------------------------------------------------------------- 1 | @import './base'; 2 | @import './components.scss'; 3 | @import './utilities.scss'; 4 | -------------------------------------------------------------------------------- /apps/angular-spotify/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true, 3 | baseURL: 'https://api.spotify.com/v1', 4 | }; 5 | -------------------------------------------------------------------------------- /apps/angular-spotify/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /apps/angular-spotify/tsconfig.editor.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "include": ["**/*.ts"], 4 | "compilerOptions": { 5 | "types": ["jest", "node"] 6 | }, 7 | "exclude": ["jest.config.ts"] 8 | } 9 | -------------------------------------------------------------------------------- /apps/angular-spotify/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.base.json", 3 | "files": [], 4 | "include": [], 5 | "references": [ 6 | { 7 | "path": "./tsconfig.app.json" 8 | }, 9 | { 10 | "path": "./tsconfig.spec.json" 11 | }, 12 | { 13 | "path": "./tsconfig.editor.json" 14 | } 15 | ], 16 | "compilerOptions": { 17 | "target": "es2020" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /apps/angular-spotify/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /commitlint.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: ['@commitlint/config-conventional'], 3 | }; 4 | -------------------------------------------------------------------------------- /libs/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/.gitkeep -------------------------------------------------------------------------------- /libs/web/album/data-access/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [["@nrwl/web/babel", { "useBuiltIns": "usage" }]] 3 | } 4 | -------------------------------------------------------------------------------- /libs/web/album/data-access/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../../../.eslintrc.json"], 3 | "ignorePatterns": ["!**/*"], 4 | "overrides": [ 5 | { 6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], 7 | "rules": {} 8 | }, 9 | { 10 | "files": ["*.ts", "*.tsx"], 11 | "rules": {} 12 | }, 13 | { 14 | "files": ["*.js", "*.jsx"], 15 | "rules": {} 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /libs/web/album/data-access/README.md: -------------------------------------------------------------------------------- 1 | # web-album-data-access 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-album-data-access` to execute the unit tests via [Jest](https://jestjs.io). 8 | -------------------------------------------------------------------------------- /libs/web/album/data-access/jest.config.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | export default { 3 | displayName: 'web-album-data-access', 4 | preset: '../../../../jest.preset.js', 5 | globals: { 6 | 'ts-jest': { tsconfig: '/tsconfig.spec.json' } 7 | }, 8 | transform: { 9 | '^.+\\.[tj]sx?$': 'ts-jest' 10 | }, 11 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'], 12 | coverageDirectory: '../../../../coverage/libs/web/album/data-access' 13 | }; 14 | -------------------------------------------------------------------------------- /libs/web/album/data-access/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/store'; 2 | -------------------------------------------------------------------------------- /libs/web/album/data-access/src/lib/store/album/index.ts: -------------------------------------------------------------------------------- 1 | export * from './album.store'; 2 | -------------------------------------------------------------------------------- /libs/web/album/data-access/src/lib/store/albums/albums.action.ts: -------------------------------------------------------------------------------- 1 | import { createAction, props } from '@ngrx/store'; 2 | 3 | export const loadAlbums = createAction('[Albums Page/API]'); 4 | 5 | export const loadAlbumsSuccess = createAction( 6 | '[Albums Page/API success]', 7 | props<{ 8 | albums: SpotifyApi.UsersSavedAlbumsResponse; 9 | }>() 10 | ); 11 | 12 | export const loadAlbumsError = createAction('[Albums Page/API error]', props<{ error: string }>()); 13 | -------------------------------------------------------------------------------- /libs/web/album/data-access/src/lib/store/albums/index.ts: -------------------------------------------------------------------------------- 1 | export * from './albums.action'; 2 | export * from './albums.reducer'; 3 | export * from './albums.effect'; 4 | export * from './albums.selector'; 5 | -------------------------------------------------------------------------------- /libs/web/album/data-access/src/lib/store/index.ts: -------------------------------------------------------------------------------- 1 | export * from './albums'; 2 | export * from './album'; 3 | -------------------------------------------------------------------------------- /libs/web/album/data-access/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../../tsconfig.base.json", 3 | "files": [], 4 | "include": [], 5 | "references": [ 6 | { 7 | "path": "./tsconfig.lib.json" 8 | }, 9 | { 10 | "path": "./tsconfig.spec.json" 11 | } 12 | ], 13 | "compilerOptions": { 14 | "target": "es2020" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /libs/web/album/data-access/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "forceConsistentCasingInFileNames": true, 6 | "strict": true, 7 | "noImplicitReturns": true, 8 | "noFallthroughCasesInSwitch": true 9 | }, 10 | "include": ["**/*.ts"], 11 | "exclude": ["**/*.spec.ts", "**/*.test.ts", "jest.config.ts"] 12 | } 13 | -------------------------------------------------------------------------------- /libs/web/album/data-access/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "include": [ 9 | "**/*.spec.ts", 10 | "**/*.test.ts", 11 | "**/*.spec.tsx", 12 | "**/*.test.tsx", 13 | "**/*.spec.js", 14 | "**/*.test.js", 15 | "**/*.spec.jsx", 16 | "**/*.test.jsx", 17 | "**/*.d.ts", 18 | "jest.config.ts" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /libs/web/album/feature/detail/README.md: -------------------------------------------------------------------------------- 1 | # web-album-feature 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-album-feature` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/album/feature/detail/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/album.module'; -------------------------------------------------------------------------------- /libs/web/album/feature/detail/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/album/feature/detail/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/album/feature/list/README.md: -------------------------------------------------------------------------------- 1 | # web-album-feature-list 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-album-feature-list` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/album/feature/list/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/albums.module'; 2 | -------------------------------------------------------------------------------- /libs/web/album/feature/list/src/lib/albums.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /libs/web/album/feature/list/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/album/feature/list/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/album/feature/shell/README.md: -------------------------------------------------------------------------------- 1 | # web-album-feature-shell 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-album-feature-shell` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/album/feature/shell/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/album-shell.module'; 2 | -------------------------------------------------------------------------------- /libs/web/album/feature/shell/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/album/feature/shell/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/album/ui/album-track/README.md: -------------------------------------------------------------------------------- 1 | # web-album-ui-album-track 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-album-ui-album-track` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/album/ui/album-track/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/album-track.module'; 2 | -------------------------------------------------------------------------------- /libs/web/album/ui/album-track/src/lib/album-track.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/album/ui/album-track/src/lib/album-track.component.scss -------------------------------------------------------------------------------- /libs/web/album/ui/album-track/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/album/ui/album-track/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/artist/data-access/README.md: -------------------------------------------------------------------------------- 1 | # web-artist-data-access 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-artist-data-access` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/artist/data-access/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/store'; 2 | -------------------------------------------------------------------------------- /libs/web/artist/data-access/src/lib/store/index.ts: -------------------------------------------------------------------------------- 1 | export * from './artist.store'; 2 | export * from './artist-top-tracks.store'; 3 | -------------------------------------------------------------------------------- /libs/web/artist/data-access/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/artist/data-access/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/artist/feature/README.md: -------------------------------------------------------------------------------- 1 | # web-artist-feature 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-artist-feature` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/artist/feature/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/artist.module'; 2 | -------------------------------------------------------------------------------- /libs/web/artist/feature/src/lib/artist.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /libs/web/artist/feature/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/artist/feature/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/artist/ui/artist-top-track/README.md: -------------------------------------------------------------------------------- 1 | # web-artist-ui-artist-top-track 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-artist-ui-artist-top-track` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/artist/ui/artist-top-track/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/artist-top-track.module'; 2 | -------------------------------------------------------------------------------- /libs/web/artist/ui/artist-top-track/src/lib/artist-top-track.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/artist/ui/artist-top-track/src/lib/artist-top-track.component.scss -------------------------------------------------------------------------------- /libs/web/artist/ui/artist-top-track/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/artist/ui/artist-top-track/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/artist/ui/artist-top-tracks/README.md: -------------------------------------------------------------------------------- 1 | # web-artist-ui-artist-top-tracks 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-artist-ui-artist-top-tracks` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/artist/ui/artist-top-tracks/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/artist-top-tracks.module'; 2 | -------------------------------------------------------------------------------- /libs/web/artist/ui/artist-top-tracks/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/artist/ui/artist-top-tracks/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/auth/data-access/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../../.eslintrc.json", 3 | "ignorePatterns": ["!**/*"], 4 | "rules": {}, 5 | "overrides": [ 6 | { 7 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], 8 | "rules": {} 9 | }, 10 | { 11 | "files": ["*.ts", "*.tsx"], 12 | "rules": {} 13 | }, 14 | { 15 | "files": ["*.js", "*.jsx"], 16 | "rules": {} 17 | } 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /libs/web/auth/data-access/README.md: -------------------------------------------------------------------------------- 1 | # web-auth-data-access 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-auth-data-access` to execute the unit tests via [Jest](https://jestjs.io). 8 | -------------------------------------------------------------------------------- /libs/web/auth/data-access/jest.config.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | export default { 3 | displayName: 'web-auth-data-access', 4 | preset: '../../../../jest.preset.js', 5 | globals: { 6 | 'ts-jest': { tsconfig: '/tsconfig.spec.json' } 7 | }, 8 | transform: { 9 | '^.+\\.[tj]sx?$': 'ts-jest' 10 | }, 11 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'], 12 | coverageDirectory: '../../../../coverage/libs/web/auth/data-access' 13 | }; 14 | -------------------------------------------------------------------------------- /libs/web/auth/data-access/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/store/auth.store'; 2 | -------------------------------------------------------------------------------- /libs/web/auth/data-access/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../../tsconfig.base.json", 3 | "files": [], 4 | "include": [], 5 | "references": [ 6 | { 7 | "path": "./tsconfig.lib.json" 8 | }, 9 | { 10 | "path": "./tsconfig.spec.json" 11 | } 12 | ], 13 | "compilerOptions": { 14 | "target": "es2020" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /libs/web/auth/data-access/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "forceConsistentCasingInFileNames": true, 6 | "strict": true, 7 | "noImplicitReturns": true, 8 | "noFallthroughCasesInSwitch": true 9 | }, 10 | "include": ["**/*.ts"], 11 | "exclude": ["**/*.spec.ts", "**/*.test.ts", "jest.config.ts"] 12 | } 13 | -------------------------------------------------------------------------------- /libs/web/auth/data-access/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "include": [ 9 | "**/*.spec.ts", 10 | "**/*.test.ts", 11 | "**/*.spec.tsx", 12 | "**/*.test.tsx", 13 | "**/*.spec.js", 14 | "**/*.test.js", 15 | "**/*.spec.jsx", 16 | "**/*.test.jsx", 17 | "**/*.d.ts", 18 | "jest.config.ts" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /libs/web/auth/ui/unauthorized-modal/README.md: -------------------------------------------------------------------------------- 1 | # web-auth-ui-unauthorized-modal 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-auth-ui-unauthorized-modal` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/auth/ui/unauthorized-modal/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/unauthorized-modal.component'; 2 | export * from './lib/unauthorized-modal.module'; 3 | -------------------------------------------------------------------------------- /libs/web/auth/ui/unauthorized-modal/src/lib/unauthorized-modal.component.html: -------------------------------------------------------------------------------- 1 |
2 |

3 | One access token is valid for only one hour. When clicked the Login button, I will try to authenticate you again with Spotify to get a new 4 | access token 😆 5 |

6 |
7 |
8 | 11 |
12 | -------------------------------------------------------------------------------- /libs/web/auth/ui/unauthorized-modal/src/lib/unauthorized-modal.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/auth/ui/unauthorized-modal/src/lib/unauthorized-modal.component.scss -------------------------------------------------------------------------------- /libs/web/auth/ui/unauthorized-modal/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/auth/ui/unauthorized-modal/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/auth/util/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../../../.eslintrc.json"], 3 | "ignorePatterns": ["!**/*"], 4 | "rules": {}, 5 | "overrides": [ 6 | { 7 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], 8 | "rules": {} 9 | }, 10 | { 11 | "files": ["*.ts", "*.tsx"], 12 | "rules": {} 13 | }, 14 | { 15 | "files": ["*.js", "*.jsx"], 16 | "rules": {} 17 | } 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /libs/web/auth/util/README.md: -------------------------------------------------------------------------------- 1 | # web-auth-util 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-auth-util` to execute the unit tests via [Jest](https://jestjs.io). 8 | -------------------------------------------------------------------------------- /libs/web/auth/util/jest.config.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | export default { 3 | displayName: 'web-auth-util', 4 | preset: '../../../../jest.preset.js', 5 | globals: { 6 | 'ts-jest': { tsconfig: '/tsconfig.spec.json' } 7 | }, 8 | testEnvironment: 'node', 9 | transform: { 10 | '^.+\\.[tj]sx?$': 'ts-jest' 11 | }, 12 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'], 13 | coverageDirectory: '../../../../coverage/libs/web/auth/util' 14 | }; 15 | -------------------------------------------------------------------------------- /libs/web/auth/util/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/interceptors'; 2 | -------------------------------------------------------------------------------- /libs/web/auth/util/src/lib/interceptors/index.ts: -------------------------------------------------------------------------------- 1 | export * from './auth.interceptor'; 2 | export * from './unauthorized.interceptor'; 3 | -------------------------------------------------------------------------------- /libs/web/auth/util/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../../tsconfig.base.json", 3 | "files": [], 4 | "include": [], 5 | "references": [ 6 | { 7 | "path": "./tsconfig.lib.json" 8 | }, 9 | { 10 | "path": "./tsconfig.spec.json" 11 | } 12 | ], 13 | "compilerOptions": { 14 | "target": "es2020" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /libs/web/auth/util/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "types": [] 6 | }, 7 | "include": ["**/*.ts"], 8 | "exclude": ["**/*.spec.ts", "**/*.test.ts", "jest.config.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /libs/web/auth/util/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "include": [ 9 | "**/*.spec.ts", 10 | "**/*.test.ts", 11 | "**/*.spec.tsx", 12 | "**/*.test.tsx", 13 | "**/*.spec.js", 14 | "**/*.test.js", 15 | "**/*.spec.jsx", 16 | "**/*.test.jsx", 17 | "**/*.d.ts", 18 | "jest.config.ts" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /libs/web/browse/data-access/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["@nrwl/web/babel"] 3 | } 4 | -------------------------------------------------------------------------------- /libs/web/browse/data-access/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../../../.eslintrc.json"], 3 | "ignorePatterns": ["!**/*"], 4 | "overrides": [ 5 | { 6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], 7 | "rules": {} 8 | }, 9 | { 10 | "files": ["*.ts", "*.tsx"], 11 | "rules": {} 12 | }, 13 | { 14 | "files": ["*.js", "*.jsx"], 15 | "rules": {} 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /libs/web/browse/data-access/README.md: -------------------------------------------------------------------------------- 1 | # web-browse-data-access 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-browse-data-access` to execute the unit tests via [Jest](https://jestjs.io). 8 | -------------------------------------------------------------------------------- /libs/web/browse/data-access/jest.config.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | export default { 3 | displayName: 'web-browse-data-access', 4 | preset: '../../../../jest.preset.js', 5 | globals: { 6 | 'ts-jest': { tsconfig: '/tsconfig.spec.json' } 7 | }, 8 | transform: { 9 | '^.+\\.[tj]sx?$': 'ts-jest' 10 | }, 11 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'], 12 | coverageDirectory: '../../../../coverage/libs/web/browse/data-access' 13 | }; 14 | -------------------------------------------------------------------------------- /libs/web/browse/data-access/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/store'; 2 | -------------------------------------------------------------------------------- /libs/web/browse/data-access/src/lib/store/categories/index.ts: -------------------------------------------------------------------------------- 1 | export * from './categories.action'; 2 | export * from './categories.reducer'; 3 | export * from './categories.effect'; 4 | export * from './categories.selector'; 5 | -------------------------------------------------------------------------------- /libs/web/browse/data-access/src/lib/store/category-playlists/index.ts: -------------------------------------------------------------------------------- 1 | export * from './category-playlists.action'; 2 | export * from './category-playlists.reducer'; 3 | export * from './category-playlists.effect'; 4 | export * from './category-playlists.selector'; 5 | -------------------------------------------------------------------------------- /libs/web/browse/data-access/src/lib/store/index.ts: -------------------------------------------------------------------------------- 1 | export * from './categories'; 2 | export * from './category-playlists'; 3 | -------------------------------------------------------------------------------- /libs/web/browse/data-access/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../../tsconfig.base.json", 3 | "files": [], 4 | "include": [], 5 | "references": [ 6 | { 7 | "path": "./tsconfig.lib.json" 8 | }, 9 | { 10 | "path": "./tsconfig.spec.json" 11 | } 12 | ], 13 | "compilerOptions": { 14 | "target": "es2020" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /libs/web/browse/data-access/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "forceConsistentCasingInFileNames": true, 6 | "strict": true, 7 | "noImplicitReturns": true, 8 | "noFallthroughCasesInSwitch": true 9 | }, 10 | "include": ["**/*.ts"], 11 | "exclude": ["**/*.spec.ts", "**/*.test.ts", "jest.config.ts"] 12 | } 13 | -------------------------------------------------------------------------------- /libs/web/browse/data-access/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "include": [ 9 | "**/*.spec.ts", 10 | "**/*.test.ts", 11 | "**/*.spec.tsx", 12 | "**/*.test.tsx", 13 | "**/*.spec.js", 14 | "**/*.test.js", 15 | "**/*.spec.jsx", 16 | "**/*.test.jsx", 17 | "**/*.d.ts", 18 | "jest.config.ts" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /libs/web/browse/feature/categories/README.md: -------------------------------------------------------------------------------- 1 | # web-browse-feature 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-browse-feature` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/browse/feature/categories/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/categories.module'; 2 | -------------------------------------------------------------------------------- /libs/web/browse/feature/categories/src/lib/categories.component.html: -------------------------------------------------------------------------------- 1 |
2 |
4 | 6 | 7 |
8 | 9 |
-------------------------------------------------------------------------------- /libs/web/browse/feature/categories/src/lib/categories.component.scss: -------------------------------------------------------------------------------- 1 | .categories-container { 2 | gap: --media-cover-gap; 3 | grid-template-columns: --media-grid; 4 | @apply grid; 5 | } 6 | -------------------------------------------------------------------------------- /libs/web/browse/feature/categories/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/browse/feature/categories/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/browse/feature/category/README.md: -------------------------------------------------------------------------------- 1 | # web-browse-feature-detail 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-browse-feature-detail` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/browse/feature/category/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/category.module'; 2 | -------------------------------------------------------------------------------- /libs/web/browse/feature/category/src/lib/category.component.html: -------------------------------------------------------------------------------- 1 |
2 |

{{ category.name }} 4 |

5 | 6 | 8 | 9 | 10 |
-------------------------------------------------------------------------------- /libs/web/browse/feature/category/src/lib/category.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/browse/feature/category/src/lib/category.component.scss -------------------------------------------------------------------------------- /libs/web/browse/feature/category/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/browse/feature/category/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/browse/feature/shell/README.md: -------------------------------------------------------------------------------- 1 | # web-browse-feature-shell 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-browse-feature-shell` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/browse/feature/shell/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/browse-shell.module'; 2 | -------------------------------------------------------------------------------- /libs/web/browse/feature/shell/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/browse/feature/shell/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/browse/ui/category-cover/README.md: -------------------------------------------------------------------------------- 1 | # web-browse-ui-category-cover 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-browse-ui-category-cover` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/browse/ui/category-cover/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/category-cover.module'; 2 | -------------------------------------------------------------------------------- /libs/web/browse/ui/category-cover/src/lib/category-cover.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
7 | {{ category.name }} 8 |
9 |
-------------------------------------------------------------------------------- /libs/web/browse/ui/category-cover/src/lib/category-cover.component.scss: -------------------------------------------------------------------------------- 1 | .category-cover-container { 2 | display: flex; 3 | position: relative; 4 | &:hover { 5 | .category-name { 6 | @apply underline; 7 | } 8 | } 9 | } 10 | 11 | .category-name { 12 | position: absolute; 13 | bottom: 40px; 14 | left: 50%; 15 | transform: translateX(-50%); 16 | @apply text-white text-base; 17 | } 18 | -------------------------------------------------------------------------------- /libs/web/browse/ui/category-cover/src/lib/category-cover.component.ts: -------------------------------------------------------------------------------- 1 | import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'as-category-cover', 5 | templateUrl: './category-cover.component.html', 6 | styleUrls: ['./category-cover.component.scss'], 7 | changeDetection: ChangeDetectionStrategy.OnPush 8 | }) 9 | export class CategoryCoverComponent { 10 | @Input() category!: SpotifyApi.CategoryObject; 11 | } 12 | -------------------------------------------------------------------------------- /libs/web/browse/ui/category-cover/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/browse/ui/category-cover/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/container-queries/README.md: -------------------------------------------------------------------------------- 1 | # web-container-queries 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-container-queries` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/container-queries/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/container-queries.component'; 2 | export * from './lib/container-queries.routes'; 3 | -------------------------------------------------------------------------------- /libs/web/container-queries/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | -------------------------------------------------------------------------------- /libs/web/container-queries/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "declaration": true, 6 | "declarationMap": true, 7 | "inlineSources": true, 8 | "types": [] 9 | }, 10 | "exclude": ["src/**/*.spec.ts", "src/test-setup.ts", "jest.config.ts", "src/**/*.test.ts"], 11 | "include": ["src/**/*.ts"] 12 | } 13 | -------------------------------------------------------------------------------- /libs/web/container-queries/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "target": "es2016", 7 | "types": ["jest", "node"] 8 | }, 9 | "files": ["src/test-setup.ts"], 10 | "include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /libs/web/future-responsive/README.md: -------------------------------------------------------------------------------- 1 | # web-future-responsive 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-future-responsive` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/future-responsive/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/future-responsive.routes'; 2 | -------------------------------------------------------------------------------- /libs/web/future-responsive/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | -------------------------------------------------------------------------------- /libs/web/future-responsive/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "declaration": true, 6 | "declarationMap": true, 7 | "inlineSources": true, 8 | "types": [] 9 | }, 10 | "exclude": ["src/**/*.spec.ts", "src/test-setup.ts", "jest.config.ts", "src/**/*.test.ts"], 11 | "include": ["src/**/*.ts"] 12 | } 13 | -------------------------------------------------------------------------------- /libs/web/future-responsive/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "target": "es2016", 7 | "types": ["jest", "node"] 8 | }, 9 | "files": ["src/test-setup.ts"], 10 | "include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /libs/web/home/data-access/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["@nrwl/web/babel"] 3 | } 4 | -------------------------------------------------------------------------------- /libs/web/home/data-access/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../../../.eslintrc.json"], 3 | "ignorePatterns": ["!**/*"], 4 | "overrides": [ 5 | { 6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], 7 | "rules": {} 8 | }, 9 | { 10 | "files": ["*.ts", "*.tsx"], 11 | "rules": {} 12 | }, 13 | { 14 | "files": ["*.js", "*.jsx"], 15 | "rules": {} 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /libs/web/home/data-access/README.md: -------------------------------------------------------------------------------- 1 | # web-home-data-access 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-home-data-access` to execute the unit tests via [Jest](https://jestjs.io). 8 | -------------------------------------------------------------------------------- /libs/web/home/data-access/jest.config.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | export default { 3 | displayName: 'web-home-data-access', 4 | preset: '../../../../jest.preset.js', 5 | globals: { 6 | 'ts-jest': { tsconfig: '/tsconfig.spec.json' } 7 | }, 8 | testEnvironment: 'node', 9 | transform: { 10 | '^.+\\.[tj]sx?$': 'ts-jest' 11 | }, 12 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'], 13 | coverageDirectory: '../../../../coverage/libs/web/home/data-access' 14 | }; 15 | -------------------------------------------------------------------------------- /libs/web/home/data-access/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/store/recent-played-tracks'; 2 | export * from './lib/store/feature-playlists'; 3 | -------------------------------------------------------------------------------- /libs/web/home/data-access/src/lib/store/feature-playlists/index.ts: -------------------------------------------------------------------------------- 1 | export * from './feature-playlists.action'; 2 | export * from './feature-playlists.effect'; 3 | export * from './feature-playlists.reducer'; 4 | export * from './feature-playlists.selector'; 5 | -------------------------------------------------------------------------------- /libs/web/home/data-access/src/lib/store/recent-played-tracks/index.ts: -------------------------------------------------------------------------------- 1 | export * from './recent-played-tracks.action'; 2 | export * from './recent-played-tracks.effect'; 3 | export * from './recent-played-tracks.reducer'; 4 | export * from './recent-played-tracks.selector'; 5 | -------------------------------------------------------------------------------- /libs/web/home/data-access/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../../tsconfig.base.json", 3 | "files": [], 4 | "include": [], 5 | "references": [ 6 | { 7 | "path": "./tsconfig.lib.json" 8 | }, 9 | { 10 | "path": "./tsconfig.spec.json" 11 | } 12 | ], 13 | "compilerOptions": { 14 | "target": "es2020" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /libs/web/home/data-access/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "forceConsistentCasingInFileNames": true, 6 | "strict": true, 7 | "noImplicitReturns": true, 8 | "noFallthroughCasesInSwitch": true 9 | }, 10 | "include": ["**/*.ts"], 11 | "exclude": ["**/*.spec.ts", "**/*.test.ts", "jest.config.ts"] 12 | } 13 | -------------------------------------------------------------------------------- /libs/web/home/data-access/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "include": [ 9 | "**/*.spec.ts", 10 | "**/*.test.ts", 11 | "**/*.spec.tsx", 12 | "**/*.test.tsx", 13 | "**/*.spec.js", 14 | "**/*.test.js", 15 | "**/*.spec.jsx", 16 | "**/*.test.jsx", 17 | "**/*.d.ts", 18 | "jest.config.ts" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /libs/web/home/feature/README.md: -------------------------------------------------------------------------------- 1 | # web-home-feature 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-home-feature` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/home/feature/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/home.module'; 2 | -------------------------------------------------------------------------------- /libs/web/home/feature/src/lib/home.component.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | 5 |
6 | -------------------------------------------------------------------------------- /libs/web/home/feature/src/lib/home.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/home/feature/src/lib/home.component.scss -------------------------------------------------------------------------------- /libs/web/home/feature/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/home/feature/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/home/ui/featured-playlists/README.md: -------------------------------------------------------------------------------- 1 | # web-home-ui-featured-playlists 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-home-ui-featured-playlists` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/home/ui/featured-playlists/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/featured-playlists.module'; 2 | -------------------------------------------------------------------------------- /libs/web/home/ui/featured-playlists/src/lib/featured-playlists.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/home/ui/featured-playlists/src/lib/featured-playlists.component.scss -------------------------------------------------------------------------------- /libs/web/home/ui/featured-playlists/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/home/ui/featured-playlists/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/home/ui/greeting/README.md: -------------------------------------------------------------------------------- 1 | # web-home-ui-greeting 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-home-ui-greeting` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/home/ui/greeting/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/greeting.module'; 2 | -------------------------------------------------------------------------------- /libs/web/home/ui/greeting/src/lib/greeting.component.html: -------------------------------------------------------------------------------- 1 |

{{ message }}

2 | -------------------------------------------------------------------------------- /libs/web/home/ui/greeting/src/lib/greeting.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /libs/web/home/ui/greeting/src/lib/greeting.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | import { GreetingComponent } from './greeting.component'; 4 | 5 | @NgModule({ 6 | imports: [CommonModule], 7 | declarations: [GreetingComponent], 8 | exports: [GreetingComponent] 9 | }) 10 | export class GreetingModule {} 11 | -------------------------------------------------------------------------------- /libs/web/home/ui/greeting/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/home/ui/greeting/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/home/ui/recent-played/README.md: -------------------------------------------------------------------------------- 1 | # web-home-ui-recent-played 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-home-ui-recent-played` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/home/ui/recent-played/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/recent-played.module'; 2 | -------------------------------------------------------------------------------- /libs/web/home/ui/recent-played/src/lib/recent-played.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/home/ui/recent-played/src/lib/recent-played.component.scss -------------------------------------------------------------------------------- /libs/web/home/ui/recent-played/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/home/ui/recent-played/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/playlist/data-access/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../../../.eslintrc.json"], 3 | "ignorePatterns": ["!**/*"], 4 | "rules": {}, 5 | "overrides": [ 6 | { 7 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], 8 | "rules": {} 9 | }, 10 | { 11 | "files": ["*.ts", "*.tsx"], 12 | "rules": {} 13 | }, 14 | { 15 | "files": ["*.js", "*.jsx"], 16 | "rules": {} 17 | } 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /libs/web/playlist/data-access/README.md: -------------------------------------------------------------------------------- 1 | # web-playlist-data-access 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-playlist-data-access` to execute the unit tests via [Jest](https://jestjs.io). 8 | -------------------------------------------------------------------------------- /libs/web/playlist/data-access/jest.config.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | export default { 3 | displayName: 'web-playlist-data-access', 4 | preset: '../../../../jest.preset.js', 5 | globals: { 6 | 'ts-jest': { tsconfig: '/tsconfig.spec.json' } 7 | }, 8 | testEnvironment: 'node', 9 | transform: { 10 | '^.+\\.[tj]sx?$': 'ts-jest' 11 | }, 12 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'], 13 | coverageDirectory: '../../../../coverage/libs/web/playlist/data-access' 14 | }; 15 | -------------------------------------------------------------------------------- /libs/web/playlist/data-access/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/store'; 2 | -------------------------------------------------------------------------------- /libs/web/playlist/data-access/src/lib/store/index.ts: -------------------------------------------------------------------------------- 1 | export * from './playlists'; 2 | export * from './playlist-tracks'; 3 | export * from './playlist'; 4 | -------------------------------------------------------------------------------- /libs/web/playlist/data-access/src/lib/store/playlist-tracks/index.ts: -------------------------------------------------------------------------------- 1 | export * from './playlist-tracks.action'; 2 | export * from './playlist-tracks.effect'; 3 | export * from './playlist-tracks.selector'; 4 | export * from './playlist-tracks.reducer'; 5 | -------------------------------------------------------------------------------- /libs/web/playlist/data-access/src/lib/store/playlist/index.ts: -------------------------------------------------------------------------------- 1 | export * from './playlist.store'; 2 | -------------------------------------------------------------------------------- /libs/web/playlist/data-access/src/lib/store/playlists/index.ts: -------------------------------------------------------------------------------- 1 | export * from './playlists.action'; 2 | export * from './playlists.effect'; 3 | export * from './playlists.selector'; 4 | export * from './playlists.reducer'; 5 | -------------------------------------------------------------------------------- /libs/web/playlist/data-access/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../../tsconfig.base.json", 3 | "files": [], 4 | "include": [], 5 | "references": [ 6 | { 7 | "path": "./tsconfig.lib.json" 8 | }, 9 | { 10 | "path": "./tsconfig.spec.json" 11 | } 12 | ], 13 | "compilerOptions": { 14 | "target": "es2020" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /libs/web/playlist/data-access/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "forceConsistentCasingInFileNames": true, 6 | "strict": true, 7 | "noImplicitReturns": true, 8 | "noFallthroughCasesInSwitch": true 9 | }, 10 | "include": ["**/*.ts"], 11 | "exclude": ["**/*.spec.ts", "**/*.test.ts", "jest.config.ts"] 12 | } 13 | -------------------------------------------------------------------------------- /libs/web/playlist/data-access/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "include": [ 9 | "**/*.spec.ts", 10 | "**/*.test.ts", 11 | "**/*.spec.tsx", 12 | "**/*.test.tsx", 13 | "**/*.spec.js", 14 | "**/*.test.js", 15 | "**/*.spec.jsx", 16 | "**/*.test.jsx", 17 | "**/*.d.ts", 18 | "jest.config.ts" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /libs/web/playlist/feature/detail/README.md: -------------------------------------------------------------------------------- 1 | # web-playlist 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | -------------------------------------------------------------------------------- /libs/web/playlist/feature/detail/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/playlist.module'; 2 | -------------------------------------------------------------------------------- /libs/web/playlist/feature/detail/src/lib/playlist.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /libs/web/playlist/feature/list/README.md: -------------------------------------------------------------------------------- 1 | # web-collection-playlists 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | -------------------------------------------------------------------------------- /libs/web/playlist/feature/list/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/playlists.module'; 2 | -------------------------------------------------------------------------------- /libs/web/playlist/feature/list/src/lib/playlists.component.html: -------------------------------------------------------------------------------- 1 |
2 | 4 | 5 |
-------------------------------------------------------------------------------- /libs/web/playlist/feature/list/src/lib/playlists.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /libs/web/playlist/ui/playlist-track/README.md: -------------------------------------------------------------------------------- 1 | # web-shared-ui-playlist-track 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-shared-ui-playlist-track` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/playlist/ui/playlist-track/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@angular-spotify/web/shared/ui/playlist-track", 3 | "version": "0.0.1", 4 | "peerDependencies": { 5 | "@angular/common": "^11.2.1", 6 | "@angular/core": "^11.2.1" 7 | }, 8 | "dependencies": { 9 | "tslib": "^2.0.0" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /libs/web/playlist/ui/playlist-track/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/playlist-track.module'; 2 | -------------------------------------------------------------------------------- /libs/web/playlist/ui/playlist-track/src/lib/playlist-track.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/playlist/ui/playlist-track/src/lib/playlist-track.component.scss -------------------------------------------------------------------------------- /libs/web/playlist/ui/playlist-track/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/playlist/ui/playlist-track/tsconfig.lib.prod.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.lib.json", 3 | "compilerOptions": { 4 | "declarationMap": false 5 | }, 6 | "angularCompilerOptions": { 7 | "enableIvy": false 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /libs/web/playlist/ui/playlist-track/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/search/data-access/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [["@nrwl/web/babel", { "useBuiltIns": "usage" }]] 3 | } 4 | -------------------------------------------------------------------------------- /libs/web/search/data-access/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../../../.eslintrc.json"], 3 | "ignorePatterns": ["!**/*"], 4 | "overrides": [ 5 | { 6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], 7 | "rules": {} 8 | }, 9 | { 10 | "files": ["*.ts", "*.tsx"], 11 | "rules": {} 12 | }, 13 | { 14 | "files": ["*.js", "*.jsx"], 15 | "rules": {} 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /libs/web/search/data-access/README.md: -------------------------------------------------------------------------------- 1 | # web-search-data-access 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-search-data-access` to execute the unit tests via [Jest](https://jestjs.io). 8 | -------------------------------------------------------------------------------- /libs/web/search/data-access/jest.config.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | export default { 3 | displayName: 'web-search-data-access', 4 | preset: '../../../../jest.preset.js', 5 | globals: { 6 | 'ts-jest': { tsconfig: '/tsconfig.spec.json' } 7 | }, 8 | transform: { 9 | '^.+\\.[tj]sx?$': 'ts-jest' 10 | }, 11 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'], 12 | coverageDirectory: '../../../../coverage/libs/web/search/data-access' 13 | }; 14 | -------------------------------------------------------------------------------- /libs/web/search/data-access/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/store'; 2 | -------------------------------------------------------------------------------- /libs/web/search/data-access/src/lib/store/index.ts: -------------------------------------------------------------------------------- 1 | export * from './search.store'; 2 | -------------------------------------------------------------------------------- /libs/web/search/data-access/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../../tsconfig.base.json", 3 | "files": [], 4 | "include": [], 5 | "references": [ 6 | { 7 | "path": "./tsconfig.lib.json" 8 | }, 9 | { 10 | "path": "./tsconfig.spec.json" 11 | } 12 | ], 13 | "compilerOptions": { 14 | "target": "es2020" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /libs/web/search/data-access/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "types": [] 6 | }, 7 | "include": ["**/*.ts"], 8 | "exclude": ["**/*.spec.ts", "**/*.test.ts", "jest.config.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /libs/web/search/data-access/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "include": [ 9 | "**/*.spec.ts", 10 | "**/*.test.ts", 11 | "**/*.spec.tsx", 12 | "**/*.test.tsx", 13 | "**/*.spec.js", 14 | "**/*.test.js", 15 | "**/*.spec.jsx", 16 | "**/*.test.jsx", 17 | "**/*.d.ts", 18 | "jest.config.ts" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /libs/web/search/feature/README.md: -------------------------------------------------------------------------------- 1 | # web-search-feature 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-search-feature` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/search/feature/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/search.module'; 2 | -------------------------------------------------------------------------------- /libs/web/search/feature/src/lib/search.component.scss: -------------------------------------------------------------------------------- 1 | .search-input-container { 2 | @apply flex flex-wrap items-center; 3 | min-height: 56px; 4 | 5 | .search-control { 6 | width: 364px; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /libs/web/search/feature/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/search/feature/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/settings/data-access/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [["@nrwl/web/babel", { "useBuiltIns": "usage" }]] 3 | } 4 | -------------------------------------------------------------------------------- /libs/web/settings/data-access/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../../../.eslintrc.json"], 3 | "ignorePatterns": ["!**/*"], 4 | "overrides": [ 5 | { 6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], 7 | "rules": {} 8 | }, 9 | { 10 | "files": ["*.ts", "*.tsx"], 11 | "rules": {} 12 | }, 13 | { 14 | "files": ["*.js", "*.jsx"], 15 | "rules": {} 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /libs/web/settings/data-access/README.md: -------------------------------------------------------------------------------- 1 | # web-settings-data-access 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-settings-data-access` to execute the unit tests via [Jest](https://jestjs.io). 8 | -------------------------------------------------------------------------------- /libs/web/settings/data-access/jest.config.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | export default { 3 | displayName: 'web-settings-data-access', 4 | preset: '../../../../jest.preset.js', 5 | globals: { 6 | 'ts-jest': { tsconfig: '/tsconfig.spec.json' } 7 | }, 8 | transform: { 9 | '^.+\\.[tj]sx?$': 'ts-jest' 10 | }, 11 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'], 12 | coverageDirectory: '../../../../coverage/libs/web/settings/data-access' 13 | }; 14 | -------------------------------------------------------------------------------- /libs/web/settings/data-access/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/store'; 2 | export * from './lib/services'; 3 | -------------------------------------------------------------------------------- /libs/web/settings/data-access/src/lib/services/index.ts: -------------------------------------------------------------------------------- 1 | export * from './local-storage.service'; 2 | -------------------------------------------------------------------------------- /libs/web/settings/data-access/src/lib/store/index.ts: -------------------------------------------------------------------------------- 1 | export * from './settings.reducer'; 2 | export * from './settings.facade'; 3 | export * from './settings.effects'; 4 | -------------------------------------------------------------------------------- /libs/web/settings/data-access/src/lib/store/settings.actions.ts: -------------------------------------------------------------------------------- 1 | import { createAction, props } from '@ngrx/store'; 2 | 3 | export const persistVolume = createAction('[Settings] Persist Volume', props<{ volume: number }>()); 4 | -------------------------------------------------------------------------------- /libs/web/settings/data-access/src/lib/store/settings.selectors.ts: -------------------------------------------------------------------------------- 1 | import { createFeatureSelector, createSelector } from '@ngrx/store'; 2 | import { SETTINGS_FEATURE_KEY, SettingsState } from './settings.reducer'; 3 | 4 | export const getSettings = createFeatureSelector(SETTINGS_FEATURE_KEY); 5 | 6 | export const getSettingsVolume = createSelector(getSettings, (state) => state.volume || 0); 7 | -------------------------------------------------------------------------------- /libs/web/settings/data-access/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../../tsconfig.base.json", 3 | "files": [], 4 | "include": [], 5 | "references": [ 6 | { 7 | "path": "./tsconfig.lib.json" 8 | }, 9 | { 10 | "path": "./tsconfig.spec.json" 11 | } 12 | ], 13 | "compilerOptions": { 14 | "target": "es2020" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /libs/web/settings/data-access/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "types": [] 6 | }, 7 | "include": ["**/*.ts"], 8 | "exclude": ["**/*.spec.ts", "**/*.test.ts", "jest.config.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /libs/web/settings/data-access/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "include": [ 9 | "**/*.spec.ts", 10 | "**/*.test.ts", 11 | "**/*.spec.tsx", 12 | "**/*.test.tsx", 13 | "**/*.spec.js", 14 | "**/*.test.js", 15 | "**/*.spec.jsx", 16 | "**/*.test.jsx", 17 | "**/*.d.ts", 18 | "jest.config.ts" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /libs/web/settings/feature/README.md: -------------------------------------------------------------------------------- 1 | # web-settings-feature 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-settings-feature` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/settings/feature/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/settings.module'; 2 | -------------------------------------------------------------------------------- /libs/web/settings/feature/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/settings/feature/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/shared/app-config/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../../.eslintrc.json", 3 | "ignorePatterns": ["!**/*"], 4 | "rules": {}, 5 | "overrides": [ 6 | { 7 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], 8 | "rules": {} 9 | }, 10 | { 11 | "files": ["*.ts", "*.tsx"], 12 | "rules": {} 13 | }, 14 | { 15 | "files": ["*.js", "*.jsx"], 16 | "rules": {} 17 | } 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /libs/web/shared/app-config/README.md: -------------------------------------------------------------------------------- 1 | # shared-app-config 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test shared-app-config` to execute the unit tests via [Jest](https://jestjs.io). 8 | -------------------------------------------------------------------------------- /libs/web/shared/app-config/jest.config.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | export default { 3 | displayName: 'web-shared-app-config', 4 | preset: '../../../../jest.preset.js', 5 | globals: { 6 | 'ts-jest': { tsconfig: '/tsconfig.spec.json' } 7 | }, 8 | transform: { 9 | '^.+\\.[tj]sx?$': 'ts-jest' 10 | }, 11 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'], 12 | coverageDirectory: '../../../../coverage/libs/web/shared/app-config' 13 | }; 14 | -------------------------------------------------------------------------------- /libs/web/shared/app-config/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/app.config'; 2 | export * from './lib/app-config.token'; -------------------------------------------------------------------------------- /libs/web/shared/app-config/src/lib/app-config.token.ts: -------------------------------------------------------------------------------- 1 | import { InjectionToken, ValueProvider } from '@angular/core'; 2 | import { AppConfig } from './app.config'; 3 | 4 | export const APP_CONFIG = new InjectionToken('angular-spotify.config'); 5 | 6 | export const getAppConfigProvider = (value: AppConfig): ValueProvider => ({ 7 | provide: APP_CONFIG, 8 | useValue: value 9 | }); 10 | -------------------------------------------------------------------------------- /libs/web/shared/app-config/src/lib/app.config.ts: -------------------------------------------------------------------------------- 1 | export interface AppConfig { 2 | production: boolean; 3 | baseURL: string; 4 | } 5 | -------------------------------------------------------------------------------- /libs/web/shared/app-config/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../../tsconfig.base.json", 3 | "files": [], 4 | "include": [], 5 | "references": [ 6 | { 7 | "path": "./tsconfig.lib.json" 8 | }, 9 | { 10 | "path": "./tsconfig.spec.json" 11 | } 12 | ], 13 | "compilerOptions": { 14 | "target": "es2020" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /libs/web/shared/app-config/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "types": [], 6 | "forceConsistentCasingInFileNames": true, 7 | "strict": true, 8 | "noImplicitReturns": true, 9 | "noFallthroughCasesInSwitch": true 10 | }, 11 | "include": ["**/*.ts"], 12 | "exclude": ["**/*.spec.ts", "**/*.test.ts", "jest.config.ts"] 13 | } 14 | -------------------------------------------------------------------------------- /libs/web/shared/app-config/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "include": [ 9 | "**/*.spec.ts", 10 | "**/*.test.ts", 11 | "**/*.spec.tsx", 12 | "**/*.test.tsx", 13 | "**/*.spec.js", 14 | "**/*.test.js", 15 | "**/*.spec.jsx", 16 | "**/*.test.jsx", 17 | "**/*.d.ts", 18 | "jest.config.ts" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /libs/web/shared/app-init/README.md: -------------------------------------------------------------------------------- 1 | # web-shared-app-init 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-shared-app-init` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/shared/app-init/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib'; 2 | -------------------------------------------------------------------------------- /libs/web/shared/app-init/src/lib/app-init.action.ts: -------------------------------------------------------------------------------- 1 | import { createAction } from '@ngrx/store'; 2 | 3 | export const AppInit = createAction('[App] Init'); 4 | export const AuthReady = createAction('[Auth] Ready'); 5 | -------------------------------------------------------------------------------- /libs/web/shared/app-init/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | export * from './app-init.action'; 2 | export * from './application.effects'; -------------------------------------------------------------------------------- /libs/web/shared/app-init/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/shared/app-init/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "target": "es2015", 6 | "declaration": true, 7 | "declarationMap": true, 8 | "inlineSources": true, 9 | "types": [], 10 | "lib": ["dom", "es2018"] 11 | }, 12 | "exclude": ["src/test-setup.ts", "**/*.spec.ts", "**/*.test.ts", "jest.config.ts"], 13 | "include": ["**/*.ts"] 14 | } 15 | -------------------------------------------------------------------------------- /libs/web/shared/app-init/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"], 7 | "target": "es2016" 8 | }, 9 | "files": ["src/test-setup.ts"], 10 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /libs/web/shared/assets/README.md: -------------------------------------------------------------------------------- 1 | # web-shared-assets 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | -------------------------------------------------------------------------------- /libs/web/shared/assets/project.json: -------------------------------------------------------------------------------- 1 | { 2 | "root": "libs/web/shared/assets", 3 | "sourceRoot": "libs/web/shared/assets/src", 4 | "projectType": "library", 5 | "targets": {}, 6 | "tags": ["type:util", "scope:web"], 7 | "name": "web-shared-assets" 8 | } 9 | -------------------------------------------------------------------------------- /libs/web/shared/assets/src/assets/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/shared/assets/src/assets/favicon.png -------------------------------------------------------------------------------- /libs/web/shared/assets/src/assets/icons/icon-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/shared/assets/src/assets/icons/icon-128x128.png -------------------------------------------------------------------------------- /libs/web/shared/assets/src/assets/icons/icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/shared/assets/src/assets/icons/icon-144x144.png -------------------------------------------------------------------------------- /libs/web/shared/assets/src/assets/icons/icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/shared/assets/src/assets/icons/icon-152x152.png -------------------------------------------------------------------------------- /libs/web/shared/assets/src/assets/icons/icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/shared/assets/src/assets/icons/icon-192x192.png -------------------------------------------------------------------------------- /libs/web/shared/assets/src/assets/icons/icon-384x384.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/shared/assets/src/assets/icons/icon-384x384.png -------------------------------------------------------------------------------- /libs/web/shared/assets/src/assets/icons/icon-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/shared/assets/src/assets/icons/icon-512x512.png -------------------------------------------------------------------------------- /libs/web/shared/assets/src/assets/icons/icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/shared/assets/src/assets/icons/icon-72x72.png -------------------------------------------------------------------------------- /libs/web/shared/assets/src/assets/icons/icon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/shared/assets/src/assets/icons/icon-96x96.png -------------------------------------------------------------------------------- /libs/web/shared/assets/src/assets/images/equaliser-animated-green.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/shared/assets/src/assets/images/equaliser-animated-green.gif -------------------------------------------------------------------------------- /libs/web/shared/assets/src/assets/images/noise.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/shared/assets/src/assets/images/noise.png -------------------------------------------------------------------------------- /libs/web/shared/assets/src/assets/readme/angular-spotify-album-art.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/shared/assets/src/assets/readme/angular-spotify-album-art.gif -------------------------------------------------------------------------------- /libs/web/shared/assets/src/assets/readme/angular-spotify-browse.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/shared/assets/src/assets/readme/angular-spotify-browse.gif -------------------------------------------------------------------------------- /libs/web/shared/assets/src/assets/readme/angular-spotify-demo-short.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/shared/assets/src/assets/readme/angular-spotify-demo-short.gif -------------------------------------------------------------------------------- /libs/web/shared/assets/src/assets/readme/angular-spotify-pwa.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/shared/assets/src/assets/readme/angular-spotify-pwa.gif -------------------------------------------------------------------------------- /libs/web/shared/assets/src/assets/readme/angular-spotify-tech-stack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/shared/assets/src/assets/readme/angular-spotify-tech-stack.png -------------------------------------------------------------------------------- /libs/web/shared/assets/src/assets/readme/angular-spotify-visualization.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/shared/assets/src/assets/readme/angular-spotify-visualization.gif -------------------------------------------------------------------------------- /libs/web/shared/assets/src/assets/readme/angular-spotify-web-player.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/shared/assets/src/assets/readme/angular-spotify-web-player.png -------------------------------------------------------------------------------- /libs/web/shared/assets/src/assets/readme/dep-graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/shared/assets/src/assets/readme/dep-graph.png -------------------------------------------------------------------------------- /libs/web/shared/assets/src/assets/readme/nx-cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/shared/assets/src/assets/readme/nx-cloud.png -------------------------------------------------------------------------------- /libs/web/shared/assets/src/assets/readme/sdk-flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/shared/assets/src/assets/readme/sdk-flow.png -------------------------------------------------------------------------------- /libs/web/shared/assets/src/assets/readme/time-spending.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/shared/assets/src/assets/readme/time-spending.png -------------------------------------------------------------------------------- /libs/web/shared/data-access/models/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../../../../.eslintrc.json"], 3 | "ignorePatterns": ["!**/*"], 4 | "rules": {}, 5 | "overrides": [ 6 | { 7 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], 8 | "rules": {} 9 | }, 10 | { 11 | "files": ["*.ts", "*.tsx"], 12 | "rules": {} 13 | }, 14 | { 15 | "files": ["*.js", "*.jsx"], 16 | "rules": {} 17 | } 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /libs/web/shared/data-access/models/README.md: -------------------------------------------------------------------------------- 1 | # web-shared-data-access-models 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-shared-data-access-models` to execute the unit tests via [Jest](https://jestjs.io). 8 | -------------------------------------------------------------------------------- /libs/web/shared/data-access/models/project.json: -------------------------------------------------------------------------------- 1 | { 2 | "root": "libs/web/shared/data-access/models", 3 | "sourceRoot": "libs/web/shared/data-access/models/src", 4 | "projectType": "library", 5 | "targets": { 6 | "lint": { 7 | "executor": "@nrwl/linter:eslint", 8 | "options": { 9 | "lintFilePatterns": ["libs/web/shared/data-access/models/**/*.ts"] 10 | } 11 | } 12 | }, 13 | "tags": ["type:data-access", "scope:web"], 14 | "name": "web-shared-data-access-models" 15 | } 16 | -------------------------------------------------------------------------------- /libs/web/shared/data-access/models/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/nav-item'; 2 | export * from './lib/volume-icon'; 3 | export * from './lib/store'; 4 | export * from './lib/api'; -------------------------------------------------------------------------------- /libs/web/shared/data-access/models/src/lib/api/index.ts: -------------------------------------------------------------------------------- 1 | export * from './play-request'; 2 | export * from './user-recent-played-track'; 3 | export * from './audio-analysis-response'; 4 | export * from './playlists-with-route'; 5 | export * from './track-extended'; 6 | export * from './spotify-api-params'; 7 | -------------------------------------------------------------------------------- /libs/web/shared/data-access/models/src/lib/api/play-request.ts: -------------------------------------------------------------------------------- 1 | export interface SpotifyPlayRequestApi { 2 | context_uri?: string; 3 | uris?: string[]; 4 | offset?: { position: number }; 5 | } 6 | -------------------------------------------------------------------------------- /libs/web/shared/data-access/models/src/lib/api/playlists-with-route.ts: -------------------------------------------------------------------------------- 1 | export type PlaylistWithRouteUrl = SpotifyApi.PlaylistObjectSimplified & { 2 | routeUrl: string; 3 | }; 4 | 5 | export type PlaylistsResponseWithRoute = SpotifyApi.PagingObject; 6 | -------------------------------------------------------------------------------- /libs/web/shared/data-access/models/src/lib/api/spotify-api-params.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | export interface SpotifyApiParams { 3 | limit?: any; 4 | offset?: any; 5 | [key: string]: any; 6 | } 7 | -------------------------------------------------------------------------------- /libs/web/shared/data-access/models/src/lib/api/track-extended.ts: -------------------------------------------------------------------------------- 1 | export interface SpotifyArtistExtended extends Spotify.Artist { 2 | artistUrl: string; 3 | } 4 | 5 | export interface SpotifyTrackExtended extends Spotify.Track { 6 | albumUrl: string; 7 | playlistUrl: string; 8 | artists: SpotifyArtistExtended[]; 9 | } 10 | -------------------------------------------------------------------------------- /libs/web/shared/data-access/models/src/lib/api/user-recent-played-track.ts: -------------------------------------------------------------------------------- 1 | export interface SpotifyApiPlayHistoryObject { 2 | track: SpotifyApi.TrackObjectFull; 3 | played_at: string; 4 | context: SpotifyApi.ContextObject; 5 | } 6 | 7 | export type SpotifyApiRecentPlayerTracksResponse = SpotifyApi.CursorBasedPagingObject -------------------------------------------------------------------------------- /libs/web/shared/data-access/models/src/lib/nav-item.ts: -------------------------------------------------------------------------------- 1 | export interface NavItem { 2 | label: string; 3 | path: string; 4 | icon?: string; 5 | iconSelected?: string; 6 | exact?: boolean; 7 | } 8 | -------------------------------------------------------------------------------- /libs/web/shared/data-access/models/src/lib/store/generic-state.ts: -------------------------------------------------------------------------------- 1 | export type GenericStoreStatus = 'pending' | 'loading' | 'success' | 'error'; 2 | 3 | export interface GenericState { 4 | data: T | null; 5 | status: GenericStoreStatus; 6 | error: string | null; 7 | } 8 | -------------------------------------------------------------------------------- /libs/web/shared/data-access/models/src/lib/store/index.ts: -------------------------------------------------------------------------------- 1 | export * from './generic-state'; -------------------------------------------------------------------------------- /libs/web/shared/data-access/models/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../../../tsconfig.base.json", 3 | "files": [], 4 | "include": [], 5 | "references": [ 6 | { 7 | "path": "./tsconfig.lib.json" 8 | }, 9 | { 10 | "path": "./tsconfig.spec.json" 11 | } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /libs/web/shared/data-access/models/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "forceConsistentCasingInFileNames": true, 6 | "strict": true, 7 | "noImplicitReturns": true, 8 | "noFallthroughCasesInSwitch": true 9 | }, 10 | "include": ["**/*.ts"], 11 | "exclude": ["**/*.spec.ts"] 12 | } 13 | -------------------------------------------------------------------------------- /libs/web/shared/data-access/spotify-api/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../../../.eslintrc.json", 3 | "ignorePatterns": ["!**/*"], 4 | "rules": {}, 5 | "overrides": [ 6 | { 7 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], 8 | "rules": {} 9 | }, 10 | { 11 | "files": ["*.ts", "*.tsx"], 12 | "rules": {} 13 | }, 14 | { 15 | "files": ["*.js", "*.jsx"], 16 | "rules": {} 17 | } 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /libs/web/shared/data-access/spotify-api/README.md: -------------------------------------------------------------------------------- 1 | # web-shared-data-access-spotify-api 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-shared-data-access-spotify-api` to execute the unit tests via [Jest](https://jestjs.io). 8 | -------------------------------------------------------------------------------- /libs/web/shared/data-access/spotify-api/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/spotify-api'; 2 | export * from './lib/playlist-api'; 3 | export * from './lib/player-api'; 4 | export * from './lib/browse-api'; 5 | export * from './lib/track-api'; 6 | export * from './lib/album-api'; 7 | export * from './lib/artist-api'; 8 | export * from './lib/search-api'; 9 | -------------------------------------------------------------------------------- /libs/web/shared/data-access/spotify-api/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../../../tsconfig.base.json", 3 | "files": [], 4 | "include": [], 5 | "references": [ 6 | { 7 | "path": "./tsconfig.lib.json" 8 | }, 9 | { 10 | "path": "./tsconfig.spec.json" 11 | } 12 | ], 13 | "compilerOptions": { 14 | "target": "es2020" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /libs/web/shared/data-access/spotify-api/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc" 5 | }, 6 | "include": ["**/*.ts"], 7 | "exclude": ["**/*.spec.ts", "jest.config.ts"] 8 | } 9 | -------------------------------------------------------------------------------- /libs/web/shared/data-access/store/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../../../../.eslintrc.json"], 3 | "ignorePatterns": ["!**/*"], 4 | "rules": {}, 5 | "overrides": [ 6 | { 7 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], 8 | "rules": {} 9 | }, 10 | { 11 | "files": ["*.ts", "*.tsx"], 12 | "rules": {} 13 | }, 14 | { 15 | "files": ["*.js", "*.jsx"], 16 | "rules": {} 17 | } 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /libs/web/shared/data-access/store/README.md: -------------------------------------------------------------------------------- 1 | # web-shared-data-access-store 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-shared-data-access-store` to execute the unit tests via [Jest](https://jestjs.io). 8 | -------------------------------------------------------------------------------- /libs/web/shared/data-access/store/jest.config.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | export default { 3 | displayName: 'web-shared-data-access-store', 4 | preset: '../../../../../jest.preset.js', 5 | globals: { 6 | 'ts-jest': { tsconfig: '/tsconfig.spec.json' } 7 | }, 8 | transform: { 9 | '^.+\\.[tj]sx?$': 'ts-jest' 10 | }, 11 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'], 12 | coverageDirectory: '../../../../../coverage/libs/web/shared/data-access/store' 13 | }; 14 | -------------------------------------------------------------------------------- /libs/web/shared/data-access/store/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/ui'; 2 | export * from './lib/playback'; 3 | -------------------------------------------------------------------------------- /libs/web/shared/data-access/store/src/lib/playback/index.ts: -------------------------------------------------------------------------------- 1 | export * from './playback.store'; 2 | export * from './playback.service'; 3 | -------------------------------------------------------------------------------- /libs/web/shared/data-access/store/src/lib/ui/index.ts: -------------------------------------------------------------------------------- 1 | export * from './ui-store'; 2 | -------------------------------------------------------------------------------- /libs/web/shared/data-access/store/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../../../tsconfig.base.json", 3 | "files": [], 4 | "include": [], 5 | "references": [ 6 | { 7 | "path": "./tsconfig.lib.json" 8 | }, 9 | { 10 | "path": "./tsconfig.spec.json" 11 | } 12 | ], 13 | "compilerOptions": { 14 | "target": "es2020" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /libs/web/shared/data-access/store/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "forceConsistentCasingInFileNames": true, 6 | "strict": true, 7 | "noImplicitReturns": true, 8 | "noFallthroughCasesInSwitch": true 9 | }, 10 | "include": ["**/*.ts"], 11 | "exclude": ["**/*.spec.ts", "**/*.test.ts", "jest.config.ts"] 12 | } 13 | -------------------------------------------------------------------------------- /libs/web/shared/directives/click-stop-propagation/README.md: -------------------------------------------------------------------------------- 1 | # web-shared-directives-click-stop-propagation 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | -------------------------------------------------------------------------------- /libs/web/shared/directives/click-stop-propagation/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/click-stop-propagation.module'; 2 | -------------------------------------------------------------------------------- /libs/web/shared/directives/click-stop-propagation/src/lib/click-stop-propagation.directive.ts: -------------------------------------------------------------------------------- 1 | import { Directive, HostListener } from '@angular/core'; 2 | 3 | @Directive({ 4 | selector: '[asClickStopPropagation]' 5 | }) 6 | export class ClickStopPropagationDirective { 7 | @HostListener('click', ['$event']) onClick(e: MouseEvent) { 8 | e.preventDefault(); 9 | e.stopPropagation(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /libs/web/shared/directives/click-stop-propagation/src/lib/click-stop-propagation.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | import { ClickStopPropagationDirective } from './click-stop-propagation.directive'; 4 | 5 | @NgModule({ 6 | imports: [CommonModule], 7 | declarations: [ClickStopPropagationDirective], 8 | exports: [ClickStopPropagationDirective] 9 | }) 10 | export class ClickStopPropagationModule {} 11 | -------------------------------------------------------------------------------- /libs/web/shared/directives/data-size-observer/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../../../../.eslintrc.json"], 3 | "ignorePatterns": ["!**/*"], 4 | "overrides": [ 5 | { 6 | "files": ["*.ts"], 7 | "extends": [ 8 | "plugin:@nrwl/nx/angular", 9 | "plugin:@angular-eslint/template/process-inline-templates" 10 | ] 11 | }, 12 | { 13 | "files": ["*.html"], 14 | "extends": ["plugin:@nrwl/nx/angular-template"], 15 | "rules": {} 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /libs/web/shared/directives/data-size-observer/README.md: -------------------------------------------------------------------------------- 1 | # web-shared-directives-data-size-observer 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-shared-directives-data-size-observer` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/shared/directives/data-size-observer/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/data-size-observer.directive' 2 | export * from './lib/resizeable.directive' 3 | -------------------------------------------------------------------------------- /libs/web/shared/directives/data-size-observer/src/lib/resizeable.directive.ts: -------------------------------------------------------------------------------- 1 | import { Directive, HostBinding } from '@angular/core'; 2 | 3 | @Directive({ 4 | standalone: true, 5 | selector: '[resizable]' 6 | }) 7 | export class ResizableDirective { 8 | @HostBinding('class') className = 'overflow-auto resize-x'; 9 | } 10 | -------------------------------------------------------------------------------- /libs/web/shared/directives/data-size-observer/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | -------------------------------------------------------------------------------- /libs/web/shared/directives/data-size-observer/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "declaration": true, 6 | "declarationMap": true, 7 | "inlineSources": true, 8 | "types": [] 9 | }, 10 | "exclude": ["src/**/*.spec.ts", "src/test-setup.ts", "jest.config.ts", "src/**/*.test.ts"], 11 | "include": ["src/**/*.ts"] 12 | } 13 | -------------------------------------------------------------------------------- /libs/web/shared/directives/data-size-observer/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "target": "es2016", 7 | "types": ["jest", "node"] 8 | }, 9 | "files": ["src/test-setup.ts"], 10 | "include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"] 11 | } 12 | -------------------------------------------------------------------------------- /libs/web/shared/pipes/duration-pipe/README.md: -------------------------------------------------------------------------------- 1 | # web-shared-pipes-duration-pipe 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-shared-pipes-duration-pipe` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/shared/pipes/duration-pipe/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/duration-pipe.module'; 2 | -------------------------------------------------------------------------------- /libs/web/shared/pipes/duration-pipe/src/lib/duration-pipe.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | import { DurationPipe } from './duration.pipe'; 4 | 5 | @NgModule({ 6 | imports: [CommonModule], 7 | declarations: [DurationPipe], 8 | exports: [DurationPipe] 9 | }) 10 | export class DurationPipeModule {} 11 | -------------------------------------------------------------------------------- /libs/web/shared/pipes/duration-pipe/src/lib/duration.pipe.ts: -------------------------------------------------------------------------------- 1 | import { Pipe, PipeTransform } from '@angular/core'; 2 | import { TimeUtil } from '@angular-spotify/web/shared/utils'; 3 | @Pipe({ 4 | name: 'duration' 5 | }) 6 | export class DurationPipe implements PipeTransform { 7 | transform(durationInMs: number | null): string { 8 | if (!durationInMs) { 9 | return ''; 10 | } 11 | return TimeUtil.formatDuration(durationInMs); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /libs/web/shared/pipes/duration-pipe/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/shared/pipes/duration-pipe/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/README.md: -------------------------------------------------------------------------------- 1 | # web-shared-ui-icon 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-shared-ui-icon` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/icon.module'; 2 | -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/assets/caret-down-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/assets/clock.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/assets/compass-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/assets/compass.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/assets/cup-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/assets/cup.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/assets/heart-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/assets/heart.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/assets/home.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/assets/house-door-fill.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/assets/house-door.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/assets/music-note-beamed.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/assets/pause.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/assets/play.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/assets/search-heart.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/assets/search.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/assets/step-backward.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/assets/step-forward.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/assets/times.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/assets/volume-high.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/assets/volume-medium.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/assets/volume-mute.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/svg/caret-down-fill.ts: -------------------------------------------------------------------------------- 1 | export const asCaretDownFillIcon = { 2 | data: ``, 3 | name: 'caret-down-fill' 4 | }; -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/svg/clock.ts: -------------------------------------------------------------------------------- 1 | export const asClockIcon = { 2 | data: ``, 3 | name: 'clock' 4 | }; -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/svg/compass-fill.ts: -------------------------------------------------------------------------------- 1 | export const asCompassFillIcon = { 2 | data: ``, 3 | name: 'compass-fill' 4 | }; -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/svg/compass.ts: -------------------------------------------------------------------------------- 1 | export const asCompassIcon = { 2 | data: ``, 3 | name: 'compass' 4 | }; -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/svg/cup-fill.ts: -------------------------------------------------------------------------------- 1 | export const asCupFillIcon = { 2 | data: ``, 3 | name: 'cup-fill' 4 | }; -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/svg/cup.ts: -------------------------------------------------------------------------------- 1 | export const asCupIcon = { 2 | data: ``, 3 | name: 'cup' 4 | }; -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/svg/heart-fill.ts: -------------------------------------------------------------------------------- 1 | export const asHeartFillIcon = { 2 | data: ``, 3 | name: 'heart-fill' 4 | }; -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/svg/pause.ts: -------------------------------------------------------------------------------- 1 | export const asPauseIcon = { 2 | data: ``, 3 | name: 'pause' 4 | }; -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/svg/play.ts: -------------------------------------------------------------------------------- 1 | export const asPlayIcon = { 2 | data: ``, 3 | name: 'play' 4 | }; -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/svg/search.ts: -------------------------------------------------------------------------------- 1 | export const asSearchIcon = { 2 | data: ``, 3 | name: 'search' 4 | }; -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/svg/step-backward.ts: -------------------------------------------------------------------------------- 1 | export const asStepBackwardIcon = { 2 | data: ``, 3 | name: 'step-backward' 4 | }; -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/svg/step-forward.ts: -------------------------------------------------------------------------------- 1 | export const asStepForwardIcon = { 2 | data: ``, 3 | name: 'step-forward' 4 | }; -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/svg/times.ts: -------------------------------------------------------------------------------- 1 | export const asTimesIcon = { 2 | data: ``, 3 | name: 'times' 4 | }; -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/svg/volume-high.ts: -------------------------------------------------------------------------------- 1 | export const asVolumeHighIcon = { 2 | data: ``, 3 | name: 'volume-high' 4 | }; -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/svg/volume-medium.ts: -------------------------------------------------------------------------------- 1 | export const asVolumeMediumIcon = { 2 | data: ``, 3 | name: 'volume-medium' 4 | }; -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/lib/svg/volume-mute.ts: -------------------------------------------------------------------------------- 1 | export const asVolumeMuteIcon = { 2 | data: ``, 3 | name: 'volume-mute' 4 | }; -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/shared/ui/icon/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/shared/ui/input/README.md: -------------------------------------------------------------------------------- 1 | # web-shared-ui-input 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-shared-ui-input` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/shared/ui/input/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/input.module'; 2 | -------------------------------------------------------------------------------- /libs/web/shared/ui/input/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/shared/ui/input/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/shared/ui/media-cover/README.md: -------------------------------------------------------------------------------- 1 | # web-shared-ui-album-cover 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | -------------------------------------------------------------------------------- /libs/web/shared/ui/media-cover/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/media-cover.module'; 2 | -------------------------------------------------------------------------------- /libs/web/shared/ui/media-cover/src/lib/media-cover.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | width: 100%; 3 | padding-bottom: 100%; 4 | position: relative; 5 | background-color: #333; 6 | background-position: center; 7 | background-size: cover; 8 | box-shadow: 0 8px 24px rgb(0 0 0 / 50%); 9 | } 10 | -------------------------------------------------------------------------------- /libs/web/shared/ui/media-cover/src/lib/media-cover.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | import { MediaCoverComponent } from './media-cover.component'; 4 | 5 | @NgModule({ 6 | imports: [CommonModule], 7 | declarations: [MediaCoverComponent], 8 | exports: [MediaCoverComponent] 9 | }) 10 | export class MediaCoverModule {} 11 | -------------------------------------------------------------------------------- /libs/web/shared/ui/media-order/README.md: -------------------------------------------------------------------------------- 1 | # web-shared-ui-media-order 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-shared-ui-media-order` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/shared/ui/media-order/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/media-order.module'; 2 | -------------------------------------------------------------------------------- /libs/web/shared/ui/media-order/src/lib/media-order.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | display: block; 3 | } 4 | 5 | .animated-equalizer { 6 | width: 16px; 7 | } 8 | -------------------------------------------------------------------------------- /libs/web/shared/ui/media-order/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/shared/ui/media-order/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/shared/ui/media-summary/README.md: -------------------------------------------------------------------------------- 1 | # web-shared-ui-album-summary 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | -------------------------------------------------------------------------------- /libs/web/shared/ui/media-summary/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/media-summary.module'; 2 | -------------------------------------------------------------------------------- /libs/web/shared/ui/media-summary/src/lib/media-summary.module.ts: -------------------------------------------------------------------------------- 1 | import { CommonModule } from '@angular/common'; 2 | import { NgModule } from '@angular/core'; 3 | import { MediaCoverModule } from '@angular-spotify/web/shared/ui/media-cover'; 4 | import { MediaSummaryComponent } from './media-summary.component'; 5 | 6 | @NgModule({ 7 | imports: [CommonModule, MediaCoverModule], 8 | declarations: [MediaSummaryComponent], 9 | exports: [MediaSummaryComponent] 10 | }) 11 | export class MediaSummaryModule {} 12 | -------------------------------------------------------------------------------- /libs/web/shared/ui/media-table/README.md: -------------------------------------------------------------------------------- 1 | # web-shared-ui-media-table 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-shared-ui-media-table` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/shared/ui/media-table/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/media-table.module'; 2 | -------------------------------------------------------------------------------- /libs/web/shared/ui/media-table/src/lib/media-table-header/media-table-header.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 |
5 |
-------------------------------------------------------------------------------- /libs/web/shared/ui/media-table/src/lib/media-table-header/media-table-header.component.scss: -------------------------------------------------------------------------------- 1 | .playlist-tracks-header { 2 | border-bottom-width: 1px; 3 | border-bottom-style: solid; 4 | z-index: 2; 5 | @apply border-white border-opacity-10 pb-4 px-4 mb-4; 6 | } 7 | -------------------------------------------------------------------------------- /libs/web/shared/ui/media-table/src/lib/media-table-header/media-table-header.component.ts: -------------------------------------------------------------------------------- 1 | import { ChangeDetectionStrategy, Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'as-media-table-header', 5 | templateUrl: './media-table-header.component.html', 6 | styleUrls: ['./media-table-header.component.scss'], 7 | changeDetection: ChangeDetectionStrategy.OnPush 8 | }) 9 | export class MediaTableHeaderComponent { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /libs/web/shared/ui/media-table/src/lib/media-table-row/media-table-row.component.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /libs/web/shared/ui/media-table/src/lib/media-table-row/media-table-row.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | @apply items-center px-4 cursor-pointer h-14 hover:bg-white hover:bg-opacity-10; 3 | } 4 | -------------------------------------------------------------------------------- /libs/web/shared/ui/media-table/src/lib/media-table-row/media-table-row.component.ts: -------------------------------------------------------------------------------- 1 | import { ChangeDetectionStrategy, Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'as-media-table-row', 5 | templateUrl: './media-table-row.component.html', 6 | styleUrls: ['./media-table-row.component.scss'], 7 | changeDetection: ChangeDetectionStrategy.OnPush 8 | }) 9 | export class MediaTableRowComponent { 10 | 11 | } 12 | -------------------------------------------------------------------------------- /libs/web/shared/ui/media-table/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/shared/ui/media-table/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/shared/ui/media/README.md: -------------------------------------------------------------------------------- 1 | # web-shared-ui-album 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | -------------------------------------------------------------------------------- /libs/web/shared/ui/media/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/card.component'; 2 | -------------------------------------------------------------------------------- /libs/web/shared/ui/play-button/README.md: -------------------------------------------------------------------------------- 1 | # web-shared-ui-play-button 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | -------------------------------------------------------------------------------- /libs/web/shared/ui/play-button/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/play-button.module'; 2 | -------------------------------------------------------------------------------- /libs/web/shared/ui/playlist-list/README.md: -------------------------------------------------------------------------------- 1 | # web-shared-ui-playlist-list 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-shared-ui-playlist-list` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/shared/ui/playlist-list/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/playlist-list.module'; 2 | -------------------------------------------------------------------------------- /libs/web/shared/ui/playlist-list/src/lib/playlist-list.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /libs/web/shared/ui/playlist-list/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/shared/ui/playlist-list/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/shared/ui/spinner/README.md: -------------------------------------------------------------------------------- 1 | # web-shared-ui-spinner 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-shared-ui-spinner` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/shared/ui/spinner/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/spinner.module'; 2 | -------------------------------------------------------------------------------- /libs/web/shared/ui/spinner/src/lib/spinner.component.html: -------------------------------------------------------------------------------- 1 |
2 | 4 |
-------------------------------------------------------------------------------- /libs/web/shared/ui/spinner/src/lib/spinner.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /libs/web/shared/ui/spinner/src/lib/spinner.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, ChangeDetectionStrategy, Input } from '@angular/core'; 2 | import { SVG_CONFIG } from '@ngneat/svg-icon/lib/types'; 3 | 4 | @Component({ 5 | selector: 'as-spinner', 6 | templateUrl: './spinner.component.html', 7 | styleUrls: ['./spinner.component.scss'], 8 | changeDetection: ChangeDetectionStrategy.OnPush 9 | }) 10 | export class SpinnerComponent { 11 | @Input() size: keyof SVG_CONFIG['sizes'] = 'xl'; 12 | } 13 | -------------------------------------------------------------------------------- /libs/web/shared/ui/spinner/src/lib/spinner.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | import { SpinnerComponent } from './spinner.component'; 4 | import {SvgIconsModule} from '@ngneat/svg-icon'; 5 | 6 | @NgModule({ 7 | imports: [CommonModule, SvgIconsModule], 8 | declarations: [SpinnerComponent], 9 | exports: [SpinnerComponent] 10 | }) 11 | export class SpinnerModule {} 12 | -------------------------------------------------------------------------------- /libs/web/shared/ui/spinner/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/shared/ui/spinner/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/shared/ui/track-current-info/README.md: -------------------------------------------------------------------------------- 1 | # web-shared-ui-track-current-info 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | -------------------------------------------------------------------------------- /libs/web/shared/ui/track-current-info/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/track-current-info.module'; 2 | -------------------------------------------------------------------------------- /libs/web/shared/ui/track-current-info/src/lib/track-current-info.component.css: -------------------------------------------------------------------------------- 1 | :host { 2 | @apply flex items-center; 3 | } 4 | 5 | .track-cover { 6 | width: 40px; 7 | display: flex; 8 | flex-shrink: 0; 9 | user-select: none; 10 | @apply mr-4; 11 | } 12 | -------------------------------------------------------------------------------- /libs/web/shared/ui/track-main-info/README.md: -------------------------------------------------------------------------------- 1 | # web-shared-ui-track-main-info 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | -------------------------------------------------------------------------------- /libs/web/shared/ui/track-main-info/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/track-main-info.module'; 2 | -------------------------------------------------------------------------------- /libs/web/shared/ui/track-main-info/src/lib/track-main-info.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | @apply flex items-center gap-4; 3 | } 4 | 5 | .track-cover { 6 | display: flex; 7 | flex-shrink: 0; 8 | width: 40px; 9 | user-select: none; 10 | } 11 | 12 | .comma-separator { 13 | user-select: none; 14 | } 15 | -------------------------------------------------------------------------------- /libs/web/shared/ui/tracks-loading/README.md: -------------------------------------------------------------------------------- 1 | # web-shared-ui-tracks-loading 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-shared-ui-tracks-loading` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/shared/ui/tracks-loading/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/tracks-loading.component'; 2 | export * from './lib/skeleton.component'; 3 | -------------------------------------------------------------------------------- /libs/web/shared/ui/tracks-loading/src/lib/skeleton.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, HostBinding, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'as-skeleton', 5 | template: ``, 6 | standalone: true 7 | }) 8 | export class SkeletonComponent { 9 | @Input() pulse = true; 10 | @HostBinding('class') class = `bg-highlight text-transparent rounded-sm block`; 11 | } 12 | -------------------------------------------------------------------------------- /libs/web/shared/ui/tracks-loading/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/shared/ui/tracks-loading/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/shared/ui/work-in-progress/README.md: -------------------------------------------------------------------------------- 1 | # web-shared-ui-work-in-progress 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-shared-ui-work-in-progress` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/shared/ui/work-in-progress/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/work-in-progress.module'; 2 | -------------------------------------------------------------------------------- /libs/web/shared/ui/work-in-progress/src/lib/work-in-progress.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /libs/web/shared/ui/work-in-progress/src/lib/work-in-progress.component.ts: -------------------------------------------------------------------------------- 1 | import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'as-work-in-progress', 5 | templateUrl: './work-in-progress.component.html', 6 | styleUrls: ['./work-in-progress.component.scss'], 7 | changeDetection: ChangeDetectionStrategy.OnPush 8 | }) 9 | export class WorkInProgressComponent { 10 | @Input() featureName = ''; 11 | } 12 | -------------------------------------------------------------------------------- /libs/web/shared/ui/work-in-progress/src/lib/work-in-progress.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | import { WorkInProgressComponent } from './work-in-progress.component'; 4 | 5 | @NgModule({ 6 | imports: [CommonModule], 7 | declarations: [WorkInProgressComponent], 8 | exports: [WorkInProgressComponent] 9 | }) 10 | export class WorkInProgressModule {} 11 | -------------------------------------------------------------------------------- /libs/web/shared/ui/work-in-progress/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/shared/ui/work-in-progress/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/shared/utils/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../../.eslintrc.json", 3 | "ignorePatterns": ["!**/*"], 4 | "rules": {}, 5 | "overrides": [ 6 | { 7 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], 8 | "rules": {} 9 | }, 10 | { 11 | "files": ["*.ts", "*.tsx"], 12 | "rules": {} 13 | }, 14 | { 15 | "files": ["*.js", "*.jsx"], 16 | "rules": {} 17 | } 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /libs/web/shared/utils/README.md: -------------------------------------------------------------------------------- 1 | # web-util 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-util` to execute the unit tests via [Jest](https://jestjs.io). 8 | -------------------------------------------------------------------------------- /libs/web/shared/utils/jest.config.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | export default { 3 | displayName: 'web-shared-utils', 4 | preset: '../../../../jest.preset.js', 5 | globals: { 6 | 'ts-jest': { tsconfig: '/tsconfig.spec.json' } 7 | }, 8 | transform: { 9 | '^.+\\.[tj]sx?$': 'ts-jest' 10 | }, 11 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'], 12 | coverageDirectory: '../../../../coverage/libs/web/shared/utils' 13 | }; 14 | -------------------------------------------------------------------------------- /libs/web/shared/utils/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/router-util'; 2 | export * from './lib/route-util'; 3 | export * from './lib/time-util'; 4 | export * from './lib/string-util'; 5 | export * from './lib/selector-util'; 6 | export * from './lib/guards'; 7 | -------------------------------------------------------------------------------- /libs/web/shared/utils/src/lib/guards.ts: -------------------------------------------------------------------------------- 1 | import { RouterUtil } from './router-util'; 2 | import { inject } from '@angular/core'; 3 | import { ActivatedRouteSnapshot, Router } from '@angular/router'; 4 | 5 | export function redirectAlbumDetailGuard(next: ActivatedRouteSnapshot) { 6 | const router = inject(Router); 7 | const albumId = next.paramMap.get(RouterUtil.Configuration.AlbumId); 8 | router.navigate([RouterUtil.Configuration.Albums, albumId]); 9 | return true; 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/shared/utils/src/lib/router-util.ts: -------------------------------------------------------------------------------- 1 | export class RouterUtil { 2 | static Configuration = { 3 | Playlist: 'playlist', 4 | PlaylistId: 'playlistId', 5 | Albums: 'albums', 6 | AlbumId: 'albumId', 7 | Artist: 'artist', 8 | ArtistId: 'artistId', 9 | Visualizer: 'visualizer', 10 | Browse: 'browse', 11 | CategoryId: 'categoryId', 12 | SearchQueryParam: 'q' 13 | }; 14 | } 15 | -------------------------------------------------------------------------------- /libs/web/shared/utils/src/lib/string-util.ts: -------------------------------------------------------------------------------- 1 | export class StringUtil { 2 | static getIdFromUri(uri: string) { 3 | const ids = uri.split(':'); 4 | return ids[ids.length - 1]; 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /libs/web/shared/utils/src/lib/time-util.ts: -------------------------------------------------------------------------------- 1 | export class TimeUtil { 2 | static pad(num: number, length = 2) { 3 | return `${num}`.padStart(length, '0'); 4 | } 5 | 6 | static formatDuration(durationInMs: number) { 7 | const minutes = Math.floor(durationInMs / 60000); 8 | const seconds = Math.floor((durationInMs % 60000) / 1000); 9 | if (seconds === 60) { 10 | return `${minutes + 1}:00`; 11 | } 12 | return `${minutes}:${this.pad(seconds)}`; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /libs/web/shared/utils/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../../tsconfig.base.json", 3 | "files": [], 4 | "include": [], 5 | "references": [ 6 | { 7 | "path": "./tsconfig.lib.json" 8 | }, 9 | { 10 | "path": "./tsconfig.spec.json" 11 | } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /libs/web/shared/utils/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "forceConsistentCasingInFileNames": true, 6 | "strict": true, 7 | "noImplicitReturns": true, 8 | "noFallthroughCasesInSwitch": true 9 | }, 10 | "include": ["**/*.ts"], 11 | "exclude": ["**/*.spec.ts", "**/*.test.ts", "jest.config.ts"] 12 | } 13 | -------------------------------------------------------------------------------- /libs/web/shared/utils/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "include": [ 9 | "**/*.spec.ts", 10 | "**/*.test.ts", 11 | "**/*.spec.tsx", 12 | "**/*.test.tsx", 13 | "**/*.spec.js", 14 | "**/*.test.js", 15 | "**/*.spec.jsx", 16 | "**/*.test.jsx", 17 | "**/*.d.ts", 18 | "jest.config.ts" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /libs/web/shell/feature/README.md: -------------------------------------------------------------------------------- 1 | # web-shell 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-shell` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/shell/feature/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/web-shell.module'; 2 | -------------------------------------------------------------------------------- /libs/web/shell/feature/src/lib/build-specifics/index.prod.ts: -------------------------------------------------------------------------------- 1 | export const extModules = []; 2 | -------------------------------------------------------------------------------- /libs/web/shell/feature/src/lib/build-specifics/index.ts: -------------------------------------------------------------------------------- 1 | import { StoreDevtoolsModule } from '@ngrx/store-devtools'; 2 | 3 | export const extModules = [ 4 | StoreDevtoolsModule.instrument({ 5 | maxAge: 25 6 | }) 7 | ]; 8 | -------------------------------------------------------------------------------- /libs/web/shell/feature/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/shell/feature/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/shell/ui/album-art-overlay/README.md: -------------------------------------------------------------------------------- 1 | # web-shell-ui-album-art-overlay 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-shell-ui-album-art-overlay` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/shell/ui/album-art-overlay/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/album-art-overlay.module'; 2 | -------------------------------------------------------------------------------- /libs/web/shell/ui/album-art-overlay/src/lib/album-art-overlay.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /libs/web/shell/ui/album-art-overlay/src/lib/album-art-overlay.component.scss: -------------------------------------------------------------------------------- 1 | #bg-overlay { 2 | position: fixed; 3 | top: 0; 4 | left: 0; 5 | width: 100vw; 6 | height: 100vh; 7 | z-index: 10000; 8 | overflow: hidden; 9 | pointer-events: none; 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/shell/ui/album-art-overlay/src/lib/album-art-overlay.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | import { AlbumArtOverlayComponent } from './album-art-overlay.component'; 4 | 5 | @NgModule({ 6 | imports: [CommonModule], 7 | declarations: [AlbumArtOverlayComponent], 8 | exports: [AlbumArtOverlayComponent] 9 | }) 10 | export class AlbumArtOverlayModule {} 11 | -------------------------------------------------------------------------------- /libs/web/shell/ui/album-art-overlay/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/shell/ui/album-art-overlay/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/shell/ui/layout/README.md: -------------------------------------------------------------------------------- 1 | # web-layout 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-layout` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/shell/ui/layout/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/web-layout.module'; 2 | export * from './lib/layout.component'; 3 | -------------------------------------------------------------------------------- /libs/web/shell/ui/layout/src/lib/layout.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /libs/web/shell/ui/layout/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/shell/ui/layout/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/shell/ui/main-view/README.md: -------------------------------------------------------------------------------- 1 | # web-shared-ui-main-view 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-shared-ui-main-view` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/shell/ui/main-view/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/main-view.module'; 2 | -------------------------------------------------------------------------------- /libs/web/shell/ui/main-view/src/lib/main-view.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 |
5 | -------------------------------------------------------------------------------- /libs/web/shell/ui/main-view/src/lib/main-view.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | grid-area: main-view; 3 | width: 100%; 4 | transition: background 1s ease; 5 | @apply flex flex-col overflow-auto bg-baseline rounded-lg; 6 | } 7 | 8 | .sticky-top-scroll { 9 | position: sticky; 10 | top: 0; 11 | @apply h-topBar; 12 | } 13 | 14 | .main-view { 15 | scroll-behavior: smooth; 16 | @apply flex flex-col flex-1 overflow-auto; 17 | } 18 | -------------------------------------------------------------------------------- /libs/web/shell/ui/main-view/src/lib/main-view.component.ts: -------------------------------------------------------------------------------- 1 | import { ChangeDetectionStrategy, Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'as-main-view', 5 | templateUrl: './main-view.component.html', 6 | styleUrls: ['./main-view.component.scss'], 7 | changeDetection: ChangeDetectionStrategy.OnPush 8 | }) 9 | export class MainViewComponent {} 10 | -------------------------------------------------------------------------------- /libs/web/shell/ui/main-view/src/lib/main-view.module.ts: -------------------------------------------------------------------------------- 1 | import { NgModule } from '@angular/core'; 2 | import { CommonModule } from '@angular/common'; 3 | import { MainViewComponent } from './main-view.component'; 4 | import { RouterModule } from '@angular/router'; 5 | 6 | @NgModule({ 7 | imports: [CommonModule, RouterModule], 8 | declarations: [MainViewComponent], 9 | exports: [MainViewComponent] 10 | }) 11 | export class MainViewModule {} 12 | -------------------------------------------------------------------------------- /libs/web/shell/ui/main-view/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/shell/ui/main-view/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/shell/ui/nav-bar/README.md: -------------------------------------------------------------------------------- 1 | # web-shared-ui-nav-bar 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-shared-ui-nav-bar` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/shell/ui/nav-bar/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/nav-bar.module'; 2 | -------------------------------------------------------------------------------- /libs/web/shell/ui/nav-bar/src/lib/nav-bar.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | grid-area: nav-bar; 3 | z-index: 3; 4 | min-height: 0; 5 | resize: horizontal; 6 | overflow-x: auto; 7 | min-width: 200px; 8 | 9 | @apply w-navBar flex flex-col pt-4 bg-baseline rounded-lg; 10 | } 11 | 12 | .nav-link-container { 13 | .nav-link { 14 | border-radius: 4px; 15 | height: 40px; 16 | 17 | &.active { 18 | @apply text-white bg-highlight; 19 | font-weight: 600; 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /libs/web/shell/ui/nav-bar/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/shell/ui/nav-bar/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/shell/ui/nav-links/README.md: -------------------------------------------------------------------------------- 1 | # web-shared-ui-nav-bar-playlist 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-shared-ui-nav-bar-playlist` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/shell/ui/nav-links/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/nav-links.module'; 2 | -------------------------------------------------------------------------------- /libs/web/shell/ui/nav-links/src/lib/nav-link/nav-link.component.scss: -------------------------------------------------------------------------------- 1 | .nav-link { 2 | @apply relative px-6 py-2 grid grid-cols-[40px_1fr] gap-4 items-center hover:bg-highlight transition-all; 3 | 4 | &.active { 5 | @apply text-white bg-highlight; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /libs/web/shell/ui/nav-links/src/lib/nav-links.component.html: -------------------------------------------------------------------------------- 1 |
2 |
    3 |
  • 4 | 5 |
  • 6 |
7 | 8 | -------------------------------------------------------------------------------- /libs/web/shell/ui/nav-links/src/lib/nav-links.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | @apply pt-4 flex flex-col min-h-0; 3 | } 4 | -------------------------------------------------------------------------------- /libs/web/shell/ui/nav-links/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/shell/ui/nav-links/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/shell/ui/now-playing-bar/README.md: -------------------------------------------------------------------------------- 1 | # web-shared-ui-now-playing-bar 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | -------------------------------------------------------------------------------- /libs/web/shell/ui/now-playing-bar/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/now-playing-bar.module'; 2 | -------------------------------------------------------------------------------- /libs/web/shell/ui/now-playing-bar/src/lib/now-playing-bar.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | grid-area: now-playing-bar; 3 | width: 100%; 4 | z-index: 4; 5 | } 6 | 7 | .now-playing-bar-container { 8 | display: grid; 9 | grid-template-columns: minmax(180px, 3fr) minmax(200px, 4fr) minmax(240px, 3fr); 10 | @apply px-4 items-center h-nowPlayingBar; 11 | } 12 | -------------------------------------------------------------------------------- /libs/web/shell/ui/now-playing-bar/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../../../tsconfig.base.json", 3 | "files": [], 4 | "include": [], 5 | "references": [ 6 | { 7 | "path": "./tsconfig.lib.json" 8 | } 9 | ], 10 | "compilerOptions": { 11 | "target": "es2020" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /libs/web/shell/ui/player-controls/README.md: -------------------------------------------------------------------------------- 1 | # web-shared-ui-now-playing-bar-center 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | -------------------------------------------------------------------------------- /libs/web/shell/ui/player-controls/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/player-controls.module'; 2 | -------------------------------------------------------------------------------- /libs/web/shell/ui/player-controls/src/lib/player-controls.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 |
5 | 6 | 7 |
8 | 9 |
10 |
11 | -------------------------------------------------------------------------------- /libs/web/shell/ui/player-controls/src/lib/player-controls.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /libs/web/shell/ui/player-playback/README.md: -------------------------------------------------------------------------------- 1 | # web-shared-ui-player-playback 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | -------------------------------------------------------------------------------- /libs/web/shell/ui/player-playback/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/player-playback.module'; 2 | -------------------------------------------------------------------------------- /libs/web/shell/ui/player-playback/src/lib/player-playback.component.html: -------------------------------------------------------------------------------- 1 | {{ progress$ | async | duration }} 2 | 10 | 11 | 12 | {{ max$ | async | duration }} 13 | 14 | -------------------------------------------------------------------------------- /libs/web/shell/ui/player-playback/src/lib/player-playback.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | @apply flex items-center justify-between mx-4; 3 | } 4 | 5 | .timer-duration { 6 | transition: all 0.2s; 7 | @apply text-xs text-white text-opacity-60; 8 | } 9 | -------------------------------------------------------------------------------- /libs/web/shell/ui/player-volume/README.md: -------------------------------------------------------------------------------- 1 | # web-shared-ui-player-volume 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | -------------------------------------------------------------------------------- /libs/web/shell/ui/player-volume/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/player-volume.module'; 2 | -------------------------------------------------------------------------------- /libs/web/shell/ui/player-volume/src/lib/player-volume.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | @apply flex items-center; 3 | } 4 | 5 | .volume-slider { 6 | max-width: 120px; 7 | min-width: 120px; 8 | } 9 | -------------------------------------------------------------------------------- /libs/web/shell/ui/social-share/README.md: -------------------------------------------------------------------------------- 1 | # web-shell-ui-social-share 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-shell-ui-social-share` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/shell/ui/social-share/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/social-share.module'; 2 | -------------------------------------------------------------------------------- /libs/web/shell/ui/social-share/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/shell/ui/social-share/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/shell/ui/top-bar/README.md: -------------------------------------------------------------------------------- 1 | # web-shared-ui-top-bar 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-shared-ui-top-bar` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/shell/ui/top-bar/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/top-bar.module'; 2 | -------------------------------------------------------------------------------- /libs/web/shell/ui/top-bar/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/shell/ui/top-bar/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/shell/ui/user-dropdown/README.md: -------------------------------------------------------------------------------- 1 | # web-shell-ui-user-dropdown 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-shell-ui-user-dropdown` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/shell/ui/user-dropdown/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/user-dropdown.module'; 2 | -------------------------------------------------------------------------------- /libs/web/shell/ui/user-dropdown/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/shell/ui/user-dropdown/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/shell/ui/visualization-toggle/README.md: -------------------------------------------------------------------------------- 1 | # web-shell-ui-visualization-toggle 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-shell-ui-visualization-toggle` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/shell/ui/visualization-toggle/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/visualization-toggle.module'; 2 | -------------------------------------------------------------------------------- /libs/web/shell/ui/visualization-toggle/src/lib/visualization-toggle.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/shell/ui/visualization-toggle/src/lib/visualization-toggle.component.scss -------------------------------------------------------------------------------- /libs/web/shell/ui/visualization-toggle/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/shell/ui/visualization-toggle/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/tracks/data-access/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [["@nrwl/web/babel", { "useBuiltIns": "usage" }]] 3 | } 4 | -------------------------------------------------------------------------------- /libs/web/tracks/data-access/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../../../.eslintrc.json"], 3 | "ignorePatterns": ["!**/*"], 4 | "overrides": [ 5 | { 6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], 7 | "rules": {} 8 | }, 9 | { 10 | "files": ["*.ts", "*.tsx"], 11 | "rules": {} 12 | }, 13 | { 14 | "files": ["*.js", "*.jsx"], 15 | "rules": {} 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /libs/web/tracks/data-access/README.md: -------------------------------------------------------------------------------- 1 | # web-tracks-data-access 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-tracks-data-access` to execute the unit tests via [Jest](https://jestjs.io). 8 | -------------------------------------------------------------------------------- /libs/web/tracks/data-access/jest.config.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | export default { 3 | displayName: 'web-tracks-data-access', 4 | preset: '../../../../jest.preset.js', 5 | globals: { 6 | 'ts-jest': { tsconfig: '/tsconfig.spec.json' } 7 | }, 8 | transform: { 9 | '^.+\\.[tj]sx?$': 'ts-jest' 10 | }, 11 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'], 12 | coverageDirectory: '../../../../coverage/libs/web/tracks/data-access' 13 | }; 14 | -------------------------------------------------------------------------------- /libs/web/tracks/data-access/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib'; -------------------------------------------------------------------------------- /libs/web/tracks/data-access/src/lib/index.ts: -------------------------------------------------------------------------------- 1 | export * from './store'; -------------------------------------------------------------------------------- /libs/web/tracks/data-access/src/lib/store/index.ts: -------------------------------------------------------------------------------- 1 | export * from './tracks.store'; 2 | -------------------------------------------------------------------------------- /libs/web/tracks/data-access/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../../tsconfig.base.json", 3 | "files": [], 4 | "include": [], 5 | "references": [ 6 | { 7 | "path": "./tsconfig.lib.json" 8 | }, 9 | { 10 | "path": "./tsconfig.spec.json" 11 | } 12 | ], 13 | "compilerOptions": { 14 | "target": "es2020" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /libs/web/tracks/data-access/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "forceConsistentCasingInFileNames": true, 6 | "strict": true, 7 | "noImplicitReturns": true, 8 | "noFallthroughCasesInSwitch": true 9 | }, 10 | "include": ["**/*.ts"], 11 | "exclude": ["**/*.spec.ts", "**/*.test.ts", "jest.config.ts"] 12 | } 13 | -------------------------------------------------------------------------------- /libs/web/tracks/data-access/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "include": [ 9 | "**/*.spec.ts", 10 | "**/*.test.ts", 11 | "**/*.spec.tsx", 12 | "**/*.test.tsx", 13 | "**/*.spec.js", 14 | "**/*.test.js", 15 | "**/*.spec.jsx", 16 | "**/*.test.jsx", 17 | "**/*.d.ts", 18 | "jest.config.ts" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /libs/web/tracks/feature/README.md: -------------------------------------------------------------------------------- 1 | # web-collection-tracks-feature 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-collection-tracks-feature` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/tracks/feature/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/tracks.module'; 2 | -------------------------------------------------------------------------------- /libs/web/tracks/feature/src/lib/tracks.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/libs/web/tracks/feature/src/lib/tracks.component.scss -------------------------------------------------------------------------------- /libs/web/tracks/feature/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/tracks/feature/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/visualizer/data-access/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["../../../../.eslintrc.json"], 3 | "ignorePatterns": ["!**/*"], 4 | "rules": {}, 5 | "overrides": [ 6 | { 7 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"], 8 | "rules": {} 9 | }, 10 | { 11 | "files": ["*.ts", "*.tsx"], 12 | "rules": {} 13 | }, 14 | { 15 | "files": ["*.js", "*.jsx"], 16 | "rules": {} 17 | } 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /libs/web/visualizer/data-access/README.md: -------------------------------------------------------------------------------- 1 | # web-visualizer-data-access 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-visualizer-data-access` to execute the unit tests via [Jest](https://jestjs.io). 8 | -------------------------------------------------------------------------------- /libs/web/visualizer/data-access/jest.config.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | export default { 3 | displayName: 'web-visualizer-data-access', 4 | preset: '../../../../jest.preset.js', 5 | globals: { 6 | 'ts-jest': { tsconfig: '/tsconfig.spec.json' } 7 | }, 8 | testEnvironment: 'node', 9 | transform: { 10 | '^.+\\.[tj]sx?$': 'ts-jest' 11 | }, 12 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'], 13 | coverageDirectory: '../../../../coverage/libs/web/visualizer/data-access' 14 | }; 15 | -------------------------------------------------------------------------------- /libs/web/visualizer/data-access/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/audio-context'; 2 | export * from './lib/store/visualizer.store'; 3 | -------------------------------------------------------------------------------- /libs/web/visualizer/data-access/src/typings/sketch-js.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'sketch-js' { 2 | export interface Sketch { 3 | start: () => void; 4 | stop: () => void; 5 | toggle: () => void; 6 | clear: () => void; 7 | destroy: () => void; 8 | } 9 | 10 | declare const SketchJS: { 11 | static create: (options) => Sketch; 12 | }; 13 | export = SketchJS; 14 | } 15 | -------------------------------------------------------------------------------- /libs/web/visualizer/data-access/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../../tsconfig.base.json", 3 | "files": [], 4 | "include": [], 5 | "references": [ 6 | { 7 | "path": "./tsconfig.lib.json" 8 | }, 9 | { 10 | "path": "./tsconfig.spec.json" 11 | } 12 | ], 13 | "compilerOptions": { 14 | "target": "es2020" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /libs/web/visualizer/data-access/tsconfig.lib.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "types": [], 6 | "forceConsistentCasingInFileNames": true, 7 | "strict": true, 8 | "noImplicitReturns": true, 9 | "noFallthroughCasesInSwitch": true 10 | }, 11 | "include": ["**/*.ts"], 12 | "exclude": ["**/*.spec.ts", "**/*.test.ts", "jest.config.ts"] 13 | } 14 | -------------------------------------------------------------------------------- /libs/web/visualizer/feature/README.md: -------------------------------------------------------------------------------- 1 | # web-visualizer-feature 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-visualizer-feature` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/visualizer/feature/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/visualizer.module'; 2 | -------------------------------------------------------------------------------- /libs/web/visualizer/feature/src/lib/visualizer.component.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /libs/web/visualizer/feature/src/lib/visualizer.component.scss: -------------------------------------------------------------------------------- 1 | :host { 2 | overflow: hidden; 3 | } 4 | -------------------------------------------------------------------------------- /libs/web/visualizer/feature/src/lib/visualizer.component.ts: -------------------------------------------------------------------------------- 1 | import { ChangeDetectionStrategy, Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'as-visualizer', 5 | templateUrl: './visualizer.component.html', 6 | styleUrls: ['./visualizer.component.scss'], 7 | changeDetection: ChangeDetectionStrategy.OnPush 8 | }) 9 | export class VisualizerComponent {} 10 | -------------------------------------------------------------------------------- /libs/web/visualizer/feature/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/visualizer/feature/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /libs/web/visualizer/ui/README.md: -------------------------------------------------------------------------------- 1 | # web-visualizer-ui 2 | 3 | This library was generated with [Nx](https://nx.dev). 4 | 5 | ## Running unit tests 6 | 7 | Run `nx test web-visualizer-ui` to execute the unit tests. 8 | -------------------------------------------------------------------------------- /libs/web/visualizer/ui/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/web-visualizer-ui.module'; 2 | -------------------------------------------------------------------------------- /libs/web/visualizer/ui/src/test-setup.ts: -------------------------------------------------------------------------------- 1 | import 'jest-preset-angular/setup-jest'; 2 | 3 | import { getTestBed } from '@angular/core/testing'; 4 | import { 5 | BrowserDynamicTestingModule, 6 | platformBrowserDynamicTesting 7 | } from '@angular/platform-browser-dynamic/testing'; 8 | 9 | getTestBed().resetTestEnvironment(); 10 | getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { 11 | teardown: { destroyAfterEach: false } 12 | }); 13 | -------------------------------------------------------------------------------- /libs/web/visualizer/ui/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../../dist/out-tsc", 5 | "module": "commonjs", 6 | "types": ["jest", "node"] 7 | }, 8 | "files": ["src/test-setup.ts"], 9 | "include": ["**/*.spec.ts", "**/*.test.ts", "**/*.d.ts", "jest.config.ts"] 10 | } 11 | -------------------------------------------------------------------------------- /tools/generators/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Codechief09/angular-spotify/bb26042f659e63f1797d79455364a66f926dcc69/tools/generators/.gitkeep -------------------------------------------------------------------------------- /tools/tsconfig.tools.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.base.json", 3 | "compilerOptions": { 4 | "outDir": "../dist/out-tsc/tools", 5 | "rootDir": ".", 6 | "module": "commonjs", 7 | "target": "es5", 8 | "types": ["node"], 9 | "importHelpers": false 10 | }, 11 | "include": ["**/*.ts"] 12 | } 13 | --------------------------------------------------------------------------------