Compare commits

..

No commits in common. "master" and "v1.6.1" have entirely different histories.

14 changed files with 47 additions and 221 deletions

View File

@ -1,61 +1,5 @@
# Changelog # Changelog
## 2025-01-01 - 1.6.11 - fix(license)
Update copyright notice in license to reflect new ownership
- Updated copyright from Lossless GmbH to Task Venture Capital GmbH.
## 2024-12-08 - 1.6.10 - fix(core)
Improve stability and performance of document generation
## 2024-12-08 - 1.6.9 - fix(contentinvoice.ts)
Improve invoice item layout and fix alignment issues.
- Fixed missing border on last invoice item.
- Added highlighted style for invoice lines.
- Corrected alignment and display of invoice item details.
- Included VAT percentage display adjustments.
## 2024-12-07 - 1.6.8 - fix(rendering and logging)
Removed debug logging from document rendering process.
- Removed console logs from content invoice, document rendering, page scaling, and overflow checking.
## 2024-12-07 - 1.6.7 - fix(document rendering)
Fixed overflow issues in document and page elements
- Ensured content overflow handling in document.ts
- Adjusted page element overflow settings in page.ts
## 2024-12-07 - 1.6.6 - fix(page-render)
Fix layout scaling adjustment for page component
- Ensure `font-family` is no longer explicitly set to inherit in `DePage` component.
- Adjust scaling logic to properly set width and overflow based on calculated scale.
## 2024-12-05 - 1.6.5 - fix(contentinvoice)
Fix VAT group item number formatting and remove custom font style in invoice sums.
- Removed custom font-family style from the invoice sums.
- Corrected VAT group item numbers display by properly formatting and removing trailing comma.
## 2024-12-05 - 1.6.4 - fix(styling)
Consolidated shared styles for consistent font applied across various components.
- Added a shared style file for consistent font family across components
- Applied shared style to contentinvoice, letterheader, pagecontent, pagefooter, and pageheader components
## 2024-12-05 - 1.6.3 - fix(ui)
Corrects font family in contentinvoice element.
- Updated the font-family for line items in contentinvoice.ts
## 2024-12-05 - 1.6.2 - fix(translation)
Corrected missing translation keys for VAT short form across multiple languages.
- Fixed missing 'vatShort' translation for English, German, Spanish, French, and Italian in translation.ts file.
## 2024-12-05 - 1.6.1 - fix(core) ## 2024-12-05 - 1.6.1 - fix(core)
Ensure consistent project structure and code organization without additional changes. Ensure consistent project structure and code organization without additional changes.

View File

@ -1,4 +1,4 @@
Copyright (c) 2022 Task Venture Capital GmbH (hello@task.vc) Copyright (c) 2022 Lossless GmbH (hello@lossless.com)
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal
@ -16,4 +16,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE. SOFTWARE.

View File

