From 5ee0a7a99012ee3448bcd90f91455639bee15b7c Mon Sep 17 00:00:00 2001 From: Dan Bucholtz Date: Wed, 21 Feb 2018 15:54:27 -0600 Subject: [PATCH] refactor(conference-app): begin process of updating to use angular router --- packages/core/src/components/nav/nav.tsx | 3 +- .../conference-app/angular/package-lock.json | 104 +++++++------- .../about}/about-popover.ts | 17 ++- .../src/app/about/about-routing.module.ts | 14 ++ .../src/{pages => app}/about/about.html | 8 +- .../angular/src/app/about/about.module.ts | 30 ++++ .../src/{pages => app}/about/about.scss | 0 .../angular/src/{pages => app}/about/about.ts | 2 +- .../src/app/account/account-routing.module.ts | 14 ++ .../src/{pages => app}/account/account.html | 8 +- .../angular/src/app/account/account.module.ts | 22 +++ .../src/{pages => app}/account/account.scss | 0 .../src/{pages => app}/account/account.ts | 5 +- .../angular/src/app/app-routing.module.ts | 17 +++ .../angular/src/app/app.component.html | 46 +------ .../angular/src/app/app.component.ts | 64 ++------- .../angular/src/app/app.module.ts | 59 ++------ .../src/app/interfaces/user-options.ts | 5 + .../src/app/login/login-routing.module.ts | 14 ++ .../src/{pages => app}/login/login.html | 12 +- .../angular/src/app/login/login.module.ts | 24 ++++ .../src/{pages => app}/login/login.scss | 0 .../angular/src/{pages => app}/login/login.ts | 12 +- .../angular/src/app/map/map-routing.module.ts | 14 ++ .../angular/src/{pages => app}/map/map.html | 8 +- .../angular/src/app/map/map.module.ts | 22 +++ .../angular/src/{pages => app}/map/map.scss | 0 .../angular/src/{pages => app}/map/map.ts | 3 +- .../angular/src/app/menu/menu.html | 130 ++++++++++++++++++ .../angular/src/app/menu/menu.module.ts | 19 +++ .../signup/signup.scss => app/menu/menu.scss} | 0 .../angular/src/app/menu/menu.ts | 73 ++++++++++ .../{ => app}/providers/conference-data.ts | 0 .../src/{ => app}/providers/user-data.ts | 2 +- .../schedule}/schedule-filter.html | 0 .../schedule}/schedule-filter.scss | 0 .../schedule}/schedule-filter.ts | 10 +- .../app/schedule/schedule-routing.module.ts | 14 ++ .../src/{pages => app}/schedule/schedule.html | 8 +- .../src/app/schedule/schedule.module.ts | 27 ++++ .../src/{pages => app}/schedule/schedule.scss | 0 .../src/{pages => app}/schedule/schedule.ts | 35 ++--- .../session-detail-routing.module.ts | 14 ++ .../session-detail/session-detail.html | 10 +- .../session-detail/session-detail.ts | 2 +- .../src/app/session-detail/session.module.ts | 19 +++ .../src/app/sign-up/sign-up-routing.module.ts | 14 ++ .../signup.html => app/sign-up/sign-up.html} | 10 +- .../angular/src/app/sign-up/sign-up.module.ts | 24 ++++ .../support.scss => app/sign-up/sign-up.scss} | 0 .../signup.ts => app/sign-up/sign-up.ts} | 14 +- .../speaker-detail-routing.module.ts | 14 ++ .../speaker-detail/speaker-detail.html | 3 + .../speaker-detail/speaker-detail.module.ts | 19 +++ .../speaker-detail/speaker-detail.scss | 0 .../speaker-detail/speaker-detail.ts | 2 +- .../speaker-list-routing.module.ts | 14 ++ .../speaker-list/speaker-list.html | 8 +- .../app/speaker-list/speaker-list.module.ts | 22 +++ .../speaker-list/speaker-list.scss | 0 .../speaker-list/speaker-list.ts | 20 ++- .../src/app/support/support-routing.module.ts | 14 ++ .../src/{pages => app}/support/support.html | 8 +- .../angular/src/app/support/support.module.ts | 22 +++ .../angular/src/app/support/support.scss | 0 .../src/{pages => app}/support/support.ts | 1 - .../app/tabs-page/tabs-page-routing.module.ts | 63 +++++++++ .../angular/src/app/tabs-page/tabs-page.html | 16 +++ .../src/app/tabs-page/tabs-page.module.ts | 35 +++++ .../{pages => app}/tabs-page/tabs-page.scss | 0 .../src/{pages => app}/tabs-page/tabs-page.ts | 10 +- .../src/{pages => app}/tutorial/tutorial.html | 0 .../src/app/tutorial/tutorial.module.ts | 22 +++ .../src/{pages => app}/tutorial/tutorial.scss | 0 .../src/{pages => app}/tutorial/tutorial.ts | 9 +- .../src/pages/tabs-page/tabs-page.html | 16 --- .../conference-app/angular/tsconfig.json | 28 ++-- 77 files changed, 962 insertions(+), 336 deletions(-) rename packages/demos/conference-app/angular/src/{pages/about-popover => app/about}/about-popover.ts (71%) create mode 100644 packages/demos/conference-app/angular/src/app/about/about-routing.module.ts rename packages/demos/conference-app/angular/src/{pages => app}/about/about.html (92%) create mode 100644 packages/demos/conference-app/angular/src/app/about/about.module.ts rename packages/demos/conference-app/angular/src/{pages => app}/about/about.scss (100%) rename packages/demos/conference-app/angular/src/{pages => app}/about/about.ts (88%) create mode 100644 packages/demos/conference-app/angular/src/app/account/account-routing.module.ts rename packages/demos/conference-app/angular/src/{pages => app}/account/account.html (82%) create mode 100644 packages/demos/conference-app/angular/src/app/account/account.module.ts rename packages/demos/conference-app/angular/src/{pages => app}/account/account.scss (100%) rename packages/demos/conference-app/angular/src/{pages => app}/account/account.ts (93%) create mode 100644 packages/demos/conference-app/angular/src/app/app-routing.module.ts create mode 100644 packages/demos/conference-app/angular/src/app/interfaces/user-options.ts create mode 100644 packages/demos/conference-app/angular/src/app/login/login-routing.module.ts rename packages/demos/conference-app/angular/src/{pages => app}/login/login.html (79%) create mode 100644 packages/demos/conference-app/angular/src/app/login/login.module.ts rename packages/demos/conference-app/angular/src/{pages => app}/login/login.scss (100%) rename packages/demos/conference-app/angular/src/{pages => app}/login/login.ts (66%) create mode 100644 packages/demos/conference-app/angular/src/app/map/map-routing.module.ts rename packages/demos/conference-app/angular/src/{pages => app}/map/map.html (64%) create mode 100644 packages/demos/conference-app/angular/src/app/map/map.module.ts rename packages/demos/conference-app/angular/src/{pages => app}/map/map.scss (100%) rename packages/demos/conference-app/angular/src/{pages => app}/map/map.ts (93%) create mode 100644 packages/demos/conference-app/angular/src/app/menu/menu.html create mode 100644 packages/demos/conference-app/angular/src/app/menu/menu.module.ts rename packages/demos/conference-app/angular/src/{pages/signup/signup.scss => app/menu/menu.scss} (100%) create mode 100644 packages/demos/conference-app/angular/src/app/menu/menu.ts rename packages/demos/conference-app/angular/src/{ => app}/providers/conference-data.ts (100%) rename packages/demos/conference-app/angular/src/{ => app}/providers/user-data.ts (98%) rename packages/demos/conference-app/angular/src/{pages/schedule-filter => app/schedule}/schedule-filter.html (100%) rename packages/demos/conference-app/angular/src/{pages/schedule-filter => app/schedule}/schedule-filter.scss (100%) rename packages/demos/conference-app/angular/src/{pages/schedule-filter => app/schedule}/schedule-filter.ts (84%) create mode 100644 packages/demos/conference-app/angular/src/app/schedule/schedule-routing.module.ts rename packages/demos/conference-app/angular/src/{pages => app}/schedule/schedule.html (93%) create mode 100644 packages/demos/conference-app/angular/src/app/schedule/schedule.module.ts rename packages/demos/conference-app/angular/src/{pages => app}/schedule/schedule.scss (100%) rename packages/demos/conference-app/angular/src/{pages => app}/schedule/schedule.ts (81%) create mode 100644 packages/demos/conference-app/angular/src/app/session-detail/session-detail-routing.module.ts rename packages/demos/conference-app/angular/src/{pages => app}/session-detail/session-detail.html (58%) rename packages/demos/conference-app/angular/src/{pages => app}/session-detail/session-detail.ts (93%) create mode 100644 packages/demos/conference-app/angular/src/app/session-detail/session.module.ts create mode 100644 packages/demos/conference-app/angular/src/app/sign-up/sign-up-routing.module.ts rename packages/demos/conference-app/angular/src/{pages/signup/signup.html => app/sign-up/sign-up.html} (84%) create mode 100644 packages/demos/conference-app/angular/src/app/sign-up/sign-up.module.ts rename packages/demos/conference-app/angular/src/{pages/support/support.scss => app/sign-up/sign-up.scss} (100%) rename packages/demos/conference-app/angular/src/{pages/signup/signup.ts => app/sign-up/sign-up.ts} (61%) create mode 100644 packages/demos/conference-app/angular/src/app/speaker-detail/speaker-detail-routing.module.ts rename packages/demos/conference-app/angular/src/{pages => app}/speaker-detail/speaker-detail.html (87%) create mode 100644 packages/demos/conference-app/angular/src/app/speaker-detail/speaker-detail.module.ts rename packages/demos/conference-app/angular/src/{pages => app}/speaker-detail/speaker-detail.scss (100%) rename packages/demos/conference-app/angular/src/{pages => app}/speaker-detail/speaker-detail.ts (92%) create mode 100644 packages/demos/conference-app/angular/src/app/speaker-list/speaker-list-routing.module.ts rename packages/demos/conference-app/angular/src/{pages => app}/speaker-list/speaker-list.html (93%) create mode 100644 packages/demos/conference-app/angular/src/app/speaker-list/speaker-list.module.ts rename packages/demos/conference-app/angular/src/{pages => app}/speaker-list/speaker-list.scss (100%) rename packages/demos/conference-app/angular/src/{pages => app}/speaker-list/speaker-list.ts (81%) create mode 100644 packages/demos/conference-app/angular/src/app/support/support-routing.module.ts rename packages/demos/conference-app/angular/src/{pages => app}/support/support.html (84%) create mode 100644 packages/demos/conference-app/angular/src/app/support/support.module.ts create mode 100644 packages/demos/conference-app/angular/src/app/support/support.scss rename packages/demos/conference-app/angular/src/{pages => app}/support/support.ts (98%) create mode 100644 packages/demos/conference-app/angular/src/app/tabs-page/tabs-page-routing.module.ts create mode 100644 packages/demos/conference-app/angular/src/app/tabs-page/tabs-page.html create mode 100644 packages/demos/conference-app/angular/src/app/tabs-page/tabs-page.module.ts rename packages/demos/conference-app/angular/src/{pages => app}/tabs-page/tabs-page.scss (100%) rename packages/demos/conference-app/angular/src/{pages => app}/tabs-page/tabs-page.ts (50%) rename packages/demos/conference-app/angular/src/{pages => app}/tutorial/tutorial.html (100%) create mode 100644 packages/demos/conference-app/angular/src/app/tutorial/tutorial.module.ts rename packages/demos/conference-app/angular/src/{pages => app}/tutorial/tutorial.scss (100%) rename packages/demos/conference-app/angular/src/{pages => app}/tutorial/tutorial.ts (88%) delete mode 100644 packages/demos/conference-app/angular/src/pages/tabs-page/tabs-page.html diff --git a/packages/core/src/components/nav/nav.tsx b/packages/core/src/components/nav/nav.tsx index 7c1082bbbf..083f15554a 100644 --- a/packages/core/src/components/nav/nav.tsx +++ b/packages/core/src/components/nav/nav.tsx @@ -1332,7 +1332,7 @@ export function getTopTransaction(id: number) { } export function getDefaultTransition(config: Config) { - return config.get('mode') === 'md' ? buildMdTransition : buildIOSTransition; + return config.get('mode') === 'ios' ? buildIOSTransition : buildMdTransition; } let viewIds = VIEW_ID_START; @@ -1382,6 +1382,7 @@ export function updateTab(nav: Nav, component: any, data: any, escapeHatch: Esca // basically, we should update the nav, and then swap the tabs return promise.then((navResult) => { return tabs.select(tab).then(() => { + app.setExternalNavPromise(null); return navResult; }); }); diff --git a/packages/demos/conference-app/angular/package-lock.json b/packages/demos/conference-app/angular/package-lock.json index b4fd5a2bbb..d66bda26ad 100644 --- a/packages/demos/conference-app/angular/package-lock.json +++ b/packages/demos/conference-app/angular/package-lock.json @@ -205,7 +205,7 @@ "denodeify": "1.2.1", "ember-cli-string-utils": "1.1.0", "extract-text-webpack-plugin": "3.0.2", - "file-loader": "1.1.7", + "file-loader": "1.1.8", "fs-extra": "4.0.3", "glob": "7.1.2", "html-webpack-plugin": "2.30.1", @@ -529,9 +529,9 @@ } }, "@ionic/core": { - "version": "0.0.3-0", - "resolved": "https://registry.npmjs.org/@ionic/core/-/core-0.0.3-0.tgz", - "integrity": "sha512-6iN0ybLvIYgkZM5R9CEhyYD3N+nvV360zSu2qTVCxWyPrCODebkRIYABIQp/RZcwSscniHXoM7wL3g9whbKsEA==" + "version": "0.0.3-3", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-0.0.3-3.tgz", + "integrity": "sha512-qbMN7Bkp+UUIWSRYoi2ZSUK2LoD96rdDAGus7+Otzs7+qk3NYYov8l0Gh2wgYAL7rYZkYAY6MUMLplNwXqckNQ==" }, "@ionic/storage": { "version": "2.1.3", @@ -598,7 +598,7 @@ "requires": { "rxjs": "5.5.6", "semver": "5.5.0", - "semver-intersect": "1.3.0" + "semver-intersect": "1.3.1" }, "dependencies": { "semver": { @@ -610,9 +610,9 @@ } }, "@stencil/core": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@stencil/core/-/core-0.6.3.tgz", - "integrity": "sha512-aKN1ciTO8NMrnIsBfzc5Csg/IVBFsog0bCThtlQojZYFm3F0myA4vwsPhEjRm9wjF3ctTwusDk4M7uVLHLKhCA==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@stencil/core/-/core-0.6.5.tgz", + "integrity": "sha512-pt9e7+VJK/W+A11GzVU1ljisO270t1klu6tvbe+WJZOoxGMCZjW9OOBNAP5dbSAewfP1dsBa3SDGI/IUS5Z6dA==", "requires": { "chokidar": "2.0.1", "jsdom": "11.5.1", @@ -838,7 +838,7 @@ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "requires": { - "micromatch": "3.1.6", + "micromatch": "3.1.8", "normalize-path": "2.1.1" } }, @@ -1054,7 +1054,7 @@ "dev": true, "requires": { "browserslist": "2.11.3", - "caniuse-lite": "1.0.30000809", + "caniuse-lite": "1.0.30000810", "normalize-range": "0.1.2", "num2fraction": "1.2.2", "postcss": "6.0.19", @@ -1574,7 +1574,7 @@ "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", "dev": true, "requires": { - "caniuse-lite": "1.0.30000809", + "caniuse-lite": "1.0.30000810", "electron-to-chromium": "1.3.33" } }, @@ -1704,9 +1704,9 @@ } }, "caniuse-lite": { - "version": "1.0.30000809", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000809.tgz", - "integrity": "sha512-tLn4flj2upmMsko3larTkQh21Vp9pylnNPUOhw5+mubL+67U5Fpm4UG5AutzGBc+gBIPSsPFHDynsiMWp5m46g==", + "version": "1.0.30000810", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000810.tgz", + "integrity": "sha512-/0Q00Oie9C72P8zQHtFvzmkrMC3oOFUnMWjCy5F2+BE8lzICm91hQPhh0+XIsAFPKOe2Dh3pKgbRmU3EKxfldA==", "dev": true }, "caseless": { @@ -3266,7 +3266,7 @@ "define-property": "0.2.5", "extend-shallow": "2.0.1", "posix-character-classes": "0.1.1", - "regex-not": "1.0.0", + "regex-not": "1.0.2", "snapdragon": "0.8.1", "to-regex": "3.0.1" }, @@ -3411,7 +3411,7 @@ "on-finished": "2.3.0", "parseurl": "1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.2", + "proxy-addr": "2.0.3", "qs": "6.5.1", "range-parser": "1.2.0", "safe-buffer": "5.1.1", @@ -3466,7 +3466,7 @@ "expand-brackets": "2.1.4", "extend-shallow": "2.0.1", "fragment-cache": "0.2.1", - "regex-not": "1.0.0", + "regex-not": "1.0.2", "snapdragon": "0.8.1", "to-regex": "3.0.1" }, @@ -3576,9 +3576,9 @@ } }, "file-loader": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.7.tgz", - "integrity": "sha512-JNiSlopfWaZRMdC8swCz/aIizNe0VjrHHb6MipBhUvh5pTfoUPsrJLkYB4MYYlH+SdHbWR7AGokTe+GY5QmNBw==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.8.tgz", + "integrity": "sha512-gVsHTw9n5Sp6U5vm5MmwMyKx4uOnlmDMwtWhXMdUmQJ7w3FgGaIjqPF2k4c8KZYhRd0Ltlt6mofRTv/NfqCLuA==", "dev": true, "requires": { "loader-utils": "1.1.0", @@ -5535,9 +5535,9 @@ "dev": true }, "ipaddr.js": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.5.2.tgz", - "integrity": "sha1-1LUFvemUaYfM8PxY2QEP+WB+P6A=", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.6.0.tgz", + "integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs=", "dev": true }, "is": { @@ -7243,9 +7243,9 @@ "dev": true }, "micromatch": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.6.tgz", - "integrity": "sha512-6hezhKgmSIRZeSCiVB84GOmH1Ajvo8XgnaEq/uPQ/wv0g+MQlaVonSEru7VMDZXzRWFoclakpADfInbg/5FGjw==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.8.tgz", + "integrity": "sha512-/XeuOQqYg+B5kwjDWekXseSwGS7CzE0w9Gjo4Cjkf/uFitNh47NrZHAY2vp/oS2YQVfebPIdbEIvgdy+kIcAog==", "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", @@ -7257,7 +7257,7 @@ "kind-of": "6.0.2", "nanomatch": "1.2.9", "object.pick": "1.3.0", - "regex-not": "1.0.0", + "regex-not": "1.0.2", "snapdragon": "0.8.1", "to-regex": "3.0.1" } @@ -7457,7 +7457,7 @@ "is-windows": "1.0.2", "kind-of": "6.0.2", "object.pick": "1.3.0", - "regex-not": "1.0.0", + "regex-not": "1.0.2", "snapdragon": "0.8.1", "to-regex": "3.0.1" } @@ -8706,13 +8706,13 @@ } }, "proxy-addr": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.2.tgz", - "integrity": "sha1-ZXFQT0e7mI7IGAJT+F3X4UlSvew=", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz", + "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==", "dev": true, "requires": { "forwarded": "0.1.2", - "ipaddr.js": "1.5.2" + "ipaddr.js": "1.6.0" } }, "prr": { @@ -9016,21 +9016,12 @@ } }, "regex-not": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.0.tgz", - "integrity": "sha1-Qvg+OXcWIt+CawKvF2Ul1qXxV/k=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "requires": { - "extend-shallow": "2.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "0.1.1" - } - } + "extend-shallow": "3.0.2", + "safe-regex": "1.1.0" } }, "regexpu-core": { @@ -9224,6 +9215,11 @@ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, "right-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", @@ -9449,6 +9445,14 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "0.1.15" + } + }, "sass-graph": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", @@ -9605,9 +9609,9 @@ } }, "semver-intersect": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.3.0.tgz", - "integrity": "sha512-923f1TGXGb2+OCkLvsmNPijmurMQxEMFOhC80N4NL8/Jo5rBKufHZ3sBtJJ7GNhh4RhdsB6+vj+6W68kmr43Lg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.3.1.tgz", + "integrity": "sha1-j6hKnhAovSOeRTDRo+GB5pjYhLo=", "dev": true, "requires": { "semver": "5.5.0" @@ -10676,7 +10680,7 @@ "requires": { "define-property": "0.2.5", "extend-shallow": "2.0.1", - "regex-not": "1.0.0" + "regex-not": "1.0.2" }, "dependencies": { "define-property": { diff --git a/packages/demos/conference-app/angular/src/pages/about-popover/about-popover.ts b/packages/demos/conference-app/angular/src/app/about/about-popover.ts similarity index 71% rename from packages/demos/conference-app/angular/src/pages/about-popover/about-popover.ts rename to packages/demos/conference-app/angular/src/app/about/about-popover.ts index 83e4241b05..e43b3841d0 100644 --- a/packages/demos/conference-app/angular/src/pages/about-popover/about-popover.ts +++ b/packages/demos/conference-app/angular/src/app/about/about-popover.ts @@ -1,7 +1,5 @@ import { Component } from '@angular/core'; - -import { PublicNav } from '@ionic/core'; -import { App } from '@ionic/angular'; +import { App, PopoverController } from '@ionic/angular'; @Component({ @@ -27,15 +25,16 @@ import { App } from '@ionic/angular'; }) export class PopoverPage { - constructor(public app: App) { } + constructor(private app: App, private popoverController: PopoverController) { + + } support() { - (this.app.getRootNavs()[0] as PublicNav).push('SupportPage'); - // this.viewCtrl.dismiss(); + (this.app.getRootNavs()[0]).push('SupportPage'); + this.popoverController.dismiss(); } - close(url: string) { - window.open(url, '_blank'); - // this.viewCtrl.dismiss(); + close(_url: string) { + this.popoverController.dismiss(); } } diff --git a/packages/demos/conference-app/angular/src/app/about/about-routing.module.ts b/packages/demos/conference-app/angular/src/app/about/about-routing.module.ts new file mode 100644 index 0000000000..70683535ad --- /dev/null +++ b/packages/demos/conference-app/angular/src/app/about/about-routing.module.ts @@ -0,0 +1,14 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +import { AboutPage } from './about'; + +const routes: Routes = [ + { path: '', component: AboutPage} +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class AboutPageRoutingModule { } diff --git a/packages/demos/conference-app/angular/src/pages/about/about.html b/packages/demos/conference-app/angular/src/app/about/about.html similarity index 92% rename from packages/demos/conference-app/angular/src/pages/about/about.html rename to packages/demos/conference-app/angular/src/app/about/about.html index e3e9eba05f..23285b86e4 100644 --- a/packages/demos/conference-app/angular/src/pages/about/about.html +++ b/packages/demos/conference-app/angular/src/app/about/about.html @@ -2,9 +2,11 @@ - - - + + + + + About diff --git a/packages/demos/conference-app/angular/src/app/about/about.module.ts b/packages/demos/conference-app/angular/src/app/about/about.module.ts new file mode 100644 index 0000000000..45b301959b --- /dev/null +++ b/packages/demos/conference-app/angular/src/app/about/about.module.ts @@ -0,0 +1,30 @@ +import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { IonicAngularModule, IonicRouterModule } from '@ionic/angular'; + +import { AboutPage } from './about'; +import { PopoverPage } from './about-popover'; +import { AboutPageRoutingModule } from './about-routing.module'; + +@NgModule({ + imports: [ + CommonModule, + IonicAngularModule.forRoot(), + IonicRouterModule, + AboutPageRoutingModule + ], + declarations: [ + AboutPage, + PopoverPage + ], + entryComponents: [ + PopoverPage + ], + bootstrap: [ + AboutPage + ], + schemas: [ + CUSTOM_ELEMENTS_SCHEMA + ] +}) +export class AboutModule { } diff --git a/packages/demos/conference-app/angular/src/pages/about/about.scss b/packages/demos/conference-app/angular/src/app/about/about.scss similarity index 100% rename from packages/demos/conference-app/angular/src/pages/about/about.scss rename to packages/demos/conference-app/angular/src/app/about/about.scss diff --git a/packages/demos/conference-app/angular/src/pages/about/about.ts b/packages/demos/conference-app/angular/src/app/about/about.ts similarity index 88% rename from packages/demos/conference-app/angular/src/pages/about/about.ts rename to packages/demos/conference-app/angular/src/app/about/about.ts index 298cfb9f45..23ee1db312 100644 --- a/packages/demos/conference-app/angular/src/pages/about/about.ts +++ b/packages/demos/conference-app/angular/src/app/about/about.ts @@ -1,7 +1,7 @@ import { Component } from '@angular/core'; import { PopoverController } from '@ionic/angular'; -import { PopoverPage } from '../about-popover/about-popover'; +import { PopoverPage } from './about-popover'; @Component({ selector: 'page-about', diff --git a/packages/demos/conference-app/angular/src/app/account/account-routing.module.ts b/packages/demos/conference-app/angular/src/app/account/account-routing.module.ts new file mode 100644 index 0000000000..cb7ee609be --- /dev/null +++ b/packages/demos/conference-app/angular/src/app/account/account-routing.module.ts @@ -0,0 +1,14 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +import { AccountPage } from './account'; + +const routes: Routes = [ + { path: '', component: AccountPage} +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class AccountPageRoutingModule { } diff --git a/packages/demos/conference-app/angular/src/pages/account/account.html b/packages/demos/conference-app/angular/src/app/account/account.html similarity index 82% rename from packages/demos/conference-app/angular/src/pages/account/account.html rename to packages/demos/conference-app/angular/src/app/account/account.html index 4759c22402..079b496a94 100644 --- a/packages/demos/conference-app/angular/src/pages/account/account.html +++ b/packages/demos/conference-app/angular/src/app/account/account.html @@ -2,9 +2,11 @@ - - - + + + + + Account diff --git a/packages/demos/conference-app/angular/src/app/account/account.module.ts b/packages/demos/conference-app/angular/src/app/account/account.module.ts new file mode 100644 index 0000000000..91c535fe17 --- /dev/null +++ b/packages/demos/conference-app/angular/src/app/account/account.module.ts @@ -0,0 +1,22 @@ +import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { IonicAngularModule } from '@ionic/angular'; + +import { AccountPage } from './account'; +import { AccountPageRoutingModule } from './account-routing.module'; + +@NgModule({ + imports: [ + CommonModule, + IonicAngularModule, + + AccountPageRoutingModule + ], + declarations: [ + AccountPage, + ], + schemas: [ + CUSTOM_ELEMENTS_SCHEMA + ] +}) +export class AccountModule { } diff --git a/packages/demos/conference-app/angular/src/pages/account/account.scss b/packages/demos/conference-app/angular/src/app/account/account.scss similarity index 100% rename from packages/demos/conference-app/angular/src/pages/account/account.scss rename to packages/demos/conference-app/angular/src/app/account/account.scss diff --git a/packages/demos/conference-app/angular/src/pages/account/account.ts b/packages/demos/conference-app/angular/src/app/account/account.ts similarity index 93% rename from packages/demos/conference-app/angular/src/pages/account/account.ts rename to packages/demos/conference-app/angular/src/app/account/account.ts index 1e9bb04350..fb17e1396d 100644 --- a/packages/demos/conference-app/angular/src/pages/account/account.ts +++ b/packages/demos/conference-app/angular/src/app/account/account.ts @@ -1,9 +1,7 @@ import { Component } from '@angular/core'; - import { AlertController, NavController } from '@ionic/angular'; -import { UserData } from '../../providers/user-data'; - +import { UserData } from '../providers/user-data'; @Component({ selector: 'page-account', @@ -60,7 +58,6 @@ export class AccountPage { } changePassword() { - console.log('Clicked to change password'); } logout() { diff --git a/packages/demos/conference-app/angular/src/app/app-routing.module.ts b/packages/demos/conference-app/angular/src/app/app-routing.module.ts new file mode 100644 index 0000000000..4e2dd18404 --- /dev/null +++ b/packages/demos/conference-app/angular/src/app/app-routing.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +const routes: Routes = [ + { path: '', redirectTo: '/app/tabs/(schedule:schedule)', pathMatch: 'full' }, + { path: 'account', loadChildren: './account/account.module#AccountModule' }, + { path: 'support', loadChildren: './support/support.module#SupportModule' }, + { path: 'login', loadChildren: './login/login.module#LoginModule' }, + { path: 'sign-up', loadChildren: './sign-up/sign-up.module#SignUpModule' }, + { path: 'app', loadChildren: './tabs-page/tabs-page.module#TabsModule' }, +]; +@NgModule({ + imports: [RouterModule.forRoot(routes)], + exports: [RouterModule] +}) +export class AppRoutingModule { +} diff --git a/packages/demos/conference-app/angular/src/app/app.component.html b/packages/demos/conference-app/angular/src/app/app.component.html index eeef335b9d..6ef3dbe81a 100644 --- a/packages/demos/conference-app/angular/src/app/app.component.html +++ b/packages/demos/conference-app/angular/src/app/app.component.html @@ -2,51 +2,11 @@ - - - Menu - - - - - - - Navigate - - - - - {{p.title}} - - - - - - - Account - - - - - {{p.title}} - - - - - - - Tutorial - - - - Show Tutorial - - - - + - + + diff --git a/packages/demos/conference-app/angular/src/app/app.component.ts b/packages/demos/conference-app/angular/src/app/app.component.ts index 98468addcb..fdb85f1086 100644 --- a/packages/demos/conference-app/angular/src/app/app.component.ts +++ b/packages/demos/conference-app/angular/src/app/app.component.ts @@ -11,19 +11,8 @@ import { } from '@ionic/angular'; import { Storage } from '@ionic/storage'; -import { AboutPage } from '../pages/about/about'; -import { AccountPage } from '../pages/account/account'; -import { LoginPage } from '../pages/login/login'; -import { MapPage } from '../pages/map/map'; -import { SignupPage } from '../pages/signup/signup'; -import { TabsPage } from '../pages/tabs-page/tabs-page'; -import { TutorialPage } from '../pages/tutorial/tutorial'; -import { SchedulePage } from '../pages/schedule/schedule'; -import { SpeakerListPage } from '../pages/speaker-list/speaker-list'; -import { SupportPage } from '../pages/support/support'; - -import { ConferenceData } from '../providers/conference-data'; -import { UserData } from '../providers/user-data'; +import { ConferenceData } from './providers/conference-data'; +import { UserData } from './providers/user-data'; @Component({ selector: 'app-root', @@ -39,22 +28,25 @@ export class AppComponent implements OnInit { // the left menu only works after login // the login page disables the left menu appPages: PageInterface[] = [ - { title: 'Schedule', name: 'TabsPage', component: TabsPage, tabComponent: SchedulePage, index: 0, icon: 'calendar', color: null }, + /*{ title: 'Schedule', name: 'TabsPage', component: TabsPage, tabComponent: SchedulePage, index: 0, icon: 'calendar', color: null }, { title: 'Speakers', name: 'TabsPage', component: TabsPage, tabComponent: SpeakerListPage, index: 1, icon: 'contacts', color: null }, { title: 'Map', name: 'TabsPage', component: TabsPage, tabComponent: MapPage, index: 2, icon: 'map', color: null }, { title: 'About', name: 'TabsPage', component: TabsPage, tabComponent: AboutPage, index: 3, icon: 'information-circle', color: null } + */ ]; loggedInPages: PageInterface[] = [ - { title: 'Account', name: 'AccountPage', component: AccountPage, icon: 'person', color: null }, + /*{ title: 'Account', name: 'AccountPage', component: AccountPage, icon: 'person', color: null }, { title: 'Support', name: 'SupportPage', component: SupportPage, icon: 'help', color: null }, { title: 'Logout', name: 'TabsPage', component: TabsPage, icon: 'log-out', logsOut: true, color: null } + */ ]; loggedOutPages: PageInterface[] = [ - { title: 'Login', name: 'LoginPage', component: LoginPage, icon: 'log-in', color: null }, + /*{ title: 'Login', name: 'LoginPage', component: LoginPage, icon: 'log-in', color: null }, { title: 'Support', name: 'SupportPage', component: SupportPage, icon: 'help', color: null }, { title: 'Signup', name: 'SignupPage', component: SignupPage, icon: 'person-add', color: null } + */ ]; constructor( @@ -70,26 +62,18 @@ export class AppComponent implements OnInit { this.storage.get('hasSeenTutorial') .then((hasSeenTutorial) => { if (hasSeenTutorial) { - this.rootPage = TabsPage; + // this.rootPage = TabsPage; } else { - this.rootPage = TutorialPage; + // this.rootPage = TutorialPage; } getNav(this.navRef).then((navElement) => { - navElement.setRoot(this.rootPage); + // navElement.setRoot(this.rootPage); }); }); // load the conference data this.confData.load(); - // decide which menu items should be hidden by current login status stored in local storage - this.userData.hasLoggedIn().then((hasLoggedIn) => { - this.enableMenu(hasLoggedIn === true); - }); - this.enableMenu(true); - - this.listenToLoginEvents(); - return getNav(this.navRef).then(() => { this.appPages = this.appPages.concat([]); }); @@ -122,7 +106,7 @@ export class AppComponent implements OnInit { } return getNav(this.navRef).then(() => { - return nav.setRoot(page.component, params); + // return nav.setRoot(page.component, params); }).then(() => { if (page.logsOut === true) { // Give the menu time to close before changing to logged out @@ -133,34 +117,15 @@ export class AppComponent implements OnInit { openTutorial() { return getNav(this.navRef).then((navElement) => { - navElement.setRoot(TutorialPage); + // navElement.setRoot(TutorialPage); }); } - listenToLoginEvents() { - this.events.subscribe('user:login', () => { - this.enableMenu(true); - }); - - this.events.subscribe('user:signup', () => { - this.enableMenu(true); - }); - - this.events.subscribe('user:logout', () => { - this.enableMenu(false); - }); - } - - enableMenu(loggedIn: boolean) { - this.menu.enable(loggedIn, 'loggedInMenu'); - this.menu.enable(!loggedIn, 'loggedOutMenu'); - } - isActive(page: PageInterface) { if (!nav) { return; } - if (nav.root === TabsPage) { + /*if (nav.root === TabsPage) { const selectedTab = nav.element.querySelector('ion-tab-button.selected-tab'); const childNav = selectedTab.querySelector('ion-nav'); if ( childNav.root === page.component) { @@ -173,6 +138,7 @@ export class AppComponent implements OnInit { } page.color = ''; } + */ } } diff --git a/packages/demos/conference-app/angular/src/app/app.module.ts b/packages/demos/conference-app/angular/src/app/app.module.ts index 7e403ab24f..4a2a3edf82 100644 --- a/packages/demos/conference-app/angular/src/app/app.module.ts +++ b/packages/demos/conference-app/angular/src/app/app.module.ts @@ -3,71 +3,30 @@ import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { FormsModule } from '@angular/forms'; import { HttpModule } from '@angular/http'; -import { IonicAngularModule } from '@ionic/angular'; +import { IonicAngularModule, IonicRouterModule } from '@ionic/angular'; import { IonicStorageModule } from '@ionic/storage'; import { InAppBrowser } from '@ionic-native/in-app-browser'; import { SplashScreen } from '@ionic-native/splash-screen'; +import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; +import { Menu } from './menu/menu'; -import { AboutPage } from '../pages/about/about'; -import { PopoverPage } from '../pages/about-popover/about-popover'; -import { AccountPage } from '../pages/account/account'; -import { LoginPage } from '../pages/login/login'; -import { MapPage } from '../pages/map/map'; -import { SchedulePage } from '../pages/schedule/schedule'; -import { ScheduleFilterPage } from '../pages/schedule-filter/schedule-filter'; -import { SessionDetailPage } from '../pages/session-detail/session-detail'; -import { SignupPage } from '../pages/signup/signup'; -import { SpeakerDetailPage } from '../pages/speaker-detail/speaker-detail'; -import { SpeakerListPage } from '../pages/speaker-list/speaker-list'; -import { SupportPage } from '../pages/support/support'; -import { TabsPage } from '../pages/tabs-page/tabs-page'; -import { TutorialPage } from '../pages/tutorial/tutorial'; - -import { ConferenceData } from '../providers/conference-data'; -import { UserData } from '../providers/user-data'; +import { ConferenceData } from './providers/conference-data'; +import { UserData } from './providers/user-data'; @NgModule({ declarations: [ - AboutPage, - AccountPage, AppComponent, - LoginPage, - MapPage, - PopoverPage, - SchedulePage, - ScheduleFilterPage, - SessionDetailPage, - SignupPage, - SpeakerDetailPage, - SpeakerListPage, - SupportPage, - TabsPage, - TutorialPage - ], - entryComponents: [ - AboutPage, - AccountPage, - LoginPage, - MapPage, - PopoverPage, - SchedulePage, - ScheduleFilterPage, - SessionDetailPage, - SignupPage, - SpeakerDetailPage, - SpeakerListPage, - SupportPage, - TabsPage, - TutorialPage + Menu ], imports: [ + AppRoutingModule, BrowserModule, - FormsModule, HttpModule, IonicAngularModule.forRoot(), - IonicStorageModule.forRoot() + IonicStorageModule.forRoot(), + IonicRouterModule.forRoot() ], providers: [ ConferenceData, diff --git a/packages/demos/conference-app/angular/src/app/interfaces/user-options.ts b/packages/demos/conference-app/angular/src/app/interfaces/user-options.ts new file mode 100644 index 0000000000..16437e175d --- /dev/null +++ b/packages/demos/conference-app/angular/src/app/interfaces/user-options.ts @@ -0,0 +1,5 @@ + +export interface UserOptions { + username: string; + password: string; +} diff --git a/packages/demos/conference-app/angular/src/app/login/login-routing.module.ts b/packages/demos/conference-app/angular/src/app/login/login-routing.module.ts new file mode 100644 index 0000000000..7e5cfb68eb --- /dev/null +++ b/packages/demos/conference-app/angular/src/app/login/login-routing.module.ts @@ -0,0 +1,14 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +import { LoginPage } from './login'; + +const routes: Routes = [ + { path: '', component: LoginPage} +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class LoginPageRoutingModule { } diff --git a/packages/demos/conference-app/angular/src/pages/login/login.html b/packages/demos/conference-app/angular/src/app/login/login.html similarity index 79% rename from packages/demos/conference-app/angular/src/pages/login/login.html rename to packages/demos/conference-app/angular/src/app/login/login.html index 755ec27e9b..78327e3d54 100644 --- a/packages/demos/conference-app/angular/src/pages/login/login.html +++ b/packages/demos/conference-app/angular/src/app/login/login.html @@ -2,9 +2,11 @@ - - - + + + + + Login @@ -40,10 +42,10 @@ - + Login - + Signup diff --git a/packages/demos/conference-app/angular/src/app/login/login.module.ts b/packages/demos/conference-app/angular/src/app/login/login.module.ts new file mode 100644 index 0000000000..cb37b5da1b --- /dev/null +++ b/packages/demos/conference-app/angular/src/app/login/login.module.ts @@ -0,0 +1,24 @@ +import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { IonicAngularModule } from '@ionic/angular'; + +import { LoginPage } from './login'; +import { LoginPageRoutingModule } from './login-routing.module'; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + IonicAngularModule, + + LoginPageRoutingModule + ], + declarations: [ + LoginPage, + ], + schemas: [ + CUSTOM_ELEMENTS_SCHEMA + ] +}) +export class LoginModule { } diff --git a/packages/demos/conference-app/angular/src/pages/login/login.scss b/packages/demos/conference-app/angular/src/app/login/login.scss similarity index 100% rename from packages/demos/conference-app/angular/src/pages/login/login.scss rename to packages/demos/conference-app/angular/src/app/login/login.scss diff --git a/packages/demos/conference-app/angular/src/pages/login/login.ts b/packages/demos/conference-app/angular/src/app/login/login.ts similarity index 66% rename from packages/demos/conference-app/angular/src/pages/login/login.ts rename to packages/demos/conference-app/angular/src/app/login/login.ts index a0624d3f21..bc159ea817 100644 --- a/packages/demos/conference-app/angular/src/pages/login/login.ts +++ b/packages/demos/conference-app/angular/src/app/login/login.ts @@ -3,12 +3,8 @@ import { NgForm } from '@angular/forms'; import { NavController } from '@ionic/angular'; -import { UserData } from '../../providers/user-data'; - -import { UserOptions } from '../../interfaces/user-options'; - -import { TabsPage } from '../tabs-page/tabs-page'; -import { SignupPage } from '../signup/signup'; +import { UserData } from '../providers/user-data'; +import { UserOptions } from '../interfaces/user-options'; @Component({ @@ -27,11 +23,11 @@ export class LoginPage { if (form.valid) { this.userData.login(this.login.username); - this.navCtrl.push(TabsPage); + // this.navCtrl.push(TabsPage); } } onSignup() { - this.navCtrl.push(SignupPage); + // this.navCtrl.push(SignUpPage); } } diff --git a/packages/demos/conference-app/angular/src/app/map/map-routing.module.ts b/packages/demos/conference-app/angular/src/app/map/map-routing.module.ts new file mode 100644 index 0000000000..bd19541a1d --- /dev/null +++ b/packages/demos/conference-app/angular/src/app/map/map-routing.module.ts @@ -0,0 +1,14 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +import { MapPage } from './map'; + +const routes: Routes = [ + { path: '', component: MapPage} +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class MapPageRoutingModule { } diff --git a/packages/demos/conference-app/angular/src/pages/map/map.html b/packages/demos/conference-app/angular/src/app/map/map.html similarity index 64% rename from packages/demos/conference-app/angular/src/pages/map/map.html rename to packages/demos/conference-app/angular/src/app/map/map.html index 1ef5e0642a..9c4d141156 100644 --- a/packages/demos/conference-app/angular/src/pages/map/map.html +++ b/packages/demos/conference-app/angular/src/app/map/map.html @@ -2,9 +2,11 @@ - - - + + + + + Map diff --git a/packages/demos/conference-app/angular/src/app/map/map.module.ts b/packages/demos/conference-app/angular/src/app/map/map.module.ts new file mode 100644 index 0000000000..13c244818c --- /dev/null +++ b/packages/demos/conference-app/angular/src/app/map/map.module.ts @@ -0,0 +1,22 @@ +import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { IonicAngularModule, IonicRouterModule } from '@ionic/angular'; + +import { MapPage } from './map'; +import { MapPageRoutingModule } from './map-routing.module'; + +@NgModule({ + imports: [ + CommonModule, + IonicAngularModule, + IonicRouterModule, + MapPageRoutingModule + ], + declarations: [ + MapPage, + ], + schemas: [ + CUSTOM_ELEMENTS_SCHEMA + ] +}) +export class MapModule { } diff --git a/packages/demos/conference-app/angular/src/pages/map/map.scss b/packages/demos/conference-app/angular/src/app/map/map.scss similarity index 100% rename from packages/demos/conference-app/angular/src/pages/map/map.scss rename to packages/demos/conference-app/angular/src/app/map/map.scss diff --git a/packages/demos/conference-app/angular/src/pages/map/map.ts b/packages/demos/conference-app/angular/src/app/map/map.ts similarity index 93% rename from packages/demos/conference-app/angular/src/pages/map/map.ts rename to packages/demos/conference-app/angular/src/app/map/map.ts index 7950f7d959..5f214c4ad1 100644 --- a/packages/demos/conference-app/angular/src/pages/map/map.ts +++ b/packages/demos/conference-app/angular/src/app/map/map.ts @@ -1,6 +1,6 @@ import { Component, ViewChild, ViewEncapsulation, ElementRef } from '@angular/core'; -import { ConferenceData } from '../../providers/conference-data'; +import { ConferenceData } from '../providers/conference-data'; declare var google: any; @@ -14,6 +14,7 @@ export class MapPage { @ViewChild('mapCanvas') mapElement: ElementRef; constructor(public confData: ConferenceData) { + console.log('map component constructor'); } ionViewDidEnter() { diff --git a/packages/demos/conference-app/angular/src/app/menu/menu.html b/packages/demos/conference-app/angular/src/app/menu/menu.html new file mode 100644 index 0000000000..fcb53af3b7 --- /dev/null +++ b/packages/demos/conference-app/angular/src/app/menu/menu.html @@ -0,0 +1,130 @@ + + + + Menu + + + + + + + Navigate + + + + + + Schedule + + + + + + + + Speakers + + + + + + + + + Map + + + + + + + + + About + + + + + + + + Account + + + + + + + Account + + + + + + + + + Support + + + + + + + + + Logout + + + + + + + + + Account + + + + + + + Login + + + + + + + + + Support + + + + + + + + + Sign-up + + + + + + + + Tutorial + + + + + Show Tutorial + + + + + + + \ No newline at end of file diff --git a/packages/demos/conference-app/angular/src/app/menu/menu.module.ts b/packages/demos/conference-app/angular/src/app/menu/menu.module.ts new file mode 100644 index 0000000000..314ddbb2bb --- /dev/null +++ b/packages/demos/conference-app/angular/src/app/menu/menu.module.ts @@ -0,0 +1,19 @@ +import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { IonicAngularModule } from '@ionic/angular'; + +import { Menu } from './menu'; + +@NgModule({ + imports: [ + CommonModule, + IonicAngularModule.forRoot(), + ], + declarations: [ + Menu, + ], + schemas: [ + CUSTOM_ELEMENTS_SCHEMA + ] +}) +export class MenuModule { } diff --git a/packages/demos/conference-app/angular/src/pages/signup/signup.scss b/packages/demos/conference-app/angular/src/app/menu/menu.scss similarity index 100% rename from packages/demos/conference-app/angular/src/pages/signup/signup.scss rename to packages/demos/conference-app/angular/src/app/menu/menu.scss diff --git a/packages/demos/conference-app/angular/src/app/menu/menu.ts b/packages/demos/conference-app/angular/src/app/menu/menu.ts new file mode 100644 index 0000000000..59d4cf57b5 --- /dev/null +++ b/packages/demos/conference-app/angular/src/app/menu/menu.ts @@ -0,0 +1,73 @@ +import { Component, OnInit } from '@angular/core'; +import { Router } from '@angular/router'; +import { Events } from '@ionic/angular'; + +import { UserData } from '../providers/user-data'; + +@Component({ + templateUrl: 'menu.html', + selector: 'app-menu' +}) +export class Menu implements OnInit { + + loggedIn = false; + constructor(private router: Router, + private events: Events, + private userData: UserData) { + + } + + ngOnInit() { + this.checkLoginStatus(); + this.listenForLoginEvents(); + setInterval(() => { + this.loggedIn = !this.loggedIn; + }, 2000); + } + + checkLoginStatus() { + return this.userData.isLoggedIn().then((loggedIn) => { + this.loggedIn = loggedIn; + console.log('this.loggedIn: ', this.loggedIn); + }); + } + + listenForLoginEvents() { + this.events.subscribe('user:login', () => { + this.loggedIn = true; + }); + + this.events.subscribe('user:signup', () => { + this.loggedIn = true; + }); + + this.events.subscribe('user:logout', () => { + this.loggedIn = false; + }); + } + + selectTab(index: number) { + const tabs = document.querySelector('ion-tabs'); + if (tabs) { + return tabs.componentOnReady().then(() => { + return tabs.select(index); + }); + } + } + + login() { + this.router.navigateByUrl('/login'); + } + + signup() { + this.router.navigateByUrl('/sign-up'); + } + + openSupport() { + this.router.navigateByUrl('/support'); + } + + openTutorial() { + alert('todo tutorial'); + } +} diff --git a/packages/demos/conference-app/angular/src/providers/conference-data.ts b/packages/demos/conference-app/angular/src/app/providers/conference-data.ts similarity index 100% rename from packages/demos/conference-app/angular/src/providers/conference-data.ts rename to packages/demos/conference-app/angular/src/app/providers/conference-data.ts diff --git a/packages/demos/conference-app/angular/src/providers/user-data.ts b/packages/demos/conference-app/angular/src/app/providers/user-data.ts similarity index 98% rename from packages/demos/conference-app/angular/src/providers/user-data.ts rename to packages/demos/conference-app/angular/src/app/providers/user-data.ts index 77d933df35..46935c66f3 100644 --- a/packages/demos/conference-app/angular/src/providers/user-data.ts +++ b/packages/demos/conference-app/angular/src/app/providers/user-data.ts @@ -62,7 +62,7 @@ export class UserData { }); } - hasLoggedIn(): Promise { + isLoggedIn(): Promise { return this.storage.get(this.HAS_LOGGED_IN).then((value) => { return value === true; }); diff --git a/packages/demos/conference-app/angular/src/pages/schedule-filter/schedule-filter.html b/packages/demos/conference-app/angular/src/app/schedule/schedule-filter.html similarity index 100% rename from packages/demos/conference-app/angular/src/pages/schedule-filter/schedule-filter.html rename to packages/demos/conference-app/angular/src/app/schedule/schedule-filter.html diff --git a/packages/demos/conference-app/angular/src/pages/schedule-filter/schedule-filter.scss b/packages/demos/conference-app/angular/src/app/schedule/schedule-filter.scss similarity index 100% rename from packages/demos/conference-app/angular/src/pages/schedule-filter/schedule-filter.scss rename to packages/demos/conference-app/angular/src/app/schedule/schedule-filter.scss diff --git a/packages/demos/conference-app/angular/src/pages/schedule-filter/schedule-filter.ts b/packages/demos/conference-app/angular/src/app/schedule/schedule-filter.ts similarity index 84% rename from packages/demos/conference-app/angular/src/pages/schedule-filter/schedule-filter.ts rename to packages/demos/conference-app/angular/src/app/schedule/schedule-filter.ts index 53243b9ccd..2800e484a3 100644 --- a/packages/demos/conference-app/angular/src/pages/schedule-filter/schedule-filter.ts +++ b/packages/demos/conference-app/angular/src/app/schedule/schedule-filter.ts @@ -1,9 +1,7 @@ import { Component } from '@angular/core'; - import { ModalController, NavParams } from '@ionic/angular'; -import { ConferenceData } from '../../providers/conference-data'; - +import { ConferenceData } from '../providers/conference-data'; @Component({ selector: 'page-schedule-filter', @@ -17,9 +15,10 @@ export class ScheduleFilterPage { public modalController: ModalController, public navParams: NavParams, ) { - // passed in array of track names that should be excluded (unchecked) - const excludedTrackNames = this.navParams.data; + } + ngAfterViewInit() { + const excludedTrackNames = this.navParams.data.excludedTracks; this.confData.getTracks().subscribe((trackNames: string[]) => { trackNames.forEach(trackName => { @@ -28,6 +27,7 @@ export class ScheduleFilterPage { isChecked: (excludedTrackNames.indexOf(trackName) === -1) }); }); + console.log('this.tracks: ', this.tracks); }); } diff --git a/packages/demos/conference-app/angular/src/app/schedule/schedule-routing.module.ts b/packages/demos/conference-app/angular/src/app/schedule/schedule-routing.module.ts new file mode 100644 index 0000000000..1d6b9fb57c --- /dev/null +++ b/packages/demos/conference-app/angular/src/app/schedule/schedule-routing.module.ts @@ -0,0 +1,14 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +import { SchedulePage } from './schedule'; + +const routes: Routes = [ + { path: '', component: SchedulePage} +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class SchedulePageRoutingModule { } diff --git a/packages/demos/conference-app/angular/src/pages/schedule/schedule.html b/packages/demos/conference-app/angular/src/app/schedule/schedule.html similarity index 93% rename from packages/demos/conference-app/angular/src/pages/schedule/schedule.html rename to packages/demos/conference-app/angular/src/app/schedule/schedule.html index 9db79df50d..e9b7863701 100644 --- a/packages/demos/conference-app/angular/src/pages/schedule/schedule.html +++ b/packages/demos/conference-app/angular/src/app/schedule/schedule.html @@ -2,9 +2,11 @@ - - - + + + + + diff --git a/packages/demos/conference-app/angular/src/app/schedule/schedule.module.ts b/packages/demos/conference-app/angular/src/app/schedule/schedule.module.ts new file mode 100644 index 0000000000..f8e8239709 --- /dev/null +++ b/packages/demos/conference-app/angular/src/app/schedule/schedule.module.ts @@ -0,0 +1,27 @@ +import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { IonicAngularModule, IonicRouterModule } from '@ionic/angular'; + +import { SchedulePage } from './schedule'; +import { ScheduleFilterPage } from './schedule-filter'; +import { SchedulePageRoutingModule } from './schedule-routing.module'; + +@NgModule({ + imports: [ + CommonModule, + IonicAngularModule.forRoot(), + IonicRouterModule, + SchedulePageRoutingModule + ], + declarations: [ + SchedulePage, + ScheduleFilterPage + ], + entryComponents: [ + ScheduleFilterPage + ], + schemas: [ + CUSTOM_ELEMENTS_SCHEMA + ] +}) +export class ScheduleModule { } diff --git a/packages/demos/conference-app/angular/src/pages/schedule/schedule.scss b/packages/demos/conference-app/angular/src/app/schedule/schedule.scss similarity index 100% rename from packages/demos/conference-app/angular/src/pages/schedule/schedule.scss rename to packages/demos/conference-app/angular/src/app/schedule/schedule.scss diff --git a/packages/demos/conference-app/angular/src/pages/schedule/schedule.ts b/packages/demos/conference-app/angular/src/app/schedule/schedule.ts similarity index 81% rename from packages/demos/conference-app/angular/src/pages/schedule/schedule.ts rename to packages/demos/conference-app/angular/src/app/schedule/schedule.ts index 33f55fbcb7..ae03c40946 100644 --- a/packages/demos/conference-app/angular/src/pages/schedule/schedule.ts +++ b/packages/demos/conference-app/angular/src/app/schedule/schedule.ts @@ -1,5 +1,5 @@ -import { Component, ViewChild } from '@angular/core'; - +import { Component, ViewChild, ElementRef } from '@angular/core'; +import { Router } from '@angular/router'; import { AlertController, App, @@ -9,20 +9,9 @@ import { ToastController } from '@ionic/angular'; -import { Fab, ItemSliding, List, /*Refresher*/ } from '@ionic/core'; - -/* - To learn how to use third party libs in an - Ionic app check out our docs here: http://ionicframework.com/docs/v2/resources/third-party-libs/ -*/ -// import moment from 'moment'; - -import { ConferenceData } from '../../providers/conference-data'; -import { UserData } from '../../providers/user-data'; - -import { SessionDetailPage } from '../session-detail/session-detail'; -import { ScheduleFilterPage } from '../schedule-filter/schedule-filter'; - +import { ScheduleFilterPage } from './schedule-filter'; +import { ConferenceData } from '../providers/conference-data'; +import { UserData } from '../providers/user-data'; @Component({ selector: 'page-schedule', @@ -34,7 +23,7 @@ export class SchedulePage { // @ViewChild('scheduleList') gets a reference to the list // with the variable #scheduleList, `read: List` tells it to return // the List and not a reference to the element - @ViewChild('scheduleList', { read: List }) scheduleList: List; + @ViewChild('scheduleList', { read: ElementRef }) scheduleList: ElementRef; dayIndex = 0; queryText = ''; @@ -53,6 +42,7 @@ export class SchedulePage { public toastCtrl: ToastController, public confData: ConferenceData, public user: UserData, + private router: Router ) {} ionViewDidEnter() { @@ -75,7 +65,7 @@ export class SchedulePage { presentFilter() { const modal = this.modalCtrl.create({ component: ScheduleFilterPage, - data: this.excludeTracks + data: { excludedTracks: this.excludeTracks } }); modal.present(); @@ -91,11 +81,10 @@ export class SchedulePage { goToSessionDetail(sessionData: any) { // go to the session detail page // and pass in the session data - - this.navCtrl.push(SessionDetailPage, { sessionId: sessionData.id, name: sessionData.name }); + this.router.navigateByUrl(`app/tabs/(schedule:session/${sessionData.id})`); } - addFavorite(slidingItem: ItemSliding, sessionData: any) { + addFavorite(slidingItem: HTMLIonItemSlidingElement, sessionData: any) { if (this.user.hasFavorite(sessionData.name)) { // woops, they already favorited it! What shall we do!? @@ -122,7 +111,7 @@ export class SchedulePage { } - removeFavorite(slidingItem: ItemSliding, sessionData: any, title: string) { + removeFavorite(slidingItem: HTMLIonItemSlidingElement, sessionData: any, title: string) { const alert = this.alertCtrl.create({ title: title, message: 'Would you like to remove this session from your favorites?', @@ -152,7 +141,7 @@ export class SchedulePage { alert.present(); } - openSocial(network: string, fab: Fab) { + openSocial(network: string, fab: HTMLIonFabElement) { const loading = this.loadingCtrl.create({ content: `Posting to ${network}`, duration: (Math.random() * 1000) + 500 diff --git a/packages/demos/conference-app/angular/src/app/session-detail/session-detail-routing.module.ts b/packages/demos/conference-app/angular/src/app/session-detail/session-detail-routing.module.ts new file mode 100644 index 0000000000..98348975d2 --- /dev/null +++ b/packages/demos/conference-app/angular/src/app/session-detail/session-detail-routing.module.ts @@ -0,0 +1,14 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +import { SessionDetailPage } from './session-detail'; + +const routes: Routes = [ + { path: '', component: SessionDetailPage} +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class SessionDetailPageRoutingModule { } diff --git a/packages/demos/conference-app/angular/src/pages/session-detail/session-detail.html b/packages/demos/conference-app/angular/src/app/session-detail/session-detail.html similarity index 58% rename from packages/demos/conference-app/angular/src/pages/session-detail/session-detail.html rename to packages/demos/conference-app/angular/src/app/session-detail/session-detail.html index 432300a6d6..e05fb504a2 100644 --- a/packages/demos/conference-app/angular/src/pages/session-detail/session-detail.html +++ b/packages/demos/conference-app/angular/src/app/session-detail/session-detail.html @@ -1,7 +1,15 @@ - {{session.name}} + + + + + + + + + {{session?.name}} diff --git a/packages/demos/conference-app/angular/src/pages/session-detail/session-detail.ts b/packages/demos/conference-app/angular/src/app/session-detail/session-detail.ts similarity index 93% rename from packages/demos/conference-app/angular/src/pages/session-detail/session-detail.ts rename to packages/demos/conference-app/angular/src/app/session-detail/session-detail.ts index 420089e2b9..2bc8345c19 100644 --- a/packages/demos/conference-app/angular/src/pages/session-detail/session-detail.ts +++ b/packages/demos/conference-app/angular/src/app/session-detail/session-detail.ts @@ -1,7 +1,7 @@ import { Component } from '@angular/core'; import { NavParams } from '@ionic/angular'; -import { ConferenceData } from '../../providers/conference-data'; +import { ConferenceData } from '../providers/conference-data'; @Component({ selector: 'page-session-detail', diff --git a/packages/demos/conference-app/angular/src/app/session-detail/session.module.ts b/packages/demos/conference-app/angular/src/app/session-detail/session.module.ts new file mode 100644 index 0000000000..d515c217e7 --- /dev/null +++ b/packages/demos/conference-app/angular/src/app/session-detail/session.module.ts @@ -0,0 +1,19 @@ +import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +import { SessionDetailPage } from './session-detail'; +import { SessionDetailPageRoutingModule } from './session-detail-routing.module'; + +@NgModule({ + imports: [ + CommonModule, + SessionDetailPageRoutingModule + ], + declarations: [ + SessionDetailPage, + ], + schemas: [ + CUSTOM_ELEMENTS_SCHEMA + ] +}) +export class SessionDetailModule { } diff --git a/packages/demos/conference-app/angular/src/app/sign-up/sign-up-routing.module.ts b/packages/demos/conference-app/angular/src/app/sign-up/sign-up-routing.module.ts new file mode 100644 index 0000000000..2f59f89c96 --- /dev/null +++ b/packages/demos/conference-app/angular/src/app/sign-up/sign-up-routing.module.ts @@ -0,0 +1,14 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +import { SignUpPage } from './sign-up'; + +const routes: Routes = [ + { path: '', component: SignUpPage} +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class SignUpPageRoutingModule { } diff --git a/packages/demos/conference-app/angular/src/pages/signup/signup.html b/packages/demos/conference-app/angular/src/app/sign-up/sign-up.html similarity index 84% rename from packages/demos/conference-app/angular/src/pages/signup/signup.html rename to packages/demos/conference-app/angular/src/app/sign-up/sign-up.html index a19b29ad09..d9fa2e5c05 100644 --- a/packages/demos/conference-app/angular/src/pages/signup/signup.html +++ b/packages/demos/conference-app/angular/src/app/sign-up/sign-up.html @@ -2,9 +2,13 @@ - - - + + + + + + + Signup diff --git a/packages/demos/conference-app/angular/src/app/sign-up/sign-up.module.ts b/packages/demos/conference-app/angular/src/app/sign-up/sign-up.module.ts new file mode 100644 index 0000000000..3c8904314e --- /dev/null +++ b/packages/demos/conference-app/angular/src/app/sign-up/sign-up.module.ts @@ -0,0 +1,24 @@ +import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { IonicAngularModule } from '@ionic/angular'; + +import { SignUpPage } from './sign-up'; +import { SignUpPageRoutingModule } from './sign-up-routing.module'; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + IonicAngularModule, + + SignUpPageRoutingModule + ], + declarations: [ + SignUpPage, + ], + schemas: [ + CUSTOM_ELEMENTS_SCHEMA + ] +}) +export class SignUpModule { } diff --git a/packages/demos/conference-app/angular/src/pages/support/support.scss b/packages/demos/conference-app/angular/src/app/sign-up/sign-up.scss similarity index 100% rename from packages/demos/conference-app/angular/src/pages/support/support.scss rename to packages/demos/conference-app/angular/src/app/sign-up/sign-up.scss diff --git a/packages/demos/conference-app/angular/src/pages/signup/signup.ts b/packages/demos/conference-app/angular/src/app/sign-up/sign-up.ts similarity index 61% rename from packages/demos/conference-app/angular/src/pages/signup/signup.ts rename to packages/demos/conference-app/angular/src/app/sign-up/sign-up.ts index a0480b1241..9455115f13 100644 --- a/packages/demos/conference-app/angular/src/pages/signup/signup.ts +++ b/packages/demos/conference-app/angular/src/app/sign-up/sign-up.ts @@ -3,19 +3,17 @@ import { NgForm } from '@angular/forms'; import { NavController } from '@ionic/angular'; -import { UserData } from '../../providers/user-data'; +import { UserData } from '../providers/user-data'; -import { UserOptions } from '../../interfaces/user-options'; - -import { TabsPage } from '../tabs-page/tabs-page'; +import { UserOptions } from '../interfaces/user-options'; @Component({ selector: 'page-user', - templateUrl: 'signup.html', - styleUrls: ['./signup.scss'] + templateUrl: 'sign-up.html', + styleUrls: ['./sign-up.scss'] }) -export class SignupPage { +export class SignUpPage { signup: UserOptions = { username: '', password: '' }; submitted = false; @@ -26,7 +24,7 @@ export class SignupPage { if (form.valid) { this.userData.signup(this.signup.username); - this.navCtrl.push(TabsPage); + // this.navCtrl.push(TabsPage); } } } diff --git a/packages/demos/conference-app/angular/src/app/speaker-detail/speaker-detail-routing.module.ts b/packages/demos/conference-app/angular/src/app/speaker-detail/speaker-detail-routing.module.ts new file mode 100644 index 0000000000..f36d481040 --- /dev/null +++ b/packages/demos/conference-app/angular/src/app/speaker-detail/speaker-detail-routing.module.ts @@ -0,0 +1,14 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +import { SpeakerDetailPage } from './speaker-detail'; + +const routes: Routes = [ + { path: '', component: SpeakerDetailPage} +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class SpeakerDetailPageRoutingModule { } diff --git a/packages/demos/conference-app/angular/src/pages/speaker-detail/speaker-detail.html b/packages/demos/conference-app/angular/src/app/speaker-detail/speaker-detail.html similarity index 87% rename from packages/demos/conference-app/angular/src/pages/speaker-detail/speaker-detail.html rename to packages/demos/conference-app/angular/src/app/speaker-detail/speaker-detail.html index 079e7dcc80..be950e861b 100644 --- a/packages/demos/conference-app/angular/src/pages/speaker-detail/speaker-detail.html +++ b/packages/demos/conference-app/angular/src/app/speaker-detail/speaker-detail.html @@ -1,6 +1,9 @@ + + + {{speaker?.name}} diff --git a/packages/demos/conference-app/angular/src/app/speaker-detail/speaker-detail.module.ts b/packages/demos/conference-app/angular/src/app/speaker-detail/speaker-detail.module.ts new file mode 100644 index 0000000000..07970dd24e --- /dev/null +++ b/packages/demos/conference-app/angular/src/app/speaker-detail/speaker-detail.module.ts @@ -0,0 +1,19 @@ +import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +import { SpeakerDetailPage } from './speaker-detail'; +import { SpeakerDetailPageRoutingModule } from './speaker-detail-routing.module'; + +@NgModule({ + imports: [ + CommonModule, + SpeakerDetailPageRoutingModule + ], + declarations: [ + SpeakerDetailPage, + ], + schemas: [ + CUSTOM_ELEMENTS_SCHEMA + ] +}) +export class SpeakerDetailModule { } diff --git a/packages/demos/conference-app/angular/src/pages/speaker-detail/speaker-detail.scss b/packages/demos/conference-app/angular/src/app/speaker-detail/speaker-detail.scss similarity index 100% rename from packages/demos/conference-app/angular/src/pages/speaker-detail/speaker-detail.scss rename to packages/demos/conference-app/angular/src/app/speaker-detail/speaker-detail.scss diff --git a/packages/demos/conference-app/angular/src/pages/speaker-detail/speaker-detail.ts b/packages/demos/conference-app/angular/src/app/speaker-detail/speaker-detail.ts similarity index 92% rename from packages/demos/conference-app/angular/src/pages/speaker-detail/speaker-detail.ts rename to packages/demos/conference-app/angular/src/app/speaker-detail/speaker-detail.ts index 99571090df..b5888c5788 100644 --- a/packages/demos/conference-app/angular/src/pages/speaker-detail/speaker-detail.ts +++ b/packages/demos/conference-app/angular/src/app/speaker-detail/speaker-detail.ts @@ -1,7 +1,7 @@ import { Component } from '@angular/core'; import { NavController, NavParams } from '@ionic/angular'; -import { ConferenceData } from '../../providers/conference-data'; +import { ConferenceData } from '../providers/conference-data'; @Component({ selector: 'page-speaker-detail', diff --git a/packages/demos/conference-app/angular/src/app/speaker-list/speaker-list-routing.module.ts b/packages/demos/conference-app/angular/src/app/speaker-list/speaker-list-routing.module.ts new file mode 100644 index 0000000000..b0150abe42 --- /dev/null +++ b/packages/demos/conference-app/angular/src/app/speaker-list/speaker-list-routing.module.ts @@ -0,0 +1,14 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +import { SpeakerListPage } from './speaker-list'; + +const routes: Routes = [ + { path: '', component: SpeakerListPage} +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class SpeakerListPageRoutingModule { } diff --git a/packages/demos/conference-app/angular/src/pages/speaker-list/speaker-list.html b/packages/demos/conference-app/angular/src/app/speaker-list/speaker-list.html similarity index 93% rename from packages/demos/conference-app/angular/src/pages/speaker-list/speaker-list.html rename to packages/demos/conference-app/angular/src/app/speaker-list/speaker-list.html index 60e5fdf8c1..ca6a880e84 100644 --- a/packages/demos/conference-app/angular/src/pages/speaker-list/speaker-list.html +++ b/packages/demos/conference-app/angular/src/app/speaker-list/speaker-list.html @@ -2,9 +2,11 @@ - - - + + + + + Speakers diff --git a/packages/demos/conference-app/angular/src/app/speaker-list/speaker-list.module.ts b/packages/demos/conference-app/angular/src/app/speaker-list/speaker-list.module.ts new file mode 100644 index 0000000000..54783fbe76 --- /dev/null +++ b/packages/demos/conference-app/angular/src/app/speaker-list/speaker-list.module.ts @@ -0,0 +1,22 @@ +import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { IonicAngularModule, IonicRouterModule} from '@ionic/angular'; + +import { SpeakerListPage } from './speaker-list'; +import { SpeakerListPageRoutingModule } from './speaker-list-routing.module'; + +@NgModule({ + imports: [ + CommonModule, + IonicAngularModule, + IonicRouterModule, + SpeakerListPageRoutingModule + ], + declarations: [ + SpeakerListPage, + ], + schemas: [ + CUSTOM_ELEMENTS_SCHEMA + ] +}) +export class SpeakerListModule { } diff --git a/packages/demos/conference-app/angular/src/pages/speaker-list/speaker-list.scss b/packages/demos/conference-app/angular/src/app/speaker-list/speaker-list.scss similarity index 100% rename from packages/demos/conference-app/angular/src/pages/speaker-list/speaker-list.scss rename to packages/demos/conference-app/angular/src/app/speaker-list/speaker-list.scss diff --git a/packages/demos/conference-app/angular/src/pages/speaker-list/speaker-list.ts b/packages/demos/conference-app/angular/src/app/speaker-list/speaker-list.ts similarity index 81% rename from packages/demos/conference-app/angular/src/pages/speaker-list/speaker-list.ts rename to packages/demos/conference-app/angular/src/app/speaker-list/speaker-list.ts index 8709ae615e..2431ef8788 100644 --- a/packages/demos/conference-app/angular/src/pages/speaker-list/speaker-list.ts +++ b/packages/demos/conference-app/angular/src/app/speaker-list/speaker-list.ts @@ -1,5 +1,5 @@ import { Component, ViewEncapsulation } from '@angular/core'; - +import { Router } from '@angular/router'; import { ActionSheetController, NavController @@ -8,10 +8,7 @@ import { import { InAppBrowser } from '@ionic-native/in-app-browser'; -import { ConferenceData } from '../../providers/conference-data'; - -import { SessionDetailPage } from '../session-detail/session-detail'; -import { SpeakerDetailPage } from '../speaker-detail/speaker-detail'; +import { ConferenceData } from '../providers/conference-data'; @Component({ selector: 'page-speaker-list', @@ -23,10 +20,11 @@ export class SpeakerListPage { speakers: any[] = []; constructor( - public actionSheetCtrl: ActionSheetController, - public navCtrl: NavController, - public confData: ConferenceData, - public inAppBrowser: InAppBrowser + private actionSheetCtrl: ActionSheetController, + private navCtrl: NavController, + private confData: ConferenceData, + private inAppBrowser: InAppBrowser, + private router: Router ) {} ionViewDidEnter() { @@ -36,11 +34,11 @@ export class SpeakerListPage { } goToSessionDetail(session: any) { - this.navCtrl.push(SessionDetailPage, { sessionId: session.id }); + this.router.navigateByUrl(`app/tabs/(schedule:session/${session.id})`); } goToSpeakerDetail(speaker: any) { - this.navCtrl.push(SpeakerDetailPage, { speakerId: speaker.id }); + this.router.navigateByUrl(`app/tabs/(speakers:speaker-details/${speaker.id})`); } goToSpeakerTwitter(speaker: any) { diff --git a/packages/demos/conference-app/angular/src/app/support/support-routing.module.ts b/packages/demos/conference-app/angular/src/app/support/support-routing.module.ts new file mode 100644 index 0000000000..373a9d10f2 --- /dev/null +++ b/packages/demos/conference-app/angular/src/app/support/support-routing.module.ts @@ -0,0 +1,14 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +import { SupportPage } from './support'; + +const routes: Routes = [ + { path: '', component: SupportPage} +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class SupportPageRoutingModule { } diff --git a/packages/demos/conference-app/angular/src/pages/support/support.html b/packages/demos/conference-app/angular/src/app/support/support.html similarity index 84% rename from packages/demos/conference-app/angular/src/pages/support/support.html rename to packages/demos/conference-app/angular/src/app/support/support.html index 8c0ac54f80..497c8fcb46 100644 --- a/packages/demos/conference-app/angular/src/pages/support/support.html +++ b/packages/demos/conference-app/angular/src/app/support/support.html @@ -2,9 +2,11 @@ - - - + + + + + Support diff --git a/packages/demos/conference-app/angular/src/app/support/support.module.ts b/packages/demos/conference-app/angular/src/app/support/support.module.ts new file mode 100644 index 0000000000..fbdddd9802 --- /dev/null +++ b/packages/demos/conference-app/angular/src/app/support/support.module.ts @@ -0,0 +1,22 @@ +import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { FormsModule } from '@angular/forms'; +import { IonicAngularModule } from '@ionic/angular'; +import { SupportPage } from './support'; +import { SupportPageRoutingModule } from './support-routing.module'; + +@NgModule({ + imports: [ + CommonModule, + FormsModule, + IonicAngularModule, + SupportPageRoutingModule + ], + declarations: [ + SupportPage, + ], + schemas: [ + CUSTOM_ELEMENTS_SCHEMA + ] +}) +export class SupportModule { } diff --git a/packages/demos/conference-app/angular/src/app/support/support.scss b/packages/demos/conference-app/angular/src/app/support/support.scss new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/demos/conference-app/angular/src/pages/support/support.ts b/packages/demos/conference-app/angular/src/app/support/support.ts similarity index 98% rename from packages/demos/conference-app/angular/src/pages/support/support.ts rename to packages/demos/conference-app/angular/src/app/support/support.ts index e4e678f611..3ea4966d9a 100644 --- a/packages/demos/conference-app/angular/src/pages/support/support.ts +++ b/packages/demos/conference-app/angular/src/app/support/support.ts @@ -15,7 +15,6 @@ export class SupportPage { supportMessage: string; constructor( - public navCtrl: NavController, public alertCtrl: AlertController, public toastCtrl: ToastController ) { diff --git a/packages/demos/conference-app/angular/src/app/tabs-page/tabs-page-routing.module.ts b/packages/demos/conference-app/angular/src/app/tabs-page/tabs-page-routing.module.ts new file mode 100644 index 0000000000..6f1d0d05c8 --- /dev/null +++ b/packages/demos/conference-app/angular/src/app/tabs-page/tabs-page-routing.module.ts @@ -0,0 +1,63 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +import { TabsPage } from './tabs-page'; + +import { AboutPage } from '../about/about'; +import { MapPage } from '../map/map'; +import { SchedulePage } from '../schedule/schedule'; +import { SessionDetailPage } from '../session-detail/session-detail'; +import { SpeakerDetailPage } from '../speaker-detail/speaker-detail'; +import { SpeakerListPage } from '../speaker-list/speaker-list'; + + +const routes: Routes = [ + { + path: 'tabs', + component: TabsPage, + children: [ + // tab one + { + path: 'schedule', + component: SchedulePage, + outlet: 'schedule' + }, + { + path: 'session/:sessionId', + component: SessionDetailPage, + outlet: 'schedule' + }, + // tab two + { + path: 'speakers', + component: SpeakerListPage, + outlet: 'speakers' + }, + + { + path: 'speaker-details/:speakerId', + component: SpeakerDetailPage, + outlet: 'speakers' + }, + // tab three + { + path: 'map', + component: MapPage, + outlet: 'map' + }, + + // tab four + { + path: 'about', + component: AboutPage, + outlet: 'about' + } + ] + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class TabsPageRoutingModule { } diff --git a/packages/demos/conference-app/angular/src/app/tabs-page/tabs-page.html b/packages/demos/conference-app/angular/src/app/tabs-page/tabs-page.html new file mode 100644 index 0000000000..15d0560f7e --- /dev/null +++ b/packages/demos/conference-app/angular/src/app/tabs-page/tabs-page.html @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/demos/conference-app/angular/src/app/tabs-page/tabs-page.module.ts b/packages/demos/conference-app/angular/src/app/tabs-page/tabs-page.module.ts new file mode 100644 index 0000000000..cb76cd723c --- /dev/null +++ b/packages/demos/conference-app/angular/src/app/tabs-page/tabs-page.module.ts @@ -0,0 +1,35 @@ +import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { IonicAngularModule, IonicRouterModule } from '@ionic/angular'; + +import { TabsPage } from './tabs-page'; +import { TabsPageRoutingModule } from './tabs-page-routing.module'; + +import { AboutModule } from '../about/about.module'; +import { MapModule } from '../map/map.module'; +import { ScheduleModule } from '../schedule/schedule.module'; +import { SessionDetailModule } from '../session-detail/session.module'; +import { SpeakerDetailModule } from '../speaker-detail/speaker-detail.module'; +import { SpeakerListModule } from '../speaker-list/speaker-list.module'; + +@NgModule({ + imports: [ + AboutModule, + CommonModule, + IonicAngularModule, + IonicRouterModule, + MapModule, + ScheduleModule, + SessionDetailModule, + SpeakerDetailModule, + SpeakerListModule, + TabsPageRoutingModule + ], + declarations: [ + TabsPage, + ], + schemas: [ + CUSTOM_ELEMENTS_SCHEMA + ] +}) +export class TabsModule { } diff --git a/packages/demos/conference-app/angular/src/pages/tabs-page/tabs-page.scss b/packages/demos/conference-app/angular/src/app/tabs-page/tabs-page.scss similarity index 100% rename from packages/demos/conference-app/angular/src/pages/tabs-page/tabs-page.scss rename to packages/demos/conference-app/angular/src/app/tabs-page/tabs-page.scss diff --git a/packages/demos/conference-app/angular/src/pages/tabs-page/tabs-page.ts b/packages/demos/conference-app/angular/src/app/tabs-page/tabs-page.ts similarity index 50% rename from packages/demos/conference-app/angular/src/pages/tabs-page/tabs-page.ts rename to packages/demos/conference-app/angular/src/app/tabs-page/tabs-page.ts index ea8f874f40..9dfb927184 100644 --- a/packages/demos/conference-app/angular/src/pages/tabs-page/tabs-page.ts +++ b/packages/demos/conference-app/angular/src/app/tabs-page/tabs-page.ts @@ -2,20 +2,12 @@ import { Component } from '@angular/core'; import { NavParams } from '@ionic/angular'; -import { AboutPage } from '../about/about'; -import { MapPage } from '../map/map'; -import { SchedulePage } from '../schedule/schedule'; -import { SpeakerListPage } from '../speaker-list/speaker-list'; - @Component({ templateUrl: 'tabs-page.html' }) export class TabsPage { // set the root pages for each tab - tab1Root: any = SchedulePage; - tab2Root: any = SpeakerListPage; - tab3Root: any = MapPage; - tab4Root: any = AboutPage; + mySelectedIndex: number; constructor(navParams: NavParams) { diff --git a/packages/demos/conference-app/angular/src/pages/tutorial/tutorial.html b/packages/demos/conference-app/angular/src/app/tutorial/tutorial.html similarity index 100% rename from packages/demos/conference-app/angular/src/pages/tutorial/tutorial.html rename to packages/demos/conference-app/angular/src/app/tutorial/tutorial.html diff --git a/packages/demos/conference-app/angular/src/app/tutorial/tutorial.module.ts b/packages/demos/conference-app/angular/src/app/tutorial/tutorial.module.ts new file mode 100644 index 0000000000..eea617f07d --- /dev/null +++ b/packages/demos/conference-app/angular/src/app/tutorial/tutorial.module.ts @@ -0,0 +1,22 @@ +import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { IonicAngularModule } from '@ionic/angular'; + +import { TutorialPage } from './tutorial'; + +@NgModule({ + imports: [ + CommonModule, + IonicAngularModule, + ], + declarations: [ + TutorialPage, + ], + entryComponents: [ + TutorialPage + ], + schemas: [ + CUSTOM_ELEMENTS_SCHEMA + ] +}) +export class TutorialModule { } diff --git a/packages/demos/conference-app/angular/src/pages/tutorial/tutorial.scss b/packages/demos/conference-app/angular/src/app/tutorial/tutorial.scss similarity index 100% rename from packages/demos/conference-app/angular/src/pages/tutorial/tutorial.scss rename to packages/demos/conference-app/angular/src/app/tutorial/tutorial.scss diff --git a/packages/demos/conference-app/angular/src/pages/tutorial/tutorial.ts b/packages/demos/conference-app/angular/src/app/tutorial/tutorial.ts similarity index 88% rename from packages/demos/conference-app/angular/src/pages/tutorial/tutorial.ts rename to packages/demos/conference-app/angular/src/app/tutorial/tutorial.ts index 3d66303b5d..7c929b15a8 100644 --- a/packages/demos/conference-app/angular/src/pages/tutorial/tutorial.ts +++ b/packages/demos/conference-app/angular/src/app/tutorial/tutorial.ts @@ -5,11 +5,8 @@ import { } from '@angular/core'; import { MenuController, NavController } from '@ionic/angular'; - import { Storage } from '@ionic/storage'; -import { TabsPage } from '../tabs-page/tabs-page'; - @Component({ selector: 'page-tutorial', templateUrl: 'tutorial.html' @@ -27,9 +24,9 @@ export class TutorialPage { ) { } startApp() { - this.navCtrl.push(TabsPage).then(() => { - this.storage.set('hasSeenTutorial', 'true'); - }); + // this.navCtrl.push(TabsPage).then(() => { + // this.storage.set('hasSeenTutorial', 'true'); + // }); } onSlideChangeStart(slider: any) { diff --git a/packages/demos/conference-app/angular/src/pages/tabs-page/tabs-page.html b/packages/demos/conference-app/angular/src/pages/tabs-page/tabs-page.html deleted file mode 100644 index be08f355de..0000000000 --- a/packages/demos/conference-app/angular/src/pages/tabs-page/tabs-page.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/packages/demos/conference-app/angular/tsconfig.json b/packages/demos/conference-app/angular/tsconfig.json index a6c016bf38..84d89101c9 100644 --- a/packages/demos/conference-app/angular/tsconfig.json +++ b/packages/demos/conference-app/angular/tsconfig.json @@ -1,19 +1,25 @@ { "compileOnSave": false, "compilerOptions": { - "outDir": "./dist/out-tsc", - "sourceMap": true, - "declaration": false, - "moduleResolution": "node", + "allowUnreachableCode": true, + "alwaysStrict": false, + "declaration": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, - "target": "es5", - "typeRoots": [ - "node_modules/@types" - ], + "forceConsistentCasingInFileNames": true, "lib": [ - "es2017", - "dom" - ] + "dom", + "es2015" + ], + "module": "es2015", + "moduleResolution": "node", + "noImplicitAny": false, + "noImplicitReturns": false, + "noUnusedLocals": false, + "noUnusedParameters": false, + "outDir": "./dist/out-tsc", + "pretty": true, + "removeComments": false, + "target": "es2015" } }