Skip to content
Snippets Groups Projects
Commit b5fadb76 authored by Bekerle, Patrizio's avatar Bekerle, Patrizio :fire: Committed by Reiter, Christoph
Browse files

Initial commit with basic KnowledgeBaseWebPageElementView web component...

Initial commit with basic KnowledgeBaseWebPageElementView web component scaffold including authentication
parent ba4cb4be
No related branches found
No related tags found
No related merge requests found
Showing
with 326 additions and 0 deletions
dist
node_modules
.idea
npm-debug.log
\ No newline at end of file
[submodule "vendor/common"]
path = vendor/common
url = git@gitlab.tugraz.at:VPU/WebComponents/Common.git
[submodule "vendor/auth"]
path = vendor/auth
url = git@gitlab.tugraz.at:VPU/WebComponents/Auth.git
## VPU KnowledgeBaseWebPageElementView Web Component
[GitLab Repository](https://gitlab.tugraz.at/VPU/WebComponents/KnowledgeBaseWebPageElementView)
## Usage
```html
<vpu-knowledge-base-web-page-element-view></vpu-knowledge-base-web-page-element-view>
```
## Attributes
- `lang` (optional, default: `de`): set to `de` or `en` for German or English
- example `<vpu-knowledge-base-web-page-element-view lang="de" client-id="my-client-id"></vpu-knowledge-base-web-page-element-view>`
## Local development
```bash
# get the source
git clone git@gitlab.tugraz.at:VPU/WebComponents/KnowledgeBaseWebPageElementView.git
cd KnowledgeBaseWebPageElementView
git submodule update --init
# we are creating the symbolic links to our git sub-modules
# (there was no proper script to do this automatically before a "node install"
npm run setup
# install dependencies
npm install
# constantly build dist/bundle.js and run a local web-server on port 8002
npm run watch-local
```
Jump to <http://localhost:8002> and you should get a demo page.
packages/knowledge-base-web-page-element-view/favicon.ico

2.49 KiB

import i18next from 'i18next';
import de from './i18n/de/translation.json';
import en from './i18n/en/translation.json';
const i18n = i18next.createInstance();
i18n.init({
lng: 'de',
fallbackLng: ['de'],
debug: false,
initImmediate: false, // Don't init async
resources: {
en: {translation: en},
de: {translation: de}
},
});
console.assert(i18n.isInitialized);
function dateTimeFormat(date, options) {
return new Intl.DateTimeFormat(i18n.languages, options).format(date);
}
function numberFormat(number, options) {
return new Intl.NumberFormat(i18n.languages, options).format(number);
}
export {i18n, dateTimeFormat, numberFormat};
{
}
{
}
module.exports = {
input: [
'*.js',
],
output: './',
options: {
debug: false,
removeUnusedKeys: true,
sort: true,
lngs: ['en','de'],
},
}
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<script src="webcomponents-loader.js"></script>
<script type="module" id="vpu-knowledge-base-web-page-element-view-wc-src" src="bundle.js"></script>
</head>
<body>
<vpu-knowledge-base-web-page-element-view-demo lang="de"></vpu-knowledge-base-web-page-element-view-demo>
</body>
</html>
import './node_modules/vpu-auth/vpu-auth';
import './vpu-kb-wpe-view';
import './vpu-kb-wpe-view-demo';
{
"name": "vpu-knowledge-base-web-page-element-view",
"version": "1.0.0",
"devDependencies": {
"node-sass": "^4.12.0",
"rollup": "^1.11.3",
"rollup-plugin-commonjs": "^9.3.4",
"rollup-plugin-copy": "^2.0.1",
"rollup-plugin-node-resolve": "^4.2.3",
"rollup-plugin-postcss": "^2.0.3",
"rollup-plugin-serve": "^1.0.1",
"rollup-plugin-terser": "^4.0.4",
"rollup-plugin-json": "^4.0.0",
"rollup-plugin-replace": "^2.2.0",
"i18next-scanner": "^2.10.2"
},
"dependencies": {
"@webcomponents/webcomponentsjs": "^2.2.10",
"i18next": "^17.0.3",
"lit-element": "^2.1.0",
"vpu-auth": "*",
"vpu-common": "*"
},
"scripts": {
"setup": "mkdir -p node_modules && cd node_modules && ln -sfn ../vendor/auth vpu-auth && ln -sfn ../vendor/common vpu-common",
"clean": "rm dist/*",
"build": "npm run build-local",
"build-local": "rollup -c",
"build-dev": "rollup -c --environment BUILD:development",
"build-prod": "rollup -c --environment BUILD:production",
"build-demo": "rollup -c --environment BUILD:demo",
"i18next": "i18next-scanner",
"watch": "npm run watch-local",
"watch-local": "rollup -c --watch",
"watch-dev": "rollup -c --watch --environment BUILD:development"
}
}
import resolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';
import postcss from 'rollup-plugin-postcss';
import copy from 'rollup-plugin-copy';
import {terser} from "rollup-plugin-terser";
import json from 'rollup-plugin-json';
import replace from "rollup-plugin-replace";
import serve from 'rollup-plugin-serve';
const build = (typeof process.env.BUILD !== 'undefined') ? process.env.BUILD : 'local';
console.log("build: " + build);
export default {
input: 'index.js',
output: {
file: 'dist/bundle.js',
format: 'esm'
},
plugins: [
resolve(),
commonjs(),
json(),
replace({
"process.env.BUILD": '"' + build + '"',
}),
postcss({
inject: false,
minimize: false,
plugins: []
}),
(build !== 'local') ? terser() : false,
copy({
targets: [
'index.html',
'favicon.ico',
'node_modules/@webcomponents/webcomponentsjs/webcomponents-loader.js',
'node_modules/@webcomponents/webcomponentsjs/bundles',
],
outputFolder: 'dist'
}),
(process.env.ROLLUP_WATCH === 'true') ? serve({contentBase: 'dist', host: '127.0.0.1', port: 8002}) : false
]
};
const vars = require("./vars");
module.exports = {
/**
* Reads a setting
*
* @param key
* @returns {*}
*/
setting: (key) => vars[key]
};
switch(process.env.BUILD) {
case "development":
module.exports = {
apiBaseUrl: 'https://mw-dev.tugraz.at',
apiUrlPrefix: '',
keyCloakClientId: 'auth-dev-mw-frontend',
};
break;
case "production":
module.exports = {
apiBaseUrl: 'https://mw.tugraz.at',
apiUrlPrefix: '',
keyCloakClientId: 'auth-prod-mw-frontend',
};
break;
case "demo":
module.exports = {
apiBaseUrl: 'https://api-demo.tugraz.at',
apiUrlPrefix: '',
keyCloakClientId: 'auth-dev-mw-frontend',
};
break;
case "local":
default:
module.exports = {
apiBaseUrl: 'http://127.0.0.1:8000',
apiUrlPrefix: '',
keyCloakClientId: 'auth-dev-mw-frontend-local',
};
}
auth @ 693af262
Subproject commit 693af26211eecbe79f8c0ce5c22a4e48915af032
import utils from './utils.js';
import {i18n} from './i18n';
import {html, LitElement} from 'lit-element';
class KnowledgeBaseWebPageElementViewDemo extends LitElement {
constructor() {
super();
this.lang = 'de';
}
static get properties() {
return {
lang: { type: String },
};
}
connectedCallback() {
super.connectedCallback();
i18n.changeLanguage(this.lang);
this.updateComplete.then(()=>{
});
}
render() {
return html`
<style>
</style>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.5/css/bulma.min.css">
<section class="section">
<div class="container">
<h1 class="title">KnowledgeBaseWebPageElementView-Demo</h1>
</div>
<div class="container">
<vpu-auth lang="${this.lang}" client-id="${utils.setting('keyCloakClientId')}" load-person force-login></vpu-auth>
</div>
<div class="container">
<vpu-knowledge-base-web-page-element-view lang="${this.lang}"></vpu-knowledge-base-web-page-element-view>
</div>
</section>
`;
}
}
customElements.define('vpu-knowledge-base-web-page-element-view-demo', KnowledgeBaseWebPageElementViewDemo);
import {i18n} from './i18n';
import {html} from 'lit-element';
import JSONLD from 'vpu-common/jsonld';
import VPULitElement from 'vpu-common/vpu-lit-element'
/**
* KnowledgeBaseWebPageElementView web component
*/
class VPUKnowledgeBaseWebPageElementView extends VPULitElement {
constructor() {
super();
this.lang = 'de';
}
/**
* See: https://lit-element.polymer-project.org/guide/properties#initialize
*/
static get properties() {
return {
lang: { type: String },
};
}
connectedCallback() {
super.connectedCallback();
i18n.changeLanguage(this.lang);
const that = this;
this.updateComplete.then(()=>{
});
}
render() {
return html`
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.5/css/bulma.min.css">
<style>
</style>
<div class="columns">
<div class="column">
TODO
</div>
</div>
`;
}
}
customElements.define('vpu-knowledge-base-web-page-element-view', VPUKnowledgeBaseWebPageElementView);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment