├── .editorconfig ├── .gitignore ├── .sourcemaps └── main.js.map ├── LICENSE ├── README.md ├── config.xml ├── docs ├── assets │ ├── fonts │ │ ├── ionicons.eot │ │ ├── ionicons.scss │ │ ├── ionicons.svg │ │ ├── ionicons.ttf │ │ ├── ionicons.woff │ │ ├── ionicons.woff2 │ │ ├── noto-sans-bold.ttf │ │ ├── noto-sans-bold.woff │ │ ├── noto-sans-regular.ttf │ │ ├── noto-sans-regular.woff │ │ ├── noto-sans.scss │ │ ├── roboto-bold.ttf │ │ ├── roboto-bold.woff │ │ ├── roboto-bold.woff2 │ │ ├── roboto-light.ttf │ │ ├── roboto-light.woff │ │ ├── roboto-light.woff2 │ │ ├── roboto-medium.ttf │ │ ├── roboto-medium.woff │ │ ├── roboto-medium.woff2 │ │ ├── roboto-regular.ttf │ │ ├── roboto-regular.woff │ │ ├── roboto-regular.woff2 │ │ └── roboto.scss │ ├── icon │ │ └── logo.png │ ├── icons │ │ ├── android-icon-144x144.png │ │ ├── android-icon-192x192.png │ │ ├── android-icon-36x36.png │ │ ├── android-icon-48x48.png │ │ ├── android-icon-72x72.png │ │ ├── android-icon-96x96.png │ │ ├── apple-icon-114x114.png │ │ ├── apple-icon-120x120.png │ │ ├── apple-icon-144x144.png │ │ ├── apple-icon-152x152.png │ │ ├── apple-icon-180x180.png │ │ ├── apple-icon-57x57.png │ │ ├── apple-icon-60x60.png │ │ ├── apple-icon-72x72.png │ │ ├── apple-icon-76x76.png │ │ ├── apple-icon-precomposed.png │ │ ├── apple-icon.png │ │ ├── browserconfig.xml │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── favicon-96x96.png │ │ ├── favicon.ico │ │ ├── logo.png │ │ ├── ms-icon-144x144.png │ │ ├── ms-icon-150x150.png │ │ ├── ms-icon-310x310.png │ │ └── ms-icon-70x70.png │ └── img │ │ ├── 1.jpg │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.jpg │ │ ├── 4.jpg │ │ ├── avatar-ts-buzz.png │ │ ├── avatar-ts-jessie.png │ │ ├── avatar-ts-potatohead.png │ │ ├── avatar-ts-woody.png │ │ ├── dist.png │ │ ├── ng2.png │ │ └── wechat │ │ ├── icon-1.png │ │ ├── icon-10.png │ │ ├── icon-11.png │ │ ├── icon-12.png │ │ ├── icon-13.png │ │ ├── icon-14.png │ │ ├── icon-15.png │ │ ├── icon-16.png │ │ ├── icon-17.png │ │ ├── icon-2.png │ │ ├── icon-3.png │ │ ├── icon-4.png │ │ ├── icon-5.png │ │ ├── icon-6.png │ │ ├── icon-7.png │ │ ├── icon-8.png │ │ └── icon-9.png ├── build │ ├── main.css │ ├── main.js │ ├── polyfills.js │ └── sw-toolbox.js ├── index.html ├── manifest.json └── service-worker.js ├── ionic.config.json ├── package-lock.json ├── package.json ├── resources ├── android │ ├── icon │ │ ├── drawable-hdpi-icon.png │ │ ├── drawable-ldpi-icon.png │ │ ├── drawable-mdpi-icon.png │ │ ├── drawable-xhdpi-icon.png │ │ ├── drawable-xxhdpi-icon.png │ │ └── drawable-xxxhdpi-icon.png │ └── splash │ │ ├── drawable-land-hdpi-screen.png │ │ ├── drawable-land-ldpi-screen.png │ │ ├── drawable-land-mdpi-screen.png │ │ ├── drawable-land-xhdpi-screen.png │ │ ├── drawable-land-xxhdpi-screen.png │ │ ├── drawable-land-xxxhdpi-screen.png │ │ ├── drawable-port-hdpi-screen.png │ │ ├── drawable-port-ldpi-screen.png │ │ ├── drawable-port-mdpi-screen.png │ │ ├── drawable-port-xhdpi-screen.png │ │ ├── drawable-port-xxhdpi-screen.png │ │ └── drawable-port-xxxhdpi-screen.png ├── icon.png ├── ios │ ├── icon │ │ ├── icon-40.png │ │ ├── icon-40@2x.png │ │ ├── icon-40@3x.png │ │ ├── icon-50.png │ │ ├── icon-50@2x.png │ │ ├── icon-60.png │ │ ├── icon-60@2x.png │ │ ├── icon-60@3x.png │ │ ├── icon-72.png │ │ ├── icon-72@2x.png │ │ ├── icon-76.png │ │ ├── icon-76@2x.png │ │ ├── icon-83.5@2x.png │ │ ├── icon-small.png │ │ ├── icon-small@2x.png │ │ ├── icon-small@3x.png │ │ ├── icon.png │ │ └── icon@2x.png │ └── splash │ │ ├── Default-568h@2x~iphone.png │ │ ├── Default-667h.png │ │ ├── Default-736h.png │ │ ├── Default-Landscape-736h.png │ │ ├── Default-Landscape@2x~ipad.png │ │ ├── Default-Landscape~ipad.png │ │ ├── Default-Portrait@2x~ipad.png │ │ ├── Default-Portrait~ipad.png │ │ ├── Default@2x~iphone.png │ │ └── Default~iphone.png └── splash.png ├── src ├── app │ ├── app.component.ts │ ├── app.html │ ├── app.module.ts │ ├── app.scss │ └── main.ts ├── assets │ ├── icon │ │ └── logo.png │ ├── icons │ │ ├── android-icon-144x144.png │ │ ├── android-icon-192x192.png │ │ ├── android-icon-36x36.png │ │ ├── android-icon-48x48.png │ │ ├── android-icon-72x72.png │ │ ├── android-icon-96x96.png │ │ ├── apple-icon-114x114.png │ │ ├── apple-icon-120x120.png │ │ ├── apple-icon-144x144.png │ │ ├── apple-icon-152x152.png │ │ ├── apple-icon-180x180.png │ │ ├── apple-icon-57x57.png │ │ ├── apple-icon-60x60.png │ │ ├── apple-icon-72x72.png │ │ ├── apple-icon-76x76.png │ │ ├── apple-icon-precomposed.png │ │ ├── apple-icon.png │ │ ├── browserconfig.xml │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── favicon-96x96.png │ │ ├── favicon.ico │ │ ├── logo.png │ │ ├── ms-icon-144x144.png │ │ ├── ms-icon-150x150.png │ │ ├── ms-icon-310x310.png │ │ └── ms-icon-70x70.png │ └── img │ │ ├── 1.jpg │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.jpg │ │ ├── 4.jpg │ │ ├── 5.png │ │ ├── avatar-ts-buzz.png │ │ ├── avatar-ts-jessie.png │ │ ├── avatar-ts-potatohead.png │ │ ├── avatar-ts-woody.png │ │ ├── dist.png │ │ ├── ng2.png │ │ └── wechat │ │ ├── icon-1.png │ │ ├── icon-10.png │ │ ├── icon-11.png │ │ ├── icon-12.png │ │ ├── icon-13.png │ │ ├── icon-14.png │ │ ├── icon-15.png │ │ ├── icon-16.png │ │ ├── icon-17.png │ │ ├── icon-2.png │ │ ├── icon-3.png │ │ ├── icon-4.png │ │ ├── icon-5.png │ │ ├── icon-6.png │ │ ├── icon-7.png │ │ ├── icon-8.png │ │ └── icon-9.png ├── declarations.d.ts ├── index.html ├── manifest.json ├── pages │ ├── about-me │ │ ├── about-me.html │ │ ├── about-me.scss │ │ └── about-me.ts │ ├── contacts │ │ ├── contacts.html │ │ ├── contacts.scss │ │ └── contacts.ts │ ├── discover │ │ ├── discover.html │ │ ├── discover.scss │ │ └── discover.ts │ └── msg-list │ │ ├── msg-list.html │ │ ├── msg-list.scss │ │ ├── msg-list.ts │ │ ├── popover-page.html │ │ ├── popover-page.scss │ │ └── popover-page.ts ├── service-worker.js └── theme │ └── variables.scss ├── tsconfig.json └── tslint.json /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps developers define and maintain consistent coding styles between different editors and IDEs 2 | # editorconfig.org 3 | 4 | root = true 5 | 6 | [*] 7 | indent_style = space 8 | indent_size = 2 9 | 10 | # We recommend you to keep these unchanged 11 | end_of_line = lf 12 | charset = utf-8 13 | trim_trailing_whitespace = true 14 | insert_final_newline = true 15 | 16 | [*.md] 17 | trim_trailing_whitespace = false -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Specifies intentionally untracked files to ignore when using Git 2 | # http://git-scm.com/docs/gitignore 3 | 4 | *~ 5 | *.sw[mnpcod] 6 | *.log 7 | *.tmp 8 | *.tmp.* 9 | log.txt 10 | *.sublime-project 11 | *.sublime-workspace 12 | .vscode/ 13 | npm-debug.log* 14 | 15 | .idea/ 16 | .sass-cache/ 17 | .tmp/ 18 | .versions/ 19 | coverage/ 20 | dist/ 21 | node_modules/ 22 | tmp/ 23 | temp/ 24 | hooks/ 25 | platforms/ 26 | plugins/ 27 | plugins/android.json 28 | plugins/ios.json 29 | www/ 30 | $RECYCLE.BIN/ 31 | 32 | .DS_Store 33 | Thumbs.db 34 | UserInterfaceState.xcuserstate 35 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2017 大漠穷秋 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | nicefish 2 | 3 | ### NiceFish(美人鱼) 4 | 5 | NiceFish 是一个系列教学项目,目标是全面示范 Angular 在浏览器、移动端、Electron 环境中的用法。 6 | 7 | * NiceFish:美人鱼,这是一个微型 Blog 系统,前端基于 Angular 4.x + PrimeNG。http://git.oschina.net/mumu-osc/NiceFish/ 8 | 9 | * NiceFish-Admin:这是系统管理界面,基于 Angular 4.x+PrimeNG,http://git.oschina.net/mumu-osc/NiceFish-Admin 10 | 11 | * NiceFish-ionic:这是一个移动端的 demo,基于 ionic,此项目已支持 PWA。http://git.oschina.net/mumu-osc/nicefish-ionic 12 | 13 | * NiceBlogElectron:https://github.com/damoqiongqiu/NiceBlogElectron ,这是一个基于 Electron 的桌面端项目,把 NiceFish 用 Electron 打包成了一个桌面端运行的程序。这是由 ZTE 中兴通讯的前端道友提供的,我 fork 了一个,有几个 node 模块的版本号老要改,如果您正在研究如何利用 Electron 开发桌面端应用,请参考这个项目。 14 | 15 | ### 产品代码 16 | 17 | OpenWMS 是一个开源产品,复杂度比 NiceFish 高,请不要用此项目进行入门学习。 18 | 19 | * OpenWMS:https://gitee.com/mumu-osc/OpenWMS-Frontend ,这是 OpenWMS 项目的前端代码,基于当前最新的 Angular 5.2.0 和 PrimeNG 5.2.4。 20 | 21 | ### 在线演示 22 | 23 | NiceFish: http://47.104.13.149:4200 24 | 25 | NiceFish-Admin: http://47.104.13.149:8080 26 | 27 | OpenWMS:http://47.104.80.251:4200 28 | 29 | NiceFish-ionic:https://damoqiongqiu.github.io/NiceFish-ionic/ 30 | 31 | ### 本项目运行效果 32 | 33 | ![视频教程截图](src/assets/img/1.png) 34 | 35 | ### 用法 36 | 37 | for THIS_REPO 38 | git clone YOUR_REPO 39 | cd nicefish-ionic 40 | cnpm install -g cordova ionic 41 | cnpm install 42 | ionic serve 43 | 44 | 打开你的浏览器访问http://localhost:8100/ 45 | 46 | ### 构建 47 | 48 | npm run ionic:build --prod 49 | 50 | ### PWA 支持 51 | 52 | 打开你的 safari 浏览器或者 chrome 浏览器,访问https://damoqiongqiu.github.io/NiceFish-ionic/ 53 | 54 | 然后选择“添加到主屏幕”,就像这样: 55 | 56 | ![PWA运行效果](src/assets/img/1.jpg) 57 | 58 | 然后你就可以看到应用图标出现在手机的主屏幕上了,就像这样: 59 | 60 | ![PWA运行效果](src/assets/img/4.jpg) 61 | 62 | ![PWA运行效果](src/assets/img/3.jpg) 63 | 64 | Windows 10 也已经支持 PWA 应用,当你在 Chrome 的菜单里面选择把这个应用“添加到主屏幕”之后,你就可以看到这样的结果: 65 | 66 | ![PWA运行效果](src/assets/img/2.png) 67 | 68 | 在 Linux 上是这样的: 69 | 70 | ![PWA运行效果](src/assets/img/5.png) 71 | 72 | iOS 版本需要大于 11.3,Windows 10 需要升级到最新的更新包,你会发现,利用 Angular 开发跨平台的 PWA 应用竟然如此简单! 73 | 74 | ### 在线交流 QQ 群 75 | 76 | Angular-1 区-丝绸之路:286047042(满) 77 | 78 | Angular-2 区-敦煌:139357161(满) 79 | 80 | Angular-3 区-玉门关:473129930(满) 81 | 82 | Angular-4 区-河西走廊:483016484(满) 83 | 84 | 86 | Angular-5 区-楼兰:604253120(将满) 87 | 88 | 89 | 91 | Angular-6 区-凉州:124641447(将满) 92 | 93 | 94 | 脚本娃娃-桃花岛-83163037(将满) 95 | 96 | 如果您有 Angular 相关的问题需要讨论,或者单纯想跟我 Say Hello,请加上面几个扣扣群。注意,我每天都会收到大量的求助消息,真的有点忙,所以请您优先在扣扣群里面讨论问题。 97 | 98 | ### 学习资源和视频教程 99 | 100 | 大漠演讲中的所有 PPT 已经本项目对应的资料都在这里,您可以随意使用,https://gitee.com/mumu-osc/NiceFish/attach_files 。 101 | 102 | 如果您需要教程,请自己来这里查看,http://www.ngfans.net/ ,有视频也有文字,有免费版本也有收费版,您自己看着选。 103 | 104 | ### 开源许可证 105 | 106 | MIT 107 | 108 | 你可以随意使用此项目,无需通知我,因为我可能很忙没空搭理你。 109 | -------------------------------------------------------------------------------- /config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | myApp 4 | An awesome Ionic/Cordova app. 5 | Ionic Framework Team 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /docs/assets/fonts/ionicons.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/fonts/ionicons.eot -------------------------------------------------------------------------------- /docs/assets/fonts/ionicons.scss: -------------------------------------------------------------------------------- 1 | 2 | // Ionicons Icon Font CSS 3 | // -------------------------- 4 | // Ionicons CSS for Ionic's element 5 | // ionicons-icons.scss has the icons and their unicode characters 6 | 7 | $ionicons-font-path: $font-path !default; 8 | 9 | @import "ionicons-icons"; 10 | @import "ionicons-variables"; 11 | 12 | 13 | @font-face { 14 | font-family: "Ionicons"; 15 | src: url("#{$ionicons-font-path}/ionicons.woff2?v=#{$ionicons-version}") format("woff2"), 16 | url("#{$ionicons-font-path}/ionicons.woff?v=#{$ionicons-version}") format("woff"), 17 | url("#{$ionicons-font-path}/ionicons.ttf?v=#{$ionicons-version}") format("truetype"); 18 | font-weight: normal; 19 | font-style: normal; 20 | } 21 | 22 | ion-icon { 23 | display: inline-block; 24 | 25 | font-family: "Ionicons"; 26 | -moz-osx-font-smoothing: grayscale; 27 | -webkit-font-smoothing: antialiased; 28 | font-style: normal; 29 | font-variant: normal; 30 | font-weight: normal; 31 | line-height: 1; 32 | text-rendering: auto; 33 | text-transform: none; 34 | speak: none; 35 | } 36 | -------------------------------------------------------------------------------- /docs/assets/fonts/ionicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/fonts/ionicons.ttf -------------------------------------------------------------------------------- /docs/assets/fonts/ionicons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/fonts/ionicons.woff -------------------------------------------------------------------------------- /docs/assets/fonts/ionicons.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/fonts/ionicons.woff2 -------------------------------------------------------------------------------- /docs/assets/fonts/noto-sans-bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/fonts/noto-sans-bold.ttf -------------------------------------------------------------------------------- /docs/assets/fonts/noto-sans-bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/fonts/noto-sans-bold.woff -------------------------------------------------------------------------------- /docs/assets/fonts/noto-sans-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/fonts/noto-sans-regular.ttf -------------------------------------------------------------------------------- /docs/assets/fonts/noto-sans-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/fonts/noto-sans-regular.woff -------------------------------------------------------------------------------- /docs/assets/fonts/noto-sans.scss: -------------------------------------------------------------------------------- 1 | // Noto Sans Font 2 | // Google 3 | // Apache License, version 2.0 4 | // http://www.apache.org/licenses/LICENSE-2.0.html 5 | 6 | $noto-sans-font-path: $font-path !default; 7 | 8 | @font-face { 9 | font-family: "Noto Sans"; 10 | font-style: normal; 11 | font-weight: 300; 12 | src: local("Noto Sans"), local("Noto-Sans-Regular"), url("#{$noto-sans-font-path}/noto-sans-regular.woff") format("woff"), url("#{$noto-sans-font-path}/noto-sans-regular.ttf") format("truetype"); 13 | } 14 | 15 | @font-face { 16 | font-family: "Noto Sans"; 17 | font-style: normal; 18 | font-weight: 400; 19 | src: local("Noto Sans"), local("Noto-Sans-Regular"), url("#{$noto-sans-font-path}/noto-sans-regular.woff") format("woff"), url("#{$noto-sans-font-path}/noto-sans-regular.ttf") format("truetype"); 20 | } 21 | 22 | @font-face { 23 | font-family: "Noto Sans"; 24 | font-style: normal; 25 | font-weight: 500; 26 | src: local("Noto Sans Bold"), local("Noto-Sans-Bold"), url("#{$noto-sans-font-path}/noto-sans-bold.woff") format("woff"), url("#{$noto-sans-font-path}/noto-sans-bold.ttf") format("truetype"); 27 | } 28 | 29 | @font-face { 30 | font-family: "Noto Sans"; 31 | font-style: normal; 32 | font-weight: 700; 33 | src: local("Noto Sans Bold"), local("Noto-Sans-Bold"), url("#{$noto-sans-font-path}/noto-sans-bold.woff") format("woff"), url("#{$noto-sans-font-path}/noto-sans-bold.ttf") format("truetype"); 34 | } 35 | -------------------------------------------------------------------------------- /docs/assets/fonts/roboto-bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/fonts/roboto-bold.ttf -------------------------------------------------------------------------------- /docs/assets/fonts/roboto-bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/fonts/roboto-bold.woff -------------------------------------------------------------------------------- /docs/assets/fonts/roboto-bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/fonts/roboto-bold.woff2 -------------------------------------------------------------------------------- /docs/assets/fonts/roboto-light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/fonts/roboto-light.ttf -------------------------------------------------------------------------------- /docs/assets/fonts/roboto-light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/fonts/roboto-light.woff -------------------------------------------------------------------------------- /docs/assets/fonts/roboto-light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/fonts/roboto-light.woff2 -------------------------------------------------------------------------------- /docs/assets/fonts/roboto-medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/fonts/roboto-medium.ttf -------------------------------------------------------------------------------- /docs/assets/fonts/roboto-medium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/fonts/roboto-medium.woff -------------------------------------------------------------------------------- /docs/assets/fonts/roboto-medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/fonts/roboto-medium.woff2 -------------------------------------------------------------------------------- /docs/assets/fonts/roboto-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/fonts/roboto-regular.ttf -------------------------------------------------------------------------------- /docs/assets/fonts/roboto-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/fonts/roboto-regular.woff -------------------------------------------------------------------------------- /docs/assets/fonts/roboto-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/fonts/roboto-regular.woff2 -------------------------------------------------------------------------------- /docs/assets/fonts/roboto.scss: -------------------------------------------------------------------------------- 1 | // Roboto Font 2 | // Google 3 | // Apache License, version 2.0 4 | // http://www.apache.org/licenses/LICENSE-2.0.html 5 | 6 | $roboto-font-path: $font-path !default; 7 | 8 | @font-face { 9 | font-family: "Roboto"; 10 | font-style: normal; 11 | font-weight: 300; 12 | src: local("Roboto Light"), local("Roboto-Light"), url("#{$roboto-font-path}/roboto-light.woff2") format("woff2"), url("#{$roboto-font-path}/roboto-light.woff") format("woff"), url("#{$roboto-font-path}/roboto-light.ttf") format("truetype"); 13 | } 14 | 15 | @font-face { 16 | font-family: "Roboto"; 17 | font-style: normal; 18 | font-weight: 400; 19 | src: local("Roboto"), local("Roboto-Regular"), url("#{$roboto-font-path}/roboto-regular.woff2") format("woff2"), url("#{$roboto-font-path}/roboto-regular.woff") format("woff"), url("#{$roboto-font-path}/roboto-regular.ttf") format("truetype"); 20 | } 21 | 22 | @font-face { 23 | font-family: "Roboto"; 24 | font-style: normal; 25 | font-weight: 500; 26 | src: local("Roboto Medium"), local("Roboto-Medium"), url("#{$roboto-font-path}/roboto-medium.woff2") format("woff2"), url("#{$roboto-font-path}/roboto-medium.woff") format("woff"), url("#{$roboto-font-path}/roboto-medium.ttf") format("truetype"); 27 | } 28 | 29 | @font-face { 30 | font-family: "Roboto"; 31 | font-style: normal; 32 | font-weight: 700; 33 | src: local("Roboto Bold"), local("Roboto-Bold"), url("#{$roboto-font-path}/roboto-bold.woff2") format("woff2"), url("#{$roboto-font-path}/roboto-bold.woff") format("woff"), url("#{$roboto-font-path}/roboto-bold.ttf") format("truetype"); 34 | } 35 | -------------------------------------------------------------------------------- /docs/assets/icon/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/icon/logo.png -------------------------------------------------------------------------------- /docs/assets/icons/android-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/icons/android-icon-144x144.png -------------------------------------------------------------------------------- /docs/assets/icons/android-icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/icons/android-icon-192x192.png -------------------------------------------------------------------------------- /docs/assets/icons/android-icon-36x36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/icons/android-icon-36x36.png -------------------------------------------------------------------------------- /docs/assets/icons/android-icon-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/icons/android-icon-48x48.png -------------------------------------------------------------------------------- /docs/assets/icons/android-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/icons/android-icon-72x72.png -------------------------------------------------------------------------------- /docs/assets/icons/android-icon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/icons/android-icon-96x96.png -------------------------------------------------------------------------------- /docs/assets/icons/apple-icon-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/icons/apple-icon-114x114.png -------------------------------------------------------------------------------- /docs/assets/icons/apple-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/icons/apple-icon-120x120.png -------------------------------------------------------------------------------- /docs/assets/icons/apple-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/icons/apple-icon-144x144.png -------------------------------------------------------------------------------- /docs/assets/icons/apple-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/icons/apple-icon-152x152.png -------------------------------------------------------------------------------- /docs/assets/icons/apple-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/icons/apple-icon-180x180.png -------------------------------------------------------------------------------- /docs/assets/icons/apple-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/icons/apple-icon-57x57.png -------------------------------------------------------------------------------- /docs/assets/icons/apple-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/icons/apple-icon-60x60.png -------------------------------------------------------------------------------- /docs/assets/icons/apple-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/icons/apple-icon-72x72.png -------------------------------------------------------------------------------- /docs/assets/icons/apple-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/icons/apple-icon-76x76.png -------------------------------------------------------------------------------- /docs/assets/icons/apple-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/icons/apple-icon-precomposed.png -------------------------------------------------------------------------------- /docs/assets/icons/apple-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/icons/apple-icon.png -------------------------------------------------------------------------------- /docs/assets/icons/browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | #ffffff -------------------------------------------------------------------------------- /docs/assets/icons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/icons/favicon-16x16.png -------------------------------------------------------------------------------- /docs/assets/icons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/icons/favicon-32x32.png -------------------------------------------------------------------------------- /docs/assets/icons/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/icons/favicon-96x96.png -------------------------------------------------------------------------------- /docs/assets/icons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/icons/favicon.ico -------------------------------------------------------------------------------- /docs/assets/icons/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/icons/logo.png -------------------------------------------------------------------------------- /docs/assets/icons/ms-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/icons/ms-icon-144x144.png -------------------------------------------------------------------------------- /docs/assets/icons/ms-icon-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/icons/ms-icon-150x150.png -------------------------------------------------------------------------------- /docs/assets/icons/ms-icon-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/icons/ms-icon-310x310.png -------------------------------------------------------------------------------- /docs/assets/icons/ms-icon-70x70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/icons/ms-icon-70x70.png -------------------------------------------------------------------------------- /docs/assets/img/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/img/1.jpg -------------------------------------------------------------------------------- /docs/assets/img/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/img/1.png -------------------------------------------------------------------------------- /docs/assets/img/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/img/2.png -------------------------------------------------------------------------------- /docs/assets/img/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/img/3.jpg -------------------------------------------------------------------------------- /docs/assets/img/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/img/4.jpg -------------------------------------------------------------------------------- /docs/assets/img/avatar-ts-buzz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/img/avatar-ts-buzz.png -------------------------------------------------------------------------------- /docs/assets/img/avatar-ts-jessie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/img/avatar-ts-jessie.png -------------------------------------------------------------------------------- /docs/assets/img/avatar-ts-potatohead.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/img/avatar-ts-potatohead.png -------------------------------------------------------------------------------- /docs/assets/img/avatar-ts-woody.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/img/avatar-ts-woody.png -------------------------------------------------------------------------------- /docs/assets/img/dist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/img/dist.png -------------------------------------------------------------------------------- /docs/assets/img/ng2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/img/ng2.png -------------------------------------------------------------------------------- /docs/assets/img/wechat/icon-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/img/wechat/icon-1.png -------------------------------------------------------------------------------- /docs/assets/img/wechat/icon-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/img/wechat/icon-10.png -------------------------------------------------------------------------------- /docs/assets/img/wechat/icon-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/img/wechat/icon-11.png -------------------------------------------------------------------------------- /docs/assets/img/wechat/icon-12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/img/wechat/icon-12.png -------------------------------------------------------------------------------- /docs/assets/img/wechat/icon-13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/img/wechat/icon-13.png -------------------------------------------------------------------------------- /docs/assets/img/wechat/icon-14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/img/wechat/icon-14.png -------------------------------------------------------------------------------- /docs/assets/img/wechat/icon-15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/img/wechat/icon-15.png -------------------------------------------------------------------------------- /docs/assets/img/wechat/icon-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/img/wechat/icon-16.png -------------------------------------------------------------------------------- /docs/assets/img/wechat/icon-17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/img/wechat/icon-17.png -------------------------------------------------------------------------------- /docs/assets/img/wechat/icon-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/img/wechat/icon-2.png -------------------------------------------------------------------------------- /docs/assets/img/wechat/icon-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/img/wechat/icon-3.png -------------------------------------------------------------------------------- /docs/assets/img/wechat/icon-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/img/wechat/icon-4.png -------------------------------------------------------------------------------- /docs/assets/img/wechat/icon-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/img/wechat/icon-5.png -------------------------------------------------------------------------------- /docs/assets/img/wechat/icon-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/img/wechat/icon-6.png -------------------------------------------------------------------------------- /docs/assets/img/wechat/icon-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/img/wechat/icon-7.png -------------------------------------------------------------------------------- /docs/assets/img/wechat/icon-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/img/wechat/icon-8.png -------------------------------------------------------------------------------- /docs/assets/img/wechat/icon-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/docs/assets/img/wechat/icon-9.png -------------------------------------------------------------------------------- /docs/build/polyfills.js: -------------------------------------------------------------------------------- 1 | !function(t){"use strict";function n(t,n){return n={exports:{}},t(n,n.exports),n.exports}function e(t){return isFinite(t=+t)&&0!=t?t<0?-e(-t):Math.log(t+Math.sqrt(t*t+1)):t}function r(t,n){var e,o,i=arguments.length<3?t:arguments[2];return $f(t)===i?t[n]:(e=Xf.f(t,n))?Yf(e,"value")?e.value:void 0!==e.get?e.get.call(i):void 0:Qf(o=Kf(t))?r(o,n,i):void 0}function o(t,n,e){var r,i,a=arguments.length<4?t:arguments[3],u=kl.f(El(t),n);if(!u){if(Ol(i=wl(t)))return o(i,n,e,a);u=Tl(0)}return _l(u,"value")?!(u.writable===!1||!Ol(a))&&(r=kl.f(a,n)||Tl(0),r.value=e,bl.f(a,n,r),!0):void 0!==u.set&&(u.set.call(a,e),!0)}var i=Math.ceil,a=Math.floor,u=function(t){return isNaN(t=+t)?0:(t>0?a:i)(t)},c=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t},s=u,f=c,l=function(t){return function(n,e){var r,o,i=String(f(n)),a=s(e),u=i.length;return a<0||a>=u?t?"":void 0:(r=i.charCodeAt(a),r<55296||r>56319||a+1===u||(o=i.charCodeAt(a+1))<56320||o>57343?t?i.charAt(a):r:t?i.slice(a,a+2):(r-55296<<10)+(o-56320)+65536)}},h=!1,p="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},v=n(function(t){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)}),d=n(function(t){var n=t.exports={version:"2.4.0"};"number"==typeof __e&&(__e=n)}),g=function(t){return"object"==typeof t?null!==t:"function"==typeof t},y=g,m=function(t){if(!y(t))throw TypeError(t+" is not an object!");return t},b=function(t){try{return!!t()}catch(t){return!0}},k=!b(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}),w=g,_=v.document,S=w(_)&&w(_.createElement),T=function(t){return S?_.createElement(t):{}},E=!k&&!b(function(){return 7!=Object.defineProperty(T("div"),"a",{get:function(){return 7}}).a}),O=g,F=function(t,n){if(!O(t))return t;var e,r;if(n&&"function"==typeof(e=t.toString)&&!O(r=e.call(t)))return r;if("function"==typeof(e=t.valueOf)&&!O(r=e.call(t)))return r;if(!n&&"function"==typeof(e=t.toString)&&!O(r=e.call(t)))return r;throw TypeError("Can't convert object to primitive value")},P=m,M=E,j=F,A=Object.defineProperty,I=k?Object.defineProperty:function(t,n,e){if(P(t),n=j(n,!0),P(e),M)try{return A(t,n,e)}catch(t){}if("get"in e||"set"in e)throw TypeError("Accessors not supported!");return"value"in e&&(t[n]=e.value),t},x={f:I},D=function(t,n){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:n}},C=x,N=D,R=k?function(t,n,e){return C.f(t,n,N(1,e))}:function(t,n,e){return t[n]=e,t},z={}.hasOwnProperty,Z=function(t,n){return z.call(t,n)},L=0,W=Math.random(),B=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++L+W).toString(36))},H=n(function(t){var n=v,e=R,r=Z,o=B("src"),i="toString",a=Function[i],u=(""+a).split(i);d.inspectSource=function(t){return a.call(t)},(t.exports=function(t,i,a,c){var s="function"==typeof a;s&&(r(a,"name")||e(a,"name",i)),t[i]!==a&&(s&&(r(a,o)||e(a,o,t[i]?""+t[i]:u.join(String(i)))),t===n?t[i]=a:c?t[i]?t[i]=a:e(t,i,a):(delete t[i],e(t,i,a)))})(Function.prototype,i,function(){return"function"==typeof this&&this[o]||a.call(this)})}),U=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t},q=U,G=function(t,n,e){if(q(t),void 0===n)return t;switch(e){case 1:return function(e){return t.call(n,e)};case 2:return function(e,r){return t.call(n,e,r)};case 3:return function(e,r,o){return t.call(n,e,r,o)}}return function(){return t.apply(n,arguments)}},V=v,X=d,K=R,Y=H,J=G,Q="prototype",$=function(t,n,e){var r,o,i,a,u=t&$.F,c=t&$.G,s=t&$.S,f=t&$.P,l=t&$.B,h=c?V:s?V[n]||(V[n]={}):(V[n]||{})[Q],p=c?X:X[n]||(X[n]={}),v=p[Q]||(p[Q]={});c&&(e=n);for(r in e)o=!u&&h&&void 0!==h[r],i=(o?h:e)[r],a=l&&o?J(i,V):f&&"function"==typeof i?J(Function.call,i):i,h&&Y(h,r,i,t&$.U),p[r]!=i&&K(p,r,a),f&&v[r]!=i&&(v[r]=i)};V.core=X,$.F=1,$.G=2,$.S=4,$.P=8,$.B=16,$.W=32,$.U=64,$.R=128;var tt=$,nt={},et={}.toString,rt=function(t){return et.call(t).slice(8,-1)},ot=rt,it=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==ot(t)?t.split(""):Object(t)},at=it,ut=c,ct=function(t){return at(ut(t))},st=u,ft=Math.min,lt=function(t){return t>0?ft(st(t),9007199254740991):0},ht=u,pt=Math.max,vt=Math.min,dt=function(t,n){return t=ht(t),t<0?pt(t+n,0):vt(t,n)},gt=ct,yt=lt,mt=dt,bt=function(t){return function(n,e,r){var o,i=gt(n),a=yt(i.length),u=mt(r,a);if(t&&e!=e){for(;a>u;)if(o=i[u++],o!=o)return!0}else for(;a>u;u++)if((t||u in i)&&i[u]===e)return t||u||0;return!t&&-1}},kt=v,wt="__core-js_shared__",_t=kt[wt]||(kt[wt]={}),St=function(t){return _t[t]||(_t[t]={})},Tt=St("keys"),Et=B,Ot=function(t){return Tt[t]||(Tt[t]=Et(t))},Ft=Z,Pt=ct,Mt=bt(!1),jt=Ot("IE_PROTO"),At=function(t,n){var e,r=Pt(t),o=0,i=[];for(e in r)e!=jt&&Ft(r,e)&&i.push(e);for(;n.length>o;)Ft(r,e=n[o++])&&(~Mt(i,e)||i.push(e));return i},It="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(","),xt=At,Dt=It,Ct=Object.keys||function(t){return xt(t,Dt)},Nt=x,Rt=m,zt=Ct,Zt=k?Object.defineProperties:function(t,n){Rt(t);for(var e,r=zt(n),o=r.length,i=0;o>i;)Nt.f(t,e=r[i++],n[e]);return t},Lt=v.document&&document.documentElement,Wt=m,Bt=Zt,Ht=It,Ut=Ot("IE_PROTO"),qt=function(){},Gt="prototype",Vt=function(){var t,n=T("iframe"),e=Ht.length,r="<",o=">";for(n.style.display="none",Lt.appendChild(n),n.src="javascript:",t=n.contentWindow.document,t.open(),t.write(r+"script"+o+"document.F=Object"+r+"/script"+o),t.close(),Vt=t.F;e--;)delete Vt[Gt][Ht[e]];return Vt()},Xt=Object.create||function(t,n){var e;return null!==t?(qt[Gt]=Wt(t),e=new qt,qt[Gt]=null,e[Ut]=t):e=Vt(),void 0===n?e:Bt(e,n)},Kt=n(function(t){var n=St("wks"),e=B,r=v.Symbol,o="function"==typeof r,i=t.exports=function(t){return n[t]||(n[t]=o&&r[t]||(o?r:e)("Symbol."+t))};i.store=n}),Yt=x.f,Jt=Z,Qt=Kt("toStringTag"),$t=function(t,n,e){t&&!Jt(t=e?t:t.prototype,Qt)&&Yt(t,Qt,{configurable:!0,value:n})},tn=Xt,nn=D,en=$t,rn={};R(rn,Kt("iterator"),function(){return this});var on=function(t,n,e){t.prototype=tn(rn,{next:nn(1,e)}),en(t,n+" Iterator")},an=c,un=function(t){return Object(an(t))},cn=Z,sn=un,fn=Ot("IE_PROTO"),ln=Object.prototype,hn=Object.getPrototypeOf||function(t){return t=sn(t),cn(t,fn)?t[fn]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?ln:null},pn=h,vn=tt,dn=H,gn=R,yn=Z,mn=nt,bn=on,kn=$t,wn=hn,_n=Kt("iterator"),Sn=!([].keys&&"next"in[].keys()),Tn="@@iterator",En="keys",On="values",Fn=function(){return this},Pn=function(t,n,e,r,o,i,a){bn(e,n,r);var u,c,s,f=function(t){if(!Sn&&t in v)return v[t];switch(t){case En:return function(){return new e(this,t)};case On:return function(){return new e(this,t)}}return function(){return new e(this,t)}},l=n+" Iterator",h=o==On,p=!1,v=t.prototype,d=v[_n]||v[Tn]||o&&v[o],g=d||f(o),y=o?h?f("entries"):g:void 0,m="Array"==n?v.entries||d:d;if(m&&(s=wn(m.call(new t)),s!==Object.prototype&&(kn(s,l,!0),pn||yn(s,_n)||gn(s,_n,Fn))),h&&d&&d.name!==On&&(p=!0,g=function(){return d.call(this)}),pn&&!a||!Sn&&!p&&v[_n]||gn(v,_n,g),mn[n]=g,mn[l]=Fn,o)if(u={values:h?g:f(On),keys:i?g:f(En),entries:y},a)for(c in u)c in v||dn(v,c,u[c]);else vn(vn.P+vn.F*(Sn||p),n,u);return u},Mn=l(!0);Pn(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,n=this._t,e=this._i;return e>=n.length?{value:void 0,done:!0}:(t=Mn(n,e),this._i+=t.length,{value:t,done:!1})});var jn=rt,An=Array.isArray||function(t){return"Array"==jn(t)},In=tt;In(In.S,"Array",{isArray:An});var xn=m,Dn=function(t,n,e,r){try{return r?n(xn(e)[0],e[1]):n(e)}catch(n){var o=t.return;throw void 0!==o&&xn(o.call(t)),n}},Cn=nt,Nn=Kt("iterator"),Rn=Array.prototype,zn=function(t){return void 0!==t&&(Cn.Array===t||Rn[Nn]===t)},Zn=x,Ln=D,Wn=function(t,n,e){n in t?Zn.f(t,n,Ln(0,e)):t[n]=e},Bn=rt,Hn=Kt("toStringTag"),Un="Arguments"==Bn(function(){return arguments}()),qn=function(t,n){try{return t[n]}catch(t){}},Gn=function(t){var n,e,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(e=qn(n=Object(t),Hn))?e:Un?Bn(n):"Object"==(r=Bn(n))&&"function"==typeof n.callee?"Arguments":r},Vn=Gn,Xn=Kt("iterator"),Kn=nt,Yn=d.getIteratorMethod=function(t){if(void 0!=t)return t[Xn]||t["@@iterator"]||Kn[Vn(t)]},Jn=Kt("iterator"),Qn=!1;try{var $n=[7][Jn]();$n.return=function(){Qn=!0},Array.from($n,function(){throw 2})}catch(t){}var te=function(t,n){if(!n&&!Qn)return!1;var e=!1;try{var r=[7],o=r[Jn]();o.next=function(){return{done:e=!0}},r[Jn]=function(){return o},t(r)}catch(t){}return e},ne=G,ee=tt,re=un,oe=Dn,ie=zn,ae=lt,ue=Wn,ce=Yn;ee(ee.S+ee.F*!te(function(t){Array.from(t)}),"Array",{from:function(t){var n,e,r,o,i=re(t),a="function"==typeof this?this:Array,u=arguments.length,c=u>1?arguments[1]:void 0,s=void 0!==c,f=0,l=ce(i);if(s&&(c=ne(c,u>2?arguments[2]:void 0,2)),void 0==l||a==Array&&ie(l))for(n=ae(i.length),e=new a(n);n>f;f++)ue(e,f,s?c(i[f],f):i[f]);else for(o=l.call(i),e=new a;!(r=o.next()).done;f++)ue(e,f,s?oe(o,c,[r.value,f],!0):r.value);return e.length=f,e}});var se=tt,fe=Wn;se(se.S+se.F*b(function(){function t(){}return!(Array.of.call(t)instanceof t)}),"Array",{of:function(){for(var t=0,n=arguments.length,e=new("function"==typeof this?this:Array)(n);n>t;)fe(e,t,arguments[t++]);return e.length=n,e}});var le=b,he=function(t,n){return!!t&&le(function(){n?t.call(null,function(){},1):t.call(null)})},pe=tt,ve=ct,de=[].join;pe(pe.P+pe.F*(it!=Object||!he(de)),"Array",{join:function(t){return de.call(ve(this),void 0===t?",":t)}});var ge=tt,ye=Lt,me=rt,be=dt,ke=lt,we=[].slice;ge(ge.P+ge.F*b(function(){ye&&we.call(ye)}),"Array",{slice:function(t,n){var e=ke(this.length),r=me(this);if(n=void 0===n?e:n,"Array"==r)return we.call(this,t,n);for(var o=be(t,e),i=be(n,e),a=ke(i-o),u=Array(a),c=0;cy;y++)if((u||y in v)&&(l=v[y],h=d(l,y,p),t))if(e)m[y]=h;else if(h)switch(t){case 3:return!0;case 5:return l;case 6:return y;case 2:m.push(l)}else if(i)return!1;return a?-1:o||i?i:m}},Le=tt,We=Ze(0),Be=he([].forEach,!0);Le(Le.P+Le.F*!Be,"Array",{forEach:function(t){return We(this,t,arguments[1])}});var He=tt,Ue=Ze(1);He(He.P+He.F*!he([].map,!0),"Array",{map:function(t){return Ue(this,t,arguments[1])}});var qe=tt,Ge=Ze(2);qe(qe.P+qe.F*!he([].filter,!0),"Array",{filter:function(t){return Ge(this,t,arguments[1])}});var Ve=tt,Xe=Ze(3);Ve(Ve.P+Ve.F*!he([].some,!0),"Array",{some:function(t){return Xe(this,t,arguments[1])}});var Ke=tt,Ye=Ze(4);Ke(Ke.P+Ke.F*!he([].every,!0),"Array",{every:function(t){return Ye(this,t,arguments[1])}});var Je=U,Qe=un,$e=it,tr=lt,nr=function(t,n,e,r,o){Je(n);var i=Qe(t),a=$e(i),u=tr(i.length),c=o?u-1:0,s=o?-1:1;if(e<2)for(;;){if(c in a){r=a[c],c+=s;break}if(c+=s,o?c<0:u<=c)throw TypeError("Reduce of empty array with no initial value")}for(;o?c>=0:u>c;c+=s)c in a&&(r=n(r,a[c],c,i));return r},er=tt,rr=nr;er(er.P+er.F*!he([].reduce,!0),"Array",{reduce:function(t){return rr(this,t,arguments.length,arguments[1],!1)}});var or=tt,ir=nr;or(or.P+or.F*!he([].reduceRight,!0),"Array",{reduceRight:function(t){return ir(this,t,arguments.length,arguments[1],!0)}});var ar=tt,ur=bt(!1),cr=[].indexOf,sr=!!cr&&1/[1].indexOf(1,-0)<0;ar(ar.P+ar.F*(sr||!he(cr)),"Array",{indexOf:function(t){return sr?cr.apply(this,arguments)||0:ur(this,t,arguments[1])}});var fr=tt,lr=ct,hr=u,pr=lt,vr=[].lastIndexOf,dr=!!vr&&1/[1].lastIndexOf(1,-0)<0;fr(fr.P+fr.F*(dr||!he(vr)),"Array",{lastIndexOf:function(t){if(dr)return vr.apply(this,arguments)||0;var n=lr(this),e=pr(n.length),r=e-1;for(arguments.length>1&&(r=Math.min(r,hr(arguments[1]))),r<0&&(r=e+r);r>=0;r--)if(r in n&&n[r]===t)return r||0;return-1}});var gr=un,yr=dt,mr=lt,br=[].copyWithin||function(t,n){var e=gr(this),r=mr(e.length),o=yr(t,r),i=yr(n,r),a=arguments.length>2?arguments[2]:void 0,u=Math.min((void 0===a?r:yr(a,r))-i,r-o),c=1;for(i0;)i in e?e[o]=e[i]:delete e[o],o+=c,i+=c;return e},kr=Kt("unscopables"),wr=Array.prototype;void 0==wr[kr]&&R(wr,kr,{});var _r=function(t){wr[kr][t]=!0},Sr=tt;Sr(Sr.P,"Array",{copyWithin:br}),_r("copyWithin");var Tr=un,Er=dt,Or=lt,Fr=function(t){for(var n=Tr(this),e=Or(n.length),r=arguments.length,o=Er(r>1?arguments[1]:void 0,e),i=r>2?arguments[2]:void 0,a=void 0===i?e:Er(i,e);a>o;)n[o++]=t;return n},Pr=tt;Pr(Pr.P,"Array",{fill:Fr}),_r("fill");var Mr=tt,jr=Ze(5),Ar="find",Ir=!0;Ar in[]&&Array(1)[Ar](function(){Ir=!1}),Mr(Mr.P+Mr.F*Ir,"Array",{find:function(t){return jr(this,t,arguments.length>1?arguments[1]:void 0)}}),_r(Ar);var xr=tt,Dr=Ze(6),Cr="findIndex",Nr=!0;Cr in[]&&Array(1)[Cr](function(){Nr=!1}),xr(xr.P+xr.F*Nr,"Array",{findIndex:function(t){return Dr(this,t,arguments.length>1?arguments[1]:void 0)}}),_r(Cr);var Rr=v,zr=x,Zr=k,Lr=Kt("species"),Wr=function(t){var n=Rr[t];Zr&&n&&!n[Lr]&&zr.f(n,Lr,{configurable:!0,get:function(){return this}})};Wr("Array");var Br=function(t,n){return{value:n,done:!!t}},Hr=_r,Ur=Br,qr=nt,Gr=ct,Vr=Pn(Array,"Array",function(t,n){this._t=Gr(t),this._i=0,this._k=n},function(){var t=this._t,n=this._k,e=this._i++;return!t||e>=t.length?(this._t=void 0,Ur(1)):"keys"==n?Ur(0,e):"values"==n?Ur(0,t[e]):Ur(0,[e,t[e]])},"values");qr.Arguments=qr.Array,Hr("keys"),Hr("values"),Hr("entries");var Xr=d.Array,Kr=tt;Kr(Kr.S,"Date",{now:function(){return(new Date).getTime()}});var Yr=tt,Jr=un,Qr=F;Yr(Yr.P+Yr.F*b(function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}),"Date",{toJSON:function(t){var n=Jr(this),e=Qr(n);return"number"!=typeof e||isFinite(e)?n.toISOString():null}});var $r=tt,to=b,no=Date.prototype.getTime,eo=function(t){return t>9?t:"0"+t};$r($r.P+$r.F*(to(function(){return"0385-07-25T07:06:39.999Z"!=new Date(-5e13-1).toISOString()})||!to(function(){new Date(NaN).toISOString()})),"Date",{toISOString:function(){if(!isFinite(no.call(this)))throw RangeError("Invalid time value");var t=this,n=t.getUTCFullYear(),e=t.getUTCMilliseconds(),r=n<0?"-":n>9999?"+":"";return r+("00000"+Math.abs(n)).slice(r?-6:-4)+"-"+eo(t.getUTCMonth()+1)+"-"+eo(t.getUTCDate())+"T"+eo(t.getUTCHours())+":"+eo(t.getUTCMinutes())+":"+eo(t.getUTCSeconds())+"."+(e>99?e:"0"+eo(e))+"Z"}});var ro=Date.prototype,oo="Invalid Date",io="toString",ao=ro[io],uo=ro.getTime;new Date(NaN)+""!=oo&&H(ro,io,function(){var t=uo.call(this);return t===t?ao.call(this):oo});var co=m,so=F,fo="number",lo=function(t){if("string"!==t&&t!==fo&&"default"!==t)throw TypeError("Incorrect hint");return so(co(this),t!=fo)},ho=Kt("toPrimitive"),po=Date.prototype;ho in po||R(po,ho,lo);var vo=function(t,n,e){var r=void 0===e;switch(n.length){case 0:return r?t():t.call(e);case 1:return r?t(n[0]):t.call(e,n[0]);case 2:return r?t(n[0],n[1]):t.call(e,n[0],n[1]);case 3:return r?t(n[0],n[1],n[2]):t.call(e,n[0],n[1],n[2]);case 4:return r?t(n[0],n[1],n[2],n[3]):t.call(e,n[0],n[1],n[2],n[3])}return t.apply(e,n)},go=U,yo=g,mo=vo,bo=[].slice,ko={},wo=function(t,n,e){if(!(n in ko)){for(var r=[],o=0;ob;b++)if(g=s?m(o(v=t[b])[0],v[1]):m(t[b]),g===u||g===c)return g}else for(d=y.call(t);!(v=d.next()).done;)if(g=e(d,m,v.value,s),g===u||g===c)return g};s.BREAK=u,s.RETURN=c}),ei=n(function(t){var n=B("meta"),e=g,r=Z,o=x.f,i=0,a=Object.isExtensible||function(){return!0},u=!b(function(){return a(Object.preventExtensions({}))}),c=function(t){o(t,n,{value:{i:"O"+ ++i,w:{}}})},s=function(t,o){if(!e(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!r(t,n)){if(!a(t))return"F";if(!o)return"E";c(t)}return t[n].i},f=function(t,e){if(!r(t,n)){if(!a(t))return!0;if(!e)return!1;c(t)}return t[n].w},l=function(t){return u&&h.NEED&&a(t)&&!r(t,n)&&c(t),t},h=t.exports={KEY:n,NEED:!1,fastKey:s,getWeak:f,onFreeze:l}}),ri=x.f,oi=Xt,ii=$o,ai=G,ui=ti,ci=c,si=ni,fi=Pn,li=Br,hi=Wr,pi=k,vi=ei.fastKey,di=pi?"_s":"size",gi=function(t,n){var e,r=vi(n);if("F"!==r)return t._i[r];for(e=t._f;e;e=e.n)if(e.k==n)return e},yi={getConstructor:function(t,n,e,r){var o=t(function(t,i){ui(t,o,n,"_i"),t._i=oi(null),t._f=void 0,t._l=void 0,t[di]=0,void 0!=i&&si(i,e,t[r],t)});return ii(o.prototype,{clear:function(){for(var t=this,n=t._i,e=t._f;e;e=e.n)e.r=!0,e.p&&(e.p=e.p.n=void 0),delete n[e.i];t._f=t._l=void 0,t[di]=0},delete:function(t){var n=this,e=gi(n,t);if(e){var r=e.n,o=e.p;delete n._i[e.i],e.r=!0,o&&(o.n=r),r&&(r.p=o),n._f==e&&(n._f=r),n._l==e&&(n._l=o),n[di]--}return!!e},forEach:function(t){ui(this,o,"forEach");for(var n,e=ai(t,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(e(n.v,n.k,this);n&&n.r;)n=n.p},has:function(t){return!!gi(this,t)}}),pi&&ri(o.prototype,"size",{get:function(){return ci(this[di])}}),o},def:function(t,n,e){var r,o,i=gi(t,n);return i?i.v=e:(t._l=i={i:o=vi(n,!0),k:n,v:e,p:r=t._l,n:void 0,r:!1},t._f||(t._f=i),r&&(r.n=i),t[di]++,"F"!==o&&(t._i[o]=i)),t},getEntry:gi,setStrong:function(t,n,e){fi(t,n,function(t,n){this._t=t,this._k=n,this._l=void 0},function(){for(var t=this,n=t._k,e=t._l;e&&e.r;)e=e.p;return t._t&&(t._l=e=e?e.n:t._t._f)?"keys"==n?li(0,e.k):"values"==n?li(0,e.v):li(0,[e.k,e.v]):(t._t=void 0,li(1))},e?"entries":"values",!e,!0),hi(n)}},mi={}.propertyIsEnumerable,bi={f:mi},ki=bi,wi=D,_i=ct,Si=F,Ti=Z,Ei=E,Oi=Object.getOwnPropertyDescriptor,Fi=k?Oi:function(t,n){if(t=_i(t),n=Si(n,!0),Ei)try{return Oi(t,n)}catch(t){}if(Ti(t,n))return wi(!ki.f.call(t,n),t[n])},Pi={f:Fi},Mi=g,ji=m,Ai=function(t,n){if(ji(t),!Mi(n)&&null!==n)throw TypeError(n+": can't set as prototype!")},Ii={set:Object.setPrototypeOf||("__proto__"in{}?function(t,n,e){try{e=G(Function.call,Pi.f(Object.prototype,"__proto__").set,2),e(t,[]),n=!(t instanceof Array)}catch(t){n=!0}return function(t,r){return Ai(t,r),n?t.__proto__=r:e(t,r),t}}({},!1):void 0),check:Ai},xi=g,Di=Ii.set,Ci=function(t,n,e){var r,o=n.constructor;return o!==e&&"function"==typeof o&&(r=o.prototype)!==e.prototype&&xi(r)&&Di&&Di(t,r),t},Ni=v,Ri=tt,zi=H,Zi=$o,Li=ei,Wi=ni,Bi=ti,Hi=g,Ui=b,qi=te,Gi=$t,Vi=Ci,Xi=function(t,n,e,r,o,i){var a=Ni[t],u=a,c=o?"set":"add",s=u&&u.prototype,f={},l=function(t){var n=s[t];zi(s,t,"delete"==t?function(t){return!(i&&!Hi(t))&&n.call(this,0===t?0:t)}:"has"==t?function(t){return!(i&&!Hi(t))&&n.call(this,0===t?0:t)}:"get"==t?function(t){return i&&!Hi(t)?void 0:n.call(this,0===t?0:t)}:"add"==t?function(t){return n.call(this,0===t?0:t),this}:function(t,e){return n.call(this,0===t?0:t,e),this})};if("function"==typeof u&&(i||s.forEach&&!Ui(function(){(new u).entries().next()}))){var h=new u,p=h[c](i?{}:-0,1)!=h,v=Ui(function(){h.has(1)}),d=qi(function(t){new u(t)}),g=!i&&Ui(function(){for(var t=new u,n=5;n--;)t[c](n,n);return!t.has(-0)});d||(u=n(function(n,e){Bi(n,u,t);var r=Vi(new a,n,u);return void 0!=e&&Wi(e,o,r[c],r),r}),u.prototype=s,s.constructor=u),(v||g)&&(l("delete"),l("has"),o&&l("get")),(g||p)&&l(c),i&&s.clear&&delete s.clear}else u=r.getConstructor(n,t,o,c),Zi(u.prototype,e),Li.NEED=!0;return Gi(u,t),f[t]=u,Ri(Ri.G+Ri.W+Ri.F*(u!=a),f),i||r.setStrong(u,t,o),u},Ki=yi,Yi=Xi("Map",function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{get:function(t){var n=Ki.getEntry(this,t);return n&&n.v},set:function(t,n){return Ki.def(this,0===t?0:t,n)}},Ki,!0),Ji=Math.log1p||function(t){return(t=+t)>-1e-8&&t<1e-8?t-t*t/2:Math.log(1+t)},Qi=tt,$i=Ji,ta=Math.sqrt,na=Math.acosh;Qi(Qi.S+Qi.F*!(na&&710==Math.floor(na(Number.MAX_VALUE))&&na(1/0)==1/0),"Math",{acosh:function(t){return(t=+t)<1?NaN:t>94906265.62425156?Math.log(t)+Math.LN2:$i(t-1+ta(t-1)*ta(t+1))}});var ea=tt,ra=Math.asinh;ea(ea.S+ea.F*!(ra&&1/ra(0)>0),"Math",{asinh:e});var oa=tt,ia=Math.atanh;oa(oa.S+oa.F*!(ia&&1/ia(-0)<0),"Math",{atanh:function(t){return 0==(t=+t)?t:Math.log((1+t)/(1-t))/2}});var aa=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1},ua=tt,ca=aa;ua(ua.S,"Math",{cbrt:function(t){return ca(t=+t)*Math.pow(Math.abs(t),1/3)}});var sa=tt;sa(sa.S,"Math",{clz32:function(t){return(t>>>=0)?31-Math.floor(Math.log(t+.5)*Math.LOG2E):32}});var fa=tt,la=Math.exp;fa(fa.S,"Math",{cosh:function(t){return(la(t=+t)+la(-t))/2}});var ha=Math.expm1,pa=!ha||ha(10)>22025.465794806718||ha(10)<22025.465794806718||ha(-2e-17)!=-2e-17?function(t){return 0==(t=+t)?t:t>-1e-6&&t<1e-6?t+t*t/2:Math.exp(t)-1}:ha,va=tt,da=pa;va(va.S+va.F*(da!=Math.expm1),"Math",{expm1:da});var ga=tt,ya=aa,ma=Math.pow,ba=ma(2,-52),ka=ma(2,-23),wa=ma(2,127)*(2-ka),_a=ma(2,-126),Sa=function(t){return t+1/ba-1/ba};ga(ga.S,"Math",{fround:function(t){var n,e,r=Math.abs(t),o=ya(t);return r<_a?o*Sa(r/_a/ka)*_a*ka:(n=(1+ka/ba)*r,e=n-(n-r),e>wa||e!=e?o*(1/0):o*e)}});var Ta=tt,Ea=Math.abs;Ta(Ta.S,"Math",{hypot:function(t,n){for(var e,r,o=0,i=0,a=arguments.length,u=0;i0?(r=e/u,o+=r*r):o+=e;return u===1/0?1/0:u*Math.sqrt(o)}});var Oa=tt,Fa=Math.imul;Oa(Oa.S+Oa.F*b(function(){return Fa(4294967295,5)!=-5||2!=Fa.length}),"Math",{imul:function(t,n){var e=65535,r=+t,o=+n,i=e&r,a=e&o;return 0|i*a+((e&r>>>16)*a+i*(e&o>>>16)<<16>>>0)}});var Pa=tt;Pa(Pa.S,"Math",{log10:function(t){return Math.log(t)/Math.LN10}});var Ma=tt;Ma(Ma.S,"Math",{log1p:Ji});var ja=tt;ja(ja.S,"Math",{log2:function(t){return Math.log(t)/Math.LN2}});var Aa=tt;Aa(Aa.S,"Math",{sign:aa});var Ia=tt,xa=pa,Da=Math.exp;Ia(Ia.S+Ia.F*b(function(){return!Math.sinh(-2e-17)!=-2e-17}),"Math",{sinh:function(t){return Math.abs(t=+t)<1?(xa(t)-xa(-t))/2:(Da(t-1)-Da(-t-1))*(Math.E/2)}});var Ca=tt,Na=pa,Ra=Math.exp;Ca(Ca.S,"Math",{tanh:function(t){var n=Na(t=+t),e=Na(-t);return n==1/0?1:e==1/0?-1:(n-e)/(Ra(t)+Ra(-t))}});var za=tt;za(za.S,"Math",{trunc:function(t){return(t>0?Math.floor:Math.ceil)(t)}});var Za=At,La=It.concat("length","prototype"),Wa=Object.getOwnPropertyNames||function(t){return Za(t,La)},Ba={f:Wa},Ha="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff",Ua=tt,qa=c,Ga=b,Va=Ha,Xa="["+Va+"]",Ka="​…",Ya=RegExp("^"+Xa+Xa+"*"),Ja=RegExp(Xa+Xa+"*$"),Qa=function(t,n,e){var r={},o=Ga(function(){return!!Va[t]()||Ka[t]()!=Ka}),i=r[t]=o?n($a):Va[t];e&&(r[e]=i),Ua(Ua.P+Ua.F*o,"String",r)},$a=Qa.trim=function(t,n){return t=String(qa(t)),1&n&&(t=t.replace(Ya,"")),2&n&&(t=t.replace(Ja,"")),t},tu=Qa,nu=v,eu=Z,ru=rt,ou=Ci,iu=F,au=b,uu=Ba.f,cu=Pi.f,su=x.f,fu=tu.trim,lu="Number",hu=nu[lu],pu=hu,vu=hu.prototype,du=ru(Xt(vu))==lu,gu="trim"in String.prototype,yu=function(t){var n=iu(t,!1);if("string"==typeof n&&n.length>2){n=gu?n.trim():fu(n,3);var e,r,o,i=n.charCodeAt(0);if(43===i||45===i){if(e=n.charCodeAt(2),88===e||120===e)return NaN}else if(48===i){switch(n.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+n}for(var a,u=n.slice(2),c=0,s=u.length;co)return NaN;return parseInt(u,r)}}return+n};if(!hu(" 0o1")||!hu("0b1")||hu("+0x1")){hu=function(t){var n=arguments.length<1?0:t,e=this;return e instanceof hu&&(du?au(function(){vu.valueOf.call(e)}):ru(e)!=lu)?ou(new pu(yu(n)),e,hu):yu(n)};for(var mu,bu=k?uu(pu):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),ku=0;bu.length>ku;ku++)eu(pu,mu=bu[ku])&&!eu(hu,mu)&&su(hu,mu,cu(pu,mu));hu.prototype=vu,vu.constructor=hu,H(nu,lu,hu)}var wu=rt,_u=function(t,n){if("number"!=typeof t&&"Number"!=wu(t))throw TypeError(n);return+t},Su=u,Tu=c,Eu=function(t){var n=String(Tu(this)),e="",r=Su(t);if(r<0||r==1/0)throw RangeError("Count can't be negative");for(;r>0;(r>>>=1)&&(n+=n))1&r&&(e+=n);return e},Ou=tt,Fu=u,Pu=_u,Mu=Eu,ju=1..toFixed,Au=Math.floor,Iu=[0,0,0,0,0,0],xu="Number.toFixed: incorrect invocation!",Du="0",Cu=function(t,n){for(var e=-1,r=n;++e<6;)r+=t*Iu[e],Iu[e]=r%1e7,r=Au(r/1e7)},Nu=function(t){for(var n=6,e=0;--n>=0;)e+=Iu[n],Iu[n]=Au(e/t),e=e%t*1e7},Ru=function(){for(var t=6,n="";--t>=0;)if(""!==n||0===t||0!==Iu[t]){var e=String(Iu[t]);n=""===n?e:n+Mu.call(Du,7-e.length)+e}return n},zu=function(t,n,e){return 0===n?e:n%2===1?zu(t,n-1,e*t):zu(t*t,n/2,e)},Zu=function(t){for(var n=0,e=t;e>=4096;)n+=12,e/=4096;for(;e>=2;)n+=1,e/=2;return n};Ou(Ou.P+Ou.F*(!!ju&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!b(function(){ju.call({})})),"Number",{toFixed:function(t){var n,e,r,o,i=Pu(this,xu),a=Fu(t),u="",c=Du;if(a<0||a>20)throw RangeError(xu);if(i!=i)return"NaN";if(i<=-1e21||i>=1e21)return String(i);if(i<0&&(u="-",i=-i),i>1e-21)if(n=Zu(i*zu(2,69,1))-69,e=n<0?i*zu(2,-n,1):i/zu(2,n,1),e*=4503599627370496,n=52-n,n>0){for(Cu(0,e),r=a;r>=7;)Cu(1e7,0),r-=7;for(Cu(zu(10,r,1),0),r=n-1;r>=23;)Nu(1<<23),r-=23;Nu(1<0?(o=c.length,c=u+(o<=a?"0."+Mu.call(Du,a-o)+c:c.slice(0,o-a)+"."+c.slice(o-a))):c=u+c,c}});var Lu=tt,Wu=b,Bu=_u,Hu=1..toPrecision;Lu(Lu.P+Lu.F*(Wu(function(){return"1"!==Hu.call(1,void 0)})||!Wu(function(){Hu.call({})})),"Number",{toPrecision:function(t){var n=Bu(this,"Number#toPrecision: incorrect invocation!");return void 0===t?Hu.call(n):Hu.call(n,t)}});var Uu=tt;Uu(Uu.S,"Number",{EPSILON:Math.pow(2,-52)});var qu=tt,Gu=v.isFinite;qu(qu.S,"Number",{isFinite:function(t){return"number"==typeof t&&Gu(t)}});var Vu=g,Xu=Math.floor,Ku=function(t){return!Vu(t)&&isFinite(t)&&Xu(t)===t},Yu=tt;Yu(Yu.S,"Number",{isInteger:Ku});var Ju=tt;Ju(Ju.S,"Number",{isNaN:function(t){return t!=t}});var Qu=tt,$u=Ku,tc=Math.abs;Qu(Qu.S,"Number",{isSafeInteger:function(t){return $u(t)&&tc(t)<=9007199254740991}});var nc=tt;nc(nc.S,"Number",{MAX_SAFE_INTEGER:9007199254740991});var ec=tt;ec(ec.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991});var rc=v.parseFloat,oc=tu.trim,ic=1/rc(Ha+"-0")!==-(1/0)?function(t){var n=oc(String(t),3),e=rc(n);return 0===e&&"-"==n.charAt(0)?-0:e}:rc,ac=tt,uc=ic;ac(ac.S+ac.F*(Number.parseFloat!=uc),"Number",{parseFloat:uc});var cc=v.parseInt,sc=tu.trim,fc=Ha,lc=/^[\-+]?0[xX]/,hc=8!==cc(fc+"08")||22!==cc(fc+"0x16")?function(t,n){var e=sc(String(t),3);return cc(e,n>>>0||(lc.test(e)?16:10))}:cc,pc=tt,vc=hc;pc(pc.S+pc.F*(Number.parseInt!=vc),"Number",{parseInt:vc});var dc=Kt,gc={f:dc},yc=v,mc=d,bc=h,kc=gc,wc=x.f,_c=function(t){var n=mc.Symbol||(mc.Symbol=bc?{}:yc.Symbol||{});"_"==t.charAt(0)||t in n||wc(n,t,{value:kc.f(t)})},Sc=Ct,Tc=ct,Ec=function(t,n){for(var e,r=Tc(t),o=Sc(r),i=o.length,a=0;i>a;)if(r[e=o[a++]]===n)return e},Oc=Object.getOwnPropertySymbols,Fc={f:Oc},Pc=Ct,Mc=Fc,jc=bi,Ac=function(t){var n=Pc(t),e=Mc.f;if(e)for(var r,o=e(t),i=jc.f,a=0;o.length>a;)i.call(t,r=o[a++])&&n.push(r);return n},Ic=ct,xc=Ba.f,Dc={}.toString,Cc="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],Nc=function(t){try{return xc(t)}catch(t){return Cc.slice()}},Rc=function(t){return Cc&&"[object Window]"==Dc.call(t)?Nc(t):xc(Ic(t))},zc={f:Rc},Zc=v,Lc=Z,Wc=k,Bc=tt,Hc=H,Uc=ei.KEY,qc=b,Gc=St,Vc=$t,Xc=B,Kc=Kt,Yc=gc,Jc=_c,Qc=Ec,$c=Ac,ts=An,ns=m,es=ct,rs=F,os=D,is=Xt,as=zc,us=Pi,cs=x,ss=Ct,fs=us.f,ls=cs.f,hs=as.f,ps=Zc.Symbol,vs=Zc.JSON,ds=vs&&vs.stringify,gs="prototype",ys=Kc("_hidden"),ms=Kc("toPrimitive"),bs={}.propertyIsEnumerable,ks=Gc("symbol-registry"),ws=Gc("symbols"),_s=Gc("op-symbols"),Ss=Object[gs],Ts="function"==typeof ps,Es=Zc.QObject,Os=!Es||!Es[gs]||!Es[gs].findChild,Fs=Wc&&qc(function(){return 7!=is(ls({},"a",{get:function(){return ls(this,"a",{value:7}).a}})).a})?function(t,n,e){var r=fs(Ss,n);r&&delete Ss[n],ls(t,n,e),r&&t!==Ss&&ls(Ss,n,r)}:ls,Ps=function(t){var n=ws[t]=is(ps[gs]);return n._k=t,n},Ms=Ts&&"symbol"==typeof ps.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof ps},js=function(t,n,e){return t===Ss&&js(_s,n,e),ns(t),n=rs(n,!0),ns(e),Lc(ws,n)?(e.enumerable?(Lc(t,ys)&&t[ys][n]&&(t[ys][n]=!1),e=is(e,{enumerable:os(0,!1)})):(Lc(t,ys)||ls(t,ys,os(1,{})),t[ys][n]=!0),Fs(t,n,e)):ls(t,n,e)},As=function(t,n){ns(t);for(var e,r=$c(n=es(n)),o=0,i=r.length;i>o;)js(t,e=r[o++],n[e]);return t},Is=function(t,n){return void 0===n?is(t):As(is(t),n)},xs=function(t){var n=bs.call(this,t=rs(t,!0));return!(this===Ss&&Lc(ws,t)&&!Lc(_s,t))&&(!(n||!Lc(this,t)||!Lc(ws,t)||Lc(this,ys)&&this[ys][t])||n)},Ds=function(t,n){if(t=es(t),n=rs(n,!0),t!==Ss||!Lc(ws,n)||Lc(_s,n)){var e=fs(t,n);return!e||!Lc(ws,n)||Lc(t,ys)&&t[ys][n]||(e.enumerable=!0),e}},Cs=function(t){for(var n,e=hs(es(t)),r=[],o=0;e.length>o;)Lc(ws,n=e[o++])||n==ys||n==Uc||r.push(n);return r},Ns=function(t){for(var n,e=t===Ss,r=hs(e?_s:es(t)),o=[],i=0;r.length>i;)!Lc(ws,n=r[i++])||e&&!Lc(Ss,n)||o.push(ws[n]);return o};Ts||(ps=function(){if(this instanceof ps)throw TypeError("Symbol is not a constructor!");var t=Xc(arguments.length>0?arguments[0]:void 0),n=function(e){this===Ss&&n.call(_s,e),Lc(this,ys)&&Lc(this[ys],t)&&(this[ys][t]=!1),Fs(this,t,os(1,e))};return Wc&&Os&&Fs(Ss,t,{configurable:!0,set:n}),Ps(t)},Hc(ps[gs],"toString",function(){return this._k}),us.f=Ds,cs.f=js,Ba.f=as.f=Cs,bi.f=xs,Fc.f=Ns,Wc&&!h&&Hc(Ss,"propertyIsEnumerable",xs,!0),Yc.f=function(t){return Ps(Kc(t))}),Bc(Bc.G+Bc.W+Bc.F*!Ts,{Symbol:ps});for(var Rs="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),zs=0;Rs.length>zs;)Kc(Rs[zs++]);for(var Rs=ss(Kc.store),zs=0;Rs.length>zs;)Jc(Rs[zs++]);Bc(Bc.S+Bc.F*!Ts,"Symbol",{for:function(t){return Lc(ks,t+="")?ks[t]:ks[t]=ps(t)},keyFor:function(t){if(Ms(t))return Qc(ks,t);throw TypeError(t+" is not a symbol!")},useSetter:function(){Os=!0},useSimple:function(){Os=!1}}),Bc(Bc.S+Bc.F*!Ts,"Object",{create:Is,defineProperty:js,defineProperties:As,getOwnPropertyDescriptor:Ds,getOwnPropertyNames:Cs,getOwnPropertySymbols:Ns}),vs&&Bc(Bc.S+Bc.F*(!Ts||qc(function(){var t=ps();return"[null]"!=ds([t])||"{}"!=ds({ 2 | a:t})||"{}"!=ds(Object(t))})),"JSON",{stringify:function(t){if(void 0!==t&&!Ms(t)){for(var n,e,r=[t],o=1;arguments.length>o;)r.push(arguments[o++]);return n=r[1],"function"==typeof n&&(e=n),!e&&ts(n)||(n=function(t,n){if(e&&(n=e.call(this,t,n)),!Ms(n))return n}),r[1]=n,ds.apply(vs,r)}}}),ps[gs][ms]||R(ps[gs],ms,ps[gs].valueOf),Vc(ps,"Symbol"),Vc(Math,"Math",!0),Vc(Zc.JSON,"JSON",!0);var Zs=tt;Zs(Zs.S,"Object",{create:Xt});var Ls=tt;Ls(Ls.S+Ls.F*!k,"Object",{defineProperty:x.f});var Ws=tt;Ws(Ws.S+Ws.F*!k,"Object",{defineProperties:Zt});var Bs=tt,Hs=d,Us=b,qs=function(t,n){var e=(Hs.Object||{})[t]||Object[t],r={};r[t]=n(e),Bs(Bs.S+Bs.F*Us(function(){e(1)}),"Object",r)},Gs=ct,Vs=Pi.f;qs("getOwnPropertyDescriptor",function(){return function(t,n){return Vs(Gs(t),n)}});var Xs=un,Ks=hn;qs("getPrototypeOf",function(){return function(t){return Ks(Xs(t))}});var Ys=un,Js=Ct;qs("keys",function(){return function(t){return Js(Ys(t))}}),qs("getOwnPropertyNames",function(){return zc.f});var Qs=g,$s=ei.onFreeze;qs("freeze",function(t){return function(n){return t&&Qs(n)?t($s(n)):n}});var tf=g,nf=ei.onFreeze;qs("seal",function(t){return function(n){return t&&tf(n)?t(nf(n)):n}});var ef=g,rf=ei.onFreeze;qs("preventExtensions",function(t){return function(n){return t&&ef(n)?t(rf(n)):n}});var of=g;qs("isFrozen",function(t){return function(n){return!of(n)||!!t&&t(n)}});var af=g;qs("isSealed",function(t){return function(n){return!af(n)||!!t&&t(n)}});var uf=g;qs("isExtensible",function(t){return function(n){return!!uf(n)&&(!t||t(n))}});var cf=Ct,sf=Fc,ff=bi,lf=un,hf=it,pf=Object.assign,vf=!pf||b(function(){var t={},n={},e=Symbol(),r="abcdefghijklmnopqrst";return t[e]=7,r.split("").forEach(function(t){n[t]=t}),7!=pf({},t)[e]||Object.keys(pf({},n)).join("")!=r})?function(t,n){for(var e=lf(t),r=arguments.length,o=1,i=sf.f,a=ff.f;r>o;)for(var u,c=hf(arguments[o++]),s=i?cf(c).concat(i(c)):cf(c),f=s.length,l=0;f>l;)a.call(c,u=s[l++])&&(e[u]=c[u]);return e}:pf,df=tt;df(df.S+df.F,"Object",{assign:vf});var gf=Object.is||function(t,n){return t===n?0!==t||1/t===1/n:t!=t&&n!=n},yf=tt;yf(yf.S,"Object",{is:gf});var mf=tt;mf(mf.S,"Object",{setPrototypeOf:Ii.set});var bf=tt,kf=ic;bf(bf.G+bf.F*(parseFloat!=kf),{parseFloat:kf});var wf=tt,_f=hc;wf(wf.G+wf.F*(parseInt!=_f),{parseInt:_f});var Sf=tt,Tf=U,Ef=m,Of=(v.Reflect||{}).apply,Ff=Function.apply;Sf(Sf.S+Sf.F*!b(function(){Of(function(){})}),"Reflect",{apply:function(t,n,e){var r=Tf(t),o=Ef(e);return Of?Of(r,n,o):Ff.call(r,n,o)}});var Pf=tt,Mf=Xt,jf=U,Af=m,If=g,xf=b,Df=_o,Cf=(v.Reflect||{}).construct,Nf=xf(function(){function t(){}return!(Cf(function(){},[],t)instanceof t)}),Rf=!xf(function(){Cf(function(){})});Pf(Pf.S+Pf.F*(Nf||Rf),"Reflect",{construct:function(t,n){jf(t),Af(n);var e=arguments.length<3?t:jf(arguments[2]);if(Rf&&!Nf)return Cf(t,n,e);if(t==e){switch(n.length){case 0:return new t;case 1:return new t(n[0]);case 2:return new t(n[0],n[1]);case 3:return new t(n[0],n[1],n[2]);case 4:return new t(n[0],n[1],n[2],n[3])}var r=[null];return r.push.apply(r,n),new(Df.apply(t,r))}var o=e.prototype,i=Mf(If(o)?o:Object.prototype),a=Function.apply.call(t,i,n);return If(a)?a:i}});var zf=x,Zf=tt,Lf=m,Wf=F;Zf(Zf.S+Zf.F*b(function(){Reflect.defineProperty(zf.f({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function(t,n,e){Lf(t),n=Wf(n,!0),Lf(e);try{return zf.f(t,n,e),!0}catch(t){return!1}}});var Bf=tt,Hf=Pi.f,Uf=m;Bf(Bf.S,"Reflect",{deleteProperty:function(t,n){var e=Hf(Uf(t),n);return!(e&&!e.configurable)&&delete t[n]}});var qf=tt,Gf=m,Vf=function(t){this._t=Gf(t),this._i=0;var n,e=this._k=[];for(n in t)e.push(n)};on(Vf,"Object",function(){var t,n=this,e=n._k;do if(n._i>=e.length)return{value:void 0,done:!0};while(!((t=e[n._i++])in n._t));return{value:t,done:!1}}),qf(qf.S,"Reflect",{enumerate:function(t){return new Vf(t)}});var Xf=Pi,Kf=hn,Yf=Z,Jf=tt,Qf=g,$f=m;Jf(Jf.S,"Reflect",{get:r});var tl=Pi,nl=tt,el=m;nl(nl.S,"Reflect",{getOwnPropertyDescriptor:function(t,n){return tl.f(el(t),n)}});var rl=tt,ol=hn,il=m;rl(rl.S,"Reflect",{getPrototypeOf:function(t){return ol(il(t))}});var al=tt;al(al.S,"Reflect",{has:function(t,n){return n in t}});var ul=tt,cl=m,sl=Object.isExtensible;ul(ul.S,"Reflect",{isExtensible:function(t){return cl(t),!sl||sl(t)}});var fl=Ba,ll=Fc,hl=m,pl=v.Reflect,vl=pl&&pl.ownKeys||function(t){var n=fl.f(hl(t)),e=ll.f;return e?n.concat(e(t)):n},dl=tt;dl(dl.S,"Reflect",{ownKeys:vl});var gl=tt,yl=m,ml=Object.preventExtensions;gl(gl.S,"Reflect",{preventExtensions:function(t){yl(t);try{return ml&&ml(t),!0}catch(t){return!1}}});var bl=x,kl=Pi,wl=hn,_l=Z,Sl=tt,Tl=D,El=m,Ol=g;Sl(Sl.S,"Reflect",{set:o});var Fl=tt,Pl=Ii;Pl&&Fl(Fl.S,"Reflect",{setPrototypeOf:function(t,n){Pl.check(t,n);try{return Pl.set(t,n),!0}catch(t){return!1}}});var Ml=g,jl=rt,Al=Kt("match"),Il=function(t){var n;return Ml(t)&&(void 0!==(n=t[Al])?!!n:"RegExp"==jl(t))},xl=m,Dl=function(){var t=xl(this),n="";return t.global&&(n+="g"),t.ignoreCase&&(n+="i"),t.multiline&&(n+="m"),t.unicode&&(n+="u"),t.sticky&&(n+="y"),n},Cl=v,Nl=Ci,Rl=x.f,zl=Ba.f,Zl=Il,Ll=Dl,Wl=Cl.RegExp,Bl=Wl,Hl=Wl.prototype,Ul=/a/g,ql=/a/g,Gl=new Wl(Ul)!==Ul;if(k&&(!Gl||b(function(){return ql[Kt("match")]=!1,Wl(Ul)!=Ul||Wl(ql)==ql||"/a/i"!=Wl(Ul,"i")}))){Wl=function(t,n){var e=this instanceof Wl,r=Zl(t),o=void 0===n;return!e&&r&&t.constructor===Wl&&o?t:Nl(Gl?new Bl(r&&!o?t.source:t,n):Bl((r=t instanceof Wl)?t.source:t,r&&o?Ll.call(t):n),e?this:Hl,Wl)};for(var Vl=(function(t){t in Wl||Rl(Wl,t,{configurable:!0,get:function(){return Bl[t]},set:function(n){Bl[t]=n}})}),Xl=zl(Bl),Kl=0;Xl.length>Kl;)Vl(Xl[Kl++]);Hl.constructor=Wl,Wl.prototype=Hl,H(Cl,"RegExp",Wl)}Wr("RegExp"),k&&"g"!=/./g.flags&&x.f(RegExp.prototype,"flags",{configurable:!0,get:Dl});var Yl=m,Jl=Dl,Ql=k,$l="toString",th=/./[$l],nh=function(t){H(RegExp.prototype,$l,t,!0)};b(function(){return"/a/b"!=th.call({source:"a",flags:"b"})})?nh(function(){var t=Yl(this);return"/".concat(t.source,"/","flags"in t?t.flags:!Ql&&t instanceof RegExp?Jl.call(t):void 0)}):th.name!=$l&&nh(function(){return th.call(this)});var eh=R,rh=H,oh=b,ih=c,ah=Kt,uh=function(t,n,e){var r=ah(t),o=e(ih,r,""[t]),i=o[0],a=o[1];oh(function(){var n={};return n[r]=function(){return 7},7!=""[t](n)})&&(rh(String.prototype,t,i),eh(RegExp.prototype,r,2==n?function(t,n){return a.call(t,this,n)}:function(t){return a.call(t,this)}))};uh("match",1,function(t,n,e){return[function(e){var r=t(this),o=void 0==e?void 0:e[n];return void 0!==o?o.call(e,r):new RegExp(e)[n](String(r))},e]}),uh("replace",2,function(t,n,e){return[function(r,o){var i=t(this),a=void 0==r?void 0:r[n];return void 0!==a?a.call(r,i,o):e.call(String(i),r,o)},e]}),uh("search",1,function(t,n,e){return[function(e){var r=t(this),o=void 0==e?void 0:e[n];return void 0!==o?o.call(e,r):new RegExp(e)[n](String(r))},e]}),uh("split",2,function(t,n,e){var r=Il,o=e,i=[].push,a="split",u="length",c="lastIndex";if("c"=="abbc"[a](/(b)*/)[1]||4!="test"[a](/(?:)/,-1)[u]||2!="ab"[a](/(?:ab)*/)[u]||4!="."[a](/(.?)(.?)/)[u]||"."[a](/()()/)[u]>1||""[a](/.?/)[u]){var s=void 0===/()??/.exec("")[1];e=function(t,n){var e=String(this);if(void 0===t&&0===n)return[];if(!r(t))return o.call(e,t,n);var a,f,l,h,p,v=[],d=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),g=0,y=void 0===n?4294967295:n>>>0,m=new RegExp(t.source,d+"g");for(s||(a=new RegExp("^"+m.source+"$(?!\\s)",d));(f=m.exec(e))&&(l=f.index+f[0][u],!(l>g&&(v.push(e.slice(g,f.index)),!s&&f[u]>1&&f[0].replace(a,function(){for(p=1;p1&&f.index=y)));)m[c]===f.index&&m[c]++;return g===e[u]?!h&&m.test("")||v.push(""):v.push(e.slice(g)),v[u]>y?v.slice(0,y):v}}else"0"[a](void 0,0)[u]&&(e=function(t,n){return void 0===t&&0===n?[]:o.call(this,t,n)});return[function(r,o){var i=t(this),a=void 0==r?void 0:r[n];return void 0!==a?a.call(r,i,o):e.call(String(i),r,o)},e]});var ch=yi,sh=Xi("Set",function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function(t){return ch.def(this,t=0===t?0:t,t)}},ch),fh=tt,lh=dt,hh=String.fromCharCode,ph=String.fromCodePoint;fh(fh.S+fh.F*(!!ph&&1!=ph.length),"String",{fromCodePoint:function(t){for(var n,e=[],r=arguments.length,o=0;r>o;){if(n=+arguments[o++],lh(n,1114111)!==n)throw RangeError(n+" is not a valid code point");e.push(n<65536?hh(n):hh(((n-=65536)>>10)+55296,n%1024+56320))}return e.join("")}});var vh=tt,dh=ct,gh=lt;vh(vh.S,"String",{raw:function(t){for(var n=dh(t.raw),e=gh(n.length),r=arguments.length,o=[],i=0;e>i;)o.push(String(n[i++])),i1?arguments[1]:void 0,r=Eh(n.length),o=void 0===e?r:Math.min(Eh(e),r),i=String(t);return Ph?Ph.call(n,i,o):n.slice(o-i.length,o)===i}});var Mh=tt,jh=wh,Ah="includes";Mh(Mh.P+Mh.F*Sh(Ah),"String",{includes:function(t){return!!~jh(this,t,Ah).indexOf(t,arguments.length>1?arguments[1]:void 0)}});var Ih=tt;Ih(Ih.P,"String",{repeat:Eu});var xh=tt,Dh=lt,Ch=wh,Nh="startsWith",Rh=""[Nh];xh(xh.P+xh.F*Sh(Nh),"String",{startsWith:function(t){var n=Ch(this,t,Nh),e=Dh(Math.min(arguments.length>1?arguments[1]:void 0,n.length)),r=String(t);return Rh?Rh.call(n,r,e):n.slice(e,e+r.length)===r}});var zh=tt,Zh=b,Lh=c,Wh=/"/g,Bh=function(t,n,e,r){var o=String(Lh(t)),i="<"+n;return""!==e&&(i+=" "+e+'="'+String(r).replace(Wh,""")+'"'),i+">"+o+""},Hh=function(t,n){var e={};e[t]=n(Bh),zh(zh.P+zh.F*Zh(function(){var n=""[t]('"');return n!==n.toLowerCase()||n.split('"').length>3}),"String",e)};Hh("anchor",function(t){return function(n){return t(this,"a","name",n)}}),Hh("big",function(t){return function(){return t(this,"big","","")}}),Hh("blink",function(t){return function(){return t(this,"blink","","")}}),Hh("bold",function(t){return function(){return t(this,"b","","")}}),Hh("fixed",function(t){return function(){return t(this,"tt","","")}}),Hh("fontcolor",function(t){return function(n){return t(this,"font","color",n)}}),Hh("fontsize",function(t){return function(n){return t(this,"font","size",n)}}),Hh("italics",function(t){return function(){return t(this,"i","","")}}),Hh("link",function(t){return function(n){return t(this,"a","href",n)}}),Hh("small",function(t){return function(){return t(this,"small","","")}}),Hh("strike",function(t){return function(){return t(this,"strike","","")}}),Hh("sub",function(t){return function(){return t(this,"sub","","")}}),Hh("sup",function(t){return function(){return t(this,"sup","","")}});for(var Uh,qh=v,Gh=R,Vh=B,Xh=Vh("typed_array"),Kh=Vh("view"),Yh=!(!qh.ArrayBuffer||!qh.DataView),Jh=Yh,Qh=0,$h=9,tp="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");Qh<$h;)(Uh=qh[tp[Qh++]])?(Gh(Uh.prototype,Xh,!0),Gh(Uh.prototype,Kh,!0)):Jh=!1;var np={ABV:Yh,CONSTR:Jh,TYPED:Xh,VIEW:Kh},ep=n(function(t,n){var e=v,r=k,o=h,i=np,a=R,c=$o,s=b,f=ti,l=u,p=lt,d=Ba.f,g=x.f,y=Fr,m=$t,w="ArrayBuffer",_="DataView",S="prototype",T="Wrong length!",E="Wrong index!",O=e[w],F=e[_],P=e.Math,M=e.RangeError,j=e.Infinity,A=O,I=P.abs,D=P.pow,C=P.floor,N=P.log,z=P.LN2,Z="buffer",L="byteLength",W="byteOffset",B=r?"_b":Z,H=r?"_l":L,U=r?"_o":W,q=function(t,n,e){var r,o,i,a=Array(e),u=8*e-n-1,c=(1<>1,f=23===n?D(2,-24)-D(2,-77):0,l=0,h=t<0||0===t&&1/t<0?1:0;for(t=I(t),t!=t||t===j?(o=t!=t?1:0,r=c):(r=C(N(t)/z),t*(i=D(2,-r))<1&&(r--,i*=2),t+=r+s>=1?f/i:f*D(2,1-s),t*i>=2&&(r++,i/=2),r+s>=c?(o=0,r=c):r+s>=1?(o=(t*i-1)*D(2,n),r+=s):(o=t*D(2,s-1)*D(2,n),r=0));n>=8;a[l++]=255&o,o/=256,n-=8);for(r=r<0;a[l++]=255&r,r/=256,u-=8);return a[--l]|=128*h,a},G=function(t,n,e){var r,o=8*e-n-1,i=(1<>1,u=o-7,c=e-1,s=t[c--],f=127&s;for(s>>=7;u>0;f=256*f+t[c],c--,u-=8);for(r=f&(1<<-u)-1,f>>=-u,u+=n;u>0;r=256*r+t[c],c--,u-=8);if(0===f)f=1-a;else{if(f===i)return r?NaN:s?-j:j;r+=D(2,n),f-=a}return(s?-1:1)*r*D(2,f-n)},V=function(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]},X=function(t){return[255&t]},K=function(t){return[255&t,t>>8&255]},Y=function(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]},J=function(t){return q(t,52,8)},Q=function(t){return q(t,23,4)},$=function(t,n,e){g(t[S],n,{get:function(){return this[e]}})},tt=function(t,n,e,r){var o=+e,i=l(o);if(o!=i||i<0||i+n>t[H])throw M(E);var a=t[B]._b,u=i+t[U],c=a.slice(u,u+n);return r?c:c.reverse()},nt=function(t,n,e,r,o,i){var a=+e,u=l(a);if(a!=u||u<0||u+n>t[H])throw M(E);for(var c=t[B]._b,s=u+t[U],f=r(+o),h=0;hat;)(rt=it[at++])in O||a(O,rt,A[rt]);o||(ot.constructor=O)}var ut=new F(new O(2)),ct=F[S].setInt8;ut.setInt8(0,2147483648),ut.setInt8(1,2147483649),!ut.getInt8(0)&&ut.getInt8(1)||c(F[S],{setInt8:function(t,n){ct.call(this,t,n<<24>>24)},setUint8:function(t,n){ct.call(this,t,n<<24>>24)}},!0)}else O=function(t){var n=et(this,t);this._b=y.call(Array(n),0),this[H]=n},F=function(t,n,e){f(this,F,_),f(t,O,_);var r=t[H],o=l(n);if(o<0||o>r)throw M("Wrong offset!");if(e=void 0===e?r-o:p(e),o+e>r)throw M(T);this[B]=t,this[U]=o,this[H]=e},r&&($(O,L,"_l"),$(F,Z,"_b"),$(F,L,"_l"),$(F,W,"_o")),c(F[S],{getInt8:function(t){return tt(this,1,t)[0]<<24>>24},getUint8:function(t){return tt(this,1,t)[0]},getInt16:function(t){var n=tt(this,2,t,arguments[1]);return(n[1]<<8|n[0])<<16>>16},getUint16:function(t){var n=tt(this,2,t,arguments[1]);return n[1]<<8|n[0]},getInt32:function(t){return V(tt(this,4,t,arguments[1]))},getUint32:function(t){return V(tt(this,4,t,arguments[1]))>>>0},getFloat32:function(t){return G(tt(this,4,t,arguments[1]),23,4)},getFloat64:function(t){return G(tt(this,8,t,arguments[1]),52,8)},setInt8:function(t,n){nt(this,1,t,X,n)},setUint8:function(t,n){nt(this,1,t,X,n)},setInt16:function(t,n){nt(this,2,t,K,n,arguments[2])},setUint16:function(t,n){nt(this,2,t,K,n,arguments[2])},setInt32:function(t,n){nt(this,4,t,Y,n,arguments[2])},setUint32:function(t,n){nt(this,4,t,Y,n,arguments[2])},setFloat32:function(t,n){nt(this,4,t,Q,n,arguments[2])},setFloat64:function(t,n){nt(this,8,t,J,n,arguments[2])}});m(O,w),m(F,_),a(F[S],i.VIEW,!0),n[w]=O,n[_]=F}),rp=m,op=U,ip=Kt("species"),ap=function(t,n){var e,r=rp(t).constructor;return void 0===r||void 0==(e=rp(r)[ip])?n:op(e)},up=tt,cp=np,sp=ep,fp=m,lp=dt,hp=lt,pp=g,vp=v.ArrayBuffer,dp=ap,gp=sp.ArrayBuffer,yp=sp.DataView,mp=cp.ABV&&vp.isView,bp=gp.prototype.slice,kp=cp.VIEW,wp="ArrayBuffer";up(up.G+up.W+up.F*(vp!==gp),{ArrayBuffer:gp}),up(up.S+up.F*!cp.CONSTR,wp,{isView:function(t){return mp&&mp(t)||pp(t)&&kp in t}}),up(up.P+up.U+up.F*b(function(){return!new gp(2).slice(1,void 0).byteLength}),wp,{slice:function(t,n){if(void 0!==bp&&void 0===n)return bp.call(fp(this),t);for(var e=fp(this).byteLength,r=lp(t,e),o=lp(void 0===n?e:n,e),i=new(dp(this,gp))(hp(o-r)),a=new yp(this),u=new yp(i),c=0;re;)o[e]=n[e++];return o},$t=function(t,n,e){Q(t,n,{get:function(){return this._d[e]}})},tn=function(t){var n,e,r,o,i,a,u=O(t),s=arguments.length,f=s>1?arguments[1]:void 0,l=void 0!==f,h=I(u);if(void 0!=h&&!P(h)){for(a=h.call(u),r=[],n=0;!(i=a.next()).done;n++)r.push(i.value);u=r}for(l&&s>2&&(f=c(f,arguments[2],2)),n=0,e=y(u.length),o=Yt(this,e);e>n;n++)o[n]=l?f(u[n],n):u[n];return o},nn=function(){for(var t=0,n=arguments.length,e=Yt(this,n);n>t;)e[t]=arguments[t++];return e},en=!!ot&&r(function(){xt.call(new ot(1))}),rn=function(){return xt.apply(en?At.call(Vt(this)):Vt(this),arguments)},on={copyWithin:function(t,n){return K.call(Vt(this),t,n,arguments.length>2?arguments[2]:void 0)},every:function(t){return yt(Vt(this),t,arguments.length>1?arguments[1]:void 0)},fill:function(t){return X.apply(Vt(this),arguments)},filter:function(t){return Jt(this,vt(Vt(this),t,arguments.length>1?arguments[1]:void 0))},find:function(t){return mt(Vt(this),t,arguments.length>1?arguments[1]:void 0)},findIndex:function(t){return kt(Vt(this),t,arguments.length>1?arguments[1]:void 0)},forEach:function(t){pt(Vt(this),t,arguments.length>1?arguments[1]:void 0)},indexOf:function(t){return _t(Vt(this),t,arguments.length>1?arguments[1]:void 0)},includes:function(t){return wt(Vt(this),t,arguments.length>1?arguments[1]:void 0)},join:function(t){return Mt.apply(Vt(this),arguments)},lastIndexOf:function(t){return Ot.apply(Vt(this),arguments)},map:function(t){return Bt(Vt(this),t,arguments.length>1?arguments[1]:void 0)},reduce:function(t){return Ft.apply(Vt(this),arguments)},reduceRight:function(t){return Pt.apply(Vt(this),arguments)},reverse:function(){for(var t,n=this,e=Vt(n).length,r=Math.floor(e/2),o=0;o1?arguments[1]:void 0)},sort:function(t){return jt.call(Vt(this),t)},subarray:function(t,n){var e=Vt(this),r=e.length,o=m(t,r);return new(W(e,e[Rt]))(e.buffer,e.byteOffset+o*e.BYTES_PER_ELEMENT,y((void 0===n?r:m(n,r))-o))}},an=function(t,n){return Jt(this,At.call(Vt(this),t,n))},cn=function(t){Vt(this);var n=Gt(arguments[1],1),e=this.length,r=O(t),o=y(r.length),i=0;if(o+n>e)throw et(Wt);for(;i255?255:255&e),r.v[v](n*a+r.o,e,Ht)},O=function(t,n){Q(t,n,{get:function(){return _(this,n)},set:function(t){return S(this,n,t)},enumerable:!0})};b?(d=u(function(t,n,e,r){s(t,d,f,"_d");var o,i,u,c,h=0,p=0;if(E(n)){if(!(n instanceof ft||(c=T(n))==it||c==at))return Zt in n?Qt(d,n):tn.call(d,n);o=n,p=Gt(e,a);var v=n.byteLength;if(void 0===r){if(v%a)throw et(Wt);if(i=v-p,i<0)throw et(Wt)}else if(i=y(r)*a,i+p>v)throw et(Wt);u=i/a}else u=qt(n,!0),i=u*a,o=new ft(i);for(l(t,"_d",{b:o,o:p,l:i,e:u,v:new ht(o)});h0?arguments[0]:void 0)}},p={get:function(t){if(u(t)){var n=c(t);return n===!0?f(this).get(t):n?n[this._i]:void 0}},set:function(t,n){return a.def(this,t,n)}},v=t.exports=Xi("WeakMap",h,p,a,!0,!0);7!=(new v).set((Object.freeze||Object)(l),7).get(l)&&(n=a.getConstructor(h),i(n.prototype,p),o.NEED=!0,e(["delete","has","get","set"],function(t){var e=v.prototype,o=e[t];r(e,t,function(e,r){if(u(e)&&!s(e)){this._f||(this._f=new n);var i=this._f[t](e,r);return"set"==t?this:i}return o.call(this,e,r)})}))}),Lp=zp;Xi("WeakSet",function(t){return function(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function(t){return Lp.def(this,t,!0)}},Lp,!1,!0);var Wp=Yi,Bp=tt,Hp=St("metadata"),Up=Hp.store||(Hp.store=new Zp),qp=function(t,n,e){var r=Up.get(t);if(!r){if(!e)return;Up.set(t,r=new Wp)}var o=r.get(n);if(!o){if(!e)return;r.set(n,o=new Wp)}return o},Gp=function(t,n,e){var r=qp(n,e,!1);return void 0!==r&&r.has(t)},Vp=function(t,n,e){var r=qp(n,e,!1);return void 0===r?void 0:r.get(t)},Xp=function(t,n,e,r){qp(e,r,!0).set(t,n)},Kp=function(t,n){var e=qp(t,n,!1),r=[];return e&&e.forEach(function(t,n){r.push(n)}),r},Yp=function(t){return void 0===t||"symbol"==typeof t?t:String(t)},Jp=function(t){Bp(Bp.S,"Reflect",t)},Qp={store:Up,map:qp,has:Gp,get:Vp,set:Xp,keys:Kp,key:Yp,exp:Jp},$p=Qp,tv=m,nv=$p.key,ev=$p.set;$p.exp({defineMetadata:function(t,n,e,r){ev(t,n,tv(e),nv(r))}});var rv=Qp,ov=m,iv=rv.key,av=rv.map,uv=rv.store;rv.exp({deleteMetadata:function(t,n){var e=arguments.length<3?void 0:iv(arguments[2]),r=av(ov(n),e,!1);if(void 0===r||!r.delete(t))return!1;if(r.size)return!0;var o=uv.get(n);return o.delete(e),!!o.size||uv.delete(n)}});var cv=Qp,sv=m,fv=hn,lv=cv.has,hv=cv.get,pv=cv.key,vv=function(t,n,e){var r=lv(t,n,e);if(r)return hv(t,n,e);var o=fv(n);return null!==o?vv(t,o,e):void 0};cv.exp({getMetadata:function(t,n){return vv(t,sv(n),arguments.length<3?void 0:pv(arguments[2]))}});var dv=ni,gv=function(t,n){var e=[];return dv(t,!1,e.push,e,n),e},yv=sh,mv=gv,bv=Qp,kv=m,wv=hn,_v=bv.keys,Sv=bv.key,Tv=function(t,n){var e=_v(t,n),r=wv(t);if(null===r)return e;var o=Tv(r,n);return o.length?e.length?mv(new yv(e.concat(o))):o:e};bv.exp({getMetadataKeys:function(t){return Tv(kv(t),arguments.length<2?void 0:Sv(arguments[1]))}});var Ev=Qp,Ov=m,Fv=Ev.get,Pv=Ev.key;Ev.exp({getOwnMetadata:function(t,n){return Fv(t,Ov(n),arguments.length<3?void 0:Pv(arguments[2]))}});var Mv=Qp,jv=m,Av=Mv.keys,Iv=Mv.key;Mv.exp({getOwnMetadataKeys:function(t){return Av(jv(t),arguments.length<2?void 0:Iv(arguments[1]))}});var xv=Qp,Dv=m,Cv=hn,Nv=xv.has,Rv=xv.key,zv=function(t,n,e){var r=Nv(t,n,e);if(r)return!0;var o=Cv(n);return null!==o&&zv(t,o,e)};xv.exp({hasMetadata:function(t,n){return zv(t,Dv(n),arguments.length<3?void 0:Rv(arguments[2]))}});var Zv=Qp,Lv=m,Wv=Zv.has,Bv=Zv.key;Zv.exp({hasOwnMetadata:function(t,n){return Wv(t,Lv(n),arguments.length<3?void 0:Bv(arguments[2]))}});var Hv=Qp,Uv=m,qv=U,Gv=Hv.key,Vv=Hv.set;Hv.exp({metadata:function(t,n){return function(e,r){Vv(t,n,(void 0!==r?Uv:qv)(e),Gv(r))}}});n(function(t,n){!function(e,r){"object"==typeof n&&"undefined"!=typeof t?r():"function"==typeof define&&define.amd?define(r):r()}(p,function(){function t(t,n){for(var e=t.length-1;e>=0;e--)"function"==typeof t[e]&&(t[e]=Zone.current.wrap(t[e],n+"_"+e));return t}function n(n,e){for(var r=n.constructor.name,o=function(o){var i=e[o],a=n[i];a&&(n[i]=function(n){return function(){return n.apply(this,t(arguments,r+"."+i))}}(a))},i=0;i1?new n(t,e):new n(t),a=Object.getOwnPropertyDescriptor(i,"onmessage");return a&&a.configurable===!1?(o=Object.create(i),["addEventListener","removeEventListener","send","close"].forEach(function(t){o[t]=function(){return i[t].apply(i,arguments)}})):o=i,r(o,["close","error","message","open"]),o};for(var e in n)t.WebSocket[e]=n[e]}function _(t){if(!A||x){var n="undefined"!=typeof WebSocket;S()?(I&&(r(window,G),r(Document.prototype,G),"undefined"!=typeof SVGElement&&r(SVGElement.prototype,G),r(HTMLElement.prototype,G)),r(XMLHttpRequest.prototype,null),"undefined"!=typeof IDBIndex&&(r(IDBIndex.prototype,null),r(IDBRequest.prototype,null),r(IDBOpenDBRequest.prototype,null),r(IDBDatabase.prototype,null),r(IDBTransaction.prototype,null),r(IDBCursor.prototype,null)),n&&r(WebSocket.prototype,null)):(T(),s("XMLHttpRequest"),n&&w(t))}}function S(){if((I||x)&&!Object.getOwnPropertyDescriptor(HTMLElement.prototype,"onclick")&&"undefined"!=typeof Element){var t=Object.getOwnPropertyDescriptor(Element.prototype,"onclick");if(t&&!t.configurable)return!1}var n=Object.getOwnPropertyDescriptor(XMLHttpRequest.prototype,"onreadystatechange");Object.defineProperty(XMLHttpRequest.prototype,"onreadystatechange",{enumerable:!0,configurable:!0,get:function(){return!0}});var e=new XMLHttpRequest,r=!!e.onreadystatechange;return Object.defineProperty(XMLHttpRequest.prototype,"onreadystatechange",n||{}),r}function T(){for(var t=function(t){var n=G[t],e="on"+n;self.addEventListener(n,function(t){var n,r,o=t.target;for(r=o?o.constructor.name+"."+e:"unknown."+e;o;)o[e]&&!o[e][V]&&(n=Zone.current.wrap(o[e],r),n[V]=o[e],o[e]=n),o=o.parentElement},!0)},n=0;n "+o.zone.name+"]",o=o.parent):o=null;break;default:r[i]+=" ["+o.zone.name+"]"}}try{n.stack=n.zoneAwareStack=r.join("\n")}catch(t){}}return this instanceof et&&this.constructor!=et?(Object.keys(n).concat("stack","message").forEach(function(e){if(void 0!==n[e])try{t[e]=n[e]}catch(t){}}),this):n}if(t.Zone)throw new Error("Zone already loaded.");var y={name:"NO ZONE"},m="notScheduled",b="scheduling",k="scheduled",w="running",_="canceling",S="unknown",T="microTask",E="macroTask",O="eventTask",F=function(){function n(t,n){this._properties=null,this._parent=t,this._name=n?n.name||"unnamed":"",this._properties=n&&n.properties||{},this._zoneDelegate=new M(this,this._parent&&this._parent._zoneDelegate,n)}return n.assertZonePatched=function(){if(t.Promise!==K)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")},Object.defineProperty(n,"root",{get:function(){for(var t=n.current;t.parent;)t=t.parent;return t},enumerable:!0,configurable:!0}),Object.defineProperty(n,"current",{get:function(){return C.zone},enumerable:!0,configurable:!0}),Object.defineProperty(n,"currentTask",{get:function(){return N},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"parent",{get:function(){return this._parent},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"name",{get:function(){return this._name},enumerable:!0,configurable:!0}),n.prototype.get=function(t){var n=this.getZoneWith(t);if(n)return n._properties[t]},n.prototype.getZoneWith=function(t){for(var n=this;n;){if(n._properties.hasOwnProperty(t))return n;n=n._parent}return null},n.prototype.fork=function(t){if(!t)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,t)},n.prototype.wrap=function(t,n){if("function"!=typeof t)throw new Error("Expecting function got: "+t);var e=this._zoneDelegate.intercept(this,t,n),r=this;return function(){return r.runGuarded(e,this,arguments,n)}},n.prototype.run=function(t,n,e,r){void 0===n&&(n=void 0),void 0===e&&(e=null),void 0===r&&(r=null),C=new A(C,this);try{return this._zoneDelegate.invoke(this,t,n,e,r)}finally{C=C.parent}},n.prototype.runGuarded=function(t,n,e,r){void 0===n&&(n=null),void 0===e&&(e=null),void 0===r&&(r=null),C=new A(C,this);try{try{return this._zoneDelegate.invoke(this,t,n,e,r)}catch(t){if(this._zoneDelegate.handleError(this,t))throw t}}finally{C=C.parent}},n.prototype.runTask=function(t,n,e){if(t.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(t.zone||y).name+"; Execution: "+this.name+")");var r=t.state!=w;r&&t._transitionTo(w,k),t.runCount++;var o=N;N=t,C=new A(C,this);try{t.type==E&&t.data&&!t.data.isPeriodic&&(t.cancelFn=null);try{return this._zoneDelegate.invokeTask(this,t,n,e)}catch(t){if(this._zoneDelegate.handleError(this,t))throw t}}finally{t.state!==m&&t.state!==S&&(t.type==O||t.data&&t.data.isPeriodic?r&&t._transitionTo(k,w):(t.runCount=0,this._updateTaskCount(t,-1),r&&t._transitionTo(m,w,m))),C=C.parent,N=o}},n.prototype.scheduleTask=function(t){if(t.zone&&t.zone!==this)for(var n=this;n;){if(n===t.zone)throw Error("can not reschedule task to "+this.name+" which is descendants of the original zone "+t.zone.name);n=n.parent}t._transitionTo(b,m);var e=[];t._zoneDelegates=e,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(n){throw t._transitionTo(S,b,m),this._zoneDelegate.handleError(this,n),n}return t._zoneDelegates===e&&this._updateTaskCount(t,1),t.state==b&&t._transitionTo(k,b),t},n.prototype.scheduleMicroTask=function(t,n,e,r){return this.scheduleTask(new j(T,t,n,e,r,null))},n.prototype.scheduleMacroTask=function(t,n,e,r,o){return this.scheduleTask(new j(E,t,n,e,r,o))},n.prototype.scheduleEventTask=function(t,n,e,r,o){return this.scheduleTask(new j(O,t,n,e,r,o))},n.prototype.cancelTask=function(t){if(t.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(t.zone||y).name+"; Execution: "+this.name+")");t._transitionTo(_,k,w);try{this._zoneDelegate.cancelTask(this,t)}catch(n){throw t._transitionTo(S,_),this._zoneDelegate.handleError(this,n),n}return this._updateTaskCount(t,-1),t._transitionTo(m,_),t.runCount=0,t},n.prototype._updateTaskCount=function(t,n){var e=t._zoneDelegates;n==-1&&(t._zoneDelegates=null);for(var r=0;r0,macroTask:e.macroTask>0,eventTask:e.eventTask>0,change:t};this.hasTask(this.zone,i)}},t}(),j=function(){function t(t,n,e,r,o,i){this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=t,this.source=n,this.data=r,this.scheduleFn=o,this.cancelFn=i,this.callback=e;var u=this;this.invoke=function(){L++;try{return u.runCount++,u.zone.runTask(u,this,arguments)}finally{1==L&&a(),L--}}}return Object.defineProperty(t.prototype,"zone",{get:function(){return this._zone},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"state",{get:function(){return this._state},enumerable:!0,configurable:!0}),t.prototype.cancelScheduleRequest=function(){this._transitionTo(m,b)},t.prototype._transitionTo=function(t,n,e){if(this._state!==n&&this._state!==e)throw new Error(this.type+" '"+this.source+"': can not transition to '"+t+"', expecting state '"+n+"'"+(e?" or '"+e+"'":"")+", was '"+this._state+"'.");this._state=t,t==m&&(this._zoneDelegates=null)},t.prototype.toString=function(){return this.data&&"undefined"!=typeof this.data.handleId?this.data.handleId:Object.prototype.toString.call(this)},t.prototype.toJSON=function(){return{type:this.type,state:this.state,source:this.source,data:this.data,zone:this.zone.name,invoke:this.invoke,scheduleFn:this.scheduleFn,cancelFn:this.cancelFn,runCount:this.runCount,callback:this.callback}},t}(),A=function(){function t(t,n){this.parent=t,this.zone=n}return t}(),I=n("setTimeout"),x=n("Promise"),D=n("then"),C=new A(null,new F(null,null)),N=null,R=[],z=!1,Z=[],L=0,W=n("state"),B=n("value"),H="Promise.then",U=null,q=!0,G=!1,V=0,X=function(){var t=!1;return function(n){return function(){t||(t=!0,n.apply(null,arguments))}}},K=function(){function t(n){var e=this;if(!(e instanceof t))throw new Error("Must be an instanceof Promise.");e[W]=U,e[B]=[];try{n&&n(f(e,q),f(e,G))}catch(t){l(e,!1,t)}}return t.toString=function(){return"function ZoneAwarePromise() { [native code] }"},t.resolve=function(t){return l(new this(null),q,t)},t.reject=function(t){return l(new this(null),G,t)},t.race=function(t){function n(t){i&&(i=r(t))}function e(t){i&&(i=o(t))}for(var r,o,i=new this(function(t,n){e=[t,n],r=e[0],o=e[1];var e}),a=0,c=t;at.value[l]){var r=t.value[p];c.push(r),a.delete(r),t.continue()}},s.oncomplete=function(){r(c)},s.onabort=o}):Promise.resolve([])}function s(e,t){return t?new Promise(function(n,r){var o=[],i=e.transaction(h,"readwrite"),c=i.objectStore(h),s=c.index(l),a=s.count();s.count().onsuccess=function(){var e=a.result;e>t&&(s.openCursor().onsuccess=function(n){var r=n.target.result;if(r){var i=r.value[p];o.push(i),c.delete(i),e-o.length>t&&r.continue()}})},i.oncomplete=function(){n(o)},i.onabort=r}):Promise.resolve([])}function a(e,t,n,r){return c(e,n,r).then(function(n){return s(e,t).then(function(e){return n.concat(e)})})}var u="sw-toolbox-",f=1,h="store",p="url",l="timestamp",d={};t.exports={getDb:o,setTimestampForUrl:i,expireEntries:a}},{}],3:[function(e,t,n){"use strict";function r(e){var t=a.match(e.request);t?e.respondWith(t(e.request)):a.default&&"GET"===e.request.method&&0===e.request.url.indexOf("http")&&e.respondWith(a.default(e.request))}function o(e){s.debug("activate event fired");var t=u.cache.name+"$$$inactive$$$";e.waitUntil(s.renameCache(t,u.cache.name))}function i(e){return e.reduce(function(e,t){return e.concat(t)},[])}function c(e){var t=u.cache.name+"$$$inactive$$$";s.debug("install event fired"),s.debug("creating cache ["+t+"]"),e.waitUntil(s.openCache({cache:{name:t}}).then(function(e){return Promise.all(u.preCacheItems).then(i).then(s.validatePrecacheInput).then(function(t){return s.debug("preCache list: "+(t.join(", ")||"(none)")),e.addAll(t)})}))}e("serviceworker-cache-polyfill");var s=e("./helpers"),a=e("./router"),u=e("./options");t.exports={fetchListener:r,activateListener:o,installListener:c}},{"./helpers":1,"./options":4,"./router":6,"serviceworker-cache-polyfill":16}],4:[function(e,t,n){"use strict";var r;r=self.registration?self.registration.scope:self.scope||new URL("./",self.location).href,t.exports={cache:{name:"$$$toolbox-cache$$$"+r+"$$$",maxAgeSeconds:null,maxEntries:null},debug:!1,networkTimeoutSeconds:null,preCacheItems:[],successResponses:/^0|([123]\d\d)|(40[14567])|410$/}},{}],5:[function(e,t,n){"use strict";var r=new URL("./",self.location),o=r.pathname,i=e("path-to-regexp"),c=function(e,t,n,r){t instanceof RegExp?this.fullUrlRegExp=t:(0!==t.indexOf("/")&&(t=o+t),this.keys=[],this.regexp=i(t,this.keys)),this.method=e,this.options=r,this.handler=n};c.prototype.makeHandler=function(e){var t;if(this.regexp){var n=this.regexp.exec(e);t={},this.keys.forEach(function(e,r){t[e.name]=n[r+1]})}return function(e){return this.handler(e,t,this.options)}.bind(this)},t.exports=c},{"path-to-regexp":15}],6:[function(e,t,n){"use strict";function r(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var o=e("./route"),i=e("./helpers"),c=function(e,t){for(var n=e.entries(),r=n.next(),o=[];!r.done;){var i=new RegExp(r.value[0]);i.test(t)&&o.push(r.value[1]),r=n.next()}return o},s=function(){this.routes=new Map,this.routes.set(RegExp,new Map),this.default=null};["get","post","put","delete","head","any"].forEach(function(e){s.prototype[e]=function(t,n,r){return this.add(e,t,n,r)}}),s.prototype.add=function(e,t,n,c){c=c||{};var s;t instanceof RegExp?s=RegExp:(s=c.origin||self.location.origin,s=s instanceof RegExp?s.source:r(s)),e=e.toLowerCase();var a=new o(e,t,n,c);this.routes.has(s)||this.routes.set(s,new Map);var u=this.routes.get(s);u.has(e)||u.set(e,new Map);var f=u.get(e),h=a.regexp||a.fullUrlRegExp;f.has(h.source)&&i.debug('"'+t+'" resolves to same regex as existing route.'),f.set(h.source,a)},s.prototype.matchMethod=function(e,t){var n=new URL(t),r=n.origin,o=n.pathname;return this._match(e,c(this.routes,r),o)||this._match(e,[this.routes.get(RegExp)],t)},s.prototype._match=function(e,t,n){if(0===t.length)return null;for(var r=0;r0)return s[0].makeHandler(n)}}return null},s.prototype.match=function(e){return this.matchMethod(e.method,e.url)||this.matchMethod("any",e.url)},t.exports=new s},{"./helpers":1,"./route":5}],7:[function(e,t,n){"use strict";function r(e,t,n){return o.debug("Strategy: cache first ["+e.url+"]",n),o.openCache(n).then(function(t){return t.match(e).then(function(t){return t?t:o.fetchAndCache(e,n)})})}var o=e("../helpers");t.exports=r},{"../helpers":1}],8:[function(e,t,n){"use strict";function r(e,t,n){return o.debug("Strategy: cache only ["+e.url+"]",n),o.openCache(n).then(function(t){return t.match(e)})}var o=e("../helpers");t.exports=r},{"../helpers":1}],9:[function(e,t,n){"use strict";function r(e,t,n){return o.debug("Strategy: fastest ["+e.url+"]",n),new Promise(function(r,c){var s=!1,a=[],u=function(e){a.push(e.toString()),s?c(new Error('Both cache and network failed: "'+a.join('", "')+'"')):s=!0},f=function(e){e instanceof Response?r(e):u("No result returned")};o.fetchAndCache(e.clone(),n).then(f,u),i(e,t,n).then(f,u)})}var o=e("../helpers"),i=e("./cacheOnly");t.exports=r},{"../helpers":1,"./cacheOnly":8}],10:[function(e,t,n){t.exports={networkOnly:e("./networkOnly"),networkFirst:e("./networkFirst"),cacheOnly:e("./cacheOnly"),cacheFirst:e("./cacheFirst"),fastest:e("./fastest")}},{"./cacheFirst":7,"./cacheOnly":8,"./fastest":9,"./networkFirst":11,"./networkOnly":12}],11:[function(e,t,n){"use strict";function r(e,t,n){n=n||{};var r=n.successResponses||o.successResponses,c=n.networkTimeoutSeconds||o.networkTimeoutSeconds;return i.debug("Strategy: network first ["+e.url+"]",n),i.openCache(n).then(function(t){var o,s,a=[];if(c){var u=new Promise(function(n){o=setTimeout(function(){t.match(e).then(function(e){e&&n(e)})},1e3*c)});a.push(u)}var f=i.fetchAndCache(e,n).then(function(e){if(o&&clearTimeout(o),r.test(e.status))return e;throw i.debug("Response was an HTTP error: "+e.statusText,n),s=e,new Error("Bad response")}).catch(function(r){return i.debug("Network or response error, fallback to cache ["+e.url+"]",n),t.match(e).then(function(e){if(e)return e;if(s)return s;throw r})});return a.push(f),Promise.race(a)})}var o=e("../options"),i=e("../helpers");t.exports=r},{"../helpers":1,"../options":4}],12:[function(e,t,n){"use strict";function r(e,t,n){return o.debug("Strategy: network only ["+e.url+"]",n),fetch(e)}var o=e("../helpers");t.exports=r},{"../helpers":1}],13:[function(e,t,n){"use strict";var r=e("./options"),o=e("./router"),i=e("./helpers"),c=e("./strategies"),s=e("./listeners");i.debug("Service Worker Toolbox is loading"),self.addEventListener("install",s.installListener),self.addEventListener("activate",s.activateListener),self.addEventListener("fetch",s.fetchListener),t.exports={networkOnly:c.networkOnly,networkFirst:c.networkFirst,cacheOnly:c.cacheOnly,cacheFirst:c.cacheFirst,fastest:c.fastest,router:o,options:r,cache:i.cache,uncache:i.uncache,precache:i.precache}},{"./helpers":1,"./listeners":3,"./options":4,"./router":6,"./strategies":10}],14:[function(e,t,n){t.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},{}],15:[function(e,t,n){function r(e){for(var t,n=[],r=0,o=0,i="";null!=(t=x.exec(e));){var c=t[0],s=t[1],a=t.index;if(i+=e.slice(o,a),o=a+c.length,s)i+=s[1];else{var f=e[o],h=t[2],p=t[3],l=t[4],d=t[5],g=t[6],m=t[7];i&&(n.push(i),i="");var v=null!=h&&null!=f&&f!==h,w="+"===g||"*"===g,y="?"===g||"*"===g,b=t[2]||"/",E=l||d||(m?".*":"[^"+b+"]+?");n.push({name:p||r++,prefix:h||"",delimiter:b,optional:y,repeat:w,partial:v,asterisk:!!m,pattern:u(E)})}}return o=46||"Chrome"===n&&r>=50)||(Cache.prototype.addAll=function(e){function t(e){this.name="NetworkError",this.code=19,this.message=e}var n=this;return t.prototype=Object.create(Error.prototype),Promise.resolve().then(function(){if(arguments.length<1)throw new TypeError;return e=e.map(function(e){return e instanceof Request?e:String(e)}),Promise.all(e.map(function(e){"string"==typeof e&&(e=new Request(e));var n=new URL(e.url).protocol;if("http:"!==n&&"https:"!==n)throw new t("Invalid scheme");return fetch(e.clone())}))}).then(function(r){if(r.some(function(e){return!e.ok}))throw new t("Incorrect response status");return Promise.all(r.map(function(t,r){return n.put(e[r],t)}))}).then(function(){})},Cache.prototype.add=function(e){return this.addAll([e])})}()},{}]},{},[13])(13)}); 16 | //# sourceMappingURL=sw-toolbox.js.map 17 | -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Ionic App 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /docs/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "NiceFish-ionic", 3 | "short_name": "NiceFish", 4 | "start_url": "/NiceFish-ionic/index.html", 5 | "display": "standalone", 6 | "icons": [ 7 | { 8 | "src": "/NiceFish-ionic/assets/icons/logo.png", 9 | "sizes": "512x512", 10 | "type": "image/png" 11 | }, 12 | { 13 | "src": "/NiceFish-ionic/assets/icons/android-icon-36x36.png", 14 | "sizes": "36x36", 15 | "type": "image/png", 16 | "density": "0.75" 17 | }, 18 | { 19 | "src": "/NiceFish-ionic/assets/icons/android-icon-48x48.png", 20 | "sizes": "48x48", 21 | "type": "image/png", 22 | "density": "1.0" 23 | }, 24 | { 25 | "src": "/NiceFish-ionic/assets/icons/android-icon-72x72.png", 26 | "sizes": "72x72", 27 | "type": "image/png", 28 | "density": "1.5" 29 | }, 30 | { 31 | "src": "/NiceFish-ionic/assets/icons/android-icon-96x96.png", 32 | "sizes": "96x96", 33 | "type": "image/png", 34 | "density": "2.0" 35 | }, 36 | { 37 | "src": "/NiceFish-ionic/assets/icons/android-icon-144x144.png", 38 | "sizes": "144x144", 39 | "type": "image/png", 40 | "density": "3.0" 41 | }, 42 | { 43 | "src": "/NiceFish-ionic/assets/icons/android-icon-192x192.png", 44 | "sizes": "192x192", 45 | "type": "image/png", 46 | "density": "4.0" 47 | } 48 | ], 49 | "background_color": "#4e8ef7", 50 | "theme_color": "#4e8ef7" 51 | } 52 | -------------------------------------------------------------------------------- /docs/service-worker.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Check out https://googlechrome.github.io/sw-toolbox/docs/master/index.html for 3 | * more info on how to use sw-toolbox to custom configure your service worker. 4 | */ 5 | 6 | 7 | 'use strict'; 8 | importScripts('./build/sw-toolbox.js'); 9 | 10 | self.toolbox.options.cache = { 11 | name: 'ionic-cache' 12 | }; 13 | 14 | // pre-cache our key assets 15 | self.toolbox.precache( 16 | [ 17 | './build/main.js', 18 | './build/main.css', 19 | './build/polyfills.js', 20 | 'index.html', 21 | 'manifest.json' 22 | ] 23 | ); 24 | 25 | // dynamically cache any other local assets 26 | self.toolbox.router.any('/*', self.toolbox.cacheFirst); 27 | 28 | // for any other requests go to the network, cache, 29 | // and then only use that cached resource if your user goes offline 30 | self.toolbox.router.default = self.toolbox.networkFirst; -------------------------------------------------------------------------------- /ionic.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "myApp", 3 | "app_id": "", 4 | "integrations": {}, 5 | "type": "ionic-angular" 6 | } 7 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ionic-hello-world", 3 | "author": "Ionic Framework", 4 | "homepage": "http://ionicframework.com/", 5 | "private": true, 6 | "scripts": { 7 | "clean": "ionic-app-scripts clean", 8 | "build": "ionic-app-scripts build", 9 | "ionic:build": "ionic-app-scripts build", 10 | "ionic:serve": "ionic-app-scripts serve" 11 | }, 12 | "dependencies": { 13 | "@angular/common": "5.0.0", 14 | "@angular/compiler": "5.0.0", 15 | "@angular/compiler-cli": "5.0.0", 16 | "@angular/core": "5.0.0", 17 | "@angular/forms": "5.0.0", 18 | "@angular/http": "5.0.0", 19 | "@angular/platform-browser": "5.0.0", 20 | "@angular/platform-browser-dynamic": "5.0.0", 21 | "@ionic-native/core": "4.3.2", 22 | "@ionic-native/splash-screen": "4.3.2", 23 | "@ionic-native/status-bar": "4.3.2", 24 | "@ionic/storage": "2.1.3", 25 | "ionic-angular": "3.9.2", 26 | "ionicons": "3.0.0", 27 | "rxjs": "5.5.2", 28 | "sw-toolbox": "3.6.0", 29 | "zone.js": "0.8.18" 30 | }, 31 | "devDependencies": { 32 | "@ionic/app-scripts": "3.1.0", 33 | "typescript": "2.4.2" 34 | }, 35 | "cordovaPlugins": [ 36 | "cordova-plugin-whitelist", 37 | "cordova-plugin-console", 38 | "cordova-plugin-statusbar", 39 | "cordova-plugin-device", 40 | "cordova-plugin-splashscreen", 41 | "ionic-plugin-keyboard" 42 | ], 43 | "cordovaPlatforms": [], 44 | "description": "myApp: An Ionic project" 45 | } 46 | -------------------------------------------------------------------------------- /resources/android/icon/drawable-hdpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/android/icon/drawable-hdpi-icon.png -------------------------------------------------------------------------------- /resources/android/icon/drawable-ldpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/android/icon/drawable-ldpi-icon.png -------------------------------------------------------------------------------- /resources/android/icon/drawable-mdpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/android/icon/drawable-mdpi-icon.png -------------------------------------------------------------------------------- /resources/android/icon/drawable-xhdpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/android/icon/drawable-xhdpi-icon.png -------------------------------------------------------------------------------- /resources/android/icon/drawable-xxhdpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/android/icon/drawable-xxhdpi-icon.png -------------------------------------------------------------------------------- /resources/android/icon/drawable-xxxhdpi-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/android/icon/drawable-xxxhdpi-icon.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-land-hdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/android/splash/drawable-land-hdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-land-ldpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/android/splash/drawable-land-ldpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-land-mdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/android/splash/drawable-land-mdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-land-xhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/android/splash/drawable-land-xhdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-land-xxhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/android/splash/drawable-land-xxhdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-land-xxxhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/android/splash/drawable-land-xxxhdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-port-hdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/android/splash/drawable-port-hdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-port-ldpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/android/splash/drawable-port-ldpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-port-mdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/android/splash/drawable-port-mdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-port-xhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/android/splash/drawable-port-xhdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-port-xxhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/android/splash/drawable-port-xxhdpi-screen.png -------------------------------------------------------------------------------- /resources/android/splash/drawable-port-xxxhdpi-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/android/splash/drawable-port-xxxhdpi-screen.png -------------------------------------------------------------------------------- /resources/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/icon.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/ios/icon/icon-40.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/ios/icon/icon-40@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/ios/icon/icon-40@3x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/ios/icon/icon-50.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-50@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/ios/icon/icon-50@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/ios/icon/icon-60.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/ios/icon/icon-60@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/ios/icon/icon-60@3x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/ios/icon/icon-72.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-72@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/ios/icon/icon-72@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/ios/icon/icon-76.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/ios/icon/icon-76@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/ios/icon/icon-83.5@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/ios/icon/icon-small.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/ios/icon/icon-small@2x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon-small@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/ios/icon/icon-small@3x.png -------------------------------------------------------------------------------- /resources/ios/icon/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/ios/icon/icon.png -------------------------------------------------------------------------------- /resources/ios/icon/icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/ios/icon/icon@2x.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-568h@2x~iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/ios/splash/Default-568h@2x~iphone.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-667h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/ios/splash/Default-667h.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-736h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/ios/splash/Default-736h.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Landscape-736h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/ios/splash/Default-Landscape-736h.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Landscape@2x~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/ios/splash/Default-Landscape@2x~ipad.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Landscape~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/ios/splash/Default-Landscape~ipad.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Portrait@2x~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/ios/splash/Default-Portrait@2x~ipad.png -------------------------------------------------------------------------------- /resources/ios/splash/Default-Portrait~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/ios/splash/Default-Portrait~ipad.png -------------------------------------------------------------------------------- /resources/ios/splash/Default@2x~iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/ios/splash/Default@2x~iphone.png -------------------------------------------------------------------------------- /resources/ios/splash/Default~iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/ios/splash/Default~iphone.png -------------------------------------------------------------------------------- /resources/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/resources/splash.png -------------------------------------------------------------------------------- /src/app/app.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | import { MsgList } from '../pages/msg-list/msg-list'; 4 | import { Contacts } from '../pages/contacts/contacts'; 5 | import { Discover } from '../pages/discover/discover'; 6 | import { AboutMe } from '../pages/about-me/about-me'; 7 | 8 | @Component({ 9 | templateUrl: 'app.html' 10 | }) 11 | export class WeChatApp { 12 | //底部的4个主Tab 13 | msgList: any = MsgList; 14 | contacts: any = Contacts; 15 | discover: any = Discover; 16 | aboutMe: any = AboutMe; 17 | 18 | constructor() { 19 | } 20 | 21 | openPage(page) { 22 | // Reset the content nav to have just this page 23 | // we wouldn't want the back button to show in this scenario 24 | // this.nav.setRoot(page.component); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/app/app.html: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/app/app.module.ts: -------------------------------------------------------------------------------- 1 | import { BrowserModule } from '@angular/platform-browser'; 2 | import { ErrorHandler, NgModule } from '@angular/core'; 3 | import { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular'; 4 | 5 | import { WeChatApp } from './app.component'; 6 | import { MsgList } from '../pages/msg-list/msg-list'; 7 | import { Contacts } from '../pages/contacts/contacts'; 8 | import { Discover } from '../pages/discover/discover'; 9 | import { AboutMe } from '../pages/about-me/about-me'; 10 | import { PopoverPage } from '../pages/msg-list/popover-page'; 11 | 12 | @NgModule({ 13 | declarations: [ 14 | WeChatApp, 15 | MsgList, 16 | Contacts, 17 | Discover, 18 | AboutMe, 19 | PopoverPage 20 | ], 21 | imports: [ 22 | BrowserModule, 23 | IonicModule.forRoot(WeChatApp), 24 | ], 25 | bootstrap: [IonicApp], 26 | entryComponents: [ 27 | WeChatApp, 28 | MsgList, 29 | Contacts, 30 | Discover, 31 | AboutMe, 32 | PopoverPage 33 | ], 34 | providers: [ 35 | {provide: ErrorHandler, useClass: IonicErrorHandler} 36 | ] 37 | }) 38 | export class AppModule {} 39 | -------------------------------------------------------------------------------- /src/app/app.scss: -------------------------------------------------------------------------------- 1 | // http://ionicframework.com/docs/v2/theming/ 2 | 3 | 4 | // App Global Sass 5 | // -------------------------------------------------- 6 | // Put style rules here that you want to apply globally. These 7 | // styles are for the entire app and not just one component. 8 | // Additionally, this file can be also used as an entry point 9 | // to import other Sass files to be included in the output CSS. 10 | // 11 | // Shared Sass variables, which can be used to adjust Ionic's 12 | // default Sass variables, belong in "theme/variables.scss". 13 | // 14 | // To declare rules for a specific mode, create a child rule 15 | // for the .md, .ios, or .wp mode classes. The mode class is 16 | // automatically applied to the element in the app. 17 | -------------------------------------------------------------------------------- /src/app/main.ts: -------------------------------------------------------------------------------- 1 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 2 | 3 | import { AppModule } from './app.module'; 4 | 5 | platformBrowserDynamic().bootstrapModule(AppModule); 6 | -------------------------------------------------------------------------------- /src/assets/icon/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/icon/logo.png -------------------------------------------------------------------------------- /src/assets/icons/android-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/icons/android-icon-144x144.png -------------------------------------------------------------------------------- /src/assets/icons/android-icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/icons/android-icon-192x192.png -------------------------------------------------------------------------------- /src/assets/icons/android-icon-36x36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/icons/android-icon-36x36.png -------------------------------------------------------------------------------- /src/assets/icons/android-icon-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/icons/android-icon-48x48.png -------------------------------------------------------------------------------- /src/assets/icons/android-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/icons/android-icon-72x72.png -------------------------------------------------------------------------------- /src/assets/icons/android-icon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/icons/android-icon-96x96.png -------------------------------------------------------------------------------- /src/assets/icons/apple-icon-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/icons/apple-icon-114x114.png -------------------------------------------------------------------------------- /src/assets/icons/apple-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/icons/apple-icon-120x120.png -------------------------------------------------------------------------------- /src/assets/icons/apple-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/icons/apple-icon-144x144.png -------------------------------------------------------------------------------- /src/assets/icons/apple-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/icons/apple-icon-152x152.png -------------------------------------------------------------------------------- /src/assets/icons/apple-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/icons/apple-icon-180x180.png -------------------------------------------------------------------------------- /src/assets/icons/apple-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/icons/apple-icon-57x57.png -------------------------------------------------------------------------------- /src/assets/icons/apple-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/icons/apple-icon-60x60.png -------------------------------------------------------------------------------- /src/assets/icons/apple-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/icons/apple-icon-72x72.png -------------------------------------------------------------------------------- /src/assets/icons/apple-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/icons/apple-icon-76x76.png -------------------------------------------------------------------------------- /src/assets/icons/apple-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/icons/apple-icon-precomposed.png -------------------------------------------------------------------------------- /src/assets/icons/apple-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/icons/apple-icon.png -------------------------------------------------------------------------------- /src/assets/icons/browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | #ffffff -------------------------------------------------------------------------------- /src/assets/icons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/icons/favicon-16x16.png -------------------------------------------------------------------------------- /src/assets/icons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/icons/favicon-32x32.png -------------------------------------------------------------------------------- /src/assets/icons/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/icons/favicon-96x96.png -------------------------------------------------------------------------------- /src/assets/icons/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/icons/favicon.ico -------------------------------------------------------------------------------- /src/assets/icons/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/icons/logo.png -------------------------------------------------------------------------------- /src/assets/icons/ms-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/icons/ms-icon-144x144.png -------------------------------------------------------------------------------- /src/assets/icons/ms-icon-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/icons/ms-icon-150x150.png -------------------------------------------------------------------------------- /src/assets/icons/ms-icon-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/icons/ms-icon-310x310.png -------------------------------------------------------------------------------- /src/assets/icons/ms-icon-70x70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/icons/ms-icon-70x70.png -------------------------------------------------------------------------------- /src/assets/img/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/img/1.jpg -------------------------------------------------------------------------------- /src/assets/img/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/img/1.png -------------------------------------------------------------------------------- /src/assets/img/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/img/2.png -------------------------------------------------------------------------------- /src/assets/img/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/img/3.jpg -------------------------------------------------------------------------------- /src/assets/img/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/img/4.jpg -------------------------------------------------------------------------------- /src/assets/img/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/img/5.png -------------------------------------------------------------------------------- /src/assets/img/avatar-ts-buzz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/img/avatar-ts-buzz.png -------------------------------------------------------------------------------- /src/assets/img/avatar-ts-jessie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/img/avatar-ts-jessie.png -------------------------------------------------------------------------------- /src/assets/img/avatar-ts-potatohead.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/img/avatar-ts-potatohead.png -------------------------------------------------------------------------------- /src/assets/img/avatar-ts-woody.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/img/avatar-ts-woody.png -------------------------------------------------------------------------------- /src/assets/img/dist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/img/dist.png -------------------------------------------------------------------------------- /src/assets/img/ng2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/img/ng2.png -------------------------------------------------------------------------------- /src/assets/img/wechat/icon-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/img/wechat/icon-1.png -------------------------------------------------------------------------------- /src/assets/img/wechat/icon-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/img/wechat/icon-10.png -------------------------------------------------------------------------------- /src/assets/img/wechat/icon-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/img/wechat/icon-11.png -------------------------------------------------------------------------------- /src/assets/img/wechat/icon-12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/img/wechat/icon-12.png -------------------------------------------------------------------------------- /src/assets/img/wechat/icon-13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/img/wechat/icon-13.png -------------------------------------------------------------------------------- /src/assets/img/wechat/icon-14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/img/wechat/icon-14.png -------------------------------------------------------------------------------- /src/assets/img/wechat/icon-15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/img/wechat/icon-15.png -------------------------------------------------------------------------------- /src/assets/img/wechat/icon-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/img/wechat/icon-16.png -------------------------------------------------------------------------------- /src/assets/img/wechat/icon-17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/img/wechat/icon-17.png -------------------------------------------------------------------------------- /src/assets/img/wechat/icon-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/img/wechat/icon-2.png -------------------------------------------------------------------------------- /src/assets/img/wechat/icon-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/img/wechat/icon-3.png -------------------------------------------------------------------------------- /src/assets/img/wechat/icon-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/img/wechat/icon-4.png -------------------------------------------------------------------------------- /src/assets/img/wechat/icon-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/img/wechat/icon-5.png -------------------------------------------------------------------------------- /src/assets/img/wechat/icon-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/img/wechat/icon-6.png -------------------------------------------------------------------------------- /src/assets/img/wechat/icon-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/img/wechat/icon-7.png -------------------------------------------------------------------------------- /src/assets/img/wechat/icon-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/img/wechat/icon-8.png -------------------------------------------------------------------------------- /src/assets/img/wechat/icon-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/damoqiongqiu/NiceFish-ionic/ebd0133df301f92156a0aa1b99ac91b5b2604136/src/assets/img/wechat/icon-9.png -------------------------------------------------------------------------------- /src/declarations.d.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Declaration files are how the Typescript compiler knows about the type information(or shape) of an object. 3 | They're what make intellisense work and make Typescript know all about your code. 4 | 5 | A wildcard module is declared below to allow third party libraries to be used in an app even if they don't 6 | provide their own type declarations. 7 | 8 | To learn more about using third party libraries in an Ionic app, check out the docs here: 9 | http://ionicframework.com/docs/v2/resources/third-party-libs/ 10 | 11 | For more info on type definition files, check out the Typescript docs here: 12 | https://www.typescriptlang.org/docs/handbook/declaration-files/introduction.html 13 | */ 14 | declare module '*'; -------------------------------------------------------------------------------- /src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Ionic App 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /src/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "NiceFish-ionic", 3 | "short_name": "NiceFish", 4 | "start_url": "/NiceFish-ionic/index.html", 5 | "display": "standalone", 6 | "icons": [ 7 | { 8 | "src": "/NiceFish-ionic/assets/icons/logo.png", 9 | "sizes": "512x512", 10 | "type": "image/png" 11 | }, 12 | { 13 | "src": "/NiceFish-ionic/assets/icons/android-icon-36x36.png", 14 | "sizes": "36x36", 15 | "type": "image/png", 16 | "density": "0.75" 17 | }, 18 | { 19 | "src": "/NiceFish-ionic/assets/icons/android-icon-48x48.png", 20 | "sizes": "48x48", 21 | "type": "image/png", 22 | "density": "1.0" 23 | }, 24 | { 25 | "src": "/NiceFish-ionic/assets/icons/android-icon-72x72.png", 26 | "sizes": "72x72", 27 | "type": "image/png", 28 | "density": "1.5" 29 | }, 30 | { 31 | "src": "/NiceFish-ionic/assets/icons/android-icon-96x96.png", 32 | "sizes": "96x96", 33 | "type": "image/png", 34 | "density": "2.0" 35 | }, 36 | { 37 | "src": "/NiceFish-ionic/assets/icons/android-icon-144x144.png", 38 | "sizes": "144x144", 39 | "type": "image/png", 40 | "density": "3.0" 41 | }, 42 | { 43 | "src": "/NiceFish-ionic/assets/icons/android-icon-192x192.png", 44 | "sizes": "192x192", 45 | "type": "image/png", 46 | "density": "4.0" 47 | } 48 | ], 49 | "background_color": "#4e8ef7", 50 | "theme_color": "#4e8ef7" 51 | } 52 | -------------------------------------------------------------------------------- /src/pages/about-me/about-me.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |

