Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
ea0858fd27 | |||
03c00919df | |||
6917145b58 | |||
2e2ad98ed8 | |||
68375a5e58 | |||
5876225b39 | |||
342ac96429 | |||
85a472fe1c |
@ -12,6 +12,9 @@ stages:
|
||||
- release
|
||||
- metadata
|
||||
|
||||
before_script:
|
||||
- npm install -g @shipzone/npmci
|
||||
|
||||
# ====================
|
||||
# security stage
|
||||
# ====================
|
||||
@ -36,6 +39,7 @@ auditProductionDependencies:
|
||||
- npmci command npm audit --audit-level=high --only=prod --production
|
||||
tags:
|
||||
- docker
|
||||
allow_failure: true
|
||||
|
||||
auditDevDependencies:
|
||||
image: registry.gitlab.com/hosttoday/ht-docker-node:npmci
|
||||
@ -96,10 +100,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
|
||||
|
24
.vscode/launch.json
vendored
24
.vscode/launch.json
vendored
@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -17,7 +17,7 @@
|
||||
}
|
||||
</style>
|
||||
|
||||
<script src="./index.ts"></script>
|
||||
<script type="module" src="/bundle.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
</body>
|
||||
|
@ -1,10 +1,10 @@
|
||||
// dees tools
|
||||
import * as deesWccTools from '../ts_web';
|
||||
import * as deesWccTools from '../ts_web/index.js';
|
||||
import * as deesDomTools from '@designestate/dees-domtools';
|
||||
|
||||
// elements and pages
|
||||
import * as elements from '../test/elements';
|
||||
import * as pages from '../test/pages';
|
||||
import * as elements from '../test/elements/index.js';
|
||||
import * as pages from '../test/pages/index.js';
|
||||
|
||||
deesWccTools.setupWccTools(elements as any, pages);
|
||||
deesDomTools.elementBasic.setup();
|
||||
|
@ -5,7 +5,7 @@
|
||||
"githost": "gitlab.com",
|
||||
"gitscope": "designestate",
|
||||
"gitrepo": "dees-wcctools",
|
||||
"shortDescription": "wcc tools for creating element catalogues",
|
||||
"description": "wcc tools for creating element catalogues",
|
||||
"npmPackagename": "@designestate/dees-wcctools",
|
||||
"license": "MIT",
|
||||
"projectDomain": "design.estate"
|
||||
|
1774
package-lock.json
generated
1774
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
16
package.json
16
package.json
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@designestate/dees-wcctools",
|
||||
"version": "1.0.70",
|
||||
"version": "1.0.74",
|
||||
"private": false,
|
||||
"description": "wcc tools for creating element catalogues",
|
||||
"main": "dist_ts_web/index.js",
|
||||
@ -14,16 +14,16 @@
|
||||
"author": "Lossless GmbH",
|
||||
"license": "UNLICENSED",
|
||||
"dependencies": {
|
||||
"@designestate/dees-domtools": "^2.0.1",
|
||||
"@designestate/dees-element": "^2.0.4",
|
||||
"@gitzone/tsrun": "^1.2.31",
|
||||
"@designestate/dees-domtools": "^2.0.6",
|
||||
"@designestate/dees-element": "^2.0.6",
|
||||
"@gitzone/tsrun": "^1.2.32",
|
||||
"@pushrocks/smartdelay": "^2.0.13",
|
||||
"@pushrocks/smartexpress": "^4.0.0"
|
||||
"@pushrocks/smartexpress": "^4.0.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@gitzone/tsbuild": "^2.1.60",
|
||||
"@gitzone/tsbundle": "^1.0.101",
|
||||
"@gitzone/tswatch": "^1.0.73",
|
||||
"@gitzone/tsbuild": "^2.1.61",
|
||||
"@gitzone/tsbundle": "^1.0.102",
|
||||
"@gitzone/tswatch": "^1.0.76",
|
||||
"@pushrocks/projectinfo": "^4.0.5",
|
||||
"tslint": "^6.1.3",
|
||||
"tslint-config-prettier": "^1.17.0"
|
||||
|
@ -86,7 +86,7 @@ export class TestDemoelement extends DeesElement {
|
||||
border-radius: 50px;
|
||||
}
|
||||
`)}
|
||||
|
||||
|
||||
pre b {
|
||||
color: green;
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { DeesElement, property, html, customElement, TemplateResult, queryAsync } from '@designestate/dees-element';
|
||||
import { DeesElement, property, html, customElement, TemplateResult, queryAsync, render, domtools } from '@designestate/dees-element';
|
||||
|
||||
import * as plugins from '../wcctools.plugins.js';
|
||||
|
||||
@ -98,31 +98,6 @@ export class WccDashboard extends DeesElement {
|
||||
}}
|
||||
></wcc-properties>
|
||||
<wcc-frame id="wccFrame" viewport=${this.selectedViewport}>
|
||||
${(() => {
|
||||
if (this.selectedType === 'page' && this.selectedItem) {
|
||||
if (typeof this.selectedItem === 'function') {
|
||||
return this.selectedItem();
|
||||
} else {
|
||||
console.error('The selected item looks strange:');
|
||||
console.log(this.selectedItem);
|
||||
}
|
||||
} else if (this.selectedType === 'element' && this.selectedItem) {
|
||||
// console.log(this.selectedItem);
|
||||
const anonItem: any = this.selectedItem;
|
||||
if (!anonItem.demo) {
|
||||
this.setWarning(`component ${anonItem.name} does not expose a demo property.`);
|
||||
return;
|
||||
}
|
||||
if (!(typeof anonItem.demo === 'function')) {
|
||||
this.setWarning(
|
||||
`component ${anonItem.name} has demo property, but it is not of type function`
|
||||
);
|
||||
return;
|
||||
}
|
||||
this.setWarning(null);
|
||||
return html`${anonItem.demo()}`;
|
||||
}
|
||||
})()}
|
||||
</wcc-frame>
|
||||
`;
|
||||
}
|
||||
@ -159,24 +134,39 @@ export class WccDashboard extends DeesElement {
|
||||
);
|
||||
}
|
||||
|
||||
private updating = false;
|
||||
public async updated() {
|
||||
if (this.updating) {
|
||||
return;
|
||||
}
|
||||
this.domtools = await plugins.deesDomtools.DomTools.setupDomTools();
|
||||
await this.domtools.router._handleRouteState();
|
||||
this.updating = true;
|
||||
const storeElement = this.selectedItem;
|
||||
setTimeout(async () => {
|
||||
this.selectedItem = null;
|
||||
setTimeout(async () => {
|
||||
this.selectedItem = storeElement;
|
||||
setTimeout(() => {
|
||||
this.updating = false;
|
||||
}, 0);
|
||||
});
|
||||
}, 0);
|
||||
const wccFrame: WccFrame = this.shadowRoot.querySelector('wcc-frame');
|
||||
|
||||
if (this.selectedType === 'page' && this.selectedItem) {
|
||||
if (typeof this.selectedItem === 'function') {
|
||||
console.log('slotting page.');
|
||||
const viewport = await wccFrame.getViewportElement();
|
||||
render(this.selectedItem(), viewport);
|
||||
console.log('rendered page.');
|
||||
} else {
|
||||
console.error('The selected item looks strange:');
|
||||
console.log(this.selectedItem);
|
||||
}
|
||||
} else if (this.selectedType === 'element' && this.selectedItem) {
|
||||
console.log('slotting element.');
|
||||
const anonItem: any = this.selectedItem;
|
||||
if (!anonItem.demo) {
|
||||
this.setWarning(`component ${anonItem.name} does not expose a demo property.`);
|
||||
return;
|
||||
}
|
||||
if (!(typeof anonItem.demo === 'function')) {
|
||||
this.setWarning(
|
||||
`component ${anonItem.name} has demo property, but it is not of type function`
|
||||
);
|
||||
return;
|
||||
}
|
||||
this.setWarning(null);
|
||||
const viewport = await wccFrame.getViewportElement();
|
||||
render(anonItem.demo(), viewport);;
|
||||
}
|
||||
}
|
||||
|
||||
public buildUrl() {
|
||||
|
@ -1,25 +1,45 @@
|
||||
import { DeesElement, property, html, customElement, TemplateResult } from '@designestate/dees-element';
|
||||
import { DeesElement, property, html, customElement, TemplateResult, css, cssManager } from '@designestate/dees-element';
|
||||
|
||||
import * as domtools from '@designestate/dees-domtools';
|
||||
|
||||
declare global {
|
||||
interface HTMLElementTagNameMap {
|
||||
'wcc-frame': WccFrame;
|
||||
}
|
||||
}
|
||||
|
||||
@customElement('wcc-frame')
|
||||
export class WccFrame extends DeesElement {
|
||||
@property()
|
||||
public viewport: string;
|
||||
|
||||
public static styles = [
|
||||
css`
|
||||
:host {
|
||||
border: 10px solid #ffaeaf;
|
||||
position: absolute;
|
||||
background: ${cssManager.bdTheme('#333', '#000')};
|
||||
left: 200px;
|
||||
right: 0px;
|
||||
top: 0px;
|
||||
bottom: 100px;
|
||||
overflow-y: auto;
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
.viewport {
|
||||
container-type: inline-size;
|
||||
container-name: wccToolsViewport;
|
||||
position: relative;
|
||||
min-height: 100%;
|
||||
}
|
||||
`,
|
||||
]
|
||||
|
||||
public render(): TemplateResult {
|
||||
return html`
|
||||
<style>
|
||||
:host {
|
||||
border: 10px solid #ffaeaf;
|
||||
position: absolute;
|
||||
background: ${this.goBright ? '#333': '#000'};
|
||||
left: 200px;
|
||||
right: 0px;
|
||||
top: 0px;
|
||||
bottom: 100px;
|
||||
overflow-y: auto;
|
||||
overflow-x: auto;
|
||||
${(() => {
|
||||
switch (this.viewport) {
|
||||
case 'desktop':
|
||||
@ -45,19 +65,17 @@ export class WccFrame extends DeesElement {
|
||||
}px;
|
||||
`;
|
||||
}
|
||||
})()}
|
||||
})()}
|
||||
}
|
||||
|
||||
|
||||
.viewport {
|
||||
container-type: inline-size;
|
||||
container-name: wccToolsViewport;
|
||||
position: relative;
|
||||
${this.viewport !== 'desktop'
|
||||
? html` border-right: 1px dotted #444; border-left: 1px dotted #444; `
|
||||
: html``}
|
||||
min-height: 100%;
|
||||
? html` border-right: 1px dotted #444; border-left: 1px dotted #444; `
|
||||
: html``
|
||||
}
|
||||
background:
|
||||
${this.goBright ? `
|
||||
${
|
||||
this.goBright ? `
|
||||
radial-gradient(#CCCCCC 3px, transparent 4px),
|
||||
radial-gradient(#CCCCCC 3px, transparent 4px),
|
||||
linear-gradient(#eeeeee 4px, transparent 0),
|
||||
@ -75,11 +93,12 @@ export class WccFrame extends DeesElement {
|
||||
#222222;
|
||||
background-size: 109px 109px, 109px 109px,100% 6px, 109px 109px, 109px 109px;
|
||||
background-position: 54px 55px, 0px 0px, 0px 0px, 0px 0px, 0px 0px;
|
||||
`}
|
||||
`
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<div class="viewport">
|
||||
<slot></slot>
|
||||
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
@ -89,4 +108,8 @@ export class WccFrame extends DeesElement {
|
||||
const slottedContent = this.children;
|
||||
console.log(slottedContent);
|
||||
}
|
||||
|
||||
public async getViewportElement(): Promise<HTMLElement> {
|
||||
return this.shadowRoot.querySelector('.viewport') as HTMLElement;
|
||||
}
|
||||
}
|
||||
|
@ -243,7 +243,7 @@ export class WccProperties extends DeesElement {
|
||||
});
|
||||
return enumValues;
|
||||
};
|
||||
const determinePropertyType = (propertyArg: any): TPropertyType => {
|
||||
const determinePropertyType = async (propertyArg: any): Promise<TPropertyType> => {
|
||||
const typeName: any | undefined = propertyArg.type.name;
|
||||
if (typeName) {
|
||||
return typeName;
|
||||
@ -265,7 +265,7 @@ export class WccProperties extends DeesElement {
|
||||
console.log(anonItem.elementProperties);
|
||||
const wccFrame = await this.dashboardRef.wccFrame;
|
||||
let firstFoundInstantiatedElement: HTMLElement;
|
||||
for (const element of Array.from(wccFrame.children)) {
|
||||
for (const element of Array.from((await wccFrame.getViewportElement()).children)) {
|
||||
if (element instanceof (this.selectedItem as any)) {
|
||||
firstFoundInstantiatedElement = element as HTMLElement;
|
||||
break;
|
||||
@ -287,7 +287,7 @@ export class WccProperties extends DeesElement {
|
||||
continue;
|
||||
}
|
||||
const property = classProperties.get(key);
|
||||
const propertyTypeString = determinePropertyType(property);
|
||||
const propertyTypeString = await determinePropertyType(property);
|
||||
propertyArray.push(
|
||||
html`
|
||||
<div class="property">
|
||||
|
@ -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
|
||||
}
|
||||
}
|
@ -1,7 +1,9 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"experimentalDecorators": true,
|
||||
"target": "ES2017",
|
||||
"moduleResolution": "Node"
|
||||
"useDefineForClassFields": false,
|
||||
"target": "ES2022",
|
||||
"module": "ES2022",
|
||||
"moduleResolution": "nodenext"
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user