fix(angular): module exports

This commit is contained in:
Manu Mtz.-Almeida
2018-03-30 21:52:29 +02:00
parent b35f95a4d8
commit cece447092
40 changed files with 657 additions and 996 deletions

View File

@ -4,6 +4,15 @@
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {
"@angular/animations": {
"version": "5.2.9",
"resolved": "https://registry.npmjs.org/@angular/animations/-/animations-5.2.9.tgz",
"integrity": "sha512-H/3fMs4PhYjKoA81II6D0PHifDrqlKet2u/EXzUBq3ehXby+N/0GBzqsBYwPeU5pTye7WPFfW+5sgoJpN8Ye6Q==",
"dev": true,
"requires": {
"tslib": "1.9.0"
}
},
"@angular/common": { "@angular/common": {
"version": "5.2.9", "version": "5.2.9",
"resolved": "https://registry.npmjs.org/@angular/common/-/common-5.2.9.tgz", "resolved": "https://registry.npmjs.org/@angular/common/-/common-5.2.9.tgz",
@ -88,6 +97,27 @@
"tslib": "1.9.0" "tslib": "1.9.0"
} }
}, },
"@ionic/core": {
"version": "0.1.5",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-0.1.5.tgz",
"integrity": "sha512-BLg3PpuNlw5uE94fZkMYpOsqd+dHFcC/UzNzXEvNL4LtHhN9yOPa0Trhy1i8VxmGcHpn3UHOHHzo0oOVMa91yw==",
"dev": true,
"requires": {
"ionicons": "4.0.0-18"
}
},
"ansi-escapes": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz",
"integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==",
"dev": true
},
"ansi-regex": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
"dev": true
},
"ansi-styles": { "ansi-styles": {
"version": "3.2.1", "version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
@ -252,6 +282,12 @@
"supports-color": "5.3.0" "supports-color": "5.3.0"
} }
}, },
"chardet": {
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
"integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=",
"dev": true
},
"chokidar": { "chokidar": {
"version": "1.7.0", "version": "1.7.0",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
@ -269,6 +305,15 @@
"readdirp": "2.1.0" "readdirp": "2.1.0"
} }
}, },
"cli-cursor": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
"integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
"dev": true,
"requires": {
"restore-cursor": "2.0.0"
}
},
"cli-spinners": { "cli-spinners": {
"version": "0.1.2", "version": "0.1.2",
"resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz", "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz",
@ -322,6 +367,12 @@
} }
} }
}, },
"cli-width": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
"integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
"dev": true
},
"code-point-at": { "code-point-at": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
@ -344,9 +395,9 @@
"dev": true "dev": true
}, },
"commander": { "commander": {
"version": "2.14.1", "version": "2.15.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
"integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==", "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==",
"dev": true "dev": true
}, },
"concat-map": { "concat-map": {
@ -381,9 +432,9 @@
"dev": true "dev": true
}, },
"diff": { "diff": {
"version": "3.4.0", "version": "3.5.0",
"resolved": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
"integrity": "sha512-QpVuMTEoJMF7cKzi6bvWhRulU1fZqZnvyVQgNhPaxxuTYwyjn/j1v9falseQ/uXWwPnO56RBfwtg4h/EQXmucA==", "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
"dev": true "dev": true
}, },
"doctrine": { "doctrine": {
@ -473,6 +524,17 @@
"fill-range": "2.2.3" "fill-range": "2.2.3"
} }
}, },
"external-editor": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz",
"integrity": "sha512-E44iT5QVOUJBKij4IIV3uvxuNlbKS38Tw1HiupxEIHPv9qtC2PrDYohbXV5U+1jnfIXttny8gUhj+oZvflFlzA==",
"dev": true,
"requires": {
"chardet": "0.4.2",
"iconv-lite": "0.4.19",
"tmp": "0.0.33"
}
},
"extglob": { "extglob": {
"version": "0.3.2", "version": "0.3.2",
"resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
@ -482,6 +544,15 @@
"is-extglob": "1.0.0" "is-extglob": "1.0.0"
} }
}, },
"figures": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
"integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
"dev": true,
"requires": {
"escape-string-regexp": "1.0.5"
}
},
"filename-regex": { "filename-regex": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
@ -1505,12 +1576,21 @@
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true "dev": true
}, },
"indent-string": { "iconv-lite": {
"version": "3.2.0", "version": "0.4.19",
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
"integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==",
"dev": true "dev": true
}, },
"indent-string": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
"integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
"dev": true,
"requires": {
"repeating": "2.0.1"
}
},
"inflight": { "inflight": {
"version": "1.0.6", "version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@ -1527,6 +1607,33 @@
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
"dev": true "dev": true
}, },
"inquirer": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/inquirer/-/inquirer-5.2.0.tgz",
"integrity": "sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==",
"dev": true,
"requires": {
"ansi-escapes": "3.1.0",
"chalk": "2.3.2",
"cli-cursor": "2.1.0",
"cli-width": "2.2.0",
"external-editor": "2.1.0",
"figures": "2.0.0",
"lodash": "4.17.5",
"mute-stream": "0.0.7",
"run-async": "2.3.0",
"rxjs": "5.5.8",
"string-width": "2.1.1",
"strip-ansi": "4.0.0",
"through": "2.3.8"
}
},
"ionicons": {
"version": "4.0.0-18",
"resolved": "https://registry.npmjs.org/ionicons/-/ionicons-4.0.0-18.tgz",
"integrity": "sha512-nPijotkyDVy1tX6IBuo9/uLnWLtvwYUxX5YGcJJ0meyx6XwUrc+9irDF/xXkVnnUrw9cHbGoJv2Hs0l65wMWLQ==",
"dev": true
},
"is-binary-path": { "is-binary-path": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
@ -1578,6 +1685,12 @@
"number-is-nan": "1.0.1" "number-is-nan": "1.0.1"
} }
}, },
"is-fullwidth-code-point": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
"integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
"dev": true
},
"is-glob": { "is-glob": {
"version": "2.0.1", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
@ -1665,9 +1778,9 @@
"dev": true "dev": true
}, },
"js-yaml": { "js-yaml": {
"version": "3.10.0", "version": "3.11.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz",
"integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==",
"dev": true, "dev": true,
"requires": { "requires": {
"argparse": "1.0.10", "argparse": "1.0.10",
@ -1712,7 +1825,7 @@
"log-update": "1.0.2", "log-update": "1.0.2",
"ora": "0.2.3", "ora": "0.2.3",
"p-map": "1.2.0", "p-map": "1.2.0",
"rxjs": "5.5.7", "rxjs": "5.5.8",
"stream-to-observable": "0.2.0", "stream-to-observable": "0.2.0",
"strip-ansi": "3.0.1" "strip-ansi": "3.0.1"
}, },
@ -1752,15 +1865,6 @@
"object-assign": "4.1.1" "object-assign": "4.1.1"
} }
}, },
"indent-string": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
"integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
"dev": true,
"requires": {
"repeating": "2.0.1"
}
},
"strip-ansi": { "strip-ansi": {
"version": "3.0.1", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
@ -1835,6 +1939,12 @@
"object-assign": "4.1.1" "object-assign": "4.1.1"
} }
}, },
"indent-string": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz",
"integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=",
"dev": true
},
"strip-ansi": { "strip-ansi": {
"version": "3.0.1", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
@ -1910,7 +2020,7 @@
}, },
"onetime": { "onetime": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
"integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
"dev": true "dev": true
}, },
@ -1941,6 +2051,12 @@
} }
} }
}, },
"lodash": {
"version": "4.17.5",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz",
"integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==",
"dev": true
},
"log-symbols": { "log-symbols": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz",
@ -2019,7 +2135,7 @@
}, },
"onetime": { "onetime": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
"integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
"dev": true "dev": true
}, },
@ -2056,6 +2172,12 @@
"regex-cache": "0.4.4" "regex-cache": "0.4.4"
} }
}, },
"mimic-fn": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
"integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
"dev": true
},
"minimatch": { "minimatch": {
"version": "3.0.4", "version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
@ -2088,6 +2210,12 @@
} }
} }
}, },
"mute-stream": {
"version": "0.0.7",
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
"integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
"dev": true
},
"nan": { "nan": {
"version": "2.10.0", "version": "2.10.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz",
@ -2150,6 +2278,15 @@
"wrappy": "1.0.2" "wrappy": "1.0.2"
} }
}, },
"onetime": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
"integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
"dev": true,
"requires": {
"mimic-fn": "1.2.0"
}
},
"ora": { "ora": {
"version": "0.2.3", "version": "0.2.3",
"resolved": "https://registry.npmjs.org/ora/-/ora-0.2.3.tgz", "resolved": "https://registry.npmjs.org/ora/-/ora-0.2.3.tgz",
@ -2198,7 +2335,7 @@
}, },
"onetime": { "onetime": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz",
"integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=",
"dev": true "dev": true
}, },
@ -2229,6 +2366,12 @@
} }
} }
}, },
"os-tmpdir": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
"dev": true
},
"p-finally": { "p-finally": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
@ -2394,18 +2537,37 @@
} }
}, },
"resolve": { "resolve": {
"version": "1.5.0", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.6.0.tgz",
"integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", "integrity": "sha512-mw7JQNu5ExIkcw4LPih0owX/TZXjD/ZUF/ZQ/pDnkw3ZKhDcZZw5klmBlj6gVMwjQ3Pz5Jgu7F3d0jcDVuEWdw==",
"dev": true, "dev": true,
"requires": { "requires": {
"path-parse": "1.0.5" "path-parse": "1.0.5"
} }
}, },
"restore-cursor": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
"integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
"dev": true,
"requires": {
"onetime": "2.0.1",
"signal-exit": "3.0.2"
}
},
"run-async": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
"integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
"dev": true,
"requires": {
"is-promise": "2.1.0"
}
},
"rxjs": { "rxjs": {
"version": "5.5.7", "version": "5.5.8",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.7.tgz", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.8.tgz",
"integrity": "sha512-Hxo2ac8gRQjwjtKgukMIwBRbq5+KAeEV5hXM4obYBOAghev41bDQWgFH4svYiU9UnQ5kNww2LgfyBdevCd2HXA==", "integrity": "sha512-Bz7qou7VAIoGiglJZbzbXa4vpX5BmTTN2Dj/se6+SwADtw4SihqBIiEa7VmTXJ8pynvq0iFr5Gx9VLyye1rIxQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"symbol-observable": "1.0.1" "symbol-observable": "1.0.1"
@ -2486,6 +2648,16 @@
"any-observable": "0.2.0" "any-observable": "0.2.0"
} }
}, },
"string-width": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
"integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
"dev": true,
"requires": {
"is-fullwidth-code-point": "2.0.0",
"strip-ansi": "4.0.0"
}
},
"string_decoder": { "string_decoder": {
"version": "1.0.3", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
@ -2495,6 +2667,15 @@
"safe-buffer": "5.1.1" "safe-buffer": "5.1.1"
} }
}, },
"strip-ansi": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
"requires": {
"ansi-regex": "3.0.0"
}
},
"strip-eof": { "strip-eof": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
@ -2516,6 +2697,21 @@
"integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=",
"dev": true "dev": true
}, },
"through": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
"integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
"dev": true
},
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
"integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
"dev": true,
"requires": {
"os-tmpdir": "1.0.2"
}
},
"tsickle": { "tsickle": {
"version": "0.27.2", "version": "0.27.2",
"resolved": "https://registry.npmjs.org/tsickle/-/tsickle-0.27.2.tgz", "resolved": "https://registry.npmjs.org/tsickle/-/tsickle-0.27.2.tgz",
@ -2543,15 +2739,15 @@
"babel-code-frame": "6.26.0", "babel-code-frame": "6.26.0",
"builtin-modules": "1.1.1", "builtin-modules": "1.1.1",
"chalk": "2.3.2", "chalk": "2.3.2",
"commander": "2.14.1", "commander": "2.15.1",
"diff": "3.4.0", "diff": "3.5.0",
"glob": "7.1.2", "glob": "7.1.2",
"js-yaml": "3.10.0", "js-yaml": "3.11.0",
"minimatch": "3.0.4", "minimatch": "3.0.4",
"resolve": "1.5.0", "resolve": "1.6.0",
"semver": "5.5.0", "semver": "5.5.0",
"tslib": "1.9.0", "tslib": "1.9.0",
"tsutils": "2.22.1" "tsutils": "2.25.0"
} }
}, },
"tslint-eslint-rules": { "tslint-eslint-rules": {
@ -2583,9 +2779,9 @@
} }
}, },
"tsutils": { "tsutils": {
"version": "2.22.1", "version": "2.25.0",
"resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.22.1.tgz", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.25.0.tgz",
"integrity": "sha512-j4Nx7aeMPyIrKtDftSfDiTFBYW3o/41T3zAxm0C/9fSKT62jnfqOZooC9uKLr4rQF9QsZaVTVY6QY+vVnWSisw==", "integrity": "sha512-SPgUlOAUAe6fCyPi0QR4U0jRuDsHHKvzIR6/hHd0YR0bb8MzeLJgCagkPSmZeJjWImnpJ0xq6XHa9goTvMBBCQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"tslib": "1.9.0" "tslib": "1.9.0"

View File

@ -20,7 +20,7 @@
"url": "https://github.com/ionic-team/ionic.git" "url": "https://github.com/ionic-team/ionic.git"
}, },
"scripts": { "scripts": {
"build": "npm run clean && npm run compile && npm run clean-generated && npm run ionic-core", "build": "npm run clean && npm run ionic-core && npm run compile && npm run clean-generated",
"build.link": "npm run build && node scripts/link-copy.js", "build.link": "npm run build && node scripts/link-copy.js",
"clean": "node scripts/clean.js", "clean": "node scripts/clean.js",
"clean-generated": "node ./scripts/clean-generated.js", "clean-generated": "node ./scripts/clean-generated.js",

View File

@ -0,0 +1,18 @@
export { BooleanValueAccessor } from './control-value-accessors/boolean-value-accessor';
export { NumericValueAccessor } from './control-value-accessors/numeric-value-accesssor';
export { RadioValueAccessor } from './control-value-accessors/radio-value-accessor';
export { SelectValueAccessor } from './control-value-accessors/select-value-accessor';
export { TextValueAccessor } from './control-value-accessors/text-value-accessor';
export { GoBack } from './navigation/go-back';
export { IonBackButton } from './navigation/ion-back-button';
export { NavDelegate } from './navigation/nav-delegate';
export { TabDelegate } from './navigation/tab-delegate';
export { IonRouterOutlet } from './navigation/ion-router-outlet';
export { Icon } from './icon';
export { VirtualScroll } from './virtual-scroll/virtual-scroll';
export { VirtualItem } from './virtual-scroll/virtual-item';
export { VirtualHeader } from './virtual-scroll/virtual-header';
export { VirtualFooter } from './virtual-scroll/virtual-footer';

View File

@ -1,5 +1,5 @@
import { Directive, HostListener } from '@angular/core'; import { Directive, HostListener } from '@angular/core';
import { NavController } from './ion-nav-controller'; import { NavController } from '../../providers/nav-controller';
@Directive({ @Directive({
selector: '[goBack]', selector: '[goBack]',

View File

@ -1,8 +1,8 @@
import { Attribute, ChangeDetectorRef, ComponentFactoryResolver, ComponentRef, Directive, ElementRef, EventEmitter, Injector, OnDestroy, OnInit, Optional, Output, ViewContainerRef } from '@angular/core'; import { Attribute, ChangeDetectorRef, ComponentFactoryResolver, ComponentRef, Directive, ElementRef, EventEmitter, Injector, OnDestroy, OnInit, Optional, Output, ViewContainerRef } from '@angular/core';
import { ActivatedRoute, ChildrenOutletContexts, PRIMARY_OUTLET, Router } from '@angular/router'; import { ActivatedRoute, ChildrenOutletContexts, PRIMARY_OUTLET, Router } from '@angular/router';
import { StackController } from './router-controller'; import { StackController } from './router-controller';
import { NavController } from './ion-nav-controller'; import { NavController } from '../../providers/nav-controller';
import { bindLifecycleEvents } from '../providers/angular-delegate'; import { bindLifecycleEvents } from '../../providers/angular-delegate';
@Directive({ @Directive({
selector: 'ion-router-outlet', selector: 'ion-router-outlet',

View File

@ -0,0 +1,16 @@
import { ComponentFactoryResolver, Directive, ElementRef, Injector } from '@angular/core';
import { AngularDelegate } from '../../providers/angular-delegate';
@Directive({
selector: 'ion-nav',
})
export class NavDelegate {
constructor(
ref: ElementRef,
cfr: ComponentFactoryResolver,
injector: Injector,
angularDelegate: AngularDelegate,
) {
ref.nativeElement.delegate = angularDelegate.create(cfr, injector);
}
}

View File

@ -1,8 +1,9 @@
import { ComponentRef } from '@angular/core'; import { ComponentRef } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router'; import { ActivatedRoute, Router } from '@angular/router';
import { NavController } from './ion-nav-controller';
import { NavDirection } from '@ionic/core'; import { NavDirection } from '@ionic/core';
import { NavController } from '../../providers/nav-controller';
export class StackController { export class StackController {

View File

@ -0,0 +1,32 @@
import { ComponentFactoryResolver, Directive, ElementRef, HostListener, Injector, Optional } from '@angular/core';
import { Router } from '@angular/router';
import { AngularDelegate } from '../../providers/angular-delegate';
@Directive({
selector: 'ion-tab'
})
export class TabDelegate {
constructor(
@Optional() private router: Router,
ref: ElementRef,
cfr: ComponentFactoryResolver,
injector: Injector,
angularDelegate: AngularDelegate,
) {
ref.nativeElement.delegate = angularDelegate.create(cfr, injector);
}
@HostListener('ionTabbarClick', ['$event'])
ionTabbarClick(ev: UIEvent) {
const tabElm: HTMLIonTabElement = ev.detail as any;
if (this.router && tabElm && tabElm.href) {
console.log('tabElm', tabElm.href);
this.router.navigateByUrl(tabElm.href);
}
}
}

View File

@ -0,0 +1,79 @@
import * as d from './proxies';
export const DIRECTIVES = [
d.App,
d.Avatar,
d.BackButton,
d.Badge,
d.Button,
d.Buttons,
d.Card,
d.CardContent,
d.CardHeader,
d.CardSubtitle,
d.CardTitle,
d.Checkbox,
d.Chip,
d.ChipButton,
d.Col,
d.Content,
d.Datetime,
d.Fab,
d.FabButton,
d.FabList,
d.Footer,
d.Grid,
d.Header,
d.HideWhen,
d.InfiniteScroll,
d.InfiniteScrollContent,
d.Input,
d.Item,
d.ItemDivider,
d.ItemGroup,
d.ItemOption,
d.ItemOptions,
d.ItemSliding,
d.Label,
d.List,
d.ListHeader,
d.Menu,
d.MenuButton,
d.MenuToggle,
d.NavControllerBase,
d.NavPop,
d.NavPush,
d.NavSetRoot,
d.Note,
d.Radio,
d.RadioGroup,
d.Range,
d.Refresher,
d.RefresherContent,
d.Reorder,
d.ReorderGroup,
d.RippleEffect,
d.Row,
d.Scroll,
d.Searchbar,
d.Segment,
d.SegmentButton,
d.Select,
d.SelectOption,
d.SelectPopover,
d.ShowWhen,
d.SkeletonText,
d.Slide,
d.Slides,
d.Spinner,
d.SplitPane,
d.Tab,
d.Tabs,
d.Text,
d.Textarea,
d.Thumbnail,
d.Toggle,
d.Toolbar,
d.ToolbarTitle
];

View File

@ -15,16 +15,7 @@ export function inputs(instance: any, el: ElementRef, props: string[]) {
}); });
} }
const accept = 'accept', activated = 'activated', allowEmptySelection = 'allowEmptySelection', animated = 'animated', autoBlockAll = 'autoBlockAll', autoHide = 'autoHide', autocapitalize = 'autocapitalize', autocomplete = 'autocomplete', autocorrect = 'autocorrect', autofocus = 'autofocus', base = 'base', button = 'button', buttonType = 'buttonType', cancelButtonText = 'cancelButtonText', cancelText = 'cancelText', checked = 'checked', clearInput = 'clearInput', clearOnEdit = 'clearOnEdit', closeDuration = 'closeDuration', color = 'color', cols = 'cols', component = 'component', contentId = 'contentId', debounce = 'debounce', defaultHref = 'defaultHref', detail = 'detail', direction = 'direction', disableScroll = 'disableScroll', disabled = 'disabled', displayFormat = 'displayFormat', doneText = 'doneText', dualKnobs = 'dualKnobs', duration = 'duration', edge = 'edge', expandable = 'expandable', fill = 'fill', fixed = 'fixed', floating = 'floating', forceOverscroll = 'forceOverscroll', from = 'from', fullscreen = 'fullscreen', gestureName = 'gestureName', gesturePriority = 'gesturePriority', goBack = 'goBack', highlight = 'highlight', href = 'href', icon = 'icon', inputmode = 'inputmode', interfaceOptions = 'interfaceOptions', ionBackdropTap = 'ionBackdropTap', ionBlur = 'ionBlur', ionCancel = 'ionCancel', ionChange = 'ionChange', ionClear = 'ionClear', ionClick = 'ionClick', ionClose = 'ionClose', ionDecrease = 'ionDecrease', ionDrag = 'ionDrag', ionFocus = 'ionFocus', ionGestureCaptured = 'ionGestureCaptured', ionGestureEnd = 'ionGestureEnd', ionGestureMove = 'ionGestureMove', ionGestureNotCaptured = 'ionGestureNotCaptured', ionGestureStart = 'ionGestureStart', ionIncrease = 'ionIncrease', ionInfinite = 'ionInfinite', ionInput = 'ionInput', ionInputDidLoad = 'ionInputDidLoad', ionInputDidUnload = 'ionInputDidUnload', ionMenuChange = 'ionMenuChange', ionOpen = 'ionOpen', ionPress = 'ionPress', ionPull = 'ionPull', ionRadioDidLoad = 'ionRadioDidLoad', ionRadioDidUnload = 'ionRadioDidUnload', ionRefresh = 'ionRefresh', ionRouteChanged = 'ionRouteChanged', ionRouteDataChanged = 'ionRouteDataChanged', ionRouteRedirectChanged = 'ionRouteRedirectChanged', ionScroll = 'ionScroll', ionScrollEnd = 'ionScrollEnd', ionScrollStart = 'ionScrollStart', ionSelect = 'ionSelect', ionSelectOptionDidLoad = 'ionSelectOptionDidLoad', ionSelectOptionDidUnload = 'ionSelectOptionDidUnload', ionSlideDidChange = 'ionSlideDidChange', ionSlideDrag = 'ionSlideDrag', ionSlideNextEnd = 'ionSlideNextEnd', ionSlideNextStart = 'ionSlideNextStart', ionSlidePrevEnd = 'ionSlidePrevEnd', ionSlidePrevStart = 'ionSlidePrevStart', ionSlideReachEnd = 'ionSlideReachEnd', ionSlideReachStart = 'ionSlideReachStart', ionSlideTouchEnd = 'ionSlideTouchEnd', ionSlideTouchStart = 'ionSlideTouchStart', ionSlideTransitionEnd = 'ionSlideTransitionEnd', ionSlideTransitionStart = 'ionSlideTransitionStart', ionSlideWillChange = 'ionSlideWillChange', ionSplitPaneVisible = 'ionSplitPaneVisible', ionStart = 'ionStart', ionStyle = 'ionStyle', ionSwipe = 'ionSwipe', ionTabButtonDidLoad = 'ionTabButtonDidLoad', ionTabButtonDidUnload = 'ionTabButtonDidUnload', ionTabbarClick = 'ionTabbarClick', knob = 'knob', labelId = 'labelId', layout = 'layout', loadingSpinner = 'loadingSpinner', loadingText = 'loadingText', max = 'max', maxAngle = 'maxAngle', maxEdgeStart = 'maxEdgeStart', maxlength = 'maxlength', mediaQuery = 'mediaQuery', menu = 'menu', menuId = 'menuId', message = 'message', min = 'min', minlength = 'minlength', mode = 'mode', multiple = 'multiple', name = 'name', okText = 'okText', options = 'options', or = 'or', orientation = 'orientation', pager = 'pager', passive = 'passive', pattern = 'pattern', paused = 'paused', persistent = 'persistent', pickerFormat = 'pickerFormat', pin = 'pin', placeholder = 'placeholder', placement = 'placement', platform = 'platform', position = 'position', pressed = 'pressed', pullMax = 'pullMax', pullMin = 'pullMin', pullingIcon = 'pullingIcon', pullingText = 'pullingText', ratio = 'ratio', readonly = 'readonly', refreshingSpinner = 'refreshingSpinner', refreshingText = 'refreshingText', required = 'required', results = 'results', round = 'round', rows = 'rows', scrollEnabled = 'scrollEnabled', scrollEvents = 'scrollEvents', scrollable = 'scrollable', selected = 'selected', selectedText = 'selectedText', show = 'show', showCancelButton = 'showCancelButton', size = 'size', snapbackDuration = 'snapbackDuration', snaps = 'snaps', spellcheck = 'spellcheck', stacked = 'stacked', step = 'step', stopPropagation = 'stopPropagation', strong = 'strong', subTitle = 'subTitle', swipeEnabled = 'swipeEnabled', tappable = 'tappable', threshold = 'threshold', title = 'title', translucent = 'translucent', type = 'type', url = 'url', useHash = 'useHash', useTapClick = 'useTapClick', val = 'val', value = 'value', visible = 'visible', width = 'width', wrap = 'wrap'; const accept = 'accept', activated = 'activated', active = 'active', allowEmptySelection = 'allowEmptySelection', animated = 'animated', autoHide = 'autoHide', autocapitalize = 'autocapitalize', autocomplete = 'autocomplete', autocorrect = 'autocorrect', autofocus = 'autofocus', btnId = 'btnId', button = 'button', buttonType = 'buttonType', cancelButtonText = 'cancelButtonText', cancelText = 'cancelText', checked = 'checked', clearInput = 'clearInput', clearOnEdit = 'clearOnEdit', closeDuration = 'closeDuration', color = 'color', cols = 'cols', contentId = 'contentId', debounce = 'debounce', defaultHref = 'defaultHref', detail = 'detail', disabled = 'disabled', displayFormat = 'displayFormat', doneText = 'doneText', dualKnobs = 'dualKnobs', duration = 'duration', edge = 'edge', expandable = 'expandable', fill = 'fill', fixed = 'fixed', floating = 'floating', forceOverscroll = 'forceOverscroll', fullscreen = 'fullscreen', goBack = 'goBack', href = 'href', icon = 'icon', inputmode = 'inputmode', interfaceOptions = 'interfaceOptions', ionBlur = 'ionBlur', ionCancel = 'ionCancel', ionChange = 'ionChange', ionClear = 'ionClear', ionClick = 'ionClick', ionClose = 'ionClose', ionDrag = 'ionDrag', ionFocus = 'ionFocus', ionInfinite = 'ionInfinite', ionInput = 'ionInput', ionInputDidLoad = 'ionInputDidLoad', ionInputDidUnload = 'ionInputDidUnload', ionMenuChange = 'ionMenuChange', ionNavChanged = 'ionNavChanged', ionOpen = 'ionOpen', ionPull = 'ionPull', ionRadioDidLoad = 'ionRadioDidLoad', ionRadioDidUnload = 'ionRadioDidUnload', ionRefresh = 'ionRefresh', ionScroll = 'ionScroll', ionScrollEnd = 'ionScrollEnd', ionScrollStart = 'ionScrollStart', ionSelect = 'ionSelect', ionSelectOptionDidLoad = 'ionSelectOptionDidLoad', ionSelectOptionDidUnload = 'ionSelectOptionDidUnload', ionSlideDidChange = 'ionSlideDidChange', ionSlideDrag = 'ionSlideDrag', ionSlideNextEnd = 'ionSlideNextEnd', ionSlideNextStart = 'ionSlideNextStart', ionSlidePrevEnd = 'ionSlidePrevEnd', ionSlidePrevStart = 'ionSlidePrevStart', ionSlideReachEnd = 'ionSlideReachEnd', ionSlideReachStart = 'ionSlideReachStart', ionSlideTouchEnd = 'ionSlideTouchEnd', ionSlideTouchStart = 'ionSlideTouchStart', ionSlideTransitionEnd = 'ionSlideTransitionEnd', ionSlideTransitionStart = 'ionSlideTransitionStart', ionSlideWillChange = 'ionSlideWillChange', ionSplitPaneVisible = 'ionSplitPaneVisible', ionStart = 'ionStart', ionStyle = 'ionStyle', ionSwipe = 'ionSwipe', loadingSpinner = 'loadingSpinner', loadingText = 'loadingText', max = 'max', maxEdgeStart = 'maxEdgeStart', maxlength = 'maxlength', mediaQuery = 'mediaQuery', menu = 'menu', menuId = 'menuId', message = 'message', min = 'min', minlength = 'minlength', mode = 'mode', multiple = 'multiple', name = 'name', okText = 'okText', options = 'options', or = 'or', orientation = 'orientation', pager = 'pager', pattern = 'pattern', paused = 'paused', persistent = 'persistent', pickerFormat = 'pickerFormat', pin = 'pin', placeholder = 'placeholder', platform = 'platform', position = 'position', pullMax = 'pullMax', pullMin = 'pullMin', pullingIcon = 'pullingIcon', pullingText = 'pullingText', readonly = 'readonly', refreshingSpinner = 'refreshingSpinner', refreshingText = 'refreshingText', required = 'required', results = 'results', round = 'round', rows = 'rows', scrollEnabled = 'scrollEnabled', scrollEvents = 'scrollEvents', scrollable = 'scrollable', selected = 'selected', selectedText = 'selectedText', show = 'show', showCancelButton = 'showCancelButton', size = 'size', snapbackDuration = 'snapbackDuration', snaps = 'snaps', spellcheck = 'spellcheck', stacked = 'stacked', step = 'step', strong = 'strong', subTitle = 'subTitle', swipeBackEnabled = 'swipeBackEnabled', swipeEnabled = 'swipeEnabled', tabBadge = 'tabBadge', tabBadgeStyle = 'tabBadgeStyle', tabIcon = 'tabIcon', tabTitle = 'tabTitle', tabbarHidden = 'tabbarHidden', tabbarHighlight = 'tabbarHighlight', tabbarLayout = 'tabbarLayout', tabbarPlacement = 'tabbarPlacement', tabsHideOnSubPages = 'tabsHideOnSubPages', threshold = 'threshold', title = 'title', translucent = 'translucent', type = 'type', url = 'url', useTapClick = 'useTapClick', value = 'value', width = 'width', wrap = 'wrap';
@NgDirective({ selector: 'ion-anchor' })
export class Anchor {
@NgInput() href: string;
@NgInput() goBack: boolean;
constructor(el: ElementRef) {
inputs(this, el, [href, goBack]);
}
}
@NgDirective({ selector: 'ion-app' }) @NgDirective({ selector: 'ion-app' })
export class App { export class App {
@ -43,18 +34,6 @@ export class BackButton {
} }
} }
@NgDirective({ selector: 'ion-backdrop' })
export class Backdrop {
@NgInput() visible: boolean;
@NgInput() tappable: boolean;
@NgInput() stopPropagation: boolean;
@NgOutput() ionBackdropTap: NgEventEmitter<any>;
constructor(el: ElementRef) {
inputs(this, el, [visible, tappable, stopPropagation]);
outputs(this, [ionBackdropTap]);
}
}
@NgDirective({ selector: 'ion-badge' }) @NgDirective({ selector: 'ion-badge' })
export class Badge { export class Badge {
/** /**
@ -255,10 +234,6 @@ export class Content {
} }
} }
@NgDirective({ selector: 'ion-cordova-platform' })
export class CordovaPlatform {
}
@NgDirective({ selector: 'ion-datetime' }) @NgDirective({ selector: 'ion-datetime' })
export class Datetime { export class Datetime {
/** /**
@ -366,37 +341,6 @@ export class Footer {
} }
} }
@NgDirective({ selector: 'ion-gesture' })
export class Gesture {
@NgInput() disabled: boolean;
@NgInput() autoBlockAll: boolean;
@NgInput() disableScroll: boolean;
@NgInput() direction: string;
@NgInput() gestureName: string;
@NgInput() gesturePriority: number;
@NgInput() passive: boolean;
@NgInput() maxAngle: number;
@NgInput() threshold: number;
@NgInput() type: string;
@NgOutput() ionGestureMove: NgEventEmitter<any>;
@NgOutput() ionGestureStart: NgEventEmitter<any>;
@NgOutput() ionGestureEnd: NgEventEmitter<any>;
@NgOutput() ionGestureNotCaptured: NgEventEmitter<any>;
@NgOutput() ionPress: NgEventEmitter<any>;
constructor(el: ElementRef) {
inputs(this, el, [disabled, autoBlockAll, disableScroll, direction, gestureName, gesturePriority, passive, maxAngle, threshold, type]);
outputs(this, [ionGestureMove, ionGestureStart, ionGestureEnd, ionGestureNotCaptured, ionPress]);
}
}
@NgDirective({ selector: 'ion-gesture-controller' })
export class GestureController {
@NgOutput() ionGestureCaptured: NgEventEmitter<any>;
constructor() {
outputs(this, [ionGestureCaptured]);
}
}
@NgDirective({ selector: 'ion-grid' }) @NgDirective({ selector: 'ion-grid' })
export class Grid { export class Grid {
} }
@ -771,6 +715,17 @@ export class MenuToggle {
} }
} }
@NgDirective({ selector: 'ion-nav' })
export class NavControllerBase {
@NgInput() swipeBackEnabled: boolean;
@NgInput() animated: boolean;
@NgOutput() ionNavChanged: NgEventEmitter<any>;
constructor(el: ElementRef) {
inputs(this, el, [swipeBackEnabled, animated]);
outputs(this, [ionNavChanged]);
}
}
@NgDirective({ selector: 'ion-nav-pop' }) @NgDirective({ selector: 'ion-nav-pop' })
export class NavPop { export class NavPop {
} }
@ -907,25 +862,6 @@ export class Range {
} }
} }
@NgDirective({ selector: 'ion-range-knob' })
export class RangeKnob {
@NgInput() pressed: boolean;
@NgInput() pin: boolean;
@NgInput() min: number;
@NgInput() max: number;
@NgInput() val: number;
@NgInput() disabled: boolean;
@NgInput() labelId: string;
@NgInput() knob: string;
@NgInput() ratio: number;
@NgOutput() ionIncrease: NgEventEmitter<any>;
@NgOutput() ionDecrease: NgEventEmitter<any>;
constructor(el: ElementRef) {
inputs(this, el, [pressed, pin, min, max, val, disabled, labelId, knob, ratio]);
outputs(this, [ionIncrease, ionDecrease]);
}
}
@NgDirective({ selector: 'ion-refresher' }) @NgDirective({ selector: 'ion-refresher' })
export class Refresher { export class Refresher {
/** /**
@ -1003,55 +939,6 @@ export class RippleEffect {
} }
} }
@NgDirective({ selector: 'ion-route' })
export class Route {
/**
* Relative path that needs to match in order for this route to apply.
*/
@NgInput() url: string;
/**
* Name of the component to load/select in the navigation outlet (`ion-tabs`, `ion-nav`) when the route matches. The value of this property is not always the tagname of the component to load, in ion-tabs it actually refers to the name of the `ion-tab` to select.
*/
@NgInput() component: string;
@NgOutput() ionRouteDataChanged: NgEventEmitter<any>;
constructor(el: ElementRef) {
inputs(this, el, [url, component]);
outputs(this, [ionRouteDataChanged]);
}
}
@NgDirective({ selector: 'ion-route-redirect' })
export class RouteRedirect {
/**
* A redirect route, redirects "from" a URL "to" another URL. This property is that "from" URL. It needs to be an exact match of the navigated URL in order to apply. The path specified in this value is always an absolute path, even if the initial `/` slash is not specified.
*/
@NgInput() from: string;
@NgOutput() ionRouteRedirectChanged: NgEventEmitter<any>;
constructor(el: ElementRef) {
inputs(this, el, [from]);
outputs(this, [ionRouteRedirectChanged]);
}
}
@NgDirective({ selector: 'ion-router' })
export class Router {
@NgInput() base: string;
@NgInput() useHash: boolean;
@NgOutput() ionRouteChanged: NgEventEmitter<any>;
constructor(el: ElementRef) {
inputs(this, el, [base, useHash]);
outputs(this, [ionRouteChanged]);
}
}
@NgDirective({ selector: 'ion-router-outlet' })
export class RouterOutlet {
@NgInput() animated: boolean;
constructor(el: ElementRef) {
inputs(this, el, [animated]);
}
}
@NgDirective({ selector: 'ion-row' }) @NgDirective({ selector: 'ion-row' })
export class Row { export class Row {
} }
@ -1343,45 +1230,96 @@ export class SplitPane {
} }
} }
@NgDirective({ selector: 'ion-status-tap' }) @NgDirective({ selector: 'ion-tab' })
export class StatusTap { export class Tab {
@NgInput() duration: number; @NgInput() active: boolean;
constructor(el: ElementRef) { @NgInput() btnId: string;
inputs(this, el, [duration]);
}
}
@NgDirective({ selector: 'ion-tab-button' })
export class TabButton {
@NgInput() selected: boolean;
@NgOutput() ionTabbarClick: NgEventEmitter<any>;
@NgOutput() ionTabButtonDidLoad: NgEventEmitter<any>;
@NgOutput() ionTabButtonDidUnload: NgEventEmitter<any>;
constructor(el: ElementRef) {
inputs(this, el, [selected]);
outputs(this, [ionTabbarClick, ionTabButtonDidLoad, ionTabButtonDidUnload]);
}
}
@NgDirective({ selector: 'ion-tabbar' })
export class Tabbar {
@NgInput() placement: string;
@NgInput() scrollable: boolean;
@NgInput() layout: string;
@NgInput() highlight: boolean;
/** /**
* If true, the tabbar will be translucent. Defaults to `false`. * The title of the tab.
*/
@NgInput() tabTitle: string;
/**
* The URL which will be used as the `href` within this tab's `<ion-tab-button>` anchor.
*/
@NgInput() href: string;
/**
* The icon for the tab.
*/
@NgInput() tabIcon: string;
/**
* The badge for the tab.
*/
@NgInput() tabBadge: string;
/**
* The badge color for the tab button.
*/
@NgInput() tabBadgeStyle: string;
/**
* The name of the tab.
*/
@NgInput() name: string;
/**
* If true, the user cannot interact with the tab. Defaults to `false`.
*/
@NgInput() disabled: boolean;
/**
* If true, the tab will be selected. Defaults to `false`.
*/
@NgInput() selected: boolean;
/**
* If true, the tab button is visible within the tabbar. Defaults to `true`.
*/
@NgInput() show: boolean;
/**
* If true, hide the tabs on child pages.
*/
@NgInput() tabsHideOnSubPages: boolean;
@NgOutput() ionSelect: NgEventEmitter<any>;
constructor(el: ElementRef) {
inputs(this, el, [active, btnId, tabTitle, href, tabIcon, tabBadge, tabBadgeStyle, name, disabled, selected, show, tabsHideOnSubPages]);
outputs(this, [ionSelect]);
}
}
@NgDirective({ selector: 'ion-tabs' })
export class Tabs {
/**
* The color to use from your Sass `$colors` map. Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`. For more information, see [Theming your App](/docs/theming/theming-your-app).
*/
@NgInput() color: string;
/**
* A unique name for the tabs
*/
@NgInput() name: string;
/**
* If true, the tabbar
*/
@NgInput() tabbarHidden: boolean;
/**
* Set the tabbar layout: `icon-top`, `icon-start`, `icon-end`, `icon-bottom`, `icon-hide`, `title-hide`.
*/
@NgInput() tabbarLayout: string;
/**
* Set position of the tabbar: `top`, `bottom`.
*/
@NgInput() tabbarPlacement: string;
/**
* If true, show the tab highlight bar under the selected tab.
*/
@NgInput() tabbarHighlight: boolean;
/**
* If true, the tabs will be translucent. Note: In order to scroll content behind the tabs, the `fullscreen` attribute needs to be set on the content. Defaults to `false`.
*/ */
@NgInput() translucent: boolean; @NgInput() translucent: boolean;
@NgInput() scrollable: boolean;
@NgOutput() ionChange: NgEventEmitter<any>;
@NgOutput() ionNavChanged: NgEventEmitter<any>;
constructor(el: ElementRef) { constructor(el: ElementRef) {
inputs(this, el, [placement, scrollable, layout, highlight, translucent]); inputs(this, el, [color, name, tabbarHidden, tabbarLayout, tabbarPlacement, tabbarHighlight, translucent, scrollable]);
outputs(this, [ionChange, ionNavChanged]);
} }
} }
@NgDirective({ selector: 'ion-tap-click' })
export class TapClick {
}
@NgDirective({ selector: 'ion-text' }) @NgDirective({ selector: 'ion-text' })
export class Text { export class Text {
/** /**

View File

@ -1,123 +1,16 @@
// export module
export { IonicModule } from './module'; export { IonicModule } from './module';
// providers // export auto generated directive
export { AngularDelegate } from './providers/angular-delegate'; export * from './directives/proxies';
export { ActionSheetController } from './providers/action-sheet-controller';
export { AlertController } from './providers/alert-controller';
export { Events } from './providers/events';
export { LoadingController } from './providers/loading-controller';
export { MenuController } from './providers/menu-controller';
export { PickerController } from './providers/picker-controller';
export { ModalController } from './providers/modal-controller';
export { Platform } from './providers/platform';
export { PopoverController } from './providers/popover-controller';
export { ToastController } from './providers/toast-controller';
// navigation // export custom directives
export { GoBack } from './navigation/go-back'; export * from './directives';
export { IonBackButton } from './navigation/ion-back-button';
export { NavController } from './navigation/ion-nav-controller';
export { Nav } from './navigation/ion-nav';
export { IonRouterOutlet } from './navigation/ion-router-outlet';
export { Tab } from './navigation/ion-tab';
export { Tabs } from './navigation/ion-tabs';
// directives // export custom providers
export { Icon } from './directives/icon'; export * from './providers';
export { VirtualScroll } from './directives/virtual-scroll';
export { VirtualItem } from './directives/virtual-item';
export { VirtualHeader } from './directives/virtual-header';
export { VirtualFooter } from './directives/virtual-footer';
// directive proxies
export {
Anchor,
App,
Avatar,
BackButton,
Backdrop,
Badge,
Button,
Buttons,
Card,
CardContent,
CardHeader,
CardSubtitle,
CardTitle,
Checkbox,
Chip,
ChipButton,
Col,
Content,
CordovaPlatform,
Datetime,
Fab,
FabButton,
FabList,
Footer,
Gesture,
GestureController,
Grid,
Header,
HideWhen,
InfiniteScroll,
InfiniteScrollContent,
Input,
Item,
ItemDivider,
ItemGroup,
ItemOption,
ItemOptions,
ItemSliding,
Label,
List,
ListHeader,
Menu,
MenuButton,
MenuToggle,
NavPop,
NavPush,
NavSetRoot,
Note,
Radio,
RadioGroup,
Range,
RangeKnob,
Refresher,
RefresherContent,
Reorder,
ReorderGroup,
RippleEffect,
Route,
RouteRedirect,
Router,
RouterOutlet,
Row,
Scroll,
Searchbar,
Segment,
SegmentButton,
Select,
SelectOption,
SelectPopover,
ShowWhen,
SkeletonText,
Slide,
Slides,
Spinner,
SplitPane,
StatusTap,
TabButton,
Tabbar,
TapClick,
Text,
Textarea,
Thumbnail,
Toggle,
Toolbar,
ToolbarTitle
} from './directives/proxies';
// ionic types
export * from './types/interfaces'; export * from './types/interfaces';
/*tslint:disable*/ /*tslint:disable*/

View File

@ -1,355 +1,131 @@
import { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core'; import { ModuleWithProviders, NgModule } from '@angular/core';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
// inputs import * as c from './directives';
import { BooleanValueAccessor } from './control-value-accessors/boolean-value-accessor'; import * as d from './directives/proxies';
import { NumericValueAccessor } from './control-value-accessors/numeric-value-accesssor'; import * as p from './providers';
import { RadioValueAccessor } from './control-value-accessors/radio-value-accessor';
import { SelectValueAccessor } from './control-value-accessors/select-value-accessor';
import { TextValueAccessor } from './control-value-accessors/text-value-accessor';
// navigation
import { GoBack } from './navigation/go-back';
import { IonBackButton } from './navigation/ion-back-button';
import { NavController } from './navigation/ion-nav-controller';
import { Nav } from './navigation/ion-nav';
import { Tab } from './navigation/ion-tab';
import { Tabs } from './navigation/ion-tabs';
// router const DECLARATIONS = [
import { IonRouterOutlet } from './navigation/ion-router-outlet'; // proxies
d.App,
d.Avatar,
d.BackButton,
d.Badge,
d.Button,
d.Buttons,
d.Card,
d.CardContent,
d.CardHeader,
d.CardSubtitle,
d.CardTitle,
d.Checkbox,
d.Chip,
d.ChipButton,
d.Col,
d.Content,
d.Datetime,
d.Fab,
d.FabButton,
d.FabList,
d.Footer,
d.Grid,
d.Header,
d.HideWhen,
d.InfiniteScroll,
d.InfiniteScrollContent,
d.Input,
d.Item,
d.ItemDivider,
d.ItemGroup,
d.ItemOption,
d.ItemOptions,
d.ItemSliding,
d.Label,
d.List,
d.ListHeader,
d.Menu,
d.MenuButton,
d.MenuToggle,
d.NavControllerBase,
d.NavPop,
d.NavPush,
d.NavSetRoot,
d.Note,
d.Radio,
d.RadioGroup,
d.Range,
d.Refresher,
d.RefresherContent,
d.Reorder,
d.ReorderGroup,
d.RippleEffect,
d.Row,
d.Scroll,
d.Searchbar,
d.Segment,
d.SegmentButton,
d.Select,
d.SelectOption,
d.SelectPopover,
d.ShowWhen,
d.SkeletonText,
d.Slide,
d.Slides,
d.Spinner,
d.SplitPane,
d.Tab,
d.Tabs,
d.Text,
d.Textarea,
d.Thumbnail,
d.Toggle,
d.Toolbar,
d.ToolbarTitle,
// providers // custom proxy
import { AngularDelegate } from './providers/angular-delegate'; c.Icon,
import { ActionSheetController } from './providers/action-sheet-controller';
import { AlertController } from './providers/alert-controller';
import { Events, setupProvideEvents } from './providers/events';
import { LoadingController } from './providers/loading-controller';
import { MenuController } from './providers/menu-controller';
import { ModalController } from './providers/modal-controller';
import { PickerController } from './providers/picker-controller';
import { Platform } from './providers/platform';
import { PopoverController } from './providers/popover-controller';
import { ToastController } from './providers/toast-controller';
// directives // ngModel accessors
import { Icon } from './directives/icon'; c.BooleanValueAccessor,
import { VirtualScroll } from './directives/virtual-scroll'; c.NumericValueAccessor,
import { VirtualItem } from './directives/virtual-item'; c.RadioValueAccessor,
import { VirtualHeader } from './directives/virtual-header'; c.SelectValueAccessor,
import { VirtualFooter } from './directives/virtual-footer'; c.TextValueAccessor,
// directive proxies // navigation
import { c.GoBack,
Anchor, c.IonBackButton,
App, c.IonRouterOutlet,
Avatar, c.NavDelegate,
BackButton, c.TabDelegate,
Backdrop,
Badge,
Button,
Buttons,
Card,
CardContent,
CardHeader,
CardSubtitle,
CardTitle,
Checkbox,
Chip,
ChipButton,
Col,
Content,
CordovaPlatform,
Datetime,
Fab,
FabButton,
FabList,
Footer,
Gesture,
GestureController,
Grid,
Header,
HideWhen,
InfiniteScroll,
InfiniteScrollContent,
Input,
Item,
ItemDivider,
ItemGroup,
ItemOption,
ItemOptions,
ItemSliding,
Label,
List,
ListHeader,
Menu,
MenuButton,
MenuToggle,
NavPop,
NavPush,
NavSetRoot,
Note,
Radio,
RadioGroup,
Range,
RangeKnob,
Refresher,
RefresherContent,
Reorder,
ReorderGroup,
RippleEffect,
Route,
RouteRedirect,
Router,
RouterOutlet,
Row,
Scroll,
Searchbar,
Segment,
SegmentButton,
Select,
SelectOption,
SelectPopover,
ShowWhen,
SkeletonText,
Slide,
Slides,
Spinner,
SplitPane,
StatusTap,
TabButton,
Tabbar,
TapClick,
Text,
Textarea,
Thumbnail,
Toggle,
Toolbar,
ToolbarTitle,
} from './directives/proxies';
// virtual scroll
c.VirtualFooter,
c.VirtualHeader,
c.VirtualItem,
c.VirtualScroll,
];
const PROVIDERS = [
p.ActionSheetController,
p.AlertController,
p.LoadingController,
p.ModalController,
p.PickerController,
p.PopoverController,
p.ToastController,
p.MenuController,
p.NavController,
p.Platform,
p.Events,
];
@NgModule({ @NgModule({
declarations: [ declarations: DECLARATIONS,
Anchor, exports: DECLARATIONS,
App,
Avatar,
BackButton,
Backdrop,
Badge,
Button,
Buttons,
Card,
CardContent,
CardHeader,
CardSubtitle,
CardTitle,
Checkbox,
Chip,
ChipButton,
Col,
Content,
CordovaPlatform,
Datetime,
Fab,
FabButton,
FabList,
Footer,
Gesture,
GestureController,
Grid,
Header,
HideWhen,
Icon,
InfiniteScroll,
InfiniteScrollContent,
Input,
Item,
ItemDivider,
ItemGroup,
ItemOption,
ItemOptions,
ItemSliding,
Label,
List,
ListHeader,
Menu,
MenuButton,
MenuToggle,
NavPop,
NavPush,
NavSetRoot,
Note,
Radio,
RadioGroup,
Range,
RangeKnob,
Refresher,
RefresherContent,
Reorder,
ReorderGroup,
RippleEffect,
Route,
RouteRedirect,
Router,
RouterOutlet,
Row,
Scroll,
Searchbar,
Segment,
SegmentButton,
Select,
SelectOption,
SelectPopover,
ShowWhen,
SkeletonText,
Slide,
Slides,
Spinner,
SplitPane,
StatusTap,
TabButton,
Tabbar,
TapClick,
Text,
Textarea,
Thumbnail,
Toggle,
Toolbar,
ToolbarTitle,
// navigation
Nav,
Tab,
Tabs,
GoBack,
IonBackButton,
// router
IonRouterOutlet,
// inputs
BooleanValueAccessor,
NumericValueAccessor,
RadioValueAccessor,
SelectValueAccessor,
TextValueAccessor,
// directives
VirtualScroll,
VirtualItem,
VirtualHeader,
VirtualFooter,
],
exports: [
Anchor,
App,
Avatar,
BackButton,
Backdrop,
Badge,
Button,
Buttons,
Card,
CardContent,
CardHeader,
CardSubtitle,
CardTitle,
Checkbox,
Chip,
ChipButton,
Col,
Content,
CordovaPlatform,
Datetime,
Fab,
FabButton,
FabList,
Footer,
Gesture,
GestureController,
Grid,
Header,
HideWhen,
Icon,
InfiniteScroll,
InfiniteScrollContent,
Input,
Item,
ItemDivider,
ItemGroup,
ItemOption,
ItemOptions,
ItemSliding,
Label,
List,
ListHeader,
Menu,
MenuButton,
MenuToggle,
NavPop,
NavPush,
NavSetRoot,
Note,
Radio,
RadioGroup,
Range,
RangeKnob,
Refresher,
RefresherContent,
Reorder,
ReorderGroup,
RippleEffect,
Route,
RouteRedirect,
Router,
RouterOutlet,
Row,
Scroll,
Searchbar,
Segment,
SegmentButton,
Select,
SelectOption,
SelectPopover,
ShowWhen,
SkeletonText,
Slide,
Slides,
Spinner,
SplitPane,
StatusTap,
TabButton,
Tabbar,
TapClick,
Text,
Textarea,
Thumbnail,
Toggle,
Toolbar,
ToolbarTitle,
BooleanValueAccessor,
Nav,
IonRouterOutlet,
GoBack,
IonBackButton,
Tab,
Tabs,
NumericValueAccessor,
RadioValueAccessor,
SelectValueAccessor,
TextValueAccessor,
VirtualScroll,
VirtualItem,
VirtualHeader,
VirtualFooter
],
providers: [ providers: [
AngularDelegate, p.AngularDelegate
ModalController,
PopoverController,
], ],
imports: [ imports: [
CommonModule, CommonModule,
@ -360,17 +136,7 @@ export class IonicModule {
return { return {
ngModule: IonicModule, ngModule: IonicModule,
providers: [ providers: [
NavController, ...PROVIDERS,
AlertController,
ActionSheetController,
Events,
LoadingController,
PickerController,
MenuController,
Platform,
ToastController,
{ provide: APP_INITIALIZER, useFactory: setupProvideEvents, multi: true },
] ]
}; };
} }

View File

@ -1,108 +0,0 @@
import { ComponentFactoryResolver, Directive, ElementRef, Injector, Input} from '@angular/core';
import { AngularDelegate } from '../providers/angular-delegate';
import { ComponentProps, NavOptions, TransitionDoneFn, ViewController } from '@ionic/core';
import { proxyEl } from '../util/util';
import { inputs } from '../directives/proxies';
@Directive({
selector: 'ion-nav',
})
export class Nav {
@Input() root: any;
@Input() rootParams: any;
constructor(
private ref: ElementRef,
cfr: ComponentFactoryResolver,
injector: Injector,
angularDelegate: AngularDelegate,
) {
this.ref.nativeElement.delegate = angularDelegate.create(cfr, injector);
inputs(this, ref, ['root', 'rootParams']);
}
push(page: any, params?: ComponentProps, opts?: NavOptions, done?: TransitionDoneFn): Promise<boolean> {
return proxyEl(this.ref, 'push', page, params, opts, done);
}
insert(insertIndex: number, page: any, params?: ComponentProps, opts?: NavOptions, done?: TransitionDoneFn): Promise<boolean> {
return proxyEl(this.ref, 'insert', insertIndex, page, params, opts, done);
}
insertPages(insertIndex: number, insertPages: any[], opts?: NavOptions, done?: TransitionDoneFn): Promise<boolean> {
return proxyEl(this.ref, 'insertPages', insertIndex, insertPages, opts, done);
}
pop(opts?: NavOptions, done?: TransitionDoneFn): Promise<boolean> {
return proxyEl(this.ref, 'pop', opts, done);
}
popTo(indexOrViewCtrl: any, opts?: NavOptions, done?: TransitionDoneFn): Promise<boolean> {
return proxyEl(this.ref, 'popTo', indexOrViewCtrl, opts, done);
}
popToRoot(opts?: NavOptions, done?: TransitionDoneFn): Promise<boolean> {
return proxyEl(this.ref, 'popToRoot', opts, done);
}
popAll(): Promise<boolean[]> {
return proxyEl(this.ref, 'popAll');
}
removeIndex(startIndex: number, removeCount = 1, opts?: NavOptions, done?: TransitionDoneFn): Promise<boolean> {
return proxyEl(this.ref, 'removeIndex', startIndex, removeCount, opts, done);
}
removeView(viewController: ViewController, opts?: NavOptions, done?: TransitionDoneFn): Promise<boolean> {
return proxyEl(this.ref, 'removeView', viewController, opts, done);
}
setRoot(pageOrViewCtrl: any, params?: any, opts?: NavOptions, done?: TransitionDoneFn): Promise<boolean> {
return proxyEl(this.ref, 'setRoot', pageOrViewCtrl, params, opts, done);
}
setPages(pages: any[], opts?: NavOptions, done?: TransitionDoneFn): Promise<boolean> {
return proxyEl(this.ref, 'setPages', pages, opts, done);
}
getAllChildNavs(): any[] {
return proxyEl(this.ref, 'getAllChildNavs');
}
canGoBack(view?: ViewController): boolean {
return proxyEl(this.ref, 'canGoBack', view);
}
getActive(): ViewController {
return proxyEl(this.ref, 'getActive');
}
getByIndex(index: number): ViewController {
return proxyEl(this.ref, 'getByIndex', index);
}
getPrevious(view?: ViewController): ViewController|undefined {
return proxyEl(this.ref, 'getPrevious', view);
}
getViews(): Array<ViewController> {
return proxyEl(this.ref, 'getViews');
}
/**
* Return a view controller
*/
getViewById(id: string): ViewController|undefined {
return proxyEl(this.ref, 'getViewById', id);
}
indexOf(viewController: ViewController) {
return proxyEl(this.ref, 'indexOf', viewController);
}
length() {
return proxyEl(this.ref, 'length');
}
}

View File

@ -1,17 +0,0 @@
import { Directive, ElementRef, Input, OnInit } from '@angular/core';
@Directive({
selector: 'ion-tab'
})
export class Tab implements OnInit {
@Input() tabLink: string;
constructor(private elementRef: ElementRef) {}
ngOnInit() {
console.log('routerLink', this.tabLink, this.elementRef.nativeElement);
}
}

View File

@ -1,23 +0,0 @@
import { Directive, HostListener } from '@angular/core';
import { Router } from '@angular/router';
@Directive({
selector: 'ion-tabs'
})
export class Tabs {
constructor(private router: Router) {}
@HostListener('ionTabbarClick', ['$event'])
ionTabbarClick(ev: UIEvent) {
const tabElm: HTMLIonTabElement = ev.detail as any;
if (tabElm && tabElm.href) {
console.log('tabElm', tabElm.href);
this.router.navigateByUrl(tabElm.href);
}
}
}

View File

@ -0,0 +1,13 @@
export { AngularDelegate } from './angular-delegate';
export { ActionSheetController } from './action-sheet-controller';
export { AlertController } from './alert-controller';
export { Events } from './events';
export { LoadingController } from './loading-controller';
export { MenuController } from './menu-controller';
export { PickerController } from './picker-controller';
export { ModalController } from './modal-controller';
export { Platform } from './platform';
export { PopoverController } from './popover-controller';
export { ToastController } from './toast-controller';
export { NavController } from './nav-controller';

View File

@ -12,31 +12,52 @@ exports.config.outputTargets = [
{ {
type: 'angular', type: 'angular',
directivesProxyFile: 'src/directives/proxies.ts', directivesProxyFile: 'src/directives/proxies.ts',
directivesArrayFile: 'src/directives/proxies-list.txt',
empty: false, empty: false,
excludeComponents: [ excludeComponents: [
// overlays
'ion-action-sheet', 'ion-action-sheet',
'ion-action-sheet-controller', 'ion-action-sheet-controller',
'ion-alert', 'ion-alert',
'ion-alert-controller', 'ion-alert-controller',
'ion-animation-controller',
'ion-input-shims',
'ion-loading', 'ion-loading',
'ion-loading-controller', 'ion-loading-controller',
'ion-platform',
'ion-menu-controller',
'ion-modal', 'ion-modal',
'ion-modal-controller', 'ion-modal-controller',
'ion-nav',
'ion-picker', 'ion-picker',
'ion-picker-column',
'ion-picker-controller', 'ion-picker-controller',
'ion-popover', 'ion-popover',
'ion-popover-controller', 'ion-popover-controller',
'ion-tab',
'ion-tabs',
'ion-toast', 'ion-toast',
'ion-toast-controller', 'ion-toast-controller',
'ion-toast', 'ion-toast',
// controllers
'ion-menu-controller',
'ion-animation-controller',
'ion-animation-controller',
'ion-gesture-controller',
'ion-platform',
'ion-cordova-platform',
// navigation
'ion-router',
'ion-route',
'ion-route-redirect',
'ion-router-outlet',
'ion-anchor',
'ion-tabbar',
'ion-tab-button',
// auxiliar
'ion-gesture',
'ion-status-tap',
'ion-tap-click',
'ion-picker-column',
'ion-range-knob',
'ion-input-shims',
'ion-backdrop',
'ion-anchor',
'ion-virtual-scroll' 'ion-virtual-scroll'
] ]
} }

View File

@ -95,6 +95,7 @@ import {
import { import {
AnimationBuilder as AnimationBuilder3, AnimationBuilder as AnimationBuilder3,
ComponentProps as ComponentProps2, ComponentProps as ComponentProps2,
ComponentRef as ComponentRef2,
FrameworkDelegate as FrameworkDelegate2, FrameworkDelegate as FrameworkDelegate2,
} from '.'; } from '.';
import { import {
@ -5759,7 +5760,7 @@ declare global {
/** /**
* The component to display inside of the tab. * The component to display inside of the tab.
*/ */
'component': any; 'component': ComponentRef;
'delegate': FrameworkDelegate; 'delegate': FrameworkDelegate;
/** /**
* If true, the user cannot interact with the tab. Defaults to `false`. * If true, the user cannot interact with the tab. Defaults to `false`.
@ -5826,7 +5827,7 @@ declare global {
/** /**
* The component to display inside of the tab. * The component to display inside of the tab.
*/ */
'component'?: any; 'component'?: ComponentRef;
'delegate'?: FrameworkDelegate; 'delegate'?: FrameworkDelegate;
/** /**
* If true, the user cannot interact with the tab. Defaults to `false`. * If true, the user cannot interact with the tab. Defaults to `false`.

View File

@ -1,27 +0,0 @@
<!DOCTYPE html>
<html dir="ltr">
<head>
<meta charset="UTF-8">
<title>Page - Basic</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover">
<script src="/dist/ionic.js"></script>
</head>
<body>
<ion-app>
<ion-header>
<ion-toolbar>
<ion-title>Page - Basic</ion-title>
</ion-toolbar>
</ion-header>
<ion-content padding>
Ion Page Content
</ion-content>
</ion-app>
</body>
</html>

View File

@ -1,38 +0,0 @@
<!DOCTYPE html>
<html dir="ltr">
<head>
<meta charset="UTF-8">
<title>Page - Host Element</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover">
<script src="/dist/ionic.js"></script>
<script>
class PageOne extends HTMLElement {
connectedCallback() {
this.innerHTML = `
<ion-header>
<ion-toolbar>
<ion-title>Page One</ion-title>
</ion-toolbar>
</ion-header>
<ion-content padding>
Content for the host element
</ion-content>
`;
}
}
customElements.define('page-one', PageOne);
</script>
</head>
<body>
<ion-app>
<page-one></page-one>
</ion-app>
</body>
</html>

View File

@ -1,25 +0,0 @@
<!DOCTYPE html>
<html dir="ltr">
<head>
<meta charset="UTF-8">
<title>Page - no-ion-app</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover">
<script src="/dist/ionic.js"></script>
</head>
<body>
<div style="height: 300px">
<ion-header>
<ion-toolbar>
<ion-title>Page - No Ion App Basic</ion-title>
</ion-toolbar>
</ion-header>
<ion-content padding>
Ion Page Content
</ion-content>
</body>
</html>

View File

@ -1,38 +0,0 @@
<!DOCTYPE html>
<html dir="ltr">
<head>
<meta charset="UTF-8">
<title>Page - No Ion App Host Element</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover">
<script src="/dist/ionic.js"></script>
<script>
class PageOne extends HTMLElement {
connectedCallback() {
this.innerHTML = `
<ion-header>
<ion-toolbar>
<ion-title>No Ion App Page One</ion-title>
</ion-toolbar>
</ion-header>
<ion-content padding>
Content for the host element
</ion-content>
`;
}
}
customElements.define('page-one', PageOne);
</script>
</head>
<body>
<div style="height: 300px">
<page-one></page-one>
</div>
</body>
</html>

View File

@ -1,27 +0,0 @@
<!DOCTYPE html>
<html dir="ltr">
<head>
<meta charset="UTF-8">
<title>Page</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover">
<script src="/dist/ionic.js"></script>
</head>
<body>
<ion-app>
<ion-header>
<ion-toolbar>
<ion-title>Page</ion-title>
</ion-toolbar>
</ion-header>
<ion-content padding>
Ion Page Content
</ion-content>
</ion-app>
</body>
</html>

View File

@ -62,7 +62,7 @@ string
#### component #### component
any
The component to display inside of the tab. The component to display inside of the tab.
@ -156,7 +156,7 @@ string
#### component #### component
any
The component to display inside of the tab. The component to display inside of the tab.

View File

@ -1,5 +1,6 @@
import { Build, Component, Element, Event, EventEmitter, Method, Prop, State, Watch } from '@stencil/core'; import { Build, Component, Element, Event, EventEmitter, Method, Prop, State, Watch } from '@stencil/core';
import { FrameworkDelegate, attachComponent } from '../../utils/framework-delegate'; import { FrameworkDelegate, attachComponent } from '../../utils/framework-delegate';
import { ComponentRef } from '../..';
@Component({ @Component({
tag: 'ion-tab' tag: 'ion-tab'
@ -44,7 +45,7 @@ export class Tab {
/** /**
* The component to display inside of the tab. * The component to display inside of the tab.
*/ */
@Prop() component: any; @Prop() component: ComponentRef;
/** /**
* The name of the tab. * The name of the tab.

View File

@ -1,11 +0,0 @@
# ion-utils
<!-- Auto Generated Below -->
----------------------------------------------
*Built by [StencilJS](https://stenciljs.com/)*