14 Commits

Author SHA1 Message Date
f010f1e32b 1.0.63 2021-09-27 02:40:49 +02:00
1e24a6a671 fix(core): update 2021-09-27 02:40:49 +02:00
69583a90ad 1.0.62 2021-09-27 00:49:30 +02:00
efb2e53e0c fix(core): update 2021-09-27 00:49:30 +02:00
fe38765d2f 1.0.61 2021-09-27 00:45:18 +02:00
1903687a46 fix(core): update 2021-09-27 00:45:17 +02:00
78811a2879 1.0.60 2021-09-24 13:53:07 +02:00
b6eef831c6 fix(core): update 2021-09-24 13:53:07 +02:00
b562be8529 1.0.59 2021-09-23 14:30:03 +02:00
b5cab6d077 fix(core): update 2021-09-23 14:30:02 +02:00
5ce4209a79 1.0.58 2020-11-29 02:07:12 +00:00
97bee32496 fix(core): update 2020-11-29 02:07:12 +00:00
7e4d9249d3 1.0.57 2020-09-19 14:01:12 +00:00
86f404e923 fix(core): update 2020-09-19 14:01:12 +00:00
16 changed files with 21018 additions and 3936 deletions

24091
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{ {
"name": "@uptimelink_private/catalog", "name": "@uptimelink_private/catalog",
"version": "1.0.56", "version": "1.0.63",
"private": false, "private": false,
"description": "a catalog with webcomponents for uptimelink dashboard", "description": "a catalog with webcomponents for uptimelink dashboard",
"main": "dist_ts_web/index.js", "main": "dist_ts_web/index.js",
@ -13,18 +13,18 @@
"author": "Lossless GmbH", "author": "Lossless GmbH",
"license": "UNLICENSED", "license": "UNLICENSED",
"dependencies": { "dependencies": {
"@designestate/dees-domtools": "^1.0.41", "@designestate/dees-domtools": "^1.0.95",
"@designestate/dees-wcctools": "^1.0.37", "@designestate/dees-element": "^1.0.25",
"@gitzone/tsrun": "^1.2.12", "@designestate/dees-wcctools": "^1.0.57",
"@losslessone_private/loint-pubapi": "^1.0.9", "@gitzone/tsrun": "^1.2.17",
"@pushrocks/smartexpress": "^3.0.76", "@losslessone_private/loint-pubapi": "^1.0.10",
"lit-element": "^2.3.1", "@uptimelink/interfaces": "^1.0.10",
"typescript": "^3.9.7" "typescript": "^4.4.3"
}, },
"devDependencies": { "devDependencies": {
"@gitzone/tsbuild": "^2.1.24", "@gitzone/tsbuild": "^2.1.27",
"@gitzone/tsbundle": "^1.0.72", "@gitzone/tsbundle": "^1.0.87",
"@gitzone/tswatch": "^1.0.50", "@gitzone/tswatch": "^1.0.56",
"@pushrocks/projectinfo": "^4.0.5", "@pushrocks/projectinfo": "^4.0.5",
"tslint": "^6.1.3", "tslint": "^6.1.3",
"tslint-config-prettier": "^1.17.0" "tslint-config-prettier": "^1.17.0"

View File

@ -1 +1,7 @@
export * from './lele-card'; export * from './upl-statuspage-assetsselector';
export * from './upl-statuspage-footer';
export * from './upl-statuspage-header';
export * from './upl-statuspage-incidents';
export * from './upl-statuspage-statusbar';
export * from './upl-statuspage-statusdetails';
export * from './upl-statuspage-statusmonth';

View File

@ -0,0 +1,27 @@
import { customElement, DeesElement, html, TemplateResult } from '@designestate/dees-element';
import * as domtools from '@designestate/dees-domtools';
@customElement('uplinternal-miniheading')
export class UplinternalMiniheading extends DeesElement {
public render(): TemplateResult {
return html`
${domtools.elementBasic.styles}
<style>
:host {
display: block;
font-family: Roboto Mono;
}
h5 {
display: block;
max-width: 900px;
margin: 0px auto;
padding: 0px 0px 10px 0px;
color: #707070;
}
</style>
<h5>${this.textContent}</h5>
`;
}
}

View File

@ -1,182 +0,0 @@
import { LitElement, property, html, customElement, TemplateResult } from 'lit-element';
import * as domtools from '@designestate/dees-domtools';
@customElement('lele-card')
export class LeleCard extends LitElement {
public static demo = () => html`
<lele-card
imgsrc="https://assetbroker.lossless.one/brandfiles/00general/square_lossless.svg"
.links="${[
{
text: 'Visit Website',
url: 'https://lossless.com'
}
]}"
.tabledata="${[
{
key: 'name',
value: 'Lossless GmbH'
},
{
key: 'domain',
value: 'https://lossless.com'
}
]}"
></lele-card>
`;
@property()
public heading: string = 'loading...';
@property()
public imgsrc: string = 'https://assetbroker.lossless.one/brandfiles/00general/square_lossless.svg';
@property({type: Array})
public links: {text: string; url: string}[] = [];
@property({type: Array})
public tabledata: {key: string, value: string}[] = [];
constructor() {
super();
domtools.DomTools.setupDomTools();
}
public render(): TemplateResult {
return html`
${domtools.elementBasic.styles}
<style>
:host(:hover) .mainbox {
border-top: 1px solid var(--lelecv-color-accent, #e4002b);
}
:host(:hover) .mainbox .topimage img {
filter: grayscale(0%);
}
.mainbox {
display: block;
position: relative;
max-width: 400px;
max-height: 600px;
background: #212121;
transition: border-top 0.1s ease;
border-top: 1px solid #444;
box-sizing: border-box;
border-radius: 3px;
box-shadow: 0px 0px 6px rgba(0,0,0,0.6);
overflow: hidden;
min-height: 100px;
color: #ccc;
}
.topimage {
position: relative;
width: 100%;
}
.topimage img {
display: block;
width: 100%;
height: auto;
min-height: 20px;
transition: all 0.1s;
filter: grayscale(100%);
}
.heading {
font-size: 25px;
font-weight: 100;
position: absolute;
padding: 10px;
top: 55px;
left: 0px;
}
.content {
position: relative;
padding: 10px;
min-height: 100px;
box-shadow: 0px 0px 3px rgba(0,0,0,0.1);
border-top: 1px #444 dotted;
border-bottom: 1px #444 dotted;
}
.links {
position: relative;
height: 35px;
text-align: right;
}
.link {
display: inline-block;
padding: 0px 5px;
line-height: 35px;
height: 35px;
font-size: 15px;
}
a {
transition: color 0.1s ease;
text-decoration: none;
color: #888;
}
a:hover {
color: #CCC;
}
.tableline {
margin-left: -5px;
margin-right: -5px;
padding: 10px;
color: #cccccc;
font-size: 14px;
}
.tableline:hover {
color: #ffffff;
}
.tableline:nth-child(even) {
background: rgba(0,0,0,0.2);
}
.tableline .key {
font-family: 'Roboto Mono', monospace;
font-size: 12px;
color: #bbbbbb;
font-weight: bold;
}
.tableline .value {
font-family: 'Roboto Mono', monospace;
}
</style>
<div class="mainbox">
<div class="topimage"><img src="${this.imgsrc}" width="100" height="100" loading="lazy"></div>
<div class="content">
<slot>
${this.tabledata ? this.tabledata.map(datapoint => html`
<div class="tableline">
<div class="key">
${datapoint.key}:
</div>
<div class="value">
${datapoint.value}
</div>
</div>
`) : null}
</slot>
</div>
<div class="links">
${this.links.map(linkArg => {
return html`
<div class="link"><a target="_blank" href="${linkArg.url}">${linkArg.text}</a></div>
`;
})}
</div>
</div>
`;
}
}

View File

@ -0,0 +1,55 @@
import {
DeesElement,
property,
html,
customElement,
TemplateResult,
} from '@designestate/dees-element';
import * as domtools from '@designestate/dees-domtools';
import './internal/uplinternal-miniheading';
declare global {
interface HTMLElementTagNameMap {
'upl-statuspage-assetsselector': UplStatuspageAssetsselector;
}
}
@customElement('upl-statuspage-assetsselector')
export class UplStatuspageAssetsselector extends DeesElement {
public static demo = () => html`
<upl-statuspage-assetsselector></upl-statuspage-assetsselector>
`;
constructor() {
super();
}
public render(): TemplateResult {
return html`
${domtools.elementBasic.styles}
<style>
:host {
padding: 0px 0px 15px 0px;
display: block;
background: #222222;
font-family: Roboto Mono;
color: #fff;
}
.mainbox {
margin: auto;
max-width: 900px;
text-align: center;
height: 50px;
border-radius: 3px;
background: #404040;
}
</style>
<uplinternal-miniheading>Monitored Assets</uplinternal-miniheading>
<div class="mainbox">
Hello!
</div>
`;
}
}

View File

@ -0,0 +1,72 @@
import { DeesElement, property, html, customElement, TemplateResult, css, cssManager } from '@designestate/dees-element';
import * as domtools from '@designestate/dees-domtools';
declare global {
interface HTMLElementTagNameMap {
'upl-statuspage-footer': UplStatuspageFooter;
}
}
@customElement('upl-statuspage-footer')
export class UplStatuspageFooter extends DeesElement {
// STATIC
public static demo = () => html`
<upl-statuspage-footer></upl-statuspage-footer>
`;
// INSTANCE
@property()
public legalInfo: string = "https://lossless.gmbh";
@property({
type: Boolean
})
public whitelabel = false;
constructor() {
super();
}
public static styles = [
domtools.elementBasic.staticStyles,
css`
:host {
display: block;
background: ${cssManager.bdTheme('#ffffff', '#000000')};
font-family: Roboto Mono;
color: ${cssManager.bdTheme('#333333', '#ffffff')};
}
.mainbox {
max-width: 900px;
margin: auto;
padding-top: 20px;
padding-bottom: 20px;
}
`
]
public render(): TemplateResult {
return html`
${domtools.elementBasic.styles}
<style></style>
<div class="mainbox">
Hi there
</div>
`;
}
public dispatchReportNewIncident() {
this.dispatchEvent(new CustomEvent('reportNewIncident', {
}))
}
public dispatchStatusSubscribe() {
this.dispatchEvent(new CustomEvent('statusSubscribe', {
}))
}
}

View File

@ -0,0 +1,110 @@
import { DeesElement, property, html, customElement, TemplateResult, css, cssManager } from '@designestate/dees-element';
import * as domtools from '@designestate/dees-domtools';
declare global {
interface HTMLElementTagNameMap {
'upl-statuspage-header': UplStatuspageHeader;
}
}
@customElement('upl-statuspage-header')
export class UplStatuspageHeader extends DeesElement {
// STATIC
public static demo = () => html`
<upl-statuspage-header></upl-statuspage-header>
`;
// INSTANCE
@property()
public pageTitle: string = "Statuspage Title";
constructor() {
super();
}
public static styles = [
domtools.elementBasic.staticStyles,
css`
:host {
display: block;
background: ${cssManager.bdTheme('#eeeeeb', '#222222')};
font-family: Roboto Mono;
color: ${cssManager.bdTheme('#333333', '#ffffff')};
}
.mainbox {
margin: auto;
max-width: 900px;
}
.mainbox .actions {
display: flex;
justify-content: flex-end;
padding: 20px 0px 40px 0px;
}
.mainbox .actions .actionButton {
background: ${cssManager.bdTheme('#00000000', '#ffffff00')};
font-size: 12px;
border: 1px solid ${cssManager.bdTheme('#333', '#CCC')};
padding: 6px 10px 7px 10px;
margin-left: 10px;
border-radius: 3px;
cursor: pointer;
user-select: none;
}
.mainbox .actions .actionButton:hover {
background: ${cssManager.bdTheme('#333333', '#efefef')};
border: 1px solid ${cssManager.bdTheme('#333333', '#efefef')};
color: ${cssManager.bdTheme('#fff', '#333333')};
}
h1 {
margin: 0px;
text-align: center;
font-weight: 300;
font-size: 35px;
}
h2 {
margin: 0px;
margin-top: 10px;
text-align: center;
font-weight: 300;
font-size: 18px;
}
`
]
public render(): TemplateResult {
return html`
${domtools.elementBasic.styles}
<style>
</style>
<div class="mainbox">
<div class="actions">
<div class="actionButton" @click=${this.dispatchReportNewIncident}>report new incident</div>
<div class="actionButton" @click=${this.dispatchStatusSubscribe}>subscribe</div>
</div>
<h1>${this.pageTitle}</h1>
<h2>STATUS BOARD</h2>
</div>
`;
}
public dispatchReportNewIncident() {
this.dispatchEvent(new CustomEvent('reportNewIncident', {
}))
}
public dispatchStatusSubscribe() {
this.dispatchEvent(new CustomEvent('statusSubscribe', {
}))
}
}

View File

@ -0,0 +1,90 @@
import * as plugins from '../plugins';
import {
DeesElement,
property,
html,
customElement,
TemplateResult,
css,
cssManager,
} from '@designestate/dees-element';
declare global {
interface HTMLElementTagNameMap {
'upl-statuspage-incidents': UplStatuspageIncidents;
}
}
@customElement('upl-statuspage-incidents')
export class UplStatuspageIncidents extends DeesElement {
// STATIC
public static demo = () => html` <upl-statuspage-incidents></upl-statuspage-incidents> `;
// INSTANCE
@property({
type: Array,
})
public currentIncidences: plugins.uplInterfaces.data.IIncident[] = [];
@property({
type: Array,
})
public pastIncidences: plugins.uplInterfaces.data.IIncident[] = [];
@property({
type: Boolean,
})
public whitelabel = false;
constructor() {
super();
}
public static styles = [
plugins.domtools.elementBasic.staticStyles,
css`
:host {
display: block;
background: ${cssManager.bdTheme('#eeeeeb', '#222222')};
font-family: Roboto Mono;
color: ${cssManager.bdTheme('#333333', '#ffffff')};
}
.mainbox {
max-width: 900px;
margin: auto;
}
.noIncidentBox {
background: #333;
padding: 10px;
margin-bottom: 15px;
border-radius: 3px;
}
`,
];
public render(): TemplateResult {
return html`
<style></style>
<div class="mainbox">
<uplinternal-miniheading> Current Incidents </uplinternal-miniheading>
${this.currentIncidences.length
? html``
: html` <div class="noIncidentBox">No incidents ongoing.</div> `}
<uplinternal-miniheading> Past Incidents </uplinternal-miniheading>
${this.pastIncidences.length
? html``
: html` <div class="noIncidentBox">No past incidents in the last 90 days.</div> `}
</div>
`;
}
public dispatchReportNewIncident() {
this.dispatchEvent(new CustomEvent('reportNewIncident', {}));
}
public dispatchStatusSubscribe() {
this.dispatchEvent(new CustomEvent('statusSubscribe', {}));
}
}

View File

@ -0,0 +1,50 @@
import { DeesElement, property, html, customElement, TemplateResult } from '@designestate/dees-element';
import * as domtools from '@designestate/dees-domtools';
declare global {
interface HTMLElementTagNameMap {
'upl-statuspage-statusbar': UplStatuspageStatusbar;
}
}
@customElement('upl-statuspage-statusbar')
export class UplStatuspageStatusbar extends DeesElement {
public static demo = () => html`
<upl-statuspage-statusbar></upl-statuspage-statusbar>
`;
constructor() {
super();
}
public render(): TemplateResult {
return html`
${domtools.elementBasic.styles}
<style>
:host {
padding: 20px 0px 15px 0px;
display: block;
background: #222222;
font-family: Roboto Mono;
color: #fff;
}
.mainbox {
margin: auto;
max-width: 900px;
text-align: center;
background: #19572E;
line-height: 50px;
border-radius: 3px;
}
</style>
<div class="mainbox">
Everything is working normally!
</div>
`;
}
}

View File

@ -0,0 +1,95 @@
import * as plugins from '../plugins';
import {
DeesElement,
property,
html,
customElement,
TemplateResult,
css,
cssManager,
} from '@designestate/dees-element';
import './internal/uplinternal-miniheading';
declare global {
interface HTMLElementTagNameMap {
'upl-statuspage-statusdetails': UplStatuspageStatusdetails;
}
}
@customElement('upl-statuspage-statusdetails')
export class UplStatuspageStatusdetails extends DeesElement {
public static demo = () => html` <upl-statuspage-statusdetails></upl-statuspage-statusdetails> `;
constructor() {
super();
}
public static styles = [
plugins.domtools.elementBasic.staticStyles,
css`
:host {
position: relative;
padding: 0px 0px 15px 0px;
display: block;
background: #222222;
font-family: Roboto Mono;
color: #fff;
}
.mainbox {
margin: auto;
max-width: 900px;
text-align: right;
background: #404040;
line-height: 50px;
border-radius: 3px;
}
.mainbox .barContainer {
position: relative;
display: flex;
padding: 6px;
overflow: hidden;
}
.mainbox .barContainer .bar {
margin: 4px;
width: 11px;
border-radius: 3px;
height: 40px;
background: #2deb51;
}
.timeIndicator {
position: absolute;
width: 11px;
height: 11px;
background: #FF9800;
top: 56px;
left: 400px;
transform: rotate(45deg);
}
`,
];
public render(): TemplateResult {
return html`
<style></style>
<uplinternal-miniheading>Yesterday & Today</uplinternal-miniheading>
<div class="mainbox">
<div class="barContainer">
${(() => {
let counter = 0;
const returnArray: TemplateResult[] = [];
while (counter < 48) {
counter++;
returnArray.push(html` <div class="bar"></div> `);
}
return returnArray;
})()}
<div class="timeIndicator"></div>
</div>
</div>
`;
}
}

View File

@ -0,0 +1,130 @@
import {
DeesElement,
property,
html,
customElement,
TemplateResult,
css,
cssManager
} from '@designestate/dees-element';
import * as domtools from '@designestate/dees-domtools';
import './internal/uplinternal-miniheading';
declare global {
interface HTMLElementTagNameMap {
'upl-statuspage-statusmonth': UplStatuspageStatusmonth;
}
}
@customElement('upl-statuspage-statusmonth')
export class UplStatuspageStatusmonth extends DeesElement {
public static demo = () => html` <upl-statuspage-statusmonth></upl-statuspage-statusmonth> `;
constructor() {
super();
}
public static styles = [
domtools.elementBasic.staticStyles,
css`
:host {
position: relative;
padding: 0px 0px 15px 0px;
display: block;
background: #222222;
font-family: Roboto Mono;
color: #fff;
}
.mainbox {
margin: auto;
max-width: 900px;
display: grid;
grid-template-columns: repeat(5, calc(100% / 5 - 80px / 5));
grid-column-gap: 20px;
}
.statusMonth {
background: #404040;
min-height: 20px;
display: grid;
padding: 10px;
grid-template-columns: repeat(6, auto);
grid-gap: 9px;
border-radius: 3px;
}
.statusMonth .statusDay {
width: 16px;
height: 16px;
background: #2deb51;
border-radius: 3px;
}
`
]
public render(): TemplateResult {
return html`
<style></style>
<uplinternal-miniheading>Last 150 days</uplinternal-miniheading>
<div class="mainbox">
<div class="statusMonth">
${(() => {
let counter = 0;
const returnArray: TemplateResult[] = [];
while (counter < 30) {
counter++;
returnArray.push(html` <div class="statusDay"></div> `);
}
return returnArray;
})()}
</div>
<div class="statusMonth">
${(() => {
let counter = 0;
const returnArray: TemplateResult[] = [];
while (counter < 30) {
counter++;
returnArray.push(html` <div class="statusDay"></div> `);
}
return returnArray;
})()}
</div>
<div class="statusMonth">
${(() => {
let counter = 0;
const returnArray: TemplateResult[] = [];
while (counter < 30) {
counter++;
returnArray.push(html` <div class="statusDay"></div> `);
}
return returnArray;
})()}
</div>
<div class="statusMonth">
${(() => {
let counter = 0;
const returnArray: TemplateResult[] = [];
while (counter < 30) {
counter++;
returnArray.push(html` <div class="statusDay"></div> `);
}
return returnArray;
})()}
</div>
<div class="statusMonth">
${(() => {
let counter = 0;
const returnArray: TemplateResult[] = [];
while (counter < 30) {
counter++;
returnArray.push(html` <div class="statusDay"></div> `);
}
return returnArray;
})()}
</div>
</div>
`;
}
}

View File

@ -1,8 +1 @@
export * from './elements/index'; export * from './elements/index';
import * as themelogic from './themelogic';
export {
themelogic
};

7
ts_web/plugins.ts Normal file
View File

@ -0,0 +1,7 @@
import * as domtools from '@designestate/dees-domtools';
import * as uplInterfaces from '@uptimelink/interfaces';
export {
domtools,
uplInterfaces
}

View File

@ -1,5 +0,0 @@
import * as leleCv from './lelecv';
export {
leleCv
}

View File

@ -1,3 +0,0 @@
export const backgroundAccent = '#303f9f';
export const pageWidth = '1200px';