Compare commits
28 Commits
Author | SHA1 | Date | |
---|---|---|---|
ebc2c82b7f | |||
15481c5e24 | |||
357320d40a | |||
08d92d9d3e | |||
0ce9a96b90 | |||
959a4cae89 | |||
c8d6986aff | |||
53ff02c490 | |||
ba83aad026 | |||
2531126935 | |||
00a2de6560 | |||
b357bc67fa | |||
0665f85d49 | |||
c222a66ead | |||
8d628d3285 | |||
681de01143 | |||
070d894ea6 | |||
6a6d782288 | |||
ec1660cab5 | |||
5f182ba435 | |||
f73df83768 | |||
0b09f3f61c | |||
d2e0a55a13 | |||
fb1fc7fa6b | |||
374a3c58c4 | |||
b36846737b | |||
b16c6948b2 | |||
2a51d7a7cd |
0
assets/elements/elementone.ts
Normal file
0
assets/elements/elementone.ts
Normal file
9764
package-lock.json
generated
9764
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
21
package.json
21
package.json
@ -1,28 +1,31 @@
|
|||||||
{
|
{
|
||||||
"name": "@designestate/dees-wcctools",
|
"name": "@designestate/dees-wcctools",
|
||||||
"version": "1.0.23",
|
"version": "1.0.37",
|
||||||
"private": false,
|
"private": false,
|
||||||
"description": "wcc tools for creating element catalogues",
|
"description": "wcc tools for creating element catalogues",
|
||||||
"main": "dist_ts_web/index.js",
|
"main": "dist_ts_web/index.js",
|
||||||
"typings": "dist_ts_web/index.d.ts",
|
"typings": "dist_ts_web/index.d.ts",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "npm run build",
|
"test": "(npm run build)",
|
||||||
"build": "tsbuild custom ts_web --web",
|
"build": "(tsbuild custom ts_web --web && tsbundle element)",
|
||||||
"watch": "tswatch element"
|
"watch": "tswatch element"
|
||||||
},
|
},
|
||||||
"author": "Lossless GmbH",
|
"author": "Lossless GmbH",
|
||||||
"license": "UNLICENSED",
|
"license": "UNLICENSED",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@gitzone/tsrun": "^1.1.17",
|
"@designestate/dees-domtools": "^1.0.38",
|
||||||
"@pushrocks/smartexpress": "^3.0.10",
|
"@gitzone/tsrun": "^1.2.12",
|
||||||
|
"@pushrocks/smartdelay": "^2.0.10",
|
||||||
|
"@pushrocks/smartexpress": "^3.0.73",
|
||||||
"lit-element": "^2.0.0-rc.5",
|
"lit-element": "^2.0.0-rc.5",
|
||||||
"lit-html": "^1.0.0-rc.2",
|
"lit-html": "^1.0.0-rc.2",
|
||||||
"typescript": "^3.9.3"
|
"typescript": "^3.9.6"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@gitzone/tsbuild": "^2.1.24",
|
"@gitzone/tsbuild": "^2.1.24",
|
||||||
"@gitzone/tswatch": "^1.0.46",
|
"@gitzone/tsbundle": "^1.0.72",
|
||||||
"@pushrocks/projectinfo": "^4.0.2",
|
"@gitzone/tswatch": "^1.0.50",
|
||||||
|
"@pushrocks/projectinfo": "^4.0.5",
|
||||||
"tslint": "^6.1.2",
|
"tslint": "^6.1.2",
|
||||||
"tslint-config-prettier": "^1.17.0"
|
"tslint-config-prettier": "^1.17.0"
|
||||||
},
|
},
|
||||||
@ -39,6 +42,6 @@
|
|||||||
"readme.md"
|
"readme.md"
|
||||||
],
|
],
|
||||||
"browserslist": [
|
"browserslist": [
|
||||||
"last 2 Chrome versions"
|
"last 1 Chrome versions"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
22
readme.md
22
readme.md
@ -8,13 +8,20 @@ wcc tools for creating element catalogues
|
|||||||
* [docs (typedoc)](https://designestate.gitlab.io/dees-wcctools/)
|
* [docs (typedoc)](https://designestate.gitlab.io/dees-wcctools/)
|
||||||
|
|
||||||
## Status for master
|
## Status for master
|
||||||
[](https://gitlab.com/designestate/dees-wcctools/commits/master)
|
|
||||||
[](https://gitlab.com/designestate/dees-wcctools/commits/master)
|
Status Category | Status Badge
|
||||||
[](https://www.npmjs.com/package/@designestate/dees-wcctools)
|
-- | --
|
||||||
[](https://snyk.io/test/npm/@designestate/dees-wcctools)
|
GitLab Pipelines | [](https://lossless.cloud)
|
||||||
[](https://nodejs.org/dist/latest-v10.x/docs/api/)
|
GitLab Pipline Test Coverage | [](https://lossless.cloud)
|
||||||
[](https://nodejs.org/dist/latest-v10.x/docs/api/)
|
npm | [](https://lossless.cloud)
|
||||||
[](https://prettier.io/)
|
Snyk | [](https://lossless.cloud)
|
||||||
|
TypeScript Support | [](https://lossless.cloud)
|
||||||
|
node Support | [](https://nodejs.org/dist/latest-v10.x/docs/api/)
|
||||||
|
Code Style | [](https://lossless.cloud)
|
||||||
|
PackagePhobia (total standalone install weight) | [](https://lossless.cloud)
|
||||||
|
PackagePhobia (package size on registry) | [](https://lossless.cloud)
|
||||||
|
BundlePhobia (total size when bundled) | [](https://lossless.cloud)
|
||||||
|
Platform support | [](https://lossless.cloud) [](https://lossless.cloud)
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
@ -22,7 +29,6 @@ wcc tools for creating element catalogues
|
|||||||
|
|
||||||
We are always happy for code contributions. If you are not the code contributing type that is ok. Still, maintaining Open Source repositories takes considerable time and thought. If you like the quality of what we do and our modules are useful to you we would appreciate a little monthly contribution: You can [contribute one time](https://lossless.link/contribute-onetime) or [contribute monthly](https://lossless.link/contribute). :)
|
We are always happy for code contributions. If you are not the code contributing type that is ok. Still, maintaining Open Source repositories takes considerable time and thought. If you like the quality of what we do and our modules are useful to you we would appreciate a little monthly contribution: You can [contribute one time](https://lossless.link/contribute-onetime) or [contribute monthly](https://lossless.link/contribute). :)
|
||||||
|
|
||||||
|
|
||||||
## Contribution
|
## Contribution
|
||||||
|
|
||||||
We are always happy for code contributions. If you are not the code contributing type that is ok. Still, maintaining Open Source repositories takes considerable time and thought. If you like the quality of what we do and our modules are useful to you we would appreciate a little monthly contribution: You can [contribute one time](https://lossless.link/contribute-onetime) or [contribute monthly](https://lossless.link/contribute). :)
|
We are always happy for code contributions. If you are not the code contributing type that is ok. Still, maintaining Open Source repositories takes considerable time and thought. If you like the quality of what we do and our modules are useful to you we would appreciate a little monthly contribution: You can [contribute one time](https://lossless.link/contribute-onetime) or [contribute monthly](https://lossless.link/contribute). :)
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
import { LitElement, property, html, customElement, TemplateResult } from 'lit-element';
|
import { LitElement, property, html, customElement, TemplateResult } from 'lit-element';
|
||||||
|
|
||||||
|
import * as plugins from '../wcctools.plugins';
|
||||||
|
|
||||||
import { WccDefaultElement } from './wcc-defaultelement';
|
import { WccDefaultElement } from './wcc-defaultelement';
|
||||||
|
|
||||||
// wcc tools
|
// wcc tools
|
||||||
@ -9,14 +11,13 @@ import './wcc-properties';
|
|||||||
|
|
||||||
@customElement('wcc-dashboard')
|
@customElement('wcc-dashboard')
|
||||||
export class WccDashboard extends LitElement {
|
export class WccDashboard extends LitElement {
|
||||||
@property()
|
public domtools: plugins.deesDomtools.DomTools;
|
||||||
public selectedItem: TemplateResult | LitElement = WccDefaultElement as any;
|
|
||||||
|
|
||||||
@property()
|
@property()
|
||||||
public selectedInstance;
|
public selectedItem: TemplateResult | LitElement;
|
||||||
|
|
||||||
@property()
|
@property()
|
||||||
public selectedViewport: string = 'desktop';
|
public selectedViewport: plugins.deesDomtools.breakpoints.TViewport = 'desktop';
|
||||||
|
|
||||||
@property()
|
@property()
|
||||||
public pages: { [key: string]: TemplateResult } = {};
|
public pages: { [key: string]: TemplateResult } = {};
|
||||||
@ -52,10 +53,10 @@ export class WccDashboard extends LitElement {
|
|||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<wcc-sidebar .pages=${this.pages} .elements=${this.elements} @selectedItem=${eventArg => {
|
<wcc-sidebar .dashboardRef=${this} .selectedItem=${this.selectedItem} @selectedItem=${eventArg => {
|
||||||
this.selectedItem = eventArg.detail;
|
this.selectedItem = eventArg.detail;
|
||||||
}}></wcc-sidebar>
|
}}></wcc-sidebar>
|
||||||
<wcc-properties .warning="${this.warning}" .selectedItem=${this.selectedItem} .selectedInstance=${this.selectedInstance} @selectedViewport=${eventArg => {this.selectedViewport = eventArg.detail; this.updateSlot();}}></wcc-properties>
|
<wcc-properties .warning="${this.warning}" .selectedItem=${this.selectedItem} @selectedViewport=${eventArg => {this.selectedViewport = eventArg.detail; this.updateSlot();}}></wcc-properties>
|
||||||
<wcc-frame id="wccFrame" viewport=${this.selectedViewport}>
|
<wcc-frame id="wccFrame" viewport=${this.selectedViewport}>
|
||||||
${(() => {
|
${(() => {
|
||||||
if (this.selectedItem instanceof TemplateResult) {
|
if (this.selectedItem instanceof TemplateResult) {
|
||||||
@ -74,21 +75,29 @@ export class WccDashboard extends LitElement {
|
|||||||
this.setWarning(null);
|
this.setWarning(null);
|
||||||
return html`${anonItem.demo()}`;
|
return html`${anonItem.demo()}`;
|
||||||
} else {
|
} else {
|
||||||
this.selectedItem = WccDefaultElement as any;
|
this.updateSlot();
|
||||||
}
|
}
|
||||||
})()}
|
})()}
|
||||||
</wcc-frame>
|
</wcc-frame>
|
||||||
${this.selectedViewport}
|
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
public updateSlot() {
|
private currentlyUpdating: boolean = false;
|
||||||
console.log('updateSlot');
|
public async updateSlot() {
|
||||||
const oldSelectedItem = this.selectedItem;
|
if (this.currentlyUpdating) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.currentlyUpdating = true;
|
||||||
|
!this.selectedItem ? this.selectedItem = WccDefaultElement as any : null;
|
||||||
|
const localSelectedItem = this.selectedItem;
|
||||||
this.selectedItem = null;
|
this.selectedItem = null;
|
||||||
setTimeout(() => {
|
console.log('updateSlot');
|
||||||
this.selectedItem = oldSelectedItem;
|
this.domtools = await plugins.deesDomtools.DomTools.setupDomTools();
|
||||||
}, 0);
|
this.domtools.setVirtualViewport(this.selectedViewport);
|
||||||
|
// await super.performUpdate();
|
||||||
|
this.selectedItem = localSelectedItem;
|
||||||
|
await super.performUpdate();
|
||||||
|
this.currentlyUpdating = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public setWarning(warningTextArg: string) {
|
public setWarning(warningTextArg: string) {
|
||||||
@ -100,4 +109,16 @@ export class WccDashboard extends LitElement {
|
|||||||
}, 0);
|
}, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async firstUpdated() {
|
||||||
|
this.domtools = await plugins.deesDomtools.DomTools.setupDomTools();
|
||||||
|
this.domtools.router.on('/elements/:elementName', async routeInfo => {
|
||||||
|
this.selectedItem = this.elements[routeInfo.params.elementName];
|
||||||
|
});
|
||||||
|
|
||||||
|
this.domtools.router.on('/pages/:pageName', async routeInfo => {
|
||||||
|
this.selectedItem = this.pages[routeInfo.params.pageName];
|
||||||
|
});
|
||||||
|
this.domtools.router._handleRouteState();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,9 +5,6 @@ import { TemplateResult } from 'lit-html';
|
|||||||
export class WccDefaultElement extends LitElement {
|
export class WccDefaultElement extends LitElement {
|
||||||
public static demo = () => html`<wcc-defaultelement></wcc-defaultelement>`;
|
public static demo = () => html`<wcc-defaultelement></wcc-defaultelement>`;
|
||||||
|
|
||||||
@property()
|
|
||||||
public footerText = `Lossless GmbH - 2018`;
|
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
|
@ -1,11 +1,6 @@
|
|||||||
import { LitElement, property, html, customElement, TemplateResult } from 'lit-element';
|
import { LitElement, property, html, customElement, TemplateResult } from 'lit-element';
|
||||||
|
|
||||||
const breakpoints = {
|
import * as domtools from '@designestate/dees-domtools';
|
||||||
desktop: 1240,
|
|
||||||
tablet: 700,
|
|
||||||
phablet: 500,
|
|
||||||
phone: 340,
|
|
||||||
};
|
|
||||||
|
|
||||||
@customElement('wcc-frame')
|
@customElement('wcc-frame')
|
||||||
export class WccFrame extends LitElement {
|
export class WccFrame extends LitElement {
|
||||||
@ -33,19 +28,26 @@ export class WccFrame extends LitElement {
|
|||||||
`;
|
`;
|
||||||
case 'tablet':
|
case 'tablet':
|
||||||
return `
|
return `
|
||||||
padding: 0px ${(document.body.clientWidth - 200 - breakpoints.tablet) / 2}px;
|
padding: 0px ${
|
||||||
|
(document.body.clientWidth - 200 - domtools.breakpoints.tablet) / 2
|
||||||
|
}px;
|
||||||
`;
|
`;
|
||||||
case 'phablet':
|
case 'phablet':
|
||||||
return `
|
return `
|
||||||
padding: 0px ${(document.body.clientWidth - 200 - breakpoints.phablet) / 2}px;
|
padding: 0px ${
|
||||||
|
(document.body.clientWidth - 200 - domtools.breakpoints.phablet) / 2
|
||||||
|
}px;
|
||||||
`;
|
`;
|
||||||
case 'phone':
|
case 'phone':
|
||||||
return `
|
return `
|
||||||
padding: 0px ${(document.body.clientWidth - 200 - breakpoints.phone) / 2}px;
|
padding: 0px ${
|
||||||
|
(document.body.clientWidth - 200 - domtools.breakpoints.phone) / 2
|
||||||
|
}px;
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
})()}
|
})()}
|
||||||
}
|
}
|
||||||
|
|
||||||
.viewport {
|
.viewport {
|
||||||
position: relative;
|
position: relative;
|
||||||
${this.viewport !== 'desktop'
|
${this.viewport !== 'desktop'
|
||||||
|
@ -13,9 +13,6 @@ export class WccProperties extends LitElement {
|
|||||||
@property()
|
@property()
|
||||||
public selectedItem: TemplateResult | LitElement;
|
public selectedItem: TemplateResult | LitElement;
|
||||||
|
|
||||||
@property()
|
|
||||||
public selectedInstance;
|
|
||||||
|
|
||||||
@property()
|
@property()
|
||||||
public selectedViewport = 'native';
|
public selectedViewport = 'native';
|
||||||
|
|
||||||
@ -126,15 +123,7 @@ export class WccProperties extends LitElement {
|
|||||||
returnArray.push(
|
returnArray.push(
|
||||||
html`
|
html`
|
||||||
<div class="property">
|
<div class="property">
|
||||||
${key} / ${classProperties.get(key).type.name} /
|
${key} / ${classProperties.get(key).type.name}
|
||||||
<pre>
|
|
||||||
${(() => {
|
|
||||||
const result = this.selectedInstance
|
|
||||||
? JSON.stringify(this.selectedInstance[key], null, 2)
|
|
||||||
: null;
|
|
||||||
return result;
|
|
||||||
})()}</pre
|
|
||||||
>
|
|
||||||
</div>
|
</div>
|
||||||
`
|
`
|
||||||
);
|
);
|
||||||
|
@ -1,19 +1,18 @@
|
|||||||
|
import * as plugins from '../wcctools.plugins';
|
||||||
import { LitElement, property, html, customElement, TemplateResult } from 'lit-element';
|
import { LitElement, property, html, customElement, TemplateResult } from 'lit-element';
|
||||||
|
import { WccDashboard } from './wcc-dashboard';
|
||||||
|
|
||||||
@customElement('wcc-sidebar')
|
@customElement('wcc-sidebar')
|
||||||
export class WccSidebar extends LitElement {
|
export class WccSidebar extends LitElement {
|
||||||
@property({type: Array})
|
@property({type: Array})
|
||||||
public websites: string[] = [];
|
public websites: string[] = [];
|
||||||
|
|
||||||
@property()
|
|
||||||
public pages: { [key: string]: TemplateResult } = {};
|
|
||||||
|
|
||||||
@property()
|
|
||||||
public elements: { [key: string]: LitElement } = {};
|
|
||||||
|
|
||||||
@property({ attribute: false })
|
@property({ attribute: false })
|
||||||
public selectedItem: LitElement | TemplateResult;
|
public selectedItem: LitElement | TemplateResult;
|
||||||
|
|
||||||
|
@property()
|
||||||
|
public dashboardRef: WccDashboard;
|
||||||
|
|
||||||
public render(): TemplateResult {
|
public render(): TemplateResult {
|
||||||
return html`
|
return html`
|
||||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet" />
|
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet" />
|
||||||
@ -100,14 +99,16 @@ export class WccSidebar extends LitElement {
|
|||||||
})}
|
})}
|
||||||
<h3>Pages</h3>
|
<h3>Pages</h3>
|
||||||
${(() => {
|
${(() => {
|
||||||
const pages = Object.keys(this.pages);
|
const pages = Object.keys(this.dashboardRef.pages);
|
||||||
return pages.map(pageName => {
|
return pages.map(pageName => {
|
||||||
const item = this.pages[pageName];
|
const item = this.dashboardRef.pages[pageName];
|
||||||
return html`
|
return html`
|
||||||
<div
|
<div
|
||||||
class="selectOption ${this.selectedItem === item ? 'selected' : console.log('hi')}"
|
class="selectOption ${this.selectedItem === item ? 'selected' : console.log('hi')}"
|
||||||
@click=${() => {
|
@click=${async () => {
|
||||||
|
const domtools = await plugins.deesDomtools.DomTools.setupDomTools();
|
||||||
this.selectItem(item);
|
this.selectItem(item);
|
||||||
|
domtools.router.pushUrl(`/pages/${pageName}`);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<i class="material-icons">insert_drive_file</i>
|
<i class="material-icons">insert_drive_file</i>
|
||||||
@ -118,14 +119,16 @@ export class WccSidebar extends LitElement {
|
|||||||
})()}
|
})()}
|
||||||
<h3>Elements</h3>
|
<h3>Elements</h3>
|
||||||
${(() => {
|
${(() => {
|
||||||
const elements = Object.keys(this.elements);
|
const elements = Object.keys(this.dashboardRef.elements);
|
||||||
return elements.map(elementName => {
|
return elements.map(elementName => {
|
||||||
const item = this.elements[elementName];
|
const item = this.dashboardRef.elements[elementName];
|
||||||
return html`
|
return html`
|
||||||
<div
|
<div
|
||||||
class="selectOption ${this.selectedItem === item ? 'selected' : console.log('hi')}"
|
class="selectOption ${this.selectedItem === item ? 'selected' : console.log('hi')}"
|
||||||
@click=${() => {
|
@click=${async () => {
|
||||||
|
const domtools = await plugins.deesDomtools.DomTools.setupDomTools();
|
||||||
this.selectItem(item);
|
this.selectItem(item);
|
||||||
|
domtools.router.pushUrl(`/elements/${elementName}`);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<i class="material-icons">featured_video</i>
|
<i class="material-icons">featured_video</i>
|
||||||
|
11
ts_web/wcctools.plugins.ts
Normal file
11
ts_web/wcctools.plugins.ts
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
import * as smartdelay from '@pushrocks/smartdelay';
|
||||||
|
|
||||||
|
export {
|
||||||
|
smartdelay
|
||||||
|
};
|
||||||
|
|
||||||
|
import * as deesDomtools from '@designestate/dees-domtools';
|
||||||
|
|
||||||
|
export {
|
||||||
|
deesDomtools
|
||||||
|
};
|
Reference in New Issue
Block a user