Commit 2101a218 authored by Alfakhori's avatar Alfakhori
Browse files

Merge branch 'Rosenstein' into 'master'

update some ui

See merge request !1
parents bf137ad8 91e89eab
Showing with 235 additions and 555 deletions
+235 -555
node_modules
node_modules/
node_modules
node_modules
stages:
- test
- deploy
pages-test:
stage: test
script:
- echo "Teste, ob Projektname gesetzt ist..."
- (! grep 'projektname= ""' public/settings.js)
- echo "Teste, ob Projektseitenlink gesetzt ist..."
- (! grep 'projektseitenlink= ""' public/settings.js)
- echo "Teste, ob Kontaktperson gesetzt ist..."
- (! grep 'Max Mustermann' public/kontakt.html)
only:
- Rosenstein
pages:
stage: deploy
script:
- echo "deploy to https://transfer.hft-stuttgart.de/pages/$CI_PROJECT_PATH/"
artifacts:
paths:
- vcm
only:
- Rosenstein
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "standard.vscode-standard"
}
\ No newline at end of file
/* eslint-disable */
require('eventsource-polyfill')
var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true')
hotClient.subscribe(function (event) {
if (event.action === 'reload') {
window.location.reload()
}
})
// var config = require('../config')
process.env.NODE_ENV = "development";
var opn = require('opn');
var express = require('express');
var webpack = require('webpack');
var webpackConfig = require('./webpack.dev.conf');
var examples = {
buttons: './src/examples/buttons/buttons.js',
content: './src/examples/content/content.js',
search: './src/examples/search/search.js'
};
if (process.argv.length === 3) {
var argEx = process.argv[2];
if (argEx === 'examples') {
for (var ex in examples) {
webpackConfig.entry.app.push(examples[ex]);
}
} else if (examples[argEx]) {
webpackConfig.entry.app.push(examples[argEx]);
}
}
var port = 8081;
var autoOpenBrowser = true;
var app = express();
var compiler = webpack(webpackConfig);
var devMiddleware = require('webpack-dev-middleware')(compiler, {
publicPath: webpackConfig.output.publicPath,
quiet: true
});
var hotMiddleware = require('webpack-hot-middleware')(compiler, {
log: () => {}
});
// force page reload when html-webpack-plugin template changes
compiler.plugin('compilation', function (compilation) {
compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) {
hotMiddleware.publish({ action: 'reload' });
cb();
});
});
app.use(require('connect-history-api-fallback')());
app.use(devMiddleware);
app.use(hotMiddleware);
// serve pure static assets
app.use("/assets", express.static('./assets'));
app.use("/lib", express.static('./vcm/lib'));
app.use("/config.json", express.static('./vcm/config.json'));
app.use("/css", express.static('./vcm/css'));
app.use("/fonts", express.static('./vcm/fonts'));
app.use("/images", express.static('./vcm/images'));
app.use("/img", express.static('./vcm/img'));
app.use("/templates", express.static('./vcm/templates'));
app.use("/examples", express.static('./vcm/examples'));
app.use("/doc", express.static('./vcm/doc'));
app.use("/datasource-data", express.static('./vcm/datasource-data'));
var uri = 'http://localhost:' + port;
devMiddleware.waitUntilValid(function () {
console.log('> Listening at ' + uri + '\n');
});
module.exports = app.listen(port, function (err) {
if (err) {
console.log(err);
return;
}
// when env is testing, don't need open it
if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') {
opn(uri);
}
});
var path = require('path')
var webpack = require('webpack')
var HtmlWebpackPlugin = require('html-webpack-plugin')
var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
var ScriptExtHtmlWebpackPlugin = require('script-ext-html-webpack-plugin')
function resolve (dir) {
return path.join(__dirname, '..', dir)
}
function cssLoaders (options) {
options = options || {}
var cssLoader = {
loader: 'css-loader',
options: {
minimize: process.env.NODE_ENV === 'production',
sourceMap: options.sourceMap
}
}
// generate loader string to be used with extract text plugin
function generateLoaders (loader, loaderOptions) {
var loaders = [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,
fallback: 'vue-style-loader'
})
} else {
return ['vue-style-loader'].concat(loaders)
}
}
// http://vuejs.github.io/vue-loader/en/configurations/extract-css.html
return {
css: generateLoaders(),
postcss: generateLoaders(),
less: generateLoaders('less'),
sass: generateLoaders('sass', { indentedSyntax: true }),
scss: generateLoaders('sass'),
stylus: generateLoaders('stylus'),
styl: generateLoaders('stylus')
}
}
module.exports = {
entry: {
app: ['./src/index.js', './build/dev-client']
},
output: {
path: path.resolve(__dirname, 'dist'),
filename: '[name].js',
chunkFilename: '[name].js',
publicPath: '/'
},
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: {
'@': resolve('src'),
}
},
module: {
rules: [
{
test: /\.vue$/,
loader: 'vue-loader',
options: {
loaders: cssLoaders({
sourceMap: false,
extract: false
})
}
},
{
test: /\.js$/,
loader: 'babel-loader',
include: [resolve('src')]
}
]
},
devtool: '#cheap-module-eval-source-map',
plugins: [
new webpack.DefinePlugin({
'process.env': { NODE_ENV: '"development"' }
}),
// https://github.com/glenjamin/webpack-hot-middleware#installation--usage
new webpack.HotModuleReplacementPlugin(),
new webpack.NoEmitOnErrorsPlugin(),
// https://github.com/ampedandwired/html-webpack-plugin
new HtmlWebpackPlugin({
filename: 'index.html',
template: './vcm/index.html',
inject: true
}),
new ScriptExtHtmlWebpackPlugin({
defer: 'app.js'
}),
new FriendlyErrorsPlugin()
]
}
process.env.NODE_ENV = 'production'
var path = require('path')
var webpack = require('webpack')
function resolve (dir) {
return path.join(__dirname, '..', dir)
}
function cssLoaders (options) {
options = options || {}
var cssLoader = {
loader: 'css-loader',
options: {
minimize: process.env.NODE_ENV === 'production',
sourceMap: options.sourceMap
}
}
// generate loader string to be used with extract text plugin
function generateLoaders (loader, loaderOptions) {
var loaders = [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,
fallback: 'vue-style-loader'
})
} else {
return ['vue-style-loader'].concat(loaders)
}
}
// http://vuejs.github.io/vue-loader/en/configurations/extract-css.html
return {
css: generateLoaders(),
postcss: generateLoaders(),
less: generateLoaders('less'),
sass: generateLoaders('sass', { indentedSyntax: true }),
scss: generateLoaders('sass'),
stylus: generateLoaders('stylus'),
styl: generateLoaders('stylus')
}
}
const plugins = [
// http://vuejs.github.io/vue-loader/en/workflow/production.html
new webpack.DefinePlugin({
'process.env': { NODE_ENV: '"production"' }
}),
];
if (!process.env.VUE_CLI_MODERN_BUILD) {
plugins.push(new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
},
sourceMap: true
}));
}
module.exports = {
entry: {
plugin: './src/index.js'
},
output: {
path: path.resolve(__dirname, '..', 'dist'),
filename: process.env.VUE_CLI_MODERN_BUILD ? 'plugin._es6.js' : 'plugin.js',
library: process.env.LIBRARY_NAME,
libraryTarget: process.env.LIBRARY_NAME ? 'umd': undefined,
publicPath: './'
},
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: {
'@': resolve('src'),
}
},
module: {
rules: [
{
test: /\.vue$/,
loader: 'vue-loader',
options: {
loaders: cssLoaders({
sourceMap: false,
extract: false
})
}
},
{
test: /\.js$/,
loader: 'babel-loader',
include: [resolve('src')]
},
{
test: /\.(png|jpe?g|gif)(\?.*)?$/,
use: [
{
loader: 'url-loader',
options: {
limit: 10000,
name: 'img/[name].[hash:8].[ext]'
}
}
]
},
{
test: /\.(svg)(\?.*)?$/,
use: [
{
loader: 'file-loader',
options: {
name: 'img/[name].[hash:8].[ext]'
}
}
]
},
{
test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
use: [
{
loader: 'url-loader',
options: {
limit: 10000,
name: 'media/[name].[hash:8].[ext]'
}
}
]
},
{
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/i,
use: [
{
loader: 'url-loader',
options: {
limit: 10000,
name: 'fonts/[name].[hash:8].[ext]'
}
}
]
}
]
},
devtool: false,
plugins,
};
var path = require('path')
var webpack = require('webpack')
function resolve (dir) {
return path.join(__dirname, '..', dir)
}
function cssLoaders (options) {
options = options || {}
var cssLoader = {
loader: 'css-loader',
options: {
minimize: process.env.NODE_ENV === 'production',
sourceMap: options.sourceMap
}
}
// generate loader string to be used with extract text plugin
function generateLoaders (loader, loaderOptions) {
var loaders = [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,
fallback: 'vue-style-loader'
})
} else {
return ['vue-style-loader'].concat(loaders)
}
}
// http://vuejs.github.io/vue-loader/en/configurations/extract-css.html
return {
css: generateLoaders(),
postcss: generateLoaders(),
less: generateLoaders('less'),
sass: generateLoaders('sass', { indentedSyntax: true }),
scss: generateLoaders('sass'),
stylus: generateLoaders('stylus'),
styl: generateLoaders('stylus')
}
}
module.exports = {
output: {
path: path.resolve(__dirname, 'dist'),
filename: '[name].js',
chunkFilename: '[name].js',
publicPath: '/'
},
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: {
'vue$': 'vue/dist/vue.esm.js',
'@': resolve('src')
}
},
module: {
rules: [
{
test: /\.vue$/,
loader: 'vue-loader',
options: {
loaders: cssLoaders({
sourceMap: false,
extract: false
})
}
},
{
test: /\.js$/,
loader: 'babel-loader',
include: [resolve('src'), resolve('test')]
}
]
},
devtool: '#inline-source-map',
plugins: [
new webpack.DefinePlugin({
'process.env': { NODE_ENV: '"testing"' }
})
]
}
codepoly.js 0 → 100644
/*
* Copyright (C) 2019 HERE Europe B.V.
* Licensed under MIT, see full license in LICENSE
* SPDX-License-Identifier: MIT
* License-Filename: LICENSE
*/
const DEFAULT_PRECISION = 5;
const ENCODING_TABLE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
const DECODING_TABLE = [
62, -1, -1, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
22, 23, 24, 25, -1, -1, -1, -1, 63, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51
];
const FORMAT_VERSION = 1;
const ABSENT = 0;
const LEVEL = 1;
const ALTITUDE = 2;
const ELEVATION = 3;
// Reserved values 4 and 5 should not be selectable
const CUSTOM1 = 6;
const CUSTOM2 = 7;
const Num = typeof BigInt !== "undefined" ? BigInt : Number;
function decode(encoded) {
const decoder = decodeUnsignedValues(encoded);
const header = decodeHeader(decoder[0], decoder[1]);
const factorDegree = 10 ** header.precision;
const factorZ = 10 ** header.thirdDimPrecision;
const { thirdDim } = header;
let lastLat = 0;
let lastLng = 0;
let lastZ = 0;
const res = [];
let i = 2;
for (;i < decoder.length;) {
const deltaLat = toSigned(decoder[i]) / factorDegree;
const deltaLng = toSigned(decoder[i + 1]) / factorDegree;
lastLat += deltaLat;
lastLng += deltaLng;
if (thirdDim) {
const deltaZ = toSigned(decoder[i + 2]) / factorZ;
lastZ += deltaZ;
res.push([lastLat, lastLng, lastZ]);
i += 3;
} else {
res.push([lastLat, lastLng]);
i += 2;
}
}
if (i !== decoder.length) {
throw new Error('Invalid encoding. Premature ending reached');
}
return {
...header,
polyline: res,
};
}
function decodeChar(char) {
const charCode = char.charCodeAt(0);
return DECODING_TABLE[charCode - 45];
}
function decodeUnsignedValues(encoded) {
let result = Num(0);
let shift = Num(0);
const resList = [];
encoded.split('').forEach((char) => {
const value = Num(decodeChar(char));
result |= (value & Num(0x1F)) << shift;
if ((value & Num(0x20)) === Num(0)) {
resList.push(result);
result = Num(0);
shift = Num(0);
} else {
shift += Num(5);
}
});
if (shift > 0) {
throw new Error('Invalid encoding');
}
return resList;
}
function decodeHeader(version, encodedHeader) {
if (+version.toString() !== FORMAT_VERSION) {
throw new Error('Invalid format version');
}
const headerNumber = +encodedHeader.toString();
const precision = headerNumber & 15;
const thirdDim = (headerNumber >> 4) & 7;
const thirdDimPrecision = (headerNumber >> 7) & 15;
return { precision, thirdDim, thirdDimPrecision };
}
function toSigned(val) {
// Decode the sign from an unsigned value
let res = val;
if (res & Num(1)) {
res = ~res;
}
res >>= Num(1);
return +res.toString();
}
function encode({ precision = DEFAULT_PRECISION, thirdDim = ABSENT, thirdDimPrecision = 0, polyline }) {
// Encode a sequence of lat,lng or lat,lng(,{third_dim}). Note that values should be of type BigNumber
// `precision`: how many decimal digits of precision to store the latitude and longitude.
// `third_dim`: type of the third dimension if present in the input.
// `third_dim_precision`: how many decimal digits of precision to store the third dimension.
const multiplierDegree = 10 ** precision;
const multiplierZ = 10 ** thirdDimPrecision;
const encodedHeaderList = encodeHeader(precision, thirdDim, thirdDimPrecision);
const encodedCoords = [];
let lastLat = Num(0);
let lastLng = Num(0);
let lastZ = Num(0);
polyline.forEach((location) => {
const lat = Num(Math.round(location[0] * multiplierDegree));
encodedCoords.push(encodeScaledValue(lat - lastLat));
lastLat = lat;
const lng = Num(Math.round(location[1] * multiplierDegree));
encodedCoords.push(encodeScaledValue(lng - lastLng));
lastLng = lng;
if (thirdDim) {
const z = Num(Math.round(location[2] * multiplierZ));
encodedCoords.push(encodeScaledValue(z - lastZ));
lastZ = z;
}
});
return [...encodedHeaderList, ...encodedCoords].join('');
}
function encodeHeader(precision, thirdDim, thirdDimPrecision) {
// Encode the `precision`, `third_dim` and `third_dim_precision` into one encoded char
if (precision < 0 || precision > 15) {
throw new Error('precision out of range. Should be between 0 and 15');
}
if (thirdDimPrecision < 0 || thirdDimPrecision > 15) {
throw new Error('thirdDimPrecision out of range. Should be between 0 and 15');
}
if (thirdDim < 0 || thirdDim > 7 || thirdDim === 4 || thirdDim === 5) {
throw new Error('thirdDim should be between 0, 1, 2, 3, 6 or 7');
}
const res = (thirdDimPrecision << 7) | (thirdDim << 4) | precision;
return encodeUnsignedNumber(FORMAT_VERSION) + encodeUnsignedNumber(res);
}
function encodeUnsignedNumber(val) {
// Uses variable integer encoding to encode an unsigned integer. Returns the encoded string.
let res = '';
let numVal = Num(val);
while (numVal > 0x1F) {
const pos = (numVal & Num(0x1F)) | Num(0x20);
res += ENCODING_TABLE[pos];
numVal >>= Num(5);
}
return res + ENCODING_TABLE[numVal];
}
function encodeScaledValue(value) {
// Transform a integer `value` into a variable length sequence of characters.
// `appender` is a callable where the produced chars will land to
let numVal = Num(value);
const negative = numVal < 0;
numVal <<= Num(1);
if (negative) {
numVal = ~numVal;
}
return encodeUnsignedNumber(numVal);
}
module.exports = {
encode,
decode,
ABSENT,
LEVEL,
ALTITUDE,
ELEVATION,
};
{
"_esmodule": true,
"ui": {
"plugins": {
"questionnaireWidget": {
}
}
},
"widgets" : {
"type": "vcs.vcm.widgets.Questionnaire",
"name": "Questionnaire"
},
}
\ No newline at end of file
(function(e){var t={};function n(r){if(t[r]){return t[r].exports}var o=t[r]={i:r,l:false,exports:{}};e[r].call(o.exports,o,o.exports,n);o.l=true;return o.exports}n.m=e;n.c=t;n.d=function(e,t,r){if(!n.o(e,t)){Object.defineProperty(e,t,{configurable:false,enumerable:true,get:r})}};n.n=function(e){var t=e&&e.__esModule?function t(){return e["default"]}:function t(){return e};n.d(t,"a",t);return t};n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};n.p="./";return n(n.s=0)})([function(e,t){vcs.ui.registerPlugin({name:"questionnaireWidget",widgetButton:['<LeadButton @click="Questionnaire()">Ques</LeadButton>']});window.Questionnaire=function(){document.getElementById("projektOne").style.display="none";document.getElementById("Energiekonzept").style.display="none";document.getElementById("UmfrageOne").style.display="block";showTour()}}]);
\ No newline at end of file
!function(e){function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}var t={};n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:o})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},n.p="./",n(n.s=0)}([function(e,n){vcs.ui.registerPlugin({name:"questionnaireWidget",widgetButton:['<LeadButton @click="Questionnaire()">Ques</LeadButton>']}),window.Questionnaire=function(){document.getElementById("projektOne").style.display="none",document.getElementById("Energiekonzept").style.display="none",document.getElementById("UmfrageOne").style.display="block",showTour()}}]);
\ No newline at end of file
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
"$basedir/node" "$basedir/../acorn/bin/acorn" "$@"
ret=$?
else
node "$basedir/../acorn/bin/acorn" "$@"
ret=$?
fi
exit $ret
@IF EXIST "%~dp0\node.exe" (
"%~dp0\node.exe" "%~dp0\..\acorn\bin\acorn" %*
) ELSE (
@SETLOCAL
@SET PATHEXT=%PATHEXT:;.JS;=;%
node "%~dp0\..\acorn\bin\acorn" %*
)
\ No newline at end of file
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
"$basedir/node" "$basedir/../ansi-html/bin/ansi-html" "$@"
ret=$?
else
node "$basedir/../ansi-html/bin/ansi-html" "$@"
ret=$?
fi
exit $ret
@IF EXIST "%~dp0\node.exe" (
"%~dp0\node.exe" "%~dp0\..\ansi-html\bin\ansi-html" %*
) ELSE (
@SETLOCAL
@SET PATHEXT=%PATHEXT:;.JS;=;%
node "%~dp0\..\ansi-html\bin\ansi-html" %*
)
\ No newline at end of file
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
"$basedir/node" "$basedir/../atob/bin/atob.js" "$@"
ret=$?
else
node "$basedir/../atob/bin/atob.js" "$@"
ret=$?
fi
exit $ret
@IF EXIST "%~dp0\node.exe" (
"%~dp0\node.exe" "%~dp0\..\atob\bin\atob.js" %*
) ELSE (
@SETLOCAL
@SET PATHEXT=%PATHEXT:;.JS;=;%
node "%~dp0\..\atob\bin\atob.js" %*
)
\ No newline at end of file
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
"$basedir/node" "$basedir/../babylon/bin/babylon.js" "$@"
ret=$?
else
node "$basedir/../babylon/bin/babylon.js" "$@"
ret=$?
fi
exit $ret
@IF EXIST "%~dp0\node.exe" (
"%~dp0\node.exe" "%~dp0\..\babylon\bin\babylon.js" %*
) ELSE (
@SETLOCAL
@SET PATHEXT=%PATHEXT:;.JS;=;%
node "%~dp0\..\babylon\bin\babylon.js" %*
)
\ No newline at end of file
Supports Markdown
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