Commit d09b2541 authored by 郭铭瑶's avatar 郭铭瑶 🤘

init project

parent a73bbd27
{
"presets": [
["env", {
"modules": false,
"useBuiltIns": "entry",
"targets": {
"browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
}
}],
"stage-2"
],
"plugins": [
"transform-vue-jsx",
"transform-runtime",
["import", {
"libraryName": "view-design",
"libraryDirectory": "src/components"
}]
]
}
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
/build/
/config/
/dist/
/*.js
/src/components/MonitorComponents/MonitorMap/esm/
module.exports = {
// 当前文件为eslint的根配置文件
root: true,
// 解析器
parserOptions: {
parser: 'babel-eslint',
},
// 运行环境
env: {
browser: true,
},
// 规则继承,vue主要的额外规则是v-if等指令的检测
extends: ['plugin:vue/essential'],
// 使用eslint-plugin-vue插件帮忙检测.vue文件的代码
plugins: [
'vue'
],
/**
* 自定义规则
* "off" 或 0 : 关闭规则
* "warn" 或 1 : 触犯规则为警告(不会中止程序)
* "error" 或 2 : 触犯规则为错误(触发时会中止程序)
* 额外选项可以通过数组字面量指定,例子如下:
* "quotes": ["error", "single"]
*/
rules: {
"no-debugger": process.env.NODE_ENV === 'production' ? 2 : 0, // 生产环境禁止debugger
"no-console": process.env.NODE_ENV === 'production' ? 2 : 0, // 生产环境禁止console
"no-alert": process.env.NODE_ENV === 'production' ? 2 : 0, // 生产环境禁止alert
"no-shadow-restricted-names": 2, // 禁用关键字及保留字等
"dot-notation": 1, // 尽可能使用 . 来访问对象属性
"no-multi-spaces": 1, // 禁止使用多个空格
"brace-style": 1, // 大括号风格 - one true brace style
"no-var": 1, // 禁用var声明
"no-new-object": 1, // 禁止new Object
"no-array-constructor": 1, // 禁止new Array
"prefer-const": 1, // 要求使用 const 声明那些声明后不再被修改的变量
"prefer-destructuring": 1, // 优先使用数组和对象解构
"no-param-reassign": 1, // 禁止在函数中对函数参数重新赋值
"no-extra-semi": 1, // 禁用不必要的分号
"no-unused-vars": 1, // 禁止已声明但未使用的变量
"indent": [1, 2], // 使用2个空格缩进
"no-multiple-empty-lines": [1, {max: 1}], // 禁止连续出现2个及以上空行
"default-case": 1, // 要求switch语句必须有default分支
"key-spacing": [1, {"beforeColon": false, "afterColon": true}], // 冒号前不要空格,后需要空格
"comma-spacing": [1, {"before": false, "after": true}], // 逗号前不要空格,后需要空格
"arrow-spacing": [1, {"before": true, "after": true}], // 箭头函数中的箭头前后需要留空格
"quotes": [1, "single"], // 字符串使用单引号
"semi": [1, "never"], // 禁止使用分号
"linebreak-style": 0, // 强制使用一样的换行符风格
}
}
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# TypeScript v1 declaration files
typings/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
.env.test
# parcel-bundler cache (https://parceljs.org/)
.cache
# Next.js build output
.next
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and *not* Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
// https://github.com/michael-ciniawsky/postcss-load-config
module.exports = {
"plugins": {
"postcss-import": {},
"postcss-url": {},
// to edit target browsers: use "browserslist" field in package.json
"autoprefixer": {}
}
}
MIT License
Copyright (c) 2020 yaominguo
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
'use strict'
require('./check-versions')()
process.env.NODE_ENV = 'production'
const ora = require('ora')
const rm = require('rimraf')
const path = require('path')
const chalk = require('chalk')
const webpack = require('webpack')
const config = require('../config')
const webpackConfig = require('./webpack.prod.conf')
const spinner = ora('building for production...')
spinner.start()
rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
if (err) throw err
webpack(webpackConfig, (err, stats) => {
spinner.stop()
if (err) throw err
process.stdout.write(stats.toString({
colors: true,
modules: false,
children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build.
chunks: false,
chunkModules: false
}) + '\n\n')
if (stats.hasErrors()) {
console.log(chalk.red(' Build failed with errors.\n'))
process.exit(1)
}
console.log(chalk.cyan(' Build complete.\n'))
console.log(chalk.yellow(
' Tip: built files are meant to be served over an HTTP server.\n' +
' Opening index.html over file:// won\'t work.\n'
))
})
})
'use strict'
const chalk = require('chalk')
const semver = require('semver')
const packageConfig = require('../package.json')
const shell = require('shelljs')
function exec (cmd) {
return require('child_process').execSync(cmd).toString().trim()
}
const versionRequirements = [
{
name: 'node',
currentVersion: semver.clean(process.version),
versionRequirement: packageConfig.engines.node
}
]
if (shell.which('npm')) {
versionRequirements.push({
name: 'npm',
currentVersion: exec('npm --version'),
versionRequirement: packageConfig.engines.npm
})
}
module.exports = function () {
const warnings = []
for (let i = 0; i < versionRequirements.length; i++) {
const mod = versionRequirements[i]
if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) {
warnings.push(mod.name + ': ' +
chalk.red(mod.currentVersion) + ' should be ' +
chalk.green(mod.versionRequirement)
)
}
}
if (warnings.length) {
console.log('')
console.log(chalk.yellow('To use this template, you must update following to modules:'))
console.log()
for (let i = 0; i < warnings.length; i++) {
const warning = warnings[i]
console.log(' ' + warning)
}
console.log()
process.exit(1)
}
}
'use strict'
const path = require('path')
const config = require('../config')
const ExtractTextPlugin = require('extract-text-webpack-plugin')
const packageConfig = require('../package.json')
exports.assetsPath = function (_path) {
const assetsSubDirectory = process.env.NODE_ENV === 'production'
? config.build.assetsSubDirectory
: config.dev.assetsSubDirectory
return path.posix.join(assetsSubDirectory, _path)
}
exports.cssLoaders = function (options) {
options = options || {}
const cssLoader = {
loader: 'css-loader',
options: {
sourceMap: options.sourceMap
}
}
const postcssLoader = {
loader: 'postcss-loader',
options: {
sourceMap: options.sourceMap
}
}
// generate loader string to be used with extract text plugin
function generateLoaders (loader, loaderOptions) {
const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]
if (loader) {
loaders.push({
loader: loader + '-loader',
options: Object.assign({}, loaderOptions, {
sourceMap: options.sourceMap
})
})
}
// Extract CSS when that option is specified
// (which is the case during production build)
if (options.extract) {
return ExtractTextPlugin.extract({
use: loaders,
publicPath: '../../',
fallback: 'vue-style-loader'
})
} else {
return ['vue-style-loader'].concat(loaders)
}
}
/**
* 下面的stylus配置便于可全局使用stylus定义的变量
*/
const stylusOptions = {
import: [
path.join(__dirname, '../src/assets/css/variables.styl')
],
path: [
path.join(__dirname, '../src/assets'),
path.join(__dirname, '../')
]
}
// https://vue-loader.vuejs.org/en/configurations/extract-css.html
return {
css: generateLoaders(),
postcss: generateLoaders(),
less: generateLoaders('less'),
sass: generateLoaders('sass', { indentedSyntax: true }),
scss: generateLoaders('sass'),
stylus: generateLoaders('stylus', stylusOptions),
styl: generateLoaders('stylus', stylusOptions)
}
}
// Generate loaders for standalone style files (outside of .vue)
exports.styleLoaders = function (options) {
const output = []
const loaders = exports.cssLoaders(options)
for (const extension in loaders) {
const loader = loaders[extension]
output.push({
test: new RegExp('\\.' + extension + '$'),
use: loader
})
}
return output
}
exports.createNotifierCallback = () => {
const notifier = require('node-notifier')
return (severity, errors) => {
if (severity !== 'error') return
const error = errors[0]
const filename = error.file && error.file.split('!').pop()
notifier.notify({
title: packageConfig.name,
message: severity + ': ' + error.name,
subtitle: filename || '',
icon: path.join(__dirname, 'logo.png')
})
}
}
'use strict'
const utils = require('./utils')
const config = require('../config')
const isProduction = process.env.NODE_ENV === 'production'
const sourceMapEnabled = isProduction
? config.build.productionSourceMap
: config.dev.cssSourceMap
module.exports = {
loaders: utils.cssLoaders({
sourceMap: sourceMapEnabled,
extract: isProduction
}),
cssSourceMap: sourceMapEnabled,
cacheBusting: config.dev.cacheBusting,
transformToRequire: {
video: ['src', 'poster'],
source: 'src',
img: 'src',
image: 'xlink:href'
}
}
'use strict'
const path = require('path')
const utils = require('./utils')
const config = require('../config')
const vueLoaderConfig = require('./vue-loader.conf')
function resolve (dir) {
return path.join(__dirname, '..', dir)
}
const createLintingRule = () => ({
test: /\.(js|vue)$/,
loader: 'eslint-loader',
enforce: 'pre',
include: [resolve('src'), resolve('test')],
options: {
formatter: require('eslint-friendly-formatter'),
emitWarning: !config.dev.showEslintErrorsInOverlay
}
})
module.exports = {
context: path.resolve(__dirname, '../'),
entry: {
app: ['babel-polyfill', './src/main.js']
},
output: {
path: config.build.assetsRoot,
filename: '[name].js',
publicPath: process.env.NODE_ENV === 'production'
? config.build.assetsPublicPath
: config.dev.assetsPublicPath
},
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: {
'vue$': 'vue/dist/vue.esm.js',
'@': resolve('src'),
'#': resolve('static'),
}
},
module: {
rules: [
...(config.dev.useEslint ? [createLintingRule()] : []),
{
test: /\.vue$/,
loader: 'vue-loader',
options: vueLoaderConfig
},
{
test: /\.js$/,
loader: 'babel-loader',
include: [resolve('src'), resolve('test'), resolve('node_modules/webpack-dev-server/client')]
},
{
test: /view-design.src.*?js$/,
loader: 'babel-loader',
},
{
test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: utils.assetsPath('img/[name].[hash:7].[ext]')
}
},
{
test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: utils.assetsPath('media/[name].[hash:7].[ext]')
}
},
{
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
}
},
{
test: /\.styl(us)?$/,
use: [
'vue-style-loader',
'css-loader',
'stylus-loader'
]
}
]
},
node: {
// prevent webpack from injecting useless setImmediate polyfill because Vue
// source contains it (although only uses it if it's native).
setImmediate: false,
// prevent webpack from injecting mocks to Node native modules
// that does not make sense for the client
dgram: 'empty',
fs: 'empty',
net: 'empty',
tls: 'empty',
child_process: 'empty'
}
}
'use strict'
const utils = require('./utils')
const webpack = require('webpack')
const config = require('../config')
const merge = require('webpack-merge')
const path = require('path')
const baseWebpackConfig = require('./webpack.base.conf')
const CopyWebpackPlugin = require('copy-webpack-plugin')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
const portfinder = require('portfinder')
const HOST = process.env.HOST
const PORT = process.env.PORT && Number(process.env.PORT)
const devWebpackConfig = merge(baseWebpackConfig, {
module: {
rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: true })
},
// cheap-module-eval-source-map is faster for development
devtool: config.dev.devtool,
// these devServer options should be customized in /config/index.js
devServer: {
clientLogLevel: 'warning',
historyApiFallback: {
rewrites: [
{ from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') },
],
},
hot: true,
contentBase: false, // since we use CopyWebpackPlugin.
compress: true,
host: HOST || config.dev.host,
port: PORT || config.dev.port,
open: config.dev.autoOpenBrowser,
overlay: config.dev.errorOverlay
? { warnings: false, errors: true }
: false,
publicPath: config.dev.assetsPublicPath,
proxy: config.dev.proxyTable,
quiet: true, // necessary for FriendlyErrorsPlugin
watchOptions: {
poll: config.dev.poll,
}
},
plugins: [
new webpack.DefinePlugin({
'process.env': require('../config/dev.env')
}),
new webpack.HotModuleReplacementPlugin(),
new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update.
new webpack.NoEmitOnErrorsPlugin(),
// https://github.com/ampedandwired/html-webpack-plugin
new HtmlWebpackPlugin({
filename: 'index.html',
template: 'index.html',
inject: true
}),
// copy custom static assets
new CopyWebpackPlugin([
{
from: path.resolve(__dirname, '../static'),
to: config.dev.assetsSubDirectory,
ignore: ['.*']
}
])
]
})
module.exports = new Promise((resolve, reject) => {
portfinder.basePort = process.env.PORT || config.dev.port
portfinder.getPort((err, port) => {
if (err) {
reject(err)
} else {
// publish the new Port, necessary for e2e tests
process.env.PORT = port
// add port to devServer config
devWebpackConfig.devServer.port = port
// Add FriendlyErrorsPlugin
devWebpackConfig.plugins.push(new FriendlyErrorsPlugin({
compilationSuccessInfo: {
messages: [`Your application is running here: http://${devWebpackConfig.devServer.host}:${port}`],
},
onErrors: config.dev.notifyOnErrors
? utils.createNotifierCallback()
: undefined
}))
resolve(devWebpackConfig)
}
})
})
'use strict'
const path = require('path')
const utils = require('./utils')
const webpack = require('webpack')
const config = require('../config')
const merge = require('webpack-merge')
const baseWebpackConfig = require('./webpack.base.conf')
const CopyWebpackPlugin = require('copy-webpack-plugin')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const ExtractTextPlugin = require('extract-text-webpack-plugin')
const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
const env = require('../config/prod.env')
const webpackConfig = merge(baseWebpackConfig, {
module: {
rules: utils.styleLoaders({
sourceMap: config.build.productionSourceMap,
extract: true,
usePostCSS: true
})
},
devtool: config.build.productionSourceMap ? config.build.devtool : false,
output: {
path: config.build.assetsRoot,
filename: utils.assetsPath('js/[name].[chunkhash].js'),
chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
},
plugins: [
// http://vuejs.github.io/vue-loader/en/workflow/production.html
new webpack.DefinePlugin({
'process.env': env
}),
new UglifyJsPlugin({
uglifyOptions: {
compress: {
warnings: false
}
},
sourceMap: config.build.productionSourceMap,
parallel: true
}),
// extract css into its own file
new ExtractTextPlugin({
filename: utils.assetsPath('css/[name].[contenthash].css'),
// Setting the following option to `false` will not extract CSS from codesplit chunks.
// Their CSS will instead be inserted dynamically with style-loader when the codesplit chunk has been loaded by webpack.
// It's currently set to `true` because we are seeing that sourcemaps are included in the codesplit bundle as well when it's `false`,
// increasing file size: https://github.com/vuejs-templates/webpack/issues/1110
allChunks: true,
}),
// Compress extracted CSS. We are using this plugin so that possible
// duplicated CSS from different components can be deduped.
new OptimizeCSSPlugin({
cssProcessorOptions: config.build.productionSourceMap
? { safe: true, map: { inline: false } }
: { safe: true }
}),
// generate dist index.html with correct asset hash for caching.
// you can customize output by editing /index.html
// see https://github.com/ampedandwired/html-webpack-plugin
new HtmlWebpackPlugin({
filename: config.build.index,
template: 'index.html',
inject: true,
minify: {
removeComments: true,
collapseWhitespace: true,
removeAttributeQuotes: true
// more options:
// https://github.com/kangax/html-minifier#options-quick-reference
},
// necessary to consistently work with multiple chunks via CommonsChunkPlugin
chunksSortMode: 'dependency'
}),
// keep module.id stable when vendor modules does not change
new webpack.HashedModuleIdsPlugin(),
// enable scope hoisting
new webpack.optimize.ModuleConcatenationPlugin(),
// split vendor js into its own file
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
minChunks (module) {
// any required modules inside node_modules are extracted to vendor
return (
module.resource &&
/\.js$/.test(module.resource) &&
module.resource.indexOf(
path.join(__dirname, '../node_modules')
) === 0
)
}
}),
// extract webpack runtime and module manifest to its own file in order to
// prevent vendor hash from being updated whenever app bundle is updated
new webpack.optimize.CommonsChunkPlugin({
name: 'manifest',
minChunks: Infinity
}),
// This instance extracts shared chunks from code splitted chunks and bundles them
// in a separate chunk, similar to the vendor chunk
// see: https://webpack.js.org/plugins/commons-chunk-plugin/#extra-async-commons-chunk
new webpack.optimize.CommonsChunkPlugin({
name: 'app',
async: 'vendor-async',
children: true,
minChunks: 3
}),
// copy custom static assets
new CopyWebpackPlugin([
{
from: path.resolve(__dirname, '../static'),
to: config.build.assetsSubDirectory,
ignore: ['.*']
}
])
]
})
if (config.build.productionGzip) {
const CompressionWebpackPlugin = require('compression-webpack-plugin')
webpackConfig.plugins.push(
new CompressionWebpackPlugin({
asset: '[path].gz[query]',
algorithm: 'gzip',
test: new RegExp(
'\\.(' +
config.build.productionGzipExtensions.join('|') +
')$'
),
threshold: 10240,
minRatio: 0.8
})
)
}
if (config.build.bundleAnalyzerReport) {
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
webpackConfig.plugins.push(new BundleAnalyzerPlugin())
}
module.exports = webpackConfig
'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env')
module.exports = merge(prodEnv, {
NODE_ENV: '"development"'
})
'use strict'
// Template version: 1.3.1
// see http://vuejs-templates.github.io/webpack for documentation.
const path = require('path')
module.exports = {
dev: {
// Paths
assetsSubDirectory: 'static',
assetsPublicPath: '/',
proxyTable: {},
// Various Dev Server settings
host: 'localhost', // can be overwritten by process.env.HOST
port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
autoOpenBrowser: false,
errorOverlay: true,
notifyOnErrors: true,
poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
// Use Eslint Loader?
// If true, your code will be linted during bundling and
// linting errors and warnings will be shown in the console.
useEslint: true,
// If true, eslint errors and warnings will also be shown in the error overlay
// in the browser.
showEslintErrorsInOverlay: false,
/**
* Source Maps
*/
// https://webpack.js.org/configuration/devtool/#development
devtool: 'cheap-module-eval-source-map',
// If you have problems debugging vue-files in devtools,
// set this to false - it *may* help
// https://vue-loader.vuejs.org/en/options.html#cachebusting
cacheBusting: true,
cssSourceMap: true
},
build: {
// Template for index.html
index: path.resolve(__dirname, '../dist/index.html'),
// Paths
assetsRoot: path.resolve(__dirname, '../dist'),
assetsSubDirectory: 'static',
assetsPublicPath: './',
/**
* Source Maps
*/
productionSourceMap: true,
// https://webpack.js.org/configuration/devtool/#production
devtool: '#source-map',
// Gzip off by default as many popular static hosts such as
// Surge or Netlify already gzip all static assets for you.
// Before setting to `true`, make sure to:
// npm install --save-dev compression-webpack-plugin
productionGzip: false,
productionGzipExtensions: ['js', 'css'],
// Run the build command with an extra argument to
// View the bundle analyzer report after build finishes:
// `npm run build --report`
// Set to `true` or `false` to always turn it on or off
bundleAnalyzerReport: process.env.npm_config_report
}
}
'use strict'
module.exports = {
NODE_ENV: '"production"'
}
<!DOCTYPE html>
<html id="html">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1">
<title>Dataview Project</title>
<style>
html {
font-size: 1.6vh;
}
</style>
<!-- <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script> -->
</head>
<body>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>
{
"name": "monitor-project",
"version": "1.0.0",
"description": "A Vue.js project",
"author": "yaominguo <missgmy@yahoo.com>",
"private": true,
"scripts": {
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
"start": "npm run dev",
"lint": "eslint --fix --ext .js,.vue src",
"build": "node build/build.js"
},
"dependencies": {
"animate.css": "^3.7.2",
"axios": "^0.19.0",
"babel-polyfill": "^6.26.0",
"countup.js": "^2.0.4",
"echarts": "^4.4.0",
"moment": "^2.24.0",
"odometer": "^0.4.8",
"qs": "^6.9.1",
"view-design": "^4.0.2",
"vue": "^2.5.2",
"vue-countup-v2": "^4.0.0",
"vue-odometer": "^1.0.2",
"vue-router": "^3.0.1",
"vue-seamless-scroll": "^1.1.17",
"vuex": "^3.1.2"
},
"devDependencies": {
"autoprefixer": "^7.1.2",
"babel-core": "^6.22.1",
"babel-eslint": "^8.2.1",
"babel-helper-vue-jsx-merge-props": "^2.0.3",
"babel-loader": "^7.1.1",
"babel-plugin-import": "^1.12.2",
"babel-plugin-syntax-jsx": "^6.18.0",
"babel-plugin-transform-runtime": "^6.22.0",
"babel-plugin-transform-vue-jsx": "^3.5.0",
"babel-preset-env": "^1.3.2",
"babel-preset-stage-2": "^6.22.0",
"chalk": "^2.0.1",
"copy-webpack-plugin": "^4.0.1",
"css-loader": "^0.28.0",
"eslint": "^4.15.0",
"eslint-friendly-formatter": "^3.0.0",
"eslint-loader": "^1.7.1",
"eslint-plugin-vue": "^4.0.0",
"extract-text-webpack-plugin": "^3.0.0",
"file-loader": "^1.1.4",
"friendly-errors-webpack-plugin": "^1.6.1",
"html-webpack-plugin": "^2.30.1",
"node-notifier": "^5.1.2",
"optimize-css-assets-webpack-plugin": "^3.2.0",
"ora": "^1.2.0",
"portfinder": "^1.0.13",
"postcss-import": "^11.0.0",
"postcss-loader": "^2.0.8",
"postcss-url": "^7.2.1",
"rimraf": "^2.6.0",
"semver": "^5.3.0",
"shelljs": "^0.7.6",
"stylus": "^0.54.7",
"stylus-loader": "^3.0.2",
"uglifyjs-webpack-plugin": "^1.1.1",
"url-loader": "^0.5.8",
"vue-loader": "^13.3.0",
"vue-style-loader": "^3.0.1",
"vue-template-compiler": "^2.5.2",
"webpack": "^3.6.0",
"webpack-bundle-analyzer": "^2.9.0",
"webpack-dev-server": "^2.9.1",
"webpack-merge": "^4.1.0"
},
"engines": {
"node": ">= 6.0.0",
"npm": ">= 3.0.0"
},
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 8"
]
}
<template>
<div id="app">
<m-loader v-show="$store.state.showLoading"/>
<router-view :key="$route.fullPath"/>
</div>
</template>
<script>
export default {
name: 'App',
}
</script>
<style lang="stylus">
@import './assets/css/reset.styl'
@font-face
font-family DIN
src url(./assets/font/DIN-Medium.otf)
// @font-face
// font-family Microsoft YaHei UI
// src url(./assets/font/Microsoft-YaHei-UI-Bold.ttf)
@font-face
font-family Pangmenzhengdao
src url(./assets/font/pangmenzhengdao.ttf)
html, body
background-color #000 !important
width 100%
height 100%
user-select none
#app
font-family DIN, 'Avenir', Helvetica, Arial, sans-serif
-webkit-font-smoothing antialiased
-moz-osx-font-smoothing grayscale
width 100%
height 100%
font-size 1rem
overflow: hidden
color #ccc
/* 设置滚动条的样式 */
::-webkit-scrollbar {
width: 0.5rem;
}
// /* 滚动槽 */
// ::-webkit-scrollbar-track {
// -webkit-box-shadow: inset006pxrgba(0,0,0,0.3);
// /* border-radius: 10px; */
// }
/* 滚动条滑块 */
::-webkit-scrollbar-thumb {
/* border-radius: 10px; */
background:rgba(91, 213, 255, 0.2)
-webkit-box-shadow:inset006pxrgba(0,0,0,0.5);
}
::-webkit-scrollbar-thumb:window-inactive {
background:rgba(91, 213, 255, 0.2)
}
</style>
$color-main = #5BD5FF
#app
.date-picker.ivu-date-picker
.ivu-select-dropdown
margin-top -0.1rem
.ivu-date-picker-cells-cell-disabled
background rgba(0,0,0,0.3)
.ivu-select-selection
height 100%
>div
height 100%
.ivu-select-selected-value
height 100%
font-size 1rem
font-weight bold
line-height 2
.ivu-select-selection
.ivu-select-dropdown
font-size 1rem
background-color $cardBg
border-radius 0
border 0.1rem solid $color-main
// color $color-main
color $edgeColor
padding 0
.ivu-picker-panel-body
$blur()
.ivu-select-arrow
color $color-main
line-height 2
font-size 1rem
.ivu-select-item
.ivu-dropdown-item
font-size 1rem !important
text-align center
color #fff
background rgba(0,0,0,0.8)
// &:hover
&.ivu-select-item-selected
color $edgeColor
font-weight bold
// $font-yahei = Microsoft YaHei UI, 'Avenir', Helvetica, Arial, sans-serif
$font-pang = Pangmenzhengdao, 'Avenir', Helvetica, Arial, sans-serif
$font-din = DIN, 'Avenir', Helvetica, Arial, sans-serif
$color-map(opacity = 0.3)
rgba(91, 213, 255, opacity)
$color-green = #82DF12
$color-blue = #47B3FF
$color-red = #D82B2B
$layout(gap = 0.6rem)
width 100%
height 100%
background-size cover
background-position center
background-color #061627
position relative
display grid
grid-gap gap
padding gap
$blur(val = 0.5rem)
backdrop-filter blur(val)
-webkit-backdrop-filter blur(val)
$selected()
box-sizing border-box
border 0.1rem solid $edgeColor
background-color rgba(0,242,255,0.1)
$fontColor = #2c3e50
$edgeColor = #00f2ff
$cardBg = rgba(0, 242, 255, 0.1)
$cardBorder = 0.1rem solid #1c425f
$cardFontColor = #5bd5ff
import MonitorAnimate from './monitor-animate.vue'
export default (Vue) => {
Vue.component('m-animate', MonitorAnimate)
}
<template>
<transition
name="custom-classes-transition"
:enter-active-class="`animated ${enter}`"
:leave-active-class="`animated ${leave}`">
<slot />
</transition>
</template>
<script>
export default {
name: 'MonitorAnimate',
props: {
enter: {
type: String,
required: true,
},
leave: {
type: String,
required: true,
},
}
}
</script>
import MonitorBrief from './monitor-brief.vue'
export default (Vue) => {
Vue.component('m-brief', MonitorBrief)
}
<template>
<div class="monitor-brief">
<img v-if="icon" :src="icon" draggable="false"/>
<div>
<p class="label" :style="`color:${labelColor}`">{{label}}</p>
<count class="count" :style="`font-size:${size};color:${countColor}`" :value="value" :decimal="decimal"/>
<span v-if="unit">{{unit}}</span>
</div>
</div>
</template>
<script>
import count from '../MonitorCount/monitor-count'
export default {
name: 'MonitorBrief',
components: {
count,
},
props: {
icon: {},
decimal: {
type: Number,
default: 0,
},
label: {
type: String,
default: '',
},
count: {
type: Number,
default: 0,
},
unit: {
type: String,
default: '',
},
labelColor: {
type: String,
default: '#fff'
},
countColor: {
type: String,
default: '#fff'
},
size: {
type: String,
default: '1.8rem'
}
},
computed: {
value() {
return this.count
}
}
}
</script>
<style lang="stylus" scoped>
.monitor-brief
width 100%
display flex
align-items center
>img
width 2.8rem
margin-right 1rem
>div
flex 1
.count
font-family $font-pang
font-size 1.8rem
>span
font-family $font-pang
</style>
import MonitorCard from './monitor-card.vue'
export default (Vue) => {
Vue.component('m-card', MonitorCard)
}
<template>
<div class="card-wrapper">
<div class="card-title" :style="`color:${color}`">
{{title}}
<div class="dot"/>
<div class="line"/>
</div>
<div class="card-content">
<slot />
</div>
</div>
</template>
<script>
export default {
name: 'Mode2',
props: {
title: {
type: String,
default: '标题',
},
color: {
type: String,
}
},
}
</script>
<style lang="stylus" scoped>
.card-wrapper
background $cardBg
border-right 0.2rem solid $edgeColor
.card-title
display flex
align-items center
color $cardFontColor
font-size 1.4rem
font-family $font-pang
.dot
width 0.4rem
height 1rem
background $edgeColor
margin 0 0.5rem
.line
height 1px
flex 1
background $edgeColor
opacity 0.3
.card-content
padding 0.5rem 1rem
</style>
<template>
<div class="card-wrapper">
<div class="edge left-bottom"/>
<div class="edge right-bottom"/>
<div class="card-title" :style="`color:${color}`">
{{title}}
</div>
<div class="card-content">
<slot />
</div>
</div>
</template>
<script>
export default {
name: 'Mode2',
props: {
title: {
type: String,
default: '标题',
},
color: {
type: String,
}
},
}
</script>
<style lang="stylus" scoped>
.card-wrapper
padding 0 !important
>.edge
position absolute
width 1rem
height 1rem
border 0.12rem solid $color-blue
border-top-color transparent
bottom 0
&.left-bottom
border-right-color transparent
left 0
&.right-bottom
border-left-color transparent
right 0
.card-title
display flex
align-items center
color #fff
font-size 1.4rem
font-family $font-pang
padding 0 1rem
.card-content
padding 0.5rem 1rem
background rgba(19, 78, 115, 0.3)
border-top 0.12rem solid $color-blue
position relative
</style>
<template>
<div class="card-wrapper">
<div v-if="!hideTitle" class="card-title" :style="`color:${color}`">
<img v-if="icon" :src="icon"/>
{{title}}
</div>
<div class="card-content" :style="contentStyle">
<slot />
</div>
</div>
</template>
<script>
export default {
name: 'Mode3',
props: {
icon: {},
title: {
type: String,
default: '标题',
},
color: {
type: String,
},
hideTitle: {
type: Boolean,
default: false,
},
},
computed: {
contentStyle() {
if (!this.hideTitle) return {}
return {
'height': '100%',
'overflow-y': 'hidden',
}
}
},
}
</script>
<style lang="stylus" scoped>
.card-wrapper
padding 0 !important
.card-title
display flex
align-items center
color #fff
font-size 1.4rem
font-weight bold
background $cardBg
margin-bottom 0.5rem
height 3rem
padding 0 1rem
>img
width 1.4rem
margin-right 1rem
.card-content
background $cardBg
padding 1rem
</style>
<template>
<div class="card-wrapper">
<div class="card-title" :style="`color:${color};background-image:url(${require('@/assets/images/mode4-bg.png')})`">
<img v-if="icon" :src="icon"/>
{{title}}
</div>
<div class="card-content">
<slot />
</div>
</div>
</template>
<script>
export default {
name: 'Mode4',
props: {
icon: {},
title: {
type: String,
default: '标题',
},
color: {
type: String,
},
},
}
</script>
<style lang="stylus" scoped>
.card-wrapper
padding 0 !important
.card-title
display flex
align-items center
color #fff
font-size 1.2rem
font-weight bold
height 3rem
padding 0 0.5rem
background-size 90% 70%
background-position left center
background-repeat no-repeat
background-color #063a6f
>img
width 1.4rem
margin-right 0.5rem
.card-content
background #052749
padding 1rem
</style>
<template>
<m-animate :enter="enter" :leave="leave">
<div class="monitor-card">
<component :is="card" v-bind="$attrs" :title="title">
<slot/>
</component>
</div>
</m-animate>
</template>
<script>
export default {
name: 'MonitorCard',
props: {
title: {
type: String,
},
mode: {
type: [String, Number],
default: '1',
},
enter: {
type: String,
default: 'fadeInRight',
},
leave: {
type: String,
default: 'fadeOutRight',
},
},
computed: {
card() {
return () => import(`./mode${this.mode}`)
}
},
}
</script>
<style lang="stylus" scoped>
$edgeWidth = 0
$size()
height 100%
width 100%
.monitor-card
$size()
$blur()
overflow hidden
height initial
width initial
/deep/ .card-wrapper
$size()
padding 0.5rem 1rem
position relative
.card-content
height calc(100% - 2rem)
overflow-y auto
overflow-x hidden
</style>
import MonitorChart from './monitor-chart.vue'
export default (Vue) => {
Vue.component('m-chart', MonitorChart)
}
import MonitorCount from './monitor-count.vue'
export default (Vue) => {
Vue.component('m-count', MonitorCount)
}
<template>
<ICountUp
:delay="delay"
:endVal="value"
:options="config"
@ready="onReady"
:style="style"
/>
</template>
<script>
import ICountUp from 'vue-countup-v2'
export default {
name: 'MonitorCount',
components: {
ICountUp,
},
props: {
delay: {
type: Number,
default: 500,
},
value: {
type: Number,
default: 0,
},
decimal: { // 默认保留2位小数点
type: Number,
default: 2,
},
prefix: {
type: String,
default: '',
},
suffix: {
type: String,
default: '',
},
size: {
type: String,
default: '1rem',
},
color: {
type: String,
default: '#fff',
},
options: {
type: Object,
default() {
return {
useEasing: true,
useGrouping: true,
separator: ',',
decimal: '.',
prefix: '',
suffix: '',
}
}
},
autoUpdate: {
type: Boolean,
default: false,
},
updateDuration: {
type: Number,
default: 1,
},
},
computed: {
config() {
return Object.assign(this.options, {decimalPlaces: this.decimal, prefix: this.prefix, suffix: this.suffix})
},
style() {
return {color: this.color, fontSize: this.size}
},
},
methods: {
onReady(instance) {
if (!this.autoUpdate) return
setTimeout(() => {
instance.reset()
instance.update(instance.endVal)
}, 1000 * 60 * this.updateDuration)
},
}
}
</script>
import MonitorDrawer from './monitor-drawer.vue'
export default (Vue) => {
Vue.component('m-drawer', MonitorDrawer)
}
<template>
<m-animate :enter="enter" :leave="leave">
<div v-if="value" class="monitor-drawer" style="animation-duration: 500ms">
<img @click="handleClose" class="close-btn" src="@/assets/images/title-arrow.png"/>
<img class="border left" src="@/assets/images/modal-right.png"/>
<div class="content">
<div>
<slot/>
</div>
</div>
<img class="border right" src="@/assets/images/modal-right.png"/>
</div>
</m-animate>
</template>
<script>
export default {
name: 'MonitorDrawer',
props: {
value: {
type: Boolean,
default: false,
},
width: {
type: String,
default: '40%',
},
enter: {
type: String,
default: 'fadeInRight',
},
leave: {
type: String,
default: 'fadeOutRight',
},
},
methods: {
handleClose() {
this.$emit('close')
this.$emit('input', false)
}
},
}
</script>
<style lang="stylus" scoped>
.monitor-drawer
position fixed
top 4rem
right 1rem
bottom 0.6rem
z-index 1000
width 26vw
padding 1rem 0
background $cardBg
color #ccc
$blur()
.content
height 100%
padding 0 1rem
overflow-y auto
overflow-x hidden
>img
position absolute
&.close-btn
top 0
bottom 0
margin auto
width 3rem
left -3rem
transform rotate(270deg)
cursor pointer
&.border
width 2rem
height 102%
top -0.5rem
bottom 0
&.left
transform rotate(180deg)
left -1rem
&.right
right -1rem
</style>
import MonitorFlip from './monitor-flip.vue'
export default (Vue) => {
Vue.component('m-flip', MonitorFlip)
}
<template>
<IOdometer
class="monitor-flip"
:value="num"
:style="style"
/>
</template>
<script>
import IOdometer from 'vue-odometer'
export default {
name: 'MonitorFlip',
components: {
IOdometer,
},
props: {
value: {
type: Number,
default: 0,
},
color: {
type: String,
default: '#fff',
},
size: {
type: String,
default: '1rem',
},
},
data() {
return {
num: 0,
}
},
mounted() {
this.$nextTick(() => {
this.num = this.value
})
},
computed: {
style() {
return {color: this.color, fontSize: this.size}
}
},
}
</script>
<style lang="stylus" scoped>
.monitor-flip
font-family $font-din
</style>
<style lang="stylus">
@import 'odometer/themes/odometer-theme-default.css'
.monitor-flip
.odometer-digit
background linear-gradient($color-map() 47%, transparent 50%, $color-map() 53%)
margin-right 0.4rem
padding 0 0.4rem
.odometer-digit-inner
padding 0 0.4rem
</style>
import MonitorForm from './monitor-form.vue'
export default (Vue) => {
Vue.component('m-form', MonitorForm)
}
<template>
<div class="monitor-form">
<p v-if="title" class="title">{{title}}</p>
<Row class="row" v-for="(row, rowIndex) in layout" :key="rowIndex">
<i-col class="col" v-for="(col, key) in row" :key="key" :span="col.width" :offset="col.offset || 0">
<div :style="`text-align: ${col.align || 'left'}; width:${labelWidth}rem;`">{{col.label}}</div>
<img v-if="col.type == 'img'" @click="handleView(model[key])" :src="$api.IMG_URL + model[key]"/>
<div v-else class="content">{{model[key]}}</div>
</i-col>
</Row>
<m-modal v-model="showImg">
<img v-if="showImg" style="width: 100%;" :src="$api.IMG_URL + curSrc"/>
</m-modal>
</div>
</template>
<script>
export default {
name: 'MonitorForm',
props: {
title: {
type: String,
default: '',
},
labelWidth: {
type: Number,
default: 10,
},
layout: {
type: Array,
default() {
return []
}
},
model: {
type: Object,
default() {
return {}
}
}
},
data() {
return {
showImg: false,
curSrc: null,
}
},
methods: {
handleView(src) {
this.curSrc = src
this.showImg = true
}
}
}
</script>
<style lang="stylus" scoped>
.monitor-form
font-size 1rem
color #fff
margin-bottom 1rem
.title
font-size 1.2rem
font-weight bold
color $edgeColor
padding-bottom 0.5rem
margin-bottom 1rem
border-bottom 0.1rem solid $color-map()
.row
line-height 2.4rem
// &:nth-child(2n)
// background-color $color-map(0.15)
.col
display flex
align-items center
padding 0 1rem
&:nth-child(2n+1)
background-color $color-map(0.15)
.content
flex 1
img
width 25%
height 5rem
margin 0.5rem 0
cursor pointer
</style>
import MonitorGrid from './monitor-grid.vue'
export default (Vue) => {
Vue.component('m-grid', MonitorGrid)
}
<template>
<div class="monitor-grid" ref="grid" :style="style">
<slot />
</div>
</template>
<script>
export default {
name: 'MonitorGrid',
props: {
template: {
type: [String, Array],
required: true,
},
columns: {
type: String,
},
rows: {
type: String,
},
gap: {
type: String,
},
bgImg: {
type: String,
},
},
data() {
return {
style: {},
}
},
mounted() {
this.$nextTick(() => {
setTimeout(this.init, 0)
})
},
methods: {
init() {
let templateAreas = this.template
if (Array.isArray(templateAreas)) {
let result = ''
templateAreas.forEach(item => {
result += `'${item}'`
})
templateAreas = result
}
this.style = {
'grid-template-areas': templateAreas,
'grid-template-columns': this.columns,
'grid-template-rows': this.rows,
'grid-gap': this.gap,
'padding': this.gap,
'background-image': `url(${this.bgImg})`
}
const {children} = this.$refs.grid
for(let i = 0; i < children.length; i++) {
const child = children[i]
const area = child.getAttribute('area')
if (area) {
child.style.gridArea = area
}
}
},
},
}
</script>
<style lang="stylus" scoped>
.monitor-grid
width 100%
height 100%
background-size cover
background-position center
background-color #061627
position relative
display grid
grid-gap 1rem
padding 1rem
</style>
<template>
<div class="monitor-loader" :style="`background:${bgColor}`">
<div class="loader">
<div class="outer"/>
<div class="inner"/>
<b class="msg">{{msg}}</b>
</div>
</div>
</template>
<script>
export default {
name: 'MonitorLoader',
props: {
msg: {
type: String,
default: '加载中 . . .',
},
bgColor: {
type: String,
default: 'rgba(0,0,0,0.3)',
},
}
}
</script>
<style lang="stylus" scoped>
.monitor-loader
position fixed
top 0
left 0
bottom 0
right 0
z-index 9999
display flex
align-items center
justify-content center
.loader
position relative
z-index 8888
.msg
display block
color #fff
margin-top 150%
>div
border: 0.4rem solid transparent
border-top-color $color-blue
border-bottom-color $color-blue
border-radius 50%
position absolute
top 50%
left 50%
&.outer
width 5rem
height 5rem
margin-left -3rem
margin-top -3rem
animation changeColor 2.5s linear infinite
&.inner
width 2.5rem
height 2.5rem
margin-left -1.8rem
margin-top -1.8rem
animation changeColor 1.5s linear reverse infinite
@keyframes changeColor
50%
border-top-color $edgeColor
border-bottom-color $edgeColor
transform rotate(180deg)
100%
border-top-color $color-blue
border-bottom-color $color-blue
transform rotate(360deg)
</style>
export default class Bounds {
northeast: number[];
southwest: number[];
xmin: number;
ymin: number;
zmin?: number;
xmax: number;
ymax: number;
zmax?: number;
constructor(southwest: number[], northeast: number[]);
}
var Bounds = /** @class */ (function () {
function Bounds(southwest, northeast) {
this.northeast = northeast;
this.southwest = southwest;
this.xmin = southwest[0];
this.ymin = southwest[1];
this.zmin = southwest[2] !== undefined ? southwest[2] : undefined;
this.xmax = northeast[0];
this.ymax = northeast[1];
this.zmax = northeast[2] !== undefined ? northeast[2] : undefined;
}
return Bounds;
}());
export default Bounds;
import Bounds from './Bounds';
import IBounds from './interface/IBounds';
import IMapOptions from './interface/IMapOptions';
import IOverlayers from './interface/IOverlayers';
import MapControlBase from './interface/MapControlBase';
import EventEmitter from './mod';
import Overlayerbase from './Overlays/Overlayerbase';
import OverlayGroup from './Overlays/OverlayGroup';
export default class Map extends EventEmitter implements IOverlayers {
private viewMode;
private zooms;
private showBuildingBlock;
private map;
private mapControl;
private mapoverlayers;
private mapoverlayersflayer;
constructor(container: string, options?: IMapOptions);
getZoom(): number;
setZoom(zoomlevel: number): void;
panTo(targetpoint: number[]): void;
panBy(offsetx: number, offsety: number): void;
getBounds(): IBounds;
setBounds(bds: Bounds): void;
setCenter(centerx: number, centery: number, centerz?: number): Promise<void>;
setZoomAndCenter(zoomlevel: number, center: number[]): Promise<void>;
getCenter(): number[];
getScale(): number;
setRotation(rotation: number): void;
setPitch(pitch: number): void;
getPitch(): number;
zoomIn(): void;
zoomOut(): void;
setMapStyle(style: string): void;
getMapStyle(): string;
addControl(control: MapControlBase): void;
removeControl(control: MapControlBase): void;
enableThroughGround(isunderground: boolean): void;
add(overlayers: Overlayerbase | Overlayerbase[] | OverlayGroup): void;
remove(overlayers: Overlayerbase | Overlayerbase[] | OverlayGroup): void;
update(overlayers: Overlayerbase | Overlayerbase[] | OverlayGroup): void;
addfeature(overlayers: Overlayerbase | Overlayerbase[] | OverlayGroup): void;
updatefeature(overlayers: Overlayerbase | Overlayerbase[] | OverlayGroup): void;
removefeature(overlayers: Overlayerbase | Overlayerbase[] | OverlayGroup): void;
clearMap(): void;
showXQ_Poly(): void;
hideXQ_Poly(): void;
showXQ_Point(): void;
hideXQ_Point(): void;
showMPZ(): void;
hideMPZ(): void;
setAPPKey(appkey: string): void;
setDistrict(districts: string[]): void;
setFilter(layerName: string, filter: string): void;
private init;
}
This diff is collapsed.
import IFeatureReductionOption from '../interface/IFeatureReductionOption';
export default class FeatureReduction {
type: string;
clusterRadius: number;
constructor(froption: IFeatureReductionOption);
}
var FeatureReduction = /** @class */ (function () {
function FeatureReduction(froption) {
this.type = 'text';
this.type = froption.type === undefined ? 'cluster' : froption.type;
this.clusterRadius = froption.clusterRadius === undefined ? 100 : froption.clusterRadius;
}
return FeatureReduction;
}());
export default FeatureReduction;
import IConOption from '../interface/IConOption';
import Size from '../Overlays/Size';
export default class Icon {
size: Size;
image: string;
constructor(iconOption: IConOption);
}
var Icon = /** @class */ (function () {
function Icon(iconOption) {
this.size = iconOption.size;
this.image = iconOption.image;
}
return Icon;
}());
export default Icon;
import ILabelOption from '../interface/ILabelOption';
export default class Label {
type: string;
text: string;
color: string;
visible: boolean;
size: number;
weight: string;
angle: number;
backgroundColor: string;
borderLineColor: string;
borderLineSize: number;
haloColor: string;
haloSize: number;
horizontalAlignment: string;
verticalAlignment: string;
kerning: boolean;
lineHeight: number;
lineWidth: number;
rotated: boolean;
xoffset: number;
yoffset: number;
zoffset: number;
placement: string;
maxScale: number;
minScale: number;
constructor(labeloption: ILabelOption);
}
var Label = /** @class */ (function () {
function Label(labeloption) {
this.type = 'text';
this.color = 'white';
this.visible = true;
this.size = 12;
this.weight = 'normal';
this.angle = 0;
this.backgroundColor = 'red';
this.borderLineColor = 'blue';
this.borderLineSize = 200;
this.haloColor = 'yellow';
this.haloSize = 20;
this.horizontalAlignment = 'right';
this.verticalAlignment = 'top';
this.kerning = true;
this.lineHeight = 25;
this.lineWidth = 200;
this.rotated = false;
this.xoffset = 0;
this.yoffset = 0;
this.zoffset = 0;
this.placement = "above-right";
this.maxScale = 0;
this.minScale = 0;
this.text = labeloption.text === undefined ? '标注' : labeloption.text;
this.color = labeloption.color === undefined ? 'white' : labeloption.color;
this.visible = labeloption.visible === undefined ? true : labeloption.visible;
this.size = labeloption.size === undefined ? 12 : labeloption.size;
this.weight = labeloption.weight === undefined ? 'normal' : labeloption.weight;
this.angle = labeloption.angle === undefined ? 0 : labeloption.angle;
this.backgroundColor = labeloption.backgroundColor === undefined ? 'red' : labeloption.backgroundColor;
this.borderLineColor = labeloption.borderLineColor === undefined ? 'blue' : labeloption.borderLineColor;
this.borderLineSize = labeloption.borderLineSize === undefined ? 200 : labeloption.borderLineSize;
this.haloColor = labeloption.haloColor === undefined ? 'yellow' : labeloption.haloColor;
this.haloSize = labeloption.haloSize === undefined ? 0 : labeloption.haloSize;
this.horizontalAlignment = labeloption.horizontalAlignment === undefined ? 'right' :
labeloption.horizontalAlignment;
this.verticalAlignment = labeloption.verticalAlignment === undefined ? 'top' :
labeloption.verticalAlignment;
this.kerning = labeloption.kerning === undefined ? true : labeloption.kerning;
this.lineHeight = labeloption.lineHeight === undefined ? 25 : labeloption.lineHeight;
this.lineWidth = labeloption.lineWidth === undefined ? 200 : labeloption.lineWidth;
this.rotated = labeloption.rotated === undefined ? false : labeloption.rotated;
this.xoffset = labeloption.xoffset === undefined ? 0 : labeloption.xoffset;
this.yoffset = labeloption.yoffset === undefined ? 0 : labeloption.yoffset;
this.zoffset = labeloption.zoffset === undefined ? 0 : labeloption.zoffset;
this.placement = labeloption.placement === undefined ? "center-right" : labeloption.placement;
this.maxScale = labeloption.maxScale === undefined ? 0 : labeloption.maxScale;
this.minScale = labeloption.minScale === undefined ? 0 : labeloption.minScale;
}
return Label;
}());
export default Label;
import IMarkOptions from '../interface/IMarkOptions';
import Icon from '../Overlays/Icon';
import Overlayerbase from './Overlayerbase';
export default class Marker extends Overlayerbase {
icon: Icon;
position: [number, number, number?];
constructor(markeroption: IMarkOptions);
}
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
import Overlayerbase from './Overlayerbase';
var Marker = /** @class */ (function (_super) {
__extends(Marker, _super);
function Marker(markeroption) {
var _this = _super.call(this, markeroption) || this;
_this.overlaytype = 'Marker';
_this.icon = markeroption.icon;
_this.position = markeroption.position;
return _this;
}
return Marker;
}(Overlayerbase));
export default Marker;
import IOverLayerGroupOption from '../interface/IOverLayerGroupOption';
import Label from '../Overlays/Label';
import FeatureReduction from './FeatureReduction';
import Overlayerbase from './Overlayerbase';
export default class OverlayGroup {
uuid: string;
type: any;
overlayers: Overlayerbase[];
overlaytype: string;
datafiled: any;
style: any;
label: Label;
frreduction: FeatureReduction;
constructor(olayers: Overlayerbase[], overLayerGroupOption: IOverLayerGroupOption);
}
import Guid from '../utils/Guid';
var OverlayGroup = /** @class */ (function () {
function OverlayGroup(olayers, overLayerGroupOption) {
this.uuid = new Guid().uuid;
this.overlayers = olayers;
this.type = "group";
this.overlaytype = overLayerGroupOption.overlaytype === undefined ? 'marker' : overLayerGroupOption.overlaytype;
this.datafiled = overLayerGroupOption.datafiled === undefined ? [] : overLayerGroupOption.datafiled;
this.style = overLayerGroupOption.style === undefined ? [] : overLayerGroupOption.style;
this.label = overLayerGroupOption.label === undefined ? null : overLayerGroupOption.label;
this.frreduction = overLayerGroupOption.frreduction === undefined ? null : overLayerGroupOption.frreduction;
}
return OverlayGroup;
}());
export default OverlayGroup;
import IOverlayerOptions from '../interface/IOverlayerOptions';
import Label from '../Overlays/Label';
export default class Overlayerbase {
overlaytype: string;
uuid: string;
type: any;
label: Label;
attributes: any;
constructor(overlayeroption: IOverlayerOptions);
}
import Guid from '../utils/Guid';
var Overlayerbase = /** @class */ (function () {
function Overlayerbase(overlayeroption) {
this.uuid = new Guid().uuid;
this.label = overlayeroption.label;
this.attributes = overlayeroption.attributes === undefined ? {} : overlayeroption.attributes;
this.type = "element";
}
return Overlayerbase;
}());
export default Overlayerbase;
import LngLat from '../common/LngLat';
import IPolygonOption from '../interface/IPolygonOption';
import Overlayerbase from './Overlayerbase';
export default class Polygon extends Overlayerbase {
paths: LngLat[];
symboltype: string;
fillColor: string;
strokeColor: string;
style: string;
strokeWeight: number;
url: string;
picwidth: number;
picheight: number;
strokestyle: string;
constructor(ploption: IPolygonOption);
}
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
import Overlayerbase from './Overlayerbase';
var Polygon = /** @class */ (function (_super) {
__extends(Polygon, _super);
function Polygon(ploption) {
var _this = _super.call(this, ploption) || this;
_this.overlaytype = 'polygon';
_this.paths = ploption.paths;
_this.symboltype = ploption.symboltype === undefined ? 'simple' : ploption.symboltype;
_this.fillColor = ploption.fillColor === undefined ? 'white' : ploption.fillColor;
_this.style = ploption.style === undefined ? 'solid' : ploption.style;
_this.strokeColor = ploption.strokeColor === undefined ? 'red' : ploption.strokeColor;
_this.strokestyle = ploption.strokestyle === undefined ? 'solid' : ploption.strokestyle;
_this.strokeWeight = ploption.strokeWeight === undefined ? 2 : ploption.strokeWeight;
_this.url = ploption.url === undefined ? '' : ploption.url;
_this.picwidth = ploption.picwidth === undefined ? 20 : ploption.picwidth;
_this.picheight = ploption.picheight === undefined ? 20 : ploption.picheight;
return _this;
}
return Polygon;
}(Overlayerbase));
export default Polygon;
import LngLat from '../common/LngLat';
import IPolylineOption from '../interface/IPolylineOption';
import Overlayerbase from './Overlayerbase';
export default class Polyline extends Overlayerbase {
path: LngLat[];
cap: string;
strokeColor: string;
style: string;
lineJoin: string;
width: number;
constructor(ploption: IPolylineOption);
}
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
import Overlayerbase from './Overlayerbase';
var Polyline = /** @class */ (function (_super) {
__extends(Polyline, _super);
function Polyline(ploption) {
var _this = _super.call(this, ploption) || this;
_this.overlaytype = 'Polyline';
_this.path = ploption.path;
_this.cap = ploption.cap === undefined ? 'square' : ploption.cap;
_this.strokeColor = ploption.strokeColor === undefined ? 'red' : ploption.strokeColor;
_this.style = ploption.style === undefined ? 'solid' : ploption.style;
_this.lineJoin = ploption.lineJoin === undefined ? 'round' : ploption.lineJoin;
_this.width = ploption.width === undefined ? 5 : ploption.width;
return _this;
}
return Polyline;
}(Overlayerbase));
export default Polyline;
export default class Size {
width: number;
height: number;
constructor(wth: any, ht: any);
}
var Size = /** @class */ (function () {
function Size(wth, ht) {
this.width = wth;
this.height = ht;
}
return Size;
}());
export default Size;
import Bounds from './Bounds';
import LngLat from './common/LngLat';
import BasemapToggle from './control/BasemapToggle';
import BMapGallery from './control/BMapGallery';
import Compass from './control/Compass';
import Fullscreen from './control/Fullscreen';
import Home from './control/Home';
import LayerListControl from './control/LayerListControl';
import MeasureArea from './control/MeasureArea';
import MeasureLine from './control/MeasureLine';
import UndergroundSwitch from './control/UndergroundSwitch';
import Zoom from './control/Zoom';
import Map from './Map';
import FeatureReduction from './Overlays/FeatureReduction';
import Icon from './Overlays/Icon';
import Label from './Overlays/Label';
import Marker from './Overlays/Marker';
import OverlayGroup from './Overlays/OverlayGroup';
import Polygon from './Overlays/Polygon';
import Polyline from './Overlays/Polyline';
import Size from './Overlays/Size';
import MapEvent from './utils/MapEvent';
declare const _default: {
Bounds: typeof Bounds;
LayerListControl: typeof LayerListControl;
Zoom: typeof Zoom;
Home: typeof Home;
Compass: typeof Compass;
Fullscreen: typeof Fullscreen;
MeasureArea: typeof MeasureArea;
MeasureLine: typeof MeasureLine;
BasemapToggle: typeof BasemapToggle;
BMapGallery: typeof BMapGallery;
UndergroundSwitch: typeof UndergroundSwitch;
Marker: typeof Marker;
Icon: typeof Icon;
Size: typeof Size;
Label: typeof Label;
FeatureReduction: typeof FeatureReduction;
OverlayGroup: typeof OverlayGroup;
LngLat: typeof LngLat;
Polyline: typeof Polyline;
Polygon: typeof Polygon;
MapEvent: typeof MapEvent;
Map: typeof Map;
};
export default _default;
import Bounds from './Bounds';
import LngLat from './common/LngLat';
import BasemapToggle from './control/BasemapToggle';
import BMapGallery from './control/BMapGallery';
import Compass from './control/Compass';
import Fullscreen from './control/Fullscreen';
import Home from './control/Home';
import LayerListControl from './control/LayerListControl';
import MeasureArea from './control/MeasureArea';
import MeasureLine from './control/MeasureLine';
import UndergroundSwitch from './control/UndergroundSwitch';
import Zoom from './control/Zoom';
import Map from './Map';
import FeatureReduction from './Overlays/FeatureReduction';
import Icon from './Overlays/Icon';
import Label from './Overlays/Label';
import Marker from './Overlays/Marker';
import OverlayGroup from './Overlays/OverlayGroup';
import Polygon from './Overlays/Polygon';
import Polyline from './Overlays/Polyline';
import Size from './Overlays/Size';
// import {
// load
// } from './modules';
import MapEvent from './utils/MapEvent';
export default {
// load,
Bounds: Bounds,
LayerListControl: LayerListControl,
Zoom: Zoom,
Home: Home,
Compass: Compass,
Fullscreen: Fullscreen,
MeasureArea: MeasureArea,
MeasureLine: MeasureLine,
BasemapToggle: BasemapToggle,
BMapGallery: BMapGallery,
UndergroundSwitch: UndergroundSwitch,
Marker: Marker,
Icon: Icon,
Size: Size,
Label: Label,
FeatureReduction: FeatureReduction,
OverlayGroup: OverlayGroup,
LngLat: LngLat,
Polyline: Polyline,
Polygon: Polygon,
MapEvent: MapEvent,
Map: Map
};
export default class LngLat {
X: number;
Y: number;
Z: number;
constructor(x: number, y: number, z?: number);
}
var LngLat = /** @class */ (function () {
function LngLat(x, y, z) {
this.X = x;
this.Y = y;
this.Z = z === undefined ? 0 : z;
}
return LngLat;
}());
export default LngLat;
export default class Mapcofig {
static jsapi: string;
static jsapiversion4X: string;
static tokenserver: {
tokenType: string;
token_front: {
url: string;
user: string;
password: string;
};
token_black: {
url: string;
};
};
static proxyURL: string;
static proxyConifg: {
useProxy: boolean;
url: string;
httpsDomains: {
proxyUrl: string;
domainName: string;
}[];
};
static fonts: {
url: string;
};
static gisService: {
serverurl: string;
baseMapServices: {
isToken: boolean;
layers: {
url: string;
layerEName: string;
isToken: boolean;
visible: boolean;
opacity: number;
mapType: string;
tag: string;
layerCName: string;
type: string;
}[];
};
buildingsLayers: {
id: string;
title: string;
tag: string;
listMode: string;
visible: boolean;
layerGroups: {
id: string;
title: string;
tag: string;
visible: boolean;
listMode: string;
layerGroups: any[];
layers: {
url: string;
id: string;
istoken: boolean;
visible: boolean;
opacity: number;
maptype: string;
tag: string;
popupEnabled: boolean;
title: string;
type: string;
listMode: string;
}[];
}[];
layers: any[];
};
smapbussinessLayers: {
serverurl: string;
istoken: boolean;
tokenType: string;
layerGroups: {
id: string;
title: string;
grouptype: string;
tag: string;
visible: boolean;
listMode: string;
layerGroups: any[];
layers: ({
url: string;
id: string;
isToken: boolean;
visible: boolean;
opacity: number;
maptype: string;
tag: string;
title: string;
type: string;
listMode: string;
sublayers: {
id: number;
definitionExpression: string;
}[];
istoken?: undefined;
} | {
url: string;
id: string;
isToken: boolean;
visible: boolean;
opacity: number;
maptype: string;
tag: string;
title: string;
type: string;
listMode: string;
sublayers: {
id: number;
sublayers: {
id: number;
definitionExpression: string;
}[];
}[];
istoken?: undefined;
} | {
id: string;
istoken: boolean;
visible: boolean;
opacity: number;
maptype: string;
tag: string;
title: string;
type: string;
listMode: string;
url?: undefined;
isToken?: undefined;
sublayers?: undefined;
})[];
}[];
};
};
constructor();
}
var Mapcofig = /** @class */ (function () {
// tslint:disable-next-line:no-empty
function Mapcofig() {
}
Mapcofig.jsapi = 'http://168.168.112.74:8282/gis_system/repairemonitor/arcgis_js';
Mapcofig.jsapiversion4X = '4.15';
Mapcofig.tokenserver = {
tokenType: 'userdef',
token_front: {
url: 'http://10.108.3.52:8080/onemap/tokens/generateToken',
user: 'none',
password: 'none'
},
token_black: {
url: 'http://10.108.3.16:8401/mapconfig/maptoken'
}
};
Mapcofig.proxyURL = "http://168.168.112.76:8282/propertybusinessmanage/proxy.jsp";
Mapcofig.proxyConifg = {
useProxy: false,
url: Mapcofig.proxyURL + '?',
httpsDomains: [{
proxyUrl: Mapcofig.proxyURL,
domainName: '168.168.112.84:6080'
}, {
proxyUrl: Mapcofig.proxyURL,
domainName: '168.168.112.76:6080'
}, {
proxyUrl: Mapcofig.proxyURL,
domainName: '168.168.112.74:6080'
}]
};
Mapcofig.fonts = {
url: 'http://168.168.112.74:8282/gis_system/repairemonitor/arcgis_js/4.15/fonts'
};
Mapcofig.gisService = {
serverurl: 'http://168.168.112.84:6080/arcgis/rest/services',
baseMapServices: {
isToken: true,
layers: [{
url: 'http://168.168.112.84:6080/arcgis/rest/services/Image2019/MapServer',
layerEName: 'basemap_air',
isToken: true,
visible: false,
opacity: 1.0,
mapType: 'SHCTiledMapServiceLayer',
tag: '影像底图',
layerCName: '影像底图',
type: 'basemap_air'
}, {
url: 'http://168.168.112.84:6080/arcgis/rest/services/shmap_as3/MapServer',
layerEName: 'basemap_as',
isToken: true,
visible: true,
opacity: 1.0,
mapType: 'SHCTiledMapServiceLayer',
tag: '暗色底图',
layerCName: '暗色底图',
type: 'basemap_as'
}, {
url: 'http://168.168.112.84:6080/arcgis/rest/services/Basemap19/MapServer',
layerEName: 'basemap_zw',
isToken: true,
visible: false,
opacity: 1.0,
mapType: 'SHCTiledMapServiceLayer',
tag: '政务底图',
layerCName: '政务底图',
type: 'basemap_zw'
}]
},
buildingsLayers: {
id: "buildings_3d_layers",
title: "空间基础",
tag: "buildings_3d_layers",
listMode: 'show',
visible: true,
layerGroups: [{
id: "buildings_3d_above_layers",
title: "地上",
tag: "buildings_3d_above_layers",
visible: true,
listMode: 'show',
layerGroups: [],
layers: [{
url: "http://168.168.112.79/arcgis/rest/services/Hosted/whitebuilding/SceneServer",
id: "model_white_zw",
istoken: false,
visible: true,
opacity: 1.0,
maptype: "SceneLayer",
tag: "政务白模型",
popupEnabled: true,
title: "政务白模型",
type: "model_white_zw",
listMode: 'show'
}
]
}],
layers: []
},
smapbussinessLayers: {
serverurl: "http://168.168.112.76:6080/arcgis/rest/services",
istoken: true,
tokenType: "OneMap",
layerGroups: [{
id: "smap_3D_layers",
title: "三维业务组",
grouptype: '3D',
tag: "smap_3D_layers",
visible: true,
listMode: 'show',
layerGroups: [],
layers: []
}, {
id: "smap_2D_layers",
title: "二维业务组",
grouptype: '2D',
tag: "smap_2D_layers",
visible: true,
listMode: 'show',
layerGroups: [],
layers: [{
url: 'http://168.168.112.76:6080/arcgis/rest/services/WG_GIS_XQ_POLY/MapServer',
id: 'wg_gis_xq_poly',
isToken: true,
visible: true,
opacity: 1.0,
maptype: 'MapImageLayer',
tag: '小区面',
title: '小区面',
type: 'wg_gis_xq_poly',
listMode: 'show',
sublayers: [{
id: 0,
definitionExpression: "1 = 1"
}]
}, {
url: 'http://168.168.112.76:6080/arcgis/rest/services/WG_GIS_XQ_POINT/MapServer',
id: 'wg_gis_xq_point',
isToken: true,
visible: true,
opacity: 1.0,
maptype: 'MapImageLayer',
tag: '小区点',
title: '小区点',
type: 'wg_gis_xq_point',
listMode: 'show',
sublayers: [{
id: 0,
sublayers: [{
id: 5,
definitionExpression: "1 = 1"
}, {
id: 4,
definitionExpression: "1 = 1"
}, {
id: 3,
definitionExpression: "1 = 1"
}, {
id: 2,
definitionExpression: "1 = 1"
}, {
id: 1,
definitionExpression: "1 = 1"
}]
}]
}, {
url: 'http://168.168.112.76:6080/arcgis/rest/services/WG_GIS_MPZ/MapServer',
id: 'wg_gis_mpz',
isToken: true,
visible: true,
opacity: 1.0,
maptype: 'MapImageLayer',
tag: '门牌幢',
title: '门牌幢',
type: 'wg_gis_mpz',
listMode: 'show',
sublayers: [{
id: 5,
sublayers: [{
id: 8,
definitionExpression: "1 = 1"
}, {
id: 7,
definitionExpression: "1 = 1"
}, {
id: 6,
definitionExpression: "1 = 1"
}]
}, {
id: 0,
sublayers: [{
id: 4,
definitionExpression: "1 = 1"
}, {
id: 3,
definitionExpression: "1 = 1"
}, {
id: 2,
definitionExpression: "1 = 1"
}, {
id: 1,
definitionExpression: "1 = 1"
}]
}]
}, {
id: "location_Hightlight",
istoken: false,
visible: true,
opacity: 1.0,
maptype: "GraphicsLayer",
tag: "地名地址高亮",
title: "地名地址高亮",
type: "image",
listMode: 'hide'
}]
}]
}
};
return Mapcofig;
}());
export default Mapcofig;
import IMapControlOptions from '../interface/IMapControlOptions';
import MapControlBase from '../interface/MapControlBase';
export default class BMapGallery extends MapControlBase {
constructor(mapoptons: IMapControlOptions);
}
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
import MapControlBase from '../interface/MapControlBase';
var BMapGallery = /** @class */ (function (_super) {
__extends(BMapGallery, _super);
// tslint:disable-next-line:no-empty
function BMapGallery(mapoptons) {
var _this = _super.call(this, mapoptons) || this;
_this.controlName = 'basemapgallery';
return _this;
}
return BMapGallery;
}(MapControlBase));
export default BMapGallery;
import IMapControlOptions from '../interface/IMapControlOptions';
import MapControlBase from '../interface/MapControlBase';
export default class BasemapToggle extends MapControlBase {
constructor(mapoptons: IMapControlOptions);
}
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
import MapControlBase from '../interface/MapControlBase';
var BasemapToggle = /** @class */ (function (_super) {
__extends(BasemapToggle, _super);
// tslint:disable-next-line:no-empty
function BasemapToggle(mapoptons) {
var _this = _super.call(this, mapoptons) || this;
_this.controlName = 'basemaptoggle';
return _this;
}
return BasemapToggle;
}(MapControlBase));
export default BasemapToggle;
import IMapControlOptions from '../interface/IMapControlOptions';
import MapControlBase from '../interface/MapControlBase';
export default class Compass extends MapControlBase {
constructor(mapoptons: IMapControlOptions);
}
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
import MapControlBase from '../interface/MapControlBase';
var Compass = /** @class */ (function (_super) {
__extends(Compass, _super);
// tslint:disable-next-line:no-empty
function Compass(mapoptons) {
var _this = _super.call(this, mapoptons) || this;
_this.controlName = 'compass';
return _this;
}
return Compass;
}(MapControlBase));
export default Compass;
import IMapControlOptions from '../interface/IMapControlOptions';
import MapControlBase from '../interface/MapControlBase';
export default class Fullscreen extends MapControlBase {
constructor(mapoptons: IMapControlOptions);
}
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
import MapControlBase from '../interface/MapControlBase';
var Fullscreen = /** @class */ (function (_super) {
__extends(Fullscreen, _super);
// tslint:disable-next-line:no-empty
function Fullscreen(mapoptons) {
var _this = _super.call(this, mapoptons) || this;
_this.controlName = 'fullscreen';
return _this;
}
return Fullscreen;
}(MapControlBase));
export default Fullscreen;
import IMapControlOptions from '../interface/IMapControlOptions';
import MapControlBase from '../interface/MapControlBase';
export default class Home extends MapControlBase {
constructor(mapoptons: IMapControlOptions);
}
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
import MapControlBase from '../interface/MapControlBase';
var Home = /** @class */ (function (_super) {
__extends(Home, _super);
// tslint:disable-next-line:no-empty
function Home(mapoptons) {
var _this = _super.call(this, mapoptons) || this;
_this.controlName = 'home';
return _this;
}
return Home;
}(MapControlBase));
export default Home;
import IMapControlOptions from '../interface/IMapControlOptions';
import MapControlBase from '../interface/MapControlBase';
export default class LayerListControl extends MapControlBase {
constructor(mapoptons: IMapControlOptions);
}
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
import MapControlBase from '../interface/MapControlBase';
var LayerListControl = /** @class */ (function (_super) {
__extends(LayerListControl, _super);
// tslint:disable-next-line:no-empty
function LayerListControl(mapoptons) {
var _this = _super.call(this, mapoptons) || this;
_this.controlName = 'toc';
return _this;
}
return LayerListControl;
}(MapControlBase));
export default LayerListControl;
import IMapControlOptions from '../interface/IMapControlOptions';
import MapControlBase from '../interface/MapControlBase';
export default class MeasureArea extends MapControlBase {
constructor(mapoptons: IMapControlOptions);
}
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
import MapControlBase from '../interface/MapControlBase';
var MeasureArea = /** @class */ (function (_super) {
__extends(MeasureArea, _super);
// tslint:disable-next-line:no-empty
function MeasureArea(mapoptons) {
var _this = _super.call(this, mapoptons) || this;
_this.controlName = 'measurearea';
return _this;
}
return MeasureArea;
}(MapControlBase));
export default MeasureArea;
import IMapControlOptions from '../interface/IMapControlOptions';
import MapControlBase from '../interface/MapControlBase';
export default class MeasureLine extends MapControlBase {
constructor(mapoptons: IMapControlOptions);
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment