├── .atom-build.json ├── .babelrc ├── .editorconfig ├── .gitattributes ├── .gitignore ├── .travis.yml ├── LICENSE ├── README.md ├── client ├── app │ ├── _scrap │ │ ├── dyna_form.html │ │ ├── modules │ │ │ ├── annotations.ts │ │ │ ├── index.ts │ │ │ ├── login-buttons-template.html │ │ │ ├── login-buttons.less │ │ │ └── login-buttons.ts │ │ ├── parties-form │ │ │ ├── parties-form.html │ │ │ └── parties-form.ts │ │ ├── parties-list │ │ │ ├── _parties-list.scss │ │ │ ├── parties-list.html │ │ │ └── parties-list.ts │ │ ├── party-details │ │ │ ├── _party-details.scss │ │ │ ├── party-details.html │ │ │ └── party-details.ts │ │ ├── prd │ │ │ ├── prd-detail.component.ts │ │ │ └── prd-root.component.ts │ │ ├── product1 │ │ │ ├── product-details.html │ │ │ ├── product-list.component.ts │ │ │ ├── product-list.html │ │ │ ├── product.component.ts │ │ │ ├── product.service.ts │ │ │ └── products.reducer.ts │ │ ├── register │ │ │ ├── register.component.ts │ │ │ ├── register.html │ │ │ └── register.service.ts │ │ └── unused │ │ │ ├── app.1.html │ │ │ ├── app1.component.ts │ │ │ ├── apps.ts │ │ │ └── index1.ts │ ├── about │ │ ├── about.component.ts │ │ ├── about.spec.ts │ │ └── index.ts │ ├── app.component.e2e.ts │ ├── app.component.spec.ts │ ├── app.component.ts │ ├── app.html │ ├── app.map.html │ ├── app.service.ts │ ├── app.side.nav.html │ ├── app.side.nav2.html │ ├── app.side.nav3.html │ ├── app.store.ts │ ├── auth │ │ ├── recover.html │ │ ├── recover.ts │ │ ├── signin.component.ts │ │ ├── signin.html │ │ ├── signup.component.ts │ │ ├── signup.html │ │ └── user.service.ts │ ├── browser │ │ ├── app │ │ │ └── app.html │ │ ├── auth │ │ │ ├── login.html │ │ │ └── login.ts │ │ ├── package.js │ │ └── socially-browser.ts │ ├── cart │ │ ├── details.component.ts │ │ ├── details.html │ │ ├── line.component.ts │ │ ├── line.html │ │ ├── list.component.ts │ │ └── list.html │ ├── client │ │ └── imports │ │ │ ├── auth │ │ │ ├── recover.html │ │ │ ├── recover.ts │ │ │ ├── signup.html │ │ │ └── signup.ts │ │ │ ├── parties-form │ │ │ ├── parties-form.html │ │ │ └── parties-form.ts │ │ │ ├── parties-list │ │ │ ├── _parties-list.scss │ │ │ ├── parties-list.html │ │ │ └── parties-list.ts │ │ │ ├── party-details │ │ │ ├── _party-details.scss │ │ │ ├── party-details.html │ │ │ └── party-details.ts │ │ │ └── pipes │ │ │ └── pipes.ts │ ├── components - Copy │ │ ├── map-auto.css │ │ ├── map-auto.html │ │ ├── map-auto.test.html │ │ ├── map-auto.ts │ │ ├── md-dropdown.component.ts │ │ ├── md-dropdown.css │ │ ├── md-dropdown.html │ │ ├── rating.component.ts │ │ └── rating.html │ ├── components │ │ ├── map-auto.css │ │ ├── map-auto.html │ │ ├── map-auto.test.html │ │ ├── map-auto.ts │ │ ├── md-dropdown.component.ts │ │ ├── md-dropdown.css │ │ ├── md-dropdown.html │ │ ├── rating.component.ts │ │ └── rating.html │ ├── css │ │ ├── main.css │ │ └── main.scss │ ├── demo │ │ ├── demo.html │ │ ├── demo.ts │ │ ├── file-upload.back.js │ │ ├── file-upload.html │ │ └── file-upload.ts │ ├── environment.ts │ ├── home │ │ ├── directives │ │ │ └── x-large │ │ │ │ ├── index.ts │ │ │ │ ├── x-large.directive.ts │ │ │ │ └── x-large.spec.ts │ │ ├── faq.html │ │ ├── home.component.e2e.ts │ │ ├── home.component.spec.ts │ │ ├── home.component.ts │ │ ├── home.css │ │ ├── home.html │ │ ├── home1.html │ │ ├── home2html.html │ │ ├── home_2.html │ │ ├── home_parallex.html │ │ ├── index.ts │ │ └── services │ │ │ └── title │ │ │ ├── index.ts │ │ │ ├── title.service.spec.ts │ │ │ └── title.service.ts │ ├── imports │ │ ├── auth │ │ │ ├── recover.html │ │ │ ├── recover.ts │ │ │ ├── signup.html │ │ │ └── signup.ts │ │ ├── parties-form │ │ │ ├── parties-form.html │ │ │ └── parties-form.ts │ │ ├── parties-list │ │ │ ├── _parties-list.scss │ │ │ ├── parties-list.html │ │ │ └── parties-list.ts │ │ ├── party-details │ │ │ ├── _party-details.scss │ │ │ ├── party-details.html │ │ │ └── party-details.ts │ │ └── pipes │ │ │ └── pipes.ts │ ├── index.ts │ ├── m.html │ ├── material-demo │ │ ├── material2-app.component.css │ │ ├── material2-app.component.html │ │ └── material2-app.component.ts │ ├── mobile │ │ ├── app │ │ │ └── app.html │ │ ├── auth │ │ │ ├── login.html │ │ │ └── login.ts │ │ ├── package.js │ │ └── socially-mobile.ts │ ├── note.1.txt │ ├── note.txt │ ├── orders │ │ ├── add.component.ts │ │ ├── add.html │ │ ├── line.component.ts │ │ ├── line.html │ │ ├── list.component.ts │ │ ├── list.html │ │ ├── note.txt │ │ ├── results.component.ts │ │ ├── results.html │ │ ├── search.component.ts │ │ ├── search.html │ │ ├── shop.component.ts │ │ ├── shop.html │ │ └── shop.service.ts │ ├── pipes │ │ └── pipes.ts │ ├── product │ │ ├── add.component.ts │ │ ├── add.html │ │ ├── details.component.ts │ │ ├── details.html │ │ ├── line.component.ts │ │ ├── line.html │ │ ├── list.component.ts │ │ ├── list.html │ │ ├── note.txt │ │ ├── plist.component.ts │ │ ├── plist.html │ │ ├── product.component.ts │ │ ├── product.html │ │ └── product.service.ts │ ├── products │ │ ├── product-details.component.ts │ │ ├── product-details.html │ │ ├── product-list.component.ts │ │ ├── product-list.html │ │ ├── product.service.ts │ │ ├── product.store.ts │ │ ├── products.component.ts │ │ ├── products.html │ │ ├── products.reducer.ts │ │ ├── products.spec.ts │ │ └── selected-product.reducer.ts │ ├── profile │ │ ├── avatar.component.ts │ │ ├── avatar.html │ │ ├── profile.component.ts │ │ └── profile.html │ ├── services │ │ ├── auth.service.ts │ │ ├── authentication.service.ts │ │ └── shared.service.ts │ ├── shared │ │ ├── components │ │ │ └── accordion │ │ │ │ ├── accordion-group.component.ts │ │ │ │ ├── accordion-group.html │ │ │ │ └── accordion.component.ts │ │ └── directives │ │ │ └── router-active │ │ │ ├── index.ts │ │ │ └── router-active.directive.ts │ ├── shop-backup │ │ ├── add.component.ts │ │ ├── add.html │ │ ├── line.component.ts │ │ ├── line.html │ │ ├── list.component.ts │ │ ├── list.html │ │ ├── note.txt │ │ ├── results.component.ts │ │ ├── results.html │ │ ├── search.component.ts │ │ ├── search.html │ │ ├── shop.component.ts │ │ ├── shop.html │ │ └── shop.service.ts │ ├── shop │ │ ├── add.component.ts │ │ ├── add_edit.html │ │ ├── line.component.ts │ │ ├── line.html │ │ ├── list.component.ts │ │ ├── list.html │ │ ├── note.txt │ │ ├── results.component.ts │ │ ├── results.html │ │ ├── search.component.ts │ │ ├── search.html │ │ ├── shop.component.ts │ │ ├── shop.html │ │ └── shop.service.ts │ ├── test │ │ ├── test - Copy.html │ │ ├── test.html │ │ └── test.ts │ └── window.service.ts ├── assets │ ├── background3.jpg │ ├── css │ │ ├── .gitkeep │ │ ├── materialize.css │ │ ├── materialize.min.css │ │ └── style.css │ ├── data.json │ ├── humans.txt │ ├── icon │ │ ├── android-icon-144x144.png │ │ ├── android-icon-192x192.png │ │ ├── android-icon-36x36.png │ │ ├── android-icon-48x48.png │ │ ├── android-icon-72x72.png │ │ ├── android-icon-96x96.png │ │ ├── apple-icon-114x114.png │ │ ├── apple-icon-120x120.png │ │ ├── apple-icon-144x144.png │ │ ├── apple-icon-152x152.png │ │ ├── apple-icon-180x180.png │ │ ├── apple-icon-57x57.png │ │ ├── apple-icon-60x60.png │ │ ├── apple-icon-72x72.png │ │ ├── apple-icon-76x76.png │ │ ├── apple-icon-precomposed.png │ │ ├── apple-icon.png │ │ ├── browserconfig.xml │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── favicon-96x96.png │ │ ├── manifest.json │ │ ├── ms-icon-144x144.png │ │ ├── ms-icon-150x150.png │ │ ├── ms-icon-310x310.png │ │ └── ms-icon-70x70.png │ ├── img │ │ ├── angular-logo.png │ │ ├── background1.jpg │ │ └── background2.jpg │ ├── manifest.json │ ├── robots.txt │ └── service-worker.js ├── custom-typings.d.ts ├── index.html ├── main.browser.ts ├── platform │ ├── browser │ │ ├── angular2-material2 │ │ │ └── index.ts │ │ ├── directives.ts │ │ ├── index.ts │ │ ├── pipes.ts │ │ └── providers.ts │ └── environment.ts ├── polyfills.ts ├── sass │ ├── README.md │ ├── abstracts │ │ ├── README.md │ │ ├── _functions.scss │ │ ├── _mixins.scss │ │ └── _variables.scss │ ├── base │ │ ├── README.MD │ │ ├── _base.scss │ │ ├── _fonts.scss │ │ ├── _helpers.scss │ │ └── _typography.scss │ ├── components │ │ ├── README.MD │ │ └── _button.scss │ ├── layout │ │ ├── README.MD │ │ ├── _footer.scss │ │ └── _header.scss │ ├── main.scss │ ├── pages │ │ ├── README.MD │ │ └── _home.scss │ ├── themes │ │ ├── README.MD │ │ └── _default.scss │ └── vendor │ │ ├── README.md │ │ └── _normalize.scss └── vendor.ts ├── config ├── config.json ├── env.conf.js ├── gulpfile.conf.js ├── helpers.js ├── karma.conf.js ├── mongoose.conf.js ├── passport.conf.js ├── protractor.conf.js ├── spec-bundle.js ├── webpack.common.js ├── webpack.dev.js ├── webpack.prod.config.js └── webpack.test.config.js ├── css ├── main.css └── main.scss ├── dist ├── 1.chunk.js ├── 1.map ├── assets │ ├── background3.jpg │ ├── css │ │ ├── .gitkeep │ │ ├── materialize.css │ │ ├── materialize.min.css │ │ └── style.css │ ├── data.json │ ├── humans.txt │ ├── icon │ │ ├── android-icon-144x144.png │ │ ├── android-icon-192x192.png │ │ ├── android-icon-36x36.png │ │ ├── android-icon-48x48.png │ │ ├── android-icon-72x72.png │ │ ├── android-icon-96x96.png │ │ ├── apple-icon-114x114.png │ │ ├── apple-icon-120x120.png │ │ ├── apple-icon-144x144.png │ │ ├── apple-icon-152x152.png │ │ ├── apple-icon-180x180.png │ │ ├── apple-icon-57x57.png │ │ ├── apple-icon-60x60.png │ │ ├── apple-icon-72x72.png │ │ ├── apple-icon-76x76.png │ │ ├── apple-icon-precomposed.png │ │ ├── apple-icon.png │ │ ├── browserconfig.xml │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── favicon-96x96.png │ │ ├── manifest.json │ │ ├── ms-icon-144x144.png │ │ ├── ms-icon-150x150.png │ │ ├── ms-icon-310x310.png │ │ └── ms-icon-70x70.png │ ├── img │ │ ├── angular-logo.png │ │ ├── background1.jpg │ │ └── background2.jpg │ ├── manifest.json │ ├── robots.txt │ └── service-worker.js ├── index.html ├── main.bundle.js ├── main.map ├── polyfills.bundle.js ├── polyfills.map ├── vendor.bundle.js └── vendor.map ├── dist1 ├── 1.chunk.js ├── 1.map ├── 103617440ccde3a84bd8.hot-update.json ├── 2b923bab97c373c6043b.hot-update.json ├── 2d26e88fd8539e698fdd.hot-update.json ├── 3.103617440ccde3a84bd8.hot-update.js ├── 3.2b923bab97c373c6043b.hot-update.js ├── 3.2d26e88fd8539e698fdd.hot-update.js ├── 3.4821b3479033d1d22179.hot-update.js ├── 3.4aa6c303c9d6c32a6b38.hot-update.js ├── 3.5d4acfbfc816f9827e4b.hot-update.js ├── 3.62ef9f24e9476f081e76.hot-update.js ├── 3.67564e9bc16e65111259.hot-update.js ├── 3.7b045091e9b6c217ae92.hot-update.js ├── 3.96306d79aaa42d8606fa.hot-update.js ├── 3.acb9c4e2745d709a4a54.hot-update.js ├── 3.c354a13d4f19342e344f.hot-update.js ├── 3.ca139a2b30561404fa96.hot-update.js ├── 3.ccd20ce345c6dc19943c.hot-update.js ├── 3.d097472af7dc34f8dca6.hot-update.js ├── 3.df945e836672ad323341.hot-update.js ├── 3.e03a8815bc1dbac89a15.hot-update.js ├── 3.f9a635e8495ff4175d9b.hot-update.js ├── 3.f9f23b807bd50505ab21.hot-update.js ├── 4821b3479033d1d22179.hot-update.json ├── 4aa6c303c9d6c32a6b38.hot-update.json ├── 5d4acfbfc816f9827e4b.hot-update.json ├── 62ef9f24e9476f081e76.hot-update.json ├── 67564e9bc16e65111259.hot-update.json ├── 7b045091e9b6c217ae92.hot-update.json ├── 96306d79aaa42d8606fa.hot-update.json ├── LICENSE ├── acb9c4e2745d709a4a54.hot-update.json ├── assets │ ├── css │ │ └── .gitkeep │ ├── data.json │ ├── humans.txt │ ├── icon │ │ ├── android-icon-144x144.png │ │ ├── android-icon-192x192.png │ │ ├── android-icon-36x36.png │ │ ├── android-icon-48x48.png │ │ ├── android-icon-72x72.png │ │ ├── android-icon-96x96.png │ │ ├── apple-icon-114x114.png │ │ ├── apple-icon-120x120.png │ │ ├── apple-icon-144x144.png │ │ ├── apple-icon-152x152.png │ │ ├── apple-icon-180x180.png │ │ ├── apple-icon-57x57.png │ │ ├── apple-icon-60x60.png │ │ ├── apple-icon-72x72.png │ │ ├── apple-icon-76x76.png │ │ ├── apple-icon-precomposed.png │ │ ├── apple-icon.png │ │ ├── browserconfig.xml │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── favicon-96x96.png │ │ ├── manifest.json │ │ ├── ms-icon-144x144.png │ │ ├── ms-icon-150x150.png │ │ ├── ms-icon-310x310.png │ │ └── ms-icon-70x70.png │ ├── img │ │ └── angular-logo.png │ ├── manifest.json │ ├── robots.txt │ └── service-worker.js ├── background1.jpg ├── background2.jpg ├── background3.jpg ├── c354a13d4f19342e344f.hot-update.json ├── ca139a2b30561404fa96.hot-update.json ├── ccd20ce345c6dc19943c.hot-update.json ├── css │ ├── materialize.css │ ├── materialize.min.css │ └── style.css ├── d097472af7dc34f8dca6.hot-update.json ├── df945e836672ad323341.hot-update.json ├── e03a8815bc1dbac89a15.hot-update.json ├── f9a635e8495ff4175d9b.hot-update.json ├── f9f23b807bd50505ab21.hot-update.json ├── font │ ├── material-design-icons │ │ ├── LICENSE.txt │ │ ├── Material-Design-Icons.eot │ │ ├── Material-Design-Icons.svg │ │ ├── Material-Design-Icons.ttf │ │ ├── Material-Design-Icons.woff │ │ └── Material-Design-Icons.woff2 │ └── roboto │ │ ├── Roboto-Bold.eot │ │ ├── Roboto-Bold.ttf │ │ ├── Roboto-Bold.woff │ │ ├── Roboto-Bold.woff2 │ │ ├── Roboto-Light.eot │ │ ├── Roboto-Light.ttf │ │ ├── Roboto-Light.woff │ │ ├── Roboto-Light.woff2 │ │ ├── Roboto-Medium.eot │ │ ├── Roboto-Medium.ttf │ │ ├── Roboto-Medium.woff │ │ ├── Roboto-Medium.woff2 │ │ ├── Roboto-Regular.eot │ │ ├── Roboto-Regular.ttf │ │ ├── Roboto-Regular.woff │ │ ├── Roboto-Regular.woff2 │ │ ├── Roboto-Thin.eot │ │ ├── Roboto-Thin.ttf │ │ ├── Roboto-Thin.woff │ │ └── Roboto-Thin.woff2 ├── fonts │ └── roboto │ │ ├── Roboto-Bold.eot │ │ ├── Roboto-Bold.ttf │ │ ├── Roboto-Bold.woff │ │ ├── Roboto-Bold.woff2 │ │ ├── Roboto-Light.eot │ │ ├── Roboto-Light.ttf │ │ ├── Roboto-Light.woff │ │ ├── Roboto-Light.woff2 │ │ ├── Roboto-Medium.eot │ │ ├── Roboto-Medium.ttf │ │ ├── Roboto-Medium.woff │ │ ├── Roboto-Medium.woff2 │ │ ├── Roboto-Regular.eot │ │ ├── Roboto-Regular.ttf │ │ ├── Roboto-Regular.woff │ │ ├── Roboto-Regular.woff2 │ │ ├── Roboto-Thin.eot │ │ ├── Roboto-Thin.ttf │ │ ├── Roboto-Thin.woff │ │ └── Roboto-Thin.woff2 ├── index.html ├── js │ ├── init.js │ ├── materialize.js │ └── materialize.min.js ├── main.bundle.js ├── main.map ├── pindex.html ├── polyfills.bundle.js ├── polyfills.map ├── vendor.bundle.js └── vendor.map ├── gulpfile.js ├── karma.conf.js ├── ngnix.txt ├── note.txt ├── note_private.txt ├── notes └── email.txt ├── package.json ├── parallex ├── LICENSE ├── background1.jpg ├── background2.jpg ├── background3.jpg ├── css │ ├── materialize.css │ ├── materialize.min.css │ └── style.css ├── font │ ├── material-design-icons │ │ ├── LICENSE.txt │ │ ├── Material-Design-Icons.eot │ │ ├── Material-Design-Icons.svg │ │ ├── Material-Design-Icons.ttf │ │ ├── Material-Design-Icons.woff │ │ └── Material-Design-Icons.woff2 │ └── roboto │ │ ├── Roboto-Bold.eot │ │ ├── Roboto-Bold.ttf │ │ ├── Roboto-Bold.woff │ │ ├── Roboto-Bold.woff2 │ │ ├── Roboto-Light.eot │ │ ├── Roboto-Light.ttf │ │ ├── Roboto-Light.woff │ │ ├── Roboto-Light.woff2 │ │ ├── Roboto-Medium.eot │ │ ├── Roboto-Medium.ttf │ │ ├── Roboto-Medium.woff │ │ ├── Roboto-Medium.woff2 │ │ ├── Roboto-Regular.eot │ │ ├── Roboto-Regular.ttf │ │ ├── Roboto-Regular.woff │ │ ├── Roboto-Regular.woff2 │ │ ├── Roboto-Thin.eot │ │ ├── Roboto-Thin.ttf │ │ ├── Roboto-Thin.woff │ │ └── Roboto-Thin.woff2 ├── fonts │ └── roboto │ │ ├── Roboto-Bold.eot │ │ ├── Roboto-Bold.ttf │ │ ├── Roboto-Bold.woff │ │ ├── Roboto-Bold.woff2 │ │ ├── Roboto-Light.eot │ │ ├── Roboto-Light.ttf │ │ ├── Roboto-Light.woff │ │ ├── Roboto-Light.woff2 │ │ ├── Roboto-Medium.eot │ │ ├── Roboto-Medium.ttf │ │ ├── Roboto-Medium.woff │ │ ├── Roboto-Medium.woff2 │ │ ├── Roboto-Regular.eot │ │ ├── Roboto-Regular.ttf │ │ ├── Roboto-Regular.woff │ │ ├── Roboto-Regular.woff2 │ │ ├── Roboto-Thin.eot │ │ ├── Roboto-Thin.ttf │ │ ├── Roboto-Thin.woff │ │ └── Roboto-Thin.woff2 ├── js │ ├── init.js │ ├── materialize.js │ └── materialize.min.js └── pindex.html ├── protractor.conf.js ├── rr.txt ├── scrap ├── client │ ├── index.html │ ├── main.js │ └── partials │ │ └── home.html ├── client11 │ ├── app.ts │ ├── css │ │ ├── main.css │ │ └── main.scss │ ├── imports │ │ ├── auth │ │ │ ├── recover.html │ │ │ ├── recover.ts │ │ │ ├── signup.html │ │ │ └── signup.ts │ │ ├── parties-form │ │ │ ├── parties-form.html │ │ │ └── parties-form.ts │ │ ├── parties-list │ │ │ ├── _parties-list.scss │ │ │ ├── parties-list.html │ │ │ └── parties-list.ts │ │ ├── party-details │ │ │ ├── _party-details.scss │ │ │ ├── party-details.html │ │ │ └── party-details.ts │ │ └── pipes │ │ │ └── pipes.ts │ └── index.html ├── imports │ ├── auth │ │ ├── recover.html │ │ ├── recover.ts │ │ ├── signup.html │ │ └── signup.ts │ ├── parties-form │ │ ├── parties-form.html │ │ └── parties-form.ts │ ├── parties-list │ │ ├── _parties-list.scss │ │ ├── parties-list.html │ │ └── parties-list.ts │ ├── party-details │ │ ├── _party-details.scss │ │ ├── party-details.html │ │ └── party-details.ts │ └── pipes │ │ └── pipes.ts └── server │ ├── app.js │ ├── models │ └── user.js │ ├── routes │ └── api.js │ └── server.js ├── server.conf.js ├── server.js ├── server.main.js ├── server ├── models │ ├── cart.model.js │ ├── order.model.js │ ├── order_items.model.js │ ├── product.model.js │ ├── shop.model.js │ └── user.model.js ├── routes.js ├── routes │ ├── auth.router.js │ ├── cart.router.js │ ├── order.router.js │ ├── product.router.js │ ├── shop.router.js │ └── user.router.js └── tests │ ├── leopard.model.spec.js │ ├── product.model.spec.js │ └── shop.model.spec.js ├── sockets └── base.js ├── test ├── mocha.opts ├── recipe.model.spec.js ├── todo.model.spec.js └── utils.js ├── tsconfig.json ├── tslint.json ├── typedoc.json ├── typings.json ├── uploads ├── 9243f3325c5649d7c1965a85e4c481b91465770346085.jpeg ├── 9243f3325c5649d7c1965a85e4c481b91465770346085.jpeg.t.jpg ├── a.jpeg ├── cb395f6dee6ac15e834f6b2d5a760aea1465770205672.jpeg ├── cb395f6dee6ac15e834f6b2d5a760aea1465770205672.jpeg.t.jpg └── thumbnail.jpg ├── vulgar.json └── webpack.config.js /.atom-build.json: -------------------------------------------------------------------------------- 1 | { 2 | "cmd": "npm start", 3 | "name": "default", 4 | "targets": { 5 | "webpack-dev-server--hmr": { 6 | "cmd": "npm start" 7 | }, 8 | "build:dev": { 9 | "cmd": "npm run build:dev" 10 | }, 11 | "build:prod": { 12 | "cmd": "npm run build:prod" 13 | }, 14 | "build:docs": { 15 | "cmd": "gulp build:docs" 16 | }, 17 | "test": { 18 | "cmd": "npm test" 19 | }, 20 | "watch:test": { 21 | "cmd": "npm run watch:test" 22 | }, 23 | "e2e": { 24 | "cmd": "npm run e2e" 25 | }, 26 | "server:prod": { 27 | "cmd": "npm run server:prod" 28 | }, 29 | "watch:dev": { 30 | "cmd": "npm run watch:dev" 31 | }, 32 | "watch:prod": { 33 | "cmd": "npm run watch:prod" 34 | }, 35 | "watch:dev": { 36 | "cmd": "npm run watch:dev" 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": [], 3 | "presets" : ['es2015', 'stage-0', 'react'] 4 | } -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # @datatypevoid 2 | # http://editorconfig.org 3 | 4 | root = true 5 | 6 | [*] 7 | charset = utf-8 8 | indent_style = space 9 | indent_size = 2 10 | end_of_line = lf 11 | insert_final_newline = true 12 | trim_trailing_whitespace = true 13 | 14 | [*.md] 15 | insert_final_newline = false 16 | trim_trailing_whitespace = false 17 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - node 4 | - "5" 5 | - "4" 6 | sudo: false 7 | branches: 8 | only: 9 | - master 10 | script: npm test 11 | notifications: 12 | slack: vulgardisplayofpower:RQzt5qlhpuN4caO9OavVbmoi 13 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 nawalgupta 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /client/app/_scrap/modules/index.ts: -------------------------------------------------------------------------------- 1 | export * from './login-buttons'; 2 | export * from './annotations'; -------------------------------------------------------------------------------- /client/app/_scrap/parties-form/parties-form.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 17 |
18 | 19 | 20 |
21 |
-------------------------------------------------------------------------------- /client/app/_scrap/parties-list/_parties-list.scss: -------------------------------------------------------------------------------- 1 | .new-party-form-container { 2 | margin: 20px; 3 | border: 1px gainsboro solid; 4 | } 5 | .ma-parties-list { 6 | .sebm-google-map { 7 | box-sizing: border-box; 8 | -webkit-flex: 1; 9 | -ms-flex: 1; 10 | flex: 1; 11 | -webkit-flex-direction: row; 12 | -ms-flex-direction: row; 13 | flex-direction: row; 14 | box-sizing: border-box; 15 | display: -webkit-flex; 16 | display: -ms-flexbox; 17 | display: flex; 18 | } 19 | 20 | .angular-google-map-container { 21 | box-sizing: border-box; 22 | -webkit-flex: 1; 23 | -ms-flex: 1; 24 | flex: 1; 25 | } 26 | 27 | .rsvps-sum { 28 | float: left; 29 | width: 50px; 30 | text-align: center; 31 | .rsvps-amount { 32 | font-size: 24px; 33 | } 34 | .rsvps-title { 35 | font-size: 13px; 36 | color: #aaa; 37 | } 38 | } 39 | 40 | .ma-party { 41 | .party-image { 42 | background-size: cover; 43 | width: 100%; 44 | height: 200px; 45 | } 46 | 47 | .ma-name { 48 | a { 49 | text-decoration: none; 50 | color: #333; 51 | } 52 | } 53 | .ma-description { 54 | 55 | } 56 | } 57 | } 58 | 59 | .search-form { 60 | margin-bottom: 1em; 61 | } -------------------------------------------------------------------------------- /client/app/_scrap/party-details/_party-details.scss: -------------------------------------------------------------------------------- 1 | .ma-party-details-container { 2 | padding: 20px; 3 | 4 | .angular-google-map-container { 5 | width: 100%; 6 | height: 100%; 7 | } 8 | 9 | .angular-google-map { 10 | width: 100%; 11 | height: 400px; 12 | } 13 | 14 | .ma-map-title { 15 | font-size: 16px; 16 | font-weight: bolder; 17 | } 18 | 19 | .ma-invite-list { 20 | margin-top: 20px; 21 | margin-bottom: 20px; 22 | 23 | h3 { 24 | font-size: 16px; 25 | font-weight: bolder; 26 | } 27 | 28 | ul { 29 | padding: 0; 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /client/app/_scrap/prd/prd-root.component.ts: -------------------------------------------------------------------------------- 1 | // This file contains the main class as well as the necessary 2 | // decorators for creating the `PrdRoot` `component` 3 | 4 | /* 5 | * Angular 2 decorators and services 6 | */ 7 | //import {Component} from '@@angularcore'; 8 | 9 | 10 | import {Component, 11 | Input, 12 | Output, 13 | EventEmitter, 14 | ChangeDetectionStrategy} from '@angular/core'; 15 | 16 | //import {RouteConfig, Router, RouterOutlet} from '@angular/router'; 17 | import {RouteConfig, Router} from '@angular/router-deprecated'; 18 | 19 | import {PrdListComponent} from './prd-list.component'; 20 | import {PrdDetailComponent} from './prd-detail.component'; 21 | import {PrdService} from './prd.service'; 22 | 23 | /* 24 | * Prd 25 | * Root Component 26 | */ 27 | @Component({ 28 | providers: [PrdService], 29 | directives: [RouterOutlet], 30 | // Every Angular template is first compiled by the browser before Angular runs it's compiler 31 | template: `` 32 | }) 33 | @RouteConfig([ 34 | {path:'/', name: 'PrdList', component: PrdListComponent, useAsDefault: true}, 35 | {path:'/:id', name: 'PrdDetail', component: PrdDetailComponent} 36 | ]) 37 | export class PrdRoot { 38 | 39 | constructor() { 40 | 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /client/app/_scrap/product1/product-list.component.ts: -------------------------------------------------------------------------------- 1 | // ``` 2 | // product-list.component.js 3 | // (c) 2016 David Newman 4 | // blackshuriken@hotmail.com 5 | // product-list.component.js may be freely distributed under the MIT license 6 | // ``` 7 | 8 | // # Product List 9 | 10 | import {Component, 11 | Input, 12 | Output, 13 | EventEmitter, 14 | ChangeDetectionStrategy} from '@angular/core'; 15 | 16 | import {Observable} from 'rxjs/Observable'; 17 | import {Store} from '@ngrx/store'; 18 | 19 | import {ProductService} from './product.service'; 20 | import {Product} from './product.store'; 21 | import {AppStore} from '../app.store'; 22 | 23 | import {Rating} from './rating.component'; 24 | 25 | @Component({ 26 | selector: 'product-list', 27 | template: require('./product-list.html'), 28 | directives: [Rating] 29 | }) 30 | export class ProductList { 31 | // The `product` component hands off `products` and `selectedproduct` 32 | // via property bindings to its child components 33 | // Here we pick up the `products` collection by annotating our local 34 | // `products` property with `@Input()` 35 | @Input() products: Product[]; 36 | // Two event outputs for when a product is selected or deleted 37 | @Output() selected = new EventEmitter(); 38 | @Output() deleted = new EventEmitter(); 39 | } 40 | -------------------------------------------------------------------------------- /client/app/_scrap/product1/product-list.html: -------------------------------------------------------------------------------- 1 |
3 |
4 |

{{product.title}}

5 |
6 | 13 |
14 | 15 | {{product.rating}} 16 |
17 |
18 | {{product.creator}} 19 |
20 |
21 | {{product.description}} 22 |
23 | 28 |
    29 |
  1. 30 | {{ direction.step }} 31 |
  2. 32 |
33 |
34 | 37 |
38 |
39 | -------------------------------------------------------------------------------- /client/app/_scrap/product1/product.component.ts: -------------------------------------------------------------------------------- 1 | // This file contains the main class as well as the necessary 2 | // decorators for creating the `Product` component 3 | 4 | /* 5 | * Angular 2 decorators and services 6 | */ 7 | //import {Component} from '@angularcore'; 8 | 9 | import {Component, 10 | Input, 11 | Output, 12 | EventEmitter, 13 | ChangeDetectionStrategy} from '@angular/core'; 14 | /* 15 | * Product 16 | * Component 17 | */ 18 | @Component({ 19 | selector: 'product', 20 | // Every Angular template is first compiled by the browser before Angular runs it's compiler 21 | template: require('./product.component.html'), 22 | // Load our main `Sass` file into our `Product` component 23 | //styleUrls: [require('!style!css!sass!./product.component.scss')], 24 | providers: [], 25 | directives: [], 26 | pipes: [] 27 | }) 28 | 29 | export class Product { 30 | 31 | constructor() {} 32 | } 33 | -------------------------------------------------------------------------------- /client/app/_scrap/register/register.component.ts: -------------------------------------------------------------------------------- 1 | import {Component} from '@angular/core'; 2 | 3 | import {RegisterService} from './register.service'; 4 | 5 | import {HTTP_PROVIDERS} from '@angular/http'; 6 | 7 | @Component({ 8 | selector: 'register', 9 | providers: [HTTP_PROVIDERS, RegisterService], 10 | template: require('./register.html') 11 | }) 12 | 13 | export class Register { 14 | public email=''; 15 | public password=''; 16 | public user= { 17 | email:'', 18 | password:'' 19 | 20 | }; 21 | 22 | submit(){ 23 | 24 | 25 | } 26 | 27 | 28 | } 29 | -------------------------------------------------------------------------------- /client/app/_scrap/register/register.html: -------------------------------------------------------------------------------- 1 |
2 | 9 | Register 10 |
11 | Email 12 | 13 | 14 | Password 15 | 16 | 17 | 19 | 20 |
21 | 22 |
23 | -------------------------------------------------------------------------------- /client/app/_scrap/register/register.service.ts: -------------------------------------------------------------------------------- 1 | import {Injectable} from '@angular/core'; 2 | import {Http, Headers} from '@angular/http'; 3 | 4 | @Injectable() 5 | export class RegisterService { 6 | public url='/api/user'; 7 | 8 | constructor(public http:Http) { 9 | 10 | } 11 | 12 | 13 | create(data) { 14 | let headers = new Headers(); 15 | headers.append('Content-Type', 'application/json'); 16 | return this.http.post(this.url, JSON.stringify(data), 17 | {headers: headers}) 18 | .map(res => res.json()); 19 | } 20 | 21 | 22 | } 23 | -------------------------------------------------------------------------------- /client/app/_scrap/unused/app.1.html: -------------------------------------------------------------------------------- 1 | 2 |

3 | Socially 4 |

5 | 6 | 16 |
17 | -------------------------------------------------------------------------------- /client/app/_scrap/unused/app1.component.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nawalgupta/angular2-shop/c7eed8e5a13665960599fddc57cb3281b2888aa3/client/app/_scrap/unused/app1.component.ts -------------------------------------------------------------------------------- /client/app/_scrap/unused/index1.ts: -------------------------------------------------------------------------------- 1 | export {environment} from './environment'; 2 | export {Material2AppAppComponent} from './material2-app.component'; 3 | -------------------------------------------------------------------------------- /client/app/about/about.spec.ts: -------------------------------------------------------------------------------- 1 | import { 2 | it, 3 | inject, 4 | injectAsync, 5 | describe, 6 | beforeEachProviders, 7 | TestComponentBuilder 8 | } from '@angular/core/testing'; 9 | 10 | import {TestComponentBuilder} from '@angular/compiler/testing'; 11 | 12 | import {Component, provide} from '@angular/core'; 13 | 14 | // Load the implementations that should be tested 15 | import {About} from './about.component'; 16 | 17 | describe('About', () => { 18 | // provide our implementations or mocks to the dependency injector 19 | beforeEachProviders(() => [ 20 | About 21 | ]); 22 | 23 | it('should log ngOnInit', inject([About], (about) => { 24 | spyOn(console, 'log'); 25 | expect(console.log).not.toHaveBeenCalled(); 26 | 27 | about.ngOnInit(); 28 | expect(console.log).toHaveBeenCalled(); 29 | })); 30 | 31 | }); 32 | -------------------------------------------------------------------------------- /client/app/about/index.ts: -------------------------------------------------------------------------------- 1 | export * from './about.component'; 2 | -------------------------------------------------------------------------------- /client/app/app.component.e2e.ts: -------------------------------------------------------------------------------- 1 | describe('App', () => { 2 | 3 | beforeEach(() => { 4 | browser.get('/'); 5 | }); 6 | 7 | 8 | it('should have a title', () => { 9 | let subject = browser.getTitle(); 10 | let result = 'Angular 2 MEAN Webpack Starter'; 11 | expect(subject).toEqual(result); 12 | }); 13 | 14 | it('should have
', () => { 15 | let subject = element(by.css('app header')).isPresent(); 16 | let result = true; 17 | expect(subject).toEqual(result); 18 | }); 19 | 20 | it('should have
', () => { 21 | let subject = element(by.css('app main')).isPresent(); 22 | let result = true; 23 | expect(subject).toEqual(result); 24 | }); 25 | 26 | it('should have