28 Commits

Author SHA1 Message Date
f51a5cef57 1.0.70 2023-01-05 13:37:29 +01:00
d69a7f530b fix(core): update 2023-01-05 13:37:28 +01:00
484741e052 1.0.69 2022-03-24 18:38:09 +01:00
45ea020ec8 fix(core): update 2022-03-24 18:38:08 +01:00
efdde110a0 1.0.68 2022-03-24 16:10:03 +01:00
134dd0414f fix(core): update 2022-03-24 16:10:03 +01:00
53e3ba4672 1.0.67 2022-03-24 16:07:15 +01:00
609e176aab fix(core): update 2022-03-24 16:07:15 +01:00
617a3f307c 1.0.66 2021-09-27 14:53:41 +02:00
a577418132 fix(core): update 2021-09-27 14:53:41 +02:00
c969da7362 1.0.65 2021-09-27 13:11:35 +02:00
fd6427da1e fix(core): update 2021-09-27 13:11:34 +02:00
ad178bfec3 1.0.64 2021-09-27 02:49:49 +02:00
22db7a50de fix(core): update 2021-09-27 02:49:49 +02:00
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
27 changed files with 3497 additions and 10773 deletions

View File

@ -12,28 +12,23 @@ stages:
- release
- metadata
before_script:
- pnpm install -g pnpm
- pnpm install -g @shipzone/npmci
- npmci npm prepare
# ====================
# security stage
# ====================
# ====================
# security stage
# ====================
mirror:
stage: security
script:
- npmci git mirror
only:
- tags
tags:
- lossless
- docker
- notpriv
auditProductionDependencies:
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
stage: security
script:
- npmci npm prepare
- npmci command npm install --production --ignore-scripts
- npmci command npm config set registry https://registry.npmjs.org
- npmci command npm audit --audit-level=high --only=prod --production
- npmci command npm config set registry https://registry.npmjs.org
- npmci command pnpm audit --audit-level=high --prod
tags:
- lossless
- docker
@ -42,10 +37,8 @@ auditDevDependencies:
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
stage: security
script:
- npmci npm prepare
- npmci command npm install --ignore-scripts
- npmci command npm config set registry https://registry.npmjs.org
- npmci command npm audit --audit-level=high --only=dev
- npmci command pnpm audit --audit-level=high --dev
tags:
- lossless
- docker
@ -58,7 +51,6 @@ auditDevDependencies:
testStable:
stage: test
script:
- npmci npm prepare
- npmci node install stable
- npmci npm install
- npmci npm test
@ -71,7 +63,6 @@ testStable:
testBuild:
stage: test
script:
- npmci npm prepare
- npmci node install stable
- npmci npm install
- npmci command npm run build
@ -102,10 +93,9 @@ codequality:
only:
- tags
script:
- npmci command npm install -g tslint typescript
- npmci command npm install -g typescript
- npmci npm prepare
- npmci npm install
- npmci command "tslint -c tslint.json ./ts/**/*.ts"
tags:
- lossless
- docker
@ -127,7 +117,6 @@ pages:
script:
- npmci node install lts
- npmci command npm install -g @gitzone/tsdoc
- npmci npm prepare
- npmci npm install
- npmci command tsdoc
tags:

24
.vscode/launch.json vendored
View File

@ -2,28 +2,10 @@
"version": "0.2.0",
"configurations": [
{
"name": "current file",
"type": "node",
"command": "npm test",
"name": "Run npm test",
"request": "launch",
"args": [
"${relativeFile}"
],
"runtimeArgs": ["-r", "@gitzone/tsrun"],
"cwd": "${workspaceRoot}",
"protocol": "inspector",
"internalConsoleOptions": "openOnSessionStart"
},
{
"name": "test.ts",
"type": "node",
"request": "launch",
"args": [
"test/test.ts"
],
"runtimeArgs": ["-r", "@gitzone/tsrun"],
"cwd": "${workspaceRoot}",
"protocol": "inspector",
"internalConsoleOptions": "openOnSessionStart"
"type": "node-terminal"
}
]
}

View File

@ -1,5 +1,5 @@
<!--gitzone element-->
<!-- made by Lossless GmbH -->
<!-- made by Task Venture Capital GmbH -->
<!-- checkout https://maintainedby.lossless.com for awesome OpenSource projects -->
<html lang="en">
<head>
@ -10,6 +10,17 @@
/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="preconnect" href="https://rsms.me/">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://rsms.me/inter/inter.css">
<link
crossorigin="anonymous"
href="https://fonts.googleapis.com/icon?family=Material+Icons"
rel="stylesheet"
/>
<link href="https://fonts.googleapis.com/css2?family=Courier+Prime:ital,wght@0,400;0,700;1,400;1,700&display=swap" rel="stylesheet">
<style>
body {
margin: 0px;
@ -17,7 +28,7 @@
}
</style>
<script src="./index.ts"></script>
<script type="module" src="/bundle.js"></script>
</head>
<body>
</body>