@ -1,6 +1,6 @@
{ {
"name": "@design.estate/dees-document", "name": "@design.estate/dees-document",
"version": "1.6.11", "version": "1.6.1",
"private": false, "private": false,
"description": "A sophisticated framework for dynamically generating and rendering business documents like invoices with modern web technologies, featuring PDF creation, templating, and automation.", "description": "A sophisticated framework for dynamically generating and rendering business documents like invoices with modern web technologies, featuring PDF creation, templating, and automation.",
"main": "dist_ts_web/index.js", "main": "dist_ts_web/index.js",

View File

@ -3,6 +3,6 @@
*/ */
export const commitinfo = { export const commitinfo = {
name: '@design.estate/dees-document', name: '@design.estate/dees-document',
version: '1.6.11', version: '1.6.1',
description: 'A sophisticated framework for dynamically generating and rendering business documents like invoices with modern web technologies, featuring PDF creation, templating, and automation.' description: 'A sophisticated framework for dynamically generating and rendering business documents like invoices with modern web technologies, featuring PDF creation, templating, and automation.'
} }

View File

@ -19,7 +19,6 @@ export const EN_translations = {
continuesOnPage: 'Continues on page', continuesOnPage: 'Continues on page',
finalPageStatement: 'This is the final page of this document.', finalPageStatement: 'This is the final page of this document.',
page: 'Page', page: 'Page',
vatShort: 'VAT',
} as const; } as const;
// Infer keys of EN_translations // Infer keys of EN_translations
@ -50,7 +49,6 @@ export const DE_translations: TTranslationImplementation = {
continuesOnPage: 'Fortsetzung auf Seite', continuesOnPage: 'Fortsetzung auf Seite',
finalPageStatement: 'Dies ist die letzte Seite dieses Dokuments.', finalPageStatement: 'Dies ist die letzte Seite dieses Dokuments.',
page: 'Seite', page: 'Seite',
vatShort: 'USt',
}; };
// Define Spanish translations // Define Spanish translations
@ -72,7 +70,6 @@ export const ES_translations: TTranslationImplementation = {
continuesOnPage: 'Continúa en la página', continuesOnPage: 'Continúa en la página',
finalPageStatement: 'Esta es la última página de este documento.', finalPageStatement: 'Esta es la última página de este documento.',
page: 'Página', page: 'Página',
vatShort: 'IVA',
}; };
// Define French translations // Define French translations
@ -95,7 +92,6 @@ export const FR_translations: TTranslationImplementation = {
continuesOnPage: 'Continue sur la page', continuesOnPage: 'Continue sur la page',
finalPageStatement: 'Ceci est la dernière page de ce document.', finalPageStatement: 'Ceci est la dernière page de ce document.',
page: 'Page', page: 'Page',
vatShort: 'TVA',
}; };
// Define Italian translations // Define Italian translations
@ -117,7 +113,6 @@ export const IT_translations: TTranslationImplementation = {
continuesOnPage: 'Continua alla pagina', continuesOnPage: 'Continua alla pagina',
finalPageStatement: 'Questa è l\'ultima pagina di questo documento.', finalPageStatement: 'Questa è l\'ultima pagina di questo documento.',
page: 'Pagina', page: 'Pagina',
vatShort: 'IVA',
}; };
// Language Code Map // Language Code Map

View File

@ -3,6 +3,6 @@
*/ */
export const commitinfo = { export const commitinfo = {
name: '@design.estate/dees-document', name: '@design.estate/dees-document',
version: '1.6.11', version: '1.6.1',
description: 'A sophisticated framework for dynamically generating and rendering business documents like invoices with modern web technologies, featuring PDF creation, templating, and automation.' description: 'A sophisticated framework for dynamically generating and rendering business documents like invoices with modern web technologies, featuring PDF creation, templating, and automation.'
} }

View File

