[add] first
This commit is contained in:
		
							
								
								
									
										24
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
				
			|||||||
 | 
					# Logs
 | 
				
			||||||
 | 
					logs
 | 
				
			||||||
 | 
					*.log
 | 
				
			||||||
 | 
					npm-debug.log*
 | 
				
			||||||
 | 
					yarn-debug.log*
 | 
				
			||||||
 | 
					yarn-error.log*
 | 
				
			||||||
 | 
					pnpm-debug.log*
 | 
				
			||||||
 | 
					lerna-debug.log*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					node_modules
 | 
				
			||||||
 | 
					dist
 | 
				
			||||||
 | 
					dist-ssr
 | 
				
			||||||
 | 
					*.local
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Editor directories and files
 | 
				
			||||||
 | 
					.vscode/*
 | 
				
			||||||
 | 
					!.vscode/extensions.json
 | 
				
			||||||
 | 
					.idea
 | 
				
			||||||
 | 
					.DS_Store
 | 
				
			||||||
 | 
					*.suo
 | 
				
			||||||
 | 
					*.ntvs*
 | 
				
			||||||
 | 
					*.njsproj
 | 
				
			||||||
 | 
					*.sln
 | 
				
			||||||
 | 
					*.sw?
 | 
				
			||||||
							
								
								
									
										3
									
								
								.vscode/extensions.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.vscode/extensions.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "recommendations": ["johnsoncodehk.volar"]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										16
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					# Vue 3 + TypeScript + Vite
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Recommended IDE Setup
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- [VS Code](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=johnsoncodehk.volar)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Type Support For `.vue` Imports in TS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Since TypeScript cannot handle type information for `.vue` imports, they are shimmed to be a generic Vue component type by default. In most cases this is fine if you don't really care about component prop types outside of templates. However, if you wish to get actual prop types in `.vue` imports (for example to get props validation when using manual `h(...)` calls), you can enable Volar's Take Over mode by following these steps:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1. Run `Extensions: Show Built-in Extensions` from VS Code's command palette, look for `TypeScript and JavaScript Language Features`, then right click and select `Disable (Workspace)`. By default, Take Over mode will enable itself if the default TypeScript extension is disabled.
 | 
				
			||||||
 | 
					2. Reload the VS Code window by running `Developer: Reload Window` from the command palette.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You can learn more about Take Over mode [here](https://github.com/johnsoncodehk/volar/discussions/471).
 | 
				
			||||||
							
								
								
									
										94
									
								
								index.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										94
									
								
								index.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,94 @@
 | 
				
			|||||||
 | 
					<!DOCTYPE html>
 | 
				
			||||||
 | 
					<html lang="en">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<head>
 | 
				
			||||||
 | 
					    <meta charset="UTF-8" />
 | 
				
			||||||
 | 
					    <link rel="icon" href="/favicon.ico" />
 | 
				
			||||||
 | 
					    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
 | 
				
			||||||
 | 
					    <title>BJ Casino 測試</title>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!-- SmartAppBanner -->
 | 
				
			||||||
 | 
					    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
 | 
				
			||||||
 | 
					    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 | 
				
			||||||
 | 
					    <meta name="apple-mobile-web-app-capable" content="yes">
 | 
				
			||||||
 | 
					    <meta name="apple-mobile-web-app-status-bar-style" content="black" />
 | 
				
			||||||
 | 
					    <meta name="apple-itunes-app" content="app-id=1593328573">
 | 
				
			||||||
 | 
					    <meta name="google-play-app" content="app-id=org.vicking.bj_casino">
 | 
				
			||||||
 | 
					    <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | 
				
			||||||
 | 
					    <link rel="stylesheet" type="text/css" href="/banner/smart-app-banner.css">
 | 
				
			||||||
 | 
					    <link rel="apple-touch-icon" href="./src/assets/icon.png">
 | 
				
			||||||
 | 
					    <link rel="android-touch-icon" href="./src/assets/icon.png" />
 | 
				
			||||||
 | 
					    <link rel="windows-touch-icon" href="./src/assets/icon.png" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <style type="text/css">
 | 
				
			||||||
 | 
					        * {
 | 
				
			||||||
 | 
					            box-sizing: border-box;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    </style>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <script type="text/javascript" src="./banner/smart-app-banner.js"></script>
 | 
				
			||||||
 | 
					</head>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<body>
 | 
				
			||||||
 | 
					    <div id="app"></div>
 | 
				
			||||||
 | 
					    <script type="module" src="/src/main.ts"></script>
 | 
				
			||||||
 | 
					</body>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<!--没有应用下载应用-->
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					    var u = navigator.userAgent;
 | 
				
			||||||
 | 
					    var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1;
 | 
				
			||||||
 | 
					    var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
 | 
				
			||||||
 | 
					    (function () {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        OnLoad();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        function OnLoad() {
 | 
				
			||||||
 | 
					            _clearAllCookie();
 | 
				
			||||||
 | 
					            _addMeta();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        function _clearAllCookie() {
 | 
				
			||||||
 | 
					            document.cookie.split(";").forEach(function (c) { document.cookie = c.replace(/^ +/, "").replace(/=.*/, "=;expires=" + new Date().toUTCString() + ";path=/"); });
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        function _addMeta() {
 | 
				
			||||||
 | 
					            if (isiOS) {
 | 
				
			||||||
 | 
					                var headNode = document.getElementsByTagName("head")[0];
 | 
				
			||||||
 | 
					                var sbNode = document.createElement('meta');
 | 
				
			||||||
 | 
					                sbNode.name = 'apple-itunes-app';
 | 
				
			||||||
 | 
					                sbNode.content = 'app-id=1593328573';
 | 
				
			||||||
 | 
					                headNode.appendChild(sbNode);
 | 
				
			||||||
 | 
					                run('ios');
 | 
				
			||||||
 | 
					            } else if (isAndroid) {
 | 
				
			||||||
 | 
					                run('android');
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                run('android');
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        banner = undefined;
 | 
				
			||||||
 | 
					        function run(force) {
 | 
				
			||||||
 | 
					            var n = document.querySelector('.smartbanner');
 | 
				
			||||||
 | 
					            if (n) {
 | 
				
			||||||
 | 
					                n.parentNode.removeChild(n);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            new SmartBanner({
 | 
				
			||||||
 | 
					                title: '爆機娛樂城',
 | 
				
			||||||
 | 
					                author: 'Vic King Electronics Co., Ltd.',
 | 
				
			||||||
 | 
					                button: '下載',
 | 
				
			||||||
 | 
					                scale: 'auto',
 | 
				
			||||||
 | 
					                // url: './ToAppStore.html',
 | 
				
			||||||
 | 
					                force: force,
 | 
				
			||||||
 | 
					                daysHidden: 0,
 | 
				
			||||||
 | 
					                daysReminder: 0,
 | 
				
			||||||
 | 
					                layer: false,
 | 
				
			||||||
 | 
					                hideOnInstall: false,
 | 
				
			||||||
 | 
					                iOSUniversalApp: true,
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					    })()
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
							
								
								
									
										19282
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										19282
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										27
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					    "name": "bj-casino-deeplink",
 | 
				
			||||||
 | 
					    "private": true,
 | 
				
			||||||
 | 
					    "version": "0.0.0",
 | 
				
			||||||
 | 
					    "scripts": {
 | 
				
			||||||
 | 
					        "dev": "vite",
 | 
				
			||||||
 | 
					        "serve": "vue-cli-service serve",
 | 
				
			||||||
 | 
					        "build": "vite build",
 | 
				
			||||||
 | 
					        "build1": "vue-tsc --noEmit && vite build",
 | 
				
			||||||
 | 
					        "preview": "vite preview"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "dependencies": {
 | 
				
			||||||
 | 
					        "@vue/cli": "^5.0.4",
 | 
				
			||||||
 | 
					        "@vue/compiler-sfc": "^3.2.32",
 | 
				
			||||||
 | 
					        "bootstrap": "^5.1.3",
 | 
				
			||||||
 | 
					        "element-plus": "^2.1.9",
 | 
				
			||||||
 | 
					        "moment": "^2.29.2",
 | 
				
			||||||
 | 
					        "vue": "^3.2.25"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "devDependencies": {
 | 
				
			||||||
 | 
					        "@vitejs/plugin-vue": "^2.3.1",
 | 
				
			||||||
 | 
					        "typescript": "^4.5.4",
 | 
				
			||||||
 | 
					        "vite": "^2.9.2",
 | 
				
			||||||
 | 
					        "vue-tsc": "^0.29.8"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "@vue/compiler-sfc": "file: node_modules/@vue/compiler-sfc"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										292
									
								
								public/banner/smart-app-banner.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										292
									
								
								public/banner/smart-app-banner.css
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,292 @@
 | 
				
			|||||||
 | 
					.smartbanner-show {
 | 
				
			||||||
 | 
						margin-top: 80px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-show .smartbanner {
 | 
				
			||||||
 | 
						display: block;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** Default **/
 | 
				
			||||||
 | 
					.smartbanner {
 | 
				
			||||||
 | 
						position: absolute;
 | 
				
			||||||
 | 
						left: 0;
 | 
				
			||||||
 | 
						top: 0;
 | 
				
			||||||
 | 
						display: none;
 | 
				
			||||||
 | 
						width: 100%;
 | 
				
			||||||
 | 
						height: 80px;
 | 
				
			||||||
 | 
						line-height: 80px;
 | 
				
			||||||
 | 
						font-family: 'Helvetica Neue', sans-serif;
 | 
				
			||||||
 | 
						background: #f4f4f4;
 | 
				
			||||||
 | 
						z-index: 9998;
 | 
				
			||||||
 | 
						-webkit-font-smoothing: antialiased;
 | 
				
			||||||
 | 
						overflow: hidden;
 | 
				
			||||||
 | 
						-webkit-text-size-adjust: none;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-container {
 | 
				
			||||||
 | 
						margin: 0 auto;
 | 
				
			||||||
 | 
						white-space: nowrap;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-close {
 | 
				
			||||||
 | 
						display: inline-block;
 | 
				
			||||||
 | 
						vertical-align: middle;
 | 
				
			||||||
 | 
						margin: 0 5px 0 5px;
 | 
				
			||||||
 | 
						font-family: 'ArialRoundedMTBold', Arial;
 | 
				
			||||||
 | 
						font-size: 20px;
 | 
				
			||||||
 | 
						text-align: center;
 | 
				
			||||||
 | 
						color: #888;
 | 
				
			||||||
 | 
						text-decoration: none;
 | 
				
			||||||
 | 
						border: 0;
 | 
				
			||||||
 | 
						border-radius: 14px;
 | 
				
			||||||
 | 
						-webkit-font-smoothing: subpixel-antialiased;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-close:active,
 | 
				
			||||||
 | 
					.smartbanner-close:hover {
 | 
				
			||||||
 | 
						color: #aaa;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-icon {
 | 
				
			||||||
 | 
						display: inline-block;
 | 
				
			||||||
 | 
						vertical-align: middle;
 | 
				
			||||||
 | 
						width: 57px;
 | 
				
			||||||
 | 
						height: 57px;
 | 
				
			||||||
 | 
						margin-right: 12px;
 | 
				
			||||||
 | 
						background-size: cover;
 | 
				
			||||||
 | 
						border-radius: 10px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-info {
 | 
				
			||||||
 | 
						display: inline-block;
 | 
				
			||||||
 | 
						vertical-align: middle;
 | 
				
			||||||
 | 
						width: 44%;
 | 
				
			||||||
 | 
						font-size: 11px;
 | 
				
			||||||
 | 
						line-height: 1.2em;
 | 
				
			||||||
 | 
						font-weight: bold;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-title {
 | 
				
			||||||
 | 
						font-size: 13px;
 | 
				
			||||||
 | 
						line-height: 18px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-button {
 | 
				
			||||||
 | 
						position: absolute;
 | 
				
			||||||
 | 
						right: 20px;
 | 
				
			||||||
 | 
						top: 0;
 | 
				
			||||||
 | 
						bottom: 0;
 | 
				
			||||||
 | 
						margin: auto 0;
 | 
				
			||||||
 | 
						height: 24px;
 | 
				
			||||||
 | 
						font-size: 14px;
 | 
				
			||||||
 | 
						line-height: 24px;
 | 
				
			||||||
 | 
						text-align: center;
 | 
				
			||||||
 | 
						font-weight: bold;
 | 
				
			||||||
 | 
						color: #6a6a6a;
 | 
				
			||||||
 | 
						text-transform: uppercase;
 | 
				
			||||||
 | 
						text-decoration: none;
 | 
				
			||||||
 | 
						text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-button:active,
 | 
				
			||||||
 | 
					.smartbanner-button:hover {
 | 
				
			||||||
 | 
						color: #aaa;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-button-text {
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-button-text:active,
 | 
				
			||||||
 | 
					.smartbanner-button-text:hover {
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** iOS **/
 | 
				
			||||||
 | 
					.smartbanner-ios {
 | 
				
			||||||
 | 
						background: #f4f4f4;
 | 
				
			||||||
 | 
						background: linear-gradient(to bottom, #f4f4f4, #cdcdcd);
 | 
				
			||||||
 | 
						box-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
 | 
				
			||||||
 | 
						line-height: 80px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-ios .smartbanner-close {
 | 
				
			||||||
 | 
						border: 0;
 | 
				
			||||||
 | 
						width: 18px;
 | 
				
			||||||
 | 
						height: 18px;
 | 
				
			||||||
 | 
						line-height: 18px;
 | 
				
			||||||
 | 
						color: #888;
 | 
				
			||||||
 | 
						text-shadow: 0 1px 0 white;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-ios .smartbanner-close:active,
 | 
				
			||||||
 | 
					.smartbanner-ios .smartbanner-close:hover {
 | 
				
			||||||
 | 
						color: #aaa;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-ios .smartbanner-icon {
 | 
				
			||||||
 | 
						background: rgba(0, 0, 0, 0.6);
 | 
				
			||||||
 | 
						background-size: cover;
 | 
				
			||||||
 | 
						box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-ios .smartbanner-info {
 | 
				
			||||||
 | 
						color: #6a6a6a;
 | 
				
			||||||
 | 
						text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-ios .smartbanner-title {
 | 
				
			||||||
 | 
						color: #4d4d4d;
 | 
				
			||||||
 | 
						font-weight: bold;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-ios .smartbanner-button {
 | 
				
			||||||
 | 
						padding: 0 10px;
 | 
				
			||||||
 | 
						min-width: 10%;
 | 
				
			||||||
 | 
						color: #6a6a6a;
 | 
				
			||||||
 | 
						background: #efefef;
 | 
				
			||||||
 | 
						background: linear-gradient(to bottom, #efefef, #dcdcdc);
 | 
				
			||||||
 | 
						border-radius: 3px;
 | 
				
			||||||
 | 
						box-shadow: inset 0 0 0 1px #bfbfbf, 0 1px 0 rgba(255, 255, 255, 0.6), 0 2px 0 rgba(255, 255, 255, 0.7) inset;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-ios .smartbanner-button:active,
 | 
				
			||||||
 | 
					.smartbanner-ios .smartbanner-button:hover {
 | 
				
			||||||
 | 
						background: #dcdcdc;
 | 
				
			||||||
 | 
						background: linear-gradient(to bottom, #dcdcdc, #efefef);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-ios .smartbanner-button-text {
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-ios .smartbanner-button-text:active,
 | 
				
			||||||
 | 
					.smartbanner-ios .smartbanner-button-text:hover {
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** Android **/
 | 
				
			||||||
 | 
					.smartbanner-android {
 | 
				
			||||||
 | 
						background: #3d3d3d url(data:image/gif;base64,R0lGODlhCAAIAIABAFVVVf///yH5BAEHAAEALAAAAAAIAAgAAAINRG4XudroGJBRsYcxKAA7);
 | 
				
			||||||
 | 
						box-shadow: inset 0 4px 0 #88b131;
 | 
				
			||||||
 | 
						line-height: 82px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-android .smartbanner-close {
 | 
				
			||||||
 | 
						border: 0;
 | 
				
			||||||
 | 
						width: 17px;
 | 
				
			||||||
 | 
						height: 17px;
 | 
				
			||||||
 | 
						line-height: 17px;
 | 
				
			||||||
 | 
						margin-right: 7px;
 | 
				
			||||||
 | 
						color: #b1b1b3;
 | 
				
			||||||
 | 
						background: #1c1e21;
 | 
				
			||||||
 | 
						text-shadow: 0 1px 1px #000;
 | 
				
			||||||
 | 
						box-shadow: 0 1px 2px rgba(0, 0, 0, 0.8) inset, 0 1px 1px rgba(255, 255, 255, 0.3);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-android .smartbanner-close:active,
 | 
				
			||||||
 | 
					.smartbanner-android .smartbanner-close:hover {
 | 
				
			||||||
 | 
						color: #eee;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-android .smartbanner-icon {
 | 
				
			||||||
 | 
						background-color: transparent;
 | 
				
			||||||
 | 
						box-shadow: none;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-android .smartbanner-info {
 | 
				
			||||||
 | 
						color: #ccc;
 | 
				
			||||||
 | 
						text-shadow: 0 1px 2px #000;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-android .smartbanner-title {
 | 
				
			||||||
 | 
						color: #fff;
 | 
				
			||||||
 | 
						font-weight: bold;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-android .smartbanner-button {
 | 
				
			||||||
 | 
						min-width: 12%;
 | 
				
			||||||
 | 
						color: #d1d1d1;
 | 
				
			||||||
 | 
						padding: 0;
 | 
				
			||||||
 | 
						background: none;
 | 
				
			||||||
 | 
						border-radius: 0;
 | 
				
			||||||
 | 
						box-shadow: 0 0 0 1px #333, 0 0 0 2px #dddcdc;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-android .smartbanner-button:active,
 | 
				
			||||||
 | 
					.smartbanner-android .smartbanner-button:hover {
 | 
				
			||||||
 | 
						background: none;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-android .smartbanner-button-text {
 | 
				
			||||||
 | 
						text-align: center;
 | 
				
			||||||
 | 
						display: block;
 | 
				
			||||||
 | 
						padding: 0 10px;
 | 
				
			||||||
 | 
						background: #42b6c9;
 | 
				
			||||||
 | 
						background: linear-gradient(to bottom, #42b6c9, #39a9bb);
 | 
				
			||||||
 | 
						text-transform: none;
 | 
				
			||||||
 | 
						text-shadow: none;
 | 
				
			||||||
 | 
						box-shadow: none;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-android .smartbanner-button-text:active,
 | 
				
			||||||
 | 
					.smartbanner-android .smartbanner-button-text:hover {
 | 
				
			||||||
 | 
						background: #2ac7e1;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** Windows **/
 | 
				
			||||||
 | 
					.smartbanner-windows {
 | 
				
			||||||
 | 
						background: #f4f4f4;
 | 
				
			||||||
 | 
						background: linear-gradient(to bottom, #f4f4f4, #cdcdcd);
 | 
				
			||||||
 | 
						box-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
 | 
				
			||||||
 | 
						line-height: 80px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-windows .smartbanner-close {
 | 
				
			||||||
 | 
						border: 0;
 | 
				
			||||||
 | 
						width: 18px;
 | 
				
			||||||
 | 
						height: 18px;
 | 
				
			||||||
 | 
						line-height: 18px;
 | 
				
			||||||
 | 
						color: #888;
 | 
				
			||||||
 | 
						text-shadow: 0 1px 0 white;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-windows .smartbanner-close:active,
 | 
				
			||||||
 | 
					.smartbanner-windows .smartbanner-close:hover {
 | 
				
			||||||
 | 
						color: #aaa;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-windows .smartbanner-icon {
 | 
				
			||||||
 | 
						background: rgba(0, 0, 0, 0.6);
 | 
				
			||||||
 | 
						background-size: cover;
 | 
				
			||||||
 | 
						box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-windows .smartbanner-info {
 | 
				
			||||||
 | 
						color: #6a6a6a;
 | 
				
			||||||
 | 
						text-shadow: 0 1px 0 rgba(255, 255, 255, 0.8);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-windows .smartbanner-title {
 | 
				
			||||||
 | 
						color: #4d4d4d;
 | 
				
			||||||
 | 
						font-weight: bold;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-windows .smartbanner-button {
 | 
				
			||||||
 | 
						padding: 0 10px;
 | 
				
			||||||
 | 
						min-width: 10%;
 | 
				
			||||||
 | 
						color: #6a6a6a;
 | 
				
			||||||
 | 
						background: #efefef;
 | 
				
			||||||
 | 
						background: linear-gradient(to bottom, #efefef, #dcdcdc);
 | 
				
			||||||
 | 
						border-radius: 3px;
 | 
				
			||||||
 | 
						box-shadow: inset 0 0 0 1px #bfbfbf, 0 1px 0 rgba(255, 255, 255, 0.6), 0 2px 0 rgba(255, 255, 255, 0.7) inset;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-windows .smartbanner-button:active,
 | 
				
			||||||
 | 
					.smartbanner-windows .smartbanner-button:hover {
 | 
				
			||||||
 | 
						background: #dcdcdc;
 | 
				
			||||||
 | 
						background: linear-gradient(to bottom, #dcdcdc, #efefef);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-windows .smartbanner-button-text {
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.smartbanner-windows .smartbanner-button-text:active,
 | 
				
			||||||
 | 
					.smartbanner-windows .smartbanner-button-text:hover {
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										59
									
								
								public/banner/smart-app-banner.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								public/banner/smart-app-banner.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,59 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 UAParser.js v0.7.18
 | 
				
			||||||
 | 
					 Lightweight JavaScript-based User-Agent string parser
 | 
				
			||||||
 | 
					 https://github.com/faisalman/ua-parser-js
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 Copyright ? 2012-2016 Faisal Salman <fyzlman@gmail.com>
 | 
				
			||||||
 | 
					 Dual licensed under GPLv2 or MIT
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(a,d,b){a!=Array.prototype&&a!=Object.prototype&&(a[d]=b.value)};$jscomp.getGlobal=function(a){return"undefined"!=typeof window&&window===a?a:"undefined"!=typeof global&&null!=global?global:a};$jscomp.global=$jscomp.getGlobal(this);
 | 
				
			||||||
 | 
					$jscomp.polyfill=function(a,d,b,e){if(d){b=$jscomp.global;a=a.split(".");for(e=0;e<a.length-1;e++){var c=a[e];c in b||(b[c]={});b=b[c]}a=a[a.length-1];e=b[a];d=d(e);d!=e&&null!=d&&$jscomp.defineProperty(b,a,{configurable:!0,writable:!0,value:d})}};$jscomp.polyfill("Object.getOwnPropertySymbols",function(a){return a?a:function(){return[]}},"es6","es5");$jscomp.SYMBOL_PREFIX="jscomp_symbol_";
 | 
				
			||||||
 | 
					$jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)};$jscomp.Symbol=function(){var a=0;return function(d){return $jscomp.SYMBOL_PREFIX+(d||"")+a++}}();
 | 
				
			||||||
 | 
					$jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var a=$jscomp.global.Symbol.iterator;a||(a=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&$jscomp.defineProperty(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}});$jscomp.initSymbolIterator=function(){}};$jscomp.arrayIterator=function(a){var d=0;return $jscomp.iteratorPrototype(function(){return d<a.length?{done:!1,value:a[d++]}:{done:!0}})};
 | 
				
			||||||
 | 
					$jscomp.iteratorPrototype=function(a){$jscomp.initSymbolIterator();a={next:a};a[$jscomp.global.Symbol.iterator]=function(){return this};return a};$jscomp.iteratorFromArray=function(a,d){$jscomp.initSymbolIterator();a instanceof String&&(a+="");var b=0,e={next:function(){if(b<a.length){var c=b++;return{value:d(c,a[c]),done:!1}}e.next=function(){return{done:!0,value:void 0}};return e.next()}};e[Symbol.iterator]=function(){return e};return e};
 | 
				
			||||||
 | 
					$jscomp.polyfill("Array.prototype.keys",function(a){return a?a:function(){return $jscomp.iteratorFromArray(this,function(a){return a})}},"es6","es3");$jscomp.owns=function(a,d){return Object.prototype.hasOwnProperty.call(a,d)};$jscomp.assign="function"==typeof Object.assign?Object.assign:function(a,d){for(var b=1;b<arguments.length;b++){var e=arguments[b];if(e)for(var c in e)$jscomp.owns(e,c)&&(a[c]=e[c])}return a};$jscomp.polyfill("Object.assign",function(a){return a||$jscomp.assign},"es6","es3");
 | 
				
			||||||
 | 
					(function(a){"object"===typeof exports&&"undefined"!==typeof module?module.exports=a():"function"===typeof define&&define.amd?define([],a):("undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:this).SmartBanner=a()})(function(){return function(){function a(d,b,e){function c(f,k){if(!b[f]){if(!d[f]){var r="function"==typeof require&&require;if(!k&&r)return r(f,!0);if(m)return m(f,!0);k=Error("Cannot find module '"+f+"'");throw k.code="MODULE_NOT_FOUND",
 | 
				
			||||||
 | 
					k;}k=b[f]={exports:{}};d[f][0].call(k.exports,function(a){return c(d[f][1][a]||a)},k,k.exports,a,d,b,e)}return b[f].exports}for(var m="function"==typeof require&&require,f=0;f<e.length;f++)c(e[f]);return c}return a}()({1:[function(a,d,b){var e=a("object-assign"),c=a("component-query"),m=a("get-doc"),f=a("cookie-cutter"),n=a("ua-parser-js"),k=(navigator.language||navigator.userLanguage||navigator.browserLanguage).slice(-2)||"us",r=m&&m.documentElement,g={ios:{appMeta:"apple-itunes-app",iconRels:["apple-touch-icon-precomposed",
 | 
				
			||||||
 | 
					"apple-touch-icon"],getStoreLink:function(){return"https://itunes.apple.com/"+this.options.appStoreLanguage+"/app/id"+this.appId+"?mt=8"}},android:{appMeta:"google-play-app",iconRels:["android-touch-icon","apple-touch-icon-precomposed","apple-touch-icon"],getStoreLink:function(){return"http://play.google.com/store/apps/details?id="+this.appId}},windows:{appMeta:"msApplication-ID",iconRels:["windows-touch-icon","apple-touch-icon-precomposed","apple-touch-icon"],getStoreLink:function(){return"http://www.windowsphone.com/s?appid="+
 | 
				
			||||||
 | 
					this.appId}}};a=function(a){var c=n(navigator.userAgent);this.options=e({},{daysHidden:15,daysReminder:90,appStoreLanguage:k,button:"OPEN",store:{ios:"On the App Store",android:"In Google Play",windows:"In the Windows Store"},price:{ios:"FREE",android:"FREE",windows:"FREE"},theme:"",icon:"",force:""},a||{});this.options.force?this.type=this.options.force:"Windows Phone"===c.os.name||"Windows Mobile"===c.os.name?this.type="windows":"iOS"===c.os.name?this.type="ios":"Android"===c.os.name&&(this.type=
 | 
				
			||||||
 | 
					"android");if(this.type&&this.options.store[this.type]){this.appMeta=g[this.type].appMeta;this.parseAppId();a="ios"===this.type&&"Mobile Safari"===c.browser.name&&6<=parseInt(c.os.version,10);var l=navigator.standalone,b=f.get(this.appId+"-smartbanner-closed"),d=f.get(this.appId+"-smartbanner-installed");a||l||b||d||(e(this,g[this.type]),!this.appId&&"IOS"===c.os.name&&"Safari"===c.browser.name)||(this.create(),this.show())}};a.prototype={constructor:a,create:function(){var a=this.getStoreLink(),
 | 
				
			||||||
 | 
					e=this.options.price[this.type]+" - "+this.options.store[this.type];if(this.options.icon)var f=this.options.icon;else for(var b=0;b<this.iconRels.length;b++){var d=c('link[rel="'+this.iconRels[b]+'"]');if(d){f=d.getAttribute("href");break}}var t=m.createElement("div");t.className="smartbanner smartbanner-"+(this.options.theme||this.type);t.innerHTML='<div class="smartbanner-container"><a href="javascript:void(0);" class="smartbanner-close">×</a><span class="smartbanner-icon" style="background-image: url('+
 | 
				
			||||||
 | 
					f+')"></span><div class="smartbanner-info"><div class="smartbanner-title">'+this.options.title+"</div><div>"+this.options.author+"</div><span>"+e+'</span></div><a href="'+a+'" class="smartbanner-button"><span class="smartbanner-button-text">'+this.options.button+"</span></a></div>";m.body?m.body.appendChild(t):m&&m.addEventListener("DOMContentLoaded",function(){m.body.appendChild(t)});c(".smartbanner-button",t).addEventListener("click",this.install.bind(this),!1);c(".smartbanner-close",t).addEventListener("click",
 | 
				
			||||||
 | 
					this.close.bind(this),!1)},hide:function(){r.classList.remove("smartbanner-show");if("function"===typeof this.options.close)return this.options.close()},show:function(){r.classList.add("smartbanner-show");if("function"===typeof this.options.show)return this.options.show()},close:function(){this.hide();f.set(this.appId+"-smartbanner-closed","true",{path:"/",expires:new Date(Number(new Date)+864E5*this.options.daysHidden)});if("function"===typeof this.options.close)return this.options.close()},install:function(){this.hide();
 | 
				
			||||||
 | 
					f.set(this.appId+"-smartbanner-installed","true",{path:"/",expires:new Date(Number(new Date)+864E5*this.options.daysReminder)});if("function"===typeof this.options.close)return this.options.close()},parseAppId:function(){var a=c('meta[name="'+this.appMeta+'"]');if(a)return this.appId="windows"===this.type?a.getAttribute("content"):/app-id=([^\s,]+)/.exec(a.getAttribute("content"))[1]}};d.exports=a},{"component-query":2,"cookie-cutter":3,"get-doc":4,"object-assign":6,"ua-parser-js":7}],2:[function(a,
 | 
				
			||||||
 | 
					d,b){function e(a,e){return e.querySelector(a)}b=d.exports=function(a,b){b=b||document;return e(a,b)};b.all=function(a,e){e=e||document;return e.querySelectorAll(a)};b.engine=function(a){if(!a.one)throw Error(".one callback required");if(!a.all)throw Error(".all callback required");e=a.one;b.all=a.all;return b}},{}],3:[function(a,d,b){b=d.exports=function(a){a||(a={});"string"===typeof a&&(a={cookie:a});void 0===a.cookie&&(a.cookie="");return{get:function(c){for(var b=a.cookie.split(/;\s*/),f=0;f<
 | 
				
			||||||
 | 
					b.length;f++){var e=b[f].split("=");if(unescape(e[0])===c)return unescape(e[1])}},set:function(c,b,f){f||(f={});c=escape(c)+"="+escape(b);f.expires&&(c+="; expires="+f.expires);f.path&&(c+="; path="+escape(f.path));f.domain&&(c+="; domain="+escape(f.domain));f.secure&&(c+="; secure");return a.cookie=c}}};"undefined"!==typeof document&&(a=b(document),b.get=a.get,b.set=a.set)},{}],4:[function(a,d,b){a=a("has-dom");d.exports=a()?document:null},{"has-dom":5}],5:[function(a,d,b){d.exports=function(){return"undefined"!==
 | 
				
			||||||
 | 
					typeof window&&"undefined"!==typeof document&&"function"===typeof document.createElement}},{}],6:[function(a,d,b){var e=Object.getOwnPropertySymbols,c=Object.prototype.hasOwnProperty,m=Object.prototype.propertyIsEnumerable;d.exports=function(){try{if(!Object.assign)return!1;var a=new String("abc");a[5]="de";if("5"===Object.getOwnPropertyNames(a)[0])return!1;var c={};for(a=0;10>a;a++)c["_"+String.fromCharCode(a)]=a;if("0123456789"!==Object.getOwnPropertyNames(c).map(function(a){return c[a]}).join(""))return!1;
 | 
				
			||||||
 | 
					var b={};"abcdefghijklmnopqrst".split("").forEach(function(a){b[a]=a});return"abcdefghijklmnopqrst"!==Object.keys(Object.assign({},b)).join("")?!1:!0}catch(r){return!1}}()?Object.assign:function(a,b){if(null===a||void 0===a)throw new TypeError("Object.assign cannot be called with null or undefined");var d=Object(a);for(var f,g=1;g<arguments.length;g++){var p=Object(arguments[g]);for(var n in p)c.call(p,n)&&(d[n]=p[n]);if(e){f=e(p);for(var l=0;l<f.length;l++)m.call(p,f[l])&&(d[f[l]]=p[f[l]])}}return d}},
 | 
				
			||||||
 | 
					{}],7:[function(a,d,b){(function(a,c){var e={extend:function(a,c){var b={},e;for(e in a)b[e]=c[e]&&0===c[e].length%2?c[e].concat(a[e]):a[e];return b},has:function(a,c){return"string"===typeof a?-1!==c.toLowerCase().indexOf(a.toLowerCase()):!1},lowerize:function(a){return a.toLowerCase()},major:function(a){return"string"===typeof a?a.replace(/[^\d\.]/g,"").split(".")[0]:c},trim:function(a){return a.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}},f=function(a,b){for(var e=0,d,f,l,h,g,q;e<b.length&&
 | 
				
			||||||
 | 
					!g;){var k=b[e],m=b[e+1];for(d=f=0;d<k.length&&!g;)if(g=k[d++].exec(a))for(l=0;l<m.length;l++)q=g[++f],h=m[l],"object"===typeof h&&0<h.length?2==h.length?this[h[0]]="function"==typeof h[1]?h[1].call(this,q):h[1]:3==h.length?this[h[0]]="function"!==typeof h[1]||h[1].exec&&h[1].test?q?q.replace(h[1],h[2]):c:q?h[1].call(this,q,h[2]):c:4==h.length&&(this[h[0]]=q?h[3].call(this,q.replace(h[1],h[2])):c):this[h]=q?q:c;e+=2}},n=function(a,b){for(var d in b)if("object"===typeof b[d]&&0<b[d].length)for(var f=
 | 
				
			||||||
 | 
					0;f<b[d].length;f++){if(e.has(b[d][f],a))return"?"===d?c:d}else if(e.has(b[d],a))return"?"===d?c:d;return a},k={ME:"4.90","NT 3.11":"NT3.51","NT 4.0":"NT4.0",2E3:"NT 5.0",XP:["NT 5.1","NT 5.2"],Vista:"NT 6.0",7:"NT 6.1",8:"NT 6.2","8.1":"NT 6.3",10:["NT 6.4","NT 10.0"],RT:"ARM"},r={browser:[[/(opera\smini)\/([\w\.-]+)/i,/(opera\s[mobiletab]+).+version\/([\w\.-]+)/i,/(opera).+version\/([\w\.]+)/i,/(opera)[\/\s]+([\w\.]+)/i],["name","version"],[/(opios)[\/\s]+([\w\.]+)/i],[["name","Opera Mini"],"version"],
 | 
				
			||||||
 | 
					[/\s(opr)\/([\w\.]+)/i],[["name","Opera"],"version"],[/(kindle)\/([\w\.]+)/i,/(lunascape|maxthon|netfront|jasmine|blazer)[\/\s]?([\w\.]*)/i,/(avant\s|iemobile|slim|baidu)(?:browser)?[\/\s]?([\w\.]*)/i,/(?:ms|\()(ie)\s([\w\.]+)/i,/(rekonq)\/([\w\.]*)/i,/(chromium|flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark)\/([\w\.-]+)/i],["name","version"],[/(trident).+rv[:\s]([\w\.]+).+like\sgecko/i],[["name","IE"],"version"],[/(edge|edgios|edgea)\/((\d+)?[\w\.]+)/i],
 | 
				
			||||||
 | 
					[["name","Edge"],"version"],[/(yabrowser)\/([\w\.]+)/i],[["name","Yandex"],"version"],[/(puffin)\/([\w\.]+)/i],[["name","Puffin"],"version"],[/((?:[\s\/])uc?\s?browser|(?:juc.+)ucweb)[\/\s]?([\w\.]+)/i],[["name","UCBrowser"],"version"],[/(comodo_dragon)\/([\w\.]+)/i],[["name",/_/g," "],"version"],[/(micromessenger)\/([\w\.]+)/i],[["name","WeChat"],"version"],[/(qqbrowserlite)\/([\w\.]+)/i],["name","version"],[/(QQ)\/([\d\.]+)/i],["name","version"],[/m?(qqbrowser)[\/\s]?([\w\.]+)/i],["name","version"],
 | 
				
			||||||
 | 
					[/(BIDUBrowser)[\/\s]?([\w\.]+)/i],["name","version"],[/(2345Explorer)[\/\s]?([\w\.]+)/i],["name","version"],[/(MetaSr)[\/\s]?([\w\.]+)/i],["name"],[/(LBBROWSER)/i],["name"],[/xiaomi\/miuibrowser\/([\w\.]+)/i],["version",["name","MIUI Browser"]],[/;fbav\/([\w\.]+);/i],["version",["name","Facebook"]],[/headlesschrome(?:\/([\w\.]+)|\s)/i],["version",["name","Chrome Headless"]],[/\swv\).+(chrome)\/([\w\.]+)/i],[["name",/(.+)/,"$1 WebView"],"version"],[/((?:oculus|samsung)browser)\/([\w\.]+)/i],[["name",
 | 
				
			||||||
 | 
					/(.+(?:g|us))(.+)/,"$1 $2"],"version"],[/android.+version\/([\w\.]+)\s+(?:mobile\s?safari|safari)*/i],["version",["name","Android Browser"]],[/(chrome|omniweb|arora|[tizenoka]{5}\s?browser)\/v?([\w\.]+)/i],["name","version"],[/(dolfin)\/([\w\.]+)/i],[["name","Dolphin"],"version"],[/((?:android.+)crmo|crios)\/([\w\.]+)/i],[["name","Chrome"],"version"],[/(coast)\/([\w\.]+)/i],[["name","Opera Coast"],"version"],[/fxios\/([\w\.-]+)/i],["version",["name","Firefox"]],[/version\/([\w\.]+).+?mobile\/\w+\s(safari)/i],
 | 
				
			||||||
 | 
					["version",["name","Mobile Safari"]],[/version\/([\w\.]+).+?(mobile\s?safari|safari)/i],["version","name"],[/webkit.+?(gsa)\/([\w\.]+).+?(mobile\s?safari|safari)(\/[\w\.]+)/i],[["name","GSA"],"version"],[/webkit.+?(mobile\s?safari|safari)(\/[\w\.]+)/i],["name",["version",n,{"1.0":"/8","1.2":"/1","1.3":"/3","2.0":"/412","2.0.2":"/416","2.0.3":"/417","2.0.4":"/419","?":"/"}]],[/(konqueror)\/([\w\.]+)/i,/(webkit|khtml)\/([\w\.]+)/i],["name","version"],[/(navigator|netscape)\/([\w\.-]+)/i],[["name","Netscape"],
 | 
				
			||||||
 | 
					"version"],[/(swiftfox)/i,/(icedragon|iceweasel|camino|chimera|fennec|maemo\sbrowser|minimo|conkeror)[\/\s]?([\w\.\+]+)/i,/(firefox|seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([\w\.-]+)$/i,/(mozilla)\/([\w\.]+).+rv:.+gecko\/\d+/i,/(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir)[\/\s]?([\w\.]+)/i,/(links)\s\(([\w\.]+)/i,/(gobrowser)\/?([\w\.]*)/i,/(ice\s?browser)\/v?([\w\._]+)/i,/(mosaic)[\/\s]([\w\.]+)/i],["name","version"]],cpu:[[/(?:(amd|x(?:(?:86|64)[_-])?|wow|win)64)[;\)]/i],
 | 
				
			||||||
 | 
					[["architecture","amd64"]],[/(ia32(?=;))/i],[["architecture",e.lowerize]],[/((?:i[346]|x)86)[;\)]/i],[["architecture","ia32"]],[/windows\s(ce|mobile);\sppc;/i],[["architecture","arm"]],[/((?:ppc|powerpc)(?:64)?)(?:\smac|;|\))/i],[["architecture",/ower/,"",e.lowerize]],[/(sun4\w)[;\)]/i],[["architecture","sparc"]],[/((?:avr32|ia64(?=;))|68k(?=\))|arm(?:64|(?=v\d+;))|(?=atmel\s)avr|(?:irix|mips|sparc)(?:64)?(?=;)|pa-risc)/i],[["architecture",e.lowerize]]],device:[[/\((ipad|playbook);[\w\s\);-]+(rim|apple)/i],
 | 
				
			||||||
 | 
					["model","vendor",["type","tablet"]],[/applecoremedia\/[\w\.]+ \((ipad)/],["model",["vendor","Apple"],["type","tablet"]],[/(apple\s{0,1}tv)/i],[["model","Apple TV"],["vendor","Apple"]],[/(archos)\s(gamepad2?)/i,/(hp).+(touchpad)/i,/(hp).+(tablet)/i,/(kindle)\/([\w\.]+)/i,/\s(nook)[\w\s]+build\/(\w+)/i,/(dell)\s(strea[kpr\s\d]*[\dko])/i],["vendor","model",["type","tablet"]],[/(kf[A-z]+)\sbuild\/.+silk\//i],["model",["vendor","Amazon"],["type","tablet"]],[/(sd|kf)[0349hijorstuw]+\sbuild\/.+silk\//i],
 | 
				
			||||||
 | 
					[["model",n,{"Fire Phone":["SD","KF"]}],["vendor","Amazon"],["type","mobile"]],[/\((ip[honed|\s\w*]+);.+(apple)/i],["model","vendor",["type","mobile"]],[/\((ip[honed|\s\w*]+);/i],["model",["vendor","Apple"],["type","mobile"]],[/(blackberry)[\s-]?(\w+)/i,/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[\s_-]?([\w-]*)/i,/(hp)\s([\w\s]+\w)/i,/(asus)-?(\w+)/i],["vendor","model",["type","mobile"]],[/\(bb10;\s(\w+)/i],["model",["vendor","BlackBerry"],["type","mobile"]],
 | 
				
			||||||
 | 
					[/android.+(transfo[prime\s]{4,10}\s\w+|eeepc|slider\s\w+|nexus 7|padfone)/i],["model",["vendor","Asus"],["type","tablet"]],[/(sony)\s(tablet\s[ps])\sbuild\//i,/(sony)?(?:sgp.+)\sbuild\//i],[["vendor","Sony"],["model","Xperia Tablet"],["type","tablet"]],[/android.+\s([c-g]\d{4}|so[-l]\w+)\sbuild\//i],["model",["vendor","Sony"],["type","mobile"]],[/\s(ouya)\s/i,/(nintendo)\s([wids3u]+)/i],["vendor","model",["type","console"]],[/android.+;\s(shield)\sbuild/i],["model",["vendor","Nvidia"],["type","console"]],
 | 
				
			||||||
 | 
					[/(playstation\s[34portablevi]+)/i],["model",["vendor","Sony"],["type","console"]],[/(sprint\s(\w+))/i],[["vendor",n,{HTC:"APA",Sprint:"Sprint"}],["model",n,{"Evo Shift 4G":"7373KT"}],["type","mobile"]],[/(lenovo)\s?(S(?:5000|6000)+(?:[-][\w+]))/i],["vendor","model",["type","tablet"]],[/(htc)[;_\s-]+([\w\s]+(?=\))|\w+)*/i,/(zte)-(\w*)/i,/(alcatel|geeksphone|lenovo|nexian|panasonic|(?=;\s)sony)[_\s-]?([\w-]*)/i],["vendor",["model",/_/g," "],["type","mobile"]],[/(nexus\s9)/i],["model",["vendor","HTC"],
 | 
				
			||||||
 | 
					["type","tablet"]],[/d\/huawei([\w\s-]+)[;\)]/i,/(nexus\s6p)/i],["model",["vendor","Huawei"],["type","mobile"]],[/(microsoft);\s(lumia[\s\w]+)/i],["vendor","model",["type","mobile"]],[/[\s\(;](xbox(?:\sone)?)[\s\);]/i],["model",["vendor","Microsoft"],["type","console"]],[/(kin\.[onetw]{3})/i],[["model",/\./g," "],["vendor","Microsoft"],["type","mobile"]],[/\s(milestone|droid(?:[2-4x]|\s(?:bionic|x2|pro|razr))?:?(\s4g)?)[\w\s]+build\//i,/mot[\s-]?(\w*)/i,/(XT\d{3,4}) build\//i,/(nexus\s6)/i],["model",
 | 
				
			||||||
 | 
					["vendor","Motorola"],["type","mobile"]],[/android.+\s(mz60\d|xoom[\s2]{0,2})\sbuild\//i],["model",["vendor","Motorola"],["type","tablet"]],[/hbbtv\/\d+\.\d+\.\d+\s+\([\w\s]*;\s*(\w[^;]*);([^;]*)/i],[["vendor",e.trim],["model",e.trim],["type","smarttv"]],[/hbbtv.+maple;(\d+)/i],[["model",/^/,"SmartTV"],["vendor","Samsung"],["type","smarttv"]],[/\(dtv[\);].+(aquos)/i],["model",["vendor","Sharp"],["type","smarttv"]],[/android.+((sch-i[89]0\d|shw-m380s|gt-p\d{4}|gt-n\d+|sgh-t8[56]9|nexus 10))/i,/((SM-T\w+))/i],
 | 
				
			||||||
 | 
					[["vendor","Samsung"],"model",["type","tablet"]],[/smart-tv.+(samsung)/i],["vendor",["type","smarttv"],"model"],[/((s[cgp]h-\w+|gt-\w+|galaxy\snexus|sm-\w[\w\d]+))/i,/(sam[sung]*)[\s-]*(\w+-?[\w-]*)/i,/sec-((sgh\w+))/i],[["vendor","Samsung"],"model",["type","mobile"]],[/sie-(\w*)/i],["model",["vendor","Siemens"],["type","mobile"]],[/(maemo|nokia).*(n900|lumia\s\d+)/i,/(nokia)[\s_-]?([\w-]*)/i],[["vendor","Nokia"],"model",["type","mobile"]],[/android\s3\.[\s\w;-]{10}(a\d{3})/i],["model",["vendor",
 | 
				
			||||||
 | 
					"Acer"],["type","tablet"]],[/android.+([vl]k\-?\d{3})\s+build/i],["model",["vendor","LG"],["type","tablet"]],[/android\s3\.[\s\w;-]{10}(lg?)-([06cv9]{3,4})/i],[["vendor","LG"],"model",["type","tablet"]],[/(lg) netcast\.tv/i],["vendor","model",["type","smarttv"]],[/(nexus\s[45])/i,/lg[e;\s\/-]+(\w*)/i,/android.+lg(\-?[\d\w]+)\s+build/i],["model",["vendor","LG"],["type","mobile"]],[/android.+(ideatab[a-z0-9\-\s]+)/i],["model",["vendor","Lenovo"],["type","tablet"]],[/linux;.+((jolla));/i],["vendor",
 | 
				
			||||||
 | 
					"model",["type","mobile"]],[/((pebble))app\/[\d\.]+\s/i],["vendor","model",["type","wearable"]],[/android.+;\s(oppo)\s?([\w\s]+)\sbuild/i],["vendor","model",["type","mobile"]],[/crkey/i],[["model","Chromecast"],["vendor","Google"]],[/android.+;\s(glass)\s\d/i],["model",["vendor","Google"],["type","wearable"]],[/android.+;\s(pixel c)\s/i],["model",["vendor","Google"],["type","tablet"]],[/android.+;\s(pixel xl|pixel)\s/i],["model",["vendor","Google"],["type","mobile"]],[/android.+;\s(\w+)\s+build\/hm\1/i,
 | 
				
			||||||
 | 
					/android.+(hm[\s\-_]*note?[\s_]*(?:\d\w)?)\s+build/i,/android.+(mi[\s\-_]*(?:one|one[\s_]plus|note lte)?[\s_]*(?:\d?\w?)[\s_]*(?:plus)?)\s+build/i,/android.+(redmi[\s\-_]*(?:note)?(?:[\s_]*[\w\s]+))\s+build/i],[["model",/_/g," "],["vendor","Xiaomi"],["type","mobile"]],[/android.+(mi[\s\-_]*(?:pad)(?:[\s_]*[\w\s]+))\s+build/i],[["model",/_/g," "],["vendor","Xiaomi"],["type","tablet"]],[/android.+;\s(m[1-5]\snote)\sbuild/i],["model",["vendor","Meizu"],["type","tablet"]],[/android.+a000(1)\s+build/i,
 | 
				
			||||||
 | 
					/android.+oneplus\s(a\d{4})\s+build/i],["model",["vendor","OnePlus"],["type","mobile"]],[/android.+[;\/]\s*(RCT[\d\w]+)\s+build/i],["model",["vendor","RCA"],["type","tablet"]],[/android.+[;\/\s]+(Venue[\d\s]{2,7})\s+build/i],["model",["vendor","Dell"],["type","tablet"]],[/android.+[;\/]\s*(Q[T|M][\d\w]+)\s+build/i],["model",["vendor","Verizon"],["type","tablet"]],[/android.+[;\/]\s+(Barnes[&\s]+Noble\s+|BN[RT])(V?.*)\s+build/i],[["vendor","Barnes & Noble"],"model",["type","tablet"]],[/android.+[;\/]\s+(TM\d{3}.*\b)\s+build/i],
 | 
				
			||||||
 | 
					["model",["vendor","NuVision"],["type","tablet"]],[/android.+;\s(k88)\sbuild/i],["model",["vendor","ZTE"],["type","tablet"]],[/android.+[;\/]\s*(gen\d{3})\s+build.*49h/i],["model",["vendor","Swiss"],["type","mobile"]],[/android.+[;\/]\s*(zur\d{3})\s+build/i],["model",["vendor","Swiss"],["type","tablet"]],[/android.+[;\/]\s*((Zeki)?TB.*\b)\s+build/i],["model",["vendor","Zeki"],["type","tablet"]],[/(android).+[;\/]\s+([YR]\d{2})\s+build/i,/android.+[;\/]\s+(Dragon[\-\s]+Touch\s+|DT)(\w{5})\sbuild/i],
 | 
				
			||||||
 | 
					[["vendor","Dragon Touch"],"model",["type","tablet"]],[/android.+[;\/]\s*(NS-?\w{0,9})\sbuild/i],["model",["vendor","Insignia"],["type","tablet"]],[/android.+[;\/]\s*((NX|Next)-?\w{0,9})\s+build/i],["model",["vendor","NextBook"],["type","tablet"]],[/android.+[;\/]\s*(Xtreme_)?(V(1[045]|2[015]|30|40|60|7[05]|90))\s+build/i],[["vendor","Voice"],"model",["type","mobile"]],[/android.+[;\/]\s*(LVTEL\-)?(V1[12])\s+build/i],[["vendor","LvTel"],"model",["type","mobile"]],[/android.+[;\/]\s*(V(100MD|700NA|7011|917G).*\b)\s+build/i],
 | 
				
			||||||
 | 
					["model",["vendor","Envizen"],["type","tablet"]],[/android.+[;\/]\s*(Le[\s\-]+Pan)[\s\-]+(\w{1,9})\s+build/i],["vendor","model",["type","tablet"]],[/android.+[;\/]\s*(Trio[\s\-]*.*)\s+build/i],["model",["vendor","MachSpeed"],["type","tablet"]],[/android.+[;\/]\s*(Trinity)[\-\s]*(T\d{3})\s+build/i],["vendor","model",["type","tablet"]],[/android.+[;\/]\s*TU_(1491)\s+build/i],["model",["vendor","Rotor"],["type","tablet"]],[/android.+(KS(.+))\s+build/i],["model",["vendor","Amazon"],["type","tablet"]],
 | 
				
			||||||
 | 
					[/android.+(Gigaset)[\s\-]+(Q\w{1,9})\s+build/i],["vendor","model",["type","tablet"]],[/\s(tablet|tab)[;\/]/i,/\s(mobile)(?:[;\/]|\ssafari)/i],[["type",e.lowerize],"vendor","model"],[/(android[\w\.\s\-]{0,9});.+build/i],["model",["vendor","Generic"]]],engine:[[/windows.+\sedge\/([\w\.]+)/i],["version",["name","EdgeHTML"]],[/(presto)\/([\w\.]+)/i,/(webkit|trident|netfront|netsurf|amaya|lynx|w3m)\/([\w\.]+)/i,/(khtml|tasman|links)[\/\s]\(?([\w\.]+)/i,/(icab)[\/\s]([23]\.[\d\.]+)/i],["name","version"],
 | 
				
			||||||
 | 
					[/rv:([\w\.]{1,9}).+(gecko)/i],["version","name"]],os:[[/microsoft\s(windows)\s(vista|xp)/i],["name","version"],[/(windows)\snt\s6\.2;\s(arm)/i,/(windows\sphone(?:\sos)*)[\s\/]?([\d\.\s\w]*)/i,/(windows\smobile|windows)[\s\/]?([ntce\d\.\s]+\w)/i],["name",["version",n,k]],[/(win(?=3|9|n)|win\s9x\s)([nt\d\.]+)/i],[["name","Windows"],["version",n,k]],[/\((bb)(10);/i],[["name","BlackBerry"],"version"],[/(blackberry)\w*\/?([\w\.]*)/i,/(tizen)[\/\s]([\w\.]+)/i,/(android|webos|palm\sos|qnx|bada|rim\stablet\sos|meego|contiki)[\/\s-]?([\w\.]*)/i,
 | 
				
			||||||
 | 
					/linux;.+(sailfish);/i],["name","version"],[/(symbian\s?os|symbos|s60(?=;))[\/\s-]?([\w\.]*)/i],[["name","Symbian"],"version"],[/\((series40);/i],["name"],[/mozilla.+\(mobile;.+gecko.+firefox/i],[["name","Firefox OS"],"version"],[/(nintendo|playstation)\s([wids34portablevu]+)/i,/(mint)[\/\s\(]?(\w*)/i,/(mageia|vectorlinux)[;\s]/i,/(joli|[kxln]?ubuntu|debian|suse|opensuse|gentoo|(?=\s)arch|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk|linpus)[\/\s-]?(?!chrom)([\w\.-]*)/i,/(hurd|linux)\s?([\w\.]*)/i,
 | 
				
			||||||
 | 
					/(gnu)\s?([\w\.]*)/i],["name","version"],[/(cros)\s[\w]+\s([\w\.]+\w)/i],[["name","Chromium OS"],"version"],[/(sunos)\s?([\w\.\d]*)/i],[["name","Solaris"],"version"],[/\s([frentopc-]{0,4}bsd|dragonfly)\s?([\w\.]*)/i],["name","version"],[/(haiku)\s(\w+)/i],["name","version"],[/cfnetwork\/.+darwin/i,/ip[honead]{2,4}(?:.*os\s([\w]+)\slike\smac|;\sopera)/i],[["version",/_/g,"."],["name","iOS"]],[/(mac\sos\sx)\s?([\w\s\.]*)/i,/(macintosh|mac(?=_powerpc)\s)/i],[["name","Mac OS"],["version",/_/g,"."]],[/((?:open)?solaris)[\/\s-]?([\w\.]*)/i,
 | 
				
			||||||
 | 
					/(aix)\s((\d)(?=\.|\)|\s)[\w\.])*/i,/(plan\s9|minix|beos|os\/2|amigaos|morphos|risc\sos|openvms)/i,/(unix)\s?([\w\.]*)/i],["name","version"]]},g=function(b,d){"object"===typeof b&&(d=b,b=c);if(!(this instanceof g))return(new g(b,d)).getResult();var l=b||(a&&a.navigator&&a.navigator.userAgent?a.navigator.userAgent:""),k=d?e.extend(r,d):r;this.getBrowser=function(){var a={name:c,version:c};f.call(a,l,k.browser);a.major=e.major(a.version);return a};this.getCPU=function(){var a={architecture:c};f.call(a,
 | 
				
			||||||
 | 
					l,k.cpu);return a};this.getDevice=function(){var a={vendor:c,model:c,type:c};f.call(a,l,k.device);return a};this.getEngine=function(){var a={name:c,version:c};f.call(a,l,k.engine);return a};this.getOS=function(){var a={name:c,version:c};f.call(a,l,k.os);return a};this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}};this.getUA=function(){return l};this.setUA=function(a){l=a;return this};return this};
 | 
				
			||||||
 | 
					g.VERSION="0.7.18";g.BROWSER={NAME:"name",MAJOR:"major",VERSION:"version"};g.CPU={ARCHITECTURE:"architecture"};g.DEVICE={MODEL:"model",VENDOR:"vendor",TYPE:"type",CONSOLE:"console",MOBILE:"mobile",SMARTTV:"smarttv",TABLET:"tablet",WEARABLE:"wearable",EMBEDDED:"embedded"};g.ENGINE={NAME:"name",VERSION:"version"};g.OS={NAME:"name",VERSION:"version"};"undefined"!==typeof b?("undefined"!==typeof d&&d.exports&&(b=d.exports=g),b.UAParser=g):a&&(a.UAParser=g);var p=a&&(a.jQuery||a.Zepto);if("undefined"!==
 | 
				
			||||||
 | 
					typeof p){var u=new g;p.ua=u.getResult();p.ua.get=function(){return u.getUA()};p.ua.set=function(a){u.setUA(a);a=u.getResult();for(var b in a)p.ua[b]=a[b]}}})("object"===typeof window?window:this)},{}]},{},[1])(1)});
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								public/favicon.ico
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								public/favicon.ico
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 264 KiB  | 
							
								
								
									
										22
									
								
								src/App.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								src/App.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					<script setup lang="ts">
 | 
				
			||||||
 | 
					import BJ_Casino_Deeplink from './components/BJ_Casino_Deeplink.vue';
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<template>
 | 
				
			||||||
 | 
					    <BJ_Casino_Deeplink />
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<style>
 | 
				
			||||||
 | 
					@import url('../src/assets/fonts.css');
 | 
				
			||||||
 | 
					@import url('../src/assets/mystyle.css');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#app {
 | 
				
			||||||
 | 
					    font-family: Avenir, Helvetica, Arial, sans-serif;
 | 
				
			||||||
 | 
					    -webkit-font-smoothing: antialiased;
 | 
				
			||||||
 | 
					    -moz-osx-font-smoothing: grayscale;
 | 
				
			||||||
 | 
					    /* text-align: center; */
 | 
				
			||||||
 | 
					    color: #2671d4;
 | 
				
			||||||
 | 
					    margin-top: 0px;
 | 
				
			||||||
 | 
					    font-family: 'Zen Maru Gothic', sans-serif;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
							
								
								
									
										13
									
								
								src/assets/fonts.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								src/assets/fonts.css
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
				
			|||||||
 | 
					@font-face {
 | 
				
			||||||
 | 
					    /* 重命名字体名 */
 | 
				
			||||||
 | 
					    font-family: 'Zen Maru Gothic';
 | 
				
			||||||
 | 
					    src: url('./fonts/ZenMaruGothic-Regular.ttf');
 | 
				
			||||||
 | 
					    font-weight: normal;
 | 
				
			||||||
 | 
					    font-style: normal;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.btn {
 | 
				
			||||||
 | 
					    font-size: 25px;
 | 
				
			||||||
 | 
					    /* width: 200px; */
 | 
				
			||||||
 | 
					    /* height: 60px; */
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								src/assets/fonts/ZenMaruGothic-Regular.ttf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/assets/fonts/ZenMaruGothic-Regular.ttf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								src/assets/icon.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/assets/icon.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 593 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								src/assets/logo.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/assets/logo.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 6.7 KiB  | 
							
								
								
									
										62
									
								
								src/assets/mystyle.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								src/assets/mystyle.css
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,62 @@
 | 
				
			|||||||
 | 
					/* The switch - the box around the slider */
 | 
				
			||||||
 | 
					.switch {
 | 
				
			||||||
 | 
					  position: relative;
 | 
				
			||||||
 | 
					  display: inline-block;
 | 
				
			||||||
 | 
					  width: 60px;
 | 
				
			||||||
 | 
					  height: 34px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Hide default HTML checkbox */
 | 
				
			||||||
 | 
					.switch input {
 | 
				
			||||||
 | 
					  opacity: 0;
 | 
				
			||||||
 | 
					  width: 0;
 | 
				
			||||||
 | 
					  height: 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* The slider */
 | 
				
			||||||
 | 
					.slider {
 | 
				
			||||||
 | 
					  position: absolute;
 | 
				
			||||||
 | 
					  cursor: pointer;
 | 
				
			||||||
 | 
					  top: 0;
 | 
				
			||||||
 | 
					  left: 0;
 | 
				
			||||||
 | 
					  right: 0;
 | 
				
			||||||
 | 
					  bottom: 0;
 | 
				
			||||||
 | 
					  background-color: #ccc;
 | 
				
			||||||
 | 
					  -webkit-transition: .4s;
 | 
				
			||||||
 | 
					  transition: .4s;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.slider:before {
 | 
				
			||||||
 | 
					  position: absolute;
 | 
				
			||||||
 | 
					  content: "";
 | 
				
			||||||
 | 
					  height: 26px;
 | 
				
			||||||
 | 
					  width: 26px;
 | 
				
			||||||
 | 
					  left: 4px;
 | 
				
			||||||
 | 
					  bottom: 4px;
 | 
				
			||||||
 | 
					  background-color: white;
 | 
				
			||||||
 | 
					  -webkit-transition: .4s;
 | 
				
			||||||
 | 
					  transition: .4s;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					input:checked + .slider {
 | 
				
			||||||
 | 
					  background-color: #2196F3;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					input:focus + .slider {
 | 
				
			||||||
 | 
					  box-shadow: 0 0 1px #2196F3;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					input:checked + .slider:before {
 | 
				
			||||||
 | 
					  -webkit-transform: translateX(26px);
 | 
				
			||||||
 | 
					  -ms-transform: translateX(26px);
 | 
				
			||||||
 | 
					  transform: translateX(26px);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Rounded sliders */
 | 
				
			||||||
 | 
					.slider.round {
 | 
				
			||||||
 | 
					  border-radius: 34px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.slider.round:before {
 | 
				
			||||||
 | 
					  border-radius: 50%;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										111
									
								
								src/components/BJ_Casino_Deeplink.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										111
									
								
								src/components/BJ_Casino_Deeplink.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,111 @@
 | 
				
			|||||||
 | 
					<script setup lang="ts">
 | 
				
			||||||
 | 
					import { ref } from "vue";
 | 
				
			||||||
 | 
					import { BJ_Casino_Deeplink } from "../script/BJ_Casino_Deeplink";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const servertypeDefault = ref('')
 | 
				
			||||||
 | 
					const hostportDefault = ref('')
 | 
				
			||||||
 | 
					const patchDefault = ref('')
 | 
				
			||||||
 | 
					const servertype = ref(0)
 | 
				
			||||||
 | 
					const hostport = ref(0)
 | 
				
			||||||
 | 
					const patch = ref(0)
 | 
				
			||||||
 | 
					const iscustom = ref(false)
 | 
				
			||||||
 | 
					const input3 = ref('')
 | 
				
			||||||
 | 
					const self = {
 | 
				
			||||||
 | 
					    servertypeDefault: servertypeDefault,
 | 
				
			||||||
 | 
					    hostportDefault: hostportDefault,
 | 
				
			||||||
 | 
					    patchDefault: patchDefault,
 | 
				
			||||||
 | 
					    servertype: servertype,
 | 
				
			||||||
 | 
					    hostport: hostport,
 | 
				
			||||||
 | 
					    patch: patch,
 | 
				
			||||||
 | 
					    iscustom: iscustom,
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					const Script = new BJ_Casino_Deeplink(self);
 | 
				
			||||||
 | 
					const ServertypeData = Script.GetServerType();
 | 
				
			||||||
 | 
					const HostportData = Script.GetHostport();
 | 
				
			||||||
 | 
					const Patch = Script.GetPatch();
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<template>
 | 
				
			||||||
 | 
					    <div>
 | 
				
			||||||
 | 
					        <h1>
 | 
				
			||||||
 | 
					            <div>
 | 
				
			||||||
 | 
					                servertype:
 | 
				
			||||||
 | 
					                <el-select v-model="servertypeDefault" filterable
 | 
				
			||||||
 | 
					                    @change="(data: any) => { Script.SelectServertype(data) }">
 | 
				
			||||||
 | 
					                    <el-option v-for="(item, index) in ServertypeData" :key="item.value" :label="item.label"
 | 
				
			||||||
 | 
					                        :value="item.value" />
 | 
				
			||||||
 | 
					                </el-select>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					            <div>
 | 
				
			||||||
 | 
					                hostport:
 | 
				
			||||||
 | 
					                <el-select v-model="hostportDefault" filterable
 | 
				
			||||||
 | 
					                    @change="(data: any) => { Script.SelectHostport(data) }">
 | 
				
			||||||
 | 
					                    <el-option v-for="(item, index) in HostportData" :key="item.value" :label="item.label"
 | 
				
			||||||
 | 
					                        :value="item.value" />
 | 
				
			||||||
 | 
					                </el-select>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					            <div>
 | 
				
			||||||
 | 
					                patch:
 | 
				
			||||||
 | 
					                <el-select v-model="patchDefault" filterable @change="(data: any) => { Script.SelectPatch(data) }">
 | 
				
			||||||
 | 
					                    <el-option v-for="(item, index) in Patch" :key="item.value" :label="item.label"
 | 
				
			||||||
 | 
					                        :value="item.value" />
 | 
				
			||||||
 | 
					                </el-select>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					            <div>
 | 
				
			||||||
 | 
					                使用自己帶進來的URL參數
 | 
				
			||||||
 | 
					                <label class="switch">
 | 
				
			||||||
 | 
					                    <input type="checkbox" id="iscustom">
 | 
				
			||||||
 | 
					                    <span class="slider"></span>
 | 
				
			||||||
 | 
					                </label>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					            <el-button type="success" @click.native="() => { Script.OnclickOpen() }" size="large" round>開啟遊戲>>
 | 
				
			||||||
 | 
					            </el-button>
 | 
				
			||||||
 | 
					            <br>
 | 
				
			||||||
 | 
					            <el-button type="primary" @click.native="() => { Script.Install_Debug() }" size="large" round>
 | 
				
			||||||
 | 
					                安裝Debug>>
 | 
				
			||||||
 | 
					            </el-button>
 | 
				
			||||||
 | 
					            <br>
 | 
				
			||||||
 | 
					            <el-button type="primary" @click.native="() => { Script.Install_Release() }" size="large" round>
 | 
				
			||||||
 | 
					                安裝Release>></el-button>
 | 
				
			||||||
 | 
					            <br>
 | 
				
			||||||
 | 
					            <el-button type="primary" @click.native="() => { Script.Install_Release_Debug() }" size="large" round>
 | 
				
			||||||
 | 
					                安裝Release(可看log)>></el-button>
 | 
				
			||||||
 | 
					            <br>
 | 
				
			||||||
 | 
					            <el-button type="primary" @click.native="() => { Script.Install_B2B() }" size="large" round>安裝B2B>>
 | 
				
			||||||
 | 
					            </el-button>
 | 
				
			||||||
 | 
					            <br>
 | 
				
			||||||
 | 
					            <el-button type="primary" @click.native="() => { Script.Install_JM() }" size="large" round>安裝建喵版>>
 | 
				
			||||||
 | 
					            </el-button>
 | 
				
			||||||
 | 
					            <br>
 | 
				
			||||||
 | 
					            <el-button type="primary" @click.native="() => { Script.Install_Store() }" size="large" round>APP商店>>
 | 
				
			||||||
 | 
					            </el-button>
 | 
				
			||||||
 | 
					            <br>
 | 
				
			||||||
 | 
					            <el-button type="primary" @click.native="() => { Script.Install_Bowei() }" size="large" round>安裝柏威版>>
 | 
				
			||||||
 | 
					            </el-button>
 | 
				
			||||||
 | 
					            <div>
 | 
				
			||||||
 | 
					                <el-button type="warning" @click.native="() => { Script.Install_InternalTest(input3) }" size="large"
 | 
				
			||||||
 | 
					                    round>
 | 
				
			||||||
 | 
					                    前往
 | 
				
			||||||
 | 
					                </el-button>
 | 
				
			||||||
 | 
					                <el-input v-model="input3" placeholder="Google Play商店(內部測試) 版本號" class="input-with-select"
 | 
				
			||||||
 | 
					                    style="width:25%; font-size:25px; text-align">
 | 
				
			||||||
 | 
					                </el-input>
 | 
				
			||||||
 | 
					                Google Play商店(內部測試) 版本號
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					            <br>
 | 
				
			||||||
 | 
					            <a href="bjcasino://get/message?ClearAllCache">清空資料>></a>
 | 
				
			||||||
 | 
					            <br><br>
 | 
				
			||||||
 | 
					            <a href="bjcasino://get/message?GetOtherUserProfile=100000185">跟建喵做朋友>></a>
 | 
				
			||||||
 | 
					            <br><br>
 | 
				
			||||||
 | 
					            <a href="bjcasino://get/message?GetOtherUserProfile=100000157">跟豆豆做朋友>></a>
 | 
				
			||||||
 | 
					            <br><br>
 | 
				
			||||||
 | 
					            <a href="bjcasino://get/message?GetOtherUserProfile=100000148">跟柏威做朋友>></a>
 | 
				
			||||||
 | 
					            <br><br>
 | 
				
			||||||
 | 
					            <a href="bjcasino://get/message?OnClickChatAndChat=100000157">跟豆豆聊聊天>></a>
 | 
				
			||||||
 | 
					            <br><br>
 | 
				
			||||||
 | 
					            <a href="http://org.vicking.bj">Test>></a>
 | 
				
			||||||
 | 
					            <!-- http://220.134.195.1/public/bonus_casino/html5/jianmiau/SD_Casino_Deeplink/apple-app-site-association -->
 | 
				
			||||||
 | 
					            <br><br>
 | 
				
			||||||
 | 
					        </h1>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
							
								
								
									
										58
									
								
								src/components/HelloWorld.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								src/components/HelloWorld.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,58 @@
 | 
				
			|||||||
 | 
					<script setup lang="ts">
 | 
				
			||||||
 | 
					import { ref } from "vue";
 | 
				
			||||||
 | 
					import { HelloWorld } from "../script/HelloWorld";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const self = {
 | 
				
			||||||
 | 
					    msg: ref('Hello Vue 3 + TypeScript'),
 | 
				
			||||||
 | 
					    count: ref(0),
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					const HW = new HelloWorld(self);
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<template>
 | 
				
			||||||
 | 
					    <h1>{{ self.msg.value }}</h1>
 | 
				
			||||||
 | 
					    <button @click="HW.HandleChangeString">handleChangeString</button>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <p>
 | 
				
			||||||
 | 
					        Recommended IDE setup:
 | 
				
			||||||
 | 
					        <a href="https://code.visualstudio.com/" target="_blank">VSCode</a>
 | 
				
			||||||
 | 
					        +
 | 
				
			||||||
 | 
					        <a href="https://github.com/johnsoncodehk/volar" target="_blank">Volar</a>
 | 
				
			||||||
 | 
					    </p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <p>
 | 
				
			||||||
 | 
					        See
 | 
				
			||||||
 | 
					        <code>README.md</code> for more information.
 | 
				
			||||||
 | 
					    </p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <p>
 | 
				
			||||||
 | 
					        <a href="https://vitejs.dev/guide/features.html" target="_blank">Vite Docs</a>
 | 
				
			||||||
 | 
					        |
 | 
				
			||||||
 | 
					        <a href="https://v3.vuejs.org/" target="_blank">Vue 3 Docs</a>
 | 
				
			||||||
 | 
					    </p>
 | 
				
			||||||
 | 
					    count is: {{ self.count }}
 | 
				
			||||||
 | 
					    <br />
 | 
				
			||||||
 | 
					    <button type="button" @click="HW.AddCount">AddCount</button>
 | 
				
			||||||
 | 
					    <p>
 | 
				
			||||||
 | 
					        Edit
 | 
				
			||||||
 | 
					        <code>components/HelloWorld.vue</code> to test hot module replacement.
 | 
				
			||||||
 | 
					    </p>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<style scoped>
 | 
				
			||||||
 | 
					a {
 | 
				
			||||||
 | 
					    color: #42b983;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					label {
 | 
				
			||||||
 | 
					    margin: 0 0.5em;
 | 
				
			||||||
 | 
					    font-weight: bold;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					code {
 | 
				
			||||||
 | 
					    background-color: #eee;
 | 
				
			||||||
 | 
					    padding: 2px 4px;
 | 
				
			||||||
 | 
					    border-radius: 4px;
 | 
				
			||||||
 | 
					    color: #304455;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
							
								
								
									
										8
									
								
								src/env.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								src/env.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					/// <reference types="vite/client" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					declare module '*.vue' {
 | 
				
			||||||
 | 
					  import type { DefineComponent } from 'vue'
 | 
				
			||||||
 | 
					  // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types
 | 
				
			||||||
 | 
					  const component: DefineComponent<{}, {}, any>
 | 
				
			||||||
 | 
					  export default component
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										10
									
								
								src/main.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								src/main.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					import 'bootstrap';
 | 
				
			||||||
 | 
					import 'bootstrap/dist/css/bootstrap.min.css';
 | 
				
			||||||
 | 
					import ElementPlus from 'element-plus';
 | 
				
			||||||
 | 
					import 'element-plus/dist/index.css';
 | 
				
			||||||
 | 
					import locale from 'element-plus/lib/locale/lang/zh-tw';
 | 
				
			||||||
 | 
					import { createApp } from 'vue';
 | 
				
			||||||
 | 
					import App from './App.vue';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					createApp(App).use(ElementPlus, { locale }).mount('#app')
 | 
				
			||||||
							
								
								
									
										409
									
								
								src/script/BJ_Casino_Deeplink.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										409
									
								
								src/script/BJ_Casino_Deeplink.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,409 @@
 | 
				
			|||||||
 | 
					export class BJ_Casino_Deeplink {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //#region public
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Servertype: any[] = [5, ["不選擇版本", "Web", "Out", "Submit", "Internal_release", "Internal_Dev"]];
 | 
				
			||||||
 | 
					    public Hostport: any[] = [1, ["不選擇環境", "內版", "肉乾", "賴宏", "40", "送審", "外版", "testing1", "testing2", "testing3"]];
 | 
				
			||||||
 | 
					    public Patch: any[] = [1, [
 | 
				
			||||||
 | 
					        "不選擇資源路徑",
 | 
				
			||||||
 | 
					        "內版",
 | 
				
			||||||
 | 
					        "B2B",
 | 
				
			||||||
 | 
					        "送審",
 | 
				
			||||||
 | 
					        "外版",
 | 
				
			||||||
 | 
					        "alex",
 | 
				
			||||||
 | 
					        "bowei",
 | 
				
			||||||
 | 
					        "建喵-內版",
 | 
				
			||||||
 | 
					        "建喵-B2B",
 | 
				
			||||||
 | 
					        "建喵-送審",
 | 
				
			||||||
 | 
					        "建喵-外版"
 | 
				
			||||||
 | 
					    ]];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //#endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //#region private
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private _client: any;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private _u = navigator.userAgent;
 | 
				
			||||||
 | 
					    private _isAndroid = this._u.indexOf('Android') > -1 || this._u.indexOf('Adr') > -1;
 | 
				
			||||||
 | 
					    private _isiOS = !!this._u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //#endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //#region Lifecycle
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    constructor(client: any) {
 | 
				
			||||||
 | 
					        this._client = client;
 | 
				
			||||||
 | 
					        this.onLoad();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public onLoad() {
 | 
				
			||||||
 | 
					        this._client.servertype.value = this.Servertype[0];
 | 
				
			||||||
 | 
					        this._client.hostport.value = this.Hostport[0];
 | 
				
			||||||
 | 
					        this._client.patch.value = this.Patch[0];
 | 
				
			||||||
 | 
					        this._client.servertypeDefault.value = this.Servertype[1][this._client.servertype.value];
 | 
				
			||||||
 | 
					        this._client.hostportDefault.value = this.Hostport[1][this._client.hostport.value];
 | 
				
			||||||
 | 
					        this._client.patchDefault.value = this.Patch[1][this._client.patch.value];
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //#endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //#region Get Data
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public SelectServertype(data: any) {
 | 
				
			||||||
 | 
					        // data为el-option上:value绑定的对象
 | 
				
			||||||
 | 
					        this._client.servertype.value = data;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public SelectHostport(data: any) {
 | 
				
			||||||
 | 
					        // data为el-option上:value绑定的对象
 | 
				
			||||||
 | 
					        this._client.hostport.value = data;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public SelectPatch(data: any) {
 | 
				
			||||||
 | 
					        // data为el-option上:value绑定的对象
 | 
				
			||||||
 | 
					        this._client.patch.value = data;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //#endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //#region Get Data
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public GetServerType(): { key: string; value: string; label: string; }[] {
 | 
				
			||||||
 | 
					        const servertypes: any[] = this.Servertype[1];
 | 
				
			||||||
 | 
					        let options: any[] = [];
 | 
				
			||||||
 | 
					        for (let i: number = 0; i < servertypes.length; i++) {
 | 
				
			||||||
 | 
					            const servertype = servertypes[i];
 | 
				
			||||||
 | 
					            options.push({
 | 
				
			||||||
 | 
					                value: i,
 | 
				
			||||||
 | 
					                label: servertype
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return options;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public GetHostport(): { key: string; value: string; label: string; }[] {
 | 
				
			||||||
 | 
					        const hostports: any[] = this.Hostport[1];
 | 
				
			||||||
 | 
					        let options: any[] = [];
 | 
				
			||||||
 | 
					        for (let i: number = 0; i < hostports.length; i++) {
 | 
				
			||||||
 | 
					            const hostport = hostports[i];
 | 
				
			||||||
 | 
					            options.push({
 | 
				
			||||||
 | 
					                value: i,
 | 
				
			||||||
 | 
					                label: hostport
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return options;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public GetPatch(): { key: string; value: string; label: string; }[] {
 | 
				
			||||||
 | 
					        const patchs: any[] = this.Patch[1];
 | 
				
			||||||
 | 
					        let options: any[] = [];
 | 
				
			||||||
 | 
					        for (let i: number = 0; i < patchs.length; i++) {
 | 
				
			||||||
 | 
					            const patch = patchs[i];
 | 
				
			||||||
 | 
					            options.push({
 | 
				
			||||||
 | 
					                value: i,
 | 
				
			||||||
 | 
					                label: patch
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return options;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //#endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //#region Custom
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Install_Debug() {
 | 
				
			||||||
 | 
					        if (this._isAndroid) {
 | 
				
			||||||
 | 
					            window.open("https://dl.dropboxusercontent.com/s/aoh4p9vs1lrofy2/BJ_Casino-debug.apk?v=" + Date.now(), '_self');
 | 
				
			||||||
 | 
					        } else if (this._isiOS) {
 | 
				
			||||||
 | 
					            window.open("itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/s/z390yysswqiiii4/BJ_Casino-debug.plist", '_self');
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            window.open("https://dl.dropboxusercontent.com/s/aoh4p9vs1lrofy2/BJ_Casino-debug.apk?v=" + Date.now(), '_blank');
 | 
				
			||||||
 | 
					            window.open("https://dl.dropboxusercontent.com/s/4ki0rglk4w01ian/BJ_Casino-debug.ipa", '_blank');
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Install_Release() {
 | 
				
			||||||
 | 
					        if (this._isAndroid) {
 | 
				
			||||||
 | 
					            window.open("https://dl.dropboxusercontent.com/s/6mjrw913u6ma5w8/BJ_Casino-release.apk?v=" + Date.now(), '_self');
 | 
				
			||||||
 | 
					        } else if (this._isiOS) {
 | 
				
			||||||
 | 
					            window.open("itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/s/9qckj6t66jgb6rw/BJ_Casino-release.plist", '_self');
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            window.open("https://dl.dropboxusercontent.com/s/6mjrw913u6ma5w8/BJ_Casino-release.apk?v=" + Date.now(), '_blank');
 | 
				
			||||||
 | 
					            window.open("https://dl.dropboxusercontent.com/s/hyyswyun3m42qbk/BJ_Casino-release.ipa?v=" + Date.now(), '_blank');
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Install_Release_Debug() {
 | 
				
			||||||
 | 
					        if (this._isAndroid) {
 | 
				
			||||||
 | 
					            window.open("https://dl.dropboxusercontent.com/s/16m2b5sncymj6f9/BJ_Casino-release-debug.apk?v=" + Date.now(), '_self');
 | 
				
			||||||
 | 
					        } else if (this._isiOS) {
 | 
				
			||||||
 | 
					            window.open("itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/s/wixnsxbc7ctk87f/BJ_Casino-release-debug.plist", '_self');
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            window.open("https://dl.dropboxusercontent.com/s/16m2b5sncymj6f9/BJ_Casino-release-debug.apk?v=" + Date.now(), '_blank');
 | 
				
			||||||
 | 
					            window.open("https://dl.dropboxusercontent.com/s/f6qjm1gk8jjvmhx/BJ_Casino-release-debug.ipa?v=" + Date.now(), '_blank');
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Install_B2B() {
 | 
				
			||||||
 | 
					        if (this._isAndroid) {
 | 
				
			||||||
 | 
					            window.open("https://dl.dropboxusercontent.com/s/g66xrcdfj9e093i/BJ_Casino-B2B.apk?v=" + Date.now(), '_self');
 | 
				
			||||||
 | 
					        } else if (this._isiOS) {
 | 
				
			||||||
 | 
					            window.open("itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/s/rrs1ev3llogrm0a/BJ_Casino-B2B.plist", '_self');
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            window.open("https://dl.dropboxusercontent.com/s/g66xrcdfj9e093i/BJ_Casino-B2B.apk?v=" + Date.now(), '_blank');
 | 
				
			||||||
 | 
					            window.open("https://dl.dropboxusercontent.com/s/fm79uc9ygrnzone/BJ_Casino-B2B.ipa?v=" + Date.now(), '_blank');
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Install_JM() {
 | 
				
			||||||
 | 
					        if (this._isAndroid) {
 | 
				
			||||||
 | 
					            window.open("https://dl.dropboxusercontent.com/s/9zlj6og4octmim8/BJ_Casino-JM.apk?v=" + Date.now(), '_self');
 | 
				
			||||||
 | 
					        } else if (this._isiOS) {
 | 
				
			||||||
 | 
					            window.open("itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/s/23mx7l7cchbvjcv/BJ_Casino-JM.plist", '_self');
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            window.open("https://dl.dropboxusercontent.com/s/9zlj6og4octmim8/BJ_Casino-JM.apk?v=" + Date.now(), '_blank');
 | 
				
			||||||
 | 
					            window.open("https://dl.dropboxusercontent.com/s/dwlil2rbfe1wi13/BJ_Casino-JM.ipa?v=" + Date.now(), '_blank');
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Install_Store() {
 | 
				
			||||||
 | 
					        if (this._isAndroid) {
 | 
				
			||||||
 | 
					            window.open("https://play.google.com/store/apps/details?id=org.vicking.bj_casino", '_self');
 | 
				
			||||||
 | 
					        } else if (this._isiOS) {
 | 
				
			||||||
 | 
					            window.open("https://apps.apple.com/tw/app/爆機娛樂城/id1593328573", '_self');
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            window.open("https://play.google.com/store/apps/details?id=org.vicking.bj_casino", '_blank');
 | 
				
			||||||
 | 
					            window.open("https://apps.apple.com/tw/app/爆機娛樂城/id1593328573", '_blank');
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Install_Bowei() {
 | 
				
			||||||
 | 
					        if (this._isAndroid) {
 | 
				
			||||||
 | 
					            window.open("http://220.134.195.1/public/bonus_casino/html5/bowei/BJ_Casino-debug.apk?v=" + Date.now(), '_self');
 | 
				
			||||||
 | 
					        } else if (this._isiOS) {
 | 
				
			||||||
 | 
					            alert("iOS不提供");
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            window.open("http://220.134.195.1/public/bonus_casino/html5/bowei/BJ_Casino-debug.apk?v=" + Date.now(), '_blank');
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Install_InternalTest(InternalTest: number): void {
 | 
				
			||||||
 | 
					        // let InternalTest = document.getElementById("InternalTest").value;
 | 
				
			||||||
 | 
					        // let InternalTest = "";
 | 
				
			||||||
 | 
					        if (this._isAndroid && InternalTest) {
 | 
				
			||||||
 | 
					            window.open(`https://play.google.com/apps/test/org.vicking.bj_casino/${InternalTest}`, '_self');
 | 
				
			||||||
 | 
					        } else if (this._isiOS) {
 | 
				
			||||||
 | 
					            alert("iOS不提供");
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            window.open(`https://play.google.com/apps/test/org.vicking.bj_casino/${InternalTest}`, '_blank');
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public OnclickOpen() {
 | 
				
			||||||
 | 
					        let hostport = this._client.hostport.value;
 | 
				
			||||||
 | 
					        let servertype = +this._client.servertype.value;
 | 
				
			||||||
 | 
					        let patch = +this._client.patch.value;
 | 
				
			||||||
 | 
					        let E_iscustom: any = document.getElementById("iscustom");
 | 
				
			||||||
 | 
					        let iscustom = E_iscustom.checked;
 | 
				
			||||||
 | 
					        let URLscheme: any = {};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        switch (servertype) {
 | 
				
			||||||
 | 
					            case 0: {
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            default: {
 | 
				
			||||||
 | 
					                URLscheme["servertype"] = servertype;
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        switch (hostport) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // 不選擇環境
 | 
				
			||||||
 | 
					            case 0: {
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // 外網連內版
 | 
				
			||||||
 | 
					            case 1: {
 | 
				
			||||||
 | 
					                URLscheme["host"] = "http://220.134.195.1";
 | 
				
			||||||
 | 
					                URLscheme["port"] = "19005";
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // 肉乾
 | 
				
			||||||
 | 
					            case 2: {
 | 
				
			||||||
 | 
					                URLscheme["host"] = "http://192.168.5.230";
 | 
				
			||||||
 | 
					                URLscheme["port"] = "9006";
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // 賴宏
 | 
				
			||||||
 | 
					            case 3: {
 | 
				
			||||||
 | 
					                URLscheme["host"] = "http://192.168.5.134";
 | 
				
			||||||
 | 
					                URLscheme["port"] = "9005";
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // 40
 | 
				
			||||||
 | 
					            case 4: {
 | 
				
			||||||
 | 
					                URLscheme["host"] = "http://192.168.5.12";
 | 
				
			||||||
 | 
					                URLscheme["port"] = "9487";
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // 送審
 | 
				
			||||||
 | 
					            case 5: {
 | 
				
			||||||
 | 
					                URLscheme["host"] = "https://submit.online-bj.com";
 | 
				
			||||||
 | 
					                URLscheme["port"] = "9005";
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // 外版
 | 
				
			||||||
 | 
					            case 6: {
 | 
				
			||||||
 | 
					                URLscheme["host"] = "https://game.online-bj.com";
 | 
				
			||||||
 | 
					                URLscheme["port"] = "9005";
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // testing1
 | 
				
			||||||
 | 
					            case 7: {
 | 
				
			||||||
 | 
					                URLscheme["host"] = "http://bj-testing1.casino.catan.com.tw";
 | 
				
			||||||
 | 
					                URLscheme["port"] = "9005";
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // testing2
 | 
				
			||||||
 | 
					            case 8: {
 | 
				
			||||||
 | 
					                URLscheme["host"] = "http://bj-testing2.casino.catan.com.tw";
 | 
				
			||||||
 | 
					                URLscheme["port"] = "9005";
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // testing3
 | 
				
			||||||
 | 
					            case 9: {
 | 
				
			||||||
 | 
					                URLscheme["host"] = "http://bj-testing3.casino.catan.com.tw";
 | 
				
			||||||
 | 
					                URLscheme["port"] = "9005";
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            default: {
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        switch (patch) {
 | 
				
			||||||
 | 
					            //   "https://patch.online-bj.com/game/",
 | 
				
			||||||
 | 
					            //   "https://patch-submit.online-bj.com/game/",
 | 
				
			||||||
 | 
					            //   "http://220.134.195.1/public/bonus_casino/html5/alex/APPBundleTest/",
 | 
				
			||||||
 | 
					            //   "http://220.134.195.1/public/bonus_casino/html5/jianmiau/Bundle/",
 | 
				
			||||||
 | 
					            //   "http://patch-release.online-bj.com/",
 | 
				
			||||||
 | 
					            //   "http://patch-dev.online-bj.com/",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            case 0: {
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // Dev
 | 
				
			||||||
 | 
					            case 1: {
 | 
				
			||||||
 | 
					                URLscheme["patch"] = "http://patch-dev.online-bj.com/";
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // B2B
 | 
				
			||||||
 | 
					            case 2: {
 | 
				
			||||||
 | 
					                URLscheme["patch"] = "http://patch-release.online-bj.com/";
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // 送審
 | 
				
			||||||
 | 
					            case 3: {
 | 
				
			||||||
 | 
					                URLscheme["patch"] = "https://patch-submit.online-bj.com/game/";
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // 外版
 | 
				
			||||||
 | 
					            case 4: {
 | 
				
			||||||
 | 
					                URLscheme["patch"] = "https://patch.online-bj.com/game/";
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // alex
 | 
				
			||||||
 | 
					            case 5: {
 | 
				
			||||||
 | 
					                URLscheme["patch"] = "http://220.134.195.1/public/bonus_casino/html5/alex/Bundle/";
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // bowei
 | 
				
			||||||
 | 
					            case 6: {
 | 
				
			||||||
 | 
					                URLscheme["patch"] = "http://220.134.195.1/public/bonus_casino/html5/bowei/Bundle/";
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // jianmiau-Dev
 | 
				
			||||||
 | 
					            case 7: {
 | 
				
			||||||
 | 
					                // URLscheme["patch"] = "http://220.134.195.1/public/bonus_casino/html5/jianmiau/Bundle/";
 | 
				
			||||||
 | 
					                URLscheme["patch"] = "http://192.168.5.36/Source/_BJ_Source/BJ-Internal-Dev/";
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // jianmiau-Release
 | 
				
			||||||
 | 
					            case 8: {
 | 
				
			||||||
 | 
					                URLscheme["patch"] = "http://192.168.5.36/Source/_BJ_Source/BJ-Internal-Release/";
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // jianmiau-Submit
 | 
				
			||||||
 | 
					            case 9: {
 | 
				
			||||||
 | 
					                URLscheme["patch"] = "http://192.168.5.36/Source/_BJ_Source/BJ-Submit/";
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // jianmiau-Out
 | 
				
			||||||
 | 
					            case 10: {
 | 
				
			||||||
 | 
					                URLscheme["patch"] = "http://192.168.5.36/Source/_BJ_Source/BJ-Out/";
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            default: {
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            // case 0: {
 | 
				
			||||||
 | 
					            //   break;
 | 
				
			||||||
 | 
					            // }
 | 
				
			||||||
 | 
					            // default: {
 | 
				
			||||||
 | 
					            //   URLscheme["patch"] = document.getElementById("patch").options[patch].label;
 | 
				
			||||||
 | 
					            //   break;
 | 
				
			||||||
 | 
					            // }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        let url = "";
 | 
				
			||||||
 | 
					        if (iscustom) {
 | 
				
			||||||
 | 
					            let URLscheme = new URL(location.href);
 | 
				
			||||||
 | 
					            if (this._isiOS || this._isAndroid) {
 | 
				
			||||||
 | 
					                url = `bjcasino://get/message${URLscheme.search}`;
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                url = `http://192.168.5.108:7456/phone.html${URLscheme.search}`;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            let _URLSearchParams = new URLSearchParams(URLscheme).toString();
 | 
				
			||||||
 | 
					            let _decodeURI = decodeURIComponent(_URLSearchParams);
 | 
				
			||||||
 | 
					            if (this._isiOS || this._isAndroid) {
 | 
				
			||||||
 | 
					                url = `bjcasino://get/message${_decodeURI ? `?${_decodeURI}` : ""}`;
 | 
				
			||||||
 | 
					            } else {
 | 
				
			||||||
 | 
					                url = `http://192.168.5.108:7456/phone.html${_decodeURI ? `?${_decodeURI}` : ""}`;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if (this._isiOS || this._isAndroid) {
 | 
				
			||||||
 | 
					            window.open(url, '_self');
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            window.open(url, '_blank');
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //#endregion
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										28
									
								
								src/script/HelloWorld.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								src/script/HelloWorld.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					export class HelloWorld {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //#region private
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private _client: any;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //#endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //#region Lifecycle
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    constructor(client: any) {
 | 
				
			||||||
 | 
					        this._client = client;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public HandleChangeString() {
 | 
				
			||||||
 | 
					        this._client.msg.value = "ChangeString HelloWorld";
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public AddCount() {
 | 
				
			||||||
 | 
					        this._client.count.value++;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //#endregion
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										28
									
								
								tsconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								tsconfig.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					    "compilerOptions": {
 | 
				
			||||||
 | 
					        "target": "esnext",
 | 
				
			||||||
 | 
					        "useDefineForClassFields": true,
 | 
				
			||||||
 | 
					        "module": "esnext",
 | 
				
			||||||
 | 
					        "moduleResolution": "node",
 | 
				
			||||||
 | 
					        "strict": true,
 | 
				
			||||||
 | 
					        "jsx": "preserve",
 | 
				
			||||||
 | 
					        "sourceMap": true,
 | 
				
			||||||
 | 
					        "resolveJsonModule": true,
 | 
				
			||||||
 | 
					        "esModuleInterop": true,
 | 
				
			||||||
 | 
					        "lib": [
 | 
				
			||||||
 | 
					            "esnext",
 | 
				
			||||||
 | 
					            "dom"
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "include": [
 | 
				
			||||||
 | 
					        "src/**/*.ts",
 | 
				
			||||||
 | 
					        "src/**/*.d.ts",
 | 
				
			||||||
 | 
					        "src/**/*.tsx",
 | 
				
			||||||
 | 
					        "src/**/*.vue"
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    "references": [
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            "path": "./tsconfig.node.json"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										8
									
								
								tsconfig.node.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								tsconfig.node.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "compilerOptions": {
 | 
				
			||||||
 | 
					    "composite": true,
 | 
				
			||||||
 | 
					    "module": "esnext",
 | 
				
			||||||
 | 
					    "moduleResolution": "node"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "include": ["vite.config.ts"]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										8
									
								
								vite.config.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								vite.config.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					import vue from '@vitejs/plugin-vue'
 | 
				
			||||||
 | 
					import { defineConfig } from 'vite'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// https://vitejs.dev/config/
 | 
				
			||||||
 | 
					export default defineConfig({
 | 
				
			||||||
 | 
					    base: "./",
 | 
				
			||||||
 | 
					    plugins: [vue(),]
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
		Reference in New Issue
	
	Block a user