View File

@ -3,8 +3,8 @@ import * as deesWccTools from '@designestate/dees-wcctools';
import * as deesDomTools from '@designestate/dees-domtools';
// elements and pages
import * as elements from '../ts_web/elements';
import * as pages from '../ts_web/pages';
import * as elements from '../ts_web/elements/index.js';
import * as pages from '../ts_web/pages/index.js';
deesWccTools.setupWccTools(elements as any, pages);
deesDomTools.elementBasic.setup();

View File

@ -5,7 +5,7 @@
"githost": "gitlab.com",
"gitscope": "uptimelink/private",
"gitrepo": "catalog",
"shortDescription": "a catalog with webcomponents for uptimelink dashboard",
"description": "a catalog with webcomponents for uptimelink dashboard",
"npmPackagename": "@uptimelink_private/catalog",
"license": "UNLICENSED",
"projectDomain": "uptime.link"
@ -13,6 +13,7 @@
},
"npmci": {
"npmGlobalTools": [],
"npmAccessLevel": "private"
"npmAccessLevel": "private",
"npmRegistryUrl": "verdaccio.lossless.one"
}
}

10471
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,33 +1,34 @@
{
"name": "@uptimelink_private/catalog",
"version": "1.0.56",
"version": "1.0.70",
"private": false,
"description": "a catalog with webcomponents for uptimelink dashboard",
"main": "dist_ts_web/index.js",
"typings": "dist_ts_web/index.d.ts",
"type": "module",
"scripts": {
"test": "npm run build",
"build": "tsbuild element && tsbundle element --production",
"watch": "tswatch element"
"build": "tsbuild element --allowimplicitany --skiplibcheck && tsbundle element --production",
"watch": "tswatch element",
"buildDocs": "tsdoc"
},
"author": "Lossless GmbH",
"license": "UNLICENSED",
"dependencies": {
"@designestate/dees-domtools": "^1.0.41",
"@designestate/dees-wcctools": "^1.0.37",
"@gitzone/tsrun": "^1.2.12",
"@losslessone_private/loint-pubapi": "^1.0.9",
"@pushrocks/smartexpress": "^3.0.76",
"lit-element": "^2.3.1",
"typescript": "^3.9.7"
"@designestate/dees-domtools": "^2.0.1",
"@designestate/dees-element": "^2.0.4",
"@designestate/dees-wcctools": "^1.0.73",
"@losslessone_private/loint-pubapi": "^1.0.10",
"@uptimelink/interfaces": "^1.0.10"
},
"devDependencies": {
"@gitzone/tsbuild": "^2.1.24",
"@gitzone/tsbundle": "^1.0.72",
"@gitzone/tswatch": "^1.0.50",
"@pushrocks/projectinfo": "^4.0.5",
"tslint": "^6.1.3",
"tslint-config-prettier": "^1.17.0"
"@gitzone/tsbuild": "^2.1.61",
"@gitzone/tsbundle": "^2.0.7",
"@gitzone/tsrun": "^1.2.39",
"@gitzone/tswatch": "^2.0.5",
"@pushrocks/projectinfo": "^5.0.1",
"@pushrocks/smartenv": "^5.0.0",
"@types/node": "^18.11.18"
},
"files": [
"ts/**/*",

2776
pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -21,14 +21,12 @@ Code Style | [![Code Style](https://badgen.net/badge/style/prettier/purple)](htt
PackagePhobia (total standalone install weight) | [![PackagePhobia](https://badgen.net/packagephobia/install/@uptimelink_private/catalog)](https://lossless.cloud)
PackagePhobia (package size on registry) | [![PackagePhobia](https://badgen.net/packagephobia/publish/@uptimelink_private/catalog)](https://lossless.cloud)
BundlePhobia (total size when bundled) | [![BundlePhobia](https://badgen.net/bundlephobia/minzip/@uptimelink_private/catalog)](https://lossless.cloud)
Platform support | [![Supports Windows 10](https://badgen.net/badge/supports%20Windows%2010/yes/green?icon=windows)](https://lossless.cloud) [![Supports Mac OS X](https://badgen.net/badge/supports%20Mac%20OS%20X/yes/green?icon=apple)](https://lossless.cloud)
## Usage
Use TypeScript for best in class intellisense
For further information read the linked docs at the top of this readme.
> UNLICENSED licensed | **&copy;** [Lossless GmbH](https://lossless.gmbh)
## Legal
> UNLICENSED licensed | **&copy;** [Task Venture Capital GmbH](https://task.vc)
| By using this npm module you agree to our [privacy policy](https://lossless.gmbH/privacy)
[![repo-footer](https://lossless.gitlab.io/publicrelations/repofooter.svg)](https://maintainedby.lossless.com)

View File

@ -0,0 +1,8 @@
/**
* autocreated commitinfo by @pushrocks/commitinfo
*/
export const commitinfo = {
name: '@uptimelink_private/catalog',
version: '1.0.70',
description: 'a catalog with webcomponents for uptimelink dashboard'
}

View File

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

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: Inter;
}
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,63 @@
import {
DeesElement,
property,
html,
customElement,
TemplateResult,
cssManager,
css,
} from '@designestate/dees-element';
import * as domtools from '@designestate/dees-domtools';
import './internal/uplinternal-miniheading.js';
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 static styles = [
cssManager.defaultStyles,
css`
:host {
padding: 0px 0px 15px 0px;
display: block;
background: ${cssManager.bdTheme('#eeeeeb', '#222222')};
font-family: Inter;
color: #fff;
}
.mainbox {
margin: auto;
max-width: 900px;
text-align: center;
height: 50px;
border-radius: 3px;
background: ${cssManager.bdTheme('#ffffff', '#333333')};;
}
`,
]
public render(): TemplateResult {
return html`
<style>
</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: Inter;
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: Inter;
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: 600;
font-size: 35px;
}
h2 {
margin: 0px;
margin-top: 10px;
text-align: center;
font-weight: 600;
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.js';
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: Inter;
color: ${cssManager.bdTheme('#333333', '#ffffff')};
}
.mainbox {
max-width: 900px;
margin: auto;
}
.noIncidentBox {
background: ${cssManager.bdTheme('#ffffff', '#333333')};;
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,51 @@
import { DeesElement, property, html, customElement, TemplateResult, cssManager, css } 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 static styles = [
cssManager.defaultStyles,
css`
:host {
padding: 20px 0px 15px 0px;
display: block;
background: ${cssManager.bdTheme('#eeeeeb', '#222222')};;
font-family: Inter;
color: #fff;
}
.mainbox {
margin: auto;
max-width: 900px;
text-align: center;
background: #19572E;
line-height: 50px;
border-radius: 3px;
}
`,
]
public render(): TemplateResult {
return html`
<style>
</style>
<div class="mainbox">
Everything is working normally!
</div>
`;
}
}

View File

@ -0,0 +1,95 @@
import * as plugins from '../plugins.js';
import {
DeesElement,
property,
html,
customElement,
TemplateResult,
css,
cssManager,
} from '@designestate/dees-element';
import './internal/uplinternal-miniheading.js';
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: ${cssManager.bdTheme('#eeeeeb', '#222222')};;
font-family: Inter;
color: #fff;
}
.mainbox {
margin: auto;
max-width: 900px;
text-align: right;
background: ${cssManager.bdTheme('#ffffff', '#333333')};;
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.js';
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: ${cssManager.bdTheme('#eeeeeb', '#222222')};;
font-family: Inter;
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: ${cssManager.bdTheme('#ffffff', '#333333')};;
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';
import * as themelogic from './themelogic';
export {
themelogic
};
export * from './elements/index.js';

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';

View File

@ -1,16 +0,0 @@
{
"compilerOptions": {
"target": "es2017",
"module": "es2015",
"moduleResolution": "node",
"lib": ["es2017", "dom"],
"declaration": true,
"inlineSources": true,
"inlineSourceMap": true,
"noUnusedLocals": true,
"noFallthroughCasesInSwitch": true,
"outDir": "dist/",
"skipLibCheck": true,
"experimentalDecorators": true
}
}

8
tsconfig.json Normal file
View File

@ -0,0 +1,8 @@
{
"compilerOptions": {
"experimentalDecorators": true,
"target": "ES2022",
"module": "ES2022",
"moduleResolution": "nodenext"
}
}

View File

@ -1,17 +0,0 @@
{
"extends": ["tslint:latest", "tslint-config-prettier"],
"rules": {
"semicolon": [true, "always"],
"no-console": false,
"ordered-imports": false,
"object-literal-sort-keys": false,
"member-ordering": {
"options":{
"order": [
"static-method"
]
}
}
},
"defaultSeverity": "warning"
}