Compare commits
22 Commits
Author | SHA1 | Date | |
---|---|---|---|
0ce9a96b90 | |||
959a4cae89 | |||
c8d6986aff | |||
53ff02c490 | |||
ba83aad026 | |||
2531126935 | |||
00a2de6560 | |||
b357bc67fa | |||
0665f85d49 | |||
c222a66ead | |||
8d628d3285 | |||
681de01143 | |||
070d894ea6 | |||
6a6d782288 | |||
ec1660cab5 | |||
5f182ba435 | |||
f73df83768 | |||
0b09f3f61c | |||
d2e0a55a13 | |||
fb1fc7fa6b | |||
374a3c58c4 | |||
b36846737b |
0
assets/elements/elementone.ts
Normal file
0
assets/elements/elementone.ts
Normal file
4978
package-lock.json
generated
4978
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
19
package.json
19
package.json
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@designestate/dees-wcctools",
|
||||
"version": "1.0.24",
|
||||
"version": "1.0.35",
|
||||
"private": false,
|
||||
"description": "wcc tools for creating element catalogues",
|
||||
"main": "dist_ts_web/index.js",
|
||||
@ -13,18 +13,19 @@
|
||||
"author": "Lossless GmbH",
|
||||
"license": "UNLICENSED",
|
||||
"dependencies": {
|
||||
"@designestate/dees-domtools": "^1.0.21",
|
||||
"@gitzone/tsrun": "^1.1.17",
|
||||
"@pushrocks/smartexpress": "^3.0.10",
|
||||
"@designestate/dees-domtools": "^1.0.38",
|
||||
"@gitzone/tsrun": "^1.2.12",
|
||||
"@pushrocks/smartdelay": "^2.0.10",
|
||||
"@pushrocks/smartexpress": "^3.0.73",
|
||||
"lit-element": "^2.0.0-rc.5",
|
||||
"lit-html": "^1.0.0-rc.2",
|
||||
"typescript": "^3.9.3"
|
||||
"typescript": "^3.9.6"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@gitzone/tsbuild": "^2.1.24",
|
||||
"@gitzone/tsbundle": "^1.0.69",
|
||||
"@gitzone/tswatch": "^1.0.46",
|
||||
"@pushrocks/projectinfo": "^4.0.2",
|
||||
"@gitzone/tsbundle": "^1.0.72",
|
||||
"@gitzone/tswatch": "^1.0.50",
|
||||
"@pushrocks/projectinfo": "^4.0.5",
|
||||
"tslint": "^6.1.2",
|
||||
"tslint-config-prettier": "^1.17.0"
|
||||
},
|
||||
@ -41,6 +42,6 @@
|
||||
"readme.md"
|
||||
],
|
||||
"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/)
|
||||
|
||||
## Status for master
|
||||
[](https://gitlab.com/designestate/dees-wcctools/commits/master)
|
||||
[](https://gitlab.com/designestate/dees-wcctools/commits/master)
|
||||
[](https://www.npmjs.com/package/@designestate/dees-wcctools)
|
||||
[](https://snyk.io/test/npm/@designestate/dees-wcctools)
|
||||
[](https://nodejs.org/dist/latest-v10.x/docs/api/)
|
||||
[](https://nodejs.org/dist/latest-v10.x/docs/api/)
|
||||
[](https://prettier.io/)
|
||||
|
||||
Status Category | Status Badge
|
||||
-- | --
|
||||
GitLab Pipelines | [](https://lossless.cloud)
|
||||
GitLab Pipline Test Coverage | [](https://lossless.cloud)
|
||||
npm | [](https://lossless.cloud)
|
||||
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
|
||||
|
||||
@ -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). :)
|
||||
|
||||
|
||||
## 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). :)
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { LitElement, property, html, customElement, TemplateResult } from 'lit-element';
|
||||
|
||||
import * as deesDomtools from '@designestate/dees-domtools';
|
||||
import * as plugins from '../wcctools.plugins';
|
||||
|
||||
import { WccDefaultElement } from './wcc-defaultelement';
|
||||
|
||||
@ -11,14 +11,13 @@ import './wcc-properties';
|
||||
|
||||
@customElement('wcc-dashboard')
|
||||
export class WccDashboard extends LitElement {
|
||||
@property()
|
||||
public selectedItem: TemplateResult | LitElement = WccDefaultElement as any;
|
||||
public domtools: plugins.deesDomtools.DomTools;
|
||||
|
||||
@property()
|
||||
public selectedInstance;
|
||||
public selectedItem: TemplateResult | LitElement;
|
||||
|
||||
@property()
|
||||
public selectedViewport: deesDomtools.breakpoints.TViewport = 'desktop';
|
||||
public selectedViewport: plugins.deesDomtools.breakpoints.TViewport = 'desktop';
|
||||
|
||||
@property()
|
||||
public pages: { [key: string]: TemplateResult } = {};
|
||||
@ -38,6 +37,19 @@ export class WccDashboard extends LitElement {
|
||||
if (pagesArg) {
|
||||
this.pages = pagesArg;
|
||||
}
|
||||
this.init();
|
||||
}
|
||||
|
||||
public async init() {
|
||||
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();
|
||||
}
|
||||
|
||||
public render(): TemplateResult {
|
||||
@ -54,10 +66,10 @@ export class WccDashboard extends LitElement {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
<wcc-sidebar .pages=${this.pages} .elements=${this.elements} @selectedItem=${eventArg => {
|
||||
<wcc-sidebar .dashboardRef=${this} @selectedItem=${eventArg => {
|
||||
this.selectedItem = eventArg.detail;
|
||||
}}></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}>
|
||||
${(() => {
|
||||
if (this.selectedItem instanceof TemplateResult) {
|
||||
@ -76,21 +88,29 @@ export class WccDashboard extends LitElement {
|
||||
this.setWarning(null);
|
||||
return html`${anonItem.demo()}`;
|
||||
} else {
|
||||
this.selectedItem = WccDefaultElement as any;
|
||||
this.updateSlot();
|
||||
}
|
||||
})()}
|
||||
</wcc-frame>
|
||||
${this.selectedViewport}
|
||||
`;
|
||||
}
|
||||
|
||||
private currentlyUpdating: boolean = false;
|
||||
public async updateSlot() {
|
||||
console.log('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;
|
||||
const domtools = await deesDomtools.DomTools.setupDomTools();
|
||||
domtools.setVirtualViewport(this.selectedViewport);
|
||||
this.selectedItem = oldSelectedItem;
|
||||
console.log('updateSlot');
|
||||
this.domtools = await plugins.deesDomtools.DomTools.setupDomTools();
|
||||
this.domtools.setVirtualViewport(this.selectedViewport);
|
||||
// await super.performUpdate();
|
||||
this.selectedItem = localSelectedItem;
|
||||
await super.performUpdate();
|
||||
this.currentlyUpdating = false;
|
||||
}
|
||||
|
||||
public setWarning(warningTextArg: string) {
|
||||
|
@ -5,9 +5,6 @@ import { TemplateResult } from 'lit-html';
|
||||
export class WccDefaultElement extends LitElement {
|
||||
public static demo = () => html`<wcc-defaultelement></wcc-defaultelement>`;
|
||||
|
||||
@property()
|
||||
public footerText = `Lossless GmbH - 2018`;
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
|
||||
|
@ -1,11 +1,6 @@
|
||||
import { LitElement, property, html, customElement, TemplateResult } from 'lit-element';
|
||||
|
||||
const breakpoints = {
|
||||
desktop: 1240,
|
||||
tablet: 700,
|
||||
phablet: 500,
|
||||
phone: 340,
|
||||
};
|
||||
import * as domtools from '@designestate/dees-domtools';
|
||||
|
||||
@customElement('wcc-frame')
|
||||
export class WccFrame extends LitElement {
|
||||
@ -33,19 +28,26 @@ export class WccFrame extends LitElement {
|
||||
`;
|
||||
case 'tablet':
|
||||
return `
|
||||
padding: 0px ${(document.body.clientWidth - 200 - breakpoints.tablet) / 2}px;
|
||||
padding: 0px ${
|
||||
(document.body.clientWidth - 200 - domtools.breakpoints.tablet) / 2
|
||||
}px;
|
||||
`;
|
||||
case 'phablet':
|
||||
return `
|
||||
padding: 0px ${(document.body.clientWidth - 200 - breakpoints.phablet) / 2}px;
|
||||
padding: 0px ${
|
||||
(document.body.clientWidth - 200 - domtools.breakpoints.phablet) / 2
|
||||
}px;
|
||||
`;
|
||||
case 'phone':
|
||||
return `
|
||||
padding: 0px ${(document.body.clientWidth - 200 - breakpoints.phone) / 2}px;
|
||||
padding: 0px ${
|
||||
(document.body.clientWidth - 200 - domtools.breakpoints.phone) / 2
|
||||
}px;
|
||||
`;
|
||||
}
|
||||
})()}
|
||||
}
|
||||
|
||||
.viewport {
|
||||
position: relative;
|
||||
${this.viewport !== 'desktop'
|
||||
|
@ -13,9 +13,6 @@ export class WccProperties extends LitElement {
|
||||
@property()
|
||||
public selectedItem: TemplateResult | LitElement;
|
||||
|
||||
@property()
|
||||
public selectedInstance;
|
||||
|
||||
@property()
|
||||
public selectedViewport = 'native';
|
||||
|
||||
@ -126,15 +123,7 @@ export class WccProperties extends LitElement {
|
||||
returnArray.push(
|
||||
html`
|
||||
<div class="property">
|
||||
${key} / ${classProperties.get(key).type.name} /
|
||||
<pre>
|
||||
${(() => {
|
||||
const result = this.selectedInstance
|
||||
? JSON.stringify(this.selectedInstance[key], null, 2)
|
||||
: null;
|
||||
return result;
|
||||
})()}</pre
|
||||
>
|
||||
${key} / ${classProperties.get(key).type.name}
|
||||
</div>
|
||||
`
|
||||
);
|
||||
|
@ -1,19 +1,17 @@
|
||||
import { LitElement, property, html, customElement, TemplateResult } from 'lit-element';
|
||||
import { WccDashboard } from './wcc-dashboard';
|
||||
|
||||
@customElement('wcc-sidebar')
|
||||
export class WccSidebar extends LitElement {
|
||||
@property({type: Array})
|
||||
public websites: string[] = [];
|
||||
|
||||
@property()
|
||||
public pages: { [key: string]: TemplateResult } = {};
|
||||
|
||||
@property()
|
||||
public elements: { [key: string]: LitElement } = {};
|
||||
|
||||
@property({ attribute: false })
|
||||
public selectedItem: LitElement | TemplateResult;
|
||||
|
||||
@property()
|
||||
public dashboardRef: WccDashboard;
|
||||
|
||||
public render(): TemplateResult {
|
||||
return html`
|
||||
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet" />
|
||||
@ -100,14 +98,15 @@ export class WccSidebar extends LitElement {
|
||||
})}
|
||||
<h3>Pages</h3>
|
||||
${(() => {
|
||||
const pages = Object.keys(this.pages);
|
||||
const pages = Object.keys(this.dashboardRef.pages);
|
||||
return pages.map(pageName => {
|
||||
const item = this.pages[pageName];
|
||||
const item = this.dashboardRef.pages[pageName];
|
||||
return html`
|
||||
<div
|
||||
class="selectOption ${this.selectedItem === item ? 'selected' : console.log('hi')}"
|
||||
@click=${() => {
|
||||
this.selectItem(item);
|
||||
this.dashboardRef.domtools.router.pushUrl(`/pages/${pageName}`);
|
||||
}}
|
||||
>
|
||||
<i class="material-icons">insert_drive_file</i>
|
||||
@ -118,14 +117,15 @@ export class WccSidebar extends LitElement {
|
||||
})()}
|
||||
<h3>Elements</h3>
|
||||
${(() => {
|
||||
const elements = Object.keys(this.elements);
|
||||
const elements = Object.keys(this.dashboardRef.elements);
|
||||
return elements.map(elementName => {
|
||||
const item = this.elements[elementName];
|
||||
const item = this.dashboardRef.elements[elementName];
|
||||
return html`
|
||||
<div
|
||||
class="selectOption ${this.selectedItem === item ? 'selected' : console.log('hi')}"
|
||||
@click=${() => {
|
||||
this.selectItem(item);
|
||||
this.dashboardRef.domtools.router.pushUrl(`/elements/${elementName}`);
|
||||
}}
|
||||
>
|
||||
<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