├── .gitignore
├── spa-angular
├── src
│ ├── assets
│ │ └── .gitkeep
│ ├── app
│ │ ├── hero.ts
│ │ ├── app.component.ts
│ │ ├── messages
│ │ │ ├── messages.component.html
│ │ │ ├── messages.component.ts
│ │ │ ├── messages.component.css
│ │ │ └── messages.component.spec.ts
│ │ ├── dashboard
│ │ │ ├── dashboard.component.html
│ │ │ ├── dashboard.component.ts
│ │ │ ├── dashboard.component.spec.ts
│ │ │ └── dashboard.component.css
│ │ ├── message.service.ts
│ │ ├── hero-detail
│ │ │ ├── hero-detail.component.html
│ │ │ ├── hero-detail.component.css
│ │ │ ├── hero-detail.component.spec.ts
│ │ │ └── hero-detail.component.ts
│ │ ├── hero-search
│ │ │ ├── hero-search.component.html
│ │ │ ├── hero-search.component.spec.ts
│ │ │ ├── hero-search.component.css
│ │ │ └── hero-search.component.ts
│ │ ├── hero.service.spec.ts
│ │ ├── message.service.spec.ts
│ │ ├── in-memory-data.service.spec.ts
│ │ ├── mock-heroes.ts
│ │ ├── heroes
│ │ │ ├── heroes.component.html
│ │ │ ├── heroes.component.spec.ts
│ │ │ ├── heroes.component.ts
│ │ │ └── heroes.component.css
│ │ ├── app.component.css
│ │ ├── app-routing.module.ts
│ │ ├── app.component.html
│ │ ├── in-memory-data.service.ts
│ │ ├── app.component.spec.ts
│ │ ├── app.module.ts
│ │ └── hero.service.ts
│ ├── favicon.ico
│ ├── environments
│ │ ├── environment.prod.ts
│ │ └── environment.ts
│ ├── tsconfig.app.json
│ ├── tsconfig.spec.json
│ ├── tslint.json
│ ├── browserslist
│ ├── index.html
│ ├── styles.css
│ ├── test.ts
│ ├── karma.conf.js
│ ├── main.ts
│ └── polyfills.ts
├── e2e
│ ├── src
│ │ ├── app.po.ts
│ │ └── app.e2e-spec.ts
│ ├── tsconfig.e2e.json
│ └── protractor.conf.js
├── .editorconfig
├── tsconfig.json
├── .gitignore
├── README.md
├── package.json
├── tslint.json
└── angular.json
├── spa-react
├── .env
├── public
│ ├── favicon.ico
│ ├── manifest.json
│ └── index.html
├── src
│ ├── App.css
│ ├── App.test.js
│ ├── index.css
│ ├── index.js
│ ├── App.js
│ ├── logo.svg
│ └── serviceWorker.js
├── config
│ ├── jest
│ │ ├── cssTransform.js
│ │ └── fileTransform.js
│ ├── paths.js
│ ├── env.js
│ └── webpackDevServer.config.js
├── .gitignore
├── scripts
│ ├── test.js
│ ├── start.js
│ └── build.js
├── README.md
└── package.json
├── src
├── config
│ ├── config.dev.js
│ ├── config.prod.js
│ ├── config.test.js
│ ├── index.js
│ └── config.default.js
├── common
│ ├── listener.js
│ ├── interval.js
│ ├── ws.js
│ ├── ajax.js
│ └── util.js
├── index.js
├── core
│ ├── listener
│ │ ├── beforeUnload.js
│ │ ├── popState.js
│ │ ├── visibilityChange.js
│ │ ├── pushState.js
│ │ ├── onload.js
│ │ ├── message.js
│ │ └── click.js
│ ├── sender.js
│ ├── params.js
│ ├── interval
│ │ ├── heatMap.js
│ │ └── phoneList.js
│ └── index.js
├── iframe.html
└── index.html
├── tech-stack.png
├── dist
├── vue
│ ├── favicon.ico
│ ├── img
│ │ └── logo.82b9c7a5.png
│ ├── index.html
│ ├── css
│ │ └── app.e775cd24.css
│ └── js
│ │ └── app.3d9f652a.js
├── react
│ ├── favicon.ico
│ ├── manifest.json
│ ├── static
│ │ ├── css
│ │ │ ├── main.28732bcc.chunk.css
│ │ │ └── main.28732bcc.chunk.css.map
│ │ └── js
│ │ │ ├── runtime~main.4a686d48.js
│ │ │ ├── main.80af4b44.chunk.js
│ │ │ └── runtime~main.4a686d48.js.map
│ ├── precache-manifest.1135b6be65e6d9e26e2ec6ede87ff50d.js
│ ├── asset-manifest.json
│ ├── service-worker.js
│ └── index.html
├── angular
│ ├── favicon.ico
│ ├── index.html
│ ├── runtime.js.map
│ └── runtime.js
├── iframe.html
└── index-sdk.html
├── spa-vue
├── babel.config.js
├── vue.config.js
├── public
│ ├── favicon.ico
│ └── index.html
├── src
│ ├── assets
│ │ └── logo.png
│ ├── routes.js
│ ├── components
│ │ ├── HelloWorld.vue
│ │ ├── Bar.vue
│ │ └── Foo.vue
│ ├── main.js
│ └── App.vue
├── .gitignore
├── README.md
└── package.json
├── test
├── config.test.js
└── util.test.js
├── server
├── view
│ ├── heatMap.ejs
│ ├── common
│ │ ├── footer.ejs
│ │ ├── header.ejs
│ │ └── demo.ejs
│ ├── phoneList.ejs
│ ├── demoA.ejs
│ ├── demoB.ejs
│ ├── demoC.ejs
│ └── index.ejs
├── ws.js
├── index.js
└── router.js
├── config
├── webpack.dev.js
├── webpack.prod.js
└── webpack.common.js
├── nginx.conf
├── package.json
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea/
2 | node_modules
--------------------------------------------------------------------------------
/spa-angular/src/assets/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/spa-react/.env:
--------------------------------------------------------------------------------
1 | SKIP_PREFLIGHT_CHECK=true
--------------------------------------------------------------------------------
/src/config/config.dev.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 |
3 | }
4 |
--------------------------------------------------------------------------------
/src/config/config.prod.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 |
3 | }
4 |
--------------------------------------------------------------------------------
/src/config/config.test.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 |
3 | }
4 |
--------------------------------------------------------------------------------
/tech-stack.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/drafish/dc-sdk-js/HEAD/tech-stack.png
--------------------------------------------------------------------------------
/dist/vue/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/drafish/dc-sdk-js/HEAD/dist/vue/favicon.ico
--------------------------------------------------------------------------------
/dist/react/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/drafish/dc-sdk-js/HEAD/dist/react/favicon.ico
--------------------------------------------------------------------------------
/spa-angular/src/app/hero.ts:
--------------------------------------------------------------------------------
1 | export class Hero {
2 | id: number;
3 | name: string;
4 | }
--------------------------------------------------------------------------------
/spa-vue/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/app'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/dist/angular/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/drafish/dc-sdk-js/HEAD/dist/angular/favicon.ico
--------------------------------------------------------------------------------
/spa-vue/vue.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | publicPath: 'vue',
3 | outputDir: '../dist/vue'
4 | }
--------------------------------------------------------------------------------
/spa-angular/src/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/drafish/dc-sdk-js/HEAD/spa-angular/src/favicon.ico
--------------------------------------------------------------------------------
/spa-vue/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/drafish/dc-sdk-js/HEAD/spa-vue/public/favicon.ico
--------------------------------------------------------------------------------
/spa-vue/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/drafish/dc-sdk-js/HEAD/spa-vue/src/assets/logo.png
--------------------------------------------------------------------------------
/dist/vue/img/logo.82b9c7a5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/drafish/dc-sdk-js/HEAD/dist/vue/img/logo.82b9c7a5.png
--------------------------------------------------------------------------------
/spa-angular/src/environments/environment.prod.ts:
--------------------------------------------------------------------------------
1 | export const environment = {
2 | production: true
3 | };
4 |
--------------------------------------------------------------------------------
/spa-react/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/drafish/dc-sdk-js/HEAD/spa-react/public/favicon.ico
--------------------------------------------------------------------------------
/src/config/index.js:
--------------------------------------------------------------------------------
1 | module.exports = Object.assign(require('./config.default'), require(`./config.${process.env.NODE_ENV}`))
2 |
--------------------------------------------------------------------------------
/spa-react/src/App.css:
--------------------------------------------------------------------------------
1 | .sidebar {
2 | width: 200px;
3 | float: left;
4 | }
5 |
6 | .container {
7 | width: 70%;
8 | float: left;
9 | }
10 |
--------------------------------------------------------------------------------
/spa-vue/src/routes.js:
--------------------------------------------------------------------------------
1 | import Foo from './components/Foo'
2 | import Bar from './components/Bar'
3 |
4 | const routes = [
5 | { path: '/foo', component: Foo },
6 | { path: '/bar', component: Bar }
7 | ]
8 |
9 | export default routes
--------------------------------------------------------------------------------
/spa-angular/src/tsconfig.app.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../out-tsc/app",
5 | "types": []
6 | },
7 | "exclude": [
8 | "test.ts",
9 | "**/*.spec.ts"
10 | ]
11 | }
12 |
--------------------------------------------------------------------------------
/spa-angular/e2e/src/app.po.ts:
--------------------------------------------------------------------------------
1 | import { browser, by, element } from 'protractor';
2 |
3 | export class AppPage {
4 | navigateTo() {
5 | return browser.get('/');
6 | }
7 |
8 | getTitleText() {
9 | return element(by.css('app-root h1')).getText();
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/spa-angular/e2e/tsconfig.e2e.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../out-tsc/app",
5 | "module": "commonjs",
6 | "target": "es5",
7 | "types": [
8 | "jasmine",
9 | "jasminewd2",
10 | "node"
11 | ]
12 | }
13 | }
--------------------------------------------------------------------------------
/spa-angular/src/app/app.component.ts:
--------------------------------------------------------------------------------
1 | import { Component } from '@angular/core';
2 |
3 | @Component({
4 | selector: 'app-root',
5 | templateUrl: './app.component.html',
6 | styleUrls: ['./app.component.css']
7 | })
8 | export class AppComponent {
9 | title = 'Tour of Heroes';
10 | }
11 |
--------------------------------------------------------------------------------
/spa-angular/src/app/messages/messages.component.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Messages
4 |
6 |
{{message}}
7 |
8 |
--------------------------------------------------------------------------------
/spa-react/src/App.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom';
3 | import App from './App';
4 |
5 | it('renders without crashing', () => {
6 | const div = document.createElement('div');
7 | ReactDOM.render(, div);
8 | ReactDOM.unmountComponentAtNode(div);
9 | });
10 |
--------------------------------------------------------------------------------
/test/config.test.js:
--------------------------------------------------------------------------------
1 | var expect = require('chai').expect
2 |
3 | describe('config test', function () {
4 | it('domain should be www.test.com', function () {
5 | process.env.NODE_ENV = 'test'
6 | var config = require('../src/config')
7 | expect(config.domain).to.be.equal('www.test.com')
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/spa-angular/.editorconfig:
--------------------------------------------------------------------------------
1 | # Editor configuration, see https://editorconfig.org
2 | root = true
3 |
4 | [*]
5 | charset = utf-8
6 | indent_style = space
7 | indent_size = 2
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
11 | [*.md]
12 | max_line_length = off
13 | trim_trailing_whitespace = false
14 |
--------------------------------------------------------------------------------
/spa-vue/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | /dist
4 |
5 | # local env files
6 | .env.local
7 | .env.*.local
8 |
9 | # Log files
10 | npm-debug.log*
11 | yarn-debug.log*
12 | yarn-error.log*
13 |
14 | # Editor directories and files
15 | .idea
16 | .vscode
17 | *.suo
18 | *.ntvs*
19 | *.njsproj
20 | *.sln
21 | *.sw*
22 |
--------------------------------------------------------------------------------
/spa-angular/src/app/dashboard/dashboard.component.html:
--------------------------------------------------------------------------------
1 | Top Heroes
2 |
10 |
11 |
--------------------------------------------------------------------------------
/spa-angular/src/app/message.service.ts:
--------------------------------------------------------------------------------
1 | import { Injectable } from '@angular/core';
2 |
3 | @Injectable({
4 | providedIn: 'root',
5 | })
6 | export class MessageService {
7 | messages: string[] = [];
8 |
9 | add(message: string) {
10 | this.messages.push(message);
11 | }
12 |
13 | clear() {
14 | this.messages = [];
15 | }
16 | }
--------------------------------------------------------------------------------
/spa-angular/src/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../out-tsc/spec",
5 | "types": [
6 | "jasmine",
7 | "node"
8 | ]
9 | },
10 | "files": [
11 | "test.ts",
12 | "polyfills.ts"
13 | ],
14 | "include": [
15 | "**/*.spec.ts",
16 | "**/*.d.ts"
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/src/config/config.default.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | serverUrl: 'http://localhost:8081/api',
3 | wsUrl: 'ws://localhost:8081',
4 | channelCode: 'default channelCode',
5 | token: 'default token',
6 | heatmapUrls: ["http://localhost:8081/heatMap*"],
7 | heatMapDelay: 20000,
8 | phoneListDelay: 20000,
9 | iframe: 'http://localhost:8080/iframe.html'
10 | }
11 |
--------------------------------------------------------------------------------
/dist/react/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "React App",
3 | "name": "Create React App Sample",
4 | "icons": [
5 | {
6 | "src": "favicon.ico",
7 | "sizes": "64x64 32x32 24x24 16x16",
8 | "type": "image/x-icon"
9 | }
10 | ],
11 | "start_url": ".",
12 | "display": "standalone",
13 | "theme_color": "#000000",
14 | "background_color": "#ffffff"
15 | }
16 |
--------------------------------------------------------------------------------
/spa-angular/e2e/src/app.e2e-spec.ts:
--------------------------------------------------------------------------------
1 | import { AppPage } from './app.po';
2 |
3 | describe('workspace-project App', () => {
4 | let page: AppPage;
5 |
6 | beforeEach(() => {
7 | page = new AppPage();
8 | });
9 |
10 | it('should display welcome message', () => {
11 | page.navigateTo();
12 | expect(page.getTitleText()).toEqual('Welcome to spa-angular!');
13 | });
14 | });
15 |
--------------------------------------------------------------------------------
/spa-angular/src/app/hero-detail/hero-detail.component.html:
--------------------------------------------------------------------------------
1 |
2 |
{{hero.name | uppercase}} Details
3 |
id: {{hero.id}}
4 |
5 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/spa-react/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "React App",
3 | "name": "Create React App Sample",
4 | "icons": [
5 | {
6 | "src": "favicon.ico",
7 | "sizes": "64x64 32x32 24x24 16x16",
8 | "type": "image/x-icon"
9 | }
10 | ],
11 | "start_url": ".",
12 | "display": "standalone",
13 | "theme_color": "#000000",
14 | "background_color": "#ffffff"
15 | }
16 |
--------------------------------------------------------------------------------
/server/view/heatMap.ejs:
--------------------------------------------------------------------------------
1 | <%- include('common/header', {title: title}); %>
2 | 点击 P 标签
3 |
4 | 点击 DIV 标签
5 |
6 |
15 | <%- include('common/footer'); %>
--------------------------------------------------------------------------------
/spa-angular/src/app/hero-search/hero-search.component.html:
--------------------------------------------------------------------------------
1 |
2 |
Hero Search
3 |
4 |
5 |
6 |
13 |
--------------------------------------------------------------------------------
/spa-react/config/jest/cssTransform.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | // This is a custom Jest transformer turning style imports into empty objects.
4 | // http://facebook.github.io/jest/docs/en/webpack.html
5 |
6 | module.exports = {
7 | process() {
8 | return 'module.exports = {};';
9 | },
10 | getCacheKey() {
11 | // The output is always the same.
12 | return 'cssTransform';
13 | },
14 | };
15 |
--------------------------------------------------------------------------------
/spa-angular/src/app/hero.service.spec.ts:
--------------------------------------------------------------------------------
1 | import { TestBed } from '@angular/core/testing';
2 |
3 | import { HeroService } from './hero.service';
4 |
5 | describe('HeroService', () => {
6 | beforeEach(() => TestBed.configureTestingModule({}));
7 |
8 | it('should be created', () => {
9 | const service: HeroService = TestBed.get(HeroService);
10 | expect(service).toBeTruthy();
11 | });
12 | });
13 |
--------------------------------------------------------------------------------
/spa-angular/src/tslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tslint.json",
3 | "rules": {
4 | "directive-selector": [
5 | true,
6 | "attribute",
7 | "app",
8 | "camelCase"
9 | ],
10 | "component-selector": [
11 | true,
12 | "element",
13 | "app",
14 | "kebab-case"
15 | ]
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/spa-angular/src/app/message.service.spec.ts:
--------------------------------------------------------------------------------
1 | import { TestBed } from '@angular/core/testing';
2 |
3 | import { MessageService } from './message.service';
4 |
5 | describe('MessageService', () => {
6 | beforeEach(() => TestBed.configureTestingModule({}));
7 |
8 | it('should be created', () => {
9 | const service: MessageService = TestBed.get(MessageService);
10 | expect(service).toBeTruthy();
11 | });
12 | });
13 |
--------------------------------------------------------------------------------
/spa-react/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # production
12 | /build
13 |
14 | # misc
15 | .DS_Store
16 | .env.local
17 | .env.development.local
18 | .env.test.local
19 | .env.production.local
20 |
21 | npm-debug.log*
22 | yarn-debug.log*
23 | yarn-error.log*
24 |
--------------------------------------------------------------------------------
/dist/react/static/css/main.28732bcc.chunk.css:
--------------------------------------------------------------------------------
1 | body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.sidebar{width:200px;float:left}.container{width:70%;float:left}
2 | /*# sourceMappingURL=main.28732bcc.chunk.css.map */
--------------------------------------------------------------------------------
/spa-angular/src/browserslist:
--------------------------------------------------------------------------------
1 | # This file is currently used by autoprefixer to adjust CSS to support the below specified browsers
2 | # For additional information regarding the format and rule options, please see:
3 | # https://github.com/browserslist/browserslist#queries
4 | #
5 | # For IE 9-11 support, please remove 'not' from the last line of the file and adjust as needed
6 |
7 | > 0.5%
8 | last 2 versions
9 | Firefox ESR
10 | not dead
11 | not IE 9-11
--------------------------------------------------------------------------------
/spa-angular/src/app/in-memory-data.service.spec.ts:
--------------------------------------------------------------------------------
1 | import { TestBed } from '@angular/core/testing';
2 |
3 | import { InMemoryDataService } from './in-memory-data.service';
4 |
5 | describe('InMemoryDataService', () => {
6 | beforeEach(() => TestBed.configureTestingModule({}));
7 |
8 | it('should be created', () => {
9 | const service: InMemoryDataService = TestBed.get(InMemoryDataService);
10 | expect(service).toBeTruthy();
11 | });
12 | });
13 |
--------------------------------------------------------------------------------
/spa-angular/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SpaAngular
6 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/spa-react/src/index.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | padding: 0;
4 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen",
5 | "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue",
6 | sans-serif;
7 | -webkit-font-smoothing: antialiased;
8 | -moz-osx-font-smoothing: grayscale;
9 | }
10 |
11 | code {
12 | font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New",
13 | monospace;
14 | }
15 |
--------------------------------------------------------------------------------
/config/webpack.dev.js:
--------------------------------------------------------------------------------
1 | const webpack = require('webpack')
2 | const merge = require('webpack-merge')
3 | const common = require('./webpack.common.js')
4 |
5 | module.exports = common.map(config => merge(config, {
6 | mode: 'development',
7 | devtool: 'inline-source-map',
8 | devServer: {
9 | contentBase: '../dist'
10 | },
11 | plugins: [
12 | new webpack.DefinePlugin({
13 | 'process.env.NODE_ENV': JSON.stringify('dev')
14 | })
15 | ]
16 | }))
17 |
--------------------------------------------------------------------------------
/spa-angular/src/app/messages/messages.component.ts:
--------------------------------------------------------------------------------
1 | import { Component, OnInit } from '@angular/core';
2 | import { MessageService } from '../message.service';
3 |
4 | @Component({
5 | selector: 'app-messages',
6 | templateUrl: './messages.component.html',
7 | styleUrls: ['./messages.component.css']
8 | })
9 | export class MessagesComponent implements OnInit {
10 |
11 | constructor(public messageService: MessageService) {}
12 |
13 | ngOnInit() {
14 | }
15 |
16 | }
--------------------------------------------------------------------------------
/spa-angular/src/app/mock-heroes.ts:
--------------------------------------------------------------------------------
1 | import { Hero } from './hero';
2 |
3 | export const HEROES: Hero[] = [
4 | { id: 11, name: 'Mr. Nice' },
5 | { id: 12, name: 'Narco' },
6 | { id: 13, name: 'Bombasto' },
7 | { id: 14, name: 'Celeritas' },
8 | { id: 15, name: 'Magneta' },
9 | { id: 16, name: 'RubberMan' },
10 | { id: 17, name: 'Dynama' },
11 | { id: 18, name: 'Dr IQ' },
12 | { id: 19, name: 'Magma' },
13 | { id: 20, name: 'Tornado' }
14 | ];
--------------------------------------------------------------------------------
/server/view/common/footer.ejs:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
16 |
19 |