大漠穷秋

17 |

微信号:scriptbaby

18 | 19 | 20 |
21 |
22 | 23 | 24 | 28 | 29 | 30 | 31 | 35 | 39 | 43 | 47 | 48 | 49 | 50 | 54 | 55 |
56 | -------------------------------------------------------------------------------- /src/pages/about-me/about-me.scss: -------------------------------------------------------------------------------- 1 | .list-about-me-page { 2 | ion-thumbnail{ 3 | min-width: 50px; 4 | min-height: 50px; 5 | 6 | >img{ 7 | width: 50px; 8 | height: 50px; 9 | border-radius: 5px; 10 | } 11 | } 12 | 13 | ion-label{ 14 | h2{ 15 | font-size: 1.5rem; 16 | } 17 | 18 | p{ 19 | color: #000; 20 | } 21 | } 22 | 23 | ion-item.header-item { 24 | img.qrcode{ 25 | width: 20px; 26 | height: 20px; 27 | } 28 | 29 | ion-icon{ 30 | min-height: 0; 31 | } 32 | } 33 | 34 | .item-block{ 35 | min-height: 3.2rem; 36 | 37 | &:nth-child(2){ 38 | border-top: .5px solid #E5E5E5; 39 | } 40 | 41 | &:last-child{ 42 | border-bottom: .5px solid #E5E5E5; 43 | } 44 | } 45 | button.item-block{ 46 | ion-label{ 47 | font-size: 1.5rem; 48 | margin: 2px 8px 2px 0; 49 | display: flex; 50 | flex-flow: row nowrap; 51 | justify-content: flex-start; 52 | align-items: center; 53 | 54 | img{ 55 | width: 23px; 56 | height: 23px; 57 | margin-right: 15px; 58 | } 59 | 60 | } 61 | 62 | .item-inner{ 63 | border-bottom-color: #E5E5E5; 64 | } 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /src/pages/about-me/about-me.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'about-me', 5 | templateUrl: 'about-me.html' 6 | }) 7 | export class AboutMe { 8 | constructor() { 9 | 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/pages/contacts/contacts.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 通讯录 4 | 5 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | A 15 | 16 | 17 | 18 | 19 |

Aaron

20 |
21 | 22 | 23 | 24 | 25 |

Arbby

26 |
27 | 28 | 29 | 30 | 31 |

Allen

32 |
33 | 34 | 35 | 36 | 37 |

Abel

38 |
39 | B 40 | 41 | 42 | 43 | 44 |

Baby

45 |
46 | 47 | 48 | 49 | 50 |

Baby

51 |
52 | 53 | 54 | 55 | 56 |

Baby

57 |
58 | 59 | 60 | 61 | 62 |

Baby

63 |
64 |
65 |
66 | -------------------------------------------------------------------------------- /src/pages/contacts/contacts.scss: -------------------------------------------------------------------------------- 1 | .list-contacts-page { 2 | ion-list-header{ 3 | border: none; 4 | min-height: .8rem; 5 | background: #F1F1F1; 6 | 7 | ion-label{ 8 | margin: 5px 8px 5px 0; 9 | color: #888; 10 | } 11 | } 12 | 13 | ion-item{ 14 | margin-left: 16px; 15 | padding-left: 0; 16 | border-bottom: 0.55px solid #E5E5E5; 17 | 18 | h2{ 19 | font-size: 1.5rem; 20 | } 21 | 22 | ion-avatar img{ 23 | width: 35px; 24 | height: 35px; 25 | border-radius: 0; 26 | } 27 | 28 | ion-avatar[item-left]{ 29 | margin: 2px 16px 2px 0; 30 | min-width: 35px; 31 | min-height: 35px; 32 | } 33 | } 34 | 35 | .item-block{ 36 | min-height: 4rem; 37 | 38 | &:first-child{ 39 | border-top: 0.55px solid #E5E5E5; 40 | } 41 | 42 | &:last-child{ 43 | border-bottom: 0.55px solid #E5E5E5; 44 | } 45 | 46 | >.item-inner{ 47 | border: none 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/pages/contacts/contacts.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'contacts', 5 | templateUrl: 'contacts.html' 6 | }) 7 | export class Contacts { 8 | constructor() { 9 | 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/pages/discover/discover.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 发现 7 | 8 | 9 | 10 | 11 | 12 | 16 | 17 | 18 | 19 | 23 | 27 | 28 | 29 | 30 | 34 | 38 | 39 | 40 | 41 | 45 | 49 | 50 | 51 | 52 | 56 | 60 | 61 | 62 | 63 | 67 | 68 | 69 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /src/pages/discover/discover.scss: -------------------------------------------------------------------------------- 1 | .list-discover-page{ 2 | ion-item-divider{ 3 | height: 20px; 4 | min-height: 20px; 5 | } 6 | 7 | .item-block{ 8 | min-height: 3.2rem; 9 | 10 | &:nth-child(2){ 11 | border-top: .5px solid #E5E5E5; 12 | } 13 | 14 | &:last-child{ 15 | border-bottom: .5px solid #E5E5E5; 16 | } 17 | 18 | ion-label{ 19 | font-size: 1.5rem; 20 | margin: 2px 8px 2px 0; 21 | display: flex; 22 | flex-flow: row nowrap; 23 | justify-content: flex-start; 24 | align-items: center; 25 | 26 | img{ 27 | width: 23px; 28 | height: 23px; 29 | margin-right: 15px; 30 | } 31 | } 32 | 33 | .item-inner{ 34 | border-bottom-color: #E5E5E5; 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /src/pages/discover/discover.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'discover', 5 | templateUrl: 'discover.html' 6 | }) 7 | export class Discover { 8 | constructor() { 9 | 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/pages/msg-list/msg-list.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 微信 4 | 5 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |

大漠穷秋

19 |

男孩公交车上遭过肩摔跟头 施暴者被拘

20 | 3:43 pm 21 |
22 | 23 | 24 | 25 | 26 |

Buzz Lightyear

27 |

My eyeballs could have been sucked from their sockets!

28 | 1:12 pm 29 |
30 | 31 | 32 | 33 | 34 |

Jessie

35 |

Well aren't you just the sweetest space toy I ever did meet!

36 | 10:03 am 37 |
38 | 39 | 40 | 41 | 42 |

Mr. Potato Head

43 |

You're not turning me into a Mashed Potato.

44 | 5:47 am 45 |
46 | 47 | 48 | 49 | 50 |

Woody

51 |

This town ain't big enough for the two of us!

52 | 3:43 pm 53 |
54 | 55 | 56 | 57 | 58 |

Buzz Lightyear

59 |

My eyeballs could have been sucked from their sockets!

60 | 1:12 pm 61 |
62 | 63 | 64 | 65 | 66 |

Jessie

67 |

Well aren't you just the sweetest space toy I ever did meet!

68 | 10:03 am 69 |
70 | 71 | 72 | 73 | 74 |

Mr. Potato Head

75 |

You're not turning me into a Mashed Potato.

76 | 5:47 am 77 |
78 | 79 | 80 | 81 | 82 |

Woody

83 |

This town ain't big enough for the two of us!

84 | 3:43 pm 85 |
86 | 87 | 88 | 89 | 90 |

Buzz Lightyear

91 |

My eyeballs could have been sucked from their sockets!

92 | 1:12 pm 93 |
94 | 95 | 96 | 97 | 98 |

Jessie

99 |

Well aren't you just the sweetest space toy I ever did meet!

100 | 10:03 am 101 |
102 | 103 | 104 | 105 | 106 |

Mr. Potato Head

107 |

You're not turning me into a Mashed Potato.

108 | 5:47 am 109 |
110 |
111 |
112 | -------------------------------------------------------------------------------- /src/pages/msg-list/msg-list.scss: -------------------------------------------------------------------------------- 1 | .list-avatar-page { 2 | ion-list{ 3 | margin-bottom: 0; 4 | } 5 | 6 | ion-note { 7 | font-size: 12px; 8 | align-self: flex-start; 9 | margin-top: 14px; 10 | } 11 | 12 | ion-item{ 13 | border-bottom: 0.55px solid #E5E5E5; 14 | 15 | h2{ 16 | font-size: 1.5rem; 17 | } 18 | } 19 | 20 | .item-block{ 21 | &:first-child{ 22 | border-top: 0.55px solid #E5E5E5; 23 | } 24 | 25 | &:last-child{ 26 | border-bottom: 0.55px solid #E5E5E5; 27 | } 28 | 29 | >.item-inner{ 30 | border: none 31 | } 32 | } 33 | 34 | ion-avatar img{ 35 | border-radius: 5px; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/pages/msg-list/msg-list.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'msg-list', 5 | templateUrl: 'msg-list.html' 6 | }) 7 | export class MsgList { 8 | constructor() { 9 | 10 | } 11 | 12 | // presentPopover(ev) { 13 | // let popover = this.popoverCtrl.create(PopoverPage); 14 | // popover.present({ 15 | // ev: ev 16 | // }); 17 | // } 18 | } -------------------------------------------------------------------------------- /src/pages/msg-list/popover-page.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 发起群聊 6 | 7 | 8 | 9 | 10 | 11 | 添加朋友 12 | 13 | 14 | 15 | 16 | 17 | 扫一扫 18 | 19 | 20 | 21 | 22 | 23 | 收付款 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/pages/msg-list/popover-page.scss: -------------------------------------------------------------------------------- 1 | $backgroundColor: #4D4D4D; 2 | ion-popover{ 3 | .popover-arrow::after{ 4 | background-color: $backgroundColor !important; 5 | } 6 | .popover-content{ 7 | width: 138px !important; 8 | border-radius: 1px !important; 9 | background-color: $backgroundColor !important; 10 | } 11 | } 12 | 13 | .popover-list{ 14 | margin: 0; 15 | 16 | ion-item{ 17 | background: $backgroundColor; 18 | padding-right: 16px; 19 | min-height: 3rem; 20 | 21 | .item-block:last-child{ 22 | border: none; 23 | } 24 | 25 | ion-label{ 26 | margin: 5px 8px 5px 0; 27 | font-size: 1.5rem; 28 | 29 | ion-icon{ 30 | width: 15px; 31 | } 32 | ion-note{ 33 | margin-left: 10px; 34 | } 35 | } 36 | } 37 | } -------------------------------------------------------------------------------- /src/pages/msg-list/popover-page.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | 3 | @Component({ 4 | templateUrl: 'popover-page.html' 5 | }) 6 | export class PopoverPage { 7 | background: string; 8 | contentEle: any; 9 | textEle: any; 10 | fontFamily; 11 | 12 | colors = { 13 | 'white': { 14 | 'bg': 'rgb(255, 255, 255)', 15 | 'fg': 'rgb(0, 0, 0)' 16 | }, 17 | 'tan': { 18 | 'bg': 'rgb(249, 241, 228)', 19 | 'fg': 'rgb(0, 0, 0)' 20 | }, 21 | 'grey': { 22 | 'bg': 'rgb(76, 75, 80)', 23 | 'fg': 'rgb(255, 255, 255)' 24 | }, 25 | 'black': { 26 | 'bg': 'rgb(0, 0, 0)', 27 | 'fg': 'rgb(255, 255, 255)' 28 | }, 29 | }; 30 | 31 | constructor() { 32 | 33 | } 34 | 35 | ngOnInit() { 36 | 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /src/service-worker.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Check out https://googlechrome.github.io/sw-toolbox/docs/master/index.html for 3 | * more info on how to use sw-toolbox to custom configure your service worker. 4 | */ 5 | 6 | 7 | 'use strict'; 8 | importScripts('./build/sw-toolbox.js'); 9 | 10 | self.toolbox.options.cache = { 11 | name: 'ionic-cache' 12 | }; 13 | 14 | // pre-cache our key assets 15 | self.toolbox.precache( 16 | [ 17 | './build/main.js', 18 | './build/main.css', 19 | './build/polyfills.js', 20 | 'index.html', 21 | 'manifest.json' 22 | ] 23 | ); 24 | 25 | // dynamically cache any other local assets 26 | self.toolbox.router.any('/*', self.toolbox.cacheFirst); 27 | 28 | // for any other requests go to the network, cache, 29 | // and then only use that cached resource if your user goes offline 30 | self.toolbox.router.default = self.toolbox.networkFirst; -------------------------------------------------------------------------------- /src/theme/variables.scss: -------------------------------------------------------------------------------- 1 | // Ionic Variables and Theming. For more info, please see: 2 | // http://ionicframework.com/docs/v2/theming/ 3 | $font-path: "../assets/fonts"; 4 | 5 | @import "ionic.globals"; 6 | 7 | 8 | // Shared Variables 9 | // -------------------------------------------------- 10 | // To customize the look and feel of this app, you can override 11 | // the Sass variables found in Ionic's source scss files. 12 | // To view all the possible Ionic variables, see: 13 | // http://ionicframework.com/docs/v2/theming/overriding-ionic-variables/ 14 | 15 | 16 | 17 | 18 | // Named Color Variables 19 | // -------------------------------------------------- 20 | // Named colors makes it easy to reuse colors on various components. 21 | // It's highly recommended to change the default colors 22 | // to match your app's branding. Ionic uses a Sass map of 23 | // colors so you can add, rename and remove colors as needed. 24 | // The "primary" color is the only required color in the map. 25 | 26 | $colors: ( 27 | primary: #1AAD19, 28 | secondary: #32db64, 29 | danger: #f53d3d, 30 | light: #f4f4f4, 31 | dark: #222, 32 | textGray: #999999 33 | ); 34 | 35 | $toolbar-background: #4D4D4D; 36 | $searchbar-ios-background-color: #F1F1F1; 37 | 38 | // App iOS Variables 39 | // -------------------------------------------------- 40 | // iOS only Sass variables can go here 41 | $searchbar-ios-input-height: 2.4rem; 42 | $item-ios-avatar-size: 40px; 43 | $item-ios-paragraph-font-size: 1.2rem; 44 | 45 | // App Material Design Variables 46 | // -------------------------------------------------- 47 | // Material Design only Sass variables can go here 48 | 49 | 50 | 51 | 52 | // App Windows Variables 53 | // -------------------------------------------------- 54 | // Windows only Sass variables can go here 55 | 56 | 57 | 58 | 59 | // App Theme 60 | // -------------------------------------------------- 61 | // Ionic apps can have different themes applied, which can 62 | // then be future customized. This import comes last 63 | // so that the above variables are used and Ionic's 64 | // default are overridden. 65 | 66 | @import "ionic.theme.default"; 67 | 68 | 69 | // Ionicons 70 | // -------------------------------------------------- 71 | // The premium icon font for Ionic. For more info, please see: 72 | // http://ionicframework.com/docs/v2/ionicons/ 73 | 74 | @import "ionic.ionicons"; 75 | 76 | 77 | // Fonts 78 | // -------------------------------------------------- 79 | 80 | @import "roboto"; 81 | @import "noto-sans"; -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "allowSyntheticDefaultImports": true, 4 | "declaration": false, 5 | "emitDecoratorMetadata": true, 6 | "experimentalDecorators": true, 7 | "lib": [ 8 | "dom", 9 | "es2015" 10 | ], 11 | "module": "es2015", 12 | "moduleResolution": "node", 13 | "sourceMap": true, 14 | "target": "es5" 15 | }, 16 | "include": [ 17 | "src/**/*.ts" 18 | ], 19 | "exclude": [ 20 | "node_modules" 21 | ], 22 | "compileOnSave": false, 23 | "atom": { 24 | "rewriteTsconfig": false 25 | } 26 | } -------------------------------------------------------------------------------- /tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "rules": { 3 | "no-duplicate-variable": true, 4 | "no-unused-variable": [ 5 | true 6 | ] 7 | }, 8 | "rulesDirectory": [ 9 | "node_modules/tslint-eslint-rules/dist/rules" 10 | ] 11 | } 12 | --------------------------------------------------------------------------------