@ -16,7 +16,6 @@ import {
} from '@design.estate/dees-element'; } from '@design.estate/dees-element';
import * as plugins from '../plugins.js'; import * as plugins from '../plugins.js';
import { dedocumentSharedStyle } from '../style.js';
declare global { declare global {
interface HTMLElementTagNameMap { interface HTMLElementTagNameMap {
@ -57,10 +56,10 @@ export class DeContentInvoice extends DeesElement {
public static styles = [ public static styles = [
domtools.elementBasic.staticStyles, domtools.elementBasic.staticStyles,
dedocumentSharedStyle,
css` css`
:host { :host {
color: #333; color: #333;
font-family: inherit;
} }
.trimmedContent { .trimmedContent {
@ -174,6 +173,7 @@ export class DeContentInvoice extends DeesElement {
(await this.getContentNodes()).trimmedContent.append( (await this.getContentNodes()).trimmedContent.append(
(await this.getContentNodes()).currentContent.children.item(0) (await this.getContentNodes()).currentContent.children.item(0)
); );
console.log('hey' + this.shadowRoot.children.length);
} }
if ( if (
(await this.getContentNodes()).currentContent.children (await this.getContentNodes()).currentContent.children
@ -215,33 +215,23 @@ export class DeContentInvoice extends DeesElement {
.lineItem { .lineItem {
font-size: 12px; font-size: 12px;
padding: 5px; padding: 5px;
font-family: 'Dees Code', monospace;
border-right: 1px dashed #ccc; border-right: 1px dashed #ccc;
} }
.lineItem:last-child {
border-right: none;
}
.lineItem.rightAlign { .lineItem.rightAlign {
text-align: right; text-align: right;
} }
.invoiceLine { .invoiceLine {
background: #ffffff00;
border-bottom: 1px dotted #ccc; border-bottom: 1px dotted #ccc;
} }
.invoiceLine.highlighted {
transition: background 0.2s;
background: #ffc18f;
border: 1px solid #ff9d4d;
box-sizing: content-box;
}
.sums { .sums {
margin-top: 5px; margin-top: 5px;
font-size: 12px; font-size: 12px;
padding-left: 50%; padding-left: 50%;
font-family: 'Dees Code', monospace;
} }
.sums .sumline { .sums .sumline {
@ -297,77 +287,33 @@ export class DeContentInvoice extends DeesElement {
</style> </style>
<div>We hereby invoice products and services provided to you by Lossless GmbH:</div> <div>We hereby invoice products and services provided to you by Lossless GmbH:</div>
<div class="grid topLine dataHeader"> <div class="grid topLine dataHeader">
<div class="lineItem rightAlign"> <div class="lineItem rightAlign">${plugins.shared.translation.translate(this.documentSettings.languageCode, 'itemPos', 'Item Pos.')}</div>
${plugins.shared.translation.translate( <div class="lineItem">${plugins.shared.translation.translate(this.documentSettings.languageCode, 'description', 'Description')}</div>
this.documentSettings.languageCode, <div class="lineItem rightAlign">${plugins.shared.translation.translate(this.documentSettings.languageCode, 'quantity', 'Quantity')}</div>
'itemPos', <div class="lineItem">${plugins.shared.translation.translate(this.documentSettings.languageCode, 'unitType', 'Unit Type')}</div>
'Item Pos.' <div class="lineItem rightAlign">${plugins.shared.translation.translate(this.documentSettings.languageCode, 'unitNetPrice', 'Unit Net Price')}</div>
)} <div class="lineItem rightAlign">${plugins.shared.translation.translate(this.documentSettings.languageCode, 'totalNetPrice', 'Total Net Price')}</div>
</div> <div class="lineItem rightAlign">${plugins.shared.translation.translate(this.documentSettings.languageCode, 'vatShort', 'VAT')}</div>
<div class="lineItem">
${plugins.shared.translation.translate(
this.documentSettings.languageCode,
'description',
'Description'
)}
</div>
<div class="lineItem rightAlign">
${plugins.shared.translation.translate(
this.documentSettings.languageCode,
'quantity',
'Quantity'
)}
</div>
<div class="lineItem">
${plugins.shared.translation.translate(
this.documentSettings.languageCode,
'unitType',
'Unit Type'
)}
</div>
<div class="lineItem rightAlign">
${plugins.shared.translation.translate(
this.documentSettings.languageCode,
'unitNetPrice',
'Unit Net Price'
)}
</div>
<div class="lineItem rightAlign">
${plugins.shared.translation.translate(
this.documentSettings.languageCode,
'totalNetPrice',
'Total Net Price'
)}
</div>
<div class="lineItem rightAlign">
${plugins.shared.translation.translate(
this.documentSettings.languageCode,
'vatShort',
'VAT'
)}
</div>
</div> </div>
${(() => { ${(() => {
let counter = 1; let counter = 1;
return this.letterData?.content.invoiceData?.items?.map((invoiceItem) => { return this.letterData?.content.invoiceData?.items?.map(
const isHighlighted = false; // TODO: implement rest of highlight logic (invoiceItem) => html`
return html` <div class="grid invoiceLine needsDataHeader">
<div class="grid invoiceLine needsDataHeader ${isHighlighted ? 'highlighted' : ''}">
<div class="lineItem rightAlign">${counter++}</div> <div class="lineItem rightAlign">${counter++}</div>
<div class="lineItem">${invoiceItem.name}</div> <div class="lineItem">${invoiceItem.name}</div>
<div class="lineItem rightAlign">${invoiceItem.unitQuantity}</div> <div class="lineItem rightAlign">${invoiceItem.unitQuantity}</div>
<div class="lineItem">${invoiceItem.unitType}</div> <div class="lineItem">${invoiceItem.unitType}</div>
<div class="lineItem rightAlign">${invoiceItem.unitNetPrice} ${this.letterData?.content.invoiceData.currency}</div>
<div class="lineItem rightAlign"> <div class="lineItem rightAlign">
${invoiceItem.unitNetPrice} ${this.letterData?.content.invoiceData.currency} ${invoiceItem.unitQuantity * invoiceItem.unitNetPrice} ${this.letterData?.content.invoiceData.currency}
</div> </div>
<div class="lineItem rightAlign"> <div class="lineItem rightAlign">
${invoiceItem.unitQuantity * invoiceItem.unitNetPrice} ${invoiceItem.vatPercentage}%
${this.letterData?.content.invoiceData.currency}
</div> </div>
<div class="lineItem rightAlign">${invoiceItem.vatPercentage}%</div>
</div> </div>
`; `
}); );
})()} })()}
<div class="sums"> <div class="sums">
<div class="sumline"> <div class="sumline">
@ -376,23 +322,17 @@ export class DeContentInvoice extends DeesElement {
</div> </div>
${this.getVatGroups().map((vatGroupArg) => { ${this.getVatGroups().map((vatGroupArg) => {
let itemNumbers = ''; let itemNumbers = '';
let first = true;
for (const item of vatGroupArg.items) { for (const item of vatGroupArg.items) {
const itemIndex = this.letterData.content.invoiceData.items.indexOf(item); const itemIndex = this.letterData.content.invoiceData.items.indexOf(item);
itemNumbers += `${first ? '' : ', '}${itemIndex + 1}`; itemNumbers += ` ${itemIndex + 1},`;
first = false;
} }
return html` return html`
<div class="sumline"> <div class="sumline">
<div class="label"> <div class="label">
Vat ${vatGroupArg.vatPercentage}% Vat ${vatGroupArg.vatPercentage}%
${this.documentSettings.vatGroupPositions ${this.documentSettings.vatGroupPositions ? html`
? html` <br /><span style="font-weight: normal">(on item positions: ${itemNumbers})</span>
<br /><span style="font-weight: normal" ` : html``}
>(on item positions: ${itemNumbers})</span
>
`
: html``}
</div> </div>
<div class="value">${vatGroupArg.vatAmountSum} EUR</div> <div class="value">${vatGroupArg.vatAmountSum} EUR</div>
</div> </div>
@ -407,11 +347,7 @@ export class DeContentInvoice extends DeesElement {
${this.letterData?.content.invoiceData.reverseCharge ${this.letterData?.content.invoiceData.reverseCharge
? html` ? html`
<div class="taxNote"> <div class="taxNote">
${plugins.shared.translation.translate( ${plugins.shared.translation.translate(this.documentSettings.languageCode, 'reverseVatNote', 'VAT arises on a reverse charge basis and is payable by the customer.')}
this.documentSettings.languageCode,
'reverseVatNote',
'VAT arises on a reverse charge basis and is payable by the customer.'
)}
</div> </div>
` `
: ``} : ``}
@ -431,9 +367,7 @@ export class DeContentInvoice extends DeesElement {
<div class="infoBox"> <div class="infoBox">
<div class="label">Referenced contract:</div> <div class="label">Referenced contract:</div>
This invoice is adhering to agreements made by contract between the parties on This invoice is adhering to agreements made by contract between the parties on
${plugins.smarttime.ExtendedDate.fromMillis( ${plugins.smarttime.ExtendedDate.fromMillis(this.letterData?.content.contractData.contractDate).format('MMMM D, YYYY')}.
this.letterData?.content.contractData.contractDate
).format('MMMM D, YYYY')}.
</div> </div>
` `
: html``} : html``}
@ -460,6 +394,7 @@ ${this.letterData.content.invoiceData.id}
EPC QR Code`, EPC QR Code`,
(error) => { (error) => {
if (error) console.error(error); if (error) console.error(error);
console.log('success!');
} }
); );
contentNodes.currentContent.querySelector('.paymentCode').append(canvas); contentNodes.currentContent.querySelector('.paymentCode').append(canvas);

View File

@ -115,35 +115,11 @@ export class DeDocument extends DeesElement {
} }
public async firstUpdated(_changedProperties: Map<string | number | symbol, unknown>) { public async firstUpdated(_changedProperties: Map<string | number | symbol, unknown>) {
domtools.plugins.smartdelay.delayFor(0).then(async () => { domtools.plugins.smartdelay.delayFor(0).then(() => {
this.documentSettings = { this.documentSettings = {
...defaultDocumentSettings, ...defaultDocumentSettings,
...this.documentSettings, ...this.documentSettings,
} }
while (false) {
await domtools.plugins.smartdelay.delayFor(1000);
this.letterData = {
...this.letterData,
content: {
...this.letterData.content,
invoiceData: {
...this.letterData.content.invoiceData,
items: [
...this.letterData.content.invoiceData.items,
{
name: 'Test Item',
unitQuantity: 1,
unitNetPrice: 100,
unitType: 'hours',
vatPercentage: 19,
position: 1,
},
],
},
}
}
}
}); });
const resizeObserver = new ResizeObserver((entries) => { const resizeObserver = new ResizeObserver((entries) => {
for (const entry of entries) { for (const entry of entries) {
@ -161,7 +137,6 @@ export class DeDocument extends DeesElement {
public latestDocumentSettings: plugins.shared.interfaces.IDocumentSettings = null; public latestDocumentSettings: plugins.shared.interfaces.IDocumentSettings = null;
public latestRenderedLetterData: plugins.tsclass.business.ILetter = null; public latestRenderedLetterData: plugins.tsclass.business.ILetter = null;
public cleanupStore: any[] = [];
public async renderDocument() { public async renderDocument() {
@ -169,12 +144,11 @@ export class DeDocument extends DeesElement {
this.latestDocumentSettings = this.documentSettings; this.latestDocumentSettings = this.documentSettings;
this.latestRenderedLetterData = this.letterData; this.latestRenderedLetterData = this.letterData;
const cleanUpStoreCurrentRender = []; console.log(`rendering with settings:`);
const cleanUpStoreNextRender = []; console.log(this.latestDocumentSettings);
const domtools = await this.domtoolsPromise; const domtools = await this.domtoolsPromise;
const documentBuildContainer = document.createElement('div'); const documentBuildContainer = document.createElement('div');
cleanUpStoreCurrentRender.push(documentBuildContainer);
document.body.appendChild(documentBuildContainer); document.body.appendChild(documentBuildContainer);
let pages: DePage[] = []; let pages: DePage[] = [];
@ -183,7 +157,6 @@ export class DeDocument extends DeesElement {
// lets append the content // lets append the content
const content: DeContentInvoice = new DeContentInvoice(); const content: DeContentInvoice = new DeContentInvoice();
cleanUpStoreCurrentRender.push(content);
content.letterData = this.letterData; content.letterData = this.letterData;
content.documentSettings = this.documentSettings; content.documentSettings = this.documentSettings;
document.body.appendChild(content); document.body.appendChild(content);
@ -195,7 +168,6 @@ export class DeDocument extends DeesElement {
while (!complete) { while (!complete) {
pageCounter++; pageCounter++;
const currentContent = content.cloneNode(true) as DeContentInvoice; const currentContent = content.cloneNode(true) as DeContentInvoice;
cleanUpStoreNextRender.push(currentContent);
const newPage = new DePage(); const newPage = new DePage();
newPage.printMode = this.printMode; newPage.printMode = this.printMode;
newPage.letterData = this.letterData; newPage.letterData = this.letterData;
@ -204,9 +176,6 @@ export class DeDocument extends DeesElement {
newPage.pageNumber = pageCounter; newPage.pageNumber = pageCounter;
newPage.append(currentContent); newPage.append(currentContent);
newPage.pageTotalNumber = pageCounter; newPage.pageTotalNumber = pageCounter;
// store current page
cleanUpStoreNextRender.push(newPage);
documentBuildContainer.append(newPage); documentBuildContainer.append(newPage);
await currentContent.elementDomReady; await currentContent.elementDomReady;
@ -223,24 +192,16 @@ export class DeDocument extends DeesElement {
if (trimmed === 0) { if (trimmed === 0) {
complete = true; complete = true;
} }
// complete = true;
console.log(currentContentOffset);
} }
document.body.removeChild(content);
for (const cleanUp of this.cleanupStore) { document.body.removeChild(documentBuildContainer);
cleanUp.remove();
}
this.cleanupStore = cleanUpStoreNextRender
cleanUpStoreCurrentRender.forEach((cleanUp) => {
cleanUp.remove();
});
const documentContainer = this.shadowRoot.querySelector('.documentContainer'); const documentContainer = this.shadowRoot.querySelector('.documentContainer');
if (documentContainer) { if (documentContainer) {
const children = Array.from(documentContainer.children); const children = Array.from(documentContainer.children);
children.forEach((child) => { children.forEach((child) => documentContainer.removeChild(child));
documentContainer.removeChild(child);
child.remove();
});
} }
for (const page of pages) { for (const page of pages) {
page.pageTotalNumber = pageCounter; page.pageTotalNumber = pageCounter;
@ -284,6 +245,7 @@ export class DeDocument extends DeesElement {
} }
if (this.viewWidth) { if (this.viewWidth) {
page.viewWidth = this.viewWidth; page.viewWidth = this.viewWidth;
console.log('setting viewWidth: ', this.viewWidth);
} }
}); });
} }

View File

@ -11,7 +11,6 @@ import {
} from '@design.estate/dees-element'; } from '@design.estate/dees-element';
import * as plugins from '../plugins.js'; import * as plugins from '../plugins.js';
import { dedocumentSharedStyle } from '../style.js';
declare global { declare global {
interface HTMLElementTagNameMap { interface HTMLElementTagNameMap {
@ -50,7 +49,6 @@ export class DeLetterHeader extends DeesElement {
public static styles = [ public static styles = [
domtools.elementBasic.staticStyles, domtools.elementBasic.staticStyles,
dedocumentSharedStyle,
css` css`
:host { :host {
color: #333; color: #333;

View File

@ -77,7 +77,7 @@ export class DePage extends DeesElement {
css` css`
:host { :host {
display: block; display: block;
overflow: hidden; font-family: inherit;
} }
#scaleWrapper { #scaleWrapper {
@ -196,6 +196,7 @@ export class DePage extends DeesElement {
} }
private adjustScaling() { private adjustScaling() {
console.log('page scale adjustment triggered.');
const scaleWrapper: HTMLDivElement = this.shadowRoot.querySelector('#scaleWrapper'); const scaleWrapper: HTMLDivElement = this.shadowRoot.querySelector('#scaleWrapper');
if (!scaleWrapper) return; if (!scaleWrapper) return;
@ -206,11 +207,12 @@ export class DePage extends DeesElement {
} else if (this.viewWidth) { } else if (this.viewWidth) {
scale = this.viewWidth / plugins.shared.a4Width; scale = this.viewWidth / plugins.shared.a4Width;
} }
console.log(`new scale is ${scale}`);
scaleWrapper.style.transform = `scale(${scale})`; scaleWrapper.style.transform = `scale(${scale})`;
// Adjust the outer dimensions so they match the scaled content // Adjust the outer dimensions so they match the scaled content
this.style.width = `${plugins.shared.a4Width * scale}px`; // this.style.width = `${shared.a4Width * scale}px`;
this.style.height = `${plugins.shared.a4Height * scale}px`; this.style.height = `${plugins.shared.a4Height * scale}px`;
} }
} }

View File

@ -11,7 +11,6 @@ import {
} from '@design.estate/dees-element'; } from '@design.estate/dees-element';
import * as plugins from '../plugins.js'; import * as plugins from '../plugins.js';
import { dedocumentSharedStyle } from '../style.js';
declare global { declare global {
interface HTMLElementTagNameMap { interface HTMLElementTagNameMap {
@ -47,10 +46,10 @@ export class DePageContent extends DeesElement {
public static styles = [ public static styles = [
domtools.elementBasic.staticStyles, domtools.elementBasic.staticStyles,
dedocumentSharedStyle,
css` css`
:host { :host {
color: #333; color: #333;
font-family: inherit;
} }
.content { .content {
@ -138,8 +137,10 @@ export class DePageContent extends DeesElement {
await this.elementDomReady; await this.elementDomReady;
const contentContainer = this.shadowRoot.querySelector('.content'); const contentContainer = this.shadowRoot.querySelector('.content');
if (contentContainer.scrollHeight > contentContainer.clientHeight) { if (contentContainer.scrollHeight > contentContainer.clientHeight) {
console.log('overflows');
return true; return true;
} else { } else {
console.log('does not overflow!');
return false; return false;
} }
} }

View File

@ -11,7 +11,6 @@ import {
} from '@design.estate/dees-element'; } from '@design.estate/dees-element';
import * as plugins from '../plugins.js'; import * as plugins from '../plugins.js';
import { dedocumentSharedStyle } from '../style.js';
declare global { declare global {
interface HTMLElementTagNameMap { interface HTMLElementTagNameMap {
@ -53,7 +52,6 @@ export class DePageFooter extends DeesElement {
public static styles = [ public static styles = [
domtools.elementBasic.staticStyles, domtools.elementBasic.staticStyles,
dedocumentSharedStyle,
css` css`
:host { :host {
color: #333; color: #333;

View File

@ -11,7 +11,6 @@ import {
} from '@design.estate/dees-element'; } from '@design.estate/dees-element';
import * as plugins from '../plugins.js'; import * as plugins from '../plugins.js';
import { dedocumentSharedStyle } from '../style.js';
declare global { declare global {
interface HTMLElementTagNameMap { interface HTMLElementTagNameMap {
@ -53,7 +52,6 @@ export class DePageHeader extends DeesElement {
public static styles = [ public static styles = [
domtools.elementBasic.staticStyles, domtools.elementBasic.staticStyles,
dedocumentSharedStyle,
css` css`
:host { :host {
color: #333; color: #333;

View File

@ -1,7 +0,0 @@
import { css } from '@design.estate/dees-element';
export const dedocumentSharedStyle = css`
:host {
font-family: 'Exo 2';
}
`;